level.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef level_h
  2. #define level_h
  3. #include "corange.h"
  4. typedef struct {
  5. int num_tiles;
  6. GLuint positions_buffer;
  7. GLuint texcoords_buffer;
  8. asset_hndl mat;
  9. } tile_set;
  10. typedef struct {
  11. int num_tile_sets;
  12. int* tile_map;
  13. tile_set* tile_sets;
  14. } level;
  15. #define tiletype_none 0
  16. #define tiletype_air 1
  17. #define tiletype_dirt 2
  18. #define tiletype_dirt_rock 3
  19. #define tiletype_dirt_overhang 4
  20. #define tiletype_surface 5
  21. #define tiletype_grass 6
  22. #define tiletype_grass_rock1 7
  23. #define tiletype_grass_rock2 8
  24. #define tiletype_grass_tree 9
  25. #define tiletype_tree 10
  26. #define tiletype_tree_top 11
  27. #define tiletype_tree_top_left 12
  28. #define tiletype_tree_top_right 13
  29. #define tiletype_tree_topest 14
  30. #define tiletype_tree_bot_left 15
  31. #define tiletype_tree_bot_right 16
  32. #define tiletype_tree_junc_left 17
  33. #define tiletype_tree_junc_right 18
  34. #define tiletype_tree_turn_left 19
  35. #define tiletype_tree_turn_right 20
  36. #define tiletype_tree_side 21
  37. #define tiletype_house_top_left 22
  38. #define tiletype_house_top_right 23
  39. #define tiletype_house_bot_left 24
  40. #define tiletype_house_bot_right 25
  41. #define num_tile_types 26
  42. #define TILE_SIZE 32
  43. level* level_load_file(char* filename);
  44. void level_delete(level* l);
  45. void level_render_background(level* l);
  46. void level_render_tiles(level* l, vec2 camera_position);
  47. int level_tile_at(level* l, vec2 position);
  48. vec2 level_tile_position(level* l, int x, int y);
  49. bool tile_has_collision(int tiletype);
  50. #endif