Files
source/TileEngine/Buildings.h
2021-03-11 20:41:44 +00:00

32 lines
1014 B
C++

#ifndef BUILDING_H
#define BUILDING_H
class SOLDIERTYPE;
// for what it's worth, 2 bytes, we use roof climb spots as 1-based
// so the 0th entry is always 0 and can be compared with (and not equal)
// NOWHERE or any other location
#define MAX_CLIMBSPOTS_PER_BUILDING 255
// similarly for buildings, only we really want 0 to be invalid index
#define NO_BUILDING 0
#define MAX_BUILDINGS 255
typedef struct BUILDING
{
INT32 sUpClimbSpots[MAX_CLIMBSPOTS_PER_BUILDING];
INT32 sDownClimbSpots[MAX_CLIMBSPOTS_PER_BUILDING];
UINT8 ubNumClimbSpots;
} BUILDING;
//extern UINT8 gubBuildingInfo[ WORLD_MAX ];
extern UINT8 * gubBuildingInfo;
BOOLEAN InBuilding( INT32 sGridNo );
BUILDING * GenerateBuilding( INT32 sDesiredSpot );
BUILDING * FindBuilding( INT32 sGridNo );
void GenerateBuildings( void );
INT32 FindClosestClimbPoint( SOLDIERTYPE *pSoldier, INT32 sStartGridNo, INT32 sDesiredGridNo, BOOLEAN fClimbUp );
BOOLEAN SameBuilding( INT32 sGridNo1, INT32 sGridNo2 );
#endif