diff options
Diffstat (limited to 'engines/dm/dungeonman.h')
-rw-r--r-- | engines/dm/dungeonman.h | 426 |
1 files changed, 214 insertions, 212 deletions
diff --git a/engines/dm/dungeonman.h b/engines/dm/dungeonman.h index 704ffa134d..a09abb27d7 100644 --- a/engines/dm/dungeonman.h +++ b/engines/dm/dungeonman.h @@ -65,16 +65,222 @@ enum ObjectAllowedSlot { kDMMaskMouth = 0x0001, // @ MASK0x0001_MOUTH kDMMaskHead = 0x0002, // @ MASK0x0002_HEAD kDMMaskNeck = 0x0004, // @ MASK0x0004_NECK - k0x0008_ObjectAllowedSlotTorso = 0x0008, // @ MASK0x0008_TORSO - k0x0010_ObjectAllowedSlotLegs = 0x0010, // @ MASK0x0010_LEGS - k0x0020_ObjectAllowedSlotFeet = 0x0020, // @ MASK0x0020_FEET - k0x0040_ObjectAllowedSlotQuiverLine_1 = 0x0040, // @ MASK0x0040_QUIVER_LINE1 - k0x0080_ObjectAllowedSlotQuiverLine_2 = 0x0080, // @ MASK0x0080_QUIVER_LINE2 - k0x0100_ObjectAllowedSlotPouchPassAndThroughDoors = 0x0100, // @ MASK0x0100_POUCH_PASS_AND_THROUGH_DOORS - k0x0200_ObjectAllowedSlotHands = 0x0200, // @ MASK0x0200_HANDS - k0x0400_ObjectAllowedSlotContainer = 0x0400 // @ MASK0x0400_CONTAINER + kDMMaskTorso = 0x0008, // @ MASK0x0008_TORSO + kDMMaskLegs = 0x0010, // @ MASK0x0010_LEGS + kDMMaskFeet = 0x0020, // @ MASK0x0020_FEET + kDMMaskQuiverLine1 = 0x0040, // @ MASK0x0040_QUIVER_LINE1 + kDMMaskQuiverLine2 = 0x0080, // @ MASK0x0080_QUIVER_LINE2 + kDMMaskPouchPassAndThroughDoors = 0x0100, // @ MASK0x0100_POUCH_PASS_AND_THROUGH_DOORS + kDMMaskHands = 0x0200, // @ MASK0x0200_HANDS + kDMMaskContainer = 0x0400, // @ MASK0x0400_CONTAINER + kDMMaskFootprints = 0x8000 // @ MASK0x8000_FOOTPRINTS }; +enum ArmourAttribute { + kDMArmourAttributeShield = 0x0080, // @ MASK0x0080_IS_A_SHIELD + kDMArmourAttributeSharpDefense = 0x0007 // @ MASK0x0007_SHARP_DEFENSE +}; + +enum WeaponClass { + kDMWeaponClassNone = -1, +/* Class 0: SWING weapons */ + kDMWeaponClassSwingWeapon = 0, // @ C000_CLASS_SWING_WEAPON +/* Class 1 to 15: THROW weapons */ + kDMWeaponClassDaggerAndAxes = 2, // @ C002_CLASS_DAGGER_AND_AXES + kDMWeaponClassBowAmmunition = 10, // @ C010_CLASS_BOW_AMMUNITION + kDMWeaponClassSlingAmmunition = 11, // @ C011_CLASS_SLING_AMMUNITION + kDMWeaponClassPoisinDart = 12, // @ C012_CLASS_POISON_DART +/* Class 16 to 111: SHOOT weapons */ + kDMWeaponClassFirstBow = 16, // @ C016_CLASS_FIRST_BOW + kDMWeaponClassLastBow = 31, // @ C031_CLASS_LAST_BOW + kDMWeaponClassFirstSling = 32, // @ C032_CLASS_FIRST_SLING + kDMWeaponClassLastSling = 47, // @ C047_CLASS_LAST_SLING +/* Class 112 to 255: Magic and special weapons */ + kDMWeaponClassFirstMagicWeapon = 112 // @ C112_CLASS_FIRST_MAGIC_WEAPON +}; + +enum TextType { + /* Used for text on walls */ + kDMTextTypeInscription = 0, // @ C0_TEXT_TYPE_INSCRIPTION + /* Used for messages displayed when the party walks on a square */ + kDMTextTypeMessage = 1, // @ C1_TEXT_TYPE_MESSAGE + /* Used for text on scrolls and champion information */ + kDMTextTypeScroll = 2 // @ C2_TEXT_TYPE_SCROLL +}; + +enum SquareAspect { + kDMSquareAspectElement = 0, // @ C0_ELEMENT + kDMSquareAspectFirstGroupOrObject = 1, // @ C1_FIRST_GROUP_OR_OBJECT + kDMSquareAspectRightWallOrnOrd = 2, // @ C2_RIGHT_WALL_ORNAMENT_ORDINAL + kDMSquareFrontWallOrnOrd = 3, // @ C3_FRONT_WALL_ORNAMENT_ORDINAL + kDMSquareAspectLeftWallOrnOrd = 4, // @ C4_LEFT_WALL_ORNAMENT_ORDINAL + kDMSquareAspectPitInvisible = 2, // @ C2_PIT_INVISIBLE + kDMSquareAspectTeleporterVisible = 2, // @ C2_TELEPORTER_VISIBLE + kDMSquareAspectStairsUp = 2, // @ C2_STAIRS_UP + kDMSquareAspectDoorState = 2, // @ C2_DOOR_STATE + kDMSquareAspectDoorThingIndex = 3, // @ C3_DOOR_THING_INDEX + kDMSquareAspectFloorOrn = 4, // @ C4_FLOOR_ORNAMENT_ORDINAL +}; + +#define k15_immuneToFire 15 // @ C15_IMMUNE_TO_FIRE +#define k15_immuneToPoison 15 // @ C15_IMMUNE_TO_POISON + +enum TeleporterScope { + k0x0001_TelepScopeCreatures = 1, // @ MASK0x0001_SCOPE_CREATURES + k0x0002_TelepScopeObjOrParty = 2 // @ MASK0x0002_SCOPE_OBJECTS_OR_PARTY +}; + +enum SensorActionType { + kM1_SensorEffNone = -1, // @ CM1_EFFECT_NONE + k0_SensorEffSet = 0, // @ C00_EFFECT_SET + k1_SensorEffClear = 1, // @ C01_EFFECT_CLEAR + k2_SensorEffToggle = 2, // @ C02_EFFECT_TOGGLE + k3_SensorEffHold = 3, // @ C03_EFFECT_HOLD + k10_SensorEffAddExp = 10 // @ C10_EFFECT_ADD_EXPERIENCE +}; + +enum SensorType { + k0_SensorDisabled = 0, // @ C000_SENSOR_DISABLED /* Never triggered, may be used for a floor or wall ornament */ + k1_SensorFloorTheronPartyCreatureObj = 1, // @ C001_SENSOR_FLOOR_THERON_PARTY_CREATURE_OBJECT /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ + k2_SensorFloorTheronPartyCreature = 2, // @ C002_SENSOR_FLOOR_THERON_PARTY_CREATURE /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ + k3_SensorFloorParty = 3, // @ C003_SENSOR_FLOOR_PARTY /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ + k4_SensorFloorObj = 4, // @ C004_SENSOR_FLOOR_OBJECT /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ + k5_SensorFloorPartyOnStairs = 5, // @ C005_SENSOR_FLOOR_PARTY_ON_STAIRS /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ + k6_SensorFloorGroupGenerator = 6, // @ C006_SENSOR_FLOOR_GROUP_GENERATOR /* Triggered by event F0245_TIMELINE_ProcessEvent5_Square_Corridor */ + k7_SensorFloorCreature = 7, // @ C007_SENSOR_FLOOR_CREATURE /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ + k8_SensorFloorPartyPossession = 8, // @ C008_SENSOR_FLOOR_PARTY_POSSESSION /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ + k9_SensorFloorVersionChecker = 9, // @ C009_SENSOR_FLOOR_VERSION_CHECKER /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ + k1_SensorWallOrnClick = 1, // @ C001_SENSOR_WALL_ORNAMENT_CLICK /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ + k2_SensorWallOrnClickWithAnyObj = 2, // @ C002_SENSOR_WALL_ORNAMENT_CLICK_WITH_ANY_OBJECT /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ + k3_SensorWallOrnClickWithSpecObj = 3, // @ C003_SENSOR_WALL_ORNAMENT_CLICK_WITH_SPECIFIC_OBJECT /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ + k4_SensorWallOrnClickWithSpecObjRemoved = 4, // @ C004_SENSOR_WALL_ORNAMENT_CLICK_WITH_SPECIFIC_OBJECT_REMOVED /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ + k5_SensorWallAndOrGate = 5, // @ C005_SENSOR_WALL_AND_OR_GATE /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ + k6_SensorWallCountdown = 6, // @ C006_SENSOR_WALL_COUNTDOWN /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ + k7_SensorWallSingleProjLauncherNewObj = 7, // @ C007_SENSOR_WALL_SINGLE_PROJECTILE_LAUNCHER_NEW_OBJECT /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ + k8_SensorWallSingleProjLauncherExplosion = 8, // @ C008_SENSOR_WALL_SINGLE_PROJECTILE_LAUNCHER_EXPLOSION /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ + k9_SensorWallDoubleProjLauncherNewObj = 9, // @ C009_SENSOR_WALL_DOUBLE_PROJECTILE_LAUNCHER_NEW_OBJECT /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ + k10_SensorWallDoubleProjLauncherExplosion = 10, // @ C010_SENSOR_WALL_DOUBLE_PROJECTILE_LAUNCHER_EXPLOSION /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ + k11_SensorWallOrnClickWithSpecObjRemovedRotateSensors = 11, // @ C011_SENSOR_WALL_ORNAMENT_CLICK_WITH_SPECIFIC_OBJECT_REMOVED_ROTATE_SENSORS /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ + k12_SensorWallObjGeneratorRotateSensors = 12, // @ C012_SENSOR_WALL_OBJECT_GENERATOR_ROTATE_SENSORS /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ + k13_SensorWallSingleObjStorageRotateSensors = 13, // @ C013_SENSOR_WALL_SINGLE_OBJECT_STORAGE_ROTATE_SENSORS /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ + k14_SensorWallSingleProjLauncherSquareObj = 14, // @ C014_SENSOR_WALL_SINGLE_PROJECTILE_LAUNCHER_SQUARE_OBJECT /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ + k15_SensorWallDoubleProjLauncherSquareObj = 15, // @ C015_SENSOR_WALL_DOUBLE_PROJECTILE_LAUNCHER_SQUARE_OBJECT /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ + k16_SensorWallObjExchanger = 16, // @ C016_SENSOR_WALL_OBJECT_EXCHANGER /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ + k17_SensorWallOrnClickWithSpecObjRemovedSensor = 17, // @ C017_SENSOR_WALL_ORNAMENT_CLICK_WITH_SPECIFIC_OBJECT_REMOVED_REMOVE_SENSOR /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ + k18_SensorWallEndGame = 18, // @ C018_SENSOR_WALL_END_GAME /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ + k127_SensorWallChampionPortrait = 127 // @ C127_SENSOR_WALL_CHAMPION_PORTRAIT /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ +}; + +#define k0x8000_randomDrop 0x8000 // @ MASK0x8000_RANDOM_DROP + +enum WeaponType { + k2_WeaponTypeTorch = 2, // @ C02_WEAPON_TORCH + k8_WeaponTypeDagger = 8, // @ C08_WEAPON_DAGGER + k9_WeaponTypeFalchion = 9, // @ C09_WEAPON_FALCHION + k10_WeaponTypeSword = 10, // @ C10_WEAPON_SWORD + k23_WeaponTypeClub = 23, // @ C23_WEAPON_CLUB + k24_WeaponTypeStoneClub = 24, // @ C24_WEAPON_STONE_CLUB + k27_WeaponTypeArrow = 27, // @ C27_WEAPON_ARROW + k28_WeaponTypeSlayer = 28, // @ C28_WEAPON_SLAYER + k30_WeaponTypeRock = 30, // @ C30_WEAPON_ROCK + k31_WeaponTypePoisonDart = 31, // @ C31_WEAPON_POISON_DART + k32_WeaponTypeThrowingStar = 32 // @ C32_WEAPON_THROWING_STAR +}; + +enum ArmourType { + k30_ArmourTypeWoodenShield = 30, // @ C30_ARMOUR_WOODEN_SHIELD + k38_ArmourTypeArmet = 38, // @ C38_ARMOUR_ARMET + k39_ArmourTypeTorsoPlate = 39, // @ C39_ARMOUR_TORSO_PLATE + k40_ArmourTypeLegPlate = 40, // @ C40_ARMOUR_LEG_PLATE + k41_ArmourTypeFootPlate = 41 // @ C41_ARMOUR_FOOT_PLATE +}; + +enum PotionType { + k3_PotionTypeVen = 3, // @ C03_POTION_VEN_POTION, + k6_PotionTypeRos = 6, // @ C06_POTION_ROS_POTION, + k7_PotionTypeKu = 7, // @ C07_POTION_KU_POTION, + k8_PotionTypeDane = 8, // @ C08_POTION_DANE_POTION, + k9_PotionTypeNeta = 9, // @ C09_POTION_NETA_POTION, + k10_PotionTypeAntivenin = 10, // @ C10_POTION_ANTIVENIN, + k11_PotionTypeMon = 11, // @ C11_POTION_MON_POTION, + k12_PotionTypeYa = 12, // @ C12_POTION_YA_POTION, + k13_PotionTypeEe = 13, // @ C13_POTION_EE_POTION, + k14_PotionTypeVi = 14, // @ C14_POTION_VI_POTION, + k15_PotionTypeWaterFlask = 15, // @ C15_POTION_WATER_FLASK, + k19_PotionTypeFulBomb = 19, // @ C19_POTION_FUL_BOMB, + k20_PotionTypeEmptyFlask = 20 // @ C20_POTION_EMPTY_FLASK, +}; + +enum JunkType { + k1_JunkTypeWaterskin = 1, // @ C01_JUNK_WATERSKIN, + k5_JunkTypeBones = 5, // @ C05_JUNK_BONES, + k25_JunkTypeBoulder = 25, // @ C25_JUNK_BOULDER, + k33_JunkTypeScreamerSlice = 33, // @ C33_JUNK_SCREAMER_SLICE, + k34_JunkTypeWormRound = 34, // @ C34_JUNK_WORM_ROUND, + k35_JunkTypeDrumstickShank = 35, // @ C35_JUNK_DRUMSTICK_SHANK, + k36_JunkTypeDragonSteak = 36, // @ C36_JUNK_DRAGON_STEAK, + k42_JunkTypeMagicalBoxBlue = 42, // @ C42_JUNK_MAGICAL_BOX_BLUE, + k43_JunkTypeMagicalBoxGreen = 43, // @ C43_JUNK_MAGICAL_BOX_GREEN, + k51_JunkTypeZokathra = 51 // @ C51_JUNK_ZOKATHRA, +}; + +#define kM1_soundModeDoNotPlaySound -1 // @ CM1_MODE_DO_NOT_PLAY_SOUND +#define k0_soundModePlayImmediately 0 // @ C00_MODE_PLAY_IMMEDIATELY +#define k1_soundModePlayIfPrioritized 1 // @ C01_MODE_PLAY_IF_PRIORITIZED +#define k2_soundModePlayOneTickLater 2 // @ C02_MODE_PLAY_ONE_TICK_LATER + +#define k0_ExplosionType_Fireball 0 // @ C000_EXPLOSION_FIREBALL +#define k1_ExplosionType_Slime 1 // @ C001_EXPLOSION_SLIME +#define k2_ExplosionType_LightningBolt 2 // @ C002_EXPLOSION_LIGHTNING_BOLT +#define k3_ExplosionType_HarmNonMaterial 3 // @ C003_EXPLOSION_HARM_NON_MATERIAL +#define k4_ExplosionType_OpenDoor 4 // @ C004_EXPLOSION_OPEN_DOOR +#define k6_ExplosionType_PoisonBolt 6 // @ C006_EXPLOSION_POISON_BOLT +#define k7_ExplosionType_PoisonCloud 7 // @ C007_EXPLOSION_POISON_CLOUD +#define k40_ExplosionType_Smoke 40 // @ C040_EXPLOSION_SMOKE +#define k50_ExplosionType_Fluxcage 50 // @ C050_EXPLOSION_FLUXCAGE +#define k100_ExplosionType_RebirthStep1 100 // @ C100_EXPLOSION_REBIRTH_STEP1 +#define k101_ExplosionType_RebirthStep2 101 // @ C101_EXPLOSION_REBIRTH_STEP2 + +enum SquareMask { + k0x0001_WallWestRandOrnAllowed = 0x1, // @ MASK0x0001_WALL_WEST_RANDOM_ORNAMENT_ALLOWED + k0x0002_WallSouthRandOrnAllowed = 0x2, // @ MASK0x0002_WALL_SOUTH_RANDOM_ORNAMENT_ALLOWED + k0x0004_WallEastRandOrnAllowed = 0x4, // @ MASK0x0004_WALL_EAST_RANDOM_ORNAMENT_ALLOWED + k0x0008_WallNorthRandOrnAllowed = 0x8, // @ MASK0x0008_WALL_NORTH_RANDOM_ORNAMENT_ALLOWED + k0x0008_CorridorRandOrnAllowed = 0x8, // @ MASK0x0008_CORRIDOR_RANDOM_ORNAMENT_ALLOWED + k0x0001_PitImaginary = 0x1, // @ MASK0x0001_PIT_IMAGINARY + k0x0004_PitInvisible = 0x4, // @ MASK0x0004_PIT_INVISIBLE + k0x0008_PitOpen = 0x8, // @ MASK0x0008_PIT_OPEN + k0x0004_StairsUp = 0x4, // @ MASK0x0004_STAIRS_UP + k0x0008_StairsNorthSouthOrient = 0x8, // @ MASK0x0008_STAIRS_NORTH_SOUTH_ORIENTATION + k0x0008_DoorNorthSouthOrient = 0x8, // @ MASK0x0008_DOOR_NORTH_SOUTH_ORIENTATION + k0x0004_TeleporterVisible = 0x4, // @ MASK0x0004_TELEPORTER_VISIBLE + k0x0008_TeleporterOpen = 0x8, // @ MASK0x0008_TELEPORTER_OPEN + k0x0001_FakeWallImaginary = 0x1, // @ MASK0x0001_FAKEWALL_IMAGINARY + k0x0004_FakeWallOpen = 0x4, // @ MASK0x0004_FAKEWALL_OPEN + k0x0008_FakeWallRandOrnOrFootPAllowed = 0x8, // @ MASK0x0008_FAKEWALL_RANDOM_ORNAMENT_OR_FOOTPRINTS_ALLOWED + k0x0010_ThingListPresent = 0x10, // @ MASK0x0010_THING_LIST_PRESENT + k0x8000_DecodeEvenIfInvisible = 0x8000 // @ MASK0x8000_DECODE_EVEN_IF_INVISIBLE +}; + +enum SquareType { + kM2_ChampionElemType = -2, // @ CM2_ELEMENT_CHAMPION + kM1_CreatureElemType = -1, // @ CM1_ELEMENT_CREATURE + k0_WallElemType = 0, // @ C00_ELEMENT_WALL + k1_CorridorElemType = 1, // @ C01_ELEMENT_CORRIDOR + k2_PitElemType = 2, // @ C02_ELEMENT_PIT + k3_StairsElemType = 3, // @ C03_ELEMENT_STAIRS + k4_DoorElemType = 4, // @ C04_ELEMENT_DOOR + k5_TeleporterElemType = 5, // @ C05_ELEMENT_TELEPORTER + k6_FakeWallElemType = 6, // @ C06_ELEMENT_FAKEWALL + k16_DoorSideElemType = 16, // @ C16_ELEMENT_DOOR_SIDE + k17_DoorFrontElemType = 17, // @ C17_ELEMENT_DOOR_FRONT + k18_StairsSideElemType = 18, // @ C18_ELEMENT_STAIRS_SIDE + k19_StairsFrontElemType = 19 // @ C19_ELEMENT_STAIRS_FRONT +}; // @ C[-2..19]_ELEMENT_... + +#define k0x8000_championBones 0x8000 // @ MASK0x8000_CHAMPION_BONES +#define k0x7FFF_thingType 0x7FFF // @ MASK0x7FFF_THING_TYPE + class ObjectInfoIndex { public: int16 _type; @@ -95,11 +301,6 @@ public: } }; // @ OBJECT_INFO -enum ArmourAttribute { - k0x0080_ArmourAttributeIsAShield = 0x0080, // @ MASK0x0080_IS_A_SHIELD - k0x0007_ArmourAttributeSharpDefense = 0x0007 // @ MASK0x0007_SHARP_DEFENSE -}; - class ArmourInfo { public: uint16 _weight; @@ -114,24 +315,7 @@ public: void setAttribute(ArmourAttribute attribute) { _attributes |= attribute; } }; // @ ARMOUR_INFO -#define kM1_WeaponClassNone -1 -/* Class 0: SWING weapons */ -#define k0_WeaponClassSwingWeapon 0 // @ C000_CLASS_SWING_WEAPON -/* Class 1 to 15: THROW weapons */ -#define k2_WeaponClassDaggerAndAxes 2 // @ C002_CLASS_DAGGER_AND_AXES -#define k10_WeaponClassBowAmmunition 10 // @ C010_CLASS_BOW_AMMUNITION -#define k11_WeaponClassSlingAmmunition 11 // @ C011_CLASS_SLING_AMMUNITION -#define k12_WeaponClassPoisinDart 12 // @ C012_CLASS_POISON_DART -/* Class 16 to 111: SHOOT weapons */ -#define k16_WeaponClassFirstBow 16 // @ C016_CLASS_FIRST_BOW -#define k31_WeaponClassLastBow 31 // @ C031_CLASS_LAST_BOW -#define k32_WeaponClassFirstSling 32 // @ C032_CLASS_FIRST_SLING -#define k47_WeaponClassLastSling 47 // @ C047_CLASS_LAST_SLING -/* Class 112 to 255: Magic and special weapons */ -#define k112_WeaponClassFirstMagicWeapon 112 // @ C112_CLASS_FIRST_MAGIC_WEAPON - class WeaponInfo { - public: uint16 _weight; uint16 _class; @@ -148,33 +332,6 @@ public: uint16 getProjectileAspectOrdinal() { return (_attributes >> 8) & 0x1F; } // @ M66_PROJECTILE_ASPECT_ORDINAL }; // @ WEAPON_INFO -enum TextType { - /* Used for text on walls */ - k0_TextTypeInscription = 0, // @ C0_TEXT_TYPE_INSCRIPTION - /* Used for messages displayed when the party walks on a square */ - k1_TextTypeMessage = 1, // @ C1_TEXT_TYPE_MESSAGE - /* Used for text on scrolls and champion information */ - k2_TextTypeScroll = 2 // @ C2_TEXT_TYPE_SCROLL -}; - -enum SquareAspectIndice { - k0_ElementAspect = 0, // @ C0_ELEMENT - k1_FirstGroupOrObjectAspect = 1, // @ C1_FIRST_GROUP_OR_OBJECT - k2_RightWallOrnOrdAspect = 2, // @ C2_RIGHT_WALL_ORNAMENT_ORDINAL - k3_FrontWallOrnOrdAspect = 3, // @ C3_FRONT_WALL_ORNAMENT_ORDINAL - k4_LeftWallOrnOrdAspect = 4, // @ C4_LEFT_WALL_ORNAMENT_ORDINAL - k2_PitInvisibleAspect = 2, // @ C2_PIT_INVISIBLE - k2_TeleporterVisibleAspect = 2, // @ C2_TELEPORTER_VISIBLE - k2_StairsUpAspect = 2, // @ C2_STAIRS_UP - k2_DoorStateAspect = 2, // @ C2_DOOR_STATE - k3_DoorThingIndexAspect = 3, // @ C3_DOOR_THING_INDEX - k4_FloorOrnOrdAspect = 4, // @ C4_FLOOR_ORNAMENT_ORDINAL - k0x8000_FootprintsAspect = 0x8000 // @ MASK0x8000_FOOTPRINTS -}; - -#define k15_immuneToFire 15 // @ C15_IMMUNE_TO_FIRE -#define k15_immuneToPoison 15 // @ C15_IMMUNE_TO_POISON - class CreatureInfo { public: byte _creatureAspectIndex; @@ -220,11 +377,6 @@ public: byte getType() { return _attributes & 1; } }; // @ DOOR -enum TeleporterScope { - k0x0001_TelepScopeCreatures = 1, // @ MASK0x0001_SCOPE_CREATURES - k0x0002_TelepScopeObjOrParty = 2 // @ MASK0x0002_SCOPE_OBJECTS_OR_PARTY -}; - class Teleporter { Thing _nextThing; uint16 _attributes; @@ -253,47 +405,6 @@ public: void setVisible(bool visible) { _textDataRef = (_textDataRef & ~1) | (visible ? 1 : 0); } }; // @ TEXTSTRING -enum SensorActionType { - kM1_SensorEffNone = -1, // @ CM1_EFFECT_NONE - k0_SensorEffSet = 0, // @ C00_EFFECT_SET - k1_SensorEffClear = 1, // @ C01_EFFECT_CLEAR - k2_SensorEffToggle = 2, // @ C02_EFFECT_TOGGLE - k3_SensorEffHold = 3, // @ C03_EFFECT_HOLD - k10_SensorEffAddExp = 10 // @ C10_EFFECT_ADD_EXPERIENCE -}; - -enum SensorType { - k0_SensorDisabled = 0, // @ C000_SENSOR_DISABLED /* Never triggered, may be used for a floor or wall ornament */ - k1_SensorFloorTheronPartyCreatureObj = 1, // @ C001_SENSOR_FLOOR_THERON_PARTY_CREATURE_OBJECT /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ - k2_SensorFloorTheronPartyCreature = 2, // @ C002_SENSOR_FLOOR_THERON_PARTY_CREATURE /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ - k3_SensorFloorParty = 3, // @ C003_SENSOR_FLOOR_PARTY /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ - k4_SensorFloorObj = 4, // @ C004_SENSOR_FLOOR_OBJECT /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ - k5_SensorFloorPartyOnStairs = 5, // @ C005_SENSOR_FLOOR_PARTY_ON_STAIRS /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ - k6_SensorFloorGroupGenerator = 6, // @ C006_SENSOR_FLOOR_GROUP_GENERATOR /* Triggered by event F0245_TIMELINE_ProcessEvent5_Square_Corridor */ - k7_SensorFloorCreature = 7, // @ C007_SENSOR_FLOOR_CREATURE /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ - k8_SensorFloorPartyPossession = 8, // @ C008_SENSOR_FLOOR_PARTY_POSSESSION /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ - k9_SensorFloorVersionChecker = 9, // @ C009_SENSOR_FLOOR_VERSION_CHECKER /* Triggered by party/thing F0276_SENSOR_ProcessThingAdditionOrRemoval */ - k1_SensorWallOrnClick = 1, // @ C001_SENSOR_WALL_ORNAMENT_CLICK /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ - k2_SensorWallOrnClickWithAnyObj = 2, // @ C002_SENSOR_WALL_ORNAMENT_CLICK_WITH_ANY_OBJECT /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ - k3_SensorWallOrnClickWithSpecObj = 3, // @ C003_SENSOR_WALL_ORNAMENT_CLICK_WITH_SPECIFIC_OBJECT /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ - k4_SensorWallOrnClickWithSpecObjRemoved = 4, // @ C004_SENSOR_WALL_ORNAMENT_CLICK_WITH_SPECIFIC_OBJECT_REMOVED /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ - k5_SensorWallAndOrGate = 5, // @ C005_SENSOR_WALL_AND_OR_GATE /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ - k6_SensorWallCountdown = 6, // @ C006_SENSOR_WALL_COUNTDOWN /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ - k7_SensorWallSingleProjLauncherNewObj = 7, // @ C007_SENSOR_WALL_SINGLE_PROJECTILE_LAUNCHER_NEW_OBJECT /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ - k8_SensorWallSingleProjLauncherExplosion = 8, // @ C008_SENSOR_WALL_SINGLE_PROJECTILE_LAUNCHER_EXPLOSION /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ - k9_SensorWallDoubleProjLauncherNewObj = 9, // @ C009_SENSOR_WALL_DOUBLE_PROJECTILE_LAUNCHER_NEW_OBJECT /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ - k10_SensorWallDoubleProjLauncherExplosion = 10, // @ C010_SENSOR_WALL_DOUBLE_PROJECTILE_LAUNCHER_EXPLOSION /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ - k11_SensorWallOrnClickWithSpecObjRemovedRotateSensors = 11, // @ C011_SENSOR_WALL_ORNAMENT_CLICK_WITH_SPECIFIC_OBJECT_REMOVED_ROTATE_SENSORS /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ - k12_SensorWallObjGeneratorRotateSensors = 12, // @ C012_SENSOR_WALL_OBJECT_GENERATOR_ROTATE_SENSORS /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ - k13_SensorWallSingleObjStorageRotateSensors = 13, // @ C013_SENSOR_WALL_SINGLE_OBJECT_STORAGE_ROTATE_SENSORS /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ - k14_SensorWallSingleProjLauncherSquareObj = 14, // @ C014_SENSOR_WALL_SINGLE_PROJECTILE_LAUNCHER_SQUARE_OBJECT /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ - k15_SensorWallDoubleProjLauncherSquareObj = 15, // @ C015_SENSOR_WALL_DOUBLE_PROJECTILE_LAUNCHER_SQUARE_OBJECT /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ - k16_SensorWallObjExchanger = 16, // @ C016_SENSOR_WALL_OBJECT_EXCHANGER /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ - k17_SensorWallOrnClickWithSpecObjRemovedSensor = 17, // @ C017_SENSOR_WALL_ORNAMENT_CLICK_WITH_SPECIFIC_OBJECT_REMOVED_REMOVE_SENSOR /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ - k18_SensorWallEndGame = 18, // @ C018_SENSOR_WALL_END_GAME /* Triggered by event F0248_TIMELINE_ProcessEvent6_Square_Wall */ - k127_SensorWallChampionPortrait = 127 // @ C127_SENSOR_WALL_CHAMPION_PORTRAIT /* Triggered by player click F0275_SENSOR_IsTriggeredByClickOnWall */ -}; - class Sensor { Thing _nextThing; uint16 _datAndType; @@ -332,22 +443,6 @@ public: }; // @ SENSOR - -#define k0x8000_randomDrop 0x8000 // @ MASK0x8000_RANDOM_DROP - -enum WeaponType { - k2_WeaponTypeTorch = 2, // @ C02_WEAPON_TORCH - k8_WeaponTypeDagger = 8, // @ C08_WEAPON_DAGGER - k9_WeaponTypeFalchion = 9, // @ C09_WEAPON_FALCHION - k10_WeaponTypeSword = 10, // @ C10_WEAPON_SWORD - k23_WeaponTypeClub = 23, // @ C23_WEAPON_CLUB - k24_WeaponTypeStoneClub = 24, // @ C24_WEAPON_STONE_CLUB - k27_WeaponTypeArrow = 27, // @ C27_WEAPON_ARROW - k28_WeaponTypeSlayer = 28, // @ C28_WEAPON_SLAYER - k30_WeaponTypeRock = 30, // @ C30_WEAPON_ROCK - k31_WeaponTypePoisonDart = 31, // @ C31_WEAPON_POISON_DART - k32_WeaponTypeThrowingStar = 32 // @ C32_WEAPON_THROWING_STAR -}; class Weapon { Thing _nextThing; uint16 _desc; @@ -375,13 +470,6 @@ public: void setDoNotDiscard(uint16 val) { _desc = (_desc & ~(1 << 7)) | ((val & 1) << 7); } }; // @ WEAPON -enum ArmourType { - k30_ArmourTypeWoodenShield = 30, // @ C30_ARMOUR_WOODEN_SHIELD - k38_ArmourTypeArmet = 38, // @ C38_ARMOUR_ARMET - k39_ArmourTypeTorsoPlate = 39, // @ C39_ARMOUR_TORSO_PLATE - k40_ArmourTypeLegPlate = 40, // @ C40_ARMOUR_LEG_PLATE - k41_ArmourTypeFootPlate = 41 // @ C41_ARMOUR_FOOT_PLATE -}; class Armour { Thing _nextThing; uint16 _attributes; @@ -417,21 +505,6 @@ public: uint16 getTextStringThingIndex() { return _attributes & 0x3FF; } }; // @ SCROLL -enum PotionType { - k3_PotionTypeVen = 3, // @ C03_POTION_VEN_POTION, - k6_PotionTypeRos = 6, // @ C06_POTION_ROS_POTION, - k7_PotionTypeKu = 7, // @ C07_POTION_KU_POTION, - k8_PotionTypeDane = 8, // @ C08_POTION_DANE_POTION, - k9_PotionTypeNeta = 9, // @ C09_POTION_NETA_POTION, - k10_PotionTypeAntivenin = 10, // @ C10_POTION_ANTIVENIN, - k11_PotionTypeMon = 11, // @ C11_POTION_MON_POTION, - k12_PotionTypeYa = 12, // @ C12_POTION_YA_POTION, - k13_PotionTypeEe = 13, // @ C13_POTION_EE_POTION, - k14_PotionTypeVi = 14, // @ C14_POTION_VI_POTION, - k15_PotionTypeWaterFlask = 15, // @ C15_POTION_WATER_FLASK, - k19_PotionTypeFulBomb = 19, // @ C19_POTION_FUL_BOMB, - k20_PotionTypeEmptyFlask = 20 // @ C20_POTION_EMPTY_FLASK, -}; class Potion { public: Thing _nextThing; @@ -458,19 +531,6 @@ public: Thing &getNextThing() { return _nextThing; } }; // @ CONTAINER -enum JunkType { - k1_JunkTypeWaterskin = 1, // @ C01_JUNK_WATERSKIN, - k5_JunkTypeBones = 5, // @ C05_JUNK_BONES, - k25_JunkTypeBoulder = 25, // @ C25_JUNK_BOULDER, - k33_JunkTypeScreamerSlice = 33, // @ C33_JUNK_SCREAMER_SLICE, - k34_JunkTypeWormRound = 34, // @ C34_JUNK_WORM_ROUND, - k35_JunkTypeDrumstickShank = 35, // @ C35_JUNK_DRUMSTICK_SHANK, - k36_JunkTypeDragonSteak = 36, // @ C36_JUNK_DRAGON_STEAK, - k42_JunkTypeMagicalBoxBlue = 42, // @ C42_JUNK_MAGICAL_BOX_BLUE, - k43_JunkTypeMagicalBoxGreen = 43, // @ C43_JUNK_MAGICAL_BOX_GREEN, - k51_JunkTypeZokathra = 51 // @ C51_JUNK_ZOKATHRA, -}; - class Junk { Thing _nextThing; uint16 _attributes; @@ -488,11 +548,6 @@ public: void setNextThing(Thing thing) { _nextThing = thing; } }; // @ JUNK -#define kM1_soundModeDoNotPlaySound -1 // @ CM1_MODE_DO_NOT_PLAY_SOUND -#define k0_soundModePlayImmediately 0 // @ C00_MODE_PLAY_IMMEDIATELY -#define k1_soundModePlayIfPrioritized 1 // @ C01_MODE_PLAY_IF_PRIORITIZED -#define k2_soundModePlayOneTickLater 2 // @ C02_MODE_PLAY_ONE_TICK_LATER - class Projectile { public: Thing _nextThing; @@ -505,18 +560,6 @@ public: }; // @ PROJECTILE -#define k0_ExplosionType_Fireball 0 // @ C000_EXPLOSION_FIREBALL -#define k1_ExplosionType_Slime 1 // @ C001_EXPLOSION_SLIME -#define k2_ExplosionType_LightningBolt 2 // @ C002_EXPLOSION_LIGHTNING_BOLT -#define k3_ExplosionType_HarmNonMaterial 3 // @ C003_EXPLOSION_HARM_NON_MATERIAL -#define k4_ExplosionType_OpenDoor 4 // @ C004_EXPLOSION_OPEN_DOOR -#define k6_ExplosionType_PoisonBolt 6 // @ C006_EXPLOSION_POISON_BOLT -#define k7_ExplosionType_PoisonCloud 7 // @ C007_EXPLOSION_POISON_CLOUD -#define k40_ExplosionType_Smoke 40 // @ C040_EXPLOSION_SMOKE -#define k50_ExplosionType_Fluxcage 50 // @ C050_EXPLOSION_FLUXCAGE -#define k100_ExplosionType_RebirthStep1 100 // @ C100_EXPLOSION_REBIRTH_STEP1 -#define k101_ExplosionType_RebirthStep2 101 // @ C101_EXPLOSION_REBIRTH_STEP2 - class Explosion { Thing _nextThing; uint16 _attributes; @@ -533,47 +576,6 @@ public: void setCentered(uint16 val) { _attributes = (_attributes & ~(1 << 7)) | ((val & 1) << 7); } }; // @ EXPLOSION - -enum SquareMask { - k0x0001_WallWestRandOrnAllowed = 0x1, // @ MASK0x0001_WALL_WEST_RANDOM_ORNAMENT_ALLOWED - k0x0002_WallSouthRandOrnAllowed = 0x2, // @ MASK0x0002_WALL_SOUTH_RANDOM_ORNAMENT_ALLOWED - k0x0004_WallEastRandOrnAllowed = 0x4, // @ MASK0x0004_WALL_EAST_RANDOM_ORNAMENT_ALLOWED - k0x0008_WallNorthRandOrnAllowed = 0x8, // @ MASK0x0008_WALL_NORTH_RANDOM_ORNAMENT_ALLOWED - k0x0008_CorridorRandOrnAllowed = 0x8, // @ MASK0x0008_CORRIDOR_RANDOM_ORNAMENT_ALLOWED - k0x0001_PitImaginary = 0x1, // @ MASK0x0001_PIT_IMAGINARY - k0x0004_PitInvisible = 0x4, // @ MASK0x0004_PIT_INVISIBLE - k0x0008_PitOpen = 0x8, // @ MASK0x0008_PIT_OPEN - k0x0004_StairsUp = 0x4, // @ MASK0x0004_STAIRS_UP - k0x0008_StairsNorthSouthOrient = 0x8, // @ MASK0x0008_STAIRS_NORTH_SOUTH_ORIENTATION - k0x0008_DoorNorthSouthOrient = 0x8, // @ MASK0x0008_DOOR_NORTH_SOUTH_ORIENTATION - k0x0004_TeleporterVisible = 0x4, // @ MASK0x0004_TELEPORTER_VISIBLE - k0x0008_TeleporterOpen = 0x8, // @ MASK0x0008_TELEPORTER_OPEN - k0x0001_FakeWallImaginary = 0x1, // @ MASK0x0001_FAKEWALL_IMAGINARY - k0x0004_FakeWallOpen = 0x4, // @ MASK0x0004_FAKEWALL_OPEN - k0x0008_FakeWallRandOrnOrFootPAllowed = 0x8, // @ MASK0x0008_FAKEWALL_RANDOM_ORNAMENT_OR_FOOTPRINTS_ALLOWED - k0x0010_ThingListPresent = 0x10, // @ MASK0x0010_THING_LIST_PRESENT - k0x8000_DecodeEvenIfInvisible = 0x8000 // @ MASK0x8000_DECODE_EVEN_IF_INVISIBLE -}; - -enum SquareType { - kM2_ChampionElemType = -2, // @ CM2_ELEMENT_CHAMPION - kM1_CreatureElemType = -1, // @ CM1_ELEMENT_CREATURE - k0_WallElemType = 0, // @ C00_ELEMENT_WALL - k1_CorridorElemType = 1, // @ C01_ELEMENT_CORRIDOR - k2_PitElemType = 2, // @ C02_ELEMENT_PIT - k3_StairsElemType = 3, // @ C03_ELEMENT_STAIRS - k4_DoorElemType = 4, // @ C04_ELEMENT_DOOR - k5_TeleporterElemType = 5, // @ C05_ELEMENT_TELEPORTER - k6_FakeWallElemType = 6, // @ C06_ELEMENT_FAKEWALL - k16_DoorSideElemType = 16, // @ C16_ELEMENT_DOOR_SIDE - k17_DoorFrontElemType = 17, // @ C17_ELEMENT_DOOR_FRONT - k18_StairsSideElemType = 18, // @ C18_ELEMENT_STAIRS_SIDE - k19_StairsFrontElemType = 19 // @ C19_ELEMENT_STAIRS_FRONT -}; // @ C[-2..19]_ELEMENT_... - -#define k0x8000_championBones 0x8000 // @ MASK0x8000_CHAMPION_BONES -#define k0x7FFF_thingType 0x7FFF // @ MASK0x7FFF_THING_TYPE - class Square { byte _data; public: |