cm_terrainmap.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #pragma once
  2. #if !defined(CM_TERRAINMAP_H_INC)
  3. #define CM_TERRAINMAP_H_INC
  4. #define TM_WIDTH 512
  5. #define TM_HEIGHT 512
  6. #define TM_BORDER 16
  7. #define TM_REAL_WIDTH (TM_WIDTH-TM_BORDER-TM_BORDER)
  8. #define TM_REAL_HEIGHT (TM_HEIGHT-TM_BORDER-TM_BORDER)
  9. class CTerrainMap
  10. {
  11. private:
  12. byte mImage[TM_HEIGHT][TM_WIDTH][4]; // image to output
  13. byte mBufImage[TM_HEIGHT][TM_WIDTH][4]; // src data for image, color and bump
  14. byte* mSymBld;
  15. int mSymBldWidth;
  16. int mSymBldHeight;
  17. byte* mSymStart;
  18. int mSymStartWidth;
  19. int mSymStartHeight;
  20. byte* mSymEnd;
  21. int mSymEndWidth;
  22. int mSymEndHeight;
  23. byte* mSymObjective;
  24. int mSymObjectiveWidth;
  25. int mSymObjectiveHeight;
  26. CCMLandScape *mLandscape;
  27. void ApplyBackground(void);
  28. void ApplyHeightmap(void);
  29. public:
  30. CTerrainMap(CCMLandScape *landscape);
  31. ~CTerrainMap();
  32. void ConvertPos(int& x, int& y);
  33. void AddBuilding(int x, int y, int side);
  34. void AddStart(int x, int y, int side);
  35. void AddEnd(int x, int y, int side);
  36. void AddObjective(int x, int y, int side);
  37. void AddNPC(int x, int y, bool friendly);
  38. void AddWallRect(int x, int y, int side);
  39. void AddNode(int x, int y);
  40. void AddPlayer(vec3_t origin, vec3_t angles);
  41. void Upload(vec3_t player_origin, vec3_t player_angles);
  42. void SaveImageToDisk(const char * terrainName, const char * missionName, const char * seed);
  43. };
  44. enum
  45. {
  46. SIDE_NONE =0,
  47. SIDE_BLUE =1,
  48. SIDE_RED = 2
  49. };
  50. void CM_TM_Create(CCMLandScape *landscape);
  51. void CM_TM_Free(void);
  52. void CM_TM_AddStart(int x, int y, int side = SIDE_NONE);
  53. void CM_TM_AddEnd(int x, int y, int side = SIDE_NONE);
  54. void CM_TM_AddObjective(int x, int y, int side = SIDE_NONE);
  55. void CM_TM_AddNPC(int x, int y, bool friendly);
  56. void CM_TM_AddWallRect(int x, int y, int side = SIDE_NONE);
  57. void CM_TM_AddNode(int x, int y);
  58. void CM_TM_AddBuilding(int x, int y, int side = SIDE_NONE);
  59. void CM_TM_Upload(vec3_t player_origin, vec3_t player_angles);
  60. void CM_TM_SaveImageToDisk(const char * terrainName, const char * missionName, const char * seed);
  61. void CM_TM_ConvertPosition(int &x, int &y, int Width, int Height);
  62. #endif CM_TERRAINMAP_H_INC