26 #ifndef SAGA2_TERRAIN_H 27 #define SAGA2_TERRAIN_H 38 #define kDrowningDamageOddsYes (1) 39 #define kDrowningDamageOddsNo (3) 40 #define kDrowningDamagePerFrame (1) 47 #define kFallingDamageMult (2) 48 #define kFallingDamageDiv (1) 54 #define kHeatDamageOddsYes (1) 55 #define kHeatDamageOddsNo (3) 56 #define kHeatDamagePerFrame (1) 57 #define kHeatDamageDicePerFrame (1) 63 #define kColdDamageOddsYes (1) 64 #define kColdDamageOddsNo (15) 65 #define kColdDamagePerFrame (1) 66 #define kColdDamageDicePerFrame (0) 68 #define kTerrainDamageOddsYes (1) 69 #define kTerrainDamageOddsNo (1) 70 #define kTerrainDamagePerFrame (1) 71 #define kTerrainDamageDicePerFrame (2) 78 struct StandingTileInfo;
84 void drown(GameObject *obj);
85 void fallingDamage(GameObject *obj, int16 speed);
86 void lavaDamage(GameObject *obj);
87 void coldDamage(GameObject *obj);
88 void terrainDamageSlash(GameObject *obj);
89 void terrainDamageBash(GameObject *obj);
99 int16 tileSlopeHeight(
102 StandingTileInfo *sti = NULL);
110 int16 tileSlopeHeight(
111 const TilePoint &tileCoords,
114 StandingTileInfo *stiResult = NULL,
115 uint8 *platformResult = NULL);
118 int16 tileSlopeHeight(
121 StandingTileInfo *stiResult = NULL,
122 uint8 *platformResult = NULL);
125 int16 tileSlopeHeight(
129 StandingTileInfo *stiResult = NULL,
130 uint8 *platformResult = NULL);
143 uint32 volumeTerrain(int16 mapNum,
const TileRegion &volume);
145 uint32 volumeTerrain(
147 const TilePoint &pos,
151 uint32 volumeTerrain(
153 const TilePoint &pos,
161 const TilePoint &from,
163 uint32 opaqueTerrain);
166 uint32 objectTerrain(GameObject *obj, StandingTileInfo &sti);
172 const TilePoint &loc,
173 GameObject **blockResultObj = NULL);
178 const TilePoint &loc,
179 GameObject **blockResultObj = NULL);
183 const TilePoint &loc,
184 GameObject **blockResultObj = NULL);
189 const TilePoint &loc,
190 GameObject **blockResultObj = NULL);