Initial commit.
This commit is contained in:
77
code/qcommon/cm_terrainmap.h
Normal file
77
code/qcommon/cm_terrainmap.h
Normal file
@@ -0,0 +1,77 @@
|
||||
#pragma once
|
||||
#if !defined(CM_TERRAINMAP_H_INC)
|
||||
#define CM_TERRAINMAP_H_INC
|
||||
|
||||
#define TM_WIDTH 512
|
||||
#define TM_HEIGHT 512
|
||||
#define TM_BORDER 16
|
||||
#define TM_REAL_WIDTH (TM_WIDTH-TM_BORDER-TM_BORDER)
|
||||
#define TM_REAL_HEIGHT (TM_HEIGHT-TM_BORDER-TM_BORDER)
|
||||
|
||||
class CTerrainMap
|
||||
{
|
||||
private:
|
||||
byte mImage[TM_HEIGHT][TM_WIDTH][4]; // image to output
|
||||
byte mBufImage[TM_HEIGHT][TM_WIDTH][4]; // src data for image, color and bump
|
||||
|
||||
byte* mSymBld;
|
||||
int mSymBldWidth;
|
||||
int mSymBldHeight;
|
||||
|
||||
byte* mSymStart;
|
||||
int mSymStartWidth;
|
||||
int mSymStartHeight;
|
||||
|
||||
byte* mSymEnd;
|
||||
int mSymEndWidth;
|
||||
int mSymEndHeight;
|
||||
|
||||
byte* mSymObjective;
|
||||
int mSymObjectiveWidth;
|
||||
int mSymObjectiveHeight;
|
||||
|
||||
CCMLandScape *mLandscape;
|
||||
|
||||
void ApplyBackground(void);
|
||||
void ApplyHeightmap(void);
|
||||
|
||||
public:
|
||||
CTerrainMap(CCMLandScape *landscape);
|
||||
~CTerrainMap();
|
||||
|
||||
void ConvertPos(int& x, int& y);
|
||||
void AddBuilding(int x, int y, int side);
|
||||
void AddStart(int x, int y, int side);
|
||||
void AddEnd(int x, int y, int side);
|
||||
void AddObjective(int x, int y, int side);
|
||||
void AddNPC(int x, int y, bool friendly);
|
||||
void AddWallRect(int x, int y, int side);
|
||||
void AddNode(int x, int y);
|
||||
void AddPlayer(vec3_t origin, vec3_t angles);
|
||||
|
||||
void Upload(vec3_t player_origin, vec3_t player_angles);
|
||||
void SaveImageToDisk(const char * terrainName, const char * missionName, const char * seed);
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
SIDE_NONE =0,
|
||||
SIDE_BLUE =1,
|
||||
SIDE_RED = 2
|
||||
};
|
||||
|
||||
void CM_TM_Create(CCMLandScape *landscape);
|
||||
void CM_TM_Free(void);
|
||||
void CM_TM_AddStart(int x, int y, int side = SIDE_NONE);
|
||||
void CM_TM_AddEnd(int x, int y, int side = SIDE_NONE);
|
||||
void CM_TM_AddObjective(int x, int y, int side = SIDE_NONE);
|
||||
void CM_TM_AddNPC(int x, int y, bool friendly);
|
||||
void CM_TM_AddWallRect(int x, int y, int side = SIDE_NONE);
|
||||
void CM_TM_AddNode(int x, int y);
|
||||
void CM_TM_AddBuilding(int x, int y, int side = SIDE_NONE);
|
||||
void CM_TM_Upload(vec3_t player_origin, vec3_t player_angles);
|
||||
void CM_TM_SaveImageToDisk(const char * terrainName, const char * missionName, const char * seed);
|
||||
void CM_TM_ConvertPosition(int &x, int &y, int Width, int Height);
|
||||
|
||||
#endif CM_TERRAINMAP_H_INC
|
||||
|
||||
Reference in New Issue
Block a user