94 lines
3.5 KiB
C++
94 lines
3.5 KiB
C++
//
|
|
// terrain_abilities.hpp
|
|
// BoE
|
|
//
|
|
// Created by Celtic Minstrel on 17-04-13.
|
|
//
|
|
//
|
|
|
|
#ifndef BoE_TERRAIN_ABILITIES_HPP
|
|
#define BoE_TERRAIN_ABILITIES_HPP
|
|
|
|
enum class eTerSpec {
|
|
NONE = 0,
|
|
CHANGE_WHEN_STEP_ON = 1,
|
|
DAMAGING = 2, // formerly "fire damage"
|
|
BRIDGE = 3, // new; formerly "cold damage"
|
|
BED = 4, // new; formerly "magic damage"
|
|
DANGEROUS = 5, // formerly "poison land"
|
|
UNUSED1 = 6, // formerly "disease land"
|
|
CRUMBLING = 7,
|
|
LOCKABLE = 8,
|
|
UNLOCKABLE = 9,
|
|
UNUSED2 = 10, // formerly "unlockable + bashable"
|
|
IS_A_SIGN = 11,
|
|
CALL_SPECIAL = 12, // formerly "call local special"
|
|
UNUSED3 = 13, // formerly "call scenario special"
|
|
IS_A_CONTAINER = 14,
|
|
WILDERNESS_CAVE = 15,
|
|
WILDERNESS_SURFACE = 16, // formerly "conveyor north"
|
|
WATERFALL_CAVE = 17, // formerly "conveyor east"
|
|
WATERFALL_SURFACE = 18, // formerly "conveyor south"
|
|
CONVEYOR = 19, // formerly "conveyor west"
|
|
BLOCKED_TO_MONSTERS = 20,
|
|
TOWN_ENTRANCE = 21,
|
|
CHANGE_WHEN_USED = 22,
|
|
CALL_SPECIAL_WHEN_USED = 23,
|
|
// 1. Change when step on (What to change to, number of sound, Unused)
|
|
// 2. Damaging terrain; can't rest here (Amount of damage done, multiplier, damage type)
|
|
// 3. Bridge - if the party boats over it, they get the option to land. (Unused, Unused, Unused)
|
|
// 4. Bed - change party graphic when they stand on this space
|
|
// 5. Dangerous land; can't rest here; percentage chance may be 0 (Strength, Percentage chance, status type)
|
|
// 6. Reserved
|
|
// 7. Crumbling terrain (Terrain to change to, strength?, destroyed by what - quickfire, shatter/move mountains, or both)
|
|
// 8. Lockable terrain (Terrain to change to when locked, Unused, Unused)
|
|
// 9. Unlockable terrain (Terrain to change to when locked, Difficulty, can be bashed)
|
|
// 10. Reserved
|
|
// 11. Sign (Unused, Unused, Unused)
|
|
// 12. Call special (Special to call, local or scenario?, Unused)
|
|
// 13. Reserved
|
|
// 14. Container (Unused, Unused, Unused)
|
|
// 15. Waterfall (Direction, Unused, Unused)
|
|
// 16. Conveyor Belt (Direction, Unused, Unused)
|
|
// 17. Reserved
|
|
// 18. Reserved
|
|
// 19. Reserved
|
|
// 20. Blocked to Monsters (Unused, Unused, Unused)
|
|
// 21. Town entrance (Terrain type if hidden, Unused, Unused)
|
|
// 22. Change when Used (Terrain to change to when used, Number of sound, Unused)
|
|
// 23. Call special when used (Special to call, local or scenario?, Unused)
|
|
};
|
|
|
|
enum class eTrimType {
|
|
NONE = 0,
|
|
WALL = 1, // not a trim, but trims will conform to it as if it's the same ground type (eg stone wall)
|
|
S, SE, E, NE, N, NW, W, SW,
|
|
NE_INNER, SE_INNER, SW_INNER, NW_INNER,
|
|
FRILLS = 14, // like on lava and underground water; no trim_ter required
|
|
WALKWAY = 16, // the game will draw walkway corners; trim_ter is base terrain to draw on
|
|
WATERFALL = 17, // special case for waterfalls
|
|
CITY = 18, // the game will join roads up to this space but not draw roads on the space
|
|
};
|
|
|
|
enum class eTerObstruct {
|
|
CLEAR = 0,
|
|
BLOCK_SIGHT = 1,
|
|
BLOCK_MONSTERS = 2,
|
|
BLOCK_MOVE = 3,
|
|
BLOCK_MOVE_AND_SHOOT = 4,
|
|
BLOCK_MOVE_AND_SIGHT = 5,
|
|
};
|
|
|
|
enum class eStepSnd {STEP, SQUISH, CRUNCH, NONE, SPLASH};
|
|
|
|
std::ostream& operator << (std::ostream& out, eTerSpec e);
|
|
std::istream& operator >> (std::istream& in, eTerSpec& e);
|
|
std::ostream& operator << (std::ostream& out, eTrimType e);
|
|
std::istream& operator >> (std::istream& in, eTrimType& e);
|
|
std::ostream& operator << (std::ostream& out, eTerObstruct e);
|
|
std::istream& operator >> (std::istream& in, eTerObstruct& e);
|
|
std::ostream& operator << (std::ostream& out, eStepSnd e);
|
|
std::istream& operator >> (std::istream& in, eStepSnd& e);
|
|
|
|
#endif
|