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)
78struct StandingTileInfo;
84void drown(GameObject *obj);
85void fallingDamage(GameObject *obj, int16 speed);
86void lavaDamage(GameObject *obj);
87void coldDamage(GameObject *obj);
88void terrainDamageSlash(GameObject *obj);
89void terrainDamageBash(GameObject *obj);
102 StandingTileInfo *sti = NULL);
110int16 tileSlopeHeight(
111 const TilePoint &tileCoords,
114 StandingTileInfo *stiResult = NULL,
115 uint8 *platformResult = NULL);
118int16 tileSlopeHeight(
121 StandingTileInfo *stiResult = NULL,
122 uint8 *platformResult = NULL);
125int16 tileSlopeHeight(
129 StandingTileInfo *stiResult = NULL,
130 uint8 *platformResult = NULL);
143uint32 volumeTerrain(int16 mapNum,
const TileRegion &volume);
147 const TilePoint &pos,
153 const TilePoint &pos,
161 const TilePoint &from,
163 uint32 opaqueTerrain);
166uint32 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);