36843 lines
1.1 MiB
36843 lines
1.1 MiB
module DFHack
|
|
class ActivityEventType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :TrainingSession ; NUME[:TrainingSession] = 0
|
|
ENUM[1] = :CombatTraining ; NUME[:CombatTraining] = 1
|
|
ENUM[2] = :SkillDemonstration ; NUME[:SkillDemonstration] = 2
|
|
ENUM[3] = :IndividualSkillDrill ; NUME[:IndividualSkillDrill] = 3
|
|
ENUM[4] = :Sparring ; NUME[:Sparring] = 4
|
|
ENUM[5] = :RangedPractice ; NUME[:RangedPractice] = 5
|
|
end
|
|
|
|
class AmmoFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :HAS_EDGE_ATTACK ; NUME[:HAS_EDGE_ATTACK] = 0
|
|
end
|
|
|
|
class AnimalTrainingLevel < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :SemiWild ; NUME[:SemiWild] = 0
|
|
ENUM[1] = :Trained ; NUME[:Trained] = 1
|
|
ENUM[2] = :WellTrained ; NUME[:WellTrained] = 2
|
|
ENUM[3] = :SkilfullyTrained ; NUME[:SkilfullyTrained] = 3
|
|
ENUM[4] = :ExpertlyTrained ; NUME[:ExpertlyTrained] = 4
|
|
ENUM[5] = :ExceptionallyTrained ; NUME[:ExceptionallyTrained] = 5
|
|
ENUM[6] = :MasterfullyTrained ; NUME[:MasterfullyTrained] = 6
|
|
ENUM[7] = :Domesticated ; NUME[:Domesticated] = 7
|
|
ENUM[8] = :Unk8 ; NUME[:Unk8] = 8
|
|
ENUM[9] = :WildUntamed ; NUME[:WildUntamed] = 9
|
|
end
|
|
|
|
class AnnouncementType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :REACHED_PEAK ; NUME[:REACHED_PEAK] = 0
|
|
ENUM[1] = :ERA_CHANGE ; NUME[:ERA_CHANGE] = 1
|
|
ENUM[2] = :FEATURE_DISCOVERY ; NUME[:FEATURE_DISCOVERY] = 2
|
|
ENUM[3] = :STRUCK_DEEP_METAL ; NUME[:STRUCK_DEEP_METAL] = 3
|
|
ENUM[4] = :STRUCK_MINERAL ; NUME[:STRUCK_MINERAL] = 4
|
|
ENUM[5] = :STRUCK_ECONOMIC_MINERAL ; NUME[:STRUCK_ECONOMIC_MINERAL] = 5
|
|
ENUM[6] = :COMBAT_TWIST_WEAPON ; NUME[:COMBAT_TWIST_WEAPON] = 6
|
|
ENUM[7] = :COMBAT_LET_ITEM_DROP ; NUME[:COMBAT_LET_ITEM_DROP] = 7
|
|
ENUM[8] = :COMBAT_START_CHARGE ; NUME[:COMBAT_START_CHARGE] = 8
|
|
ENUM[9] = :COMBAT_SURPRISE_CHARGE ; NUME[:COMBAT_SURPRISE_CHARGE] = 9
|
|
ENUM[10] = :COMBAT_JUMP_DODGE_PROJ ; NUME[:COMBAT_JUMP_DODGE_PROJ] = 10
|
|
ENUM[11] = :COMBAT_JUMP_DODGE_STRIKE ; NUME[:COMBAT_JUMP_DODGE_STRIKE] = 11
|
|
ENUM[12] = :COMBAT_DODGE ; NUME[:COMBAT_DODGE] = 12
|
|
ENUM[13] = :COMBAT_COUNTERSTRIKE ; NUME[:COMBAT_COUNTERSTRIKE] = 13
|
|
ENUM[14] = :COMBAT_BLOCK ; NUME[:COMBAT_BLOCK] = 14
|
|
ENUM[15] = :COMBAT_PARRY ; NUME[:COMBAT_PARRY] = 15
|
|
ENUM[16] = :COMBAT_CHARGE_COLLISION ; NUME[:COMBAT_CHARGE_COLLISION] = 16
|
|
ENUM[17] = :COMBAT_CHARGE_DEFENDER_TUMBLES ; NUME[:COMBAT_CHARGE_DEFENDER_TUMBLES] = 17
|
|
ENUM[18] = :COMBAT_CHARGE_DEFENDER_KNOCKED_OVER ; NUME[:COMBAT_CHARGE_DEFENDER_KNOCKED_OVER] = 18
|
|
ENUM[19] = :COMBAT_CHARGE_ATTACKER_TUMBLES ; NUME[:COMBAT_CHARGE_ATTACKER_TUMBLES] = 19
|
|
ENUM[20] = :COMBAT_CHARGE_ATTACKER_BOUNCE_BACK ; NUME[:COMBAT_CHARGE_ATTACKER_BOUNCE_BACK] = 20
|
|
ENUM[21] = :COMBAT_CHARGE_TANGLE_TOGETHER ; NUME[:COMBAT_CHARGE_TANGLE_TOGETHER] = 21
|
|
ENUM[22] = :COMBAT_CHARGE_TANGLE_TUMBLE ; NUME[:COMBAT_CHARGE_TANGLE_TUMBLE] = 22
|
|
ENUM[23] = :COMBAT_CHARGE_RUSH_BY ; NUME[:COMBAT_CHARGE_RUSH_BY] = 23
|
|
ENUM[24] = :COMBAT_CHARGE_MANAGE_STOP ; NUME[:COMBAT_CHARGE_MANAGE_STOP] = 24
|
|
ENUM[25] = :COMBAT_CHARGE_OBSTACLE_SLAM ; NUME[:COMBAT_CHARGE_OBSTACLE_SLAM] = 25
|
|
ENUM[26] = :COMBAT_WRESTLE_LOCK ; NUME[:COMBAT_WRESTLE_LOCK] = 26
|
|
ENUM[27] = :COMBAT_WRESTLE_CHOKEHOLD ; NUME[:COMBAT_WRESTLE_CHOKEHOLD] = 27
|
|
ENUM[28] = :COMBAT_WRESTLE_TAKEDOWN ; NUME[:COMBAT_WRESTLE_TAKEDOWN] = 28
|
|
ENUM[29] = :COMBAT_WRESTLE_THROW ; NUME[:COMBAT_WRESTLE_THROW] = 29
|
|
ENUM[30] = :COMBAT_WRESTLE_RELEASE_LOCK ; NUME[:COMBAT_WRESTLE_RELEASE_LOCK] = 30
|
|
ENUM[31] = :COMBAT_WRESTLE_RELEASE_CHOKE ; NUME[:COMBAT_WRESTLE_RELEASE_CHOKE] = 31
|
|
ENUM[32] = :COMBAT_WRESTLE_RELEASE_GRIP ; NUME[:COMBAT_WRESTLE_RELEASE_GRIP] = 32
|
|
ENUM[33] = :COMBAT_WRESTLE_STRUGGLE ; NUME[:COMBAT_WRESTLE_STRUGGLE] = 33
|
|
ENUM[34] = :COMBAT_WRESTLE_RELEASE_LATCH ; NUME[:COMBAT_WRESTLE_RELEASE_LATCH] = 34
|
|
ENUM[35] = :COMBAT_WRESTLE_STRANGLE_KO ; NUME[:COMBAT_WRESTLE_STRANGLE_KO] = 35
|
|
ENUM[36] = :COMBAT_WRESTLE_ADJUST_GRIP ; NUME[:COMBAT_WRESTLE_ADJUST_GRIP] = 36
|
|
ENUM[37] = :COMBAT_GRAB_TEAR ; NUME[:COMBAT_GRAB_TEAR] = 37
|
|
ENUM[38] = :COMBAT_STRIKE_DETAILS ; NUME[:COMBAT_STRIKE_DETAILS] = 38
|
|
ENUM[39] = :COMBAT_STRIKE_DETAILS_2 ; NUME[:COMBAT_STRIKE_DETAILS_2] = 39
|
|
ENUM[40] = :COMBAT_EVENT_ENRAGED ; NUME[:COMBAT_EVENT_ENRAGED] = 40
|
|
ENUM[41] = :COMBAT_EVENT_STUCKIN ; NUME[:COMBAT_EVENT_STUCKIN] = 41
|
|
ENUM[42] = :COMBAT_EVENT_LATCH_BP ; NUME[:COMBAT_EVENT_LATCH_BP] = 42
|
|
ENUM[43] = :COMBAT_EVENT_LATCH_GENERAL ; NUME[:COMBAT_EVENT_LATCH_GENERAL] = 43
|
|
ENUM[44] = :COMBAT_EVENT_PROPELLED_AWAY ; NUME[:COMBAT_EVENT_PROPELLED_AWAY] = 44
|
|
ENUM[45] = :COMBAT_EVENT_KNOCKED_OUT ; NUME[:COMBAT_EVENT_KNOCKED_OUT] = 45
|
|
ENUM[46] = :COMBAT_EVENT_STUNNED ; NUME[:COMBAT_EVENT_STUNNED] = 46
|
|
ENUM[47] = :COMBAT_EVENT_WINDED ; NUME[:COMBAT_EVENT_WINDED] = 47
|
|
ENUM[48] = :COMBAT_EVENT_NAUSEATED ; NUME[:COMBAT_EVENT_NAUSEATED] = 48
|
|
ENUM[49] = :MIGRANT_ARRIVAL_NAMED ; NUME[:MIGRANT_ARRIVAL_NAMED] = 49
|
|
ENUM[50] = :MIGRANT_ARRIVAL ; NUME[:MIGRANT_ARRIVAL] = 50
|
|
ENUM[51] = :DIG_CANCEL_WARM ; NUME[:DIG_CANCEL_WARM] = 51
|
|
ENUM[52] = :DIG_CANCEL_DAMP ; NUME[:DIG_CANCEL_DAMP] = 52
|
|
ENUM[53] = :AMBUSH_DEFENDER ; NUME[:AMBUSH_DEFENDER] = 53
|
|
ENUM[54] = :AMBUSH_RESIDENT ; NUME[:AMBUSH_RESIDENT] = 54
|
|
ENUM[55] = :AMBUSH_THIEF ; NUME[:AMBUSH_THIEF] = 55
|
|
ENUM[56] = :AMBUSH_THIEF_SUPPORT_SKULKING ; NUME[:AMBUSH_THIEF_SUPPORT_SKULKING] = 56
|
|
ENUM[57] = :AMBUSH_THIEF_SUPPORT_NATURE ; NUME[:AMBUSH_THIEF_SUPPORT_NATURE] = 57
|
|
ENUM[58] = :AMBUSH_THIEF_SUPPORT ; NUME[:AMBUSH_THIEF_SUPPORT] = 58
|
|
ENUM[59] = :AMBUSH_MISCHIEVOUS ; NUME[:AMBUSH_MISCHIEVOUS] = 59
|
|
ENUM[60] = :AMBUSH_SNATCHER ; NUME[:AMBUSH_SNATCHER] = 60
|
|
ENUM[61] = :AMBUSH_SNATCHER_SUPPORT ; NUME[:AMBUSH_SNATCHER_SUPPORT] = 61
|
|
ENUM[62] = :AMBUSH_AMBUSHER_NATURE ; NUME[:AMBUSH_AMBUSHER_NATURE] = 62
|
|
ENUM[63] = :AMBUSH_AMBUSHER ; NUME[:AMBUSH_AMBUSHER] = 63
|
|
ENUM[64] = :AMBUSH_INJURED ; NUME[:AMBUSH_INJURED] = 64
|
|
ENUM[65] = :AMBUSH_OTHER ; NUME[:AMBUSH_OTHER] = 65
|
|
ENUM[66] = :AMBUSH_INCAPACITATED ; NUME[:AMBUSH_INCAPACITATED] = 66
|
|
ENUM[67] = :CARAVAN_ARRIVAL ; NUME[:CARAVAN_ARRIVAL] = 67
|
|
ENUM[68] = :NOBLE_ARRIVAL ; NUME[:NOBLE_ARRIVAL] = 68
|
|
ENUM[69] = :D_MIGRANTS_ARRIVAL ; NUME[:D_MIGRANTS_ARRIVAL] = 69
|
|
ENUM[70] = :D_MIGRANT_ARRIVAL ; NUME[:D_MIGRANT_ARRIVAL] = 70
|
|
ENUM[71] = :D_MIGRANT_ARRIVAL_DISCOURAGED ; NUME[:D_MIGRANT_ARRIVAL_DISCOURAGED] = 71
|
|
ENUM[72] = :D_NO_MIGRANT_ARRIVAL ; NUME[:D_NO_MIGRANT_ARRIVAL] = 72
|
|
ENUM[73] = :ANIMAL_TRAP_CATCH ; NUME[:ANIMAL_TRAP_CATCH] = 73
|
|
ENUM[74] = :ANIMAL_TRAP_ROBBED ; NUME[:ANIMAL_TRAP_ROBBED] = 74
|
|
ENUM[75] = :MISCHIEF_LEVER ; NUME[:MISCHIEF_LEVER] = 75
|
|
ENUM[76] = :MISCHIEF_PLATE ; NUME[:MISCHIEF_PLATE] = 76
|
|
ENUM[77] = :MISCHIEF_CAGE ; NUME[:MISCHIEF_CAGE] = 77
|
|
ENUM[78] = :MISCHIEF_CHAIN ; NUME[:MISCHIEF_CHAIN] = 78
|
|
ENUM[79] = :DIPLOMAT_ARRIVAL ; NUME[:DIPLOMAT_ARRIVAL] = 79
|
|
ENUM[80] = :LIAISON_ARRIVAL ; NUME[:LIAISON_ARRIVAL] = 80
|
|
ENUM[81] = :TRADE_DIPLOMAT_ARRIVAL ; NUME[:TRADE_DIPLOMAT_ARRIVAL] = 81
|
|
ENUM[82] = :CAVE_COLLAPSE ; NUME[:CAVE_COLLAPSE] = 82
|
|
ENUM[83] = :BIRTH_CITIZEN ; NUME[:BIRTH_CITIZEN] = 83
|
|
ENUM[84] = :BIRTH_ANIMAL ; NUME[:BIRTH_ANIMAL] = 84
|
|
ENUM[85] = :STRANGE_MOOD ; NUME[:STRANGE_MOOD] = 85
|
|
ENUM[86] = :MADE_ARTIFACT ; NUME[:MADE_ARTIFACT] = 86
|
|
ENUM[87] = :NAMED_ARTIFACT ; NUME[:NAMED_ARTIFACT] = 87
|
|
ENUM[88] = :ITEM_ATTACHMENT ; NUME[:ITEM_ATTACHMENT] = 88
|
|
ENUM[89] = :VERMIN_CAGE_ESCAPE ; NUME[:VERMIN_CAGE_ESCAPE] = 89
|
|
ENUM[90] = :TRIGGER_WEB ; NUME[:TRIGGER_WEB] = 90
|
|
ENUM[91] = :MOOD_BUILDING_CLAIMED ; NUME[:MOOD_BUILDING_CLAIMED] = 91
|
|
ENUM[92] = :ARTIFACT_BEGUN ; NUME[:ARTIFACT_BEGUN] = 92
|
|
ENUM[93] = :MEGABEAST_ARRIVAL ; NUME[:MEGABEAST_ARRIVAL] = 93
|
|
ENUM[94] = :BERSERK_CITIZEN ; NUME[:BERSERK_CITIZEN] = 94
|
|
ENUM[95] = :MAGMA_DEFACES_ENGRAVING ; NUME[:MAGMA_DEFACES_ENGRAVING] = 95
|
|
ENUM[96] = :ENGRAVING_MELTS ; NUME[:ENGRAVING_MELTS] = 96
|
|
ENUM[97] = :MASTERPIECE_ARCHITECTURE ; NUME[:MASTERPIECE_ARCHITECTURE] = 97
|
|
ENUM[98] = :MASTERPIECE_CONSTRUCTION ; NUME[:MASTERPIECE_CONSTRUCTION] = 98
|
|
ENUM[99] = :MASTER_ARCHITECTURE_LOST ; NUME[:MASTER_ARCHITECTURE_LOST] = 99
|
|
ENUM[100] = :MASTER_CONSTRUCTION_LOST ; NUME[:MASTER_CONSTRUCTION_LOST] = 100
|
|
ENUM[101] = :ADV_AWAKEN ; NUME[:ADV_AWAKEN] = 101
|
|
ENUM[102] = :ADV_SLEEP_INTERRUPTED ; NUME[:ADV_SLEEP_INTERRUPTED] = 102
|
|
ENUM[103] = :CANCEL_JOB ; NUME[:CANCEL_JOB] = 103
|
|
ENUM[104] = :ADV_CREATURE_DEATH ; NUME[:ADV_CREATURE_DEATH] = 104
|
|
ENUM[105] = :CITIZEN_DEATH ; NUME[:CITIZEN_DEATH] = 105
|
|
ENUM[106] = :PET_DEATH ; NUME[:PET_DEATH] = 106
|
|
ENUM[107] = :ENDGAME_EVENT_1 ; NUME[:ENDGAME_EVENT_1] = 107
|
|
ENUM[108] = :ENDGAME_EVENT_2 ; NUME[:ENDGAME_EVENT_2] = 108
|
|
ENUM[109] = :FALL_OVER ; NUME[:FALL_OVER] = 109
|
|
ENUM[110] = :CAUGHT_IN_FLAMES ; NUME[:CAUGHT_IN_FLAMES] = 110
|
|
ENUM[111] = :CAUGHT_IN_WEB ; NUME[:CAUGHT_IN_WEB] = 111
|
|
ENUM[112] = :UNIT_PROJECTILE_SLAM_BLOW_APART ; NUME[:UNIT_PROJECTILE_SLAM_BLOW_APART] = 112
|
|
ENUM[113] = :UNIT_PROJECTILE_SLAM ; NUME[:UNIT_PROJECTILE_SLAM] = 113
|
|
ENUM[114] = :UNIT_PROJECTILE_SLAM_INTO_UNIT ; NUME[:UNIT_PROJECTILE_SLAM_INTO_UNIT] = 114
|
|
ENUM[115] = :VOMIT ; NUME[:VOMIT] = 115
|
|
ENUM[116] = :LOSE_HOLD_OF_ITEM ; NUME[:LOSE_HOLD_OF_ITEM] = 116
|
|
ENUM[117] = :REGAIN_CONSCIOUSNESS ; NUME[:REGAIN_CONSCIOUSNESS] = 117
|
|
ENUM[118] = :FREE_FROM_WEB ; NUME[:FREE_FROM_WEB] = 118
|
|
ENUM[119] = :PARALYZED ; NUME[:PARALYZED] = 119
|
|
ENUM[120] = :OVERCOME_PARALYSIS ; NUME[:OVERCOME_PARALYSIS] = 120
|
|
ENUM[121] = :NOT_STUNNED ; NUME[:NOT_STUNNED] = 121
|
|
ENUM[122] = :EXHAUSTION ; NUME[:EXHAUSTION] = 122
|
|
ENUM[123] = :PAIN_KO ; NUME[:PAIN_KO] = 123
|
|
ENUM[124] = :BREAK_GRIP ; NUME[:BREAK_GRIP] = 124
|
|
ENUM[125] = :NO_BREAK_GRIP ; NUME[:NO_BREAK_GRIP] = 125
|
|
ENUM[126] = :BLOCK_FIRE ; NUME[:BLOCK_FIRE] = 126
|
|
ENUM[127] = :BREATHE_FIRE ; NUME[:BREATHE_FIRE] = 127
|
|
ENUM[128] = :SHOOT_WEB ; NUME[:SHOOT_WEB] = 128
|
|
ENUM[129] = :PULL_OUT_DROP ; NUME[:PULL_OUT_DROP] = 129
|
|
ENUM[130] = :STAND_UP ; NUME[:STAND_UP] = 130
|
|
ENUM[131] = :MARTIAL_TRANCE ; NUME[:MARTIAL_TRANCE] = 131
|
|
ENUM[132] = :MAT_BREATH ; NUME[:MAT_BREATH] = 132
|
|
ENUM[133] = :ADV_REACTION_PRODUCTS ; NUME[:ADV_REACTION_PRODUCTS] = 133
|
|
ENUM[134] = :NIGHT_ATTACK_STARTS ; NUME[:NIGHT_ATTACK_STARTS] = 134
|
|
ENUM[135] = :NIGHT_ATTACK_ENDS ; NUME[:NIGHT_ATTACK_ENDS] = 135
|
|
ENUM[136] = :NIGHT_ATTACK_TRAVEL ; NUME[:NIGHT_ATTACK_TRAVEL] = 136
|
|
ENUM[137] = :GHOST_ATTACK ; NUME[:GHOST_ATTACK] = 137
|
|
ENUM[138] = :LAIR_HUNTER ; NUME[:LAIR_HUNTER] = 138
|
|
ENUM[139] = :TRAVEL_SITE_DISCOVERY ; NUME[:TRAVEL_SITE_DISCOVERY] = 139
|
|
ENUM[140] = :TRAVEL_SITE_BUMP ; NUME[:TRAVEL_SITE_BUMP] = 140
|
|
ENUM[141] = :ADVENTURE_INTRO ; NUME[:ADVENTURE_INTRO] = 141
|
|
ENUM[142] = :CREATURE_SOUND ; NUME[:CREATURE_SOUND] = 142
|
|
ENUM[143] = :CREATURE_STEALS_OBJECT ; NUME[:CREATURE_STEALS_OBJECT] = 143
|
|
ENUM[144] = :FOUND_TRAP ; NUME[:FOUND_TRAP] = 144
|
|
ENUM[145] = :BODY_TRANSFORMATION ; NUME[:BODY_TRANSFORMATION] = 145
|
|
ENUM[146] = :INTERACTION_ACTOR ; NUME[:INTERACTION_ACTOR] = 146
|
|
ENUM[147] = :INTERACTION_TARGET ; NUME[:INTERACTION_TARGET] = 147
|
|
ENUM[148] = :UNDEAD_ATTACK ; NUME[:UNDEAD_ATTACK] = 148
|
|
ENUM[149] = :CITIZEN_MISSING ; NUME[:CITIZEN_MISSING] = 149
|
|
ENUM[150] = :PET_MISSING ; NUME[:PET_MISSING] = 150
|
|
ENUM[151] = :MARKET_CHATTER ; NUME[:MARKET_CHATTER] = 151
|
|
ENUM[152] = :STRANGE_RAIN_SNOW ; NUME[:STRANGE_RAIN_SNOW] = 152
|
|
ENUM[153] = :STRANGE_CLOUD ; NUME[:STRANGE_CLOUD] = 153
|
|
ENUM[154] = :SIMPLE_ANIMAL_ACTION ; NUME[:SIMPLE_ANIMAL_ACTION] = 154
|
|
ENUM[155] = :FLOUNDER_IN_LIQUID ; NUME[:FLOUNDER_IN_LIQUID] = 155
|
|
ENUM[156] = :TRAINING_DOWN_TO_SEMI_WILD ; NUME[:TRAINING_DOWN_TO_SEMI_WILD] = 156
|
|
ENUM[157] = :TRAINING_FULL_REVERSION ; NUME[:TRAINING_FULL_REVERSION] = 157
|
|
ENUM[158] = :ANIMAL_TRAINING_KNOWLEDGE ; NUME[:ANIMAL_TRAINING_KNOWLEDGE] = 158
|
|
ENUM[159] = :SKIP_ON_LIQUID ; NUME[:SKIP_ON_LIQUID] = 159
|
|
ENUM[160] = :DODGE_FLYING_OBJECT ; NUME[:DODGE_FLYING_OBJECT] = 160
|
|
end
|
|
|
|
class ArmorFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :METAL_ARMOR_LEVELS ; NUME[:METAL_ARMOR_LEVELS] = 0
|
|
end
|
|
|
|
class ArmorGeneralFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :SOFT ; NUME[:SOFT] = 0
|
|
ENUM[1] = :HARD ; NUME[:HARD] = 1
|
|
ENUM[2] = :METAL ; NUME[:METAL] = 2
|
|
ENUM[3] = :BARRED ; NUME[:BARRED] = 3
|
|
ENUM[4] = :SCALED ; NUME[:SCALED] = 4
|
|
ENUM[5] = :LEATHER ; NUME[:LEATHER] = 5
|
|
ENUM[6] = :SHAPED ; NUME[:SHAPED] = 6
|
|
ENUM[7] = :CHAIN_METAL_TEXT ; NUME[:CHAIN_METAL_TEXT] = 7
|
|
ENUM[8] = :STRUCTURAL_ELASTICITY_WOVEN_THREAD ; NUME[:STRUCTURAL_ELASTICITY_WOVEN_THREAD] = 8
|
|
ENUM[9] = :STRUCTURAL_ELASTICITY_CHAIN_METAL ; NUME[:STRUCTURAL_ELASTICITY_CHAIN_METAL] = 9
|
|
ENUM[10] = :STRUCTURAL_ELASTICITY_CHAIN_ALL ; NUME[:STRUCTURAL_ELASTICITY_CHAIN_ALL] = 10
|
|
end
|
|
|
|
class ArtFacetType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :OWN_RACE ; NUME[:OWN_RACE] = 0
|
|
ENUM[1] = :FANCIFUL ; NUME[:FANCIFUL] = 1
|
|
ENUM[2] = :GOOD ; NUME[:GOOD] = 2
|
|
ENUM[3] = :EVIL ; NUME[:EVIL] = 3
|
|
end
|
|
|
|
class ArtImageElementType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :CREATURE ; NUME[:CREATURE] = 0
|
|
ENUM[1] = :PLANT ; NUME[:PLANT] = 1
|
|
ENUM[2] = :TREE ; NUME[:TREE] = 2
|
|
ENUM[3] = :SHAPE ; NUME[:SHAPE] = 3
|
|
ENUM[4] = :ITEM ; NUME[:ITEM] = 4
|
|
end
|
|
|
|
class ArtImagePropertyType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :TransitiveVerb ; NUME[:TransitiveVerb] = 0
|
|
ENUM[1] = :IntransitiveVerb ; NUME[:IntransitiveVerb] = 1
|
|
end
|
|
|
|
class ArtImagePropertyVerb < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Withering ; NUME[:Withering] = 0
|
|
ENUM[1] = :SurroundedBy ; NUME[:SurroundedBy] = 1
|
|
ENUM[2] = :Massacring ; NUME[:Massacring] = 2
|
|
ENUM[3] = :Fighting ; NUME[:Fighting] = 3
|
|
ENUM[4] = :Laboring ; NUME[:Laboring] = 4
|
|
ENUM[5] = :Greeting ; NUME[:Greeting] = 5
|
|
ENUM[6] = :Refusing ; NUME[:Refusing] = 6
|
|
ENUM[7] = :Speaking ; NUME[:Speaking] = 7
|
|
ENUM[8] = :Embracing ; NUME[:Embracing] = 8
|
|
ENUM[9] = :StrikingDown ; NUME[:StrikingDown] = 9
|
|
ENUM[10] = :MenacingPose ; NUME[:MenacingPose] = 10
|
|
ENUM[11] = :Traveling ; NUME[:Traveling] = 11
|
|
ENUM[12] = :Raising ; NUME[:Raising] = 12
|
|
ENUM[13] = :Hiding ; NUME[:Hiding] = 13
|
|
ENUM[14] = :LookingConfused ; NUME[:LookingConfused] = 14
|
|
ENUM[15] = :LookingTerrified ; NUME[:LookingTerrified] = 15
|
|
ENUM[16] = :Devouring ; NUME[:Devouring] = 16
|
|
ENUM[17] = :Admiring ; NUME[:Admiring] = 17
|
|
ENUM[18] = :Burning ; NUME[:Burning] = 18
|
|
ENUM[19] = :Weeping ; NUME[:Weeping] = 19
|
|
ENUM[20] = :LookingDejected ; NUME[:LookingDejected] = 20
|
|
ENUM[21] = :Cringing ; NUME[:Cringing] = 21
|
|
ENUM[22] = :Screaming ; NUME[:Screaming] = 22
|
|
ENUM[23] = :SubmissiveGesture ; NUME[:SubmissiveGesture] = 23
|
|
ENUM[24] = :FetalPosition ; NUME[:FetalPosition] = 24
|
|
ENUM[25] = :SmearedIntoSpiral ; NUME[:SmearedIntoSpiral] = 25
|
|
ENUM[26] = :Falling ; NUME[:Falling] = 26
|
|
ENUM[27] = :Dead ; NUME[:Dead] = 27
|
|
ENUM[28] = :Laughing ; NUME[:Laughing] = 28
|
|
ENUM[29] = :LookingOffended ; NUME[:LookingOffended] = 29
|
|
ENUM[30] = :BeingShot ; NUME[:BeingShot] = 30
|
|
ENUM[31] = :PlaintiveGesture ; NUME[:PlaintiveGesture] = 31
|
|
ENUM[32] = :Melting ; NUME[:Melting] = 32
|
|
ENUM[33] = :Shooting ; NUME[:Shooting] = 33
|
|
ENUM[34] = :Torturing ; NUME[:Torturing] = 34
|
|
ENUM[35] = :CommittingDepravedAct ; NUME[:CommittingDepravedAct] = 35
|
|
ENUM[36] = :Praying ; NUME[:Praying] = 36
|
|
ENUM[37] = :Contemplating ; NUME[:Contemplating] = 37
|
|
ENUM[38] = :Cooking ; NUME[:Cooking] = 38
|
|
ENUM[39] = :Engraving ; NUME[:Engraving] = 39
|
|
ENUM[40] = :Prostrating ; NUME[:Prostrating] = 40
|
|
ENUM[41] = :Suffering ; NUME[:Suffering] = 41
|
|
ENUM[42] = :BeingImpaled ; NUME[:BeingImpaled] = 42
|
|
ENUM[43] = :BeingContorted ; NUME[:BeingContorted] = 43
|
|
ENUM[44] = :BeingFlayed ; NUME[:BeingFlayed] = 44
|
|
ENUM[45] = :HangingFrom ; NUME[:HangingFrom] = 45
|
|
ENUM[46] = :BeingMutilated ; NUME[:BeingMutilated] = 46
|
|
ENUM[47] = :TriumphantPose ; NUME[:TriumphantPose] = 47
|
|
end
|
|
|
|
class BiomeType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :MOUNTAIN ; NUME[:MOUNTAIN] = 0
|
|
ENUM[1] = :GLACIER ; NUME[:GLACIER] = 1
|
|
ENUM[2] = :TUNDRA ; NUME[:TUNDRA] = 2
|
|
ENUM[3] = :SWAMP_TEMPERATE_FRESHWATER ; NUME[:SWAMP_TEMPERATE_FRESHWATER] = 3
|
|
ENUM[4] = :SWAMP_TEMPERATE_SALTWATER ; NUME[:SWAMP_TEMPERATE_SALTWATER] = 4
|
|
ENUM[5] = :MARSH_TEMPERATE_FRESHWATER ; NUME[:MARSH_TEMPERATE_FRESHWATER] = 5
|
|
ENUM[6] = :MARSH_TEMPERATE_SALTWATER ; NUME[:MARSH_TEMPERATE_SALTWATER] = 6
|
|
ENUM[7] = :SWAMP_TROPICAL_FRESHWATER ; NUME[:SWAMP_TROPICAL_FRESHWATER] = 7
|
|
ENUM[8] = :SWAMP_TROPICAL_SALTWATER ; NUME[:SWAMP_TROPICAL_SALTWATER] = 8
|
|
ENUM[9] = :SWAMP_MANGROVE ; NUME[:SWAMP_MANGROVE] = 9
|
|
ENUM[10] = :MARSH_TROPICAL_FRESHWATER ; NUME[:MARSH_TROPICAL_FRESHWATER] = 10
|
|
ENUM[11] = :MARSH_TROPICAL_SALTWATER ; NUME[:MARSH_TROPICAL_SALTWATER] = 11
|
|
ENUM[12] = :FOREST_TAIGA ; NUME[:FOREST_TAIGA] = 12
|
|
ENUM[13] = :FOREST_TEMPERATE_CONIFER ; NUME[:FOREST_TEMPERATE_CONIFER] = 13
|
|
ENUM[14] = :FOREST_TEMPERATE_BROADLEAF ; NUME[:FOREST_TEMPERATE_BROADLEAF] = 14
|
|
ENUM[15] = :FOREST_TROPICAL_CONIFER ; NUME[:FOREST_TROPICAL_CONIFER] = 15
|
|
ENUM[16] = :FOREST_TROPICAL_DRY_BROADLEAF ; NUME[:FOREST_TROPICAL_DRY_BROADLEAF] = 16
|
|
ENUM[17] = :FOREST_TROPICAL_MOIST_BROADLEAF ; NUME[:FOREST_TROPICAL_MOIST_BROADLEAF] = 17
|
|
ENUM[18] = :GRASSLAND_TEMPERATE ; NUME[:GRASSLAND_TEMPERATE] = 18
|
|
ENUM[19] = :SAVANNA_TEMPERATE ; NUME[:SAVANNA_TEMPERATE] = 19
|
|
ENUM[20] = :SHRUBLAND_TEMPERATE ; NUME[:SHRUBLAND_TEMPERATE] = 20
|
|
ENUM[21] = :GRASSLAND_TROPICAL ; NUME[:GRASSLAND_TROPICAL] = 21
|
|
ENUM[22] = :SAVANNA_TROPICAL ; NUME[:SAVANNA_TROPICAL] = 22
|
|
ENUM[23] = :SHRUBLAND_TROPICAL ; NUME[:SHRUBLAND_TROPICAL] = 23
|
|
ENUM[24] = :DESERT_BADLAND ; NUME[:DESERT_BADLAND] = 24
|
|
ENUM[25] = :DESERT_ROCK ; NUME[:DESERT_ROCK] = 25
|
|
ENUM[26] = :DESERT_SAND ; NUME[:DESERT_SAND] = 26
|
|
ENUM[27] = :OCEAN_TROPICAL ; NUME[:OCEAN_TROPICAL] = 27
|
|
ENUM[28] = :OCEAN_TEMPERATE ; NUME[:OCEAN_TEMPERATE] = 28
|
|
ENUM[29] = :OCEAN_ARCTIC ; NUME[:OCEAN_ARCTIC] = 29
|
|
ENUM[30] = :POOL_TEMPERATE_FRESHWATER ; NUME[:POOL_TEMPERATE_FRESHWATER] = 30
|
|
ENUM[31] = :POOL_TEMPERATE_BRACKISHWATER ; NUME[:POOL_TEMPERATE_BRACKISHWATER] = 31
|
|
ENUM[32] = :POOL_TEMPERATE_SALTWATER ; NUME[:POOL_TEMPERATE_SALTWATER] = 32
|
|
ENUM[33] = :POOL_TROPICAL_FRESHWATER ; NUME[:POOL_TROPICAL_FRESHWATER] = 33
|
|
ENUM[34] = :POOL_TROPICAL_BRACKISHWATER ; NUME[:POOL_TROPICAL_BRACKISHWATER] = 34
|
|
ENUM[35] = :POOL_TROPICAL_SALTWATER ; NUME[:POOL_TROPICAL_SALTWATER] = 35
|
|
ENUM[36] = :LAKE_TEMPERATE_FRESHWATER ; NUME[:LAKE_TEMPERATE_FRESHWATER] = 36
|
|
ENUM[37] = :LAKE_TEMPERATE_BRACKISHWATER ; NUME[:LAKE_TEMPERATE_BRACKISHWATER] = 37
|
|
ENUM[38] = :LAKE_TEMPERATE_SALTWATER ; NUME[:LAKE_TEMPERATE_SALTWATER] = 38
|
|
ENUM[39] = :LAKE_TROPICAL_FRESHWATER ; NUME[:LAKE_TROPICAL_FRESHWATER] = 39
|
|
ENUM[40] = :LAKE_TROPICAL_BRACKISHWATER ; NUME[:LAKE_TROPICAL_BRACKISHWATER] = 40
|
|
ENUM[41] = :LAKE_TROPICAL_SALTWATER ; NUME[:LAKE_TROPICAL_SALTWATER] = 41
|
|
ENUM[42] = :RIVER_TEMPERATE_FRESHWATER ; NUME[:RIVER_TEMPERATE_FRESHWATER] = 42
|
|
ENUM[43] = :RIVER_TEMPERATE_BRACKISHWATER ; NUME[:RIVER_TEMPERATE_BRACKISHWATER] = 43
|
|
ENUM[44] = :RIVER_TEMPERATE_SALTWATER ; NUME[:RIVER_TEMPERATE_SALTWATER] = 44
|
|
ENUM[45] = :RIVER_TROPICAL_FRESHWATER ; NUME[:RIVER_TROPICAL_FRESHWATER] = 45
|
|
ENUM[46] = :RIVER_TROPICAL_BRACKISHWATER ; NUME[:RIVER_TROPICAL_BRACKISHWATER] = 46
|
|
ENUM[47] = :RIVER_TROPICAL_SALTWATER ; NUME[:RIVER_TROPICAL_SALTWATER] = 47
|
|
ENUM[48] = :SUBTERRANEAN_WATER ; NUME[:SUBTERRANEAN_WATER] = 48
|
|
ENUM[49] = :SUBTERRANEAN_CHASM ; NUME[:SUBTERRANEAN_CHASM] = 49
|
|
ENUM[50] = :SUBTERRANEAN_LAVA ; NUME[:SUBTERRANEAN_LAVA] = 50
|
|
end
|
|
|
|
class BlockSquareEventType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Mineral ; NUME[:Mineral] = 0
|
|
ENUM[1] = :FrozenLiquid ; NUME[:FrozenLiquid] = 1
|
|
ENUM[2] = :WorldConstruction ; NUME[:WorldConstruction] = 2
|
|
ENUM[3] = :MaterialSpatter ; NUME[:MaterialSpatter] = 3
|
|
ENUM[4] = :Grass ; NUME[:Grass] = 4
|
|
end
|
|
|
|
class BodyPartRawFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :HEAD ; NUME[:HEAD] = 0
|
|
ENUM[1] = :UPPERBODY ; NUME[:UPPERBODY] = 1
|
|
ENUM[2] = :LOWERBODY ; NUME[:LOWERBODY] = 2
|
|
ENUM[3] = :SIGHT ; NUME[:SIGHT] = 3
|
|
ENUM[4] = :EMBEDDED ; NUME[:EMBEDDED] = 4
|
|
ENUM[5] = :INTERNAL ; NUME[:INTERNAL] = 5
|
|
ENUM[6] = :CIRCULATION ; NUME[:CIRCULATION] = 6
|
|
ENUM[7] = :SKELETON ; NUME[:SKELETON] = 7
|
|
ENUM[8] = :LIMB ; NUME[:LIMB] = 8
|
|
ENUM[9] = :GRASP ; NUME[:GRASP] = 9
|
|
ENUM[10] = :STANCE ; NUME[:STANCE] = 10
|
|
ENUM[11] = :GUTS ; NUME[:GUTS] = 11
|
|
ENUM[12] = :BREATHE ; NUME[:BREATHE] = 12
|
|
ENUM[13] = :SMALL ; NUME[:SMALL] = 13
|
|
ENUM[14] = :THROAT ; NUME[:THROAT] = 14
|
|
ENUM[15] = :JOINT ; NUME[:JOINT] = 15
|
|
ENUM[16] = :THOUGHT ; NUME[:THOUGHT] = 16
|
|
ENUM[17] = :NERVOUS ; NUME[:NERVOUS] = 17
|
|
ENUM[18] = :RIGHT ; NUME[:RIGHT] = 18
|
|
ENUM[19] = :LEFT ; NUME[:LEFT] = 19
|
|
ENUM[20] = :HEAR ; NUME[:HEAR] = 20
|
|
ENUM[21] = :SMELL ; NUME[:SMELL] = 21
|
|
ENUM[22] = :FLIER ; NUME[:FLIER] = 22
|
|
ENUM[23] = :DIGIT ; NUME[:DIGIT] = 23
|
|
ENUM[24] = :MOUTH ; NUME[:MOUTH] = 24
|
|
ENUM[25] = :APERTURE ; NUME[:APERTURE] = 25
|
|
ENUM[26] = :SOCKET ; NUME[:SOCKET] = 26
|
|
ENUM[27] = :TOTEMABLE ; NUME[:TOTEMABLE] = 27
|
|
ENUM[30] = :UNDER_PRESSURE ; NUME[:UNDER_PRESSURE] = 30
|
|
ENUM[32] = :VERMIN_BUTCHER_ITEM ; NUME[:VERMIN_BUTCHER_ITEM] = 32
|
|
ENUM[33] = :CONNECTOR ; NUME[:CONNECTOR] = 33
|
|
end
|
|
|
|
class BodyPartTemplateContype < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :UPPERBODY ; NUME[:UPPERBODY] = 0
|
|
ENUM[1] = :LOWERBODY ; NUME[:LOWERBODY] = 1
|
|
ENUM[2] = :HEAD ; NUME[:HEAD] = 2
|
|
ENUM[3] = :GRASP ; NUME[:GRASP] = 3
|
|
ENUM[4] = :STANCE ; NUME[:STANCE] = 4
|
|
end
|
|
|
|
class BodyPartTemplateFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :HEAD ; NUME[:HEAD] = 0
|
|
ENUM[1] = :UPPERBODY ; NUME[:UPPERBODY] = 1
|
|
ENUM[2] = :LOWERBODY ; NUME[:LOWERBODY] = 2
|
|
ENUM[3] = :SIGHT ; NUME[:SIGHT] = 3
|
|
ENUM[4] = :EMBEDDED ; NUME[:EMBEDDED] = 4
|
|
ENUM[5] = :INTERNAL ; NUME[:INTERNAL] = 5
|
|
ENUM[6] = :CIRCULATION ; NUME[:CIRCULATION] = 6
|
|
ENUM[7] = :SKELETON ; NUME[:SKELETON] = 7
|
|
ENUM[8] = :LIMB ; NUME[:LIMB] = 8
|
|
ENUM[9] = :GRASP ; NUME[:GRASP] = 9
|
|
ENUM[10] = :STANCE ; NUME[:STANCE] = 10
|
|
ENUM[11] = :GUTS ; NUME[:GUTS] = 11
|
|
ENUM[12] = :BREATHE ; NUME[:BREATHE] = 12
|
|
ENUM[13] = :SMALL ; NUME[:SMALL] = 13
|
|
ENUM[14] = :THROAT ; NUME[:THROAT] = 14
|
|
ENUM[15] = :JOINT ; NUME[:JOINT] = 15
|
|
ENUM[16] = :THOUGHT ; NUME[:THOUGHT] = 16
|
|
ENUM[17] = :NERVOUS ; NUME[:NERVOUS] = 17
|
|
ENUM[18] = :RIGHT ; NUME[:RIGHT] = 18
|
|
ENUM[19] = :LEFT ; NUME[:LEFT] = 19
|
|
ENUM[20] = :HEAR ; NUME[:HEAR] = 20
|
|
ENUM[21] = :SMELL ; NUME[:SMELL] = 21
|
|
ENUM[22] = :FLIER ; NUME[:FLIER] = 22
|
|
ENUM[23] = :DIGIT ; NUME[:DIGIT] = 23
|
|
ENUM[24] = :MOUTH ; NUME[:MOUTH] = 24
|
|
ENUM[25] = :APERTURE ; NUME[:APERTURE] = 25
|
|
ENUM[26] = :SOCKET ; NUME[:SOCKET] = 26
|
|
ENUM[27] = :TOTEMABLE ; NUME[:TOTEMABLE] = 27
|
|
ENUM[28] = :UNDER_PRESSURE ; NUME[:UNDER_PRESSURE] = 28
|
|
ENUM[29] = :VERMIN_BUTCHER_ITEM ; NUME[:VERMIN_BUTCHER_ITEM] = 29
|
|
ENUM[30] = :CONNECTOR ; NUME[:CONNECTOR] = 30
|
|
end
|
|
|
|
class BuildReqChoiceType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :General ; NUME[:General] = 0
|
|
ENUM[1] = :Specific ; NUME[:Specific] = 1
|
|
end
|
|
|
|
class BuildingType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Classname = Hash.new
|
|
ENUM[-1] = :NONE ; NUME[:NONE] = -1
|
|
ENUM[0] = :Chair ; NUME[:Chair] = 0 ; Classname[:Chair] = 'building_chairst'
|
|
ENUM[1] = :Bed ; NUME[:Bed] = 1 ; Classname[:Bed] = 'building_bedst'
|
|
ENUM[2] = :Table ; NUME[:Table] = 2 ; Classname[:Table] = 'building_tablest'
|
|
ENUM[3] = :Coffin ; NUME[:Coffin] = 3 ; Classname[:Coffin] = 'building_coffinst'
|
|
ENUM[4] = :FarmPlot ; NUME[:FarmPlot] = 4 ; Classname[:FarmPlot] = 'building_farmplotst'
|
|
ENUM[5] = :Furnace ; NUME[:Furnace] = 5 ; Classname[:Furnace] = 'building_furnacest'
|
|
ENUM[6] = :TradeDepot ; NUME[:TradeDepot] = 6 ; Classname[:TradeDepot] = 'building_tradedepotst'
|
|
ENUM[7] = :Shop ; NUME[:Shop] = 7 ; Classname[:Shop] = 'building_shopst'
|
|
ENUM[8] = :Door ; NUME[:Door] = 8 ; Classname[:Door] = 'building_doorst'
|
|
ENUM[9] = :Floodgate ; NUME[:Floodgate] = 9 ; Classname[:Floodgate] = 'building_floodgatest'
|
|
ENUM[10] = :Box ; NUME[:Box] = 10 ; Classname[:Box] = 'building_boxst'
|
|
ENUM[11] = :Weaponrack ; NUME[:Weaponrack] = 11 ; Classname[:Weaponrack] = 'building_weaponrackst'
|
|
ENUM[12] = :Armorstand ; NUME[:Armorstand] = 12 ; Classname[:Armorstand] = 'building_armorstandst'
|
|
ENUM[13] = :Workshop ; NUME[:Workshop] = 13 ; Classname[:Workshop] = 'building_workshopst'
|
|
ENUM[14] = :Cabinet ; NUME[:Cabinet] = 14 ; Classname[:Cabinet] = 'building_cabinetst'
|
|
ENUM[15] = :Statue ; NUME[:Statue] = 15 ; Classname[:Statue] = 'building_statuest'
|
|
ENUM[16] = :WindowGlass ; NUME[:WindowGlass] = 16 ; Classname[:WindowGlass] = 'building_window_glassst'
|
|
ENUM[17] = :WindowGem ; NUME[:WindowGem] = 17 ; Classname[:WindowGem] = 'building_window_gemst'
|
|
ENUM[18] = :Well ; NUME[:Well] = 18 ; Classname[:Well] = 'building_wellst'
|
|
ENUM[19] = :Bridge ; NUME[:Bridge] = 19 ; Classname[:Bridge] = 'building_bridgest'
|
|
ENUM[20] = :RoadDirt ; NUME[:RoadDirt] = 20 ; Classname[:RoadDirt] = 'building_road_dirtst'
|
|
ENUM[21] = :RoadPaved ; NUME[:RoadPaved] = 21 ; Classname[:RoadPaved] = 'building_road_pavedst'
|
|
ENUM[22] = :SiegeEngine ; NUME[:SiegeEngine] = 22 ; Classname[:SiegeEngine] = 'building_siegeenginest'
|
|
ENUM[23] = :Trap ; NUME[:Trap] = 23 ; Classname[:Trap] = 'building_trapst'
|
|
ENUM[24] = :AnimalTrap ; NUME[:AnimalTrap] = 24 ; Classname[:AnimalTrap] = 'building_animaltrapst'
|
|
ENUM[25] = :Support ; NUME[:Support] = 25 ; Classname[:Support] = 'building_supportst'
|
|
ENUM[26] = :ArcheryTarget ; NUME[:ArcheryTarget] = 26 ; Classname[:ArcheryTarget] = 'building_archerytargetst'
|
|
ENUM[27] = :Chain ; NUME[:Chain] = 27 ; Classname[:Chain] = 'building_chainst'
|
|
ENUM[28] = :Cage ; NUME[:Cage] = 28 ; Classname[:Cage] = 'building_cagest'
|
|
ENUM[29] = :Stockpile ; NUME[:Stockpile] = 29 ; Classname[:Stockpile] = 'building_stockpilest'
|
|
ENUM[30] = :Civzone ; NUME[:Civzone] = 30 ; Classname[:Civzone] = 'building_civzonest'
|
|
ENUM[31] = :Weapon ; NUME[:Weapon] = 31 ; Classname[:Weapon] = 'building_weaponst'
|
|
ENUM[32] = :Wagon ; NUME[:Wagon] = 32 ; Classname[:Wagon] = 'building_wagonst'
|
|
ENUM[33] = :ScrewPump ; NUME[:ScrewPump] = 33 ; Classname[:ScrewPump] = 'building_screw_pumpst'
|
|
ENUM[34] = :Construction ; NUME[:Construction] = 34 ; Classname[:Construction] = 'building_constructionst'
|
|
ENUM[35] = :Hatch ; NUME[:Hatch] = 35 ; Classname[:Hatch] = 'building_hatchst'
|
|
ENUM[36] = :GrateWall ; NUME[:GrateWall] = 36 ; Classname[:GrateWall] = 'building_grate_wallst'
|
|
ENUM[37] = :GrateFloor ; NUME[:GrateFloor] = 37 ; Classname[:GrateFloor] = 'building_grate_floorst'
|
|
ENUM[38] = :BarsVertical ; NUME[:BarsVertical] = 38 ; Classname[:BarsVertical] = 'building_bars_verticalst'
|
|
ENUM[39] = :BarsFloor ; NUME[:BarsFloor] = 39 ; Classname[:BarsFloor] = 'building_bars_floorst'
|
|
ENUM[40] = :GearAssembly ; NUME[:GearAssembly] = 40 ; Classname[:GearAssembly] = 'building_gear_assemblyst'
|
|
ENUM[41] = :AxleHorizontal ; NUME[:AxleHorizontal] = 41 ; Classname[:AxleHorizontal] = 'building_axle_horizontalst'
|
|
ENUM[42] = :AxleVertical ; NUME[:AxleVertical] = 42 ; Classname[:AxleVertical] = 'building_axle_verticalst'
|
|
ENUM[43] = :WaterWheel ; NUME[:WaterWheel] = 43 ; Classname[:WaterWheel] = 'building_water_wheelst'
|
|
ENUM[44] = :Windmill ; NUME[:Windmill] = 44 ; Classname[:Windmill] = 'building_windmillst'
|
|
ENUM[45] = :TractionBench ; NUME[:TractionBench] = 45 ; Classname[:TractionBench] = 'building_traction_benchst'
|
|
ENUM[46] = :Slab ; NUME[:Slab] = 46 ; Classname[:Slab] = 'building_slabst'
|
|
ENUM[47] = :Nest ; NUME[:Nest] = 47 ; Classname[:Nest] = 'building_nestst'
|
|
ENUM[48] = :NestBox ; NUME[:NestBox] = 48 ; Classname[:NestBox] = 'building_nest_boxst'
|
|
ENUM[49] = :Hive ; NUME[:Hive] = 49 ; Classname[:Hive] = 'building_hivest'
|
|
ENUM[50] = :Rollers ; NUME[:Rollers] = 50 ; Classname[:Rollers] = 'building_rollersst'
|
|
end
|
|
|
|
class BuildingsOtherId < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Building = Hash.new(:NONE)
|
|
GenericBuilding = Hash.new { |h, k| h[k] = [] }
|
|
Workshop = Hash.new { |h, k| h[k] = [] }
|
|
Furnace = Hash.new { |h, k| h[k] = [] }
|
|
Civzone = Hash.new { |h, k| h[k] = [] }
|
|
ENUM[-1] = :ANY ; NUME[:ANY] = -1
|
|
ENUM[0] = :ANY_FREE ; NUME[:ANY_FREE] = 0
|
|
ENUM[1] = :STOCKPILE ; NUME[:STOCKPILE] = 1 ; Building[:STOCKPILE] = :Stockpile
|
|
ENUM[2] = :ANY_ZONE ; NUME[:ANY_ZONE] = 2 ; Building[:ANY_ZONE] = :Civzone
|
|
ENUM[3] = :ACTIVITY_ZONE ; NUME[:ACTIVITY_ZONE] = 3 ; Building[:ACTIVITY_ZONE] = :Civzone ; Civzone[:ACTIVITY_ZONE] << :ActivityZone
|
|
ENUM[4] = :ANY_ACTUAL ; NUME[:ANY_ACTUAL] = 4
|
|
ENUM[5] = :ANY_MACHINE ; NUME[:ANY_MACHINE] = 5 ; GenericBuilding[:ANY_MACHINE] << :ScrewPump ; GenericBuilding[:ANY_MACHINE] << :GearAssembly ; GenericBuilding[:ANY_MACHINE] << :AxleHorizontal ; GenericBuilding[:ANY_MACHINE] << :AxleVertical ; GenericBuilding[:ANY_MACHINE] << :WaterWheel ; GenericBuilding[:ANY_MACHINE] << :Windmill ; GenericBuilding[:ANY_MACHINE] << :Workshop ; Workshop[:ANY_MACHINE] << :Millstone
|
|
ENUM[6] = :ANY_HOSPITAL_STORAGE ; NUME[:ANY_HOSPITAL_STORAGE] = 6 ; GenericBuilding[:ANY_HOSPITAL_STORAGE] << :Box ; GenericBuilding[:ANY_HOSPITAL_STORAGE] << :Cabinet
|
|
ENUM[7] = :ANY_STORAGE ; NUME[:ANY_STORAGE] = 7 ; GenericBuilding[:ANY_STORAGE] << :Box ; GenericBuilding[:ANY_STORAGE] << :Cabinet ; GenericBuilding[:ANY_STORAGE] << :Weaponrack ; GenericBuilding[:ANY_STORAGE] << :Armorstand
|
|
ENUM[8] = :ANY_BARRACKS ; NUME[:ANY_BARRACKS] = 8 ; GenericBuilding[:ANY_BARRACKS] << :Bed ; GenericBuilding[:ANY_BARRACKS] << :Box ; GenericBuilding[:ANY_BARRACKS] << :Cabinet ; GenericBuilding[:ANY_BARRACKS] << :Weaponrack ; GenericBuilding[:ANY_BARRACKS] << :Armorstand
|
|
ENUM[9] = :ANY_NOBLE_ROOM ; NUME[:ANY_NOBLE_ROOM] = 9 ; GenericBuilding[:ANY_NOBLE_ROOM] << :Chair ; GenericBuilding[:ANY_NOBLE_ROOM] << :Bed ; GenericBuilding[:ANY_NOBLE_ROOM] << :Table ; GenericBuilding[:ANY_NOBLE_ROOM] << :Coffin
|
|
ENUM[10] = :ANY_HOSPITAL ; NUME[:ANY_HOSPITAL] = 10 ; GenericBuilding[:ANY_HOSPITAL] << :Bed ; GenericBuilding[:ANY_HOSPITAL] << :TractionBench
|
|
ENUM[11] = :BOX ; NUME[:BOX] = 11 ; Building[:BOX] = :Box
|
|
ENUM[12] = :CABINET ; NUME[:CABINET] = 12 ; Building[:CABINET] = :Cabinet
|
|
ENUM[13] = :TRAP ; NUME[:TRAP] = 13 ; Building[:TRAP] = :Trap
|
|
ENUM[14] = :DOOR ; NUME[:DOOR] = 14 ; Building[:DOOR] = :Door
|
|
ENUM[15] = :FLOODGATE ; NUME[:FLOODGATE] = 15 ; Building[:FLOODGATE] = :Floodgate
|
|
ENUM[16] = :HATCH ; NUME[:HATCH] = 16 ; Building[:HATCH] = :Hatch
|
|
ENUM[17] = :GRATE_WALL ; NUME[:GRATE_WALL] = 17 ; Building[:GRATE_WALL] = :GrateWall
|
|
ENUM[18] = :GRATE_FLOOR ; NUME[:GRATE_FLOOR] = 18 ; Building[:GRATE_FLOOR] = :GrateFloor
|
|
ENUM[19] = :BARS_VERTICAL ; NUME[:BARS_VERTICAL] = 19 ; Building[:BARS_VERTICAL] = :BarsVertical
|
|
ENUM[20] = :BARS_FLOOR ; NUME[:BARS_FLOOR] = 20 ; Building[:BARS_FLOOR] = :BarsFloor
|
|
ENUM[21] = :WINDOW_ANY ; NUME[:WINDOW_ANY] = 21 ; GenericBuilding[:WINDOW_ANY] << :WindowGlass ; GenericBuilding[:WINDOW_ANY] << :WindowGem
|
|
ENUM[22] = :WELL ; NUME[:WELL] = 22 ; Building[:WELL] = :Well
|
|
ENUM[23] = :TABLE ; NUME[:TABLE] = 23 ; Building[:TABLE] = :Table
|
|
ENUM[24] = :BRIDGE ; NUME[:BRIDGE] = 24 ; Building[:BRIDGE] = :Bridge
|
|
ENUM[25] = :CHAIR ; NUME[:CHAIR] = 25 ; Building[:CHAIR] = :Chair
|
|
ENUM[26] = :TRADE_DEPOT ; NUME[:TRADE_DEPOT] = 26 ; Building[:TRADE_DEPOT] = :TradeDepot
|
|
ENUM[27] = :NEST ; NUME[:NEST] = 27 ; Building[:NEST] = :Nest
|
|
ENUM[28] = :NEST_BOX ; NUME[:NEST_BOX] = 28 ; Building[:NEST_BOX] = :NestBox
|
|
ENUM[29] = :HIVE ; NUME[:HIVE] = 29 ; Building[:HIVE] = :Hive
|
|
ENUM[30] = :WAGON ; NUME[:WAGON] = 30 ; Building[:WAGON] = :Wagon
|
|
ENUM[31] = :SHOP ; NUME[:SHOP] = 31 ; Building[:SHOP] = :Shop
|
|
ENUM[32] = :BED ; NUME[:BED] = 32 ; Building[:BED] = :Bed
|
|
ENUM[33] = :TRACTION_BENCH ; NUME[:TRACTION_BENCH] = 33 ; Building[:TRACTION_BENCH] = :TractionBench
|
|
ENUM[34] = :ANY_ROAD ; NUME[:ANY_ROAD] = 34 ; GenericBuilding[:ANY_ROAD] << :RoadDirt ; GenericBuilding[:ANY_ROAD] << :RoadPaved
|
|
ENUM[35] = :FARM_PLOT ; NUME[:FARM_PLOT] = 35 ; Building[:FARM_PLOT] = :FarmPlot
|
|
ENUM[36] = :GEAR_ASSEMBLY ; NUME[:GEAR_ASSEMBLY] = 36 ; Building[:GEAR_ASSEMBLY] = :GearAssembly
|
|
ENUM[37] = :ROLLERS ; NUME[:ROLLERS] = 37 ; Building[:ROLLERS] = :Rollers
|
|
ENUM[38] = :AXLE_HORIZONTAL ; NUME[:AXLE_HORIZONTAL] = 38 ; Building[:AXLE_HORIZONTAL] = :AxleHorizontal
|
|
ENUM[39] = :AXLE_VERTICAL ; NUME[:AXLE_VERTICAL] = 39 ; Building[:AXLE_VERTICAL] = :AxleVertical
|
|
ENUM[40] = :SUPPORT ; NUME[:SUPPORT] = 40 ; Building[:SUPPORT] = :Support
|
|
ENUM[41] = :ARCHERY_TARGET ; NUME[:ARCHERY_TARGET] = 41 ; Building[:ARCHERY_TARGET] = :ArcheryTarget
|
|
ENUM[42] = :SCREW_PUMP ; NUME[:SCREW_PUMP] = 42 ; Building[:SCREW_PUMP] = :ScrewPump
|
|
ENUM[43] = :WATER_WHEEL ; NUME[:WATER_WHEEL] = 43 ; Building[:WATER_WHEEL] = :WaterWheel
|
|
ENUM[44] = :WINDMILL ; NUME[:WINDMILL] = 44 ; Building[:WINDMILL] = :Windmill
|
|
ENUM[45] = :CHAIN ; NUME[:CHAIN] = 45 ; Building[:CHAIN] = :Chain
|
|
ENUM[46] = :CAGE ; NUME[:CAGE] = 46 ; Building[:CAGE] = :Cage
|
|
ENUM[47] = :STATUE ; NUME[:STATUE] = 47 ; Building[:STATUE] = :Statue
|
|
ENUM[48] = :SLAB ; NUME[:SLAB] = 48 ; Building[:SLAB] = :Slab
|
|
ENUM[49] = :COFFIN ; NUME[:COFFIN] = 49 ; Building[:COFFIN] = :Coffin
|
|
ENUM[50] = :WEAPON_RACK ; NUME[:WEAPON_RACK] = 50 ; Building[:WEAPON_RACK] = :Weaponrack
|
|
ENUM[51] = :ARMOR_STAND ; NUME[:ARMOR_STAND] = 51 ; Building[:ARMOR_STAND] = :Armorstand
|
|
ENUM[52] = :FURNACE_ANY ; NUME[:FURNACE_ANY] = 52 ; Building[:FURNACE_ANY] = :Furnace
|
|
ENUM[53] = :FURNACE_WOOD ; NUME[:FURNACE_WOOD] = 53 ; Building[:FURNACE_WOOD] = :Furnace ; Furnace[:FURNACE_WOOD] << :WoodFurnace
|
|
ENUM[54] = :FURNACE_SMELTER_ANY ; NUME[:FURNACE_SMELTER_ANY] = 54 ; Building[:FURNACE_SMELTER_ANY] = :Furnace ; Furnace[:FURNACE_SMELTER_ANY] << :Smelter ; Furnace[:FURNACE_SMELTER_ANY] << :MagmaSmelter
|
|
ENUM[55] = :FURNACE_SMELTER_MAGMA ; NUME[:FURNACE_SMELTER_MAGMA] = 55 ; Building[:FURNACE_SMELTER_MAGMA] = :Furnace ; Furnace[:FURNACE_SMELTER_MAGMA] << :MagmaSmelter
|
|
ENUM[56] = :FURNACE_KILN_ANY ; NUME[:FURNACE_KILN_ANY] = 56 ; Building[:FURNACE_KILN_ANY] = :Furnace ; Furnace[:FURNACE_KILN_ANY] << :Kiln ; Furnace[:FURNACE_KILN_ANY] << :MagmaKiln
|
|
ENUM[57] = :FURNACE_GLASS_ANY ; NUME[:FURNACE_GLASS_ANY] = 57 ; Building[:FURNACE_GLASS_ANY] = :Furnace ; Furnace[:FURNACE_GLASS_ANY] << :GlassFurnace ; Furnace[:FURNACE_GLASS_ANY] << :MagmaGlassFurnace
|
|
ENUM[58] = :FURNACE_CUSTOM ; NUME[:FURNACE_CUSTOM] = 58 ; Building[:FURNACE_CUSTOM] = :Furnace ; Furnace[:FURNACE_CUSTOM] << :Custom
|
|
ENUM[59] = :WORKSHOP_ANY ; NUME[:WORKSHOP_ANY] = 59 ; Building[:WORKSHOP_ANY] = :Workshop
|
|
ENUM[60] = :WORKSHOP_BUTCHER ; NUME[:WORKSHOP_BUTCHER] = 60 ; Building[:WORKSHOP_BUTCHER] = :Workshop ; Workshop[:WORKSHOP_BUTCHER] << :Butchers
|
|
ENUM[61] = :WORKSHOP_MASON ; NUME[:WORKSHOP_MASON] = 61 ; Building[:WORKSHOP_MASON] = :Workshop ; Workshop[:WORKSHOP_MASON] << :Masons
|
|
ENUM[62] = :WORKSHOP_KENNEL ; NUME[:WORKSHOP_KENNEL] = 62 ; Building[:WORKSHOP_KENNEL] = :Workshop ; Workshop[:WORKSHOP_KENNEL] << :Kennels
|
|
ENUM[63] = :WORKSHOP_FISHERY ; NUME[:WORKSHOP_FISHERY] = 63 ; Building[:WORKSHOP_FISHERY] = :Workshop ; Workshop[:WORKSHOP_FISHERY] << :Fishery
|
|
ENUM[64] = :WORKSHOP_JEWELER ; NUME[:WORKSHOP_JEWELER] = 64 ; Building[:WORKSHOP_JEWELER] = :Workshop ; Workshop[:WORKSHOP_JEWELER] << :Jewelers
|
|
ENUM[65] = :WORKSHOP_LOOM ; NUME[:WORKSHOP_LOOM] = 65 ; Building[:WORKSHOP_LOOM] = :Workshop ; Workshop[:WORKSHOP_LOOM] << :Loom
|
|
ENUM[66] = :WORKSHOP_TANNER ; NUME[:WORKSHOP_TANNER] = 66 ; Building[:WORKSHOP_TANNER] = :Workshop ; Workshop[:WORKSHOP_TANNER] << :Tanners
|
|
ENUM[67] = :WORKSHOP_DYER ; NUME[:WORKSHOP_DYER] = 67 ; Building[:WORKSHOP_DYER] = :Workshop ; Workshop[:WORKSHOP_DYER] << :Dyers
|
|
ENUM[68] = :WORKSHOP_MILL_ANY ; NUME[:WORKSHOP_MILL_ANY] = 68 ; Building[:WORKSHOP_MILL_ANY] = :Workshop ; Workshop[:WORKSHOP_MILL_ANY] << :Quern ; Workshop[:WORKSHOP_MILL_ANY] << :Millstone
|
|
ENUM[69] = :WORKSHOP_QUERN ; NUME[:WORKSHOP_QUERN] = 69 ; Building[:WORKSHOP_QUERN] = :Workshop ; Workshop[:WORKSHOP_QUERN] << :Quern
|
|
ENUM[70] = :WORKSHOP_TOOL ; NUME[:WORKSHOP_TOOL] = 70 ; Building[:WORKSHOP_TOOL] = :Workshop ; Workshop[:WORKSHOP_TOOL] << :Tool
|
|
ENUM[71] = :WORKSHOP_MILLSTONE ; NUME[:WORKSHOP_MILLSTONE] = 71 ; Building[:WORKSHOP_MILLSTONE] = :Workshop ; Workshop[:WORKSHOP_MILLSTONE] << :Millstone
|
|
ENUM[72] = :WORKSHOP_KITCHEN ; NUME[:WORKSHOP_KITCHEN] = 72 ; Building[:WORKSHOP_KITCHEN] = :Workshop ; Workshop[:WORKSHOP_KITCHEN] << :Kitchen
|
|
ENUM[73] = :WORKSHOP_STILL ; NUME[:WORKSHOP_STILL] = 73 ; Building[:WORKSHOP_STILL] = :Workshop ; Workshop[:WORKSHOP_STILL] << :Still
|
|
ENUM[74] = :WORKSHOP_FARMER ; NUME[:WORKSHOP_FARMER] = 74 ; Building[:WORKSHOP_FARMER] = :Workshop ; Workshop[:WORKSHOP_FARMER] << :Farmers
|
|
ENUM[75] = :WORKSHOP_ASHERY ; NUME[:WORKSHOP_ASHERY] = 75 ; Building[:WORKSHOP_ASHERY] = :Workshop ; Workshop[:WORKSHOP_ASHERY] << :Ashery
|
|
ENUM[76] = :WORKSHOP_CARPENTER ; NUME[:WORKSHOP_CARPENTER] = 76 ; Building[:WORKSHOP_CARPENTER] = :Workshop ; Workshop[:WORKSHOP_CARPENTER] << :Carpenters
|
|
ENUM[77] = :WORKSHOP_CRAFTSDWARF ; NUME[:WORKSHOP_CRAFTSDWARF] = 77 ; Building[:WORKSHOP_CRAFTSDWARF] = :Workshop ; Workshop[:WORKSHOP_CRAFTSDWARF] << :Craftsdwarfs
|
|
ENUM[78] = :WORKSHOP_MECHANIC ; NUME[:WORKSHOP_MECHANIC] = 78 ; Building[:WORKSHOP_MECHANIC] = :Workshop ; Workshop[:WORKSHOP_MECHANIC] << :Mechanics
|
|
ENUM[79] = :WORKSHOP_SIEGE ; NUME[:WORKSHOP_SIEGE] = 79 ; Building[:WORKSHOP_SIEGE] = :Workshop ; Workshop[:WORKSHOP_SIEGE] << :Siege
|
|
ENUM[80] = :WORKSHOP_CLOTHIER ; NUME[:WORKSHOP_CLOTHIER] = 80 ; Building[:WORKSHOP_CLOTHIER] = :Workshop ; Workshop[:WORKSHOP_CLOTHIER] << :Clothiers
|
|
ENUM[81] = :WORKSHOP_LEATHER ; NUME[:WORKSHOP_LEATHER] = 81 ; Building[:WORKSHOP_LEATHER] = :Workshop ; Workshop[:WORKSHOP_LEATHER] << :Leatherworks
|
|
ENUM[82] = :WORKSHOP_BOWYER ; NUME[:WORKSHOP_BOWYER] = 82 ; Building[:WORKSHOP_BOWYER] = :Workshop ; Workshop[:WORKSHOP_BOWYER] << :Bowyers
|
|
ENUM[83] = :WORKSHOP_MAGMA_FORGE ; NUME[:WORKSHOP_MAGMA_FORGE] = 83 ; Building[:WORKSHOP_MAGMA_FORGE] = :Workshop ; Workshop[:WORKSHOP_MAGMA_FORGE] << :MagmaForge
|
|
ENUM[84] = :WORKSHOP_FORGE_ANY ; NUME[:WORKSHOP_FORGE_ANY] = 84 ; Building[:WORKSHOP_FORGE_ANY] = :Workshop ; Workshop[:WORKSHOP_FORGE_ANY] << :MetalsmithsForge ; Workshop[:WORKSHOP_FORGE_ANY] << :MagmaForge
|
|
ENUM[85] = :WORKSHOP_CUSTOM ; NUME[:WORKSHOP_CUSTOM] = 85 ; Building[:WORKSHOP_CUSTOM] = :Workshop ; Workshop[:WORKSHOP_CUSTOM] << :Custom
|
|
ENUM[86] = :WEAPON_UPRIGHT ; NUME[:WEAPON_UPRIGHT] = 86 ; Building[:WEAPON_UPRIGHT] = :Weapon
|
|
end
|
|
|
|
class BuiltinMats < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :INORGANIC ; NUME[:INORGANIC] = 0
|
|
ENUM[1] = :AMBER ; NUME[:AMBER] = 1
|
|
ENUM[2] = :CORAL ; NUME[:CORAL] = 2
|
|
ENUM[3] = :GLASS_GREEN ; NUME[:GLASS_GREEN] = 3
|
|
ENUM[4] = :GLASS_CLEAR ; NUME[:GLASS_CLEAR] = 4
|
|
ENUM[5] = :GLASS_CRYSTAL ; NUME[:GLASS_CRYSTAL] = 5
|
|
ENUM[6] = :WATER ; NUME[:WATER] = 6
|
|
ENUM[7] = :COAL ; NUME[:COAL] = 7
|
|
ENUM[8] = :POTASH ; NUME[:POTASH] = 8
|
|
ENUM[9] = :ASH ; NUME[:ASH] = 9
|
|
ENUM[10] = :PEARLASH ; NUME[:PEARLASH] = 10
|
|
ENUM[11] = :LYE ; NUME[:LYE] = 11
|
|
ENUM[12] = :MUD ; NUME[:MUD] = 12
|
|
ENUM[13] = :VOMIT ; NUME[:VOMIT] = 13
|
|
ENUM[14] = :SALT ; NUME[:SALT] = 14
|
|
ENUM[15] = :FILTH_B ; NUME[:FILTH_B] = 15
|
|
ENUM[16] = :FILTH_Y ; NUME[:FILTH_Y] = 16
|
|
ENUM[17] = :UNKNOWN_SUBSTANCE ; NUME[:UNKNOWN_SUBSTANCE] = 17
|
|
ENUM[18] = :GRIME ; NUME[:GRIME] = 18
|
|
end
|
|
|
|
class CasteRawFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :AMPHIBIOUS ; NUME[:AMPHIBIOUS] = 0
|
|
ENUM[1] = :AQUATIC ; NUME[:AQUATIC] = 1
|
|
ENUM[2] = :LOCKPICKER ; NUME[:LOCKPICKER] = 2
|
|
ENUM[3] = :MISCHIEVOUS ; NUME[:MISCHIEVOUS] = 3
|
|
ENUM[4] = :PATTERNFLIER ; NUME[:PATTERNFLIER] = 4
|
|
ENUM[5] = :CURIOUSBEAST_ANY ; NUME[:CURIOUSBEAST_ANY] = 5
|
|
ENUM[6] = :CURIOUSBEAST_ITEM ; NUME[:CURIOUSBEAST_ITEM] = 6
|
|
ENUM[7] = :CURIOUSBEAST_GUZZLER ; NUME[:CURIOUSBEAST_GUZZLER] = 7
|
|
ENUM[8] = :FLEEQUICK ; NUME[:FLEEQUICK] = 8
|
|
ENUM[9] = :AT_PEACE_WITH_WILDLIFE ; NUME[:AT_PEACE_WITH_WILDLIFE] = 9
|
|
ENUM[10] = :SWIMS_LEARNED ; NUME[:SWIMS_LEARNED] = 10
|
|
ENUM[11] = :CANNOT_UNDEAD ; NUME[:CANNOT_UNDEAD] = 11
|
|
ENUM[12] = :CURIOUSBEAST_EATER ; NUME[:CURIOUSBEAST_EATER] = 12
|
|
ENUM[13] = :NO_EAT ; NUME[:NO_EAT] = 13
|
|
ENUM[14] = :NO_DRINK ; NUME[:NO_DRINK] = 14
|
|
ENUM[15] = :NO_SLEEP ; NUME[:NO_SLEEP] = 15
|
|
ENUM[16] = :COMMON_DOMESTIC ; NUME[:COMMON_DOMESTIC] = 16
|
|
ENUM[17] = :WAGON_PULLER ; NUME[:WAGON_PULLER] = 17
|
|
ENUM[18] = :PACK_ANIMAL ; NUME[:PACK_ANIMAL] = 18
|
|
ENUM[19] = :FLIER ; NUME[:FLIER] = 19
|
|
ENUM[20] = :LARGE_PREDATOR ; NUME[:LARGE_PREDATOR] = 20
|
|
ENUM[21] = :MAGMA_VISION ; NUME[:MAGMA_VISION] = 21
|
|
ENUM[22] = :FIREIMMUNE ; NUME[:FIREIMMUNE] = 22
|
|
ENUM[23] = :FIREIMMUNE_SUPER ; NUME[:FIREIMMUNE_SUPER] = 23
|
|
ENUM[24] = :WEBBER ; NUME[:WEBBER] = 24
|
|
ENUM[25] = :WEBIMMUNE ; NUME[:WEBIMMUNE] = 25
|
|
ENUM[26] = :FISHITEM ; NUME[:FISHITEM] = 26
|
|
ENUM[27] = :IMMOBILE_LAND ; NUME[:IMMOBILE_LAND] = 27
|
|
ENUM[28] = :IMMOLATE ; NUME[:IMMOLATE] = 28
|
|
ENUM[29] = :MILKABLE ; NUME[:MILKABLE] = 29
|
|
ENUM[30] = :NO_SPRING ; NUME[:NO_SPRING] = 30
|
|
ENUM[31] = :NO_SUMMER ; NUME[:NO_SUMMER] = 31
|
|
ENUM[32] = :NO_AUTUMN ; NUME[:NO_AUTUMN] = 32
|
|
ENUM[33] = :NO_WINTER ; NUME[:NO_WINTER] = 33
|
|
ENUM[34] = :BENIGN ; NUME[:BENIGN] = 34
|
|
ENUM[35] = :VERMIN_NOROAM ; NUME[:VERMIN_NOROAM] = 35
|
|
ENUM[36] = :VERMIN_NOTRAP ; NUME[:VERMIN_NOTRAP] = 36
|
|
ENUM[37] = :VERMIN_NOFISH ; NUME[:VERMIN_NOFISH] = 37
|
|
ENUM[38] = :HAS_NERVES ; NUME[:HAS_NERVES] = 38
|
|
ENUM[39] = :NO_DIZZINESS ; NUME[:NO_DIZZINESS] = 39
|
|
ENUM[40] = :NO_FEVERS ; NUME[:NO_FEVERS] = 40
|
|
ENUM[41] = :NO_PROFESSION_COLOR ; NUME[:NO_PROFESSION_COLOR] = 41
|
|
ENUM[44] = :AMBUSHPREDATOR ; NUME[:AMBUSHPREDATOR] = 44
|
|
ENUM[46] = :NOT_BUTCHERABLE ; NUME[:NOT_BUTCHERABLE] = 46
|
|
ENUM[47] = :COOKABLE_LIVE ; NUME[:COOKABLE_LIVE] = 47
|
|
ENUM[49] = :FIREBREATH ; NUME[:FIREBREATH] = 49
|
|
ENUM[50] = :DRAGONFIREBREATH ; NUME[:DRAGONFIREBREATH] = 50
|
|
ENUM[51] = :MEANDERER ; NUME[:MEANDERER] = 51
|
|
ENUM[52] = :THICKWEB ; NUME[:THICKWEB] = 52
|
|
ENUM[53] = :TRAINABLE_HUNTING ; NUME[:TRAINABLE_HUNTING] = 53
|
|
ENUM[54] = :PET ; NUME[:PET] = 54
|
|
ENUM[55] = :PET_EXOTIC ; NUME[:PET_EXOTIC] = 55
|
|
ENUM[57] = :CAN_SPEAK ; NUME[:CAN_SPEAK] = 57
|
|
ENUM[58] = :CAN_LEARN ; NUME[:CAN_LEARN] = 58
|
|
ENUM[59] = :UTTERANCES ; NUME[:UTTERANCES] = 59
|
|
ENUM[60] = :BONECARN ; NUME[:BONECARN] = 60
|
|
ENUM[61] = :CARNIVORE ; NUME[:CARNIVORE] = 61
|
|
ENUM[62] = :UNDERSWIM ; NUME[:UNDERSWIM] = 62
|
|
ENUM[63] = :NOEXERT ; NUME[:NOEXERT] = 63
|
|
ENUM[64] = :NOPAIN ; NUME[:NOPAIN] = 64
|
|
ENUM[65] = :EXTRAVISION ; NUME[:EXTRAVISION] = 65
|
|
ENUM[66] = :NOBREATHE ; NUME[:NOBREATHE] = 66
|
|
ENUM[67] = :NOSTUN ; NUME[:NOSTUN] = 67
|
|
ENUM[68] = :NONAUSEA ; NUME[:NONAUSEA] = 68
|
|
ENUM[69] = :BLOOD ; NUME[:BLOOD] = 69
|
|
ENUM[70] = :TRANCES ; NUME[:TRANCES] = 70
|
|
ENUM[71] = :NOEMOTION ; NUME[:NOEMOTION] = 71
|
|
ENUM[72] = :SLOW_LEARNER ; NUME[:SLOW_LEARNER] = 72
|
|
ENUM[73] = :NOSTUCKINS ; NUME[:NOSTUCKINS] = 73
|
|
ENUM[74] = :PUS ; NUME[:PUS] = 74
|
|
ENUM[75] = :NOSKULL ; NUME[:NOSKULL] = 75
|
|
ENUM[76] = :NOSKIN ; NUME[:NOSKIN] = 76
|
|
ENUM[77] = :NOBONES ; NUME[:NOBONES] = 77
|
|
ENUM[78] = :NOMEAT ; NUME[:NOMEAT] = 78
|
|
ENUM[79] = :PARALYZEIMMUNE ; NUME[:PARALYZEIMMUNE] = 79
|
|
ENUM[80] = :NOFEAR ; NUME[:NOFEAR] = 80
|
|
ENUM[81] = :CANOPENDOORS ; NUME[:CANOPENDOORS] = 81
|
|
ENUM[83] = :GETS_WOUND_INFECTIONS ; NUME[:GETS_WOUND_INFECTIONS] = 83
|
|
ENUM[84] = :NOSMELLYROT ; NUME[:NOSMELLYROT] = 84
|
|
ENUM[85] = :REMAINS_UNDETERMINED ; NUME[:REMAINS_UNDETERMINED] = 85
|
|
ENUM[86] = :HASSHELL ; NUME[:HASSHELL] = 86
|
|
ENUM[87] = :PEARL ; NUME[:PEARL] = 87
|
|
ENUM[88] = :TRAINABLE_WAR ; NUME[:TRAINABLE_WAR] = 88
|
|
ENUM[89] = :NO_THOUGHT_CENTER_FOR_MOVEMENT ; NUME[:NO_THOUGHT_CENTER_FOR_MOVEMENT] = 89
|
|
ENUM[90] = :ARENA_RESTRICTED ; NUME[:ARENA_RESTRICTED] = 90
|
|
ENUM[91] = :LAIR_HUNTER ; NUME[:LAIR_HUNTER] = 91
|
|
ENUM[92] = :LIKES_FIGHTING ; NUME[:LIKES_FIGHTING] = 92
|
|
ENUM[93] = :VERMIN_HATEABLE ; NUME[:VERMIN_HATEABLE] = 93
|
|
ENUM[94] = :VEGETATION ; NUME[:VEGETATION] = 94
|
|
ENUM[95] = :MAGICAL ; NUME[:MAGICAL] = 95
|
|
ENUM[96] = :NATURAL ; NUME[:NATURAL] = 96
|
|
ENUM[97] = :BABY ; NUME[:BABY] = 97
|
|
ENUM[98] = :CHILD ; NUME[:CHILD] = 98
|
|
ENUM[99] = :MULTIPLE_LITTER_RARE ; NUME[:MULTIPLE_LITTER_RARE] = 99
|
|
ENUM[100] = :MOUNT ; NUME[:MOUNT] = 100
|
|
ENUM[101] = :MOUNT_EXOTIC ; NUME[:MOUNT_EXOTIC] = 101
|
|
ENUM[102] = :FEATURE_ATTACK_GROUP ; NUME[:FEATURE_ATTACK_GROUP] = 102
|
|
ENUM[103] = :VERMIN_MICRO ; NUME[:VERMIN_MICRO] = 103
|
|
ENUM[104] = :EQUIPS ; NUME[:EQUIPS] = 104
|
|
ENUM[105] = :LAYS_EGGS ; NUME[:LAYS_EGGS] = 105
|
|
ENUM[106] = :GRAZER ; NUME[:GRAZER] = 106
|
|
ENUM[107] = :NOTHOUGHT ; NUME[:NOTHOUGHT] = 107
|
|
ENUM[108] = :TRAPAVOID ; NUME[:TRAPAVOID] = 108
|
|
ENUM[109] = :CAVE_ADAPT ; NUME[:CAVE_ADAPT] = 109
|
|
ENUM[110] = :MEGABEAST ; NUME[:MEGABEAST] = 110
|
|
ENUM[111] = :SEMIMEGABEAST ; NUME[:SEMIMEGABEAST] = 111
|
|
ENUM[112] = :ALL_ACTIVE ; NUME[:ALL_ACTIVE] = 112
|
|
ENUM[113] = :DIURNAL ; NUME[:DIURNAL] = 113
|
|
ENUM[114] = :NOCTURNAL ; NUME[:NOCTURNAL] = 114
|
|
ENUM[115] = :CREPUSCULAR ; NUME[:CREPUSCULAR] = 115
|
|
ENUM[116] = :MATUTINAL ; NUME[:MATUTINAL] = 116
|
|
ENUM[117] = :VESPERTINE ; NUME[:VESPERTINE] = 117
|
|
ENUM[118] = :LIGHT_GEN ; NUME[:LIGHT_GEN] = 118
|
|
ENUM[119] = :LISP ; NUME[:LISP] = 119
|
|
ENUM[120] = :GETS_INFECTIONS_FROM_ROT ; NUME[:GETS_INFECTIONS_FROM_ROT] = 120
|
|
ENUM[122] = :ALCOHOL_DEPENDENT ; NUME[:ALCOHOL_DEPENDENT] = 122
|
|
ENUM[123] = :SWIMS_INNATE ; NUME[:SWIMS_INNATE] = 123
|
|
ENUM[124] = :POWER ; NUME[:POWER] = 124
|
|
ENUM[128] = :CASTE_COLOR ; NUME[:CASTE_COLOR] = 128
|
|
ENUM[131] = :FEATURE_BEAST ; NUME[:FEATURE_BEAST] = 131
|
|
ENUM[132] = :TITAN ; NUME[:TITAN] = 132
|
|
ENUM[133] = :UNIQUE_DEMON ; NUME[:UNIQUE_DEMON] = 133
|
|
ENUM[134] = :DEMON ; NUME[:DEMON] = 134
|
|
ENUM[135] = :MANNERISM_LAUGH ; NUME[:MANNERISM_LAUGH] = 135
|
|
ENUM[136] = :MANNERISM_SMILE ; NUME[:MANNERISM_SMILE] = 136
|
|
ENUM[137] = :MANNERISM_WALK ; NUME[:MANNERISM_WALK] = 137
|
|
ENUM[138] = :MANNERISM_SIT ; NUME[:MANNERISM_SIT] = 138
|
|
ENUM[139] = :MANNERISM_BREATH ; NUME[:MANNERISM_BREATH] = 139
|
|
ENUM[140] = :MANNERISM_POSTURE ; NUME[:MANNERISM_POSTURE] = 140
|
|
ENUM[141] = :MANNERISM_STRETCH ; NUME[:MANNERISM_STRETCH] = 141
|
|
ENUM[142] = :MANNERISM_EYELIDS ; NUME[:MANNERISM_EYELIDS] = 142
|
|
ENUM[143] = :NIGHT_CREATURE_ANY ; NUME[:NIGHT_CREATURE_ANY] = 143
|
|
ENUM[144] = :NIGHT_CREATURE_HUNTER ; NUME[:NIGHT_CREATURE_HUNTER] = 144
|
|
ENUM[145] = :NIGHT_CREATURE_BOGEYMAN ; NUME[:NIGHT_CREATURE_BOGEYMAN] = 145
|
|
ENUM[146] = :CONVERTED_SPOUSE ; NUME[:CONVERTED_SPOUSE] = 146
|
|
ENUM[147] = :SPOUSE_CONVERTER ; NUME[:SPOUSE_CONVERTER] = 147
|
|
ENUM[148] = :SPOUSE_CONVERSION_TARGET ; NUME[:SPOUSE_CONVERSION_TARGET] = 148
|
|
ENUM[149] = :DIE_WHEN_VERMIN_BITE ; NUME[:DIE_WHEN_VERMIN_BITE] = 149
|
|
ENUM[150] = :REMAINS_ON_VERMIN_BITE_DEATH ; NUME[:REMAINS_ON_VERMIN_BITE_DEATH] = 150
|
|
ENUM[151] = :COLONY_EXTERNAL ; NUME[:COLONY_EXTERNAL] = 151
|
|
ENUM[152] = :LAYS_UNUSUAL_EGGS ; NUME[:LAYS_UNUSUAL_EGGS] = 152
|
|
ENUM[153] = :RETURNS_VERMIN_KILLS_TO_OWNER ; NUME[:RETURNS_VERMIN_KILLS_TO_OWNER] = 153
|
|
ENUM[154] = :HUNTS_VERMIN ; NUME[:HUNTS_VERMIN] = 154
|
|
ENUM[155] = :ADOPTS_OWNER ; NUME[:ADOPTS_OWNER] = 155
|
|
ENUM[156] = :SOUND_ALERT ; NUME[:SOUND_ALERT] = 156
|
|
ENUM[157] = :SOUND_PEACEFUL_INTERMITTENT ; NUME[:SOUND_PEACEFUL_INTERMITTENT] = 157
|
|
ENUM[161] = :CRAZED ; NUME[:CRAZED] = 161
|
|
end
|
|
|
|
class CivzoneType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Home ; NUME[:Home] = 0
|
|
ENUM[1] = :CraftShop ; NUME[:CraftShop] = 1
|
|
ENUM[2] = :Basement ; NUME[:Basement] = 2
|
|
ENUM[3] = :WeaponsmithsShop ; NUME[:WeaponsmithsShop] = 3
|
|
ENUM[4] = :ArmorsmithsShop ; NUME[:ArmorsmithsShop] = 4
|
|
ENUM[5] = :GeneralStore ; NUME[:GeneralStore] = 5
|
|
ENUM[6] = :FoodShop ; NUME[:FoodShop] = 6
|
|
ENUM[7] = :MeadHall ; NUME[:MeadHall] = 7
|
|
ENUM[8] = :ThroneRoom ; NUME[:ThroneRoom] = 8
|
|
ENUM[9] = :ActivityZone ; NUME[:ActivityZone] = 9
|
|
ENUM[10] = :Temple ; NUME[:Temple] = 10
|
|
ENUM[11] = :Kitchen ; NUME[:Kitchen] = 11
|
|
ENUM[12] = :CaptiveRoom ; NUME[:CaptiveRoom] = 12
|
|
ENUM[13] = :TowerTop ; NUME[:TowerTop] = 13
|
|
ENUM[14] = :Courtyard ; NUME[:Courtyard] = 14
|
|
ENUM[15] = :Treasury ; NUME[:Treasury] = 15
|
|
ENUM[16] = :GuardPost ; NUME[:GuardPost] = 16
|
|
ENUM[17] = :Entrance ; NUME[:Entrance] = 17
|
|
ENUM[18] = :SecretLibrary ; NUME[:SecretLibrary] = 18
|
|
ENUM[19] = :Library ; NUME[:Library] = 19
|
|
ENUM[20] = :Plot ; NUME[:Plot] = 20
|
|
ENUM[21] = :MarketStall ; NUME[:MarketStall] = 21
|
|
end
|
|
|
|
class ConstructionType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Fortification ; NUME[:Fortification] = 0
|
|
ENUM[1] = :Wall ; NUME[:Wall] = 1
|
|
ENUM[2] = :Floor ; NUME[:Floor] = 2
|
|
ENUM[3] = :UpStair ; NUME[:UpStair] = 3
|
|
ENUM[4] = :DownStair ; NUME[:DownStair] = 4
|
|
ENUM[5] = :UpDownStair ; NUME[:UpDownStair] = 5
|
|
ENUM[6] = :Ramp ; NUME[:Ramp] = 6
|
|
ENUM[7] = :TrackN ; NUME[:TrackN] = 7
|
|
ENUM[8] = :TrackS ; NUME[:TrackS] = 8
|
|
ENUM[9] = :TrackE ; NUME[:TrackE] = 9
|
|
ENUM[10] = :TrackW ; NUME[:TrackW] = 10
|
|
ENUM[11] = :TrackNS ; NUME[:TrackNS] = 11
|
|
ENUM[12] = :TrackNE ; NUME[:TrackNE] = 12
|
|
ENUM[13] = :TrackNW ; NUME[:TrackNW] = 13
|
|
ENUM[14] = :TrackSE ; NUME[:TrackSE] = 14
|
|
ENUM[15] = :TrackSW ; NUME[:TrackSW] = 15
|
|
ENUM[16] = :TrackEW ; NUME[:TrackEW] = 16
|
|
ENUM[17] = :TrackNSE ; NUME[:TrackNSE] = 17
|
|
ENUM[18] = :TrackNSW ; NUME[:TrackNSW] = 18
|
|
ENUM[19] = :TrackNEW ; NUME[:TrackNEW] = 19
|
|
ENUM[20] = :TrackSEW ; NUME[:TrackSEW] = 20
|
|
ENUM[21] = :TrackNSEW ; NUME[:TrackNSEW] = 21
|
|
end
|
|
|
|
class CorpseMaterialType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Plant ; NUME[:Plant] = 0
|
|
ENUM[1] = :Silk ; NUME[:Silk] = 1
|
|
ENUM[2] = :Leather ; NUME[:Leather] = 2
|
|
ENUM[3] = :Bone ; NUME[:Bone] = 3
|
|
ENUM[4] = :Shell ; NUME[:Shell] = 4
|
|
ENUM[6] = :Soap ; NUME[:Soap] = 6
|
|
ENUM[7] = :Tooth ; NUME[:Tooth] = 7
|
|
ENUM[8] = :Horn ; NUME[:Horn] = 8
|
|
ENUM[9] = :Pearl ; NUME[:Pearl] = 9
|
|
ENUM[10] = :HairWool ; NUME[:HairWool] = 10
|
|
ENUM[11] = :Yarn ; NUME[:Yarn] = 11
|
|
end
|
|
|
|
class CraftMaterialClass < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
MakeSkill = Hash.new(:NONE)
|
|
ImproveSkill = Hash.new(:NONE)
|
|
ENUM[-1] = :None ; NUME[:None] = -1
|
|
ENUM[0] = :Metal ; NUME[:Metal] = 0 ; MakeSkill[:Metal] = :FORGE_FURNITURE ; ImproveSkill[:Metal] = :METALCRAFT
|
|
ENUM[1] = :Wood ; NUME[:Wood] = 1 ; MakeSkill[:Wood] = :CARPENTRY ; ImproveSkill[:Wood] = :WOODCRAFT
|
|
ENUM[2] = :Gem ; NUME[:Gem] = 2 ; MakeSkill[:Gem] = :CUTGEM ; ImproveSkill[:Gem] = :ENCRUSTGEM
|
|
ENUM[3] = :Glass ; NUME[:Glass] = 3 ; MakeSkill[:Glass] = :GLASSMAKER
|
|
ENUM[4] = :Stone ; NUME[:Stone] = 4 ; MakeSkill[:Stone] = :MASONRY
|
|
ENUM[5] = :Bone ; NUME[:Bone] = 5 ; MakeSkill[:Bone] = :BONECARVE ; ImproveSkill[:Bone] = :BONECARVE
|
|
ENUM[6] = :Ivory ; NUME[:Ivory] = 6 ; MakeSkill[:Ivory] = :BONECARVE ; ImproveSkill[:Ivory] = :BONECARVE
|
|
ENUM[7] = :Horn ; NUME[:Horn] = 7 ; MakeSkill[:Horn] = :BONECARVE ; ImproveSkill[:Horn] = :BONECARVE
|
|
ENUM[8] = :Pearl ; NUME[:Pearl] = 8 ; MakeSkill[:Pearl] = :BONECARVE ; ImproveSkill[:Pearl] = :BONECARVE
|
|
ENUM[9] = :Shell ; NUME[:Shell] = 9 ; MakeSkill[:Shell] = :BONECARVE ; ImproveSkill[:Shell] = :BONECARVE
|
|
ENUM[10] = :Leather ; NUME[:Leather] = 10 ; MakeSkill[:Leather] = :LEATHERWORK ; ImproveSkill[:Leather] = :LEATHERWORK
|
|
ENUM[11] = :Cloth ; NUME[:Cloth] = 11 ; MakeSkill[:Cloth] = :CLOTHESMAKING ; ImproveSkill[:Cloth] = :CLOTHESMAKING
|
|
end
|
|
|
|
class CreatureInteractionEffectType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :PAIN ; NUME[:PAIN] = 0
|
|
ENUM[1] = :SWELLING ; NUME[:SWELLING] = 1
|
|
ENUM[2] = :OOZING ; NUME[:OOZING] = 2
|
|
ENUM[3] = :BRUISING ; NUME[:BRUISING] = 3
|
|
ENUM[4] = :BLISTERS ; NUME[:BLISTERS] = 4
|
|
ENUM[5] = :NUMBNESS ; NUME[:NUMBNESS] = 5
|
|
ENUM[6] = :PARALYSIS ; NUME[:PARALYSIS] = 6
|
|
ENUM[7] = :FEVER ; NUME[:FEVER] = 7
|
|
ENUM[8] = :BLEEDING ; NUME[:BLEEDING] = 8
|
|
ENUM[9] = :COUGH_BLOOD ; NUME[:COUGH_BLOOD] = 9
|
|
ENUM[10] = :VOMIT_BLOOD ; NUME[:VOMIT_BLOOD] = 10
|
|
ENUM[11] = :NAUSEA ; NUME[:NAUSEA] = 11
|
|
ENUM[12] = :UNCONSCIOUSNESS ; NUME[:UNCONSCIOUSNESS] = 12
|
|
ENUM[13] = :NECROSIS ; NUME[:NECROSIS] = 13
|
|
ENUM[14] = :IMPAIR_FUNCTION ; NUME[:IMPAIR_FUNCTION] = 14
|
|
ENUM[15] = :DROWSINESS ; NUME[:DROWSINESS] = 15
|
|
ENUM[16] = :DIZZINESS ; NUME[:DIZZINESS] = 16
|
|
ENUM[17] = :ADD_TAG ; NUME[:ADD_TAG] = 17
|
|
ENUM[18] = :REMOVE_TAG ; NUME[:REMOVE_TAG] = 18
|
|
ENUM[19] = :DISPLAY_TILE ; NUME[:DISPLAY_TILE] = 19
|
|
ENUM[20] = :FLASH_TILE ; NUME[:FLASH_TILE] = 20
|
|
ENUM[21] = :SPEED_CHANGE ; NUME[:SPEED_CHANGE] = 21
|
|
ENUM[22] = :CAN_DO_INTERACTION ; NUME[:CAN_DO_INTERACTION] = 22
|
|
ENUM[23] = :SKILL_ROLL_ADJUST ; NUME[:SKILL_ROLL_ADJUST] = 23
|
|
ENUM[24] = :BODY_TRANSFORMATION ; NUME[:BODY_TRANSFORMATION] = 24
|
|
ENUM[25] = :PHYS_ATT_CHANGE ; NUME[:PHYS_ATT_CHANGE] = 25
|
|
ENUM[26] = :MENT_ATT_CHANGE ; NUME[:MENT_ATT_CHANGE] = 26
|
|
ENUM[27] = :MATERIAL_FORCE_MULTIPLIER ; NUME[:MATERIAL_FORCE_MULTIPLIER] = 27
|
|
ENUM[28] = :BODY_MAT_INTERACTION ; NUME[:BODY_MAT_INTERACTION] = 28
|
|
ENUM[29] = :BODY_APPEARANCE_MODIFIER ; NUME[:BODY_APPEARANCE_MODIFIER] = 29
|
|
ENUM[30] = :BP_APPEARANCE_MODIFIER ; NUME[:BP_APPEARANCE_MODIFIER] = 30
|
|
ENUM[31] = :DISPLAY_NAME ; NUME[:DISPLAY_NAME] = 31
|
|
end
|
|
|
|
class CreatureRawFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[1] = :EQUIPMENT_WAGON ; NUME[:EQUIPMENT_WAGON] = 1
|
|
ENUM[2] = :MUNDANE ; NUME[:MUNDANE] = 2
|
|
ENUM[3] = :VERMIN_EATER ; NUME[:VERMIN_EATER] = 3
|
|
ENUM[4] = :VERMIN_GROUNDER ; NUME[:VERMIN_GROUNDER] = 4
|
|
ENUM[5] = :VERMIN_ROTTER ; NUME[:VERMIN_ROTTER] = 5
|
|
ENUM[6] = :VERMIN_SOIL ; NUME[:VERMIN_SOIL] = 6
|
|
ENUM[7] = :VERMIN_SOIL_COLONY ; NUME[:VERMIN_SOIL_COLONY] = 7
|
|
ENUM[8] = :LARGE_ROAMING ; NUME[:LARGE_ROAMING] = 8
|
|
ENUM[9] = :VERMIN_FISH ; NUME[:VERMIN_FISH] = 9
|
|
ENUM[10] = :LOOSE_CLUSTERS ; NUME[:LOOSE_CLUSTERS] = 10
|
|
ENUM[11] = :FANCIFUL ; NUME[:FANCIFUL] = 11
|
|
ENUM[12] = :BIOME_MOUNTAIN ; NUME[:BIOME_MOUNTAIN] = 12
|
|
ENUM[13] = :BIOME_GLACIER ; NUME[:BIOME_GLACIER] = 13
|
|
ENUM[14] = :BIOME_TUNDRA ; NUME[:BIOME_TUNDRA] = 14
|
|
ENUM[15] = :BIOME_SWAMP_TEMPERATE_FRESHWATER ; NUME[:BIOME_SWAMP_TEMPERATE_FRESHWATER] = 15
|
|
ENUM[16] = :BIOME_SWAMP_TEMPERATE_SALTWATER ; NUME[:BIOME_SWAMP_TEMPERATE_SALTWATER] = 16
|
|
ENUM[17] = :BIOME_MARSH_TEMPERATE_FRESHWATER ; NUME[:BIOME_MARSH_TEMPERATE_FRESHWATER] = 17
|
|
ENUM[18] = :BIOME_MARSH_TEMPERATE_SALTWATER ; NUME[:BIOME_MARSH_TEMPERATE_SALTWATER] = 18
|
|
ENUM[19] = :BIOME_SWAMP_TROPICAL_FRESHWATER ; NUME[:BIOME_SWAMP_TROPICAL_FRESHWATER] = 19
|
|
ENUM[20] = :BIOME_SWAMP_TROPICAL_SALTWATER ; NUME[:BIOME_SWAMP_TROPICAL_SALTWATER] = 20
|
|
ENUM[21] = :BIOME_SWAMP_MANGROVE ; NUME[:BIOME_SWAMP_MANGROVE] = 21
|
|
ENUM[22] = :BIOME_MARSH_TROPICAL_FRESHWATER ; NUME[:BIOME_MARSH_TROPICAL_FRESHWATER] = 22
|
|
ENUM[23] = :BIOME_MARSH_TROPICAL_SALTWATER ; NUME[:BIOME_MARSH_TROPICAL_SALTWATER] = 23
|
|
ENUM[24] = :BIOME_FOREST_TAIGA ; NUME[:BIOME_FOREST_TAIGA] = 24
|
|
ENUM[25] = :BIOME_FOREST_TEMPERATE_CONIFER ; NUME[:BIOME_FOREST_TEMPERATE_CONIFER] = 25
|
|
ENUM[26] = :BIOME_FOREST_TEMPERATE_BROADLEAF ; NUME[:BIOME_FOREST_TEMPERATE_BROADLEAF] = 26
|
|
ENUM[27] = :BIOME_FOREST_TROPICAL_CONIFER ; NUME[:BIOME_FOREST_TROPICAL_CONIFER] = 27
|
|
ENUM[28] = :BIOME_FOREST_TROPICAL_DRY_BROADLEAF ; NUME[:BIOME_FOREST_TROPICAL_DRY_BROADLEAF] = 28
|
|
ENUM[29] = :BIOME_FOREST_TROPICAL_MOIST_BROADLEAF ; NUME[:BIOME_FOREST_TROPICAL_MOIST_BROADLEAF] = 29
|
|
ENUM[30] = :BIOME_GRASSLAND_TEMPERATE ; NUME[:BIOME_GRASSLAND_TEMPERATE] = 30
|
|
ENUM[31] = :BIOME_SAVANNA_TEMPERATE ; NUME[:BIOME_SAVANNA_TEMPERATE] = 31
|
|
ENUM[32] = :BIOME_SHRUBLAND_TEMPERATE ; NUME[:BIOME_SHRUBLAND_TEMPERATE] = 32
|
|
ENUM[33] = :BIOME_GRASSLAND_TROPICAL ; NUME[:BIOME_GRASSLAND_TROPICAL] = 33
|
|
ENUM[34] = :BIOME_SAVANNA_TROPICAL ; NUME[:BIOME_SAVANNA_TROPICAL] = 34
|
|
ENUM[35] = :BIOME_SHRUBLAND_TROPICAL ; NUME[:BIOME_SHRUBLAND_TROPICAL] = 35
|
|
ENUM[36] = :BIOME_DESERT_BADLAND ; NUME[:BIOME_DESERT_BADLAND] = 36
|
|
ENUM[37] = :BIOME_DESERT_ROCK ; NUME[:BIOME_DESERT_ROCK] = 37
|
|
ENUM[38] = :BIOME_DESERT_SAND ; NUME[:BIOME_DESERT_SAND] = 38
|
|
ENUM[39] = :BIOME_OCEAN_TROPICAL ; NUME[:BIOME_OCEAN_TROPICAL] = 39
|
|
ENUM[40] = :BIOME_OCEAN_TEMPERATE ; NUME[:BIOME_OCEAN_TEMPERATE] = 40
|
|
ENUM[41] = :BIOME_OCEAN_ARCTIC ; NUME[:BIOME_OCEAN_ARCTIC] = 41
|
|
ENUM[42] = :BIOME_SUBTERRANEAN_WATER ; NUME[:BIOME_SUBTERRANEAN_WATER] = 42
|
|
ENUM[43] = :BIOME_SUBTERRANEAN_CHASM ; NUME[:BIOME_SUBTERRANEAN_CHASM] = 43
|
|
ENUM[44] = :BIOME_SUBTERRANEAN_LAVA ; NUME[:BIOME_SUBTERRANEAN_LAVA] = 44
|
|
ENUM[45] = :BIOME_POOL_TEMPERATE_FRESHWATER ; NUME[:BIOME_POOL_TEMPERATE_FRESHWATER] = 45
|
|
ENUM[46] = :BIOME_POOL_TEMPERATE_BRACKISHWATER ; NUME[:BIOME_POOL_TEMPERATE_BRACKISHWATER] = 46
|
|
ENUM[47] = :BIOME_POOL_TEMPERATE_SALTWATER ; NUME[:BIOME_POOL_TEMPERATE_SALTWATER] = 47
|
|
ENUM[48] = :BIOME_POOL_TROPICAL_FRESHWATER ; NUME[:BIOME_POOL_TROPICAL_FRESHWATER] = 48
|
|
ENUM[49] = :BIOME_POOL_TROPICAL_BRACKISHWATER ; NUME[:BIOME_POOL_TROPICAL_BRACKISHWATER] = 49
|
|
ENUM[50] = :BIOME_POOL_TROPICAL_SALTWATER ; NUME[:BIOME_POOL_TROPICAL_SALTWATER] = 50
|
|
ENUM[51] = :BIOME_LAKE_TEMPERATE_FRESHWATER ; NUME[:BIOME_LAKE_TEMPERATE_FRESHWATER] = 51
|
|
ENUM[52] = :BIOME_LAKE_TEMPERATE_BRACKISHWATER ; NUME[:BIOME_LAKE_TEMPERATE_BRACKISHWATER] = 52
|
|
ENUM[53] = :BIOME_LAKE_TEMPERATE_SALTWATER ; NUME[:BIOME_LAKE_TEMPERATE_SALTWATER] = 53
|
|
ENUM[54] = :BIOME_LAKE_TROPICAL_FRESHWATER ; NUME[:BIOME_LAKE_TROPICAL_FRESHWATER] = 54
|
|
ENUM[55] = :BIOME_LAKE_TROPICAL_BRACKISHWATER ; NUME[:BIOME_LAKE_TROPICAL_BRACKISHWATER] = 55
|
|
ENUM[56] = :BIOME_LAKE_TROPICAL_SALTWATER ; NUME[:BIOME_LAKE_TROPICAL_SALTWATER] = 56
|
|
ENUM[57] = :BIOME_RIVER_TEMPERATE_FRESHWATER ; NUME[:BIOME_RIVER_TEMPERATE_FRESHWATER] = 57
|
|
ENUM[58] = :BIOME_RIVER_TEMPERATE_BRACKISHWATER ; NUME[:BIOME_RIVER_TEMPERATE_BRACKISHWATER] = 58
|
|
ENUM[59] = :BIOME_RIVER_TEMPERATE_SALTWATER ; NUME[:BIOME_RIVER_TEMPERATE_SALTWATER] = 59
|
|
ENUM[60] = :BIOME_RIVER_TROPICAL_FRESHWATER ; NUME[:BIOME_RIVER_TROPICAL_FRESHWATER] = 60
|
|
ENUM[61] = :BIOME_RIVER_TROPICAL_BRACKISHWATER ; NUME[:BIOME_RIVER_TROPICAL_BRACKISHWATER] = 61
|
|
ENUM[62] = :BIOME_RIVER_TROPICAL_SALTWATER ; NUME[:BIOME_RIVER_TROPICAL_SALTWATER] = 62
|
|
ENUM[63] = :GOOD ; NUME[:GOOD] = 63
|
|
ENUM[64] = :EVIL ; NUME[:EVIL] = 64
|
|
ENUM[65] = :SAVAGE ; NUME[:SAVAGE] = 65
|
|
ENUM[91] = :GENERATED ; NUME[:GENERATED] = 91
|
|
ENUM[94] = :DOES_NOT_EXIST ; NUME[:DOES_NOT_EXIST] = 94
|
|
ENUM[103] = :ARTIFICIAL_HIVEABLE ; NUME[:ARTIFICIAL_HIVEABLE] = 103
|
|
ENUM[104] = :UBIQUITOUS ; NUME[:UBIQUITOUS] = 104
|
|
end
|
|
|
|
class DInitFlags1 < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :VARIED_GROUND_TILES ; NUME[:VARIED_GROUND_TILES] = 0
|
|
ENUM[1] = :ENGRAVINGS_START_OBSCURED ; NUME[:ENGRAVINGS_START_OBSCURED] = 1
|
|
ENUM[2] = :SHOW_IMP_QUALITY ; NUME[:SHOW_IMP_QUALITY] = 2
|
|
ENUM[3] = :SHOW_FLOW_AMOUNTS ; NUME[:SHOW_FLOW_AMOUNTS] = 3
|
|
end
|
|
|
|
class DInitFlags2 < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :MORE ; NUME[:MORE] = 0
|
|
ENUM[1] = :ADVENTURER_TRAPS ; NUME[:ADVENTURER_TRAPS] = 1
|
|
ENUM[2] = :ADVENTURER_ALWAYS_CENTER ; NUME[:ADVENTURER_ALWAYS_CENTER] = 2
|
|
end
|
|
|
|
class DInitFlags3 < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :COFFIN_NO_PETS_DEFAULT ; NUME[:COFFIN_NO_PETS_DEFAULT] = 0
|
|
end
|
|
|
|
class DInitFlags4 < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :TEMPERATURE ; NUME[:TEMPERATURE] = 0
|
|
ENUM[1] = :WEATHER ; NUME[:WEATHER] = 1
|
|
ENUM[2] = :ECONOMY ; NUME[:ECONOMY] = 2
|
|
ENUM[3] = :ZERO_RENT ; NUME[:ZERO_RENT] = 3
|
|
ENUM[4] = :AUTOSAVE_SEASONAL ; NUME[:AUTOSAVE_SEASONAL] = 4
|
|
ENUM[5] = :AUTOSAVE_YEARLY ; NUME[:AUTOSAVE_YEARLY] = 5
|
|
ENUM[6] = :AUTOSAVE_PAUSE ; NUME[:AUTOSAVE_PAUSE] = 6
|
|
ENUM[7] = :AUTOBACKUP ; NUME[:AUTOBACKUP] = 7
|
|
ENUM[8] = :INITIAL_SAVE ; NUME[:INITIAL_SAVE] = 8
|
|
ENUM[9] = :INVADERS ; NUME[:INVADERS] = 9
|
|
ENUM[10] = :CAVEINS ; NUME[:CAVEINS] = 10
|
|
ENUM[11] = :ARTIFACTS ; NUME[:ARTIFACTS] = 11
|
|
ENUM[12] = :LOG_MAP_REJECTS ; NUME[:LOG_MAP_REJECTS] = 12
|
|
ENUM[13] = :PAUSE_ON_LOAD ; NUME[:PAUSE_ON_LOAD] = 13
|
|
ENUM[14] = :EMBARK_WARNING_ALWAYS ; NUME[:EMBARK_WARNING_ALWAYS] = 14
|
|
ENUM[15] = :SHOW_ALL_HISTORY_IN_DWARF_MODE ; NUME[:SHOW_ALL_HISTORY_IN_DWARF_MODE] = 15
|
|
ENUM[16] = :TESTING_ARENA ; NUME[:TESTING_ARENA] = 16
|
|
ENUM[17] = :WALKING_SPREADS_SPATTER_DWF ; NUME[:WALKING_SPREADS_SPATTER_DWF] = 17
|
|
ENUM[18] = :WALKING_SPREADS_SPATTER_ADV ; NUME[:WALKING_SPREADS_SPATTER_ADV] = 18
|
|
end
|
|
|
|
class DInitIdlers < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :OFF ; NUME[:OFF] = -1
|
|
ENUM[0] = :TOP ; NUME[:TOP] = 0
|
|
ENUM[1] = :BOTTOM ; NUME[:BOTTOM] = 1
|
|
end
|
|
|
|
class DInitNickname < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :REPLACE_FIRST ; NUME[:REPLACE_FIRST] = 0
|
|
ENUM[1] = :CENTRALIZE ; NUME[:CENTRALIZE] = 1
|
|
ENUM[2] = :REPLACE_ALL ; NUME[:REPLACE_ALL] = 2
|
|
end
|
|
|
|
class DInitTunnel < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :NO ; NUME[:NO] = 0
|
|
ENUM[1] = :FINDER ; NUME[:FINDER] = 1
|
|
ENUM[2] = :ALWAYS ; NUME[:ALWAYS] = 2
|
|
end
|
|
|
|
class DInitZView < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :OFF ; NUME[:OFF] = 0
|
|
ENUM[1] = :UNHIDDEN ; NUME[:UNHIDDEN] = 1
|
|
ENUM[2] = :CREATURE ; NUME[:CREATURE] = 2
|
|
ENUM[3] = :ON ; NUME[:ON] = 3
|
|
end
|
|
|
|
class EmbarkFinderOption < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :DimensionX ; NUME[:DimensionX] = 0
|
|
ENUM[1] = :DimensionY ; NUME[:DimensionY] = 1
|
|
ENUM[2] = :Savagery ; NUME[:Savagery] = 2
|
|
ENUM[3] = :Evil ; NUME[:Evil] = 3
|
|
ENUM[4] = :Elevation ; NUME[:Elevation] = 4
|
|
ENUM[5] = :Temperature ; NUME[:Temperature] = 5
|
|
ENUM[6] = :Rain ; NUME[:Rain] = 6
|
|
ENUM[7] = :Drainage ; NUME[:Drainage] = 7
|
|
ENUM[8] = :FluxStone ; NUME[:FluxStone] = 8
|
|
ENUM[9] = :Aquifer ; NUME[:Aquifer] = 9
|
|
ENUM[10] = :River ; NUME[:River] = 10
|
|
ENUM[11] = :UndergroundRiver ; NUME[:UndergroundRiver] = 11
|
|
ENUM[12] = :UndergroundPool ; NUME[:UndergroundPool] = 12
|
|
ENUM[13] = :MagmaPool ; NUME[:MagmaPool] = 13
|
|
ENUM[14] = :MagmaPipe ; NUME[:MagmaPipe] = 14
|
|
ENUM[15] = :Chasm ; NUME[:Chasm] = 15
|
|
ENUM[16] = :BottomlessPit ; NUME[:BottomlessPit] = 16
|
|
ENUM[17] = :OtherFeatures ; NUME[:OtherFeatures] = 17
|
|
ENUM[18] = :ShallowMetal ; NUME[:ShallowMetal] = 18
|
|
ENUM[19] = :DeepMetal ; NUME[:DeepMetal] = 19
|
|
ENUM[20] = :Soil ; NUME[:Soil] = 20
|
|
ENUM[21] = :Clay ; NUME[:Clay] = 21
|
|
end
|
|
|
|
class EntityPositionFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :IS_LAW_MAKER ; NUME[:IS_LAW_MAKER] = 0
|
|
ENUM[1] = :ELECTED ; NUME[:ELECTED] = 1
|
|
ENUM[2] = :DUTY_BOUND ; NUME[:DUTY_BOUND] = 2
|
|
ENUM[3] = :MILITARY_SCREEN_ONLY ; NUME[:MILITARY_SCREEN_ONLY] = 3
|
|
ENUM[4] = :GENDER_MALE ; NUME[:GENDER_MALE] = 4
|
|
ENUM[5] = :GENDER_FEMALE ; NUME[:GENDER_FEMALE] = 5
|
|
ENUM[6] = :SUCCESSION_BY_HEIR ; NUME[:SUCCESSION_BY_HEIR] = 6
|
|
ENUM[7] = :HAS_RESPONSIBILITIES ; NUME[:HAS_RESPONSIBILITIES] = 7
|
|
ENUM[8] = :FLASHES ; NUME[:FLASHES] = 8
|
|
ENUM[9] = :BRAG_ON_KILL ; NUME[:BRAG_ON_KILL] = 9
|
|
ENUM[10] = :CHAT_WORTHY ; NUME[:CHAT_WORTHY] = 10
|
|
ENUM[11] = :DO_NOT_CULL ; NUME[:DO_NOT_CULL] = 11
|
|
ENUM[12] = :KILL_QUEST ; NUME[:KILL_QUEST] = 12
|
|
ENUM[13] = :IS_LEADER ; NUME[:IS_LEADER] = 13
|
|
ENUM[14] = :IS_DIPLOMAT ; NUME[:IS_DIPLOMAT] = 14
|
|
ENUM[15] = :EXPORTED_IN_LEGENDS ; NUME[:EXPORTED_IN_LEGENDS] = 15
|
|
ENUM[16] = :DETERMINES_COIN_DESIGN ; NUME[:DETERMINES_COIN_DESIGN] = 16
|
|
ENUM[17] = :ACCOUNT_EXEMPT ; NUME[:ACCOUNT_EXEMPT] = 17
|
|
ENUM[20] = :COLOR ; NUME[:COLOR] = 20
|
|
ENUM[21] = :RULES_FROM_LOCATION ; NUME[:RULES_FROM_LOCATION] = 21
|
|
ENUM[22] = :MENIAL_WORK_EXEMPTION ; NUME[:MENIAL_WORK_EXEMPTION] = 22
|
|
ENUM[23] = :MENIAL_WORK_EXEMPTION_SPOUSE ; NUME[:MENIAL_WORK_EXEMPTION_SPOUSE] = 23
|
|
ENUM[24] = :SLEEP_PRETENSION ; NUME[:SLEEP_PRETENSION] = 24
|
|
ENUM[25] = :PUNISHMENT_EXEMPTION ; NUME[:PUNISHMENT_EXEMPTION] = 25
|
|
ENUM[28] = :QUEST_GIVER ; NUME[:QUEST_GIVER] = 28
|
|
end
|
|
|
|
class EntityPositionRawFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :SITE ; NUME[:SITE] = 0
|
|
ENUM[1] = :ELECTED ; NUME[:ELECTED] = 1
|
|
ENUM[2] = :CONQUERED_SITE ; NUME[:CONQUERED_SITE] = 2
|
|
ENUM[3] = :MILITARY_SCREEN_ONLY ; NUME[:MILITARY_SCREEN_ONLY] = 3
|
|
ENUM[4] = :GENDER_MALE ; NUME[:GENDER_MALE] = 4
|
|
ENUM[5] = :GENDER_FEMALE ; NUME[:GENDER_FEMALE] = 5
|
|
ENUM[6] = :SUCCESSION_BY_HEIR ; NUME[:SUCCESSION_BY_HEIR] = 6
|
|
ENUM[7] = :EXPORTED_IN_LEGENDS ; NUME[:EXPORTED_IN_LEGENDS] = 7
|
|
ENUM[8] = :FLASHES ; NUME[:FLASHES] = 8
|
|
ENUM[9] = :BRAG_ON_KILL ; NUME[:BRAG_ON_KILL] = 9
|
|
ENUM[10] = :CHAT_WORTHY ; NUME[:CHAT_WORTHY] = 10
|
|
ENUM[11] = :DO_NOT_CULL ; NUME[:DO_NOT_CULL] = 11
|
|
ENUM[12] = :KILL_QUEST ; NUME[:KILL_QUEST] = 12
|
|
ENUM[13] = :DETERMINES_COIN_DESIGN ; NUME[:DETERMINES_COIN_DESIGN] = 13
|
|
ENUM[14] = :ACCOUNT_EXEMPT ; NUME[:ACCOUNT_EXEMPT] = 14
|
|
ENUM[15] = :DUTY_BOUND ; NUME[:DUTY_BOUND] = 15
|
|
ENUM[16] = :COLOR ; NUME[:COLOR] = 16
|
|
ENUM[17] = :RULES_FROM_LOCATION ; NUME[:RULES_FROM_LOCATION] = 17
|
|
ENUM[18] = :MENIAL_WORK_EXEMPTION ; NUME[:MENIAL_WORK_EXEMPTION] = 18
|
|
ENUM[19] = :MENIAL_WORK_EXEMPTION_SPOUSE ; NUME[:MENIAL_WORK_EXEMPTION_SPOUSE] = 19
|
|
ENUM[20] = :SLEEP_PRETENSION ; NUME[:SLEEP_PRETENSION] = 20
|
|
ENUM[21] = :PUNISHMENT_EXEMPTION ; NUME[:PUNISHMENT_EXEMPTION] = 21
|
|
ENUM[22] = :QUEST_GIVER ; NUME[:QUEST_GIVER] = 22
|
|
end
|
|
|
|
class EntityPositionResponsibility < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :LAW_MAKING ; NUME[:LAW_MAKING] = 0
|
|
ENUM[1] = :LAW_ENFORCEMENT ; NUME[:LAW_ENFORCEMENT] = 1
|
|
ENUM[2] = :RECEIVE_DIPLOMATS ; NUME[:RECEIVE_DIPLOMATS] = 2
|
|
ENUM[3] = :MEET_WORKERS ; NUME[:MEET_WORKERS] = 3
|
|
ENUM[4] = :MANAGE_PRODUCTION ; NUME[:MANAGE_PRODUCTION] = 4
|
|
ENUM[5] = :TRADE ; NUME[:TRADE] = 5
|
|
ENUM[6] = :ACCOUNTING ; NUME[:ACCOUNTING] = 6
|
|
ENUM[7] = :ESTABLISH_COLONY_TRADE_AGREEMENTS ; NUME[:ESTABLISH_COLONY_TRADE_AGREEMENTS] = 7
|
|
ENUM[8] = :MAKE_INTRODUCTIONS ; NUME[:MAKE_INTRODUCTIONS] = 8
|
|
ENUM[9] = :MAKE_PEACE_AGREEMENTS ; NUME[:MAKE_PEACE_AGREEMENTS] = 9
|
|
ENUM[10] = :MAKE_TOPIC_AGREEMENTS ; NUME[:MAKE_TOPIC_AGREEMENTS] = 10
|
|
ENUM[11] = :COLLECT_TAXES ; NUME[:COLLECT_TAXES] = 11
|
|
ENUM[12] = :ESCORT_TAX_COLLECTOR ; NUME[:ESCORT_TAX_COLLECTOR] = 12
|
|
ENUM[13] = :EXECUTIONS ; NUME[:EXECUTIONS] = 13
|
|
ENUM[14] = :TAME_EXOTICS ; NUME[:TAME_EXOTICS] = 14
|
|
ENUM[15] = :RELIGION ; NUME[:RELIGION] = 15
|
|
ENUM[16] = :ATTACK_ENEMIES ; NUME[:ATTACK_ENEMIES] = 16
|
|
ENUM[17] = :PATROL_TERRITORY ; NUME[:PATROL_TERRITORY] = 17
|
|
ENUM[18] = :MILITARY_GOALS ; NUME[:MILITARY_GOALS] = 18
|
|
ENUM[19] = :MILITARY_STRATEGY ; NUME[:MILITARY_STRATEGY] = 19
|
|
ENUM[20] = :UPGRADE_SQUAD_EQUIPMENT ; NUME[:UPGRADE_SQUAD_EQUIPMENT] = 20
|
|
ENUM[21] = :EQUIPMENT_MANIFESTS ; NUME[:EQUIPMENT_MANIFESTS] = 21
|
|
ENUM[22] = :SORT_AMMUNITION ; NUME[:SORT_AMMUNITION] = 22
|
|
ENUM[23] = :BUILD_MORALE ; NUME[:BUILD_MORALE] = 23
|
|
ENUM[24] = :HEALTH_MANAGEMENT ; NUME[:HEALTH_MANAGEMENT] = 24
|
|
end
|
|
|
|
class EntityRawFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :CIV_CONTROLLABLE ; NUME[:CIV_CONTROLLABLE] = 0
|
|
ENUM[1] = :INDIV_CONTROLLABLE ; NUME[:INDIV_CONTROLLABLE] = 1
|
|
ENUM[2] = :LAYER_LINKED ; NUME[:LAYER_LINKED] = 2
|
|
ENUM[3] = :INDOOR_WOOD ; NUME[:INDOOR_WOOD] = 3
|
|
ENUM[4] = :WOOD_ARMOR ; NUME[:WOOD_ARMOR] = 4
|
|
ENUM[5] = :SIEGER ; NUME[:SIEGER] = 5
|
|
ENUM[6] = :AMBUSHER ; NUME[:AMBUSHER] = 6
|
|
ENUM[7] = :BABYSNATCHER ; NUME[:BABYSNATCHER] = 7
|
|
ENUM[8] = :ITEM_THIEF ; NUME[:ITEM_THIEF] = 8
|
|
ENUM[9] = :CLOTHING ; NUME[:CLOTHING] = 9
|
|
ENUM[10] = :CURRENCY_BY_YEAR ; NUME[:CURRENCY_BY_YEAR] = 10
|
|
ENUM[11] = :METAL_PREF ; NUME[:METAL_PREF] = 11
|
|
ENUM[12] = :GEM_PREF ; NUME[:GEM_PREF] = 12
|
|
ENUM[13] = :STONE_PREF ; NUME[:STONE_PREF] = 13
|
|
ENUM[14] = :WOOD_WEAPONS ; NUME[:WOOD_WEAPONS] = 14
|
|
ENUM[15] = :BUILDS_OUTDOOR_FORTIFICATIONS ; NUME[:BUILDS_OUTDOOR_FORTIFICATIONS] = 15
|
|
ENUM[16] = :RIVER_PRODUCTS ; NUME[:RIVER_PRODUCTS] = 16
|
|
ENUM[17] = :OCEAN_PRODUCTS ; NUME[:OCEAN_PRODUCTS] = 17
|
|
ENUM[18] = :INDOOR_FARMING ; NUME[:INDOOR_FARMING] = 18
|
|
ENUM[19] = :OUTDOOR_FARMING ; NUME[:OUTDOOR_FARMING] = 19
|
|
ENUM[20] = :USE_CAVE_ANIMALS ; NUME[:USE_CAVE_ANIMALS] = 20
|
|
ENUM[21] = :USE_EVIL_ANIMALS ; NUME[:USE_EVIL_ANIMALS] = 21
|
|
ENUM[22] = :USE_ANIMAL_PRODUCTS ; NUME[:USE_ANIMAL_PRODUCTS] = 22
|
|
ENUM[23] = :COMMON_DOMESTIC_PACK ; NUME[:COMMON_DOMESTIC_PACK] = 23
|
|
ENUM[24] = :COMMON_DOMESTIC_PULL ; NUME[:COMMON_DOMESTIC_PULL] = 24
|
|
ENUM[25] = :COMMON_DOMESTIC_MOUNT ; NUME[:COMMON_DOMESTIC_MOUNT] = 25
|
|
ENUM[26] = :COMMON_DOMESTIC_PET ; NUME[:COMMON_DOMESTIC_PET] = 26
|
|
ENUM[27] = :SUBTERRANEAN_CLOTHING ; NUME[:SUBTERRANEAN_CLOTHING] = 27
|
|
ENUM[28] = :USE_EVIL_WOOD ; NUME[:USE_EVIL_WOOD] = 28
|
|
ENUM[29] = :USE_GOOD_WOOD ; NUME[:USE_GOOD_WOOD] = 29
|
|
ENUM[30] = :USE_EVIL_PLANTS ; NUME[:USE_EVIL_PLANTS] = 30
|
|
ENUM[31] = :USE_GOOD_PLANTS ; NUME[:USE_GOOD_PLANTS] = 31
|
|
ENUM[32] = :USE_GOOD_ANIMALS ; NUME[:USE_GOOD_ANIMALS] = 32
|
|
ENUM[33] = :USE_ANY_PET_RACE ; NUME[:USE_ANY_PET_RACE] = 33
|
|
ENUM[34] = :USE_MISC_PROCESSED_WOOD_PRODUCTS ; NUME[:USE_MISC_PROCESSED_WOOD_PRODUCTS] = 34
|
|
ENUM[35] = :IMPROVED_BOWS ; NUME[:IMPROVED_BOWS] = 35
|
|
ENUM[36] = :OUTDOOR_WOOD ; NUME[:OUTDOOR_WOOD] = 36
|
|
ENUM[37] = :LOCAL_BANDITRY ; NUME[:LOCAL_BANDITRY] = 37
|
|
ENUM[39] = :INVADERS_IGNORE_NEUTRALS ; NUME[:INVADERS_IGNORE_NEUTRALS] = 39
|
|
ENUM[40] = :AT_PEACE_WITH_WILDLIFE ; NUME[:AT_PEACE_WITH_WILDLIFE] = 40
|
|
ENUM[41] = :EQUIPMENT_IMPROVEMENTS ; NUME[:EQUIPMENT_IMPROVEMENTS] = 41
|
|
ENUM[42] = :ABUSE_BODIES ; NUME[:ABUSE_BODIES] = 42
|
|
ENUM[43] = :UNDEAD_CANDIDATE ; NUME[:UNDEAD_CANDIDATE] = 43
|
|
ENUM[45] = :SKULKING ; NUME[:SKULKING] = 45
|
|
ENUM[47] = :MERCHANT_NOBILITY ; NUME[:MERCHANT_NOBILITY] = 47
|
|
ENUM[48] = :TREE_CAP_DIPLOMACY ; NUME[:TREE_CAP_DIPLOMACY] = 48
|
|
ENUM[49] = :DIPLOMAT_BODYGUARDS ; NUME[:DIPLOMAT_BODYGUARDS] = 49
|
|
ENUM[50] = :MERCHANT_BODYGUARDS ; NUME[:MERCHANT_BODYGUARDS] = 50
|
|
ENUM[53] = :WANDERER ; NUME[:WANDERER] = 53
|
|
ENUM[54] = :BEAST_HUNTER ; NUME[:BEAST_HUNTER] = 54
|
|
ENUM[55] = :SCOUT ; NUME[:SCOUT] = 55
|
|
ENUM[56] = :WILL_ACCEPT_TRIBUTE ; NUME[:WILL_ACCEPT_TRIBUTE] = 56
|
|
end
|
|
|
|
class EnvironmentType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :SOIL ; NUME[:SOIL] = 0
|
|
ENUM[1] = :SOIL_OCEAN ; NUME[:SOIL_OCEAN] = 1
|
|
ENUM[2] = :SOIL_SAND ; NUME[:SOIL_SAND] = 2
|
|
ENUM[3] = :METAMORPHIC ; NUME[:METAMORPHIC] = 3
|
|
ENUM[4] = :SEDIMENTARY ; NUME[:SEDIMENTARY] = 4
|
|
ENUM[5] = :IGNEOUS_INTRUSIVE ; NUME[:IGNEOUS_INTRUSIVE] = 5
|
|
ENUM[6] = :IGNEOUS_EXTRUSIVE ; NUME[:IGNEOUS_EXTRUSIVE] = 6
|
|
ENUM[7] = :ALLUVIAL ; NUME[:ALLUVIAL] = 7
|
|
end
|
|
|
|
class EthicResponse < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :NOT_APPLICABLE ; NUME[:NOT_APPLICABLE] = 0
|
|
ENUM[1] = :ACCEPTABLE ; NUME[:ACCEPTABLE] = 1
|
|
ENUM[2] = :PERSONAL_MATTER ; NUME[:PERSONAL_MATTER] = 2
|
|
ENUM[3] = :JUSTIFIED_IF_NO_REPERCUSSIONS ; NUME[:JUSTIFIED_IF_NO_REPERCUSSIONS] = 3
|
|
ENUM[4] = :JUSTIFIED_IF_GOOD_REASON ; NUME[:JUSTIFIED_IF_GOOD_REASON] = 4
|
|
ENUM[5] = :JUSTIFIED_IF_EXTREME_REASON ; NUME[:JUSTIFIED_IF_EXTREME_REASON] = 5
|
|
ENUM[6] = :JUSTIFIED_IF_SELF_DEFENSE ; NUME[:JUSTIFIED_IF_SELF_DEFENSE] = 6
|
|
ENUM[7] = :ONLY_IF_SANCTIONED ; NUME[:ONLY_IF_SANCTIONED] = 7
|
|
ENUM[8] = :MISGUIDED ; NUME[:MISGUIDED] = 8
|
|
ENUM[9] = :SHUN ; NUME[:SHUN] = 9
|
|
ENUM[10] = :APPALLING ; NUME[:APPALLING] = 10
|
|
ENUM[11] = :PUNISH_REPRIMAND ; NUME[:PUNISH_REPRIMAND] = 11
|
|
ENUM[12] = :PUNISH_SERIOUS ; NUME[:PUNISH_SERIOUS] = 12
|
|
ENUM[13] = :PUNISH_EXILE ; NUME[:PUNISH_EXILE] = 13
|
|
ENUM[14] = :PUNISH_CAPITAL ; NUME[:PUNISH_CAPITAL] = 14
|
|
ENUM[15] = :UNTHINKABLE ; NUME[:UNTHINKABLE] = 15
|
|
end
|
|
|
|
class EthicType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :KILL_ENTITY_MEMBER ; NUME[:KILL_ENTITY_MEMBER] = 0
|
|
ENUM[1] = :KILL_NEUTRAL ; NUME[:KILL_NEUTRAL] = 1
|
|
ENUM[2] = :KILL_ENEMY ; NUME[:KILL_ENEMY] = 2
|
|
ENUM[3] = :KILL_ANIMAL ; NUME[:KILL_ANIMAL] = 3
|
|
ENUM[4] = :KILL_PLANT ; NUME[:KILL_PLANT] = 4
|
|
ENUM[5] = :TORTURE_AS_EXAMPLE ; NUME[:TORTURE_AS_EXAMPLE] = 5
|
|
ENUM[6] = :TORTURE_FOR_INFORMATION ; NUME[:TORTURE_FOR_INFORMATION] = 6
|
|
ENUM[7] = :TORTURE_FOR_FUN ; NUME[:TORTURE_FOR_FUN] = 7
|
|
ENUM[8] = :TORTURE_ANIMALS ; NUME[:TORTURE_ANIMALS] = 8
|
|
ENUM[9] = :TREASON ; NUME[:TREASON] = 9
|
|
ENUM[10] = :OATH_BREAKING ; NUME[:OATH_BREAKING] = 10
|
|
ENUM[11] = :LYING ; NUME[:LYING] = 11
|
|
ENUM[12] = :VANDALISM ; NUME[:VANDALISM] = 12
|
|
ENUM[13] = :TRESPASSING ; NUME[:TRESPASSING] = 13
|
|
ENUM[14] = :THEFT ; NUME[:THEFT] = 14
|
|
ENUM[15] = :ASSAULT ; NUME[:ASSAULT] = 15
|
|
ENUM[16] = :SLAVERY ; NUME[:SLAVERY] = 16
|
|
ENUM[17] = :EAT_SAPIENT_OTHER ; NUME[:EAT_SAPIENT_OTHER] = 17
|
|
ENUM[18] = :EAT_SAPIENT_KILL ; NUME[:EAT_SAPIENT_KILL] = 18
|
|
ENUM[19] = :MAKE_TROPHY_SAME_RACE ; NUME[:MAKE_TROPHY_SAME_RACE] = 19
|
|
ENUM[20] = :MAKE_TROPHY_SAPIENT ; NUME[:MAKE_TROPHY_SAPIENT] = 20
|
|
ENUM[21] = :MAKE_TROPHY_ANIMAL ; NUME[:MAKE_TROPHY_ANIMAL] = 21
|
|
end
|
|
|
|
class FeatureAlterationType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :NewPopMax ; NUME[:NewPopMax] = 0
|
|
ENUM[1] = :NewLavaFillZ ; NUME[:NewLavaFillZ] = 1
|
|
end
|
|
|
|
class FeatureInitFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[3] = :Discovered ; NUME[:Discovered] = 3
|
|
end
|
|
|
|
class FeatureType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :OutdoorRiver ; NUME[:OutdoorRiver] = 0
|
|
ENUM[1] = :Cave ; NUME[:Cave] = 1
|
|
ENUM[2] = :Pit ; NUME[:Pit] = 2
|
|
ENUM[3] = :MagmaPool ; NUME[:MagmaPool] = 3
|
|
ENUM[4] = :Volcano ; NUME[:Volcano] = 4
|
|
ENUM[5] = :DeepSpecialTube ; NUME[:DeepSpecialTube] = 5
|
|
ENUM[6] = :DeepSurfacePortal ; NUME[:DeepSurfacePortal] = 6
|
|
ENUM[7] = :SubterraneanFromLayer ; NUME[:SubterraneanFromLayer] = 7
|
|
ENUM[8] = :MagmaCoreFromLayer ; NUME[:MagmaCoreFromLayer] = 8
|
|
ENUM[9] = :FeatureUnderworldFromLayer ; NUME[:FeatureUnderworldFromLayer] = 9
|
|
end
|
|
|
|
class FlowType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Miasma ; NUME[:Miasma] = 0
|
|
ENUM[1] = :Steam ; NUME[:Steam] = 1
|
|
ENUM[2] = :Mist ; NUME[:Mist] = 2
|
|
ENUM[3] = :MaterialDust ; NUME[:MaterialDust] = 3
|
|
ENUM[4] = :MagmaMist ; NUME[:MagmaMist] = 4
|
|
ENUM[5] = :Smoke ; NUME[:Smoke] = 5
|
|
ENUM[6] = :Dragonfire ; NUME[:Dragonfire] = 6
|
|
ENUM[7] = :Fire ; NUME[:Fire] = 7
|
|
ENUM[8] = :Web ; NUME[:Web] = 8
|
|
ENUM[9] = :MaterialGas ; NUME[:MaterialGas] = 9
|
|
ENUM[10] = :MaterialVapor ; NUME[:MaterialVapor] = 10
|
|
ENUM[11] = :OceanWave ; NUME[:OceanWave] = 11
|
|
ENUM[12] = :SeaFoam ; NUME[:SeaFoam] = 12
|
|
end
|
|
|
|
class FurnaceType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :WoodFurnace ; NUME[:WoodFurnace] = 0
|
|
ENUM[1] = :Smelter ; NUME[:Smelter] = 1
|
|
ENUM[2] = :GlassFurnace ; NUME[:GlassFurnace] = 2
|
|
ENUM[3] = :Kiln ; NUME[:Kiln] = 3
|
|
ENUM[4] = :MagmaSmelter ; NUME[:MagmaSmelter] = 4
|
|
ENUM[5] = :MagmaGlassFurnace ; NUME[:MagmaGlassFurnace] = 5
|
|
ENUM[6] = :MagmaKiln ; NUME[:MagmaKiln] = 6
|
|
ENUM[7] = :Custom ; NUME[:Custom] = 7
|
|
end
|
|
|
|
class GameMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :DWARF ; NUME[:DWARF] = 0
|
|
ENUM[1] = :ADVENTURE ; NUME[:ADVENTURE] = 1
|
|
ENUM[2] = :Num ; NUME[:Num] = 2
|
|
ENUM[3] = :NONE ; NUME[:NONE] = 3
|
|
end
|
|
|
|
class GameType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :DWARF_MAIN ; NUME[:DWARF_MAIN] = 0
|
|
ENUM[1] = :ADVENTURE_MAIN ; NUME[:ADVENTURE_MAIN] = 1
|
|
ENUM[2] = :VIEW_LEGENDS ; NUME[:VIEW_LEGENDS] = 2
|
|
ENUM[3] = :DWARF_RECLAIM ; NUME[:DWARF_RECLAIM] = 3
|
|
ENUM[4] = :DWARF_ARENA ; NUME[:DWARF_ARENA] = 4
|
|
ENUM[5] = :ADVENTURE_ARENA ; NUME[:ADVENTURE_ARENA] = 5
|
|
ENUM[6] = :Num ; NUME[:Num] = 6
|
|
ENUM[7] = :NONE ; NUME[:NONE] = 7
|
|
end
|
|
|
|
class GeneralRefType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :ARTIFACT ; NUME[:ARTIFACT] = 0
|
|
ENUM[1] = :IS_ARTIFACT ; NUME[:IS_ARTIFACT] = 1
|
|
ENUM[2] = :NEMESIS ; NUME[:NEMESIS] = 2
|
|
ENUM[3] = :IS_NEMESIS ; NUME[:IS_NEMESIS] = 3
|
|
ENUM[4] = :ITEM ; NUME[:ITEM] = 4
|
|
ENUM[5] = :ITEM_TYPE ; NUME[:ITEM_TYPE] = 5
|
|
ENUM[6] = :COINBATCH ; NUME[:COINBATCH] = 6
|
|
ENUM[7] = :MAPSQUARE ; NUME[:MAPSQUARE] = 7
|
|
ENUM[8] = :ENTITY_ART_IMAGE ; NUME[:ENTITY_ART_IMAGE] = 8
|
|
ENUM[9] = :CONTAINS_UNIT ; NUME[:CONTAINS_UNIT] = 9
|
|
ENUM[10] = :CONTAINS_ITEM ; NUME[:CONTAINS_ITEM] = 10
|
|
ENUM[11] = :CONTAINED_IN_ITEM ; NUME[:CONTAINED_IN_ITEM] = 11
|
|
ENUM[12] = :PROJECTILE ; NUME[:PROJECTILE] = 12
|
|
ENUM[13] = :UNIT ; NUME[:UNIT] = 13
|
|
ENUM[14] = :UNIT_MILKEE ; NUME[:UNIT_MILKEE] = 14
|
|
ENUM[15] = :UNIT_TRAINEE ; NUME[:UNIT_TRAINEE] = 15
|
|
ENUM[16] = :UNIT_ITEMOWNER ; NUME[:UNIT_ITEMOWNER] = 16
|
|
ENUM[17] = :UNIT_TRADEBRINGER ; NUME[:UNIT_TRADEBRINGER] = 17
|
|
ENUM[18] = :UNIT_HOLDER ; NUME[:UNIT_HOLDER] = 18
|
|
ENUM[19] = :UNIT_WORKER ; NUME[:UNIT_WORKER] = 19
|
|
ENUM[20] = :UNIT_CAGEE ; NUME[:UNIT_CAGEE] = 20
|
|
ENUM[21] = :UNIT_BEATEE ; NUME[:UNIT_BEATEE] = 21
|
|
ENUM[22] = :UNIT_FOODRECEIVER ; NUME[:UNIT_FOODRECEIVER] = 22
|
|
ENUM[23] = :UNIT_KIDNAPEE ; NUME[:UNIT_KIDNAPEE] = 23
|
|
ENUM[24] = :UNIT_PATIENT ; NUME[:UNIT_PATIENT] = 24
|
|
ENUM[25] = :UNIT_INFANT ; NUME[:UNIT_INFANT] = 25
|
|
ENUM[26] = :UNIT_SLAUGHTEREE ; NUME[:UNIT_SLAUGHTEREE] = 26
|
|
ENUM[27] = :UNIT_SHEAREE ; NUME[:UNIT_SHEAREE] = 27
|
|
ENUM[28] = :UNIT_SUCKEE ; NUME[:UNIT_SUCKEE] = 28
|
|
ENUM[29] = :UNIT_REPORTEE ; NUME[:UNIT_REPORTEE] = 29
|
|
ENUM[30] = :BUILDING ; NUME[:BUILDING] = 30
|
|
ENUM[31] = :BUILDING_CIVZONE_ASSIGNED ; NUME[:BUILDING_CIVZONE_ASSIGNED] = 31
|
|
ENUM[32] = :BUILDING_TRIGGER ; NUME[:BUILDING_TRIGGER] = 32
|
|
ENUM[33] = :BUILDING_TRIGGERTARGET ; NUME[:BUILDING_TRIGGERTARGET] = 33
|
|
ENUM[34] = :BUILDING_CHAIN ; NUME[:BUILDING_CHAIN] = 34
|
|
ENUM[35] = :BUILDING_CAGED ; NUME[:BUILDING_CAGED] = 35
|
|
ENUM[36] = :BUILDING_HOLDER ; NUME[:BUILDING_HOLDER] = 36
|
|
ENUM[37] = :BUILDING_WELL_TAG ; NUME[:BUILDING_WELL_TAG] = 37
|
|
ENUM[38] = :BUILDING_USE_TARGET_1 ; NUME[:BUILDING_USE_TARGET_1] = 38
|
|
ENUM[39] = :BUILDING_USE_TARGET_2 ; NUME[:BUILDING_USE_TARGET_2] = 39
|
|
ENUM[40] = :BUILDING_DESTINATION ; NUME[:BUILDING_DESTINATION] = 40
|
|
ENUM[41] = :BUILDING_NEST_BOX ; NUME[:BUILDING_NEST_BOX] = 41
|
|
ENUM[42] = :ENTITY ; NUME[:ENTITY] = 42
|
|
ENUM[43] = :ENTITY_STOLEN ; NUME[:ENTITY_STOLEN] = 43
|
|
ENUM[44] = :ENTITY_OFFERED ; NUME[:ENTITY_OFFERED] = 44
|
|
ENUM[45] = :ENTITY_ITEMOWNER ; NUME[:ENTITY_ITEMOWNER] = 45
|
|
ENUM[46] = :LOCATION ; NUME[:LOCATION] = 46
|
|
ENUM[47] = :INTERACTION ; NUME[:INTERACTION] = 47
|
|
ENUM[48] = :ABSTRACT_BUILDING ; NUME[:ABSTRACT_BUILDING] = 48
|
|
ENUM[49] = :HISTORICAL_EVENT ; NUME[:HISTORICAL_EVENT] = 49
|
|
ENUM[50] = :SPHERE ; NUME[:SPHERE] = 50
|
|
ENUM[51] = :SITE ; NUME[:SITE] = 51
|
|
ENUM[52] = :SUBREGION ; NUME[:SUBREGION] = 52
|
|
ENUM[53] = :FEATURE_LAYER ; NUME[:FEATURE_LAYER] = 53
|
|
ENUM[54] = :HISTORICAL_FIGURE ; NUME[:HISTORICAL_FIGURE] = 54
|
|
ENUM[55] = :ENTITY_POP ; NUME[:ENTITY_POP] = 55
|
|
ENUM[56] = :CREATURE ; NUME[:CREATURE] = 56
|
|
ENUM[57] = :UNIT_RIDER ; NUME[:UNIT_RIDER] = 57
|
|
end
|
|
|
|
class GeoLayerType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Flag = Hash.new
|
|
ENUM[0] = :SOIL ; NUME[:SOIL] = 0
|
|
ENUM[1] = :SEDIMENTARY ; NUME[:SEDIMENTARY] = 1
|
|
ENUM[2] = :METAMORPHIC ; NUME[:METAMORPHIC] = 2
|
|
ENUM[3] = :IGNEOUS_EXTRUSIVE ; NUME[:IGNEOUS_EXTRUSIVE] = 3
|
|
ENUM[4] = :IGNEOUS_INTRUSIVE ; NUME[:IGNEOUS_INTRUSIVE] = 4
|
|
ENUM[5] = :SOIL_OCEAN ; NUME[:SOIL_OCEAN] = 5
|
|
ENUM[6] = :SOIL_SAND ; NUME[:SOIL_SAND] = 6
|
|
ENUM[7] = :SEDIMENTARY_OCEAN_SHALLOW ; NUME[:SEDIMENTARY_OCEAN_SHALLOW] = 7
|
|
ENUM[8] = :SEDIMENTARY_OCEAN_DEEP ; NUME[:SEDIMENTARY_OCEAN_DEEP] = 8
|
|
end
|
|
|
|
class GhostType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :MurderousGhost ; NUME[:MurderousGhost] = 0
|
|
ENUM[1] = :SadisticGhost ; NUME[:SadisticGhost] = 1
|
|
ENUM[2] = :SecretivePoltergeist ; NUME[:SecretivePoltergeist] = 2
|
|
ENUM[3] = :EnergeticPoltergeist ; NUME[:EnergeticPoltergeist] = 3
|
|
ENUM[4] = :AngryGhost ; NUME[:AngryGhost] = 4
|
|
ENUM[5] = :ViolentGhost ; NUME[:ViolentGhost] = 5
|
|
ENUM[6] = :MoaningSpirit ; NUME[:MoaningSpirit] = 6
|
|
ENUM[7] = :HowlingSpirit ; NUME[:HowlingSpirit] = 7
|
|
ENUM[8] = :TroublesomePoltergeist ; NUME[:TroublesomePoltergeist] = 8
|
|
ENUM[9] = :RestlessHaunt ; NUME[:RestlessHaunt] = 9
|
|
ENUM[10] = :ForlornHaunt ; NUME[:ForlornHaunt] = 10
|
|
end
|
|
|
|
class GlovesFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :METAL_ARMOR_LEVELS ; NUME[:METAL_ARMOR_LEVELS] = 0
|
|
end
|
|
|
|
class GuildId < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Miners ; NUME[:Miners] = 0
|
|
ENUM[1] = :Carpenters ; NUME[:Carpenters] = 1
|
|
ENUM[2] = :Masons ; NUME[:Masons] = 2
|
|
ENUM[3] = :Metalsmiths ; NUME[:Metalsmiths] = 3
|
|
ENUM[4] = :Jewelers ; NUME[:Jewelers] = 4
|
|
ENUM[5] = :Craftsmen ; NUME[:Craftsmen] = 5
|
|
end
|
|
|
|
class HelmFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :METAL_ARMOR_LEVELS ; NUME[:METAL_ARMOR_LEVELS] = 0
|
|
end
|
|
|
|
class HistfigEntityLinkType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :MEMBER ; NUME[:MEMBER] = 0
|
|
ENUM[1] = :FORMER_MEMBER ; NUME[:FORMER_MEMBER] = 1
|
|
ENUM[2] = :MERCENARY ; NUME[:MERCENARY] = 2
|
|
ENUM[3] = :FORMER_MERCENARY ; NUME[:FORMER_MERCENARY] = 3
|
|
ENUM[4] = :SLAVE ; NUME[:SLAVE] = 4
|
|
ENUM[5] = :FORMER_SLAVE ; NUME[:FORMER_SLAVE] = 5
|
|
ENUM[6] = :PRISONER ; NUME[:PRISONER] = 6
|
|
ENUM[7] = :FORMER_PRISONER ; NUME[:FORMER_PRISONER] = 7
|
|
ENUM[8] = :ENEMY ; NUME[:ENEMY] = 8
|
|
ENUM[9] = :CRIMINAL ; NUME[:CRIMINAL] = 9
|
|
ENUM[10] = :POSITION ; NUME[:POSITION] = 10
|
|
ENUM[11] = :HERO ; NUME[:HERO] = 11
|
|
ENUM[12] = :FORMER_POSITION ; NUME[:FORMER_POSITION] = 12
|
|
end
|
|
|
|
class HistfigHfLinkType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :MOTHER ; NUME[:MOTHER] = 0
|
|
ENUM[1] = :FATHER ; NUME[:FATHER] = 1
|
|
ENUM[2] = :SPOUSE ; NUME[:SPOUSE] = 2
|
|
ENUM[3] = :CHILD ; NUME[:CHILD] = 3
|
|
ENUM[4] = :DEITY ; NUME[:DEITY] = 4
|
|
ENUM[5] = :LOVER ; NUME[:LOVER] = 5
|
|
ENUM[6] = :PRISONER ; NUME[:PRISONER] = 6
|
|
ENUM[7] = :IMPRISONER ; NUME[:IMPRISONER] = 7
|
|
ENUM[8] = :MASTER ; NUME[:MASTER] = 8
|
|
ENUM[9] = :APPRENTICE ; NUME[:APPRENTICE] = 9
|
|
end
|
|
|
|
class HistfigSiteLinkType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :SHOPKEEPER ; NUME[:SHOPKEEPER] = 0
|
|
ENUM[1] = :SEAT_OF_POWER ; NUME[:SEAT_OF_POWER] = 1
|
|
ENUM[2] = :HANGOUT ; NUME[:HANGOUT] = 2
|
|
ENUM[3] = :HOME_SITE_ABSTRACT_BUILDING ; NUME[:HOME_SITE_ABSTRACT_BUILDING] = 3
|
|
ENUM[4] = :HOME_SITE_REALIZATION_BUILDING ; NUME[:HOME_SITE_REALIZATION_BUILDING] = 4
|
|
ENUM[5] = :LAIR ; NUME[:LAIR] = 5
|
|
ENUM[6] = :HOME_SITE_REALIZATION_SUL ; NUME[:HOME_SITE_REALIZATION_SUL] = 6
|
|
end
|
|
|
|
class HistoryEventCollectionType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :WAR ; NUME[:WAR] = 0
|
|
ENUM[1] = :BATTLE ; NUME[:BATTLE] = 1
|
|
ENUM[2] = :DUEL ; NUME[:DUEL] = 2
|
|
ENUM[3] = :SITE_CONQUERED ; NUME[:SITE_CONQUERED] = 3
|
|
ENUM[4] = :ABDUCTION ; NUME[:ABDUCTION] = 4
|
|
ENUM[5] = :THEFT ; NUME[:THEFT] = 5
|
|
ENUM[6] = :BEAST_ATTACK ; NUME[:BEAST_ATTACK] = 6
|
|
ENUM[7] = :JOURNEY ; NUME[:JOURNEY] = 7
|
|
end
|
|
|
|
class HistoryEventType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :WAR_ATTACKED_SITE ; NUME[:WAR_ATTACKED_SITE] = 0
|
|
ENUM[1] = :WAR_DESTROYED_SITE ; NUME[:WAR_DESTROYED_SITE] = 1
|
|
ENUM[2] = :CREATED_SITE ; NUME[:CREATED_SITE] = 2
|
|
ENUM[3] = :HIST_FIGURE_DIED ; NUME[:HIST_FIGURE_DIED] = 3
|
|
ENUM[4] = :ADD_HF_ENTITY_LINK ; NUME[:ADD_HF_ENTITY_LINK] = 4
|
|
ENUM[5] = :REMOVE_HF_ENTITY_LINK ; NUME[:REMOVE_HF_ENTITY_LINK] = 5
|
|
ENUM[6] = :FIRST_CONTACT ; NUME[:FIRST_CONTACT] = 6
|
|
ENUM[7] = :FIRST_CONTACT_FAILED ; NUME[:FIRST_CONTACT_FAILED] = 7
|
|
ENUM[8] = :TOPICAGREEMENT_CONCLUDED ; NUME[:TOPICAGREEMENT_CONCLUDED] = 8
|
|
ENUM[9] = :TOPICAGREEMENT_REJECTED ; NUME[:TOPICAGREEMENT_REJECTED] = 9
|
|
ENUM[10] = :TOPICAGREEMENT_MADE ; NUME[:TOPICAGREEMENT_MADE] = 10
|
|
ENUM[11] = :WAR_PEACE_ACCEPTED ; NUME[:WAR_PEACE_ACCEPTED] = 11
|
|
ENUM[12] = :WAR_PEACE_REJECTED ; NUME[:WAR_PEACE_REJECTED] = 12
|
|
ENUM[13] = :DIPLOMAT_LOST ; NUME[:DIPLOMAT_LOST] = 13
|
|
ENUM[14] = :AGREEMENTS_VOIDED ; NUME[:AGREEMENTS_VOIDED] = 14
|
|
ENUM[15] = :MERCHANT ; NUME[:MERCHANT] = 15
|
|
ENUM[16] = :ARTIFACT_HIDDEN ; NUME[:ARTIFACT_HIDDEN] = 16
|
|
ENUM[17] = :ARTIFACT_POSSESSED ; NUME[:ARTIFACT_POSSESSED] = 17
|
|
ENUM[18] = :ARTIFACT_CREATED ; NUME[:ARTIFACT_CREATED] = 18
|
|
ENUM[19] = :ARTIFACT_LOST ; NUME[:ARTIFACT_LOST] = 19
|
|
ENUM[20] = :ARTIFACT_FOUND ; NUME[:ARTIFACT_FOUND] = 20
|
|
ENUM[21] = :ARTIFACT_RECOVERED ; NUME[:ARTIFACT_RECOVERED] = 21
|
|
ENUM[22] = :ARTIFACT_DROPPED ; NUME[:ARTIFACT_DROPPED] = 22
|
|
ENUM[23] = :RECLAIM_SITE ; NUME[:RECLAIM_SITE] = 23
|
|
ENUM[24] = :HF_DESTROYED_SITE ; NUME[:HF_DESTROYED_SITE] = 24
|
|
ENUM[25] = :SITE_DIED ; NUME[:SITE_DIED] = 25
|
|
ENUM[26] = :SITE_ABANDONED ; NUME[:SITE_ABANDONED] = 26
|
|
ENUM[27] = :ENTITY_CREATED ; NUME[:ENTITY_CREATED] = 27
|
|
ENUM[28] = :ENTITY_ACTION ; NUME[:ENTITY_ACTION] = 28
|
|
ENUM[29] = :ENTITY_INCORPORATED ; NUME[:ENTITY_INCORPORATED] = 29
|
|
ENUM[30] = :CREATED_BUILDING ; NUME[:CREATED_BUILDING] = 30
|
|
ENUM[31] = :REPLACED_BUILDING ; NUME[:REPLACED_BUILDING] = 31
|
|
ENUM[32] = :ADD_HF_SITE_LINK ; NUME[:ADD_HF_SITE_LINK] = 32
|
|
ENUM[33] = :REMOVE_HF_SITE_LINK ; NUME[:REMOVE_HF_SITE_LINK] = 33
|
|
ENUM[34] = :ADD_HF_HF_LINK ; NUME[:ADD_HF_HF_LINK] = 34
|
|
ENUM[35] = :REMOVE_HF_HF_LINK ; NUME[:REMOVE_HF_HF_LINK] = 35
|
|
ENUM[36] = :ENTITY_RAZED_BUILDING ; NUME[:ENTITY_RAZED_BUILDING] = 36
|
|
ENUM[37] = :MASTERPIECE_CREATED_ARCH_DESIGN ; NUME[:MASTERPIECE_CREATED_ARCH_DESIGN] = 37
|
|
ENUM[38] = :MASTERPIECE_CREATED_ARCH_CONSTRUCT ; NUME[:MASTERPIECE_CREATED_ARCH_CONSTRUCT] = 38
|
|
ENUM[39] = :MASTERPIECE_CREATED_ITEM ; NUME[:MASTERPIECE_CREATED_ITEM] = 39
|
|
ENUM[40] = :MASTERPIECE_CREATED_DYE_ITEM ; NUME[:MASTERPIECE_CREATED_DYE_ITEM] = 40
|
|
ENUM[41] = :MASTERPIECE_CREATED_ITEM_IMPROVEMENT ; NUME[:MASTERPIECE_CREATED_ITEM_IMPROVEMENT] = 41
|
|
ENUM[42] = :MASTERPIECE_CREATED_FOOD ; NUME[:MASTERPIECE_CREATED_FOOD] = 42
|
|
ENUM[43] = :MASTERPIECE_CREATED_ENGRAVING ; NUME[:MASTERPIECE_CREATED_ENGRAVING] = 43
|
|
ENUM[44] = :MASTERPIECE_LOST ; NUME[:MASTERPIECE_LOST] = 44
|
|
ENUM[45] = :CHANGE_HF_STATE ; NUME[:CHANGE_HF_STATE] = 45
|
|
ENUM[46] = :CHANGE_HF_JOB ; NUME[:CHANGE_HF_JOB] = 46
|
|
ENUM[47] = :WAR_FIELD_BATTLE ; NUME[:WAR_FIELD_BATTLE] = 47
|
|
ENUM[48] = :WAR_PLUNDERED_SITE ; NUME[:WAR_PLUNDERED_SITE] = 48
|
|
ENUM[49] = :WAR_SITE_NEW_LEADER ; NUME[:WAR_SITE_NEW_LEADER] = 49
|
|
ENUM[50] = :WAR_SITE_TRIBUTE_FORCED ; NUME[:WAR_SITE_TRIBUTE_FORCED] = 50
|
|
ENUM[51] = :WAR_SITE_TAKEN_OVER ; NUME[:WAR_SITE_TAKEN_OVER] = 51
|
|
ENUM[52] = :BODY_ABUSED ; NUME[:BODY_ABUSED] = 52
|
|
ENUM[53] = :HIST_FIGURE_ABDUCTED ; NUME[:HIST_FIGURE_ABDUCTED] = 53
|
|
ENUM[54] = :ITEM_STOLEN ; NUME[:ITEM_STOLEN] = 54
|
|
ENUM[55] = :HF_RAZED_BUILDING ; NUME[:HF_RAZED_BUILDING] = 55
|
|
ENUM[56] = :CREATURE_DEVOURED ; NUME[:CREATURE_DEVOURED] = 56
|
|
ENUM[57] = :HIST_FIGURE_WOUNDED ; NUME[:HIST_FIGURE_WOUNDED] = 57
|
|
ENUM[58] = :HIST_FIGURE_SIMPLE_BATTLE_EVENT ; NUME[:HIST_FIGURE_SIMPLE_BATTLE_EVENT] = 58
|
|
ENUM[59] = :CREATED_WORLD_CONSTRUCTION ; NUME[:CREATED_WORLD_CONSTRUCTION] = 59
|
|
ENUM[60] = :HIST_FIGURE_REUNION ; NUME[:HIST_FIGURE_REUNION] = 60
|
|
ENUM[61] = :HIST_FIGURE_REACH_SUMMIT ; NUME[:HIST_FIGURE_REACH_SUMMIT] = 61
|
|
ENUM[62] = :HIST_FIGURE_TRAVEL ; NUME[:HIST_FIGURE_TRAVEL] = 62
|
|
ENUM[63] = :HIST_FIGURE_NEW_PET ; NUME[:HIST_FIGURE_NEW_PET] = 63
|
|
ENUM[64] = :ASSUME_IDENTITY ; NUME[:ASSUME_IDENTITY] = 64
|
|
ENUM[65] = :CREATE_ENTITY_POSITION ; NUME[:CREATE_ENTITY_POSITION] = 65
|
|
ENUM[66] = :CHANGE_CREATURE_TYPE ; NUME[:CHANGE_CREATURE_TYPE] = 66
|
|
ENUM[67] = :HIST_FIGURE_REVIVED ; NUME[:HIST_FIGURE_REVIVED] = 67
|
|
ENUM[68] = :HF_LEARNS_SECRET ; NUME[:HF_LEARNS_SECRET] = 68
|
|
ENUM[69] = :CHANGE_HF_BODY_STATE ; NUME[:CHANGE_HF_BODY_STATE] = 69
|
|
ENUM[70] = :HF_ACT_ON_BUILDING ; NUME[:HF_ACT_ON_BUILDING] = 70
|
|
ENUM[71] = :HF_DOES_INTERACTION ; NUME[:HF_DOES_INTERACTION] = 71
|
|
ENUM[72] = :HF_CONFRONTED ; NUME[:HF_CONFRONTED] = 72
|
|
ENUM[73] = :ENTITY_LAW ; NUME[:ENTITY_LAW] = 73
|
|
ENUM[74] = :HF_GAINS_SECRET_GOAL ; NUME[:HF_GAINS_SECRET_GOAL] = 74
|
|
ENUM[75] = :ARTIFACT_STORED ; NUME[:ARTIFACT_STORED] = 75
|
|
end
|
|
|
|
class ImprovementType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :ART_IMAGE ; NUME[:ART_IMAGE] = 0
|
|
ENUM[1] = :COVERED ; NUME[:COVERED] = 1
|
|
ENUM[2] = :RINGS_HANGING ; NUME[:RINGS_HANGING] = 2
|
|
ENUM[3] = :BANDS ; NUME[:BANDS] = 3
|
|
ENUM[4] = :SPIKES ; NUME[:SPIKES] = 4
|
|
ENUM[5] = :ITEMSPECIFIC ; NUME[:ITEMSPECIFIC] = 5
|
|
ENUM[6] = :THREAD ; NUME[:THREAD] = 6
|
|
ENUM[7] = :CLOTH ; NUME[:CLOTH] = 7
|
|
ENUM[8] = :SEWN_IMAGE ; NUME[:SEWN_IMAGE] = 8
|
|
ENUM[9] = :PAGES ; NUME[:PAGES] = 9
|
|
ENUM[10] = :ILLUSTRATION ; NUME[:ILLUSTRATION] = 10
|
|
end
|
|
|
|
class InclusionType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[1] = :VEIN ; NUME[:VEIN] = 1
|
|
ENUM[2] = :CLUSTER ; NUME[:CLUSTER] = 2
|
|
ENUM[3] = :CLUSTER_SMALL ; NUME[:CLUSTER_SMALL] = 3
|
|
ENUM[4] = :CLUSTER_ONE ; NUME[:CLUSTER_ONE] = 4
|
|
end
|
|
|
|
class InitDisplayFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :USE_GRAPHICS ; NUME[:USE_GRAPHICS] = 0
|
|
ENUM[1] = :BLACK_SPACE ; NUME[:BLACK_SPACE] = 1
|
|
ENUM[2] = :PARTIAL_PRINT ; NUME[:PARTIAL_PRINT] = 2
|
|
ENUM[3] = :FRAME_BUFFER ; NUME[:FRAME_BUFFER] = 3
|
|
ENUM[4] = :SINGLE_BUFFER ; NUME[:SINGLE_BUFFER] = 4
|
|
ENUM[5] = :ACCUM_BUFFER ; NUME[:ACCUM_BUFFER] = 5
|
|
ENUM[6] = :VBO ; NUME[:VBO] = 6
|
|
ENUM[7] = :RENDER_2D ; NUME[:RENDER_2D] = 7
|
|
ENUM[8] = :RENDER_2DHW ; NUME[:RENDER_2DHW] = 8
|
|
ENUM[9] = :RENDER_2DASYNC ; NUME[:RENDER_2DASYNC] = 9
|
|
ENUM[10] = :UNUSED_01_08 ; NUME[:UNUSED_01_08] = 10
|
|
ENUM[11] = :TEXT ; NUME[:TEXT] = 11
|
|
ENUM[12] = :SHADER ; NUME[:SHADER] = 12
|
|
ENUM[13] = :NOT_RESIZABLE ; NUME[:NOT_RESIZABLE] = 13
|
|
ENUM[14] = :ARB_SYNC ; NUME[:ARB_SYNC] = 14
|
|
end
|
|
|
|
class InitInputFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :MOUSE_OFF ; NUME[:MOUSE_OFF] = 0
|
|
ENUM[1] = :MOUSE_PICTURE ; NUME[:MOUSE_PICTURE] = 1
|
|
end
|
|
|
|
class InitMediaFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :SOUND_OFF ; NUME[:SOUND_OFF] = 0
|
|
ENUM[1] = :INTRO_OFF ; NUME[:INTRO_OFF] = 1
|
|
ENUM[2] = :COMPRESS_SAVES ; NUME[:COMPRESS_SAVES] = 2
|
|
end
|
|
|
|
class InitWindowFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :TOPMOST ; NUME[:TOPMOST] = 0
|
|
ENUM[1] = :VSYNC_ON ; NUME[:VSYNC_ON] = 1
|
|
ENUM[2] = :VSYNC_OFF ; NUME[:VSYNC_OFF] = 2
|
|
ENUM[3] = :TEXTURE_LINEAR ; NUME[:TEXTURE_LINEAR] = 3
|
|
end
|
|
|
|
class InorganicFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :LAVA ; NUME[:LAVA] = 0
|
|
ENUM[1] = :GENERATED ; NUME[:GENERATED] = 1
|
|
ENUM[2] = :ENVIRONMENT_NON_SOIL_OCEAN ; NUME[:ENVIRONMENT_NON_SOIL_OCEAN] = 2
|
|
ENUM[3] = :SEDIMENTARY ; NUME[:SEDIMENTARY] = 3
|
|
ENUM[4] = :SEDIMENTARY_OCEAN_SHALLOW ; NUME[:SEDIMENTARY_OCEAN_SHALLOW] = 4
|
|
ENUM[5] = :IGNEOUS_INTRUSIVE ; NUME[:IGNEOUS_INTRUSIVE] = 5
|
|
ENUM[6] = :IGNEOUS_EXTRUSIVE ; NUME[:IGNEOUS_EXTRUSIVE] = 6
|
|
ENUM[7] = :METAMORPHIC ; NUME[:METAMORPHIC] = 7
|
|
ENUM[8] = :DEEP_SURFACE ; NUME[:DEEP_SURFACE] = 8
|
|
ENUM[9] = :METAL_ORE ; NUME[:METAL_ORE] = 9
|
|
ENUM[10] = :AQUIFER ; NUME[:AQUIFER] = 10
|
|
ENUM[11] = :SOIL_ANY ; NUME[:SOIL_ANY] = 11
|
|
ENUM[12] = :SOIL_OCEAN ; NUME[:SOIL_OCEAN] = 12
|
|
ENUM[13] = :SOIL_SAND ; NUME[:SOIL_SAND] = 13
|
|
ENUM[14] = :SEDIMENTARY_OCEAN_DEEP ; NUME[:SEDIMENTARY_OCEAN_DEEP] = 14
|
|
ENUM[15] = :THREAD_METAL ; NUME[:THREAD_METAL] = 15
|
|
ENUM[16] = :SPECIAL ; NUME[:SPECIAL] = 16
|
|
ENUM[17] = :SOIL ; NUME[:SOIL] = 17
|
|
ENUM[18] = :DEEP_SPECIAL ; NUME[:DEEP_SPECIAL] = 18
|
|
ENUM[25] = :WAFERS ; NUME[:WAFERS] = 25
|
|
end
|
|
|
|
class InstrumentFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :HARD_MAT ; NUME[:HARD_MAT] = 0
|
|
end
|
|
|
|
class InterfaceBreakdownTypes < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :NONE ; NUME[:NONE] = 0
|
|
ENUM[1] = :QUIT ; NUME[:QUIT] = 1
|
|
ENUM[2] = :STOPSCREEN ; NUME[:STOPSCREEN] = 2
|
|
ENUM[3] = :TOFIRST ; NUME[:TOFIRST] = 3
|
|
end
|
|
|
|
class ItemQuality < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Ordinary ; NUME[:Ordinary] = 0
|
|
ENUM[1] = :WellCrafted ; NUME[:WellCrafted] = 1
|
|
ENUM[2] = :FinelyCrafted ; NUME[:FinelyCrafted] = 2
|
|
ENUM[3] = :Superior ; NUME[:Superior] = 3
|
|
ENUM[4] = :Exceptional ; NUME[:Exceptional] = 4
|
|
ENUM[5] = :Masterful ; NUME[:Masterful] = 5
|
|
ENUM[6] = :Artifact ; NUME[:Artifact] = 6
|
|
end
|
|
|
|
class ItemType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :NONE ; NUME[:NONE] = -1
|
|
ENUM[0] = :BAR ; NUME[:BAR] = 0
|
|
ENUM[1] = :SMALLGEM ; NUME[:SMALLGEM] = 1
|
|
ENUM[2] = :BLOCKS ; NUME[:BLOCKS] = 2
|
|
ENUM[3] = :ROUGH ; NUME[:ROUGH] = 3
|
|
ENUM[4] = :BOULDER ; NUME[:BOULDER] = 4
|
|
ENUM[5] = :WOOD ; NUME[:WOOD] = 5
|
|
ENUM[6] = :DOOR ; NUME[:DOOR] = 6
|
|
ENUM[7] = :FLOODGATE ; NUME[:FLOODGATE] = 7
|
|
ENUM[8] = :BED ; NUME[:BED] = 8
|
|
ENUM[9] = :CHAIR ; NUME[:CHAIR] = 9
|
|
ENUM[10] = :CHAIN ; NUME[:CHAIN] = 10
|
|
ENUM[11] = :FLASK ; NUME[:FLASK] = 11
|
|
ENUM[12] = :GOBLET ; NUME[:GOBLET] = 12
|
|
ENUM[13] = :INSTRUMENT ; NUME[:INSTRUMENT] = 13
|
|
ENUM[14] = :TOY ; NUME[:TOY] = 14
|
|
ENUM[15] = :WINDOW ; NUME[:WINDOW] = 15
|
|
ENUM[16] = :CAGE ; NUME[:CAGE] = 16
|
|
ENUM[17] = :BARREL ; NUME[:BARREL] = 17
|
|
ENUM[18] = :BUCKET ; NUME[:BUCKET] = 18
|
|
ENUM[19] = :ANIMALTRAP ; NUME[:ANIMALTRAP] = 19
|
|
ENUM[20] = :TABLE ; NUME[:TABLE] = 20
|
|
ENUM[21] = :COFFIN ; NUME[:COFFIN] = 21
|
|
ENUM[22] = :STATUE ; NUME[:STATUE] = 22
|
|
ENUM[23] = :CORPSE ; NUME[:CORPSE] = 23
|
|
ENUM[24] = :WEAPON ; NUME[:WEAPON] = 24
|
|
ENUM[25] = :ARMOR ; NUME[:ARMOR] = 25
|
|
ENUM[26] = :SHOES ; NUME[:SHOES] = 26
|
|
ENUM[27] = :SHIELD ; NUME[:SHIELD] = 27
|
|
ENUM[28] = :HELM ; NUME[:HELM] = 28
|
|
ENUM[29] = :GLOVES ; NUME[:GLOVES] = 29
|
|
ENUM[30] = :BOX ; NUME[:BOX] = 30
|
|
ENUM[31] = :BIN ; NUME[:BIN] = 31
|
|
ENUM[32] = :ARMORSTAND ; NUME[:ARMORSTAND] = 32
|
|
ENUM[33] = :WEAPONRACK ; NUME[:WEAPONRACK] = 33
|
|
ENUM[34] = :CABINET ; NUME[:CABINET] = 34
|
|
ENUM[35] = :FIGURINE ; NUME[:FIGURINE] = 35
|
|
ENUM[36] = :AMULET ; NUME[:AMULET] = 36
|
|
ENUM[37] = :SCEPTER ; NUME[:SCEPTER] = 37
|
|
ENUM[38] = :AMMO ; NUME[:AMMO] = 38
|
|
ENUM[39] = :CROWN ; NUME[:CROWN] = 39
|
|
ENUM[40] = :RING ; NUME[:RING] = 40
|
|
ENUM[41] = :EARRING ; NUME[:EARRING] = 41
|
|
ENUM[42] = :BRACELET ; NUME[:BRACELET] = 42
|
|
ENUM[43] = :GEM ; NUME[:GEM] = 43
|
|
ENUM[44] = :ANVIL ; NUME[:ANVIL] = 44
|
|
ENUM[45] = :CORPSEPIECE ; NUME[:CORPSEPIECE] = 45
|
|
ENUM[46] = :REMAINS ; NUME[:REMAINS] = 46
|
|
ENUM[47] = :MEAT ; NUME[:MEAT] = 47
|
|
ENUM[48] = :FISH ; NUME[:FISH] = 48
|
|
ENUM[49] = :FISH_RAW ; NUME[:FISH_RAW] = 49
|
|
ENUM[50] = :VERMIN ; NUME[:VERMIN] = 50
|
|
ENUM[51] = :PET ; NUME[:PET] = 51
|
|
ENUM[52] = :SEEDS ; NUME[:SEEDS] = 52
|
|
ENUM[53] = :PLANT ; NUME[:PLANT] = 53
|
|
ENUM[54] = :SKIN_TANNED ; NUME[:SKIN_TANNED] = 54
|
|
ENUM[55] = :LEAVES ; NUME[:LEAVES] = 55
|
|
ENUM[56] = :THREAD ; NUME[:THREAD] = 56
|
|
ENUM[57] = :CLOTH ; NUME[:CLOTH] = 57
|
|
ENUM[58] = :TOTEM ; NUME[:TOTEM] = 58
|
|
ENUM[59] = :PANTS ; NUME[:PANTS] = 59
|
|
ENUM[60] = :BACKPACK ; NUME[:BACKPACK] = 60
|
|
ENUM[61] = :QUIVER ; NUME[:QUIVER] = 61
|
|
ENUM[62] = :CATAPULTPARTS ; NUME[:CATAPULTPARTS] = 62
|
|
ENUM[63] = :BALLISTAPARTS ; NUME[:BALLISTAPARTS] = 63
|
|
ENUM[64] = :SIEGEAMMO ; NUME[:SIEGEAMMO] = 64
|
|
ENUM[65] = :BALLISTAARROWHEAD ; NUME[:BALLISTAARROWHEAD] = 65
|
|
ENUM[66] = :TRAPPARTS ; NUME[:TRAPPARTS] = 66
|
|
ENUM[67] = :TRAPCOMP ; NUME[:TRAPCOMP] = 67
|
|
ENUM[68] = :DRINK ; NUME[:DRINK] = 68
|
|
ENUM[69] = :POWDER_MISC ; NUME[:POWDER_MISC] = 69
|
|
ENUM[70] = :CHEESE ; NUME[:CHEESE] = 70
|
|
ENUM[71] = :FOOD ; NUME[:FOOD] = 71
|
|
ENUM[72] = :LIQUID_MISC ; NUME[:LIQUID_MISC] = 72
|
|
ENUM[73] = :COIN ; NUME[:COIN] = 73
|
|
ENUM[74] = :GLOB ; NUME[:GLOB] = 74
|
|
ENUM[75] = :ROCK ; NUME[:ROCK] = 75
|
|
ENUM[76] = :PIPE_SECTION ; NUME[:PIPE_SECTION] = 76
|
|
ENUM[77] = :HATCH_COVER ; NUME[:HATCH_COVER] = 77
|
|
ENUM[78] = :GRATE ; NUME[:GRATE] = 78
|
|
ENUM[79] = :QUERN ; NUME[:QUERN] = 79
|
|
ENUM[80] = :MILLSTONE ; NUME[:MILLSTONE] = 80
|
|
ENUM[81] = :SPLINT ; NUME[:SPLINT] = 81
|
|
ENUM[82] = :CRUTCH ; NUME[:CRUTCH] = 82
|
|
ENUM[83] = :TRACTION_BENCH ; NUME[:TRACTION_BENCH] = 83
|
|
ENUM[84] = :ORTHOPEDIC_CAST ; NUME[:ORTHOPEDIC_CAST] = 84
|
|
ENUM[85] = :TOOL ; NUME[:TOOL] = 85
|
|
ENUM[86] = :SLAB ; NUME[:SLAB] = 86
|
|
ENUM[87] = :EGG ; NUME[:EGG] = 87
|
|
ENUM[88] = :BOOK ; NUME[:BOOK] = 88
|
|
end
|
|
|
|
class ItemsOtherId < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Item = Hash.new(:NONE)
|
|
GenericItem = Hash.new { |h, k| h[k] = [] }
|
|
ENUM[-1] = :ANY ; NUME[:ANY] = -1
|
|
ENUM[0] = :ANY_FREE ; NUME[:ANY_FREE] = 0
|
|
ENUM[1] = :ANY_ARTIFACT ; NUME[:ANY_ARTIFACT] = 1
|
|
ENUM[2] = :WEAPON ; NUME[:WEAPON] = 2 ; Item[:WEAPON] = :WEAPON
|
|
ENUM[3] = :ANY_WEAPON ; NUME[:ANY_WEAPON] = 3 ; GenericItem[:ANY_WEAPON] << :WEAPON ; GenericItem[:ANY_WEAPON] << :TRAPCOMP
|
|
ENUM[4] = :ANY_SPIKE ; NUME[:ANY_SPIKE] = 4 ; GenericItem[:ANY_SPIKE] << :WEAPON ; GenericItem[:ANY_SPIKE] << :TRAPCOMP
|
|
ENUM[5] = :ANY_TRUE_ARMOR ; NUME[:ANY_TRUE_ARMOR] = 5 ; GenericItem[:ANY_TRUE_ARMOR] << :ARMOR
|
|
ENUM[6] = :ANY_ARMOR_HELM ; NUME[:ANY_ARMOR_HELM] = 6 ; GenericItem[:ANY_ARMOR_HELM] << :HELM
|
|
ENUM[7] = :ANY_ARMOR_SHOES ; NUME[:ANY_ARMOR_SHOES] = 7 ; GenericItem[:ANY_ARMOR_SHOES] << :SHOES
|
|
ENUM[8] = :SHIELD ; NUME[:SHIELD] = 8 ; Item[:SHIELD] = :SHIELD
|
|
ENUM[9] = :ANY_ARMOR_GLOVES ; NUME[:ANY_ARMOR_GLOVES] = 9 ; GenericItem[:ANY_ARMOR_GLOVES] << :GLOVES
|
|
ENUM[10] = :ANY_ARMOR_PANTS ; NUME[:ANY_ARMOR_PANTS] = 10 ; GenericItem[:ANY_ARMOR_PANTS] << :PANTS
|
|
ENUM[11] = :QUIVER ; NUME[:QUIVER] = 11 ; Item[:QUIVER] = :QUIVER
|
|
ENUM[12] = :SPLINT ; NUME[:SPLINT] = 12 ; Item[:SPLINT] = :SPLINT
|
|
ENUM[13] = :ORTHOPEDIC_CAST ; NUME[:ORTHOPEDIC_CAST] = 13 ; Item[:ORTHOPEDIC_CAST] = :ORTHOPEDIC_CAST
|
|
ENUM[14] = :CRUTCH ; NUME[:CRUTCH] = 14 ; Item[:CRUTCH] = :CRUTCH
|
|
ENUM[15] = :BACKPACK ; NUME[:BACKPACK] = 15 ; Item[:BACKPACK] = :BACKPACK
|
|
ENUM[16] = :AMMO ; NUME[:AMMO] = 16 ; Item[:AMMO] = :AMMO
|
|
ENUM[17] = :WOOD ; NUME[:WOOD] = 17 ; Item[:WOOD] = :WOOD
|
|
ENUM[18] = :BOULDER ; NUME[:BOULDER] = 18 ; Item[:BOULDER] = :BOULDER
|
|
ENUM[19] = :ROCK ; NUME[:ROCK] = 19 ; Item[:ROCK] = :ROCK
|
|
ENUM[20] = :ANY_REFUSE ; NUME[:ANY_REFUSE] = 20 ; GenericItem[:ANY_REFUSE] << :CORPSE ; GenericItem[:ANY_REFUSE] << :ARMOR ; GenericItem[:ANY_REFUSE] << :SHOES ; GenericItem[:ANY_REFUSE] << :HELM ; GenericItem[:ANY_REFUSE] << :GLOVES ; GenericItem[:ANY_REFUSE] << :CORPSEPIECE ; GenericItem[:ANY_REFUSE] << :REMAINS ; GenericItem[:ANY_REFUSE] << :PANTS ; GenericItem[:ANY_REFUSE] << :MEAT ; GenericItem[:ANY_REFUSE] << :FISH ; GenericItem[:ANY_REFUSE] << :FISH_RAW ; GenericItem[:ANY_REFUSE] << :SEEDS ; GenericItem[:ANY_REFUSE] << :PLANT ; GenericItem[:ANY_REFUSE] << :LEAVES ; GenericItem[:ANY_REFUSE] << :CHEESE ; GenericItem[:ANY_REFUSE] << :FOOD ; GenericItem[:ANY_REFUSE] << :EGG ; GenericItem[:ANY_REFUSE] << :GLOB
|
|
ENUM[21] = :ANY_GOOD_FOOD ; NUME[:ANY_GOOD_FOOD] = 21 ; GenericItem[:ANY_GOOD_FOOD] << :BOX ; GenericItem[:ANY_GOOD_FOOD] << :MEAT ; GenericItem[:ANY_GOOD_FOOD] << :FISH ; GenericItem[:ANY_GOOD_FOOD] << :FISH_RAW ; GenericItem[:ANY_GOOD_FOOD] << :SEEDS ; GenericItem[:ANY_GOOD_FOOD] << :PLANT ; GenericItem[:ANY_GOOD_FOOD] << :LEAVES ; GenericItem[:ANY_GOOD_FOOD] << :CHEESE ; GenericItem[:ANY_GOOD_FOOD] << :FOOD ; GenericItem[:ANY_GOOD_FOOD] << :EGG
|
|
ENUM[22] = :ANY_GENERIC22 ; NUME[:ANY_GENERIC22] = 22 ; GenericItem[:ANY_GENERIC22] << :DRINK ; GenericItem[:ANY_GENERIC22] << :POWDER_MISC ; GenericItem[:ANY_GENERIC22] << :LIQUID_MISC ; GenericItem[:ANY_GENERIC22] << :GLOB
|
|
ENUM[23] = :ANY_GENERIC23 ; NUME[:ANY_GENERIC23] = 23 ; GenericItem[:ANY_GENERIC23] << :CAGE ; GenericItem[:ANY_GENERIC23] << :ANIMALTRAP ; GenericItem[:ANY_GENERIC23] << :FISH_RAW ; GenericItem[:ANY_GENERIC23] << :VERMIN ; GenericItem[:ANY_GENERIC23] << :PLANT
|
|
ENUM[24] = :ANY_GENERIC24 ; NUME[:ANY_GENERIC24] = 24 ; GenericItem[:ANY_GENERIC24] << :CAGE ; GenericItem[:ANY_GENERIC24] << :ANIMALTRAP ; GenericItem[:ANY_GENERIC24] << :CORPSE ; GenericItem[:ANY_GENERIC24] << :CORPSEPIECE ; GenericItem[:ANY_GENERIC24] << :VERMIN
|
|
ENUM[25] = :ANY_FURNITURE ; NUME[:ANY_FURNITURE] = 25
|
|
ENUM[26] = :ANY_CAGE_OR_TRAP ; NUME[:ANY_CAGE_OR_TRAP] = 26 ; GenericItem[:ANY_CAGE_OR_TRAP] << :CAGE ; GenericItem[:ANY_CAGE_OR_TRAP] << :ANIMALTRAP
|
|
ENUM[27] = :ANY_EDIBLE_RAW ; NUME[:ANY_EDIBLE_RAW] = 27
|
|
ENUM[28] = :ANY_EDIBLE_MEAT ; NUME[:ANY_EDIBLE_MEAT] = 28
|
|
ENUM[29] = :ANY_EDIBLE_CORPSE ; NUME[:ANY_EDIBLE_CORPSE] = 29
|
|
ENUM[30] = :ANY_EDIBLE_VERMIN ; NUME[:ANY_EDIBLE_VERMIN] = 30
|
|
ENUM[31] = :ANY_EDIBLE_VERMIN_BOX ; NUME[:ANY_EDIBLE_VERMIN_BOX] = 31 ; GenericItem[:ANY_EDIBLE_VERMIN_BOX] << :BARREL ; GenericItem[:ANY_EDIBLE_VERMIN_BOX] << :BOX
|
|
ENUM[32] = :ANY_CAN_ROT ; NUME[:ANY_CAN_ROT] = 32 ; GenericItem[:ANY_CAN_ROT] << :CORPSE ; GenericItem[:ANY_CAN_ROT] << :CORPSEPIECE ; GenericItem[:ANY_CAN_ROT] << :REMAINS ; GenericItem[:ANY_CAN_ROT] << :MEAT ; GenericItem[:ANY_CAN_ROT] << :FISH ; GenericItem[:ANY_CAN_ROT] << :FISH_RAW ; GenericItem[:ANY_CAN_ROT] << :SEEDS ; GenericItem[:ANY_CAN_ROT] << :PLANT ; GenericItem[:ANY_CAN_ROT] << :LEAVES ; GenericItem[:ANY_CAN_ROT] << :CHEESE ; GenericItem[:ANY_CAN_ROT] << :FOOD ; GenericItem[:ANY_CAN_ROT] << :EGG
|
|
ENUM[33] = :ANY_MURDERED ; NUME[:ANY_MURDERED] = 33 ; GenericItem[:ANY_MURDERED] << :CORPSE ; GenericItem[:ANY_MURDERED] << :CORPSEPIECE ; GenericItem[:ANY_MURDERED] << :REMAINS
|
|
ENUM[34] = :ANY_DEAD_DWARF ; NUME[:ANY_DEAD_DWARF] = 34
|
|
ENUM[35] = :ANY_GENERIC35 ; NUME[:ANY_GENERIC35] = 35 ; GenericItem[:ANY_GENERIC35] << :BAR ; GenericItem[:ANY_GENERIC35] << :SMALLGEM ; GenericItem[:ANY_GENERIC35] << :BLOCKS ; GenericItem[:ANY_GENERIC35] << :ROUGH ; GenericItem[:ANY_GENERIC35] << :CHAIN ; GenericItem[:ANY_GENERIC35] << :FLASK ; GenericItem[:ANY_GENERIC35] << :GOBLET ; GenericItem[:ANY_GENERIC35] << :INSTRUMENT ; GenericItem[:ANY_GENERIC35] << :TOY ; GenericItem[:ANY_GENERIC35] << :FIGURINE ; GenericItem[:ANY_GENERIC35] << :AMULET ; GenericItem[:ANY_GENERIC35] << :SCEPTER ; GenericItem[:ANY_GENERIC35] << :AMMO ; GenericItem[:ANY_GENERIC35] << :CROWN ; GenericItem[:ANY_GENERIC35] << :RING ; GenericItem[:ANY_GENERIC35] << :EARRING ; GenericItem[:ANY_GENERIC35] << :BRACELET ; GenericItem[:ANY_GENERIC35] << :GEM ; GenericItem[:ANY_GENERIC35] << :SKIN_TANNED ; GenericItem[:ANY_GENERIC35] << :THREAD ; GenericItem[:ANY_GENERIC35] << :CLOTH ; GenericItem[:ANY_GENERIC35] << :TOTEM ; GenericItem[:ANY_GENERIC35] << :BACKPACK ; GenericItem[:ANY_GENERIC35] << :QUIVER ; GenericItem[:ANY_GENERIC35] << :BALLISTAARROWHEAD ; GenericItem[:ANY_GENERIC35] << :COIN ; GenericItem[:ANY_GENERIC35] << :SPLINT ; GenericItem[:ANY_GENERIC35] << :TOOL ; GenericItem[:ANY_GENERIC35] << :BOOK
|
|
ENUM[36] = :ANY_GENERIC36 ; NUME[:ANY_GENERIC36] = 36 ; GenericItem[:ANY_GENERIC36] << :ARMOR ; GenericItem[:ANY_GENERIC36] << :SHOES ; GenericItem[:ANY_GENERIC36] << :HELM ; GenericItem[:ANY_GENERIC36] << :GLOVES ; GenericItem[:ANY_GENERIC36] << :PANTS
|
|
ENUM[37] = :ANY_GENERIC37 ; NUME[:ANY_GENERIC37] = 37 ; GenericItem[:ANY_GENERIC37] << :WEAPON ; GenericItem[:ANY_GENERIC37] << :TRAPCOMP ; GenericItem[:ANY_GENERIC37] << :SIEGEAMMO
|
|
ENUM[38] = :ANY_GENERIC38 ; NUME[:ANY_GENERIC38] = 38 ; GenericItem[:ANY_GENERIC38] << :ARMOR ; GenericItem[:ANY_GENERIC38] << :SHOES ; GenericItem[:ANY_GENERIC38] << :SHIELD ; GenericItem[:ANY_GENERIC38] << :HELM ; GenericItem[:ANY_GENERIC38] << :GLOVES ; GenericItem[:ANY_GENERIC38] << :PANTS
|
|
ENUM[39] = :DOOR ; NUME[:DOOR] = 39 ; Item[:DOOR] = :DOOR
|
|
ENUM[40] = :FLOODGATE ; NUME[:FLOODGATE] = 40 ; Item[:FLOODGATE] = :FLOODGATE
|
|
ENUM[41] = :HATCH_COVER ; NUME[:HATCH_COVER] = 41 ; Item[:HATCH_COVER] = :HATCH_COVER
|
|
ENUM[42] = :GRATE ; NUME[:GRATE] = 42 ; Item[:GRATE] = :GRATE
|
|
ENUM[43] = :CAGE ; NUME[:CAGE] = 43 ; Item[:CAGE] = :CAGE
|
|
ENUM[44] = :FLASK ; NUME[:FLASK] = 44 ; Item[:FLASK] = :FLASK
|
|
ENUM[45] = :WINDOW ; NUME[:WINDOW] = 45 ; Item[:WINDOW] = :WINDOW
|
|
ENUM[46] = :GOBLET ; NUME[:GOBLET] = 46 ; Item[:GOBLET] = :GOBLET
|
|
ENUM[47] = :INSTRUMENT ; NUME[:INSTRUMENT] = 47 ; Item[:INSTRUMENT] = :INSTRUMENT
|
|
ENUM[48] = :TOY ; NUME[:TOY] = 48 ; Item[:TOY] = :TOY
|
|
ENUM[49] = :TOOL ; NUME[:TOOL] = 49 ; Item[:TOOL] = :TOOL
|
|
ENUM[50] = :BUCKET ; NUME[:BUCKET] = 50 ; Item[:BUCKET] = :BUCKET
|
|
ENUM[51] = :BARREL ; NUME[:BARREL] = 51 ; Item[:BARREL] = :BARREL
|
|
ENUM[52] = :CHAIN ; NUME[:CHAIN] = 52 ; Item[:CHAIN] = :CHAIN
|
|
ENUM[53] = :ANIMALTRAP ; NUME[:ANIMALTRAP] = 53 ; Item[:ANIMALTRAP] = :ANIMALTRAP
|
|
ENUM[54] = :BED ; NUME[:BED] = 54 ; Item[:BED] = :BED
|
|
ENUM[55] = :TRACTION_BENCH ; NUME[:TRACTION_BENCH] = 55 ; Item[:TRACTION_BENCH] = :TRACTION_BENCH
|
|
ENUM[56] = :CHAIR ; NUME[:CHAIR] = 56 ; Item[:CHAIR] = :CHAIR
|
|
ENUM[57] = :COFFIN ; NUME[:COFFIN] = 57 ; Item[:COFFIN] = :COFFIN
|
|
ENUM[58] = :TABLE ; NUME[:TABLE] = 58 ; Item[:TABLE] = :TABLE
|
|
ENUM[59] = :STATUE ; NUME[:STATUE] = 59 ; Item[:STATUE] = :STATUE
|
|
ENUM[60] = :SLAB ; NUME[:SLAB] = 60 ; Item[:SLAB] = :SLAB
|
|
ENUM[61] = :QUERN ; NUME[:QUERN] = 61 ; Item[:QUERN] = :QUERN
|
|
ENUM[62] = :MILLSTONE ; NUME[:MILLSTONE] = 62 ; Item[:MILLSTONE] = :MILLSTONE
|
|
ENUM[63] = :BOX ; NUME[:BOX] = 63 ; Item[:BOX] = :BOX
|
|
ENUM[64] = :BIN ; NUME[:BIN] = 64 ; Item[:BIN] = :BIN
|
|
ENUM[65] = :ARMORSTAND ; NUME[:ARMORSTAND] = 65 ; Item[:ARMORSTAND] = :ARMORSTAND
|
|
ENUM[66] = :WEAPONRACK ; NUME[:WEAPONRACK] = 66 ; Item[:WEAPONRACK] = :WEAPONRACK
|
|
ENUM[67] = :CABINET ; NUME[:CABINET] = 67 ; Item[:CABINET] = :CABINET
|
|
ENUM[68] = :ANVIL ; NUME[:ANVIL] = 68 ; Item[:ANVIL] = :ANVIL
|
|
ENUM[69] = :CATAPULTPARTS ; NUME[:CATAPULTPARTS] = 69 ; Item[:CATAPULTPARTS] = :CATAPULTPARTS
|
|
ENUM[70] = :BALLISTAPARTS ; NUME[:BALLISTAPARTS] = 70 ; Item[:BALLISTAPARTS] = :BALLISTAPARTS
|
|
ENUM[71] = :SIEGEAMMO ; NUME[:SIEGEAMMO] = 71 ; Item[:SIEGEAMMO] = :SIEGEAMMO
|
|
ENUM[72] = :TRAPPARTS ; NUME[:TRAPPARTS] = 72 ; Item[:TRAPPARTS] = :TRAPPARTS
|
|
ENUM[73] = :ANY_WEBS ; NUME[:ANY_WEBS] = 73 ; GenericItem[:ANY_WEBS] << :THREAD
|
|
ENUM[74] = :PIPE_SECTION ; NUME[:PIPE_SECTION] = 74 ; Item[:PIPE_SECTION] = :PIPE_SECTION
|
|
ENUM[75] = :ANY_ENCASED ; NUME[:ANY_ENCASED] = 75
|
|
ENUM[76] = :ANY_IN_CONSTRUCTION ; NUME[:ANY_IN_CONSTRUCTION] = 76
|
|
ENUM[77] = :DRINK ; NUME[:DRINK] = 77 ; Item[:DRINK] = :DRINK
|
|
ENUM[78] = :ANY_DRINK ; NUME[:ANY_DRINK] = 78 ; GenericItem[:ANY_DRINK] << :DRINK
|
|
ENUM[79] = :LIQUID_MISC ; NUME[:LIQUID_MISC] = 79 ; Item[:LIQUID_MISC] = :LIQUID_MISC
|
|
ENUM[80] = :POWDER_MISC ; NUME[:POWDER_MISC] = 80 ; Item[:POWDER_MISC] = :POWDER_MISC
|
|
ENUM[81] = :ANY_GENERIC81 ; NUME[:ANY_GENERIC81] = 81 ; GenericItem[:ANY_GENERIC81] << :FLASK ; GenericItem[:ANY_GENERIC81] << :CAGE ; GenericItem[:ANY_GENERIC81] << :BARREL ; GenericItem[:ANY_GENERIC81] << :BUCKET ; GenericItem[:ANY_GENERIC81] << :ANIMALTRAP ; GenericItem[:ANY_GENERIC81] << :BOX ; GenericItem[:ANY_GENERIC81] << :MEAT ; GenericItem[:ANY_GENERIC81] << :FISH ; GenericItem[:ANY_GENERIC81] << :FISH_RAW ; GenericItem[:ANY_GENERIC81] << :VERMIN ; GenericItem[:ANY_GENERIC81] << :SEEDS ; GenericItem[:ANY_GENERIC81] << :PLANT ; GenericItem[:ANY_GENERIC81] << :LEAVES ; GenericItem[:ANY_GENERIC81] << :DRINK ; GenericItem[:ANY_GENERIC81] << :POWDER_MISC ; GenericItem[:ANY_GENERIC81] << :CHEESE ; GenericItem[:ANY_GENERIC81] << :LIQUID_MISC ; GenericItem[:ANY_GENERIC81] << :GLOB ; GenericItem[:ANY_GENERIC81] << :TOOL ; GenericItem[:ANY_GENERIC81] << :EGG
|
|
ENUM[82] = :ANY_GENERIC82 ; NUME[:ANY_GENERIC82] = 82 ; GenericItem[:ANY_GENERIC82] << :BOX
|
|
ENUM[83] = :VERMIN ; NUME[:VERMIN] = 83 ; GenericItem[:VERMIN] << :VERMIN
|
|
ENUM[84] = :PET ; NUME[:PET] = 84 ; GenericItem[:PET] << :PET
|
|
ENUM[85] = :ANY_CRITTER ; NUME[:ANY_CRITTER] = 85 ; GenericItem[:ANY_CRITTER] << :VERMIN ; GenericItem[:ANY_CRITTER] << :PET
|
|
ENUM[86] = :COIN ; NUME[:COIN] = 86 ; Item[:COIN] = :COIN
|
|
ENUM[87] = :GLOB ; NUME[:GLOB] = 87 ; Item[:GLOB] = :GLOB
|
|
ENUM[88] = :TRAPCOMP ; NUME[:TRAPCOMP] = 88 ; Item[:TRAPCOMP] = :TRAPCOMP
|
|
ENUM[89] = :BAR ; NUME[:BAR] = 89 ; Item[:BAR] = :BAR
|
|
ENUM[90] = :SMALLGEM ; NUME[:SMALLGEM] = 90 ; Item[:SMALLGEM] = :SMALLGEM
|
|
ENUM[91] = :BLOCKS ; NUME[:BLOCKS] = 91 ; Item[:BLOCKS] = :BLOCKS
|
|
ENUM[92] = :ROUGH ; NUME[:ROUGH] = 92 ; Item[:ROUGH] = :ROUGH
|
|
ENUM[93] = :ANY_CORPSE ; NUME[:ANY_CORPSE] = 93 ; GenericItem[:ANY_CORPSE] << :CORPSE ; GenericItem[:ANY_CORPSE] << :CORPSEPIECE
|
|
ENUM[94] = :CORPSE ; NUME[:CORPSE] = 94 ; Item[:CORPSE] = :CORPSE
|
|
ENUM[95] = :BOOK ; NUME[:BOOK] = 95 ; Item[:BOOK] = :BOOK
|
|
ENUM[96] = :FIGURINE ; NUME[:FIGURINE] = 96 ; Item[:FIGURINE] = :FIGURINE
|
|
ENUM[97] = :AMULET ; NUME[:AMULET] = 97 ; Item[:AMULET] = :AMULET
|
|
ENUM[98] = :SCEPTER ; NUME[:SCEPTER] = 98 ; Item[:SCEPTER] = :SCEPTER
|
|
ENUM[99] = :CROWN ; NUME[:CROWN] = 99 ; Item[:CROWN] = :CROWN
|
|
ENUM[100] = :RING ; NUME[:RING] = 100 ; Item[:RING] = :RING
|
|
ENUM[101] = :EARRING ; NUME[:EARRING] = 101 ; Item[:EARRING] = :EARRING
|
|
ENUM[102] = :BRACELET ; NUME[:BRACELET] = 102 ; Item[:BRACELET] = :BRACELET
|
|
ENUM[103] = :GEM ; NUME[:GEM] = 103 ; Item[:GEM] = :GEM
|
|
ENUM[104] = :CORPSEPIECE ; NUME[:CORPSEPIECE] = 104 ; Item[:CORPSEPIECE] = :CORPSEPIECE
|
|
ENUM[105] = :REMAINS ; NUME[:REMAINS] = 105 ; Item[:REMAINS] = :REMAINS
|
|
ENUM[106] = :MEAT ; NUME[:MEAT] = 106 ; Item[:MEAT] = :MEAT
|
|
ENUM[107] = :FISH ; NUME[:FISH] = 107 ; Item[:FISH] = :FISH
|
|
ENUM[108] = :FISH_RAW ; NUME[:FISH_RAW] = 108 ; Item[:FISH_RAW] = :FISH_RAW
|
|
ENUM[109] = :EGG ; NUME[:EGG] = 109 ; Item[:EGG] = :EGG
|
|
ENUM[110] = :SEEDS ; NUME[:SEEDS] = 110 ; Item[:SEEDS] = :SEEDS
|
|
ENUM[111] = :PLANT ; NUME[:PLANT] = 111 ; Item[:PLANT] = :PLANT
|
|
ENUM[112] = :SKIN_TANNED ; NUME[:SKIN_TANNED] = 112 ; Item[:SKIN_TANNED] = :SKIN_TANNED
|
|
ENUM[113] = :LEAVES ; NUME[:LEAVES] = 113 ; Item[:LEAVES] = :LEAVES
|
|
ENUM[114] = :THREAD ; NUME[:THREAD] = 114 ; Item[:THREAD] = :THREAD
|
|
ENUM[115] = :CLOTH ; NUME[:CLOTH] = 115 ; Item[:CLOTH] = :CLOTH
|
|
ENUM[116] = :TOTEM ; NUME[:TOTEM] = 116 ; Item[:TOTEM] = :TOTEM
|
|
ENUM[117] = :PANTS ; NUME[:PANTS] = 117 ; Item[:PANTS] = :PANTS
|
|
ENUM[118] = :CHEESE ; NUME[:CHEESE] = 118 ; Item[:CHEESE] = :CHEESE
|
|
ENUM[119] = :FOOD ; NUME[:FOOD] = 119 ; Item[:FOOD] = :FOOD
|
|
ENUM[120] = :BALLISTAARROWHEAD ; NUME[:BALLISTAARROWHEAD] = 120 ; Item[:BALLISTAARROWHEAD] = :BALLISTAARROWHEAD
|
|
ENUM[121] = :ARMOR ; NUME[:ARMOR] = 121 ; Item[:ARMOR] = :ARMOR
|
|
ENUM[122] = :SHOES ; NUME[:SHOES] = 122 ; Item[:SHOES] = :SHOES
|
|
ENUM[123] = :HELM ; NUME[:HELM] = 123 ; Item[:HELM] = :HELM
|
|
ENUM[124] = :GLOVES ; NUME[:GLOVES] = 124 ; Item[:GLOVES] = :GLOVES
|
|
ENUM[125] = :ANY_GENERIC123 ; NUME[:ANY_GENERIC123] = 125 ; GenericItem[:ANY_GENERIC123] << :FLASK ; GenericItem[:ANY_GENERIC123] << :GOBLET ; GenericItem[:ANY_GENERIC123] << :CAGE ; GenericItem[:ANY_GENERIC123] << :BARREL ; GenericItem[:ANY_GENERIC123] << :BUCKET ; GenericItem[:ANY_GENERIC123] << :ANIMALTRAP ; GenericItem[:ANY_GENERIC123] << :COFFIN ; GenericItem[:ANY_GENERIC123] << :BOX ; GenericItem[:ANY_GENERIC123] << :BIN ; GenericItem[:ANY_GENERIC123] << :ARMORSTAND ; GenericItem[:ANY_GENERIC123] << :WEAPONRACK ; GenericItem[:ANY_GENERIC123] << :CABINET ; GenericItem[:ANY_GENERIC123] << :BACKPACK ; GenericItem[:ANY_GENERIC123] << :QUIVER ; GenericItem[:ANY_GENERIC123] << :TOOL
|
|
ENUM[126] = :FOOD_STORAGE ; NUME[:FOOD_STORAGE] = 126 ; GenericItem[:FOOD_STORAGE] << :BARREL ; GenericItem[:FOOD_STORAGE] << :TOOL
|
|
ENUM[127] = :UNKNOWN_125 ; NUME[:UNKNOWN_125] = 127
|
|
ENUM[128] = :ANY_MELT_DESIGNATED ; NUME[:ANY_MELT_DESIGNATED] = 128
|
|
ENUM[129] = :BAD ; NUME[:BAD] = 129
|
|
end
|
|
|
|
class JobItemVectorId < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Other = Hash.new(:ANY)
|
|
ENUM[0] = :ANY ; NUME[:ANY] = 0
|
|
ENUM[1] = :ANY_FREE ; NUME[:ANY_FREE] = 1
|
|
ENUM[2] = :ANY_ARTIFACT ; NUME[:ANY_ARTIFACT] = 2
|
|
ENUM[3] = :WEAPON ; NUME[:WEAPON] = 3
|
|
ENUM[4] = :ANY_WEAPON ; NUME[:ANY_WEAPON] = 4
|
|
ENUM[5] = :ANY_SPIKE ; NUME[:ANY_SPIKE] = 5
|
|
ENUM[6] = :ANY_TRUE_ARMOR ; NUME[:ANY_TRUE_ARMOR] = 6
|
|
ENUM[7] = :ANY_ARMOR_HELM ; NUME[:ANY_ARMOR_HELM] = 7
|
|
ENUM[8] = :ANY_ARMOR_SHOES ; NUME[:ANY_ARMOR_SHOES] = 8
|
|
ENUM[9] = :SHIELD ; NUME[:SHIELD] = 9
|
|
ENUM[10] = :ANY_ARMOR_GLOVES ; NUME[:ANY_ARMOR_GLOVES] = 10
|
|
ENUM[11] = :ANY_ARMOR_PANTS ; NUME[:ANY_ARMOR_PANTS] = 11
|
|
ENUM[12] = :QUIVER ; NUME[:QUIVER] = 12
|
|
ENUM[13] = :SPLINT ; NUME[:SPLINT] = 13
|
|
ENUM[14] = :ANY_14 ; NUME[:ANY_14] = 14 ; Other[:ANY_14] = :ANY
|
|
ENUM[15] = :CRUTCH ; NUME[:CRUTCH] = 15
|
|
ENUM[16] = :BACKPACK ; NUME[:BACKPACK] = 16
|
|
ENUM[17] = :AMMO ; NUME[:AMMO] = 17
|
|
ENUM[18] = :WOOD ; NUME[:WOOD] = 18
|
|
ENUM[19] = :BOULDER ; NUME[:BOULDER] = 19
|
|
ENUM[20] = :ROCK ; NUME[:ROCK] = 20
|
|
ENUM[21] = :ANY_REFUSE ; NUME[:ANY_REFUSE] = 21
|
|
ENUM[22] = :ANY_GOOD_FOOD ; NUME[:ANY_GOOD_FOOD] = 22
|
|
ENUM[23] = :ANY_GENERIC22 ; NUME[:ANY_GENERIC22] = 23
|
|
ENUM[24] = :ANY_GENERIC23 ; NUME[:ANY_GENERIC23] = 24
|
|
ENUM[25] = :ANY_GENERIC24 ; NUME[:ANY_GENERIC24] = 25
|
|
ENUM[26] = :ANY_FURNITURE ; NUME[:ANY_FURNITURE] = 26
|
|
ENUM[27] = :ANY_CAGE_OR_TRAP ; NUME[:ANY_CAGE_OR_TRAP] = 27
|
|
ENUM[28] = :ANY_EDIBLE_RAW ; NUME[:ANY_EDIBLE_RAW] = 28
|
|
ENUM[29] = :ANY_EDIBLE_MEAT ; NUME[:ANY_EDIBLE_MEAT] = 29
|
|
ENUM[30] = :ANY_EDIBLE_CORPSE ; NUME[:ANY_EDIBLE_CORPSE] = 30
|
|
ENUM[31] = :ANY_EDIBLE_VERMIN ; NUME[:ANY_EDIBLE_VERMIN] = 31
|
|
ENUM[32] = :ANY_EDIBLE_VERMIN_BOX ; NUME[:ANY_EDIBLE_VERMIN_BOX] = 32
|
|
ENUM[33] = :ANY_CAN_ROT ; NUME[:ANY_CAN_ROT] = 33
|
|
ENUM[34] = :ANY_MURDERED ; NUME[:ANY_MURDERED] = 34
|
|
ENUM[35] = :ANY_DEAD_DWARF ; NUME[:ANY_DEAD_DWARF] = 35
|
|
ENUM[36] = :ANY_GENERIC35 ; NUME[:ANY_GENERIC35] = 36
|
|
ENUM[37] = :ANY_GENERIC36 ; NUME[:ANY_GENERIC36] = 37
|
|
ENUM[38] = :ANY_GENERIC37 ; NUME[:ANY_GENERIC37] = 38
|
|
ENUM[39] = :ANY_GENERIC38 ; NUME[:ANY_GENERIC38] = 39
|
|
ENUM[40] = :DOOR ; NUME[:DOOR] = 40
|
|
ENUM[41] = :FLOODGATE ; NUME[:FLOODGATE] = 41
|
|
ENUM[42] = :HATCH_COVER ; NUME[:HATCH_COVER] = 42
|
|
ENUM[43] = :GRATE ; NUME[:GRATE] = 43
|
|
ENUM[44] = :CAGE ; NUME[:CAGE] = 44
|
|
ENUM[45] = :FLASK ; NUME[:FLASK] = 45
|
|
ENUM[46] = :WINDOW ; NUME[:WINDOW] = 46
|
|
ENUM[47] = :GOBLET ; NUME[:GOBLET] = 47
|
|
ENUM[48] = :INSTRUMENT ; NUME[:INSTRUMENT] = 48
|
|
ENUM[49] = :TOY ; NUME[:TOY] = 49
|
|
ENUM[50] = :BUCKET ; NUME[:BUCKET] = 50
|
|
ENUM[51] = :BARREL ; NUME[:BARREL] = 51
|
|
ENUM[52] = :CHAIN ; NUME[:CHAIN] = 52
|
|
ENUM[53] = :ANIMALTRAP ; NUME[:ANIMALTRAP] = 53
|
|
ENUM[54] = :BED ; NUME[:BED] = 54
|
|
ENUM[55] = :TRACTION_BENCH ; NUME[:TRACTION_BENCH] = 55
|
|
ENUM[56] = :CHAIR ; NUME[:CHAIR] = 56
|
|
ENUM[57] = :COFFIN ; NUME[:COFFIN] = 57
|
|
ENUM[58] = :TABLE ; NUME[:TABLE] = 58
|
|
ENUM[59] = :STATUE ; NUME[:STATUE] = 59
|
|
ENUM[60] = :QUERN ; NUME[:QUERN] = 60
|
|
ENUM[61] = :MILLSTONE ; NUME[:MILLSTONE] = 61
|
|
ENUM[62] = :BOX ; NUME[:BOX] = 62
|
|
ENUM[63] = :BIN ; NUME[:BIN] = 63
|
|
ENUM[64] = :ARMORSTAND ; NUME[:ARMORSTAND] = 64
|
|
ENUM[65] = :WEAPONRACK ; NUME[:WEAPONRACK] = 65
|
|
ENUM[66] = :CABINET ; NUME[:CABINET] = 66
|
|
ENUM[67] = :ANVIL ; NUME[:ANVIL] = 67
|
|
ENUM[68] = :CATAPULTPARTS ; NUME[:CATAPULTPARTS] = 68
|
|
ENUM[69] = :BALLISTAPARTS ; NUME[:BALLISTAPARTS] = 69
|
|
ENUM[70] = :SIEGEAMMO ; NUME[:SIEGEAMMO] = 70
|
|
ENUM[71] = :TRAPPARTS ; NUME[:TRAPPARTS] = 71
|
|
ENUM[72] = :ANY_WEBS ; NUME[:ANY_WEBS] = 72
|
|
ENUM[73] = :PIPE_SECTION ; NUME[:PIPE_SECTION] = 73
|
|
ENUM[74] = :ANY_ENCASED ; NUME[:ANY_ENCASED] = 74
|
|
ENUM[75] = :ANY_IN_CONSTRUCTION ; NUME[:ANY_IN_CONSTRUCTION] = 75
|
|
ENUM[76] = :DRINK ; NUME[:DRINK] = 76
|
|
ENUM[77] = :ANY_DRINK ; NUME[:ANY_DRINK] = 77
|
|
ENUM[78] = :LIQUID_MISC ; NUME[:LIQUID_MISC] = 78
|
|
ENUM[79] = :POWDER_MISC ; NUME[:POWDER_MISC] = 79
|
|
ENUM[80] = :ANY_GENERIC81 ; NUME[:ANY_GENERIC81] = 80
|
|
ENUM[81] = :ANY_GENERIC82 ; NUME[:ANY_GENERIC82] = 81
|
|
ENUM[82] = :VERMIN ; NUME[:VERMIN] = 82
|
|
ENUM[83] = :PET ; NUME[:PET] = 83
|
|
ENUM[84] = :ANY_CRITTER ; NUME[:ANY_CRITTER] = 84
|
|
ENUM[85] = :COIN ; NUME[:COIN] = 85
|
|
ENUM[86] = :GLOB ; NUME[:GLOB] = 86
|
|
ENUM[87] = :UNKNOWN_125 ; NUME[:UNKNOWN_125] = 87
|
|
ENUM[88] = :ANY_MELT_DESIGNATED ; NUME[:ANY_MELT_DESIGNATED] = 88
|
|
ENUM[89] = :BAD ; NUME[:BAD] = 89
|
|
ENUM[90] = :TRAPCOMP ; NUME[:TRAPCOMP] = 90
|
|
ENUM[91] = :BAR ; NUME[:BAR] = 91
|
|
ENUM[92] = :SMALLGEM ; NUME[:SMALLGEM] = 92
|
|
ENUM[93] = :BLOCKS ; NUME[:BLOCKS] = 93
|
|
ENUM[94] = :ROUGH ; NUME[:ROUGH] = 94
|
|
ENUM[95] = :CORPSE ; NUME[:CORPSE] = 95
|
|
ENUM[96] = :FIGURINE ; NUME[:FIGURINE] = 96
|
|
ENUM[97] = :AMULET ; NUME[:AMULET] = 97
|
|
ENUM[98] = :SCEPTER ; NUME[:SCEPTER] = 98
|
|
ENUM[99] = :CROWN ; NUME[:CROWN] = 99
|
|
ENUM[100] = :RING ; NUME[:RING] = 100
|
|
ENUM[101] = :EARRING ; NUME[:EARRING] = 101
|
|
ENUM[102] = :BRACELET ; NUME[:BRACELET] = 102
|
|
ENUM[103] = :GEM ; NUME[:GEM] = 103
|
|
ENUM[104] = :CORPSEPIECE ; NUME[:CORPSEPIECE] = 104
|
|
ENUM[105] = :REMAINS ; NUME[:REMAINS] = 105
|
|
ENUM[106] = :MEAT ; NUME[:MEAT] = 106
|
|
ENUM[107] = :FISH ; NUME[:FISH] = 107
|
|
ENUM[108] = :FISH_RAW ; NUME[:FISH_RAW] = 108
|
|
ENUM[109] = :SEEDS ; NUME[:SEEDS] = 109
|
|
ENUM[110] = :PLANT ; NUME[:PLANT] = 110
|
|
ENUM[111] = :SKIN_TANNED ; NUME[:SKIN_TANNED] = 111
|
|
ENUM[112] = :LEAVES ; NUME[:LEAVES] = 112
|
|
ENUM[113] = :THREAD ; NUME[:THREAD] = 113
|
|
ENUM[114] = :CLOTH ; NUME[:CLOTH] = 114
|
|
ENUM[115] = :TOTEM ; NUME[:TOTEM] = 115
|
|
ENUM[116] = :PANTS ; NUME[:PANTS] = 116
|
|
ENUM[117] = :CHEESE ; NUME[:CHEESE] = 117
|
|
ENUM[118] = :FOOD ; NUME[:FOOD] = 118
|
|
ENUM[119] = :BALLISTAARROWHEAD ; NUME[:BALLISTAARROWHEAD] = 119
|
|
ENUM[120] = :ARMOR ; NUME[:ARMOR] = 120
|
|
ENUM[121] = :SHOES ; NUME[:SHOES] = 121
|
|
ENUM[122] = :HELM ; NUME[:HELM] = 122
|
|
ENUM[123] = :GLOVES ; NUME[:GLOVES] = 123
|
|
ENUM[124] = :ANY_124 ; NUME[:ANY_124] = 124 ; Other[:ANY_124] = :ANY
|
|
ENUM[125] = :ANY_125 ; NUME[:ANY_125] = 125 ; Other[:ANY_125] = :ANY
|
|
ENUM[126] = :EGG ; NUME[:EGG] = 126
|
|
ENUM[127] = :ANY_127 ; NUME[:ANY_127] = 127 ; Other[:ANY_127] = :ANY
|
|
ENUM[128] = :ANY_CORPSE ; NUME[:ANY_CORPSE] = 128
|
|
ENUM[129] = :BOOK ; NUME[:BOOK] = 129
|
|
end
|
|
|
|
class JobSkill < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Caption = Hash.new
|
|
CaptionNoun = Hash.new
|
|
Profession = Hash.new(:NONE)
|
|
Labor = Hash.new(:NONE)
|
|
Type = Hash.new(:Normal)
|
|
ENUM[-1] = :NONE ; NUME[:NONE] = -1
|
|
ENUM[0] = :MINING ; NUME[:MINING] = 0 ; Caption[:MINING] = 'Mining' ; CaptionNoun[:MINING] = 'Miner' ; Profession[:MINING] = :MINER ; Labor[:MINING] = :MINE
|
|
ENUM[1] = :WOODCUTTING ; NUME[:WOODCUTTING] = 1 ; Caption[:WOODCUTTING] = 'Wood Cutting' ; CaptionNoun[:WOODCUTTING] = 'Wood Cutter' ; Profession[:WOODCUTTING] = :WOODCUTTER ; Labor[:WOODCUTTING] = :CUTWOOD
|
|
ENUM[2] = :CARPENTRY ; NUME[:CARPENTRY] = 2 ; Caption[:CARPENTRY] = 'Carpentry' ; CaptionNoun[:CARPENTRY] = 'Carpenter' ; Profession[:CARPENTRY] = :CARPENTER ; Labor[:CARPENTRY] = :CARPENTER
|
|
ENUM[3] = :DETAILSTONE ; NUME[:DETAILSTONE] = 3 ; Caption[:DETAILSTONE] = 'Engraving' ; CaptionNoun[:DETAILSTONE] = 'Engraver' ; Profession[:DETAILSTONE] = :ENGRAVER ; Labor[:DETAILSTONE] = :DETAIL
|
|
ENUM[4] = :MASONRY ; NUME[:MASONRY] = 4 ; Caption[:MASONRY] = 'Masonry' ; CaptionNoun[:MASONRY] = 'Mason' ; Profession[:MASONRY] = :MASON ; Labor[:MASONRY] = :MASON
|
|
ENUM[5] = :ANIMALTRAIN ; NUME[:ANIMALTRAIN] = 5 ; Caption[:ANIMALTRAIN] = 'Animal Training' ; CaptionNoun[:ANIMALTRAIN] = 'Animal Trainer' ; Profession[:ANIMALTRAIN] = :ANIMAL_TRAINER ; Labor[:ANIMALTRAIN] = :ANIMALTRAIN
|
|
ENUM[6] = :ANIMALCARE ; NUME[:ANIMALCARE] = 6 ; Caption[:ANIMALCARE] = 'Animal Caretaking' ; CaptionNoun[:ANIMALCARE] = 'Animal Caretaker' ; Profession[:ANIMALCARE] = :ANIMAL_CARETAKER ; Labor[:ANIMALCARE] = :ANIMALCARE
|
|
ENUM[7] = :DISSECT_FISH ; NUME[:DISSECT_FISH] = 7 ; Caption[:DISSECT_FISH] = 'Fish Dissection' ; CaptionNoun[:DISSECT_FISH] = 'Fish Dissector' ; Profession[:DISSECT_FISH] = :FISH_DISSECTOR ; Labor[:DISSECT_FISH] = :DISSECT_FISH
|
|
ENUM[8] = :DISSECT_VERMIN ; NUME[:DISSECT_VERMIN] = 8 ; Caption[:DISSECT_VERMIN] = 'Animal Dissection' ; CaptionNoun[:DISSECT_VERMIN] = 'Animal Dissector' ; Profession[:DISSECT_VERMIN] = :ANIMAL_DISSECTOR ; Labor[:DISSECT_VERMIN] = :DISSECT_VERMIN
|
|
ENUM[9] = :PROCESSFISH ; NUME[:PROCESSFISH] = 9 ; Caption[:PROCESSFISH] = 'Fish Cleaning' ; CaptionNoun[:PROCESSFISH] = 'Fish Cleaner' ; Profession[:PROCESSFISH] = :FISH_CLEANER ; Labor[:PROCESSFISH] = :CLEAN_FISH
|
|
ENUM[10] = :BUTCHER ; NUME[:BUTCHER] = 10 ; Caption[:BUTCHER] = 'Butchery' ; CaptionNoun[:BUTCHER] = 'Butcher' ; Profession[:BUTCHER] = :BUTCHER ; Labor[:BUTCHER] = :BUTCHER
|
|
ENUM[11] = :TRAPPING ; NUME[:TRAPPING] = 11 ; Caption[:TRAPPING] = 'Trapping' ; CaptionNoun[:TRAPPING] = 'Trapper' ; Profession[:TRAPPING] = :TRAPPER ; Labor[:TRAPPING] = :TRAPPER
|
|
ENUM[12] = :TANNER ; NUME[:TANNER] = 12 ; Caption[:TANNER] = 'Tanning' ; CaptionNoun[:TANNER] = 'Tanner' ; Profession[:TANNER] = :TANNER ; Labor[:TANNER] = :TANNER
|
|
ENUM[13] = :WEAVING ; NUME[:WEAVING] = 13 ; Caption[:WEAVING] = 'Weaving' ; CaptionNoun[:WEAVING] = 'Weaver' ; Profession[:WEAVING] = :WEAVER ; Labor[:WEAVING] = :WEAVER
|
|
ENUM[14] = :BREWING ; NUME[:BREWING] = 14 ; Caption[:BREWING] = 'Brewing' ; CaptionNoun[:BREWING] = 'Brewer' ; Profession[:BREWING] = :BREWER ; Labor[:BREWING] = :BREWER
|
|
ENUM[15] = :ALCHEMY ; NUME[:ALCHEMY] = 15 ; Caption[:ALCHEMY] = 'Alchemy' ; CaptionNoun[:ALCHEMY] = 'Alchemist' ; Profession[:ALCHEMY] = :ALCHEMIST ; Labor[:ALCHEMY] = :ALCHEMIST
|
|
ENUM[16] = :CLOTHESMAKING ; NUME[:CLOTHESMAKING] = 16 ; Caption[:CLOTHESMAKING] = 'Clothes Making' ; CaptionNoun[:CLOTHESMAKING] = 'Clothier' ; Profession[:CLOTHESMAKING] = :CLOTHIER ; Labor[:CLOTHESMAKING] = :CLOTHESMAKER
|
|
ENUM[17] = :MILLING ; NUME[:MILLING] = 17 ; Caption[:MILLING] = 'Milling' ; CaptionNoun[:MILLING] = 'Miller' ; Profession[:MILLING] = :MILLER ; Labor[:MILLING] = :MILLER
|
|
ENUM[18] = :PROCESSPLANTS ; NUME[:PROCESSPLANTS] = 18 ; Caption[:PROCESSPLANTS] = 'Threshing' ; CaptionNoun[:PROCESSPLANTS] = 'Thresher' ; Profession[:PROCESSPLANTS] = :THRESHER ; Labor[:PROCESSPLANTS] = :PROCESS_PLANT
|
|
ENUM[19] = :CHEESEMAKING ; NUME[:CHEESEMAKING] = 19 ; Caption[:CHEESEMAKING] = 'Cheese Making' ; CaptionNoun[:CHEESEMAKING] = 'Cheese Maker' ; Profession[:CHEESEMAKING] = :CHEESE_MAKER ; Labor[:CHEESEMAKING] = :MAKE_CHEESE
|
|
ENUM[20] = :MILK ; NUME[:MILK] = 20 ; Caption[:MILK] = 'Milking' ; CaptionNoun[:MILK] = 'Milker' ; Profession[:MILK] = :MILKER ; Labor[:MILK] = :MILK
|
|
ENUM[21] = :COOK ; NUME[:COOK] = 21 ; Caption[:COOK] = 'Cooking' ; CaptionNoun[:COOK] = 'Cook' ; Profession[:COOK] = :COOK ; Labor[:COOK] = :COOK
|
|
ENUM[22] = :PLANT ; NUME[:PLANT] = 22 ; Caption[:PLANT] = 'Growing' ; CaptionNoun[:PLANT] = 'Grower' ; Profession[:PLANT] = :PLANTER ; Labor[:PLANT] = :PLANT
|
|
ENUM[23] = :HERBALISM ; NUME[:HERBALISM] = 23 ; Caption[:HERBALISM] = 'Herbalism' ; CaptionNoun[:HERBALISM] = 'Herbalist' ; Profession[:HERBALISM] = :HERBALIST ; Labor[:HERBALISM] = :HERBALIST
|
|
ENUM[24] = :FISH ; NUME[:FISH] = 24 ; Caption[:FISH] = 'Fishing' ; CaptionNoun[:FISH] = 'Fisherman' ; Profession[:FISH] = :FISHERMAN ; Labor[:FISH] = :FISH
|
|
ENUM[25] = :SMELT ; NUME[:SMELT] = 25 ; Caption[:SMELT] = 'Furnace Operation' ; CaptionNoun[:SMELT] = 'Furnace Operator' ; Profession[:SMELT] = :FURNACE_OPERATOR ; Labor[:SMELT] = :SMELT
|
|
ENUM[26] = :EXTRACT_STRAND ; NUME[:EXTRACT_STRAND] = 26 ; Caption[:EXTRACT_STRAND] = 'Strand Extraction' ; CaptionNoun[:EXTRACT_STRAND] = 'Strand Extractor' ; Profession[:EXTRACT_STRAND] = :STRAND_EXTRACTOR ; Labor[:EXTRACT_STRAND] = :EXTRACT_STRAND
|
|
ENUM[27] = :FORGE_WEAPON ; NUME[:FORGE_WEAPON] = 27 ; Caption[:FORGE_WEAPON] = 'Weaponsmithing' ; CaptionNoun[:FORGE_WEAPON] = 'Weaponsmith' ; Profession[:FORGE_WEAPON] = :WEAPONSMITH ; Labor[:FORGE_WEAPON] = :FORGE_WEAPON
|
|
ENUM[28] = :FORGE_ARMOR ; NUME[:FORGE_ARMOR] = 28 ; Caption[:FORGE_ARMOR] = 'Armorsmithing' ; CaptionNoun[:FORGE_ARMOR] = 'Armorsmith' ; Profession[:FORGE_ARMOR] = :ARMORER ; Labor[:FORGE_ARMOR] = :FORGE_ARMOR
|
|
ENUM[29] = :FORGE_FURNITURE ; NUME[:FORGE_FURNITURE] = 29 ; Caption[:FORGE_FURNITURE] = 'Metalsmithing' ; CaptionNoun[:FORGE_FURNITURE] = 'Metalsmith' ; Profession[:FORGE_FURNITURE] = :BLACKSMITH ; Labor[:FORGE_FURNITURE] = :FORGE_FURNITURE
|
|
ENUM[30] = :CUTGEM ; NUME[:CUTGEM] = 30 ; Caption[:CUTGEM] = 'Gem Cutting' ; CaptionNoun[:CUTGEM] = 'Gem Cutter' ; Profession[:CUTGEM] = :GEM_CUTTER ; Labor[:CUTGEM] = :CUT_GEM
|
|
ENUM[31] = :ENCRUSTGEM ; NUME[:ENCRUSTGEM] = 31 ; Caption[:ENCRUSTGEM] = 'Gem Setting' ; CaptionNoun[:ENCRUSTGEM] = 'Gem Setter' ; Profession[:ENCRUSTGEM] = :GEM_SETTER ; Labor[:ENCRUSTGEM] = :ENCRUST_GEM
|
|
ENUM[32] = :WOODCRAFT ; NUME[:WOODCRAFT] = 32 ; Caption[:WOODCRAFT] = 'Wood Crafting' ; CaptionNoun[:WOODCRAFT] = 'Wood Crafter' ; Profession[:WOODCRAFT] = :WOODCRAFTER ; Labor[:WOODCRAFT] = :WOOD_CRAFT
|
|
ENUM[33] = :STONECRAFT ; NUME[:STONECRAFT] = 33 ; Caption[:STONECRAFT] = 'Stone Crafting' ; CaptionNoun[:STONECRAFT] = 'Stone Crafter' ; Profession[:STONECRAFT] = :STONECRAFTER ; Labor[:STONECRAFT] = :STONE_CRAFT
|
|
ENUM[34] = :METALCRAFT ; NUME[:METALCRAFT] = 34 ; Caption[:METALCRAFT] = 'Metal Crafting' ; CaptionNoun[:METALCRAFT] = 'Metal Crafter' ; Profession[:METALCRAFT] = :METALCRAFTER ; Labor[:METALCRAFT] = :METAL_CRAFT
|
|
ENUM[35] = :GLASSMAKER ; NUME[:GLASSMAKER] = 35 ; Caption[:GLASSMAKER] = 'Glassmaking' ; CaptionNoun[:GLASSMAKER] = 'Glassmaker' ; Profession[:GLASSMAKER] = :GLASSMAKER ; Labor[:GLASSMAKER] = :GLASSMAKER
|
|
ENUM[36] = :LEATHERWORK ; NUME[:LEATHERWORK] = 36 ; Caption[:LEATHERWORK] = 'Leatherworkering' ; CaptionNoun[:LEATHERWORK] = 'Leatherworker' ; Profession[:LEATHERWORK] = :LEATHERWORKER ; Labor[:LEATHERWORK] = :LEATHER
|
|
ENUM[37] = :BONECARVE ; NUME[:BONECARVE] = 37 ; Caption[:BONECARVE] = 'Bone Carving' ; CaptionNoun[:BONECARVE] = 'Bone Carver' ; Profession[:BONECARVE] = :BONE_CARVER ; Labor[:BONECARVE] = :BONE_CARVE
|
|
ENUM[38] = :AXE ; NUME[:AXE] = 38 ; Caption[:AXE] = 'Axe' ; CaptionNoun[:AXE] = 'Axeman' ; Profession[:AXE] = :AXEMAN ; Type[:AXE] = :MilitaryWeapon
|
|
ENUM[39] = :SWORD ; NUME[:SWORD] = 39 ; Caption[:SWORD] = 'Sword' ; CaptionNoun[:SWORD] = 'Swordsman' ; Profession[:SWORD] = :SWORDSMAN ; Type[:SWORD] = :MilitaryWeapon
|
|
ENUM[40] = :DAGGER ; NUME[:DAGGER] = 40 ; Caption[:DAGGER] = 'Knife' ; CaptionNoun[:DAGGER] = 'Knife User' ; Type[:DAGGER] = :MilitaryWeapon
|
|
ENUM[41] = :MACE ; NUME[:MACE] = 41 ; Caption[:MACE] = 'Mace' ; CaptionNoun[:MACE] = 'Maceman' ; Profession[:MACE] = :MACEMAN ; Type[:MACE] = :MilitaryWeapon
|
|
ENUM[42] = :HAMMER ; NUME[:HAMMER] = 42 ; Caption[:HAMMER] = 'Hammer' ; CaptionNoun[:HAMMER] = 'Hammerman' ; Profession[:HAMMER] = :HAMMERMAN ; Type[:HAMMER] = :MilitaryWeapon
|
|
ENUM[43] = :SPEAR ; NUME[:SPEAR] = 43 ; Caption[:SPEAR] = 'Spear' ; CaptionNoun[:SPEAR] = 'Spearman' ; Profession[:SPEAR] = :SPEARMAN ; Type[:SPEAR] = :MilitaryWeapon
|
|
ENUM[44] = :CROSSBOW ; NUME[:CROSSBOW] = 44 ; Caption[:CROSSBOW] = 'Crossbow' ; CaptionNoun[:CROSSBOW] = 'Crossbowman' ; Profession[:CROSSBOW] = :CROSSBOWMAN ; Type[:CROSSBOW] = :MilitaryWeapon
|
|
ENUM[45] = :SHIELD ; NUME[:SHIELD] = 45 ; Caption[:SHIELD] = 'Shield' ; CaptionNoun[:SHIELD] = 'Shield User' ; Type[:SHIELD] = :MilitaryDefense
|
|
ENUM[46] = :ARMOR ; NUME[:ARMOR] = 46 ; Caption[:ARMOR] = 'Armor' ; CaptionNoun[:ARMOR] = 'Armor User' ; Type[:ARMOR] = :MilitaryDefense
|
|
ENUM[47] = :SIEGECRAFT ; NUME[:SIEGECRAFT] = 47 ; Caption[:SIEGECRAFT] = 'Siege Engineering' ; CaptionNoun[:SIEGECRAFT] = 'Siege Engineer' ; Profession[:SIEGECRAFT] = :SIEGE_ENGINEER ; Labor[:SIEGECRAFT] = :SIEGECRAFT
|
|
ENUM[48] = :SIEGEOPERATE ; NUME[:SIEGEOPERATE] = 48 ; Caption[:SIEGEOPERATE] = 'Siege Operation' ; CaptionNoun[:SIEGEOPERATE] = 'Siege Operator' ; Profession[:SIEGEOPERATE] = :SIEGE_OPERATOR ; Labor[:SIEGEOPERATE] = :SIEGEOPERATE
|
|
ENUM[49] = :BOWYER ; NUME[:BOWYER] = 49 ; Caption[:BOWYER] = 'Bowmaking' ; CaptionNoun[:BOWYER] = 'Bowyer' ; Profession[:BOWYER] = :BOWYER ; Labor[:BOWYER] = :BOWYER
|
|
ENUM[50] = :PIKE ; NUME[:PIKE] = 50 ; Caption[:PIKE] = 'Pike' ; CaptionNoun[:PIKE] = 'Pikeman' ; Profession[:PIKE] = :PIKEMAN ; Type[:PIKE] = :MilitaryWeapon
|
|
ENUM[51] = :WHIP ; NUME[:WHIP] = 51 ; Caption[:WHIP] = 'Lash' ; CaptionNoun[:WHIP] = 'Lasher' ; Profession[:WHIP] = :LASHER ; Type[:WHIP] = :MilitaryWeapon
|
|
ENUM[52] = :BOW ; NUME[:BOW] = 52 ; Caption[:BOW] = 'Bow' ; CaptionNoun[:BOW] = 'Bowman' ; Profession[:BOW] = :BOWMAN ; Type[:BOW] = :MilitaryWeapon
|
|
ENUM[53] = :BLOWGUN ; NUME[:BLOWGUN] = 53 ; Caption[:BLOWGUN] = 'Blowgun' ; CaptionNoun[:BLOWGUN] = 'Blowgunner' ; Profession[:BLOWGUN] = :BLOWGUNMAN ; Type[:BLOWGUN] = :MilitaryWeapon
|
|
ENUM[54] = :THROW ; NUME[:THROW] = 54 ; Caption[:THROW] = 'Throwing' ; CaptionNoun[:THROW] = 'Thrower' ; Type[:THROW] = :MilitaryAttack
|
|
ENUM[55] = :MECHANICS ; NUME[:MECHANICS] = 55 ; Caption[:MECHANICS] = 'Machinery' ; CaptionNoun[:MECHANICS] = 'Mechanic' ; Profession[:MECHANICS] = :MECHANIC ; Labor[:MECHANICS] = :MECHANIC
|
|
ENUM[56] = :MAGIC_NATURE ; NUME[:MAGIC_NATURE] = 56 ; Caption[:MAGIC_NATURE] = 'Nature' ; CaptionNoun[:MAGIC_NATURE] = 'Druid'
|
|
ENUM[57] = :SNEAK ; NUME[:SNEAK] = 57 ; Caption[:SNEAK] = 'Ambush' ; CaptionNoun[:SNEAK] = 'Ambusher' ; Profession[:SNEAK] = :HUNTER ; Labor[:SNEAK] = :HUNT
|
|
ENUM[58] = :DESIGNBUILDING ; NUME[:DESIGNBUILDING] = 58 ; Caption[:DESIGNBUILDING] = 'Building Design' ; CaptionNoun[:DESIGNBUILDING] = 'Building Designer' ; Profession[:DESIGNBUILDING] = :ARCHITECT ; Labor[:DESIGNBUILDING] = :ARCHITECT
|
|
ENUM[59] = :DRESS_WOUNDS ; NUME[:DRESS_WOUNDS] = 59 ; Caption[:DRESS_WOUNDS] = 'Wound Dressing' ; CaptionNoun[:DRESS_WOUNDS] = 'Wound Dresser' ; Labor[:DRESS_WOUNDS] = :DRESSING_WOUNDS ; Type[:DRESS_WOUNDS] = :Medical
|
|
ENUM[60] = :DIAGNOSE ; NUME[:DIAGNOSE] = 60 ; Caption[:DIAGNOSE] = 'Diagnostics' ; CaptionNoun[:DIAGNOSE] = 'Diagnostician' ; Profession[:DIAGNOSE] = :DIAGNOSER ; Labor[:DIAGNOSE] = :DIAGNOSE ; Type[:DIAGNOSE] = :Medical
|
|
ENUM[61] = :SURGERY ; NUME[:SURGERY] = 61 ; Caption[:SURGERY] = 'Surgery' ; CaptionNoun[:SURGERY] = 'Surgeon' ; Profession[:SURGERY] = :SURGEON ; Labor[:SURGERY] = :SURGERY ; Type[:SURGERY] = :Medical
|
|
ENUM[62] = :SET_BONE ; NUME[:SET_BONE] = 62 ; Caption[:SET_BONE] = 'Bone Setting' ; CaptionNoun[:SET_BONE] = 'Bone Doctor' ; Profession[:SET_BONE] = :BONE_SETTER ; Labor[:SET_BONE] = :BONE_SETTING ; Type[:SET_BONE] = :Medical
|
|
ENUM[63] = :SUTURE ; NUME[:SUTURE] = 63 ; Caption[:SUTURE] = 'Suturing' ; CaptionNoun[:SUTURE] = 'Suturer' ; Profession[:SUTURE] = :SUTURER ; Labor[:SUTURE] = :SUTURING ; Type[:SUTURE] = :Medical
|
|
ENUM[64] = :CRUTCH_WALK ; NUME[:CRUTCH_WALK] = 64 ; Caption[:CRUTCH_WALK] = 'Crutch-walking' ; CaptionNoun[:CRUTCH_WALK] = 'Crutch-walker' ; Type[:CRUTCH_WALK] = :Personal
|
|
ENUM[65] = :WOOD_BURNING ; NUME[:WOOD_BURNING] = 65 ; Caption[:WOOD_BURNING] = 'Wood Burning' ; CaptionNoun[:WOOD_BURNING] = 'Wood Burner' ; Profession[:WOOD_BURNING] = :WOOD_BURNER ; Labor[:WOOD_BURNING] = :BURN_WOOD
|
|
ENUM[66] = :LYE_MAKING ; NUME[:LYE_MAKING] = 66 ; Caption[:LYE_MAKING] = 'Lye Making' ; CaptionNoun[:LYE_MAKING] = 'Lye Maker' ; Profession[:LYE_MAKING] = :LYE_MAKER ; Labor[:LYE_MAKING] = :LYE_MAKING
|
|
ENUM[67] = :SOAP_MAKING ; NUME[:SOAP_MAKING] = 67 ; Caption[:SOAP_MAKING] = 'Soap Making' ; CaptionNoun[:SOAP_MAKING] = 'Soaper' ; Profession[:SOAP_MAKING] = :SOAP_MAKER ; Labor[:SOAP_MAKING] = :SOAP_MAKER
|
|
ENUM[68] = :POTASH_MAKING ; NUME[:POTASH_MAKING] = 68 ; Caption[:POTASH_MAKING] = 'Potash Making' ; CaptionNoun[:POTASH_MAKING] = 'Potash Maker' ; Profession[:POTASH_MAKING] = :POTASH_MAKER ; Labor[:POTASH_MAKING] = :POTASH_MAKING
|
|
ENUM[69] = :DYER ; NUME[:DYER] = 69 ; Caption[:DYER] = 'Dyeing' ; CaptionNoun[:DYER] = 'Dyer' ; Profession[:DYER] = :DYER ; Labor[:DYER] = :DYER
|
|
ENUM[70] = :OPERATE_PUMP ; NUME[:OPERATE_PUMP] = 70 ; Caption[:OPERATE_PUMP] = 'Pump Operation' ; CaptionNoun[:OPERATE_PUMP] = 'Pump Operator' ; Profession[:OPERATE_PUMP] = :PUMP_OPERATOR ; Labor[:OPERATE_PUMP] = :OPERATE_PUMP
|
|
ENUM[71] = :SWIMMING ; NUME[:SWIMMING] = 71 ; Caption[:SWIMMING] = 'Swimming' ; CaptionNoun[:SWIMMING] = 'Swimmer' ; Type[:SWIMMING] = :Personal
|
|
ENUM[72] = :PERSUASION ; NUME[:PERSUASION] = 72 ; Caption[:PERSUASION] = 'Persuasion' ; CaptionNoun[:PERSUASION] = 'Persuader' ; Type[:PERSUASION] = :Social
|
|
ENUM[73] = :NEGOTIATION ; NUME[:NEGOTIATION] = 73 ; Caption[:NEGOTIATION] = 'Negotiation' ; CaptionNoun[:NEGOTIATION] = 'Negotiator' ; Type[:NEGOTIATION] = :Social
|
|
ENUM[74] = :JUDGING_INTENT ; NUME[:JUDGING_INTENT] = 74 ; Caption[:JUDGING_INTENT] = 'Judging Intent' ; CaptionNoun[:JUDGING_INTENT] = 'Judge of Intent' ; Type[:JUDGING_INTENT] = :Social
|
|
ENUM[75] = :APPRAISAL ; NUME[:APPRAISAL] = 75 ; Caption[:APPRAISAL] = 'Appraisal' ; CaptionNoun[:APPRAISAL] = 'Appraiser' ; Profession[:APPRAISAL] = :TRADER
|
|
ENUM[76] = :ORGANIZATION ; NUME[:ORGANIZATION] = 76 ; Caption[:ORGANIZATION] = 'Organization' ; CaptionNoun[:ORGANIZATION] = 'Organizer' ; Profession[:ORGANIZATION] = :ADMINISTRATOR
|
|
ENUM[77] = :RECORD_KEEPING ; NUME[:RECORD_KEEPING] = 77 ; Caption[:RECORD_KEEPING] = 'Record Keeping' ; CaptionNoun[:RECORD_KEEPING] = 'Record Keeper' ; Profession[:RECORD_KEEPING] = :CLERK
|
|
ENUM[78] = :LYING ; NUME[:LYING] = 78 ; Caption[:LYING] = 'Lying' ; CaptionNoun[:LYING] = 'Liar' ; Type[:LYING] = :Social
|
|
ENUM[79] = :INTIMIDATION ; NUME[:INTIMIDATION] = 79 ; Caption[:INTIMIDATION] = 'Intimidation' ; CaptionNoun[:INTIMIDATION] = 'Intimidator' ; Type[:INTIMIDATION] = :Social
|
|
ENUM[80] = :CONVERSATION ; NUME[:CONVERSATION] = 80 ; Caption[:CONVERSATION] = 'Conversation' ; CaptionNoun[:CONVERSATION] = 'Conversationalist' ; Type[:CONVERSATION] = :Social
|
|
ENUM[81] = :COMEDY ; NUME[:COMEDY] = 81 ; Caption[:COMEDY] = 'Comedy' ; CaptionNoun[:COMEDY] = 'Comedian' ; Type[:COMEDY] = :Social
|
|
ENUM[82] = :FLATTERY ; NUME[:FLATTERY] = 82 ; Caption[:FLATTERY] = 'Flattery' ; CaptionNoun[:FLATTERY] = 'Flatterer' ; Type[:FLATTERY] = :Social
|
|
ENUM[83] = :CONSOLE ; NUME[:CONSOLE] = 83 ; Caption[:CONSOLE] = 'Consoling' ; CaptionNoun[:CONSOLE] = 'Consoler' ; Type[:CONSOLE] = :Social
|
|
ENUM[84] = :PACIFY ; NUME[:PACIFY] = 84 ; Caption[:PACIFY] = 'Pacification' ; CaptionNoun[:PACIFY] = 'Pacifier' ; Type[:PACIFY] = :Social
|
|
ENUM[85] = :TRACKING ; NUME[:TRACKING] = 85 ; Caption[:TRACKING] = 'Tracking' ; CaptionNoun[:TRACKING] = 'Tracker' ; Type[:TRACKING] = :Personal
|
|
ENUM[86] = :KNOWLEDGE_ACQUISITION ; NUME[:KNOWLEDGE_ACQUISITION] = 86 ; Caption[:KNOWLEDGE_ACQUISITION] = 'Studying' ; CaptionNoun[:KNOWLEDGE_ACQUISITION] = 'Student' ; Type[:KNOWLEDGE_ACQUISITION] = :Social
|
|
ENUM[87] = :CONCENTRATION ; NUME[:CONCENTRATION] = 87 ; Caption[:CONCENTRATION] = 'Concentration' ; CaptionNoun[:CONCENTRATION] = 'Concentration' ; Type[:CONCENTRATION] = :Personal
|
|
ENUM[88] = :DISCIPLINE ; NUME[:DISCIPLINE] = 88 ; Caption[:DISCIPLINE] = 'Discipline' ; CaptionNoun[:DISCIPLINE] = 'Discipline' ; Type[:DISCIPLINE] = :Personal
|
|
ENUM[89] = :SITUATIONAL_AWARENESS ; NUME[:SITUATIONAL_AWARENESS] = 89 ; Caption[:SITUATIONAL_AWARENESS] = 'Observation' ; CaptionNoun[:SITUATIONAL_AWARENESS] = 'Observer' ; Type[:SITUATIONAL_AWARENESS] = :Personal
|
|
ENUM[90] = :WRITING ; NUME[:WRITING] = 90 ; Caption[:WRITING] = 'Writing' ; CaptionNoun[:WRITING] = 'Wordsmith' ; Type[:WRITING] = :Cultural
|
|
ENUM[91] = :PROSE ; NUME[:PROSE] = 91 ; Caption[:PROSE] = 'Prose' ; CaptionNoun[:PROSE] = 'Writer' ; Type[:PROSE] = :Cultural
|
|
ENUM[92] = :POETRY ; NUME[:POETRY] = 92 ; Caption[:POETRY] = 'Poetry' ; CaptionNoun[:POETRY] = 'Poet' ; Type[:POETRY] = :Cultural
|
|
ENUM[93] = :READING ; NUME[:READING] = 93 ; Caption[:READING] = 'Reading' ; CaptionNoun[:READING] = 'Reader' ; Type[:READING] = :Cultural
|
|
ENUM[94] = :SPEAKING ; NUME[:SPEAKING] = 94 ; Caption[:SPEAKING] = 'Speaking' ; CaptionNoun[:SPEAKING] = 'Speaker' ; Type[:SPEAKING] = :Cultural
|
|
ENUM[95] = :COORDINATION ; NUME[:COORDINATION] = 95 ; Caption[:COORDINATION] = 'Coordination' ; CaptionNoun[:COORDINATION] = 'Coordination' ; Type[:COORDINATION] = :Personal
|
|
ENUM[96] = :BALANCE ; NUME[:BALANCE] = 96 ; Caption[:BALANCE] = 'Balance' ; CaptionNoun[:BALANCE] = 'Balance' ; Type[:BALANCE] = :Personal
|
|
ENUM[97] = :LEADERSHIP ; NUME[:LEADERSHIP] = 97 ; Caption[:LEADERSHIP] = 'Leadership' ; CaptionNoun[:LEADERSHIP] = 'Leader' ; Type[:LEADERSHIP] = :Social
|
|
ENUM[98] = :TEACHING ; NUME[:TEACHING] = 98 ; Caption[:TEACHING] = 'Teaching' ; CaptionNoun[:TEACHING] = 'Teacher' ; Type[:TEACHING] = :Social
|
|
ENUM[99] = :MELEE_COMBAT ; NUME[:MELEE_COMBAT] = 99 ; Caption[:MELEE_COMBAT] = 'Fighting' ; CaptionNoun[:MELEE_COMBAT] = 'Fighter' ; Type[:MELEE_COMBAT] = :MilitaryAttack
|
|
ENUM[100] = :RANGED_COMBAT ; NUME[:RANGED_COMBAT] = 100 ; Caption[:RANGED_COMBAT] = 'Archery' ; CaptionNoun[:RANGED_COMBAT] = 'Archer' ; Type[:RANGED_COMBAT] = :MilitaryAttack
|
|
ENUM[101] = :WRESTLING ; NUME[:WRESTLING] = 101 ; Caption[:WRESTLING] = 'Wrestling' ; CaptionNoun[:WRESTLING] = 'Wrestler' ; Profession[:WRESTLING] = :WRESTLER ; Type[:WRESTLING] = :MilitaryWeapon
|
|
ENUM[102] = :BITE ; NUME[:BITE] = 102 ; Caption[:BITE] = 'Biting' ; CaptionNoun[:BITE] = 'Biter' ; Type[:BITE] = :MilitaryAttack
|
|
ENUM[103] = :GRASP_STRIKE ; NUME[:GRASP_STRIKE] = 103 ; Caption[:GRASP_STRIKE] = 'Striking' ; CaptionNoun[:GRASP_STRIKE] = 'Striker' ; Type[:GRASP_STRIKE] = :MilitaryAttack
|
|
ENUM[104] = :STANCE_STRIKE ; NUME[:STANCE_STRIKE] = 104 ; Caption[:STANCE_STRIKE] = 'Kicking' ; CaptionNoun[:STANCE_STRIKE] = 'Kicker' ; Type[:STANCE_STRIKE] = :MilitaryAttack
|
|
ENUM[105] = :DODGING ; NUME[:DODGING] = 105 ; Caption[:DODGING] = 'Dodging' ; CaptionNoun[:DODGING] = 'Dodger' ; Type[:DODGING] = :MilitaryDefense
|
|
ENUM[106] = :MISC_WEAPON ; NUME[:MISC_WEAPON] = 106 ; Caption[:MISC_WEAPON] = 'Misc. Object' ; CaptionNoun[:MISC_WEAPON] = 'Misc. Object User' ; Type[:MISC_WEAPON] = :MilitaryWeapon
|
|
ENUM[107] = :KNAPPING ; NUME[:KNAPPING] = 107 ; Caption[:KNAPPING] = 'Knapping' ; CaptionNoun[:KNAPPING] = 'Knapper' ; Type[:KNAPPING] = :MilitaryAttack
|
|
ENUM[108] = :MILITARY_TACTICS ; NUME[:MILITARY_TACTICS] = 108 ; Caption[:MILITARY_TACTICS] = 'Military Tactics' ; CaptionNoun[:MILITARY_TACTICS] = 'Military Tactics'
|
|
ENUM[109] = :SHEARING ; NUME[:SHEARING] = 109 ; Caption[:SHEARING] = 'Shearing' ; CaptionNoun[:SHEARING] = 'Shearer' ; Profession[:SHEARING] = :SHEARER ; Labor[:SHEARING] = :SHEARER
|
|
ENUM[110] = :SPINNING ; NUME[:SPINNING] = 110 ; Caption[:SPINNING] = 'Spinning' ; CaptionNoun[:SPINNING] = 'Spinner' ; Profession[:SPINNING] = :SPINNER ; Labor[:SPINNING] = :SPINNER
|
|
ENUM[111] = :POTTERY ; NUME[:POTTERY] = 111 ; Caption[:POTTERY] = 'Pottery' ; CaptionNoun[:POTTERY] = 'Potter' ; Profession[:POTTERY] = :POTTER ; Labor[:POTTERY] = :POTTERY
|
|
ENUM[112] = :GLAZING ; NUME[:GLAZING] = 112 ; Caption[:GLAZING] = 'Glazing' ; CaptionNoun[:GLAZING] = 'Glazer' ; Profession[:GLAZING] = :GLAZER ; Labor[:GLAZING] = :GLAZING
|
|
ENUM[113] = :PRESSING ; NUME[:PRESSING] = 113 ; Caption[:PRESSING] = 'Pressing' ; CaptionNoun[:PRESSING] = 'Presser' ; Profession[:PRESSING] = :PRESSER ; Labor[:PRESSING] = :PRESSING
|
|
ENUM[114] = :BEEKEEPING ; NUME[:BEEKEEPING] = 114 ; Caption[:BEEKEEPING] = 'Beekeeping' ; CaptionNoun[:BEEKEEPING] = 'Beekeeper' ; Profession[:BEEKEEPING] = :BEEKEEPER ; Labor[:BEEKEEPING] = :BEEKEEPING
|
|
ENUM[115] = :WAX_WORKING ; NUME[:WAX_WORKING] = 115 ; Caption[:WAX_WORKING] = 'Wax Working' ; CaptionNoun[:WAX_WORKING] = 'Wax Worker' ; Profession[:WAX_WORKING] = :WAX_WORKER ; Labor[:WAX_WORKING] = :WAX_WORKING
|
|
end
|
|
|
|
class JobSkillClass < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Normal ; NUME[:Normal] = 0
|
|
ENUM[1] = :Medical ; NUME[:Medical] = 1
|
|
ENUM[2] = :Personal ; NUME[:Personal] = 2
|
|
ENUM[3] = :Social ; NUME[:Social] = 3
|
|
ENUM[4] = :Cultural ; NUME[:Cultural] = 4
|
|
ENUM[5] = :MilitaryWeapon ; NUME[:MilitaryWeapon] = 5
|
|
ENUM[6] = :MilitaryAttack ; NUME[:MilitaryAttack] = 6
|
|
ENUM[7] = :MilitaryDefense ; NUME[:MilitaryDefense] = 7
|
|
ENUM[8] = :MilitaryMisc ; NUME[:MilitaryMisc] = 8
|
|
end
|
|
|
|
class JobType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Caption = Hash.new
|
|
Type = Hash.new(:Misc)
|
|
Labor = Hash.new(:NONE)
|
|
Item = Hash.new(:NONE)
|
|
PossibleItem = Hash.new { |h, k| h[k] = [] }
|
|
Material = Hash.new
|
|
Skill = Hash.new(:NONE)
|
|
SkillStone = Hash.new(:NONE)
|
|
SkillWood = Hash.new(:NONE)
|
|
SkillMetal = Hash.new(:NONE)
|
|
ENUM[0] = :CarveFortification ; NUME[:CarveFortification] = 0 ; Caption[:CarveFortification] = 'Carve Fortification' ; Type[:CarveFortification] = :Digging ; Skill[:CarveFortification] = :MINING
|
|
ENUM[1] = :DetailWall ; NUME[:DetailWall] = 1 ; Caption[:DetailWall] = 'Detail Wall' ; Type[:DetailWall] = :Building ; Skill[:DetailWall] = :DETAILSTONE
|
|
ENUM[2] = :DetailFloor ; NUME[:DetailFloor] = 2 ; Caption[:DetailFloor] = 'Detail Floor' ; Type[:DetailFloor] = :Building ; Skill[:DetailFloor] = :DETAILSTONE
|
|
ENUM[3] = :Dig ; NUME[:Dig] = 3 ; Caption[:Dig] = 'Dig' ; Type[:Dig] = :Digging ; Skill[:Dig] = :MINING
|
|
ENUM[4] = :CarveUpwardStaircase ; NUME[:CarveUpwardStaircase] = 4 ; Caption[:CarveUpwardStaircase] = 'Carve Upward Staircase' ; Type[:CarveUpwardStaircase] = :Digging ; Skill[:CarveUpwardStaircase] = :MINING
|
|
ENUM[5] = :CarveDownwardStaircase ; NUME[:CarveDownwardStaircase] = 5 ; Caption[:CarveDownwardStaircase] = 'Carve Downward Staircase' ; Type[:CarveDownwardStaircase] = :Digging ; Skill[:CarveDownwardStaircase] = :MINING
|
|
ENUM[6] = :CarveUpDownStaircase ; NUME[:CarveUpDownStaircase] = 6 ; Caption[:CarveUpDownStaircase] = 'Carve Up/Down Staircase' ; Type[:CarveUpDownStaircase] = :Digging ; Skill[:CarveUpDownStaircase] = :MINING
|
|
ENUM[7] = :CarveRamp ; NUME[:CarveRamp] = 7 ; Caption[:CarveRamp] = 'Carve Ramp' ; Type[:CarveRamp] = :Digging ; Skill[:CarveRamp] = :MINING
|
|
ENUM[8] = :DigChannel ; NUME[:DigChannel] = 8 ; Caption[:DigChannel] = 'Dig Channel' ; Type[:DigChannel] = :Digging ; Skill[:DigChannel] = :MINING
|
|
ENUM[9] = :FellTree ; NUME[:FellTree] = 9 ; Caption[:FellTree] = 'Fell Tree' ; Type[:FellTree] = :Gathering ; Skill[:FellTree] = :WOODCUTTING ; Item[:FellTree] = :WOOD
|
|
ENUM[10] = :GatherPlants ; NUME[:GatherPlants] = 10 ; Caption[:GatherPlants] = 'Gather Plants' ; Type[:GatherPlants] = :Gathering ; Skill[:GatherPlants] = :HERBALISM ; Item[:GatherPlants] = :PLANT
|
|
ENUM[11] = :RemoveConstruction ; NUME[:RemoveConstruction] = 11 ; Caption[:RemoveConstruction] = 'Remove Construction' ; Type[:RemoveConstruction] = :Building
|
|
ENUM[12] = :CollectWebs ; NUME[:CollectWebs] = 12 ; Caption[:CollectWebs] = 'Collect Webs' ; Type[:CollectWebs] = :Gathering ; Skill[:CollectWebs] = :WEAVING ; Item[:CollectWebs] = :THREAD
|
|
ENUM[13] = :BringItemToDepot ; NUME[:BringItemToDepot] = 13 ; Caption[:BringItemToDepot] = 'Bring Item to Depot' ; Type[:BringItemToDepot] = :Hauling ; Labor[:BringItemToDepot] = :HAUL_ITEM
|
|
ENUM[14] = :BringItemToShop ; NUME[:BringItemToShop] = 14 ; Caption[:BringItemToShop] = 'Bring Item to Shop' ; Type[:BringItemToShop] = :Hauling ; Labor[:BringItemToShop] = :HAUL_ITEM
|
|
ENUM[15] = :Eat ; NUME[:Eat] = 15 ; Caption[:Eat] = 'Eat' ; Type[:Eat] = :LifeSupport
|
|
ENUM[16] = :GetProvisions ; NUME[:GetProvisions] = 16 ; Caption[:GetProvisions] = 'Get Provisions' ; Type[:GetProvisions] = :LifeSupport
|
|
ENUM[17] = :Drink ; NUME[:Drink] = 17 ; Caption[:Drink] = 'Drink' ; Type[:Drink] = :LifeSupport
|
|
ENUM[18] = :Drink2 ; NUME[:Drink2] = 18 ; Caption[:Drink2] = 'Drink' ; Type[:Drink2] = :LifeSupport
|
|
ENUM[19] = :FillWaterskin ; NUME[:FillWaterskin] = 19 ; Caption[:FillWaterskin] = 'Fill Waterskin' ; Type[:FillWaterskin] = :LifeSupport
|
|
ENUM[20] = :FillWaterskin2 ; NUME[:FillWaterskin2] = 20 ; Caption[:FillWaterskin2] = 'Fill Waterskin' ; Type[:FillWaterskin2] = :LifeSupport
|
|
ENUM[21] = :Sleep ; NUME[:Sleep] = 21 ; Caption[:Sleep] = 'Sleep' ; Type[:Sleep] = :LifeSupport
|
|
ENUM[22] = :CollectSand ; NUME[:CollectSand] = 22 ; Caption[:CollectSand] = 'Collect Sand' ; Type[:CollectSand] = :Gathering ; Labor[:CollectSand] = :HAUL_ITEM ; Item[:CollectSand] = :POWDER_MISC ; Material[:CollectSand] = 'sand'
|
|
ENUM[23] = :Fish ; NUME[:Fish] = 23 ; Caption[:Fish] = 'Fish' ; Type[:Fish] = :Gathering ; Skill[:Fish] = :FISH ; Item[:Fish] = :FISH_RAW
|
|
ENUM[24] = :Hunt ; NUME[:Hunt] = 24 ; Caption[:Hunt] = 'Hunt' ; Type[:Hunt] = :Gathering ; Skill[:Hunt] = :SNEAK ; Item[:Hunt] = :CORPSE
|
|
ENUM[25] = :HuntVermin ; NUME[:HuntVermin] = 25 ; Caption[:HuntVermin] = 'Hunt for Small Creature' ; Type[:HuntVermin] = :Gathering ; Skill[:HuntVermin] = :TRAPPING ; Item[:HuntVermin] = :REMAINS
|
|
ENUM[26] = :Kidnap ; NUME[:Kidnap] = 26 ; Caption[:Kidnap] = 'Kidnap' ; Type[:Kidnap] = :Crime
|
|
ENUM[27] = :BeatCriminal ; NUME[:BeatCriminal] = 27 ; Caption[:BeatCriminal] = 'Beat Criminal' ; Type[:BeatCriminal] = :LawEnforcement
|
|
ENUM[28] = :StartingFistFight ; NUME[:StartingFistFight] = 28 ; Caption[:StartingFistFight] = 'Starting Fist Fight' ; Type[:StartingFistFight] = :Crime
|
|
ENUM[29] = :CollectTaxes ; NUME[:CollectTaxes] = 29 ; Caption[:CollectTaxes] = 'Collect Taxes' ; Type[:CollectTaxes] = :LawEnforcement
|
|
ENUM[30] = :GuardTaxCollector ; NUME[:GuardTaxCollector] = 30 ; Caption[:GuardTaxCollector] = 'Guard Tax Collector' ; Type[:GuardTaxCollector] = :LawEnforcement
|
|
ENUM[31] = :CatchLiveLandAnimal ; NUME[:CatchLiveLandAnimal] = 31 ; Caption[:CatchLiveLandAnimal] = 'Catch Live Land Animal' ; Type[:CatchLiveLandAnimal] = :Gathering ; Skill[:CatchLiveLandAnimal] = :TRAPPING ; Item[:CatchLiveLandAnimal] = :VERMIN
|
|
ENUM[32] = :CatchLiveFish ; NUME[:CatchLiveFish] = 32 ; Caption[:CatchLiveFish] = 'Catch Live Fish' ; Type[:CatchLiveFish] = :Gathering ; Skill[:CatchLiveFish] = :FISH ; Item[:CatchLiveFish] = :VERMIN
|
|
ENUM[33] = :ReturnKill ; NUME[:ReturnKill] = 33 ; Caption[:ReturnKill] = 'Return Kill' ; Type[:ReturnKill] = :Hauling
|
|
ENUM[34] = :CheckChest ; NUME[:CheckChest] = 34 ; Caption[:CheckChest] = 'Check Chest' ; Type[:CheckChest] = :TidyUp
|
|
ENUM[35] = :StoreOwnedItem ; NUME[:StoreOwnedItem] = 35 ; Caption[:StoreOwnedItem] = 'Store Owned Item' ; Type[:StoreOwnedItem] = :TidyUp
|
|
ENUM[36] = :PlaceItemInTomb ; NUME[:PlaceItemInTomb] = 36 ; Caption[:PlaceItemInTomb] = 'Place Item in Tomb' ; Type[:PlaceItemInTomb] = :Hauling ; Labor[:PlaceItemInTomb] = :HAUL_BODY
|
|
ENUM[37] = :StoreItemInStockpile ; NUME[:StoreItemInStockpile] = 37 ; Caption[:StoreItemInStockpile] = 'Store Item in Stockpile' ; Type[:StoreItemInStockpile] = :Hauling
|
|
ENUM[38] = :StoreItemInBag ; NUME[:StoreItemInBag] = 38 ; Caption[:StoreItemInBag] = 'Store Item in Bag' ; Type[:StoreItemInBag] = :Hauling
|
|
ENUM[39] = :StoreItemInHospital ; NUME[:StoreItemInHospital] = 39 ; Caption[:StoreItemInHospital] = 'Store Item in Hospital' ; Type[:StoreItemInHospital] = :Hauling
|
|
ENUM[40] = :StoreItemInChest ; NUME[:StoreItemInChest] = 40 ; Caption[:StoreItemInChest] = 'Store Item in Chest' ; Type[:StoreItemInChest] = :Hauling
|
|
ENUM[41] = :StoreItemInCabinet ; NUME[:StoreItemInCabinet] = 41 ; Caption[:StoreItemInCabinet] = 'Store Item in Cabinet' ; Type[:StoreItemInCabinet] = :Hauling
|
|
ENUM[42] = :StoreWeapon ; NUME[:StoreWeapon] = 42 ; Caption[:StoreWeapon] = 'Store Weapon' ; Type[:StoreWeapon] = :Hauling
|
|
ENUM[43] = :StoreArmor ; NUME[:StoreArmor] = 43 ; Caption[:StoreArmor] = 'Store Armor' ; Type[:StoreArmor] = :Hauling
|
|
ENUM[44] = :StoreItemInBarrel ; NUME[:StoreItemInBarrel] = 44 ; Caption[:StoreItemInBarrel] = 'Store Item in Barrel' ; Type[:StoreItemInBarrel] = :Hauling
|
|
ENUM[45] = :StoreItemInBin ; NUME[:StoreItemInBin] = 45 ; Caption[:StoreItemInBin] = 'Store Item in Bin' ; Type[:StoreItemInBin] = :Hauling
|
|
ENUM[46] = :SeekArtifact ; NUME[:SeekArtifact] = 46 ; Caption[:SeekArtifact] = 'Seek Artifact'
|
|
ENUM[47] = :SeekInfant ; NUME[:SeekInfant] = 47 ; Caption[:SeekInfant] = 'Seek Infant' ; Type[:SeekInfant] = :LifeSupport
|
|
ENUM[48] = :AttendParty ; NUME[:AttendParty] = 48 ; Caption[:AttendParty] = 'Attend Party' ; Type[:AttendParty] = :Leisure
|
|
ENUM[49] = :GoShopping ; NUME[:GoShopping] = 49 ; Caption[:GoShopping] = 'Go Shopping' ; Type[:GoShopping] = :LifeSupport
|
|
ENUM[50] = :GoShopping2 ; NUME[:GoShopping2] = 50 ; Caption[:GoShopping2] = 'Go Shopping' ; Type[:GoShopping2] = :LifeSupport
|
|
ENUM[51] = :Clean ; NUME[:Clean] = 51 ; Caption[:Clean] = 'Clean' ; Type[:Clean] = :TidyUp
|
|
ENUM[52] = :Rest ; NUME[:Rest] = 52 ; Caption[:Rest] = 'Rest' ; Type[:Rest] = :Leisure
|
|
ENUM[53] = :PickupEquipment ; NUME[:PickupEquipment] = 53 ; Caption[:PickupEquipment] = 'Pickup Equipment' ; Type[:PickupEquipment] = :LifeSupport
|
|
ENUM[54] = :DumpItem ; NUME[:DumpItem] = 54 ; Caption[:DumpItem] = 'Dump Item' ; Type[:DumpItem] = :Hauling ; Labor[:DumpItem] = :HAUL_REFUSE
|
|
ENUM[55] = :StrangeMoodCrafter ; NUME[:StrangeMoodCrafter] = 55 ; Caption[:StrangeMoodCrafter] = 'Strange Mood (Crafter)' ; Type[:StrangeMoodCrafter] = :StrangeMood
|
|
ENUM[56] = :StrangeMoodJeweller ; NUME[:StrangeMoodJeweller] = 56 ; Caption[:StrangeMoodJeweller] = 'Strange Mood (Jeweller)' ; Type[:StrangeMoodJeweller] = :StrangeMood
|
|
ENUM[57] = :StrangeMoodForge ; NUME[:StrangeMoodForge] = 57 ; Caption[:StrangeMoodForge] = 'Strange Mood (Forge)' ; Type[:StrangeMoodForge] = :StrangeMood
|
|
ENUM[58] = :StrangeMoodMagmaForge ; NUME[:StrangeMoodMagmaForge] = 58 ; Caption[:StrangeMoodMagmaForge] = 'Strange Mood (Magma Forge)' ; Type[:StrangeMoodMagmaForge] = :StrangeMood
|
|
ENUM[59] = :StrangeMoodBrooding ; NUME[:StrangeMoodBrooding] = 59 ; Caption[:StrangeMoodBrooding] = 'Strange Mood (Brooding)' ; Type[:StrangeMoodBrooding] = :StrangeMood
|
|
ENUM[60] = :StrangeMoodFell ; NUME[:StrangeMoodFell] = 60 ; Caption[:StrangeMoodFell] = 'Strange Mood (Fell)' ; Type[:StrangeMoodFell] = :StrangeMood
|
|
ENUM[61] = :StrangeMoodCarpenter ; NUME[:StrangeMoodCarpenter] = 61 ; Caption[:StrangeMoodCarpenter] = 'Strange Mood (Carpenter)' ; Type[:StrangeMoodCarpenter] = :StrangeMood
|
|
ENUM[62] = :StrangeMoodMason ; NUME[:StrangeMoodMason] = 62 ; Caption[:StrangeMoodMason] = 'Strange Mood (Mason)' ; Type[:StrangeMoodMason] = :StrangeMood
|
|
ENUM[63] = :StrangeMoodBowyer ; NUME[:StrangeMoodBowyer] = 63 ; Caption[:StrangeMoodBowyer] = 'Strange Mood (Bowyer)' ; Type[:StrangeMoodBowyer] = :StrangeMood
|
|
ENUM[64] = :StrangeMoodTanner ; NUME[:StrangeMoodTanner] = 64 ; Caption[:StrangeMoodTanner] = 'Strange Mood (Leather)' ; Type[:StrangeMoodTanner] = :StrangeMood
|
|
ENUM[65] = :StrangeMoodWeaver ; NUME[:StrangeMoodWeaver] = 65 ; Caption[:StrangeMoodWeaver] = 'Strange Mood (Clothier)' ; Type[:StrangeMoodWeaver] = :StrangeMood
|
|
ENUM[66] = :StrangeMoodGlassmaker ; NUME[:StrangeMoodGlassmaker] = 66 ; Caption[:StrangeMoodGlassmaker] = 'Strange Mood (Glassmaker)' ; Type[:StrangeMoodGlassmaker] = :StrangeMood
|
|
ENUM[67] = :StrangeMoodMechanics ; NUME[:StrangeMoodMechanics] = 67 ; Caption[:StrangeMoodMechanics] = 'Strange Mood (Mechanics)' ; Type[:StrangeMoodMechanics] = :StrangeMood
|
|
ENUM[68] = :ConstructBuilding ; NUME[:ConstructBuilding] = 68 ; Caption[:ConstructBuilding] = 'Construct Building' ; Type[:ConstructBuilding] = :Building
|
|
ENUM[69] = :ConstructDoor ; NUME[:ConstructDoor] = 69 ; Caption[:ConstructDoor] = 'Construct Door' ; Type[:ConstructDoor] = :Manufacture ; Item[:ConstructDoor] = :DOOR
|
|
ENUM[70] = :ConstructFloodgate ; NUME[:ConstructFloodgate] = 70 ; Caption[:ConstructFloodgate] = 'Construct Floodgate' ; Type[:ConstructFloodgate] = :Manufacture ; Item[:ConstructFloodgate] = :FLOODGATE
|
|
ENUM[71] = :ConstructBed ; NUME[:ConstructBed] = 71 ; Caption[:ConstructBed] = 'Construct Bed' ; Type[:ConstructBed] = :Manufacture ; Item[:ConstructBed] = :BED
|
|
ENUM[72] = :ConstructThrone ; NUME[:ConstructThrone] = 72 ; Caption[:ConstructThrone] = 'Construct Throne' ; Type[:ConstructThrone] = :Manufacture ; Item[:ConstructThrone] = :CHAIR
|
|
ENUM[73] = :ConstructCoffin ; NUME[:ConstructCoffin] = 73 ; Caption[:ConstructCoffin] = 'Construct Coffin' ; Type[:ConstructCoffin] = :Manufacture ; Item[:ConstructCoffin] = :COFFIN
|
|
ENUM[74] = :ConstructTable ; NUME[:ConstructTable] = 74 ; Caption[:ConstructTable] = 'Construct Table' ; Type[:ConstructTable] = :Manufacture ; Item[:ConstructTable] = :TABLE
|
|
ENUM[75] = :ConstructChest ; NUME[:ConstructChest] = 75 ; Caption[:ConstructChest] = 'Construct Chest' ; Type[:ConstructChest] = :Manufacture ; Item[:ConstructChest] = :BOX
|
|
ENUM[76] = :ConstructBin ; NUME[:ConstructBin] = 76 ; Caption[:ConstructBin] = 'Construct Bin' ; Type[:ConstructBin] = :Manufacture ; Item[:ConstructBin] = :BIN
|
|
ENUM[77] = :ConstructArmorStand ; NUME[:ConstructArmorStand] = 77 ; Caption[:ConstructArmorStand] = 'Construct Armor Stand' ; Type[:ConstructArmorStand] = :Manufacture ; Item[:ConstructArmorStand] = :ARMORSTAND
|
|
ENUM[78] = :ConstructWeaponRack ; NUME[:ConstructWeaponRack] = 78 ; Caption[:ConstructWeaponRack] = 'Construct Weapon Rack' ; Type[:ConstructWeaponRack] = :Manufacture ; Item[:ConstructWeaponRack] = :WEAPONRACK
|
|
ENUM[79] = :ConstructCabinet ; NUME[:ConstructCabinet] = 79 ; Caption[:ConstructCabinet] = 'Construct Cabinet' ; Type[:ConstructCabinet] = :Manufacture ; Item[:ConstructCabinet] = :CABINET
|
|
ENUM[80] = :ConstructStatue ; NUME[:ConstructStatue] = 80 ; Caption[:ConstructStatue] = 'Construct Statue' ; Type[:ConstructStatue] = :Manufacture ; Item[:ConstructStatue] = :STATUE
|
|
ENUM[81] = :ConstructBlocks ; NUME[:ConstructBlocks] = 81 ; Caption[:ConstructBlocks] = 'Construct Blocks' ; Type[:ConstructBlocks] = :Manufacture ; Item[:ConstructBlocks] = :BLOCKS
|
|
ENUM[82] = :MakeRawGlass ; NUME[:MakeRawGlass] = 82 ; Caption[:MakeRawGlass] = 'Make Raw Glass' ; Type[:MakeRawGlass] = :Manufacture ; Item[:MakeRawGlass] = :ROUGH ; Skill[:MakeRawGlass] = :GLASSMAKER
|
|
ENUM[83] = :MakeCrafts ; NUME[:MakeCrafts] = 83 ; Caption[:MakeCrafts] = 'Make Crafts' ; Type[:MakeCrafts] = :Manufacture ; SkillWood[:MakeCrafts] = :WOODCRAFT ; SkillStone[:MakeCrafts] = :STONECRAFT ; SkillMetal[:MakeCrafts] = :METALCRAFT ; PossibleItem[:MakeCrafts] << :FIGURINE ; PossibleItem[:MakeCrafts] << :RING ; PossibleItem[:MakeCrafts] << :EARRING ; PossibleItem[:MakeCrafts] << :CROWN ; PossibleItem[:MakeCrafts] << :BRACELET ; PossibleItem[:MakeCrafts] << :SCEPTER
|
|
ENUM[84] = :MintCoins ; NUME[:MintCoins] = 84 ; Caption[:MintCoins] = 'Mint Coins' ; Type[:MintCoins] = :Manufacture ; Item[:MintCoins] = :COIN ; SkillMetal[:MintCoins] = :METALCRAFT
|
|
ENUM[85] = :CutGems ; NUME[:CutGems] = 85 ; Caption[:CutGems] = 'Cut Gems' ; Type[:CutGems] = :Manufacture ; Item[:CutGems] = :SMALLGEM ; Skill[:CutGems] = :CUTGEM
|
|
ENUM[86] = :CutGlass ; NUME[:CutGlass] = 86 ; Caption[:CutGlass] = 'Cut Glass' ; Type[:CutGlass] = :Manufacture ; Item[:CutGlass] = :SMALLGEM ; Skill[:CutGlass] = :CUTGEM
|
|
ENUM[87] = :EncrustWithGems ; NUME[:EncrustWithGems] = 87 ; Caption[:EncrustWithGems] = 'Encrust With Gems' ; Type[:EncrustWithGems] = :Improvement ; Skill[:EncrustWithGems] = :ENCRUSTGEM
|
|
ENUM[88] = :EncrustWithGlass ; NUME[:EncrustWithGlass] = 88 ; Caption[:EncrustWithGlass] = 'Encrust With Glass' ; Type[:EncrustWithGlass] = :Improvement ; Skill[:EncrustWithGlass] = :ENCRUSTGEM
|
|
ENUM[89] = :DestroyBuilding ; NUME[:DestroyBuilding] = 89 ; Caption[:DestroyBuilding] = 'Destroy Building' ; Type[:DestroyBuilding] = :Building
|
|
ENUM[90] = :SmeltOre ; NUME[:SmeltOre] = 90 ; Caption[:SmeltOre] = 'Smelt Ore' ; Type[:SmeltOre] = :Manufacture ; Item[:SmeltOre] = :BAR ; Skill[:SmeltOre] = :SMELT
|
|
ENUM[91] = :MeltMetalObject ; NUME[:MeltMetalObject] = 91 ; Caption[:MeltMetalObject] = 'Melt a Metal Object' ; Type[:MeltMetalObject] = :Manufacture ; Item[:MeltMetalObject] = :BAR ; Skill[:MeltMetalObject] = :SMELT
|
|
ENUM[92] = :ExtractMetalStrands ; NUME[:ExtractMetalStrands] = 92 ; Caption[:ExtractMetalStrands] = 'Extract Metal Strands' ; Type[:ExtractMetalStrands] = :Manufacture ; Item[:ExtractMetalStrands] = :THREAD ; Skill[:ExtractMetalStrands] = :EXTRACT_STRAND
|
|
ENUM[93] = :PlantSeeds ; NUME[:PlantSeeds] = 93 ; Caption[:PlantSeeds] = 'Plant Seeds' ; Type[:PlantSeeds] = :Gathering ; Skill[:PlantSeeds] = :PLANT
|
|
ENUM[94] = :HarvestPlants ; NUME[:HarvestPlants] = 94 ; Caption[:HarvestPlants] = 'Harvest Plants' ; Type[:HarvestPlants] = :Gathering ; Skill[:HarvestPlants] = :PLANT ; Item[:HarvestPlants] = :PLANT
|
|
ENUM[95] = :TrainHuntingAnimal ; NUME[:TrainHuntingAnimal] = 95 ; Caption[:TrainHuntingAnimal] = 'Train Hunting Animal' ; Type[:TrainHuntingAnimal] = :UnitHandling ; Skill[:TrainHuntingAnimal] = :ANIMALTRAIN
|
|
ENUM[96] = :TrainWarAnimal ; NUME[:TrainWarAnimal] = 96 ; Caption[:TrainWarAnimal] = 'Train War Animal' ; Type[:TrainWarAnimal] = :UnitHandling ; Skill[:TrainWarAnimal] = :ANIMALTRAIN
|
|
ENUM[97] = :MakeWeapon ; NUME[:MakeWeapon] = 97 ; Caption[:MakeWeapon] = 'Forge Weapon' ; Type[:MakeWeapon] = :Manufacture ; Item[:MakeWeapon] = :WEAPON ; SkillMetal[:MakeWeapon] = :FORGE_WEAPON
|
|
ENUM[98] = :ForgeAnvil ; NUME[:ForgeAnvil] = 98 ; Caption[:ForgeAnvil] = 'Forge Anvil' ; Type[:ForgeAnvil] = :Manufacture ; Item[:ForgeAnvil] = :ANVIL
|
|
ENUM[99] = :ConstructCatapultParts ; NUME[:ConstructCatapultParts] = 99 ; Caption[:ConstructCatapultParts] = 'Construct Catapult Parts' ; Type[:ConstructCatapultParts] = :Manufacture ; Item[:ConstructCatapultParts] = :CATAPULTPARTS ; Skill[:ConstructCatapultParts] = :SIEGECRAFT
|
|
ENUM[100] = :ConstructBallistaParts ; NUME[:ConstructBallistaParts] = 100 ; Caption[:ConstructBallistaParts] = 'Construct Ballista Parts' ; Type[:ConstructBallistaParts] = :Manufacture ; Item[:ConstructBallistaParts] = :BALLISTAPARTS ; Skill[:ConstructBallistaParts] = :SIEGECRAFT
|
|
ENUM[101] = :MakeArmor ; NUME[:MakeArmor] = 101 ; Caption[:MakeArmor] = 'Make Armor' ; Type[:MakeArmor] = :Manufacture ; Item[:MakeArmor] = :ARMOR ; SkillMetal[:MakeArmor] = :FORGE_ARMOR
|
|
ENUM[102] = :MakeHelm ; NUME[:MakeHelm] = 102 ; Caption[:MakeHelm] = 'Forge Helm' ; Type[:MakeHelm] = :Manufacture ; Item[:MakeHelm] = :HELM ; SkillMetal[:MakeHelm] = :FORGE_ARMOR
|
|
ENUM[103] = :MakePants ; NUME[:MakePants] = 103 ; Caption[:MakePants] = 'Make Pants' ; Type[:MakePants] = :Manufacture ; Item[:MakePants] = :PANTS ; SkillMetal[:MakePants] = :FORGE_ARMOR
|
|
ENUM[104] = :StudWith ; NUME[:StudWith] = 104 ; Caption[:StudWith] = 'Stud With' ; Type[:StudWith] = :Improvement
|
|
ENUM[105] = :ButcherAnimal ; NUME[:ButcherAnimal] = 105 ; Caption[:ButcherAnimal] = 'Butcher an Animal' ; Type[:ButcherAnimal] = :Manufacture ; Skill[:ButcherAnimal] = :BUTCHER ; PossibleItem[:ButcherAnimal] << :MEAT ; PossibleItem[:ButcherAnimal] << :CORPSEPIECE ; PossibleItem[:ButcherAnimal] << :GLOB
|
|
ENUM[106] = :PrepareRawFish ; NUME[:PrepareRawFish] = 106 ; Caption[:PrepareRawFish] = 'Prepare a Raw Fish' ; Type[:PrepareRawFish] = :Manufacture ; Item[:PrepareRawFish] = :FISH ; Skill[:PrepareRawFish] = :PROCESSFISH
|
|
ENUM[107] = :MillPlants ; NUME[:MillPlants] = 107 ; Caption[:MillPlants] = 'Mill Plants' ; Type[:MillPlants] = :Manufacture ; Item[:MillPlants] = :POWDER_MISC ; Skill[:MillPlants] = :MILLING
|
|
ENUM[108] = :BaitTrap ; NUME[:BaitTrap] = 108 ; Caption[:BaitTrap] = 'Bait Trap' ; Type[:BaitTrap] = :Hauling ; Skill[:BaitTrap] = :TRAPPING
|
|
ENUM[109] = :MilkCreature ; NUME[:MilkCreature] = 109 ; Caption[:MilkCreature] = 'Milk Creature' ; Type[:MilkCreature] = :Gathering ; Item[:MilkCreature] = :LIQUID_MISC ; Skill[:MilkCreature] = :MILK
|
|
ENUM[110] = :MakeCheese ; NUME[:MakeCheese] = 110 ; Caption[:MakeCheese] = 'Make Cheese' ; Type[:MakeCheese] = :Manufacture ; Item[:MakeCheese] = :CHEESE ; Skill[:MakeCheese] = :CHEESEMAKING
|
|
ENUM[111] = :ProcessPlants ; NUME[:ProcessPlants] = 111 ; Caption[:ProcessPlants] = 'Process Plants' ; Type[:ProcessPlants] = :Manufacture ; Item[:ProcessPlants] = :THREAD ; Skill[:ProcessPlants] = :PROCESSPLANTS
|
|
ENUM[112] = :ProcessPlantsBag ; NUME[:ProcessPlantsBag] = 112 ; Caption[:ProcessPlantsBag] = 'Process Plants (Bag)' ; Type[:ProcessPlantsBag] = :Manufacture ; Item[:ProcessPlantsBag] = :LEAVES ; Skill[:ProcessPlantsBag] = :PROCESSPLANTS
|
|
ENUM[113] = :ProcessPlantsVial ; NUME[:ProcessPlantsVial] = 113 ; Caption[:ProcessPlantsVial] = 'Process Plants (Vial)' ; Type[:ProcessPlantsVial] = :Manufacture ; Item[:ProcessPlantsVial] = :LIQUID_MISC ; Skill[:ProcessPlantsVial] = :PROCESSPLANTS
|
|
ENUM[114] = :ProcessPlantsBarrel ; NUME[:ProcessPlantsBarrel] = 114 ; Caption[:ProcessPlantsBarrel] = 'Process Plants (Barrel)' ; Type[:ProcessPlantsBarrel] = :Manufacture ; Item[:ProcessPlantsBarrel] = :LIQUID_MISC ; Skill[:ProcessPlantsBarrel] = :PROCESSPLANTS
|
|
ENUM[115] = :PrepareMeal ; NUME[:PrepareMeal] = 115 ; Caption[:PrepareMeal] = 'Prepare Meal' ; Type[:PrepareMeal] = :Manufacture ; Item[:PrepareMeal] = :FOOD ; Skill[:PrepareMeal] = :COOK
|
|
ENUM[116] = :WeaveCloth ; NUME[:WeaveCloth] = 116 ; Caption[:WeaveCloth] = 'Weave Cloth' ; Type[:WeaveCloth] = :Manufacture ; Item[:WeaveCloth] = :CLOTH ; Skill[:WeaveCloth] = :WEAVING
|
|
ENUM[117] = :MakeGloves ; NUME[:MakeGloves] = 117 ; Caption[:MakeGloves] = 'Make Gloves' ; Type[:MakeGloves] = :Manufacture ; Item[:MakeGloves] = :GLOVES ; SkillMetal[:MakeGloves] = :FORGE_ARMOR
|
|
ENUM[118] = :MakeShoes ; NUME[:MakeShoes] = 118 ; Caption[:MakeShoes] = 'Make Shoes' ; Type[:MakeShoes] = :Manufacture ; Item[:MakeShoes] = :SHOES ; SkillMetal[:MakeShoes] = :FORGE_ARMOR
|
|
ENUM[119] = :MakeShield ; NUME[:MakeShield] = 119 ; Caption[:MakeShield] = 'Make Shield' ; Item[:MakeShield] = :SHIELD ; SkillMetal[:MakeShield] = :FORGE_ARMOR
|
|
ENUM[120] = :MakeCage ; NUME[:MakeCage] = 120 ; Caption[:MakeCage] = 'Make Cage' ; Type[:MakeCage] = :Manufacture ; Item[:MakeCage] = :CAGE
|
|
ENUM[121] = :MakeChain ; NUME[:MakeChain] = 121 ; Caption[:MakeChain] = 'Make Chain' ; Type[:MakeChain] = :Manufacture ; Item[:MakeChain] = :CHAIN ; SkillMetal[:MakeChain] = :METALCRAFT
|
|
ENUM[122] = :MakeFlask ; NUME[:MakeFlask] = 122 ; Caption[:MakeFlask] = 'Make Flask' ; Type[:MakeFlask] = :Manufacture ; Item[:MakeFlask] = :FLASK ; SkillMetal[:MakeFlask] = :METALCRAFT
|
|
ENUM[123] = :MakeGoblet ; NUME[:MakeGoblet] = 123 ; Caption[:MakeGoblet] = 'Make Goblet' ; Type[:MakeGoblet] = :Manufacture ; Item[:MakeGoblet] = :GOBLET ; SkillWood[:MakeGoblet] = :WOODCRAFT ; SkillStone[:MakeGoblet] = :STONECRAFT ; SkillMetal[:MakeGoblet] = :METALCRAFT
|
|
ENUM[124] = :MakeInstrument ; NUME[:MakeInstrument] = 124 ; Caption[:MakeInstrument] = 'Make Instrument' ; Type[:MakeInstrument] = :Manufacture ; Item[:MakeInstrument] = :INSTRUMENT ; SkillWood[:MakeInstrument] = :WOODCRAFT ; SkillStone[:MakeInstrument] = :STONECRAFT ; SkillMetal[:MakeInstrument] = :METALCRAFT
|
|
ENUM[125] = :MakeToy ; NUME[:MakeToy] = 125 ; Caption[:MakeToy] = 'Make Toy' ; Type[:MakeToy] = :Manufacture ; Item[:MakeToy] = :TOY ; SkillWood[:MakeToy] = :WOODCRAFT ; SkillStone[:MakeToy] = :STONECRAFT ; SkillMetal[:MakeToy] = :METALCRAFT
|
|
ENUM[126] = :MakeAnimalTrap ; NUME[:MakeAnimalTrap] = 126 ; Caption[:MakeAnimalTrap] = 'Make Animal Trap' ; Type[:MakeAnimalTrap] = :Manufacture ; Item[:MakeAnimalTrap] = :ANIMALTRAP ; Skill[:MakeAnimalTrap] = :TRAPPING
|
|
ENUM[127] = :MakeBarrel ; NUME[:MakeBarrel] = 127 ; Caption[:MakeBarrel] = 'Make Barrel' ; Type[:MakeBarrel] = :Manufacture ; Item[:MakeBarrel] = :BARREL
|
|
ENUM[128] = :MakeBucket ; NUME[:MakeBucket] = 128 ; Caption[:MakeBucket] = 'Make Bucket' ; Type[:MakeBucket] = :Manufacture ; Item[:MakeBucket] = :BUCKET
|
|
ENUM[129] = :MakeWindow ; NUME[:MakeWindow] = 129 ; Caption[:MakeWindow] = 'Make Window' ; Type[:MakeWindow] = :Manufacture ; Item[:MakeWindow] = :WINDOW
|
|
ENUM[130] = :MakeTotem ; NUME[:MakeTotem] = 130 ; Caption[:MakeTotem] = 'Make Totem' ; Type[:MakeTotem] = :Manufacture ; Skill[:MakeTotem] = :BONECARVE ; Item[:MakeTotem] = :TOTEM
|
|
ENUM[131] = :MakeAmmo ; NUME[:MakeAmmo] = 131 ; Caption[:MakeAmmo] = 'Make Ammo' ; Type[:MakeAmmo] = :Manufacture ; Item[:MakeAmmo] = :AMMO ; SkillWood[:MakeAmmo] = :WOODCRAFT ; SkillStone[:MakeAmmo] = :STONECRAFT ; SkillMetal[:MakeAmmo] = :FORGE_WEAPON
|
|
ENUM[132] = :DecorateWith ; NUME[:DecorateWith] = 132 ; Caption[:DecorateWith] = 'Decorate With' ; Type[:DecorateWith] = :Improvement
|
|
ENUM[133] = :MakeBackpack ; NUME[:MakeBackpack] = 133 ; Caption[:MakeBackpack] = 'Make Backpack' ; Type[:MakeBackpack] = :Manufacture ; Item[:MakeBackpack] = :BACKPACK
|
|
ENUM[134] = :MakeQuiver ; NUME[:MakeQuiver] = 134 ; Caption[:MakeQuiver] = 'Make Quiver' ; Type[:MakeQuiver] = :Manufacture ; Item[:MakeQuiver] = :QUIVER
|
|
ENUM[135] = :MakeBallistaArrowHead ; NUME[:MakeBallistaArrowHead] = 135 ; Caption[:MakeBallistaArrowHead] = 'Make Ballista Arrow Head' ; Type[:MakeBallistaArrowHead] = :Manufacture ; Item[:MakeBallistaArrowHead] = :BALLISTAARROWHEAD ; SkillMetal[:MakeBallistaArrowHead] = :FORGE_WEAPON
|
|
ENUM[136] = :AssembleSiegeAmmo ; NUME[:AssembleSiegeAmmo] = 136 ; Caption[:AssembleSiegeAmmo] = 'Assemble Siege Ammo' ; Type[:AssembleSiegeAmmo] = :Manufacture ; Item[:AssembleSiegeAmmo] = :SIEGEAMMO ; Skill[:AssembleSiegeAmmo] = :SIEGECRAFT
|
|
ENUM[137] = :LoadCatapult ; NUME[:LoadCatapult] = 137 ; Caption[:LoadCatapult] = 'Load Catapult' ; Type[:LoadCatapult] = :SiegeWeapon ; Skill[:LoadCatapult] = :SIEGEOPERATE
|
|
ENUM[138] = :LoadBallista ; NUME[:LoadBallista] = 138 ; Caption[:LoadBallista] = 'Load Ballista' ; Type[:LoadBallista] = :SiegeWeapon ; Skill[:LoadBallista] = :SIEGEOPERATE
|
|
ENUM[139] = :FireCatapult ; NUME[:FireCatapult] = 139 ; Caption[:FireCatapult] = 'Fire Catapult' ; Type[:FireCatapult] = :SiegeWeapon ; Skill[:FireCatapult] = :SIEGEOPERATE
|
|
ENUM[140] = :FireBallista ; NUME[:FireBallista] = 140 ; Caption[:FireBallista] = 'Fire Ballista' ; Type[:FireBallista] = :SiegeWeapon ; Skill[:FireBallista] = :SIEGEOPERATE
|
|
ENUM[141] = :ConstructMechanisms ; NUME[:ConstructMechanisms] = 141 ; Caption[:ConstructMechanisms] = 'Construct Mechanisms' ; Type[:ConstructMechanisms] = :Manufacture ; Item[:ConstructMechanisms] = :TRAPPARTS ; Skill[:ConstructMechanisms] = :MECHANICS
|
|
ENUM[142] = :MakeTrapComponent ; NUME[:MakeTrapComponent] = 142 ; Caption[:MakeTrapComponent] = 'MakeTrapComponent' ; Type[:MakeTrapComponent] = :Manufacture ; Item[:MakeTrapComponent] = :TRAPCOMP ; SkillMetal[:MakeTrapComponent] = :FORGE_WEAPON
|
|
ENUM[143] = :LoadCageTrap ; NUME[:LoadCageTrap] = 143 ; Caption[:LoadCageTrap] = 'Load Cage Trap' ; Type[:LoadCageTrap] = :Hauling ; Skill[:LoadCageTrap] = :MECHANICS
|
|
ENUM[144] = :LoadStoneTrap ; NUME[:LoadStoneTrap] = 144 ; Caption[:LoadStoneTrap] = 'Load Stone Trap' ; Type[:LoadStoneTrap] = :Hauling ; Skill[:LoadStoneTrap] = :MECHANICS
|
|
ENUM[145] = :LoadWeaponTrap ; NUME[:LoadWeaponTrap] = 145 ; Caption[:LoadWeaponTrap] = 'Load Weapon Trap' ; Type[:LoadWeaponTrap] = :Hauling ; Skill[:LoadWeaponTrap] = :MECHANICS
|
|
ENUM[146] = :CleanTrap ; NUME[:CleanTrap] = 146 ; Caption[:CleanTrap] = 'Clean Trap' ; Type[:CleanTrap] = :TidyUp ; Skill[:CleanTrap] = :MECHANICS
|
|
ENUM[147] = :CastSpell ; NUME[:CastSpell] = 147 ; Caption[:CastSpell] = 'Cast Spell'
|
|
ENUM[148] = :LinkBuildingToTrigger ; NUME[:LinkBuildingToTrigger] = 148 ; Caption[:LinkBuildingToTrigger] = 'Link a Building to Trigger' ; Type[:LinkBuildingToTrigger] = :Building ; Skill[:LinkBuildingToTrigger] = :MECHANICS
|
|
ENUM[149] = :PullLever ; NUME[:PullLever] = 149 ; Caption[:PullLever] = 'Pull the Lever'
|
|
ENUM[150] = :BrewDrink ; NUME[:BrewDrink] = 150 ; Caption[:BrewDrink] = 'Brew Drink' ; Type[:BrewDrink] = :Manufacture ; Item[:BrewDrink] = :DRINK ; Skill[:BrewDrink] = :BREWING
|
|
ENUM[151] = :ExtractFromPlants ; NUME[:ExtractFromPlants] = 151 ; Caption[:ExtractFromPlants] = 'Extract from Plants' ; Type[:ExtractFromPlants] = :Manufacture ; PossibleItem[:ExtractFromPlants] << :LIQUID_MISC ; Skill[:ExtractFromPlants] = :BREWING
|
|
ENUM[152] = :ExtractFromRawFish ; NUME[:ExtractFromRawFish] = 152 ; Caption[:ExtractFromRawFish] = 'Extract from Raw Fish' ; Type[:ExtractFromRawFish] = :Manufacture ; PossibleItem[:ExtractFromRawFish] << :LIQUID_MISC ; Skill[:ExtractFromRawFish] = :DISSECT_FISH
|
|
ENUM[153] = :ExtractFromLandAnimal ; NUME[:ExtractFromLandAnimal] = 153 ; Caption[:ExtractFromLandAnimal] = 'Extract from Land Animal' ; Type[:ExtractFromLandAnimal] = :Manufacture ; PossibleItem[:ExtractFromLandAnimal] << :LIQUID_MISC ; Skill[:ExtractFromLandAnimal] = :DISSECT_VERMIN
|
|
ENUM[154] = :TameVermin ; NUME[:TameVermin] = 154 ; Caption[:TameVermin] = 'Tame Small Animal' ; Type[:TameVermin] = :UnitHandling ; Skill[:TameVermin] = :ANIMALTRAIN
|
|
ENUM[155] = :TameAnimal ; NUME[:TameAnimal] = 155 ; Caption[:TameAnimal] = 'Tame ?something?' ; Type[:TameAnimal] = :UnitHandling ; Skill[:TameAnimal] = :ANIMALTRAIN
|
|
ENUM[156] = :ChainAnimal ; NUME[:ChainAnimal] = 156 ; Caption[:ChainAnimal] = 'Chain Animal' ; Type[:ChainAnimal] = :UnitHandling
|
|
ENUM[157] = :UnchainAnimal ; NUME[:UnchainAnimal] = 157 ; Caption[:UnchainAnimal] = 'Unchain Animal' ; Type[:UnchainAnimal] = :UnitHandling
|
|
ENUM[158] = :UnchainPet ; NUME[:UnchainPet] = 158 ; Caption[:UnchainPet] = 'Unchain Pet' ; Type[:UnchainPet] = :UnitHandling
|
|
ENUM[159] = :ReleaseLargeCreature ; NUME[:ReleaseLargeCreature] = 159 ; Caption[:ReleaseLargeCreature] = 'Release Large Creature' ; Type[:ReleaseLargeCreature] = :UnitHandling
|
|
ENUM[160] = :ReleasePet ; NUME[:ReleasePet] = 160 ; Caption[:ReleasePet] = 'Release Pet' ; Type[:ReleasePet] = :UnitHandling
|
|
ENUM[161] = :ReleaseSmallCreature ; NUME[:ReleaseSmallCreature] = 161 ; Caption[:ReleaseSmallCreature] = 'Release Small Creature' ; Type[:ReleaseSmallCreature] = :UnitHandling
|
|
ENUM[162] = :HandleSmallCreature ; NUME[:HandleSmallCreature] = 162 ; Caption[:HandleSmallCreature] = 'Handle Small Creature' ; Type[:HandleSmallCreature] = :UnitHandling
|
|
ENUM[163] = :HandleLargeCreature ; NUME[:HandleLargeCreature] = 163 ; Caption[:HandleLargeCreature] = 'Handle Large Creature' ; Type[:HandleLargeCreature] = :UnitHandling
|
|
ENUM[164] = :CageLargeCreature ; NUME[:CageLargeCreature] = 164 ; Caption[:CageLargeCreature] = 'Cage Large Creature' ; Type[:CageLargeCreature] = :UnitHandling
|
|
ENUM[165] = :CageSmallCreature ; NUME[:CageSmallCreature] = 165 ; Caption[:CageSmallCreature] = 'Cage Small Creature' ; Type[:CageSmallCreature] = :UnitHandling
|
|
ENUM[166] = :RecoverWounded ; NUME[:RecoverWounded] = 166 ; Caption[:RecoverWounded] = 'Recover Wounded' ; Type[:RecoverWounded] = :Hauling ; Labor[:RecoverWounded] = :RECOVER_WOUNDED
|
|
ENUM[167] = :DiagnosePatient ; NUME[:DiagnosePatient] = 167 ; Caption[:DiagnosePatient] = 'Diagnose Patient' ; Type[:DiagnosePatient] = :Medicine ; Skill[:DiagnosePatient] = :DIAGNOSE
|
|
ENUM[168] = :ImmobilizeBreak ; NUME[:ImmobilizeBreak] = 168 ; Caption[:ImmobilizeBreak] = 'Immobilize Break' ; Type[:ImmobilizeBreak] = :Medicine ; Skill[:ImmobilizeBreak] = :SET_BONE
|
|
ENUM[169] = :DressWound ; NUME[:DressWound] = 169 ; Caption[:DressWound] = 'Dress Wound' ; Type[:DressWound] = :Medicine ; Skill[:DressWound] = :DRESS_WOUNDS
|
|
ENUM[170] = :CleanPatient ; NUME[:CleanPatient] = 170 ; Caption[:CleanPatient] = 'Clean Patient' ; Type[:CleanPatient] = :Medicine ; Labor[:CleanPatient] = :CLEAN
|
|
ENUM[171] = :Surgery ; NUME[:Surgery] = 171 ; Caption[:Surgery] = 'Surgery' ; Type[:Surgery] = :Medicine ; Skill[:Surgery] = :SURGERY
|
|
ENUM[172] = :Suture ; NUME[:Suture] = 172 ; Caption[:Suture] = 'Suture' ; Type[:Suture] = :Medicine ; Skill[:Suture] = :SUTURE
|
|
ENUM[173] = :SetBone ; NUME[:SetBone] = 173 ; Caption[:SetBone] = 'Set Bone' ; Type[:SetBone] = :Medicine ; Skill[:SetBone] = :SET_BONE
|
|
ENUM[174] = :PlaceInTraction ; NUME[:PlaceInTraction] = 174 ; Caption[:PlaceInTraction] = 'Place In Traction' ; Type[:PlaceInTraction] = :Medicine ; Skill[:PlaceInTraction] = :SET_BONE
|
|
ENUM[175] = :DrainAquarium ; NUME[:DrainAquarium] = 175 ; Caption[:DrainAquarium] = 'Drain Aquarium' ; Type[:DrainAquarium] = :Hauling
|
|
ENUM[176] = :FillAquarium ; NUME[:FillAquarium] = 176 ; Caption[:FillAquarium] = 'Fill Aquarium' ; Type[:FillAquarium] = :Hauling
|
|
ENUM[177] = :FillPond ; NUME[:FillPond] = 177 ; Caption[:FillPond] = 'Fill Pond' ; Type[:FillPond] = :Hauling
|
|
ENUM[178] = :GiveWater ; NUME[:GiveWater] = 178 ; Caption[:GiveWater] = 'Give Water' ; Type[:GiveWater] = :LifeSupport ; Labor[:GiveWater] = :FEED_WATER_CIVILIANS
|
|
ENUM[179] = :GiveFood ; NUME[:GiveFood] = 179 ; Caption[:GiveFood] = 'Give Food' ; Type[:GiveFood] = :LifeSupport ; Labor[:GiveFood] = :FEED_WATER_CIVILIANS
|
|
ENUM[180] = :GiveWater2 ; NUME[:GiveWater2] = 180 ; Caption[:GiveWater2] = 'Give Water' ; Type[:GiveWater2] = :LifeSupport ; Labor[:GiveWater2] = :FEED_WATER_CIVILIANS
|
|
ENUM[181] = :GiveFood2 ; NUME[:GiveFood2] = 181 ; Caption[:GiveFood2] = 'Give Food' ; Type[:GiveFood2] = :LifeSupport ; Labor[:GiveFood2] = :FEED_WATER_CIVILIANS
|
|
ENUM[182] = :RecoverPet ; NUME[:RecoverPet] = 182 ; Caption[:RecoverPet] = 'Recover Pet' ; Type[:RecoverPet] = :UnitHandling
|
|
ENUM[183] = :PitLargeAnimal ; NUME[:PitLargeAnimal] = 183 ; Caption[:PitLargeAnimal] = 'Pit/Pond Large Animal' ; Type[:PitLargeAnimal] = :UnitHandling
|
|
ENUM[184] = :PitSmallAnimal ; NUME[:PitSmallAnimal] = 184 ; Caption[:PitSmallAnimal] = 'Pit/Pond Small Animal' ; Type[:PitSmallAnimal] = :UnitHandling
|
|
ENUM[185] = :SlaughterAnimal ; NUME[:SlaughterAnimal] = 185 ; Caption[:SlaughterAnimal] = 'Slaughter Animal' ; Type[:SlaughterAnimal] = :Gathering ; Skill[:SlaughterAnimal] = :BUTCHER ; PossibleItem[:SlaughterAnimal] << :MEAT ; PossibleItem[:SlaughterAnimal] << :CORPSEPIECE ; PossibleItem[:SlaughterAnimal] << :GLOB
|
|
ENUM[186] = :MakeCharcoal ; NUME[:MakeCharcoal] = 186 ; Caption[:MakeCharcoal] = 'Make Charcoal' ; Type[:MakeCharcoal] = :Manufacture ; Item[:MakeCharcoal] = :BAR ; Material[:MakeCharcoal] = 'COAL' ; Skill[:MakeCharcoal] = :WOOD_BURNING
|
|
ENUM[187] = :MakeAsh ; NUME[:MakeAsh] = 187 ; Caption[:MakeAsh] = 'Make Ash' ; Type[:MakeAsh] = :Manufacture ; Item[:MakeAsh] = :BAR ; Material[:MakeAsh] = 'ASH' ; Skill[:MakeAsh] = :WOOD_BURNING
|
|
ENUM[188] = :MakeLye ; NUME[:MakeLye] = 188 ; Caption[:MakeLye] = 'Make Lye' ; Type[:MakeLye] = :Manufacture ; Item[:MakeLye] = :LIQUID_MISC ; Material[:MakeLye] = 'LYE' ; Skill[:MakeLye] = :LYE_MAKING
|
|
ENUM[189] = :MakePotashFromLye ; NUME[:MakePotashFromLye] = 189 ; Caption[:MakePotashFromLye] = 'Make Potash From Lye' ; Type[:MakePotashFromLye] = :Manufacture ; Item[:MakePotashFromLye] = :BAR ; Material[:MakePotashFromLye] = 'POTASH' ; Skill[:MakePotashFromLye] = :POTASH_MAKING
|
|
ENUM[190] = :FertilizeField ; NUME[:FertilizeField] = 190 ; Caption[:FertilizeField] = 'Fertilize Field'
|
|
ENUM[191] = :MakePotashFromAsh ; NUME[:MakePotashFromAsh] = 191 ; Caption[:MakePotashFromAsh] = 'Make Potash From Ash' ; Type[:MakePotashFromAsh] = :Manufacture ; Item[:MakePotashFromAsh] = :BAR ; Material[:MakePotashFromAsh] = 'POTASH' ; Skill[:MakePotashFromAsh] = :POTASH_MAKING
|
|
ENUM[192] = :DyeThread ; NUME[:DyeThread] = 192 ; Caption[:DyeThread] = 'Dye Thread' ; Type[:DyeThread] = :Improvement ; Skill[:DyeThread] = :DYER
|
|
ENUM[193] = :DyeCloth ; NUME[:DyeCloth] = 193 ; Caption[:DyeCloth] = 'Dye Cloth' ; Type[:DyeCloth] = :Improvement ; Skill[:DyeCloth] = :DYER
|
|
ENUM[194] = :SewImage ; NUME[:SewImage] = 194 ; Caption[:SewImage] = 'Sew Image' ; Type[:SewImage] = :Improvement
|
|
ENUM[195] = :MakePipeSection ; NUME[:MakePipeSection] = 195 ; Caption[:MakePipeSection] = 'Make Pipe Section' ; Type[:MakePipeSection] = :Manufacture ; Item[:MakePipeSection] = :PIPE_SECTION
|
|
ENUM[196] = :OperatePump ; NUME[:OperatePump] = 196 ; Caption[:OperatePump] = 'Operate Pump' ; Skill[:OperatePump] = :OPERATE_PUMP
|
|
ENUM[197] = :ManageWorkOrders ; NUME[:ManageWorkOrders] = 197 ; Caption[:ManageWorkOrders] = 'Manage Work Orders' ; Skill[:ManageWorkOrders] = :ORGANIZATION
|
|
ENUM[198] = :UpdateStockpileRecords ; NUME[:UpdateStockpileRecords] = 198 ; Caption[:UpdateStockpileRecords] = 'Update Stockpile Records' ; Skill[:UpdateStockpileRecords] = :RECORD_KEEPING
|
|
ENUM[199] = :TradeAtDepot ; NUME[:TradeAtDepot] = 199 ; Caption[:TradeAtDepot] = 'Trade at Depot' ; Skill[:TradeAtDepot] = :APPRAISAL
|
|
ENUM[200] = :ConstructHatchCover ; NUME[:ConstructHatchCover] = 200 ; Caption[:ConstructHatchCover] = 'Construct Hatch Cover' ; Type[:ConstructHatchCover] = :Manufacture ; Item[:ConstructHatchCover] = :HATCH_COVER
|
|
ENUM[201] = :ConstructGrate ; NUME[:ConstructGrate] = 201 ; Caption[:ConstructGrate] = 'Construct Grate' ; Type[:ConstructGrate] = :Manufacture ; Item[:ConstructGrate] = :GRATE
|
|
ENUM[202] = :RemoveStairs ; NUME[:RemoveStairs] = 202 ; Caption[:RemoveStairs] = 'Remove Stairs/Ramps' ; Type[:RemoveStairs] = :Digging ; Skill[:RemoveStairs] = :MINING
|
|
ENUM[203] = :ConstructQuern ; NUME[:ConstructQuern] = 203 ; Caption[:ConstructQuern] = 'Construct Quern' ; Type[:ConstructQuern] = :Manufacture ; Item[:ConstructQuern] = :QUERN
|
|
ENUM[204] = :ConstructMillstone ; NUME[:ConstructMillstone] = 204 ; Caption[:ConstructMillstone] = 'Construct Millstone' ; Type[:ConstructMillstone] = :Manufacture ; Item[:ConstructMillstone] = :MILLSTONE
|
|
ENUM[205] = :ConstructSplint ; NUME[:ConstructSplint] = 205 ; Caption[:ConstructSplint] = 'Construct Splint' ; Type[:ConstructSplint] = :Manufacture ; Item[:ConstructSplint] = :SPLINT
|
|
ENUM[206] = :ConstructCrutch ; NUME[:ConstructCrutch] = 206 ; Caption[:ConstructCrutch] = 'Construct Crutch' ; Type[:ConstructCrutch] = :Manufacture ; Item[:ConstructCrutch] = :CRUTCH
|
|
ENUM[207] = :ConstructTractionBench ; NUME[:ConstructTractionBench] = 207 ; Caption[:ConstructTractionBench] = 'Construct Traction Bench' ; Type[:ConstructTractionBench] = :Manufacture ; Item[:ConstructTractionBench] = :TRACTION_BENCH ; Skill[:ConstructTractionBench] = :MECHANICS
|
|
ENUM[208] = :CleanSelf ; NUME[:CleanSelf] = 208 ; Caption[:CleanSelf] = 'Clean Self' ; Type[:CleanSelf] = :TidyUp
|
|
ENUM[209] = :BringCrutch ; NUME[:BringCrutch] = 209 ; Caption[:BringCrutch] = 'Bring Crutch' ; Type[:BringCrutch] = :Medicine
|
|
ENUM[210] = :ApplyCast ; NUME[:ApplyCast] = 210 ; Caption[:ApplyCast] = 'Apply Cast' ; Type[:ApplyCast] = :Medicine ; Skill[:ApplyCast] = :SET_BONE
|
|
ENUM[211] = :CustomReaction ; NUME[:CustomReaction] = 211 ; Caption[:CustomReaction] = 'Custom Reaction'
|
|
ENUM[212] = :ConstructSlab ; NUME[:ConstructSlab] = 212 ; Caption[:ConstructSlab] = 'Construct Slab' ; Type[:ConstructSlab] = :Manufacture ; Item[:ConstructSlab] = :SLAB
|
|
ENUM[213] = :EngraveSlab ; NUME[:EngraveSlab] = 213 ; Caption[:EngraveSlab] = 'Engrave Memorial Slab' ; Type[:EngraveSlab] = :Improvement
|
|
ENUM[214] = :ShearCreature ; NUME[:ShearCreature] = 214 ; Caption[:ShearCreature] = 'Shear Creature' ; Type[:ShearCreature] = :Gathering ; Item[:ShearCreature] = :CORPSEPIECE ; Skill[:ShearCreature] = :SHEARING
|
|
ENUM[215] = :SpinThread ; NUME[:SpinThread] = 215 ; Caption[:SpinThread] = 'Spin Thread'
|
|
ENUM[216] = :PenLargeAnimal ; NUME[:PenLargeAnimal] = 216 ; Caption[:PenLargeAnimal] = 'Pen/Pasture Large Animal' ; Type[:PenLargeAnimal] = :UnitHandling
|
|
ENUM[217] = :PenSmallAnimal ; NUME[:PenSmallAnimal] = 217 ; Caption[:PenSmallAnimal] = 'Pen/Pasture Small Animal' ; Type[:PenSmallAnimal] = :UnitHandling
|
|
ENUM[218] = :MakeTool ; NUME[:MakeTool] = 218 ; Caption[:MakeTool] = 'Make Tool' ; Type[:MakeTool] = :Manufacture ; Item[:MakeTool] = :TOOL ; SkillWood[:MakeTool] = :WOODCRAFT ; SkillStone[:MakeTool] = :STONECRAFT
|
|
ENUM[219] = :CollectClay ; NUME[:CollectClay] = 219 ; Caption[:CollectClay] = 'Collect Clay' ; Type[:CollectClay] = :Gathering ; Item[:CollectClay] = :BOULDER ; Material[:CollectClay] = 'clay'
|
|
ENUM[220] = :InstallColonyInHive ; NUME[:InstallColonyInHive] = 220 ; Caption[:InstallColonyInHive] = 'Install Colony In Hive'
|
|
ENUM[221] = :CollectHiveProducts ; NUME[:CollectHiveProducts] = 221 ; Caption[:CollectHiveProducts] = 'Collect Hive Products' ; Type[:CollectHiveProducts] = :Gathering
|
|
ENUM[222] = :CauseTrouble ; NUME[:CauseTrouble] = 222 ; Caption[:CauseTrouble] = 'Cause Trouble' ; Type[:CauseTrouble] = :Crime
|
|
ENUM[223] = :DrinkBlood ; NUME[:DrinkBlood] = 223 ; Caption[:DrinkBlood] = 'On Break' ; Type[:DrinkBlood] = :Crime
|
|
ENUM[224] = :ReportCrime ; NUME[:ReportCrime] = 224 ; Caption[:ReportCrime] = 'Report Crime' ; Type[:ReportCrime] = :LawEnforcement
|
|
ENUM[225] = :ExecuteCriminal ; NUME[:ExecuteCriminal] = 225 ; Caption[:ExecuteCriminal] = 'Execute Criminal' ; Type[:ExecuteCriminal] = :LawEnforcement
|
|
ENUM[226] = :TrainAnimal ; NUME[:TrainAnimal] = 226 ; Caption[:TrainAnimal] = 'Train Animal' ; Type[:TrainAnimal] = :UnitHandling ; Skill[:TrainAnimal] = :ANIMALTRAIN
|
|
ENUM[227] = :CarveTrack ; NUME[:CarveTrack] = 227 ; Caption[:CarveTrack] = 'Carve Track' ; Type[:CarveTrack] = :Building
|
|
ENUM[228] = :PushTrackVehicle ; NUME[:PushTrackVehicle] = 228 ; Caption[:PushTrackVehicle] = 'Push Track Vehicle' ; Type[:PushTrackVehicle] = :Hauling
|
|
ENUM[229] = :PlaceTrackVehicle ; NUME[:PlaceTrackVehicle] = 229 ; Caption[:PlaceTrackVehicle] = 'Place Track Vehicle' ; Type[:PlaceTrackVehicle] = :Hauling
|
|
ENUM[230] = :StoreItemInVehicle ; NUME[:StoreItemInVehicle] = 230 ; Caption[:StoreItemInVehicle] = 'Store Item in Vehicle' ; Type[:StoreItemInVehicle] = :Hauling
|
|
end
|
|
|
|
class JobTypeClass < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Misc ; NUME[:Misc] = 0
|
|
ENUM[1] = :Digging ; NUME[:Digging] = 1
|
|
ENUM[2] = :Building ; NUME[:Building] = 2
|
|
ENUM[3] = :Hauling ; NUME[:Hauling] = 3
|
|
ENUM[4] = :LifeSupport ; NUME[:LifeSupport] = 4
|
|
ENUM[5] = :TidyUp ; NUME[:TidyUp] = 5
|
|
ENUM[6] = :Leisure ; NUME[:Leisure] = 6
|
|
ENUM[7] = :Gathering ; NUME[:Gathering] = 7
|
|
ENUM[8] = :Manufacture ; NUME[:Manufacture] = 8
|
|
ENUM[9] = :Improvement ; NUME[:Improvement] = 9
|
|
ENUM[10] = :Crime ; NUME[:Crime] = 10
|
|
ENUM[11] = :LawEnforcement ; NUME[:LawEnforcement] = 11
|
|
ENUM[12] = :StrangeMood ; NUME[:StrangeMood] = 12
|
|
ENUM[13] = :UnitHandling ; NUME[:UnitHandling] = 13
|
|
ENUM[14] = :SiegeWeapon ; NUME[:SiegeWeapon] = 14
|
|
ENUM[15] = :Medicine ; NUME[:Medicine] = 15
|
|
end
|
|
|
|
class LanguageWordFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :FRONT_COMPOUND_NOUN_SING ; NUME[:FRONT_COMPOUND_NOUN_SING] = 0
|
|
ENUM[1] = :FRONT_COMPOUND_NOUN_PLUR ; NUME[:FRONT_COMPOUND_NOUN_PLUR] = 1
|
|
ENUM[2] = :FRONT_COMPOUND_ADJ ; NUME[:FRONT_COMPOUND_ADJ] = 2
|
|
ENUM[3] = :FRONT_COMPOUND_PREFIX ; NUME[:FRONT_COMPOUND_PREFIX] = 3
|
|
ENUM[4] = :REAR_COMPOUND_NOUN_SING ; NUME[:REAR_COMPOUND_NOUN_SING] = 4
|
|
ENUM[5] = :REAR_COMPOUND_NOUN_PLUR ; NUME[:REAR_COMPOUND_NOUN_PLUR] = 5
|
|
ENUM[6] = :REAR_COMPOUND_ADJ ; NUME[:REAR_COMPOUND_ADJ] = 6
|
|
ENUM[7] = :THE_NOUN_SING ; NUME[:THE_NOUN_SING] = 7
|
|
ENUM[8] = :THE_NOUN_PLUR ; NUME[:THE_NOUN_PLUR] = 8
|
|
ENUM[9] = :THE_COMPOUND_NOUN_SING ; NUME[:THE_COMPOUND_NOUN_SING] = 9
|
|
ENUM[10] = :THE_COMPOUND_NOUN_PLUR ; NUME[:THE_COMPOUND_NOUN_PLUR] = 10
|
|
ENUM[11] = :THE_COMPOUND_ADJ ; NUME[:THE_COMPOUND_ADJ] = 11
|
|
ENUM[12] = :THE_COMPOUND_PREFIX ; NUME[:THE_COMPOUND_PREFIX] = 12
|
|
ENUM[13] = :OF_NOUN_SING ; NUME[:OF_NOUN_SING] = 13
|
|
ENUM[14] = :OF_NOUN_PLUR ; NUME[:OF_NOUN_PLUR] = 14
|
|
ENUM[15] = :STANDARD_VERB ; NUME[:STANDARD_VERB] = 15
|
|
end
|
|
|
|
class MachineType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Standard ; NUME[:Standard] = 0
|
|
end
|
|
|
|
class MaterialFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Type = Hash.new(:None)
|
|
ENUM[0] = :BONE ; NUME[:BONE] = 0 ; Type[:BONE] = :Bone
|
|
ENUM[1] = :MEAT ; NUME[:MEAT] = 1
|
|
ENUM[2] = :EDIBLE_VERMIN ; NUME[:EDIBLE_VERMIN] = 2
|
|
ENUM[3] = :EDIBLE_RAW ; NUME[:EDIBLE_RAW] = 3
|
|
ENUM[4] = :EDIBLE_COOKED ; NUME[:EDIBLE_COOKED] = 4
|
|
ENUM[5] = :ALCOHOL ; NUME[:ALCOHOL] = 5
|
|
ENUM[6] = :ITEMS_METAL ; NUME[:ITEMS_METAL] = 6
|
|
ENUM[7] = :ITEMS_BARRED ; NUME[:ITEMS_BARRED] = 7
|
|
ENUM[8] = :ITEMS_SCALED ; NUME[:ITEMS_SCALED] = 8
|
|
ENUM[9] = :ITEMS_LEATHER ; NUME[:ITEMS_LEATHER] = 9
|
|
ENUM[10] = :ITEMS_SOFT ; NUME[:ITEMS_SOFT] = 10
|
|
ENUM[11] = :ITEMS_HARD ; NUME[:ITEMS_HARD] = 11
|
|
ENUM[12] = :IMPLIES_ANIMAL_KILL ; NUME[:IMPLIES_ANIMAL_KILL] = 12
|
|
ENUM[13] = :ALCOHOL_PLANT ; NUME[:ALCOHOL_PLANT] = 13
|
|
ENUM[14] = :ALCOHOL_CREATURE ; NUME[:ALCOHOL_CREATURE] = 14
|
|
ENUM[15] = :CHEESE_PLANT ; NUME[:CHEESE_PLANT] = 15
|
|
ENUM[16] = :CHEESE_CREATURE ; NUME[:CHEESE_CREATURE] = 16
|
|
ENUM[17] = :POWDER_MISC_PLANT ; NUME[:POWDER_MISC_PLANT] = 17
|
|
ENUM[18] = :POWDER_MISC_CREATURE ; NUME[:POWDER_MISC_CREATURE] = 18
|
|
ENUM[19] = :STOCKPILE_GLOB ; NUME[:STOCKPILE_GLOB] = 19
|
|
ENUM[20] = :LIQUID_MISC_PLANT ; NUME[:LIQUID_MISC_PLANT] = 20
|
|
ENUM[21] = :LIQUID_MISC_CREATURE ; NUME[:LIQUID_MISC_CREATURE] = 21
|
|
ENUM[22] = :LIQUID_MISC_OTHER ; NUME[:LIQUID_MISC_OTHER] = 22
|
|
ENUM[23] = :WOOD ; NUME[:WOOD] = 23 ; Type[:WOOD] = :Wood
|
|
ENUM[24] = :THREAD_PLANT ; NUME[:THREAD_PLANT] = 24 ; Type[:THREAD_PLANT] = :Cloth
|
|
ENUM[25] = :TOOTH ; NUME[:TOOTH] = 25 ; Type[:TOOTH] = :Ivory
|
|
ENUM[26] = :HORN ; NUME[:HORN] = 26 ; Type[:HORN] = :Horn
|
|
ENUM[27] = :PEARL ; NUME[:PEARL] = 27 ; Type[:PEARL] = :Pearl
|
|
ENUM[28] = :SHELL ; NUME[:SHELL] = 28 ; Type[:SHELL] = :Shell
|
|
ENUM[29] = :LEATHER ; NUME[:LEATHER] = 29 ; Type[:LEATHER] = :Leather
|
|
ENUM[30] = :SILK ; NUME[:SILK] = 30 ; Type[:SILK] = :Cloth
|
|
ENUM[31] = :SOAP ; NUME[:SOAP] = 31
|
|
ENUM[32] = :ROTS ; NUME[:ROTS] = 32
|
|
ENUM[33] = :IS_DYE ; NUME[:IS_DYE] = 33
|
|
ENUM[34] = :POWDER_MISC ; NUME[:POWDER_MISC] = 34
|
|
ENUM[35] = :LIQUID_MISC ; NUME[:LIQUID_MISC] = 35
|
|
ENUM[36] = :STRUCTURAL_PLANT_MAT ; NUME[:STRUCTURAL_PLANT_MAT] = 36
|
|
ENUM[37] = :SEED_MAT ; NUME[:SEED_MAT] = 37
|
|
ENUM[38] = :LEAF_MAT ; NUME[:LEAF_MAT] = 38
|
|
ENUM[39] = :CHEESE ; NUME[:CHEESE] = 39
|
|
ENUM[40] = :ENTERS_BLOOD ; NUME[:ENTERS_BLOOD] = 40
|
|
ENUM[41] = :BLOOD_MAP_DESCRIPTOR ; NUME[:BLOOD_MAP_DESCRIPTOR] = 41
|
|
ENUM[42] = :ICHOR_MAP_DESCRIPTOR ; NUME[:ICHOR_MAP_DESCRIPTOR] = 42
|
|
ENUM[43] = :GOO_MAP_DESCRIPTOR ; NUME[:GOO_MAP_DESCRIPTOR] = 43
|
|
ENUM[44] = :SLIME_MAP_DESCRIPTOR ; NUME[:SLIME_MAP_DESCRIPTOR] = 44
|
|
ENUM[45] = :PUS_MAP_DESCRIPTOR ; NUME[:PUS_MAP_DESCRIPTOR] = 45
|
|
ENUM[46] = :GENERATES_MIASMA ; NUME[:GENERATES_MIASMA] = 46
|
|
ENUM[47] = :IS_METAL ; NUME[:IS_METAL] = 47 ; Type[:IS_METAL] = :Metal
|
|
ENUM[48] = :IS_GEM ; NUME[:IS_GEM] = 48 ; Type[:IS_GEM] = :Gem
|
|
ENUM[49] = :IS_GLASS ; NUME[:IS_GLASS] = 49 ; Type[:IS_GLASS] = :Glass
|
|
ENUM[50] = :CRYSTAL_GLASSABLE ; NUME[:CRYSTAL_GLASSABLE] = 50
|
|
ENUM[51] = :ITEMS_WEAPON ; NUME[:ITEMS_WEAPON] = 51
|
|
ENUM[52] = :ITEMS_WEAPON_RANGED ; NUME[:ITEMS_WEAPON_RANGED] = 52
|
|
ENUM[53] = :ITEMS_ANVIL ; NUME[:ITEMS_ANVIL] = 53
|
|
ENUM[54] = :ITEMS_AMMO ; NUME[:ITEMS_AMMO] = 54
|
|
ENUM[55] = :ITEMS_DIGGER ; NUME[:ITEMS_DIGGER] = 55
|
|
ENUM[56] = :ITEMS_ARMOR ; NUME[:ITEMS_ARMOR] = 56
|
|
ENUM[57] = :ITEMS_DELICATE ; NUME[:ITEMS_DELICATE] = 57
|
|
ENUM[58] = :ITEMS_SIEGE_ENGINE ; NUME[:ITEMS_SIEGE_ENGINE] = 58
|
|
ENUM[59] = :ITEMS_QUERN ; NUME[:ITEMS_QUERN] = 59
|
|
ENUM[60] = :IS_STONE ; NUME[:IS_STONE] = 60 ; Type[:IS_STONE] = :Stone
|
|
ENUM[61] = :UNDIGGABLE ; NUME[:UNDIGGABLE] = 61
|
|
ENUM[62] = :YARN ; NUME[:YARN] = 62 ; Type[:YARN] = :Cloth
|
|
ENUM[63] = :STOCKPILE_GLOB_PASTE ; NUME[:STOCKPILE_GLOB_PASTE] = 63
|
|
ENUM[64] = :STOCKPILE_GLOB_PRESSED ; NUME[:STOCKPILE_GLOB_PRESSED] = 64
|
|
ENUM[65] = :DISPLAY_UNGLAZED ; NUME[:DISPLAY_UNGLAZED] = 65
|
|
ENUM[66] = :DO_NOT_CLEAN_GLOB ; NUME[:DO_NOT_CLEAN_GLOB] = 66
|
|
ENUM[67] = :NO_STONE_STOCKPILE ; NUME[:NO_STONE_STOCKPILE] = 67
|
|
ENUM[68] = :STOCKPILE_THREAD_METAL ; NUME[:STOCKPILE_THREAD_METAL] = 68
|
|
end
|
|
|
|
class MatterState < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Solid ; NUME[:Solid] = 0
|
|
ENUM[1] = :Liquid ; NUME[:Liquid] = 1
|
|
ENUM[2] = :Gas ; NUME[:Gas] = 2
|
|
ENUM[3] = :Powder ; NUME[:Powder] = 3
|
|
ENUM[4] = :Paste ; NUME[:Paste] = 4
|
|
ENUM[5] = :Pressed ; NUME[:Pressed] = 5
|
|
end
|
|
|
|
class MentalAttributeType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :ANALYTICAL_ABILITY ; NUME[:ANALYTICAL_ABILITY] = 0
|
|
ENUM[1] = :FOCUS ; NUME[:FOCUS] = 1
|
|
ENUM[2] = :WILLPOWER ; NUME[:WILLPOWER] = 2
|
|
ENUM[3] = :CREATIVITY ; NUME[:CREATIVITY] = 3
|
|
ENUM[4] = :INTUITION ; NUME[:INTUITION] = 4
|
|
ENUM[5] = :PATIENCE ; NUME[:PATIENCE] = 5
|
|
ENUM[6] = :MEMORY ; NUME[:MEMORY] = 6
|
|
ENUM[7] = :LINGUISTIC_ABILITY ; NUME[:LINGUISTIC_ABILITY] = 7
|
|
ENUM[8] = :SPATIAL_SENSE ; NUME[:SPATIAL_SENSE] = 8
|
|
ENUM[9] = :MUSICALITY ; NUME[:MUSICALITY] = 9
|
|
ENUM[10] = :KINESTHETIC_SENSE ; NUME[:KINESTHETIC_SENSE] = 10
|
|
ENUM[11] = :EMPATHY ; NUME[:EMPATHY] = 11
|
|
ENUM[12] = :SOCIAL_AWARENESS ; NUME[:SOCIAL_AWARENESS] = 12
|
|
end
|
|
|
|
class MiscTraitType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Tag = Hash.new
|
|
ENUM[7] = :Migrant ; NUME[:Migrant] = 7
|
|
ENUM[8] = :RoomComplaint ; NUME[:RoomComplaint] = 8
|
|
ENUM[9] = :UnnamedResident ; NUME[:UnnamedResident] = 9
|
|
ENUM[11] = :ClaimTrinketCooldown ; NUME[:ClaimTrinketCooldown] = 11
|
|
ENUM[12] = :ClaimClothingCooldown ; NUME[:ClaimClothingCooldown] = 12
|
|
ENUM[13] = :WantsDrink ; NUME[:WantsDrink] = 13 ; Tag[:WantsDrink] = 'ALCOHOLIC'
|
|
ENUM[14] = :LikesOutdoors ; NUME[:LikesOutdoors] = 14 ; Tag[:LikesOutdoors] = 'MOUNTAIN'
|
|
ENUM[15] = :Hardened ; NUME[:Hardened] = 15 ; Tag[:Hardened] = 'COMBATHARDNESS'
|
|
ENUM[16] = :TimeSinceBreak ; NUME[:TimeSinceBreak] = 16 ; Tag[:TimeSinceBreak] = 'TIME_SINCE_BREAK'
|
|
ENUM[17] = :OnBreak ; NUME[:OnBreak] = 17 ; Tag[:OnBreak] = 'ON_BREAK'
|
|
ENUM[19] = :CaveAdapt ; NUME[:CaveAdapt] = 19 ; Tag[:CaveAdapt] = 'CAVE_ADAPT'
|
|
ENUM[32] = :PartiedOut ; NUME[:PartiedOut] = 32 ; Tag[:PartiedOut] = 'PARTIED_OUT'
|
|
ENUM[44] = :MilkCounter ; NUME[:MilkCounter] = 44 ; Tag[:MilkCounter] = 'MILK_COUNTER'
|
|
ENUM[47] = :EggSpent ; NUME[:EggSpent] = 47 ; Tag[:EggSpent] = 'EGG_SPENT'
|
|
ENUM[48] = :GroundedAnimalAnger ; NUME[:GroundedAnimalAnger] = 48 ; Tag[:GroundedAnimalAnger] = 'GROUNDED_ANIMAL_ANGER'
|
|
ENUM[50] = :TimeSinceSuckedBlood ; NUME[:TimeSinceSuckedBlood] = 50 ; Tag[:TimeSinceSuckedBlood] = 'TIME_SINCE_SUCKED_BLOOD'
|
|
ENUM[51] = :DrinkingBlood ; NUME[:DrinkingBlood] = 51 ; Tag[:DrinkingBlood] = 'DRINKING_BLOOD'
|
|
end
|
|
|
|
class MoodType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :None ; NUME[:None] = -1
|
|
ENUM[0] = :Fey ; NUME[:Fey] = 0
|
|
ENUM[1] = :Secretive ; NUME[:Secretive] = 1
|
|
ENUM[2] = :Possessed ; NUME[:Possessed] = 2
|
|
ENUM[3] = :Macabre ; NUME[:Macabre] = 3
|
|
ENUM[4] = :Fell ; NUME[:Fell] = 4
|
|
ENUM[5] = :Melancholy ; NUME[:Melancholy] = 5
|
|
ENUM[6] = :Raving ; NUME[:Raving] = 6
|
|
ENUM[7] = :Berserk ; NUME[:Berserk] = 7
|
|
ENUM[8] = :Baby ; NUME[:Baby] = 8
|
|
ENUM[9] = :Traumatized ; NUME[:Traumatized] = 9
|
|
end
|
|
|
|
class OrganicMatCategory < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Meat ; NUME[:Meat] = 0
|
|
ENUM[1] = :Fish ; NUME[:Fish] = 1
|
|
ENUM[2] = :UnpreparedFish ; NUME[:UnpreparedFish] = 2
|
|
ENUM[3] = :Eggs ; NUME[:Eggs] = 3
|
|
ENUM[4] = :Plants ; NUME[:Plants] = 4
|
|
ENUM[5] = :PlantDrink ; NUME[:PlantDrink] = 5
|
|
ENUM[6] = :CreatureDrink ; NUME[:CreatureDrink] = 6
|
|
ENUM[7] = :PlantCheese ; NUME[:PlantCheese] = 7
|
|
ENUM[8] = :CreatureCheese ; NUME[:CreatureCheese] = 8
|
|
ENUM[9] = :Seed ; NUME[:Seed] = 9
|
|
ENUM[10] = :Leaf ; NUME[:Leaf] = 10
|
|
ENUM[11] = :PlantPowder ; NUME[:PlantPowder] = 11
|
|
ENUM[12] = :CreaturePowder ; NUME[:CreaturePowder] = 12
|
|
ENUM[13] = :Glob ; NUME[:Glob] = 13
|
|
ENUM[14] = :PlantLiquid ; NUME[:PlantLiquid] = 14
|
|
ENUM[15] = :CreatureLiquid ; NUME[:CreatureLiquid] = 15
|
|
ENUM[16] = :MiscLiquid ; NUME[:MiscLiquid] = 16
|
|
ENUM[17] = :Leather ; NUME[:Leather] = 17
|
|
ENUM[18] = :Silk ; NUME[:Silk] = 18
|
|
ENUM[19] = :PlantFiber ; NUME[:PlantFiber] = 19
|
|
ENUM[20] = :Bone ; NUME[:Bone] = 20
|
|
ENUM[21] = :Shell ; NUME[:Shell] = 21
|
|
ENUM[22] = :Wood ; NUME[:Wood] = 22
|
|
ENUM[23] = :Horn ; NUME[:Horn] = 23
|
|
ENUM[24] = :Pearl ; NUME[:Pearl] = 24
|
|
ENUM[25] = :Tooth ; NUME[:Tooth] = 25
|
|
ENUM[26] = :EdibleCheese ; NUME[:EdibleCheese] = 26
|
|
ENUM[27] = :AnyDrink ; NUME[:AnyDrink] = 27
|
|
ENUM[28] = :EdiblePlant ; NUME[:EdiblePlant] = 28
|
|
ENUM[29] = :CookableLiquid ; NUME[:CookableLiquid] = 29
|
|
ENUM[30] = :CookablePowder ; NUME[:CookablePowder] = 30
|
|
ENUM[31] = :CookableSeed ; NUME[:CookableSeed] = 31
|
|
ENUM[32] = :CookableLeaf ; NUME[:CookableLeaf] = 32
|
|
ENUM[33] = :Paste ; NUME[:Paste] = 33
|
|
ENUM[34] = :Pressed ; NUME[:Pressed] = 34
|
|
ENUM[35] = :Yarn ; NUME[:Yarn] = 35
|
|
ENUM[36] = :MetalThread ; NUME[:MetalThread] = 36
|
|
end
|
|
|
|
class PantsFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :METAL_ARMOR_LEVELS ; NUME[:METAL_ARMOR_LEVELS] = 0
|
|
end
|
|
|
|
class PartOfSpeech < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Noun ; NUME[:Noun] = 0
|
|
ENUM[1] = :NounPlural ; NUME[:NounPlural] = 1
|
|
ENUM[2] = :Adjective ; NUME[:Adjective] = 2
|
|
ENUM[3] = :Prefix ; NUME[:Prefix] = 3
|
|
ENUM[4] = :Verb ; NUME[:Verb] = 4
|
|
ENUM[5] = :Verb3rdPerson ; NUME[:Verb3rdPerson] = 5
|
|
ENUM[6] = :VerbPast ; NUME[:VerbPast] = 6
|
|
ENUM[7] = :VerbPassive ; NUME[:VerbPassive] = 7
|
|
ENUM[8] = :VerbGerund ; NUME[:VerbGerund] = 8
|
|
end
|
|
|
|
class PatternType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :MONOTONE ; NUME[:MONOTONE] = 0
|
|
ENUM[1] = :STRIPES ; NUME[:STRIPES] = 1
|
|
ENUM[2] = :IRIS_EYE ; NUME[:IRIS_EYE] = 2
|
|
ENUM[3] = :SPOTS ; NUME[:SPOTS] = 3
|
|
ENUM[4] = :PUPIL_EYE ; NUME[:PUPIL_EYE] = 4
|
|
ENUM[5] = :MOTTLED ; NUME[:MOTTLED] = 5
|
|
end
|
|
|
|
class PersonalityFacetType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :ANXIETY ; NUME[:ANXIETY] = 0
|
|
ENUM[1] = :ANGER ; NUME[:ANGER] = 1
|
|
ENUM[2] = :DEPRESSION ; NUME[:DEPRESSION] = 2
|
|
ENUM[3] = :SELF_CONSCIOUSNESS ; NUME[:SELF_CONSCIOUSNESS] = 3
|
|
ENUM[4] = :IMMODERATION ; NUME[:IMMODERATION] = 4
|
|
ENUM[5] = :VULNERABILITY ; NUME[:VULNERABILITY] = 5
|
|
ENUM[6] = :FRIENDLINESS ; NUME[:FRIENDLINESS] = 6
|
|
ENUM[7] = :GREGARIOUSNESS ; NUME[:GREGARIOUSNESS] = 7
|
|
ENUM[8] = :ASSERTIVENESS ; NUME[:ASSERTIVENESS] = 8
|
|
ENUM[9] = :ACTIVITY_LEVEL ; NUME[:ACTIVITY_LEVEL] = 9
|
|
ENUM[10] = :EXCITEMENT_SEEKING ; NUME[:EXCITEMENT_SEEKING] = 10
|
|
ENUM[11] = :CHEERFULNESS ; NUME[:CHEERFULNESS] = 11
|
|
ENUM[12] = :IMAGINATION ; NUME[:IMAGINATION] = 12
|
|
ENUM[13] = :ARTISTIC_INTEREST ; NUME[:ARTISTIC_INTEREST] = 13
|
|
ENUM[14] = :EMOTIONALITY ; NUME[:EMOTIONALITY] = 14
|
|
ENUM[15] = :ADVENTUROUSNESS ; NUME[:ADVENTUROUSNESS] = 15
|
|
ENUM[16] = :INTELLECTUAL_CURIOSITY ; NUME[:INTELLECTUAL_CURIOSITY] = 16
|
|
ENUM[17] = :LIBERALISM ; NUME[:LIBERALISM] = 17
|
|
ENUM[18] = :TRUST ; NUME[:TRUST] = 18
|
|
ENUM[19] = :STRAIGHTFORWARDNESS ; NUME[:STRAIGHTFORWARDNESS] = 19
|
|
ENUM[20] = :ALTRUISM ; NUME[:ALTRUISM] = 20
|
|
ENUM[21] = :COOPERATION ; NUME[:COOPERATION] = 21
|
|
ENUM[22] = :MODESTY ; NUME[:MODESTY] = 22
|
|
ENUM[23] = :SYMPATHY ; NUME[:SYMPATHY] = 23
|
|
ENUM[24] = :SELF_EFFICACY ; NUME[:SELF_EFFICACY] = 24
|
|
ENUM[25] = :ORDERLINESS ; NUME[:ORDERLINESS] = 25
|
|
ENUM[26] = :DUTIFULNESS ; NUME[:DUTIFULNESS] = 26
|
|
ENUM[27] = :ACHIEVEMENT_STRIVING ; NUME[:ACHIEVEMENT_STRIVING] = 27
|
|
ENUM[28] = :SELF_DISCIPLINE ; NUME[:SELF_DISCIPLINE] = 28
|
|
ENUM[29] = :CAUTIOUSNESS ; NUME[:CAUTIOUSNESS] = 29
|
|
end
|
|
|
|
class PhysicalAttributeType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :STRENGTH ; NUME[:STRENGTH] = 0
|
|
ENUM[1] = :AGILITY ; NUME[:AGILITY] = 1
|
|
ENUM[2] = :TOUGHNESS ; NUME[:TOUGHNESS] = 2
|
|
ENUM[3] = :ENDURANCE ; NUME[:ENDURANCE] = 3
|
|
ENUM[4] = :RECUPERATION ; NUME[:RECUPERATION] = 4
|
|
ENUM[5] = :DISEASE_RESISTANCE ; NUME[:DISEASE_RESISTANCE] = 5
|
|
end
|
|
|
|
class PlantRawFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :SPRING ; NUME[:SPRING] = 0
|
|
ENUM[1] = :SUMMER ; NUME[:SUMMER] = 1
|
|
ENUM[2] = :AUTUMN ; NUME[:AUTUMN] = 2
|
|
ENUM[3] = :WINTER ; NUME[:WINTER] = 3
|
|
ENUM[5] = :SEED ; NUME[:SEED] = 5
|
|
ENUM[6] = :LEAVES ; NUME[:LEAVES] = 6
|
|
ENUM[7] = :DRINK ; NUME[:DRINK] = 7
|
|
ENUM[8] = :EXTRACT_BARREL ; NUME[:EXTRACT_BARREL] = 8
|
|
ENUM[9] = :EXTRACT_VIAL ; NUME[:EXTRACT_VIAL] = 9
|
|
ENUM[10] = :EXTRACT_STILL_VIAL ; NUME[:EXTRACT_STILL_VIAL] = 10
|
|
ENUM[12] = :THREAD ; NUME[:THREAD] = 12
|
|
ENUM[13] = :MILL ; NUME[:MILL] = 13
|
|
ENUM[20] = :WET ; NUME[:WET] = 20
|
|
ENUM[21] = :DRY ; NUME[:DRY] = 21
|
|
ENUM[22] = :BIOME_MOUNTAIN ; NUME[:BIOME_MOUNTAIN] = 22
|
|
ENUM[23] = :BIOME_GLACIER ; NUME[:BIOME_GLACIER] = 23
|
|
ENUM[24] = :BIOME_TUNDRA ; NUME[:BIOME_TUNDRA] = 24
|
|
ENUM[25] = :BIOME_SWAMP_TEMPERATE_FRESHWATER ; NUME[:BIOME_SWAMP_TEMPERATE_FRESHWATER] = 25
|
|
ENUM[26] = :BIOME_SWAMP_TEMPERATE_SALTWATER ; NUME[:BIOME_SWAMP_TEMPERATE_SALTWATER] = 26
|
|
ENUM[27] = :BIOME_MARSH_TEMPERATE_FRESHWATER ; NUME[:BIOME_MARSH_TEMPERATE_FRESHWATER] = 27
|
|
ENUM[28] = :BIOME_MARSH_TEMPERATE_SALTWATER ; NUME[:BIOME_MARSH_TEMPERATE_SALTWATER] = 28
|
|
ENUM[29] = :BIOME_SWAMP_TROPICAL_FRESHWATER ; NUME[:BIOME_SWAMP_TROPICAL_FRESHWATER] = 29
|
|
ENUM[30] = :BIOME_SWAMP_TROPICAL_SALTWATER ; NUME[:BIOME_SWAMP_TROPICAL_SALTWATER] = 30
|
|
ENUM[31] = :BIOME_SWAMP_MANGROVE ; NUME[:BIOME_SWAMP_MANGROVE] = 31
|
|
ENUM[32] = :BIOME_MARSH_TROPICAL_FRESHWATER ; NUME[:BIOME_MARSH_TROPICAL_FRESHWATER] = 32
|
|
ENUM[33] = :BIOME_MARSH_TROPICAL_SALTWATER ; NUME[:BIOME_MARSH_TROPICAL_SALTWATER] = 33
|
|
ENUM[34] = :BIOME_FOREST_TAIGA ; NUME[:BIOME_FOREST_TAIGA] = 34
|
|
ENUM[35] = :BIOME_FOREST_TEMPERATE_CONIFER ; NUME[:BIOME_FOREST_TEMPERATE_CONIFER] = 35
|
|
ENUM[36] = :BIOME_FOREST_TEMPERATE_BROADLEAF ; NUME[:BIOME_FOREST_TEMPERATE_BROADLEAF] = 36
|
|
ENUM[37] = :BIOME_FOREST_TROPICAL_CONIFER ; NUME[:BIOME_FOREST_TROPICAL_CONIFER] = 37
|
|
ENUM[38] = :BIOME_FOREST_TROPICAL_DRY_BROADLEAF ; NUME[:BIOME_FOREST_TROPICAL_DRY_BROADLEAF] = 38
|
|
ENUM[39] = :BIOME_FOREST_TROPICAL_MOIST_BROADLEAF ; NUME[:BIOME_FOREST_TROPICAL_MOIST_BROADLEAF] = 39
|
|
ENUM[40] = :BIOME_GRASSLAND_TEMPERATE ; NUME[:BIOME_GRASSLAND_TEMPERATE] = 40
|
|
ENUM[41] = :BIOME_SAVANNA_TEMPERATE ; NUME[:BIOME_SAVANNA_TEMPERATE] = 41
|
|
ENUM[42] = :BIOME_SHRUBLAND_TEMPERATE ; NUME[:BIOME_SHRUBLAND_TEMPERATE] = 42
|
|
ENUM[43] = :BIOME_GRASSLAND_TROPICAL ; NUME[:BIOME_GRASSLAND_TROPICAL] = 43
|
|
ENUM[44] = :BIOME_SAVANNA_TROPICAL ; NUME[:BIOME_SAVANNA_TROPICAL] = 44
|
|
ENUM[45] = :BIOME_SHRUBLAND_TROPICAL ; NUME[:BIOME_SHRUBLAND_TROPICAL] = 45
|
|
ENUM[46] = :BIOME_DESERT_BADLAND ; NUME[:BIOME_DESERT_BADLAND] = 46
|
|
ENUM[47] = :BIOME_DESERT_ROCK ; NUME[:BIOME_DESERT_ROCK] = 47
|
|
ENUM[48] = :BIOME_DESERT_SAND ; NUME[:BIOME_DESERT_SAND] = 48
|
|
ENUM[49] = :BIOME_OCEAN_TROPICAL ; NUME[:BIOME_OCEAN_TROPICAL] = 49
|
|
ENUM[50] = :BIOME_OCEAN_TEMPERATE ; NUME[:BIOME_OCEAN_TEMPERATE] = 50
|
|
ENUM[51] = :BIOME_OCEAN_ARCTIC ; NUME[:BIOME_OCEAN_ARCTIC] = 51
|
|
ENUM[52] = :BIOME_POOL_TEMPERATE_FRESHWATER ; NUME[:BIOME_POOL_TEMPERATE_FRESHWATER] = 52
|
|
ENUM[53] = :BIOME_SUBTERRANEAN_WATER ; NUME[:BIOME_SUBTERRANEAN_WATER] = 53
|
|
ENUM[54] = :BIOME_SUBTERRANEAN_CHASM ; NUME[:BIOME_SUBTERRANEAN_CHASM] = 54
|
|
ENUM[55] = :BIOME_SUBTERRANEAN_LAVA ; NUME[:BIOME_SUBTERRANEAN_LAVA] = 55
|
|
ENUM[56] = :GOOD ; NUME[:GOOD] = 56
|
|
ENUM[57] = :EVIL ; NUME[:EVIL] = 57
|
|
ENUM[58] = :SAVAGE ; NUME[:SAVAGE] = 58
|
|
ENUM[59] = :BIOME_POOL_TEMPERATE_BRACKISHWATER ; NUME[:BIOME_POOL_TEMPERATE_BRACKISHWATER] = 59
|
|
ENUM[60] = :BIOME_POOL_TEMPERATE_SALTWATER ; NUME[:BIOME_POOL_TEMPERATE_SALTWATER] = 60
|
|
ENUM[61] = :BIOME_POOL_TROPICAL_FRESHWATER ; NUME[:BIOME_POOL_TROPICAL_FRESHWATER] = 61
|
|
ENUM[62] = :BIOME_POOL_TROPICAL_BRACKISHWATER ; NUME[:BIOME_POOL_TROPICAL_BRACKISHWATER] = 62
|
|
ENUM[63] = :BIOME_POOL_TROPICAL_SALTWATER ; NUME[:BIOME_POOL_TROPICAL_SALTWATER] = 63
|
|
ENUM[64] = :BIOME_LAKE_TEMPERATE_FRESHWATER ; NUME[:BIOME_LAKE_TEMPERATE_FRESHWATER] = 64
|
|
ENUM[65] = :BIOME_LAKE_TEMPERATE_BRACKISHWATER ; NUME[:BIOME_LAKE_TEMPERATE_BRACKISHWATER] = 65
|
|
ENUM[66] = :BIOME_LAKE_TEMPERATE_SALTWATER ; NUME[:BIOME_LAKE_TEMPERATE_SALTWATER] = 66
|
|
ENUM[67] = :BIOME_LAKE_TROPICAL_FRESHWATER ; NUME[:BIOME_LAKE_TROPICAL_FRESHWATER] = 67
|
|
ENUM[68] = :BIOME_LAKE_TROPICAL_BRACKISHWATER ; NUME[:BIOME_LAKE_TROPICAL_BRACKISHWATER] = 68
|
|
ENUM[69] = :BIOME_LAKE_TROPICAL_SALTWATER ; NUME[:BIOME_LAKE_TROPICAL_SALTWATER] = 69
|
|
ENUM[70] = :BIOME_RIVER_TEMPERATE_FRESHWATER ; NUME[:BIOME_RIVER_TEMPERATE_FRESHWATER] = 70
|
|
ENUM[71] = :BIOME_RIVER_TEMPERATE_BRACKISHWATER ; NUME[:BIOME_RIVER_TEMPERATE_BRACKISHWATER] = 71
|
|
ENUM[72] = :BIOME_RIVER_TEMPERATE_SALTWATER ; NUME[:BIOME_RIVER_TEMPERATE_SALTWATER] = 72
|
|
ENUM[73] = :BIOME_RIVER_TROPICAL_FRESHWATER ; NUME[:BIOME_RIVER_TROPICAL_FRESHWATER] = 73
|
|
ENUM[74] = :BIOME_RIVER_TROPICAL_BRACKISHWATER ; NUME[:BIOME_RIVER_TROPICAL_BRACKISHWATER] = 74
|
|
ENUM[75] = :BIOME_RIVER_TROPICAL_SALTWATER ; NUME[:BIOME_RIVER_TROPICAL_SALTWATER] = 75
|
|
ENUM[76] = :AUTUMNCOLOR ; NUME[:AUTUMNCOLOR] = 76
|
|
ENUM[77] = :SAPLING ; NUME[:SAPLING] = 77
|
|
ENUM[78] = :TREE ; NUME[:TREE] = 78
|
|
ENUM[79] = :GRASS ; NUME[:GRASS] = 79
|
|
end
|
|
|
|
class Profession < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Caption = Hash.new
|
|
Military = Hash.new(false)
|
|
Parent = Hash.new(:NONE)
|
|
CanAssignLabor = Hash.new(true)
|
|
ENUM[-1] = :NONE ; NUME[:NONE] = -1
|
|
ENUM[0] = :MINER ; NUME[:MINER] = 0 ; Caption[:MINER] = 'Miner'
|
|
ENUM[1] = :WOODWORKER ; NUME[:WOODWORKER] = 1 ; Caption[:WOODWORKER] = 'Woodworker'
|
|
ENUM[2] = :CARPENTER ; NUME[:CARPENTER] = 2 ; Caption[:CARPENTER] = 'Carpenter' ; Parent[:CARPENTER] = :WOODWORKER
|
|
ENUM[3] = :BOWYER ; NUME[:BOWYER] = 3 ; Caption[:BOWYER] = 'Bowyer' ; Parent[:BOWYER] = :WOODWORKER
|
|
ENUM[4] = :WOODCUTTER ; NUME[:WOODCUTTER] = 4 ; Caption[:WOODCUTTER] = 'Woodcutter' ; Parent[:WOODCUTTER] = :WOODWORKER
|
|
ENUM[5] = :STONEWORKER ; NUME[:STONEWORKER] = 5 ; Caption[:STONEWORKER] = 'Stoneworker'
|
|
ENUM[6] = :ENGRAVER ; NUME[:ENGRAVER] = 6 ; Caption[:ENGRAVER] = 'Engraver' ; Parent[:ENGRAVER] = :STONEWORKER
|
|
ENUM[7] = :MASON ; NUME[:MASON] = 7 ; Caption[:MASON] = 'Mason' ; Parent[:MASON] = :STONEWORKER
|
|
ENUM[8] = :RANGER ; NUME[:RANGER] = 8 ; Caption[:RANGER] = 'Ranger'
|
|
ENUM[9] = :ANIMAL_CARETAKER ; NUME[:ANIMAL_CARETAKER] = 9 ; Caption[:ANIMAL_CARETAKER] = 'Animal Caretaker' ; Parent[:ANIMAL_CARETAKER] = :RANGER
|
|
ENUM[10] = :ANIMAL_TRAINER ; NUME[:ANIMAL_TRAINER] = 10 ; Caption[:ANIMAL_TRAINER] = 'Animal Trainer' ; Parent[:ANIMAL_TRAINER] = :RANGER
|
|
ENUM[11] = :HUNTER ; NUME[:HUNTER] = 11 ; Caption[:HUNTER] = 'Hunter' ; Parent[:HUNTER] = :RANGER
|
|
ENUM[12] = :TRAPPER ; NUME[:TRAPPER] = 12 ; Caption[:TRAPPER] = 'Trapper' ; Parent[:TRAPPER] = :RANGER
|
|
ENUM[13] = :ANIMAL_DISSECTOR ; NUME[:ANIMAL_DISSECTOR] = 13 ; Caption[:ANIMAL_DISSECTOR] = 'Animal Dissector' ; Parent[:ANIMAL_DISSECTOR] = :RANGER
|
|
ENUM[14] = :METALSMITH ; NUME[:METALSMITH] = 14 ; Caption[:METALSMITH] = 'Metalsmith'
|
|
ENUM[15] = :FURNACE_OPERATOR ; NUME[:FURNACE_OPERATOR] = 15 ; Caption[:FURNACE_OPERATOR] = 'Furnace Operator' ; Parent[:FURNACE_OPERATOR] = :METALSMITH
|
|
ENUM[16] = :WEAPONSMITH ; NUME[:WEAPONSMITH] = 16 ; Caption[:WEAPONSMITH] = 'Weaponsmith' ; Parent[:WEAPONSMITH] = :METALSMITH
|
|
ENUM[17] = :ARMORER ; NUME[:ARMORER] = 17 ; Caption[:ARMORER] = 'Armorer' ; Parent[:ARMORER] = :METALSMITH
|
|
ENUM[18] = :BLACKSMITH ; NUME[:BLACKSMITH] = 18 ; Caption[:BLACKSMITH] = 'Blacksmith' ; Parent[:BLACKSMITH] = :METALSMITH
|
|
ENUM[19] = :METALCRAFTER ; NUME[:METALCRAFTER] = 19 ; Caption[:METALCRAFTER] = 'Metalcrafter' ; Parent[:METALCRAFTER] = :METALSMITH
|
|
ENUM[20] = :JEWELER ; NUME[:JEWELER] = 20 ; Caption[:JEWELER] = 'Jeweler'
|
|
ENUM[21] = :GEM_CUTTER ; NUME[:GEM_CUTTER] = 21 ; Caption[:GEM_CUTTER] = 'Gem Cutter' ; Parent[:GEM_CUTTER] = :JEWELER
|
|
ENUM[22] = :GEM_SETTER ; NUME[:GEM_SETTER] = 22 ; Caption[:GEM_SETTER] = 'Gem Setter' ; Parent[:GEM_SETTER] = :JEWELER
|
|
ENUM[23] = :CRAFTSMAN ; NUME[:CRAFTSMAN] = 23 ; Caption[:CRAFTSMAN] = 'Craftsman'
|
|
ENUM[24] = :WOODCRAFTER ; NUME[:WOODCRAFTER] = 24 ; Caption[:WOODCRAFTER] = 'Woodcrafter' ; Parent[:WOODCRAFTER] = :CRAFTSMAN
|
|
ENUM[25] = :STONECRAFTER ; NUME[:STONECRAFTER] = 25 ; Caption[:STONECRAFTER] = 'Stonecrafter' ; Parent[:STONECRAFTER] = :CRAFTSMAN
|
|
ENUM[26] = :LEATHERWORKER ; NUME[:LEATHERWORKER] = 26 ; Caption[:LEATHERWORKER] = 'Leatherworker' ; Parent[:LEATHERWORKER] = :CRAFTSMAN
|
|
ENUM[27] = :BONE_CARVER ; NUME[:BONE_CARVER] = 27 ; Caption[:BONE_CARVER] = 'Bone Carver' ; Parent[:BONE_CARVER] = :CRAFTSMAN
|
|
ENUM[28] = :WEAVER ; NUME[:WEAVER] = 28 ; Caption[:WEAVER] = 'Weaver' ; Parent[:WEAVER] = :CRAFTSMAN
|
|
ENUM[29] = :CLOTHIER ; NUME[:CLOTHIER] = 29 ; Caption[:CLOTHIER] = 'Clothier' ; Parent[:CLOTHIER] = :CRAFTSMAN
|
|
ENUM[30] = :GLASSMAKER ; NUME[:GLASSMAKER] = 30 ; Caption[:GLASSMAKER] = 'Glassmaker' ; Parent[:GLASSMAKER] = :CRAFTSMAN
|
|
ENUM[31] = :POTTER ; NUME[:POTTER] = 31 ; Caption[:POTTER] = 'Potter' ; Parent[:POTTER] = :CRAFTSMAN
|
|
ENUM[32] = :GLAZER ; NUME[:GLAZER] = 32 ; Caption[:GLAZER] = 'Glazer' ; Parent[:GLAZER] = :CRAFTSMAN
|
|
ENUM[33] = :WAX_WORKER ; NUME[:WAX_WORKER] = 33 ; Caption[:WAX_WORKER] = 'Wax Worker' ; Parent[:WAX_WORKER] = :CRAFTSMAN
|
|
ENUM[34] = :STRAND_EXTRACTOR ; NUME[:STRAND_EXTRACTOR] = 34 ; Caption[:STRAND_EXTRACTOR] = 'Strand Extractor' ; Parent[:STRAND_EXTRACTOR] = :CRAFTSMAN
|
|
ENUM[35] = :FISHERY_WORKER ; NUME[:FISHERY_WORKER] = 35 ; Caption[:FISHERY_WORKER] = 'Fishery Worker'
|
|
ENUM[36] = :FISHERMAN ; NUME[:FISHERMAN] = 36 ; Caption[:FISHERMAN] = 'Fisherman' ; Parent[:FISHERMAN] = :FISHERY_WORKER
|
|
ENUM[37] = :FISH_DISSECTOR ; NUME[:FISH_DISSECTOR] = 37 ; Caption[:FISH_DISSECTOR] = 'Fish Dissector' ; Parent[:FISH_DISSECTOR] = :FISHERY_WORKER
|
|
ENUM[38] = :FISH_CLEANER ; NUME[:FISH_CLEANER] = 38 ; Caption[:FISH_CLEANER] = 'Fish Cleaner' ; Parent[:FISH_CLEANER] = :FISHERY_WORKER
|
|
ENUM[39] = :FARMER ; NUME[:FARMER] = 39 ; Caption[:FARMER] = 'Farmer'
|
|
ENUM[40] = :CHEESE_MAKER ; NUME[:CHEESE_MAKER] = 40 ; Caption[:CHEESE_MAKER] = 'Cheese Maker' ; Parent[:CHEESE_MAKER] = :FARMER
|
|
ENUM[41] = :MILKER ; NUME[:MILKER] = 41 ; Caption[:MILKER] = 'Milker' ; Parent[:MILKER] = :FARMER
|
|
ENUM[42] = :COOK ; NUME[:COOK] = 42 ; Caption[:COOK] = 'Cook' ; Parent[:COOK] = :FARMER
|
|
ENUM[43] = :THRESHER ; NUME[:THRESHER] = 43 ; Caption[:THRESHER] = 'Thresher' ; Parent[:THRESHER] = :FARMER
|
|
ENUM[44] = :MILLER ; NUME[:MILLER] = 44 ; Caption[:MILLER] = 'Miller' ; Parent[:MILLER] = :FARMER
|
|
ENUM[45] = :BUTCHER ; NUME[:BUTCHER] = 45 ; Caption[:BUTCHER] = 'Butcher' ; Parent[:BUTCHER] = :FARMER
|
|
ENUM[46] = :TANNER ; NUME[:TANNER] = 46 ; Caption[:TANNER] = 'Tanner' ; Parent[:TANNER] = :FARMER
|
|
ENUM[47] = :DYER ; NUME[:DYER] = 47 ; Caption[:DYER] = 'Dyer' ; Parent[:DYER] = :FARMER
|
|
ENUM[48] = :PLANTER ; NUME[:PLANTER] = 48 ; Caption[:PLANTER] = 'Planter' ; Parent[:PLANTER] = :FARMER
|
|
ENUM[49] = :HERBALIST ; NUME[:HERBALIST] = 49 ; Caption[:HERBALIST] = 'Herbalist' ; Parent[:HERBALIST] = :FARMER
|
|
ENUM[50] = :BREWER ; NUME[:BREWER] = 50 ; Caption[:BREWER] = 'Brewer' ; Parent[:BREWER] = :FARMER
|
|
ENUM[51] = :SOAP_MAKER ; NUME[:SOAP_MAKER] = 51 ; Caption[:SOAP_MAKER] = 'Soap Maker' ; Parent[:SOAP_MAKER] = :FARMER
|
|
ENUM[52] = :POTASH_MAKER ; NUME[:POTASH_MAKER] = 52 ; Caption[:POTASH_MAKER] = 'Potash Maker' ; Parent[:POTASH_MAKER] = :FARMER
|
|
ENUM[53] = :LYE_MAKER ; NUME[:LYE_MAKER] = 53 ; Caption[:LYE_MAKER] = 'Lye Maker' ; Parent[:LYE_MAKER] = :FARMER
|
|
ENUM[54] = :WOOD_BURNER ; NUME[:WOOD_BURNER] = 54 ; Caption[:WOOD_BURNER] = 'Wood Burner' ; Parent[:WOOD_BURNER] = :FARMER
|
|
ENUM[55] = :SHEARER ; NUME[:SHEARER] = 55 ; Caption[:SHEARER] = 'Shearer' ; Parent[:SHEARER] = :FARMER
|
|
ENUM[56] = :SPINNER ; NUME[:SPINNER] = 56 ; Caption[:SPINNER] = 'Spinner' ; Parent[:SPINNER] = :FARMER
|
|
ENUM[57] = :PRESSER ; NUME[:PRESSER] = 57 ; Caption[:PRESSER] = 'Presser' ; Parent[:PRESSER] = :FARMER
|
|
ENUM[58] = :BEEKEEPER ; NUME[:BEEKEEPER] = 58 ; Caption[:BEEKEEPER] = 'Bee Keeper' ; Parent[:BEEKEEPER] = :FARMER
|
|
ENUM[59] = :ENGINEER ; NUME[:ENGINEER] = 59 ; Caption[:ENGINEER] = 'Engineer'
|
|
ENUM[60] = :MECHANIC ; NUME[:MECHANIC] = 60 ; Caption[:MECHANIC] = 'Mechanic' ; Parent[:MECHANIC] = :ENGINEER
|
|
ENUM[61] = :SIEGE_ENGINEER ; NUME[:SIEGE_ENGINEER] = 61 ; Caption[:SIEGE_ENGINEER] = 'Siege Engineer' ; Parent[:SIEGE_ENGINEER] = :ENGINEER
|
|
ENUM[62] = :SIEGE_OPERATOR ; NUME[:SIEGE_OPERATOR] = 62 ; Caption[:SIEGE_OPERATOR] = 'Siege Operator' ; Parent[:SIEGE_OPERATOR] = :ENGINEER
|
|
ENUM[63] = :PUMP_OPERATOR ; NUME[:PUMP_OPERATOR] = 63 ; Caption[:PUMP_OPERATOR] = 'Pump Operator' ; Parent[:PUMP_OPERATOR] = :ENGINEER
|
|
ENUM[64] = :CLERK ; NUME[:CLERK] = 64 ; Caption[:CLERK] = 'Clerk' ; Parent[:CLERK] = :ADMINISTRATOR
|
|
ENUM[65] = :ADMINISTRATOR ; NUME[:ADMINISTRATOR] = 65 ; Caption[:ADMINISTRATOR] = 'Administrator'
|
|
ENUM[66] = :TRADER ; NUME[:TRADER] = 66 ; Caption[:TRADER] = 'Trader' ; Parent[:TRADER] = :ADMINISTRATOR
|
|
ENUM[67] = :ARCHITECT ; NUME[:ARCHITECT] = 67 ; Caption[:ARCHITECT] = 'Architect' ; Parent[:ARCHITECT] = :ADMINISTRATOR
|
|
ENUM[68] = :ALCHEMIST ; NUME[:ALCHEMIST] = 68 ; Caption[:ALCHEMIST] = 'Alchemist'
|
|
ENUM[69] = :DOCTOR ; NUME[:DOCTOR] = 69 ; Caption[:DOCTOR] = 'Doctor'
|
|
ENUM[70] = :DIAGNOSER ; NUME[:DIAGNOSER] = 70 ; Caption[:DIAGNOSER] = 'Diagnoser' ; Parent[:DIAGNOSER] = :DOCTOR
|
|
ENUM[71] = :BONE_SETTER ; NUME[:BONE_SETTER] = 71 ; Caption[:BONE_SETTER] = 'Bone Setter' ; Parent[:BONE_SETTER] = :DOCTOR
|
|
ENUM[72] = :SUTURER ; NUME[:SUTURER] = 72 ; Caption[:SUTURER] = 'Suturer' ; Parent[:SUTURER] = :DOCTOR
|
|
ENUM[73] = :SURGEON ; NUME[:SURGEON] = 73 ; Caption[:SURGEON] = 'Surgeon' ; Parent[:SURGEON] = :DOCTOR
|
|
ENUM[74] = :MERCHANT ; NUME[:MERCHANT] = 74 ; Caption[:MERCHANT] = 'Merchant'
|
|
ENUM[75] = :HAMMERMAN ; NUME[:HAMMERMAN] = 75 ; Caption[:HAMMERMAN] = 'Hammerman' ; Military[:HAMMERMAN] = true
|
|
ENUM[76] = :MASTER_HAMMERMAN ; NUME[:MASTER_HAMMERMAN] = 76 ; Caption[:MASTER_HAMMERMAN] = 'Hammer Lord' ; Military[:MASTER_HAMMERMAN] = true ; Parent[:MASTER_HAMMERMAN] = :HAMMERMAN
|
|
ENUM[77] = :SPEARMAN ; NUME[:SPEARMAN] = 77 ; Caption[:SPEARMAN] = 'Spearman' ; Military[:SPEARMAN] = true
|
|
ENUM[78] = :MASTER_SPEARMAN ; NUME[:MASTER_SPEARMAN] = 78 ; Caption[:MASTER_SPEARMAN] = 'Spearmaster' ; Military[:MASTER_SPEARMAN] = true ; Parent[:MASTER_SPEARMAN] = :SPEARMAN
|
|
ENUM[79] = :CROSSBOWMAN ; NUME[:CROSSBOWMAN] = 79 ; Caption[:CROSSBOWMAN] = 'Crossbowman' ; Military[:CROSSBOWMAN] = true
|
|
ENUM[80] = :MASTER_CROSSBOWMAN ; NUME[:MASTER_CROSSBOWMAN] = 80 ; Caption[:MASTER_CROSSBOWMAN] = 'Elite Crossbowman' ; Military[:MASTER_CROSSBOWMAN] = true ; Parent[:MASTER_CROSSBOWMAN] = :CROSSBOWMAN
|
|
ENUM[81] = :WRESTLER ; NUME[:WRESTLER] = 81 ; Caption[:WRESTLER] = 'Wrestler' ; Military[:WRESTLER] = true
|
|
ENUM[82] = :MASTER_WRESTLER ; NUME[:MASTER_WRESTLER] = 82 ; Caption[:MASTER_WRESTLER] = 'Elite Wrestler' ; Military[:MASTER_WRESTLER] = true ; Parent[:MASTER_WRESTLER] = :WRESTLER
|
|
ENUM[83] = :AXEMAN ; NUME[:AXEMAN] = 83 ; Caption[:AXEMAN] = 'Axeman' ; Military[:AXEMAN] = true
|
|
ENUM[84] = :MASTER_AXEMAN ; NUME[:MASTER_AXEMAN] = 84 ; Caption[:MASTER_AXEMAN] = 'Axe Lord' ; Military[:MASTER_AXEMAN] = true ; Parent[:MASTER_AXEMAN] = :AXEMAN
|
|
ENUM[85] = :SWORDSMAN ; NUME[:SWORDSMAN] = 85 ; Caption[:SWORDSMAN] = 'Swordsman' ; Military[:SWORDSMAN] = true
|
|
ENUM[86] = :MASTER_SWORDSMAN ; NUME[:MASTER_SWORDSMAN] = 86 ; Caption[:MASTER_SWORDSMAN] = 'Swordsmaster' ; Military[:MASTER_SWORDSMAN] = true ; Parent[:MASTER_SWORDSMAN] = :SWORDSMAN
|
|
ENUM[87] = :MACEMAN ; NUME[:MACEMAN] = 87 ; Caption[:MACEMAN] = 'Maceman' ; Military[:MACEMAN] = true
|
|
ENUM[88] = :MASTER_MACEMAN ; NUME[:MASTER_MACEMAN] = 88 ; Caption[:MASTER_MACEMAN] = 'Mace Lord' ; Military[:MASTER_MACEMAN] = true ; Parent[:MASTER_MACEMAN] = :MACEMAN
|
|
ENUM[89] = :PIKEMAN ; NUME[:PIKEMAN] = 89 ; Caption[:PIKEMAN] = 'Pikeman' ; Military[:PIKEMAN] = true
|
|
ENUM[90] = :MASTER_PIKEMAN ; NUME[:MASTER_PIKEMAN] = 90 ; Caption[:MASTER_PIKEMAN] = 'Pikemaster' ; Military[:MASTER_PIKEMAN] = true ; Parent[:MASTER_PIKEMAN] = :PIKEMAN
|
|
ENUM[91] = :BOWMAN ; NUME[:BOWMAN] = 91 ; Caption[:BOWMAN] = 'Bowman' ; Military[:BOWMAN] = true
|
|
ENUM[92] = :MASTER_BOWMAN ; NUME[:MASTER_BOWMAN] = 92 ; Caption[:MASTER_BOWMAN] = 'Elite Bowman' ; Military[:MASTER_BOWMAN] = true ; Parent[:MASTER_BOWMAN] = :BOWMAN
|
|
ENUM[93] = :BLOWGUNMAN ; NUME[:BLOWGUNMAN] = 93 ; Caption[:BLOWGUNMAN] = 'Blowgunner' ; Military[:BLOWGUNMAN] = true
|
|
ENUM[94] = :MASTER_BLOWGUNMAN ; NUME[:MASTER_BLOWGUNMAN] = 94 ; Caption[:MASTER_BLOWGUNMAN] = 'Master Blowgunner' ; Military[:MASTER_BLOWGUNMAN] = true ; Parent[:MASTER_BLOWGUNMAN] = :BLOWGUNMAN
|
|
ENUM[95] = :LASHER ; NUME[:LASHER] = 95 ; Caption[:LASHER] = 'Lasher' ; Military[:LASHER] = true
|
|
ENUM[96] = :MASTER_LASHER ; NUME[:MASTER_LASHER] = 96 ; Caption[:MASTER_LASHER] = 'Master Lasher' ; Military[:MASTER_LASHER] = true ; Parent[:MASTER_LASHER] = :LASHER
|
|
ENUM[97] = :RECRUIT ; NUME[:RECRUIT] = 97 ; Caption[:RECRUIT] = 'Recruit' ; Military[:RECRUIT] = true
|
|
ENUM[98] = :TRAINED_HUNTER ; NUME[:TRAINED_HUNTER] = 98 ; Caption[:TRAINED_HUNTER] = 'Hunting Animal'
|
|
ENUM[99] = :TRAINED_WAR ; NUME[:TRAINED_WAR] = 99 ; Caption[:TRAINED_WAR] = 'War Animal'
|
|
ENUM[100] = :MASTER_THIEF ; NUME[:MASTER_THIEF] = 100 ; Caption[:MASTER_THIEF] = 'Master Thief' ; Parent[:MASTER_THIEF] = :THIEF
|
|
ENUM[101] = :THIEF ; NUME[:THIEF] = 101 ; Caption[:THIEF] = 'Thief'
|
|
ENUM[102] = :STANDARD ; NUME[:STANDARD] = 102 ; Caption[:STANDARD] = 'Peasant'
|
|
ENUM[103] = :CHILD ; NUME[:CHILD] = 103 ; Caption[:CHILD] = 'Child' ; CanAssignLabor[:CHILD] = false ; Parent[:CHILD] = :STANDARD
|
|
ENUM[104] = :BABY ; NUME[:BABY] = 104 ; Caption[:BABY] = 'Baby' ; CanAssignLabor[:BABY] = false ; Parent[:BABY] = :STANDARD
|
|
ENUM[105] = :DRUNK ; NUME[:DRUNK] = 105 ; Caption[:DRUNK] = 'Drunk' ; CanAssignLabor[:DRUNK] = false ; Parent[:DRUNK] = :STANDARD
|
|
end
|
|
|
|
class ProjectileType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Item ; NUME[:Item] = 0
|
|
ENUM[1] = :Unit ; NUME[:Unit] = 1
|
|
ENUM[2] = :Magic ; NUME[:Magic] = 2
|
|
end
|
|
|
|
class ReactionFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :FUEL ; NUME[:FUEL] = 0
|
|
ENUM[1] = :AUTOMATIC ; NUME[:AUTOMATIC] = 1
|
|
ENUM[2] = :ADVENTURE_MODE_ENABLED ; NUME[:ADVENTURE_MODE_ENABLED] = 2
|
|
end
|
|
|
|
class ReactionProductImprovementFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
end
|
|
|
|
class ReactionProductItemFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :GET_MATERIAL_SAME ; NUME[:GET_MATERIAL_SAME] = 0
|
|
ENUM[1] = :GET_MATERIAL_PRODUCT ; NUME[:GET_MATERIAL_PRODUCT] = 1
|
|
ENUM[2] = :FORCE_EDGE ; NUME[:FORCE_EDGE] = 2
|
|
ENUM[3] = :PASTE ; NUME[:PASTE] = 3
|
|
ENUM[4] = :PRESSED ; NUME[:PRESSED] = 4
|
|
ENUM[5] = :CRAFTS ; NUME[:CRAFTS] = 5
|
|
end
|
|
|
|
class ReactionProductType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Item ; NUME[:Item] = 0
|
|
ENUM[1] = :Improvement ; NUME[:Improvement] = 1
|
|
end
|
|
|
|
class ReactionReagentType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Item ; NUME[:Item] = 0
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :CROP ; NUME[:CROP] = 0
|
|
ENUM[1] = :STONE ; NUME[:STONE] = 1
|
|
ENUM[2] = :METAL ; NUME[:METAL] = 2
|
|
ENUM[3] = :WOOD ; NUME[:WOOD] = 3
|
|
ENUM[4] = :ARMOR_BODY ; NUME[:ARMOR_BODY] = 4
|
|
ENUM[5] = :ARMOR_PANTS ; NUME[:ARMOR_PANTS] = 5
|
|
ENUM[6] = :ARMOR_GLOVES ; NUME[:ARMOR_GLOVES] = 6
|
|
ENUM[7] = :ARMOR_BOOTS ; NUME[:ARMOR_BOOTS] = 7
|
|
ENUM[8] = :ARMOR_HELM ; NUME[:ARMOR_HELM] = 8
|
|
ENUM[9] = :CLOTHING_BODY ; NUME[:CLOTHING_BODY] = 9
|
|
ENUM[10] = :CLOTHING_PANTS ; NUME[:CLOTHING_PANTS] = 10
|
|
ENUM[11] = :CLOTHING_GLOVES ; NUME[:CLOTHING_GLOVES] = 11
|
|
ENUM[12] = :CLOTHING_BOOTS ; NUME[:CLOTHING_BOOTS] = 12
|
|
ENUM[13] = :CLOTHING_HELM ; NUME[:CLOTHING_HELM] = 13
|
|
ENUM[14] = :WEAPON_MELEE ; NUME[:WEAPON_MELEE] = 14
|
|
ENUM[15] = :WEAPON_RANGED ; NUME[:WEAPON_RANGED] = 15
|
|
ENUM[16] = :ANVIL ; NUME[:ANVIL] = 16
|
|
ENUM[17] = :GEMS ; NUME[:GEMS] = 17
|
|
ENUM[18] = :THREAD ; NUME[:THREAD] = 18
|
|
ENUM[19] = :CLOTH ; NUME[:CLOTH] = 19
|
|
ENUM[20] = :LEATHER ; NUME[:LEATHER] = 20
|
|
ENUM[21] = :QUIVER ; NUME[:QUIVER] = 21
|
|
ENUM[22] = :BACKPACK ; NUME[:BACKPACK] = 22
|
|
ENUM[23] = :FLASK ; NUME[:FLASK] = 23
|
|
ENUM[24] = :BAG ; NUME[:BAG] = 24
|
|
ENUM[25] = :TABLE ; NUME[:TABLE] = 25
|
|
ENUM[26] = :CABINET ; NUME[:CABINET] = 26
|
|
ENUM[27] = :CHAIR ; NUME[:CHAIR] = 27
|
|
ENUM[28] = :BOX ; NUME[:BOX] = 28
|
|
ENUM[29] = :BED ; NUME[:BED] = 29
|
|
ENUM[30] = :CRAFTS ; NUME[:CRAFTS] = 30
|
|
ENUM[31] = :MEAT ; NUME[:MEAT] = 31
|
|
ENUM[32] = :BONE ; NUME[:BONE] = 32
|
|
ENUM[33] = :HORN ; NUME[:HORN] = 33
|
|
ENUM[34] = :SHELL ; NUME[:SHELL] = 34
|
|
ENUM[35] = :TALLOW ; NUME[:TALLOW] = 35
|
|
ENUM[36] = :TOOTH ; NUME[:TOOTH] = 36
|
|
ENUM[37] = :PEARL ; NUME[:PEARL] = 37
|
|
ENUM[38] = :SOAP ; NUME[:SOAP] = 38
|
|
ENUM[39] = :EXTRACT ; NUME[:EXTRACT] = 39
|
|
ENUM[40] = :CHEESE ; NUME[:CHEESE] = 40
|
|
ENUM[41] = :SKIN ; NUME[:SKIN] = 41
|
|
ENUM[42] = :POWDER ; NUME[:POWDER] = 42
|
|
end
|
|
|
|
class ScrewPumpDirection < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :FromNorth ; NUME[:FromNorth] = 0
|
|
ENUM[1] = :FromEast ; NUME[:FromEast] = 1
|
|
ENUM[2] = :FromSouth ; NUME[:FromSouth] = 2
|
|
ENUM[3] = :FromWest ; NUME[:FromWest] = 3
|
|
end
|
|
|
|
class ShoesFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :METAL_ARMOR_LEVELS ; NUME[:METAL_ARMOR_LEVELS] = 0
|
|
end
|
|
|
|
class ShopType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :GeneralStore ; NUME[:GeneralStore] = 0
|
|
ENUM[1] = :CraftsMarket ; NUME[:CraftsMarket] = 1
|
|
ENUM[2] = :ClothingShop ; NUME[:ClothingShop] = 2
|
|
ENUM[3] = :ExoticClothingShop ; NUME[:ExoticClothingShop] = 3
|
|
end
|
|
|
|
class SiegeengineType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Catapult ; NUME[:Catapult] = 0
|
|
ENUM[1] = :Ballista ; NUME[:Ballista] = 1
|
|
end
|
|
|
|
class SiteType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :PLAYER_FORTRESS ; NUME[:PLAYER_FORTRESS] = 0
|
|
ENUM[1] = :DARK_FORTRESS ; NUME[:DARK_FORTRESS] = 1
|
|
ENUM[2] = :CAVE ; NUME[:CAVE] = 2
|
|
ENUM[3] = :CAVE_DETAILED ; NUME[:CAVE_DETAILED] = 3
|
|
ENUM[4] = :TREE_CITY ; NUME[:TREE_CITY] = 4
|
|
ENUM[5] = :CITY ; NUME[:CITY] = 5
|
|
ENUM[8] = :FORTRESS ; NUME[:FORTRESS] = 8
|
|
end
|
|
|
|
class SlabEngravingType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :Slab ; NUME[:Slab] = -1
|
|
ENUM[0] = :Memorial ; NUME[:Memorial] = 0
|
|
ENUM[1] = :CraftShopSign ; NUME[:CraftShopSign] = 1
|
|
ENUM[2] = :WeaponsmithShopSign ; NUME[:WeaponsmithShopSign] = 2
|
|
ENUM[3] = :ArmorsmithShopSign ; NUME[:ArmorsmithShopSign] = 3
|
|
ENUM[4] = :GeneralStoreSign ; NUME[:GeneralStoreSign] = 4
|
|
ENUM[5] = :FoodShopSign ; NUME[:FoodShopSign] = 5
|
|
ENUM[6] = :Slab2 ; NUME[:Slab2] = 6
|
|
ENUM[7] = :FoodImportsSign ; NUME[:FoodImportsSign] = 7
|
|
ENUM[8] = :ClothingImportsSign ; NUME[:ClothingImportsSign] = 8
|
|
ENUM[9] = :GeneralImportsSign ; NUME[:GeneralImportsSign] = 9
|
|
ENUM[10] = :ClothShopSign ; NUME[:ClothShopSign] = 10
|
|
ENUM[11] = :LeatherShopSign ; NUME[:LeatherShopSign] = 11
|
|
ENUM[12] = :WovenClothingShopSign ; NUME[:WovenClothingShopSign] = 12
|
|
ENUM[13] = :LeatherClothingShopSign ; NUME[:LeatherClothingShopSign] = 13
|
|
ENUM[14] = :BoneCarverShopSign ; NUME[:BoneCarverShopSign] = 14
|
|
ENUM[15] = :GemCutterShopSign ; NUME[:GemCutterShopSign] = 15
|
|
ENUM[16] = :WeaponsmithShopSign2 ; NUME[:WeaponsmithShopSign2] = 16
|
|
ENUM[17] = :BowyerShopSign ; NUME[:BowyerShopSign] = 17
|
|
ENUM[18] = :BlacksmithShopSign ; NUME[:BlacksmithShopSign] = 18
|
|
ENUM[19] = :ArmorsmithShopSign2 ; NUME[:ArmorsmithShopSign2] = 19
|
|
ENUM[20] = :MetalCraftShopSign ; NUME[:MetalCraftShopSign] = 20
|
|
ENUM[21] = :LeatherGoodsShopSign ; NUME[:LeatherGoodsShopSign] = 21
|
|
ENUM[22] = :CarpenterShopSign ; NUME[:CarpenterShopSign] = 22
|
|
ENUM[23] = :StoneFurnitureShopSign ; NUME[:StoneFurnitureShopSign] = 23
|
|
ENUM[24] = :MetalFurnitureShopSign ; NUME[:MetalFurnitureShopSign] = 24
|
|
end
|
|
|
|
class SpecificRefType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[1] = :UNIT_INVENTORY ; NUME[:UNIT_INVENTORY] = 1
|
|
ENUM[2] = :JOB ; NUME[:JOB] = 2
|
|
ENUM[3] = :BUILDING_PARTY ; NUME[:BUILDING_PARTY] = 3
|
|
ENUM[4] = :ACTIVITY ; NUME[:ACTIVITY] = 4
|
|
ENUM[5] = :ITEM_GENERAL ; NUME[:ITEM_GENERAL] = 5
|
|
ENUM[6] = :EFFECT ; NUME[:EFFECT] = 6
|
|
ENUM[7] = :PETINFO_PET ; NUME[:PETINFO_PET] = 7
|
|
ENUM[8] = :PETINFO_OWNER ; NUME[:PETINFO_OWNER] = 8
|
|
ENUM[9] = :VERMIN_EVENT ; NUME[:VERMIN_EVENT] = 9
|
|
ENUM[10] = :VERMIN_ESCAPED_PET ; NUME[:VERMIN_ESCAPED_PET] = 10
|
|
ENUM[11] = :ENTITY ; NUME[:ENTITY] = 11
|
|
ENUM[12] = :PLOT_INFO ; NUME[:PLOT_INFO] = 12
|
|
ENUM[13] = :VIEWSCREEN ; NUME[:VIEWSCREEN] = 13
|
|
ENUM[14] = :UNIT_ITEM_WRESTLE ; NUME[:UNIT_ITEM_WRESTLE] = 14
|
|
ENUM[16] = :HIST_FIG ; NUME[:HIST_FIG] = 16
|
|
ENUM[17] = :SITE ; NUME[:SITE] = 17
|
|
ENUM[18] = :ARTIFACT ; NUME[:ARTIFACT] = 18
|
|
ENUM[19] = :ITEM_IMPROVEMENT ; NUME[:ITEM_IMPROVEMENT] = 19
|
|
ENUM[20] = :COIN_FRONT ; NUME[:COIN_FRONT] = 20
|
|
ENUM[21] = :COIN_BACK ; NUME[:COIN_BACK] = 21
|
|
ENUM[22] = :DETAIL_EVENT ; NUME[:DETAIL_EVENT] = 22
|
|
ENUM[23] = :SUBREGION ; NUME[:SUBREGION] = 23
|
|
ENUM[24] = :FEATURE_LAYER ; NUME[:FEATURE_LAYER] = 24
|
|
ENUM[25] = :ART_IMAGE ; NUME[:ART_IMAGE] = 25
|
|
ENUM[26] = :CREATURE_DEF ; NUME[:CREATURE_DEF] = 26
|
|
ENUM[29] = :ENTITY_POPULATION ; NUME[:ENTITY_POPULATION] = 29
|
|
ENUM[30] = :BREED ; NUME[:BREED] = 30
|
|
end
|
|
|
|
class SphereType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :AGRICULTURE ; NUME[:AGRICULTURE] = 0
|
|
ENUM[1] = :ANIMALS ; NUME[:ANIMALS] = 1
|
|
ENUM[2] = :ART ; NUME[:ART] = 2
|
|
ENUM[3] = :BALANCE ; NUME[:BALANCE] = 3
|
|
ENUM[4] = :BEAUTY ; NUME[:BEAUTY] = 4
|
|
ENUM[5] = :BIRTH ; NUME[:BIRTH] = 5
|
|
ENUM[6] = :BLIGHT ; NUME[:BLIGHT] = 6
|
|
ENUM[7] = :BOUNDARIES ; NUME[:BOUNDARIES] = 7
|
|
ENUM[8] = :CAVERNS ; NUME[:CAVERNS] = 8
|
|
ENUM[9] = :CHAOS ; NUME[:CHAOS] = 9
|
|
ENUM[10] = :CHARITY ; NUME[:CHARITY] = 10
|
|
ENUM[11] = :CHILDREN ; NUME[:CHILDREN] = 11
|
|
ENUM[12] = :COASTS ; NUME[:COASTS] = 12
|
|
ENUM[13] = :CONSOLATION ; NUME[:CONSOLATION] = 13
|
|
ENUM[14] = :COURAGE ; NUME[:COURAGE] = 14
|
|
ENUM[15] = :CRAFTS ; NUME[:CRAFTS] = 15
|
|
ENUM[16] = :CREATION ; NUME[:CREATION] = 16
|
|
ENUM[17] = :DANCE ; NUME[:DANCE] = 17
|
|
ENUM[18] = :DARKNESS ; NUME[:DARKNESS] = 18
|
|
ENUM[19] = :DAWN ; NUME[:DAWN] = 19
|
|
ENUM[20] = :DAY ; NUME[:DAY] = 20
|
|
ENUM[21] = :DEATH ; NUME[:DEATH] = 21
|
|
ENUM[22] = :DEFORMITY ; NUME[:DEFORMITY] = 22
|
|
ENUM[23] = :DEPRAVITY ; NUME[:DEPRAVITY] = 23
|
|
ENUM[24] = :DISCIPLINE ; NUME[:DISCIPLINE] = 24
|
|
ENUM[25] = :DISEASE ; NUME[:DISEASE] = 25
|
|
ENUM[26] = :DREAMS ; NUME[:DREAMS] = 26
|
|
ENUM[27] = :DUSK ; NUME[:DUSK] = 27
|
|
ENUM[28] = :DUTY ; NUME[:DUTY] = 28
|
|
ENUM[29] = :EARTH ; NUME[:EARTH] = 29
|
|
ENUM[30] = :FAMILY ; NUME[:FAMILY] = 30
|
|
ENUM[31] = :FAME ; NUME[:FAME] = 31
|
|
ENUM[32] = :FATE ; NUME[:FATE] = 32
|
|
ENUM[33] = :FERTILITY ; NUME[:FERTILITY] = 33
|
|
ENUM[34] = :FESTIVALS ; NUME[:FESTIVALS] = 34
|
|
ENUM[35] = :FIRE ; NUME[:FIRE] = 35
|
|
ENUM[36] = :FISH ; NUME[:FISH] = 36
|
|
ENUM[37] = :FISHING ; NUME[:FISHING] = 37
|
|
ENUM[38] = :FOOD ; NUME[:FOOD] = 38
|
|
ENUM[39] = :FORGIVENESS ; NUME[:FORGIVENESS] = 39
|
|
ENUM[40] = :FORTRESSES ; NUME[:FORTRESSES] = 40
|
|
ENUM[41] = :FREEDOM ; NUME[:FREEDOM] = 41
|
|
ENUM[42] = :GAMBLING ; NUME[:GAMBLING] = 42
|
|
ENUM[43] = :GAMES ; NUME[:GAMES] = 43
|
|
ENUM[44] = :GENEROSITY ; NUME[:GENEROSITY] = 44
|
|
ENUM[45] = :HAPPINESS ; NUME[:HAPPINESS] = 45
|
|
ENUM[46] = :HEALING ; NUME[:HEALING] = 46
|
|
ENUM[47] = :HOSPITALITY ; NUME[:HOSPITALITY] = 47
|
|
ENUM[48] = :HUNTING ; NUME[:HUNTING] = 48
|
|
ENUM[49] = :INSPIRATION ; NUME[:INSPIRATION] = 49
|
|
ENUM[50] = :JEALOUSY ; NUME[:JEALOUSY] = 50
|
|
ENUM[51] = :JEWELS ; NUME[:JEWELS] = 51
|
|
ENUM[52] = :JUSTICE ; NUME[:JUSTICE] = 52
|
|
ENUM[53] = :LABOR ; NUME[:LABOR] = 53
|
|
ENUM[54] = :LAKES ; NUME[:LAKES] = 54
|
|
ENUM[55] = :LAWS ; NUME[:LAWS] = 55
|
|
ENUM[56] = :LIES ; NUME[:LIES] = 56
|
|
ENUM[57] = :LIGHT ; NUME[:LIGHT] = 57
|
|
ENUM[58] = :LIGHTNING ; NUME[:LIGHTNING] = 58
|
|
ENUM[59] = :LONGEVITY ; NUME[:LONGEVITY] = 59
|
|
ENUM[60] = :LOVE ; NUME[:LOVE] = 60
|
|
ENUM[61] = :LOYALTY ; NUME[:LOYALTY] = 61
|
|
ENUM[62] = :LUCK ; NUME[:LUCK] = 62
|
|
ENUM[63] = :LUST ; NUME[:LUST] = 63
|
|
ENUM[64] = :MARRIAGE ; NUME[:MARRIAGE] = 64
|
|
ENUM[65] = :MERCY ; NUME[:MERCY] = 65
|
|
ENUM[66] = :METALS ; NUME[:METALS] = 66
|
|
ENUM[67] = :MINERALS ; NUME[:MINERALS] = 67
|
|
ENUM[68] = :MISERY ; NUME[:MISERY] = 68
|
|
ENUM[69] = :MIST ; NUME[:MIST] = 69
|
|
ENUM[70] = :MOON ; NUME[:MOON] = 70
|
|
ENUM[71] = :MOUNTAINS ; NUME[:MOUNTAINS] = 71
|
|
ENUM[72] = :MUCK ; NUME[:MUCK] = 72
|
|
ENUM[73] = :MURDER ; NUME[:MURDER] = 73
|
|
ENUM[74] = :MUSIC ; NUME[:MUSIC] = 74
|
|
ENUM[75] = :NATURE ; NUME[:NATURE] = 75
|
|
ENUM[76] = :NIGHT ; NUME[:NIGHT] = 76
|
|
ENUM[77] = :NIGHTMARES ; NUME[:NIGHTMARES] = 77
|
|
ENUM[78] = :OATHS ; NUME[:OATHS] = 78
|
|
ENUM[79] = :OCEANS ; NUME[:OCEANS] = 79
|
|
ENUM[80] = :ORDER ; NUME[:ORDER] = 80
|
|
ENUM[81] = :PAINTING ; NUME[:PAINTING] = 81
|
|
ENUM[82] = :PEACE ; NUME[:PEACE] = 82
|
|
ENUM[83] = :PERSUASION ; NUME[:PERSUASION] = 83
|
|
ENUM[84] = :PLANTS ; NUME[:PLANTS] = 84
|
|
ENUM[85] = :POETRY ; NUME[:POETRY] = 85
|
|
ENUM[86] = :PREGNANCY ; NUME[:PREGNANCY] = 86
|
|
ENUM[87] = :RAIN ; NUME[:RAIN] = 87
|
|
ENUM[88] = :RAINBOWS ; NUME[:RAINBOWS] = 88
|
|
ENUM[89] = :REBIRTH ; NUME[:REBIRTH] = 89
|
|
ENUM[90] = :REVELRY ; NUME[:REVELRY] = 90
|
|
ENUM[91] = :REVENGE ; NUME[:REVENGE] = 91
|
|
ENUM[92] = :RIVERS ; NUME[:RIVERS] = 92
|
|
ENUM[93] = :RULERSHIP ; NUME[:RULERSHIP] = 93
|
|
ENUM[94] = :RUMORS ; NUME[:RUMORS] = 94
|
|
ENUM[95] = :SACRIFICE ; NUME[:SACRIFICE] = 95
|
|
ENUM[96] = :SALT ; NUME[:SALT] = 96
|
|
ENUM[97] = :SCHOLARSHIP ; NUME[:SCHOLARSHIP] = 97
|
|
ENUM[98] = :SEASONS ; NUME[:SEASONS] = 98
|
|
ENUM[99] = :SILENCE ; NUME[:SILENCE] = 99
|
|
ENUM[100] = :SKY ; NUME[:SKY] = 100
|
|
ENUM[101] = :SONG ; NUME[:SONG] = 101
|
|
ENUM[102] = :SPEECH ; NUME[:SPEECH] = 102
|
|
ENUM[103] = :STARS ; NUME[:STARS] = 103
|
|
ENUM[104] = :STORMS ; NUME[:STORMS] = 104
|
|
ENUM[105] = :STRENGTH ; NUME[:STRENGTH] = 105
|
|
ENUM[106] = :SUICIDE ; NUME[:SUICIDE] = 106
|
|
ENUM[107] = :SUN ; NUME[:SUN] = 107
|
|
ENUM[108] = :THEFT ; NUME[:THEFT] = 108
|
|
ENUM[109] = :THRALLDOM ; NUME[:THRALLDOM] = 109
|
|
ENUM[110] = :THUNDER ; NUME[:THUNDER] = 110
|
|
ENUM[111] = :TORTURE ; NUME[:TORTURE] = 111
|
|
ENUM[112] = :TRADE ; NUME[:TRADE] = 112
|
|
ENUM[113] = :TRAVELERS ; NUME[:TRAVELERS] = 113
|
|
ENUM[114] = :TREACHERY ; NUME[:TREACHERY] = 114
|
|
ENUM[115] = :TREES ; NUME[:TREES] = 115
|
|
ENUM[116] = :TRICKERY ; NUME[:TRICKERY] = 116
|
|
ENUM[117] = :TRUTH ; NUME[:TRUTH] = 117
|
|
ENUM[118] = :TWILIGHT ; NUME[:TWILIGHT] = 118
|
|
ENUM[119] = :VALOR ; NUME[:VALOR] = 119
|
|
ENUM[120] = :VICTORY ; NUME[:VICTORY] = 120
|
|
ENUM[121] = :VOLCANOS ; NUME[:VOLCANOS] = 121
|
|
ENUM[122] = :WAR ; NUME[:WAR] = 122
|
|
ENUM[123] = :WATER ; NUME[:WATER] = 123
|
|
ENUM[124] = :WEALTH ; NUME[:WEALTH] = 124
|
|
ENUM[125] = :WEATHER ; NUME[:WEATHER] = 125
|
|
ENUM[126] = :WIND ; NUME[:WIND] = 126
|
|
ENUM[127] = :WISDOM ; NUME[:WISDOM] = 127
|
|
ENUM[128] = :WRITING ; NUME[:WRITING] = 128
|
|
ENUM[129] = :YOUTH ; NUME[:YOUTH] = 129
|
|
end
|
|
|
|
class StockpileCategory < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :Remove ; NUME[:Remove] = -1
|
|
ENUM[0] = :Animals ; NUME[:Animals] = 0
|
|
ENUM[1] = :Food ; NUME[:Food] = 1
|
|
ENUM[2] = :Furniture ; NUME[:Furniture] = 2
|
|
ENUM[3] = :Corpses ; NUME[:Corpses] = 3
|
|
ENUM[4] = :Refuse ; NUME[:Refuse] = 4
|
|
ENUM[5] = :Stone ; NUME[:Stone] = 5
|
|
ENUM[6] = :Unused6 ; NUME[:Unused6] = 6
|
|
ENUM[7] = :Ammo ; NUME[:Ammo] = 7
|
|
ENUM[8] = :Coins ; NUME[:Coins] = 8
|
|
ENUM[9] = :Bars ; NUME[:Bars] = 9
|
|
ENUM[10] = :Gems ; NUME[:Gems] = 10
|
|
ENUM[11] = :Goods ; NUME[:Goods] = 11
|
|
ENUM[12] = :Leather ; NUME[:Leather] = 12
|
|
ENUM[13] = :Cloth ; NUME[:Cloth] = 13
|
|
ENUM[14] = :Wood ; NUME[:Wood] = 14
|
|
ENUM[15] = :Weapons ; NUME[:Weapons] = 15
|
|
ENUM[16] = :Armor ; NUME[:Armor] = 16
|
|
ENUM[17] = :Custom ; NUME[:Custom] = 17
|
|
end
|
|
|
|
class StockpileList < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
IsCategory = Hash.new
|
|
ENUM[0] = :Animals ; NUME[:Animals] = 0 ; IsCategory[:Animals] = true
|
|
ENUM[1] = :Food ; NUME[:Food] = 1 ; IsCategory[:Food] = true
|
|
ENUM[2] = :FoodMeat ; NUME[:FoodMeat] = 2
|
|
ENUM[3] = :FoodFish ; NUME[:FoodFish] = 3
|
|
ENUM[4] = :FoodUnpreparedFish ; NUME[:FoodUnpreparedFish] = 4
|
|
ENUM[5] = :FoodEgg ; NUME[:FoodEgg] = 5
|
|
ENUM[6] = :FoodPlants ; NUME[:FoodPlants] = 6
|
|
ENUM[7] = :FoodDrinkPlant ; NUME[:FoodDrinkPlant] = 7
|
|
ENUM[8] = :FoodDrinkAnimal ; NUME[:FoodDrinkAnimal] = 8
|
|
ENUM[9] = :FoodCheesePlant ; NUME[:FoodCheesePlant] = 9
|
|
ENUM[10] = :FoodCheeseAnimal ; NUME[:FoodCheeseAnimal] = 10
|
|
ENUM[11] = :FoodSeeds ; NUME[:FoodSeeds] = 11
|
|
ENUM[12] = :FoodLeaves ; NUME[:FoodLeaves] = 12
|
|
ENUM[13] = :FoodMilledPlant ; NUME[:FoodMilledPlant] = 13
|
|
ENUM[14] = :FoodBoneMeal ; NUME[:FoodBoneMeal] = 14
|
|
ENUM[15] = :FoodFat ; NUME[:FoodFat] = 15
|
|
ENUM[16] = :FoodPaste ; NUME[:FoodPaste] = 16
|
|
ENUM[17] = :FoodPressedMaterial ; NUME[:FoodPressedMaterial] = 17
|
|
ENUM[18] = :FoodExtractPlant ; NUME[:FoodExtractPlant] = 18
|
|
ENUM[19] = :FoodExtractAnimal ; NUME[:FoodExtractAnimal] = 19
|
|
ENUM[20] = :FoodMiscLiquid ; NUME[:FoodMiscLiquid] = 20
|
|
ENUM[21] = :Furniture ; NUME[:Furniture] = 21 ; IsCategory[:Furniture] = true
|
|
ENUM[22] = :FurnitureType ; NUME[:FurnitureType] = 22
|
|
ENUM[23] = :FurnitureStoneClay ; NUME[:FurnitureStoneClay] = 23
|
|
ENUM[24] = :FurnitureMetal ; NUME[:FurnitureMetal] = 24
|
|
ENUM[25] = :FurnitureOtherMaterials ; NUME[:FurnitureOtherMaterials] = 25
|
|
ENUM[26] = :FurnitureCoreQuality ; NUME[:FurnitureCoreQuality] = 26
|
|
ENUM[27] = :FurnitureTotalQuality ; NUME[:FurnitureTotalQuality] = 27
|
|
ENUM[28] = :Corpses ; NUME[:Corpses] = 28 ; IsCategory[:Corpses] = true
|
|
ENUM[29] = :Refuse ; NUME[:Refuse] = 29 ; IsCategory[:Refuse] = true
|
|
ENUM[30] = :RefuseItems ; NUME[:RefuseItems] = 30
|
|
ENUM[31] = :RefuseCorpses ; NUME[:RefuseCorpses] = 31
|
|
ENUM[32] = :RefuseParts ; NUME[:RefuseParts] = 32
|
|
ENUM[33] = :RefuseSkulls ; NUME[:RefuseSkulls] = 33
|
|
ENUM[34] = :RefuseBones ; NUME[:RefuseBones] = 34
|
|
ENUM[35] = :RefuseShells ; NUME[:RefuseShells] = 35
|
|
ENUM[36] = :RefuseTeeth ; NUME[:RefuseTeeth] = 36
|
|
ENUM[37] = :RefuseHorns ; NUME[:RefuseHorns] = 37
|
|
ENUM[38] = :RefuseHair ; NUME[:RefuseHair] = 38
|
|
ENUM[39] = :Stone ; NUME[:Stone] = 39 ; IsCategory[:Stone] = true
|
|
ENUM[40] = :StoneOres ; NUME[:StoneOres] = 40
|
|
ENUM[41] = :StoneEconomic ; NUME[:StoneEconomic] = 41
|
|
ENUM[42] = :StoneOther ; NUME[:StoneOther] = 42
|
|
ENUM[43] = :StoneClay ; NUME[:StoneClay] = 43
|
|
ENUM[44] = :Ammo ; NUME[:Ammo] = 44 ; IsCategory[:Ammo] = true
|
|
ENUM[45] = :AmmoType ; NUME[:AmmoType] = 45
|
|
ENUM[46] = :AmmoMetal ; NUME[:AmmoMetal] = 46
|
|
ENUM[47] = :AmmoOther ; NUME[:AmmoOther] = 47
|
|
ENUM[48] = :AmmoCoreQuality ; NUME[:AmmoCoreQuality] = 48
|
|
ENUM[49] = :AmmoTotalQuality ; NUME[:AmmoTotalQuality] = 49
|
|
ENUM[50] = :Coins ; NUME[:Coins] = 50 ; IsCategory[:Coins] = true
|
|
ENUM[51] = :BarsBlocks ; NUME[:BarsBlocks] = 51 ; IsCategory[:BarsBlocks] = true
|
|
ENUM[52] = :BarsMetal ; NUME[:BarsMetal] = 52
|
|
ENUM[53] = :BarsOther ; NUME[:BarsOther] = 53
|
|
ENUM[54] = :BlocksStone ; NUME[:BlocksStone] = 54
|
|
ENUM[55] = :BlocksMetal ; NUME[:BlocksMetal] = 55
|
|
ENUM[56] = :BlocksOther ; NUME[:BlocksOther] = 56
|
|
ENUM[57] = :Gems ; NUME[:Gems] = 57 ; IsCategory[:Gems] = true
|
|
ENUM[58] = :RoughGem ; NUME[:RoughGem] = 58
|
|
ENUM[59] = :RoughGlass ; NUME[:RoughGlass] = 59
|
|
ENUM[60] = :CutGem ; NUME[:CutGem] = 60
|
|
ENUM[61] = :CutGlass ; NUME[:CutGlass] = 61
|
|
ENUM[62] = :Goods ; NUME[:Goods] = 62 ; IsCategory[:Goods] = true
|
|
ENUM[63] = :GoodsType ; NUME[:GoodsType] = 63
|
|
ENUM[64] = :GoodsStone ; NUME[:GoodsStone] = 64
|
|
ENUM[65] = :GoodsMetal ; NUME[:GoodsMetal] = 65
|
|
ENUM[66] = :GoodsOther ; NUME[:GoodsOther] = 66
|
|
ENUM[67] = :GoodsCoreQuality ; NUME[:GoodsCoreQuality] = 67
|
|
ENUM[68] = :GoodsTotalQuality ; NUME[:GoodsTotalQuality] = 68
|
|
ENUM[69] = :Leather ; NUME[:Leather] = 69 ; IsCategory[:Leather] = true
|
|
ENUM[70] = :Cloth ; NUME[:Cloth] = 70 ; IsCategory[:Cloth] = true
|
|
ENUM[71] = :ThreadSilk ; NUME[:ThreadSilk] = 71
|
|
ENUM[72] = :ThreadPlant ; NUME[:ThreadPlant] = 72
|
|
ENUM[73] = :ThreadYarn ; NUME[:ThreadYarn] = 73
|
|
ENUM[74] = :ThreadMetal ; NUME[:ThreadMetal] = 74
|
|
ENUM[75] = :ClothSilk ; NUME[:ClothSilk] = 75
|
|
ENUM[76] = :ClothPlant ; NUME[:ClothPlant] = 76
|
|
ENUM[77] = :ClothYarn ; NUME[:ClothYarn] = 77
|
|
ENUM[78] = :ClothMetal ; NUME[:ClothMetal] = 78
|
|
ENUM[79] = :Wood ; NUME[:Wood] = 79 ; IsCategory[:Wood] = true
|
|
ENUM[80] = :Weapons ; NUME[:Weapons] = 80 ; IsCategory[:Weapons] = true
|
|
ENUM[81] = :WeaponsType ; NUME[:WeaponsType] = 81
|
|
ENUM[82] = :WeaponsTrapcomp ; NUME[:WeaponsTrapcomp] = 82
|
|
ENUM[83] = :WeaponsMetal ; NUME[:WeaponsMetal] = 83
|
|
ENUM[84] = :WeaponsStone ; NUME[:WeaponsStone] = 84
|
|
ENUM[85] = :WeaponsOther ; NUME[:WeaponsOther] = 85
|
|
ENUM[86] = :WeaponsCoreQuality ; NUME[:WeaponsCoreQuality] = 86
|
|
ENUM[87] = :WeaponsTotalQuality ; NUME[:WeaponsTotalQuality] = 87
|
|
ENUM[88] = :Armor ; NUME[:Armor] = 88 ; IsCategory[:Armor] = true
|
|
ENUM[89] = :ArmorBody ; NUME[:ArmorBody] = 89
|
|
ENUM[90] = :ArmorHead ; NUME[:ArmorHead] = 90
|
|
ENUM[91] = :ArmorFeet ; NUME[:ArmorFeet] = 91
|
|
ENUM[92] = :ArmorHands ; NUME[:ArmorHands] = 92
|
|
ENUM[93] = :ArmorLegs ; NUME[:ArmorLegs] = 93
|
|
ENUM[94] = :ArmorShield ; NUME[:ArmorShield] = 94
|
|
ENUM[95] = :ArmorMetal ; NUME[:ArmorMetal] = 95
|
|
ENUM[96] = :ArmorOther ; NUME[:ArmorOther] = 96
|
|
ENUM[97] = :ArmorCoreQuality ; NUME[:ArmorCoreQuality] = 97
|
|
ENUM[98] = :ArmorTotalQuality ; NUME[:ArmorTotalQuality] = 98
|
|
ENUM[99] = :AdditionalOptions ; NUME[:AdditionalOptions] = 99 ; IsCategory[:AdditionalOptions] = true
|
|
end
|
|
|
|
class TileBuildingOcc < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :None ; NUME[:None] = 0
|
|
ENUM[1] = :Planned ; NUME[:Planned] = 1
|
|
ENUM[2] = :Passable ; NUME[:Passable] = 2
|
|
ENUM[3] = :Obstacle ; NUME[:Obstacle] = 3
|
|
ENUM[4] = :Well ; NUME[:Well] = 4
|
|
ENUM[5] = :Floored ; NUME[:Floored] = 5
|
|
ENUM[6] = :Impassable ; NUME[:Impassable] = 6
|
|
ENUM[7] = :Dynamic ; NUME[:Dynamic] = 7
|
|
end
|
|
|
|
class TileDigDesignation < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :No ; NUME[:No] = 0
|
|
ENUM[1] = :Default ; NUME[:Default] = 1
|
|
ENUM[2] = :UpDownStair ; NUME[:UpDownStair] = 2
|
|
ENUM[3] = :Channel ; NUME[:Channel] = 3
|
|
ENUM[4] = :Ramp ; NUME[:Ramp] = 4
|
|
ENUM[5] = :DownStair ; NUME[:DownStair] = 5
|
|
ENUM[6] = :UpStair ; NUME[:UpStair] = 6
|
|
end
|
|
|
|
class TileLiquid < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Water ; NUME[:Water] = 0
|
|
ENUM[1] = :Magma ; NUME[:Magma] = 1
|
|
end
|
|
|
|
class TileLiquidFlowDir < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :None ; NUME[:None] = 0
|
|
ENUM[1] = :South ; NUME[:South] = 1
|
|
ENUM[2] = :East ; NUME[:East] = 2
|
|
ENUM[3] = :Northeast ; NUME[:Northeast] = 3
|
|
ENUM[4] = :West ; NUME[:West] = 4
|
|
ENUM[5] = :Northwest ; NUME[:Northwest] = 5
|
|
ENUM[6] = :Southeast ; NUME[:Southeast] = 6
|
|
ENUM[7] = :Southwest ; NUME[:Southwest] = 7
|
|
ENUM[8] = :Inv8 ; NUME[:Inv8] = 8
|
|
ENUM[9] = :Inv9 ; NUME[:Inv9] = 9
|
|
ENUM[10] = :North ; NUME[:North] = 10
|
|
ENUM[11] = :InvB ; NUME[:InvB] = 11
|
|
ENUM[12] = :InvC ; NUME[:InvC] = 12
|
|
ENUM[13] = :InvD ; NUME[:InvD] = 13
|
|
ENUM[14] = :InvE ; NUME[:InvE] = 14
|
|
ENUM[15] = :InvF ; NUME[:InvF] = 15
|
|
end
|
|
|
|
class TileTraffic < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Normal ; NUME[:Normal] = 0
|
|
ENUM[1] = :Low ; NUME[:Low] = 1
|
|
ENUM[2] = :High ; NUME[:High] = 2
|
|
ENUM[3] = :Restricted ; NUME[:Restricted] = 3
|
|
end
|
|
|
|
class Tiletype < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Caption = Hash.new
|
|
Shape = Hash.new(:NONE)
|
|
Material = Hash.new(:NONE)
|
|
Variant = Hash.new(:NONE)
|
|
Special = Hash.new(:NONE)
|
|
Direction = Hash.new('--------')
|
|
ENUM[0] = :Void ; NUME[:Void] = 0 ; Caption[:Void] = 'void'
|
|
ENUM[1] = :RampTop ; NUME[:RampTop] = 1 ; Caption[:RampTop] = 'ramp top' ; Shape[:RampTop] = :RAMP_TOP ; Material[:RampTop] = :AIR
|
|
ENUM[2] = :MurkyPool ; NUME[:MurkyPool] = 2 ; Caption[:MurkyPool] = 'murky pool' ; Shape[:MurkyPool] = :FLOOR ; Material[:MurkyPool] = :POOL
|
|
ENUM[3] = :MurkyPoolRamp ; NUME[:MurkyPoolRamp] = 3 ; Caption[:MurkyPoolRamp] = 'murky pool slope' ; Shape[:MurkyPoolRamp] = :RAMP ; Material[:MurkyPoolRamp] = :POOL
|
|
ENUM[19] = :Driftwood ; NUME[:Driftwood] = 19 ; Caption[:Driftwood] = 'driftwood' ; Shape[:Driftwood] = :FLOOR ; Material[:Driftwood] = :DRIFTWOOD
|
|
ENUM[24] = :Tree ; NUME[:Tree] = 24 ; Caption[:Tree] = 'tree' ; Shape[:Tree] = :TREE ; Material[:Tree] = :PLANT ; Special[:Tree] = :NORMAL
|
|
ENUM[25] = :FrozenStairUD ; NUME[:FrozenStairUD] = 25 ; Caption[:FrozenStairUD] = 'ice stair up/down' ; Shape[:FrozenStairUD] = :STAIR_UPDOWN ; Material[:FrozenStairUD] = :FROZEN_LIQUID
|
|
ENUM[26] = :FrozenStairD ; NUME[:FrozenStairD] = 26 ; Caption[:FrozenStairD] = 'ice stair down' ; Shape[:FrozenStairD] = :STAIR_DOWN ; Material[:FrozenStairD] = :FROZEN_LIQUID
|
|
ENUM[27] = :FrozenStairU ; NUME[:FrozenStairU] = 27 ; Caption[:FrozenStairU] = 'ice stair up' ; Shape[:FrozenStairU] = :STAIR_UP ; Material[:FrozenStairU] = :FROZEN_LIQUID
|
|
ENUM[32] = :OpenSpace ; NUME[:OpenSpace] = 32 ; Caption[:OpenSpace] = 'open space' ; Shape[:OpenSpace] = :EMPTY ; Material[:OpenSpace] = :AIR
|
|
ENUM[34] = :Shrub ; NUME[:Shrub] = 34 ; Caption[:Shrub] = 'shrub' ; Shape[:Shrub] = :SHRUB ; Material[:Shrub] = :PLANT ; Special[:Shrub] = :NORMAL
|
|
ENUM[35] = :Chasm ; NUME[:Chasm] = 35 ; Caption[:Chasm] = 'chasm' ; Shape[:Chasm] = :ENDLESS_PIT ; Material[:Chasm] = :AIR
|
|
ENUM[36] = :LavaStairUD ; NUME[:LavaStairUD] = 36 ; Caption[:LavaStairUD] = 'obsidian stair up/down' ; Shape[:LavaStairUD] = :STAIR_UPDOWN ; Material[:LavaStairUD] = :LAVA_STONE
|
|
ENUM[37] = :LavaStairD ; NUME[:LavaStairD] = 37 ; Caption[:LavaStairD] = 'obsidian stair down' ; Shape[:LavaStairD] = :STAIR_DOWN ; Material[:LavaStairD] = :LAVA_STONE
|
|
ENUM[38] = :LavaStairU ; NUME[:LavaStairU] = 38 ; Caption[:LavaStairU] = 'obsidian stair up' ; Shape[:LavaStairU] = :STAIR_UP ; Material[:LavaStairU] = :LAVA_STONE
|
|
ENUM[39] = :SoilStairUD ; NUME[:SoilStairUD] = 39 ; Caption[:SoilStairUD] = 'soil stair up/down' ; Shape[:SoilStairUD] = :STAIR_UPDOWN ; Material[:SoilStairUD] = :SOIL
|
|
ENUM[40] = :SoilStairD ; NUME[:SoilStairD] = 40 ; Caption[:SoilStairD] = 'soil stair down' ; Shape[:SoilStairD] = :STAIR_DOWN ; Material[:SoilStairD] = :SOIL
|
|
ENUM[41] = :SoilStairU ; NUME[:SoilStairU] = 41 ; Caption[:SoilStairU] = 'soil stair up' ; Shape[:SoilStairU] = :STAIR_UP ; Material[:SoilStairU] = :SOIL
|
|
ENUM[42] = :EeriePit ; NUME[:EeriePit] = 42 ; Caption[:EeriePit] = 'eerie pit' ; Shape[:EeriePit] = :ENDLESS_PIT ; Material[:EeriePit] = :HFS
|
|
ENUM[43] = :StoneFloorSmooth ; NUME[:StoneFloorSmooth] = 43 ; Caption[:StoneFloorSmooth] = 'smooth stone floor' ; Shape[:StoneFloorSmooth] = :FLOOR ; Material[:StoneFloorSmooth] = :STONE ; Special[:StoneFloorSmooth] = :SMOOTH
|
|
ENUM[44] = :LavaFloorSmooth ; NUME[:LavaFloorSmooth] = 44 ; Caption[:LavaFloorSmooth] = 'smooth obsidian floor' ; Shape[:LavaFloorSmooth] = :FLOOR ; Material[:LavaFloorSmooth] = :LAVA_STONE ; Special[:LavaFloorSmooth] = :SMOOTH
|
|
ENUM[45] = :FeatureFloorSmooth ; NUME[:FeatureFloorSmooth] = 45 ; Caption[:FeatureFloorSmooth] = 'smooth featstone floor' ; Shape[:FeatureFloorSmooth] = :FLOOR ; Material[:FeatureFloorSmooth] = :FEATURE ; Special[:FeatureFloorSmooth] = :SMOOTH
|
|
ENUM[46] = :MineralFloorSmooth ; NUME[:MineralFloorSmooth] = 46 ; Caption[:MineralFloorSmooth] = 'smooth vein floor' ; Shape[:MineralFloorSmooth] = :FLOOR ; Material[:MineralFloorSmooth] = :MINERAL ; Special[:MineralFloorSmooth] = :SMOOTH
|
|
ENUM[47] = :FrozenFloorSmooth ; NUME[:FrozenFloorSmooth] = 47 ; Caption[:FrozenFloorSmooth] = 'smooth ice floor' ; Shape[:FrozenFloorSmooth] = :FLOOR ; Material[:FrozenFloorSmooth] = :FROZEN_LIQUID ; Special[:FrozenFloorSmooth] = :SMOOTH
|
|
ENUM[49] = :Grass1StairUD ; NUME[:Grass1StairUD] = 49 ; Caption[:Grass1StairUD] = 'light grass stair up/down' ; Shape[:Grass1StairUD] = :STAIR_UPDOWN ; Material[:Grass1StairUD] = :GRASS_LIGHT
|
|
ENUM[50] = :Grass1StairD ; NUME[:Grass1StairD] = 50 ; Caption[:Grass1StairD] = 'light grass stair down' ; Shape[:Grass1StairD] = :STAIR_DOWN ; Material[:Grass1StairD] = :GRASS_LIGHT
|
|
ENUM[51] = :Grass1StairU ; NUME[:Grass1StairU] = 51 ; Caption[:Grass1StairU] = 'light grass stair up' ; Shape[:Grass1StairU] = :STAIR_UP ; Material[:Grass1StairU] = :GRASS_LIGHT
|
|
ENUM[52] = :Grass2StairUD ; NUME[:Grass2StairUD] = 52 ; Caption[:Grass2StairUD] = 'dark grass stair up/down' ; Shape[:Grass2StairUD] = :STAIR_UPDOWN ; Material[:Grass2StairUD] = :GRASS_DARK
|
|
ENUM[53] = :Grass2StairD ; NUME[:Grass2StairD] = 53 ; Caption[:Grass2StairD] = 'dark grass stair down' ; Shape[:Grass2StairD] = :STAIR_DOWN ; Material[:Grass2StairD] = :GRASS_DARK
|
|
ENUM[54] = :Grass2StairU ; NUME[:Grass2StairU] = 54 ; Caption[:Grass2StairU] = 'dark grass stair up' ; Shape[:Grass2StairU] = :STAIR_UP ; Material[:Grass2StairU] = :GRASS_DARK
|
|
ENUM[55] = :StoneStairUD ; NUME[:StoneStairUD] = 55 ; Caption[:StoneStairUD] = 'stone stair up/down' ; Shape[:StoneStairUD] = :STAIR_UPDOWN ; Material[:StoneStairUD] = :STONE
|
|
ENUM[56] = :StoneStairD ; NUME[:StoneStairD] = 56 ; Caption[:StoneStairD] = 'stone stair down' ; Shape[:StoneStairD] = :STAIR_DOWN ; Material[:StoneStairD] = :STONE
|
|
ENUM[57] = :StoneStairU ; NUME[:StoneStairU] = 57 ; Caption[:StoneStairU] = 'stone stair up' ; Shape[:StoneStairU] = :STAIR_UP ; Material[:StoneStairU] = :STONE
|
|
ENUM[58] = :MineralStairUD ; NUME[:MineralStairUD] = 58 ; Caption[:MineralStairUD] = 'vein stair up/down' ; Shape[:MineralStairUD] = :STAIR_UPDOWN ; Material[:MineralStairUD] = :MINERAL
|
|
ENUM[59] = :MineralStairD ; NUME[:MineralStairD] = 59 ; Caption[:MineralStairD] = 'vein stair down' ; Shape[:MineralStairD] = :STAIR_DOWN ; Material[:MineralStairD] = :MINERAL
|
|
ENUM[60] = :MineralStairU ; NUME[:MineralStairU] = 60 ; Caption[:MineralStairU] = 'vein stair up' ; Shape[:MineralStairU] = :STAIR_UP ; Material[:MineralStairU] = :MINERAL
|
|
ENUM[61] = :FeatureStairUD ; NUME[:FeatureStairUD] = 61 ; Caption[:FeatureStairUD] = 'featstone stair up/down' ; Shape[:FeatureStairUD] = :STAIR_UPDOWN ; Material[:FeatureStairUD] = :FEATURE
|
|
ENUM[62] = :FeatureStairD ; NUME[:FeatureStairD] = 62 ; Caption[:FeatureStairD] = 'featstone stair down' ; Shape[:FeatureStairD] = :STAIR_DOWN ; Material[:FeatureStairD] = :FEATURE
|
|
ENUM[63] = :FeatureStairU ; NUME[:FeatureStairU] = 63 ; Caption[:FeatureStairU] = 'featstone stair up' ; Shape[:FeatureStairU] = :STAIR_UP ; Material[:FeatureStairU] = :FEATURE
|
|
ENUM[65] = :StoneFortification ; NUME[:StoneFortification] = 65 ; Caption[:StoneFortification] = 'stone fortification' ; Shape[:StoneFortification] = :FORTIFICATION ; Material[:StoneFortification] = :STONE
|
|
ENUM[67] = :Campfire ; NUME[:Campfire] = 67 ; Caption[:Campfire] = 'campfire' ; Shape[:Campfire] = :FLOOR ; Material[:Campfire] = :CAMPFIRE
|
|
ENUM[70] = :Fire ; NUME[:Fire] = 70 ; Caption[:Fire] = 'fire' ; Shape[:Fire] = :FLOOR ; Material[:Fire] = :FIRE
|
|
ENUM[79] = :StonePillar ; NUME[:StonePillar] = 79 ; Caption[:StonePillar] = 'stone pillar' ; Shape[:StonePillar] = :WALL ; Material[:StonePillar] = :STONE ; Special[:StonePillar] = :SMOOTH
|
|
ENUM[80] = :LavaPillar ; NUME[:LavaPillar] = 80 ; Caption[:LavaPillar] = 'obsidian pillar' ; Shape[:LavaPillar] = :WALL ; Material[:LavaPillar] = :LAVA_STONE ; Special[:LavaPillar] = :SMOOTH
|
|
ENUM[81] = :FeaturePillar ; NUME[:FeaturePillar] = 81 ; Caption[:FeaturePillar] = 'featstone pillar' ; Shape[:FeaturePillar] = :WALL ; Material[:FeaturePillar] = :FEATURE ; Special[:FeaturePillar] = :SMOOTH
|
|
ENUM[82] = :MineralPillar ; NUME[:MineralPillar] = 82 ; Caption[:MineralPillar] = 'vein pillar' ; Shape[:MineralPillar] = :WALL ; Material[:MineralPillar] = :MINERAL ; Special[:MineralPillar] = :SMOOTH
|
|
ENUM[83] = :FrozenPillar ; NUME[:FrozenPillar] = 83 ; Caption[:FrozenPillar] = 'ice pillar' ; Shape[:FrozenPillar] = :WALL ; Material[:FrozenPillar] = :FROZEN_LIQUID ; Special[:FrozenPillar] = :SMOOTH
|
|
ENUM[89] = :Waterfall ; NUME[:Waterfall] = 89 ; Caption[:Waterfall] = 'waterfall' ; Shape[:Waterfall] = :FLOOR ; Material[:Waterfall] = :RIVER ; Special[:Waterfall] = :WATERFALL
|
|
ENUM[90] = :RiverSource ; NUME[:RiverSource] = 90 ; Caption[:RiverSource] = 'river source' ; Shape[:RiverSource] = :FLOOR ; Material[:RiverSource] = :RIVER ; Special[:RiverSource] = :RIVER_SOURCE
|
|
ENUM[176] = :StoneWallWorn1 ; NUME[:StoneWallWorn1] = 176 ; Caption[:StoneWallWorn1] = 'worn 1 stone wall' ; Shape[:StoneWallWorn1] = :WALL ; Material[:StoneWallWorn1] = :STONE ; Special[:StoneWallWorn1] = :WORN_1
|
|
ENUM[177] = :StoneWallWorn2 ; NUME[:StoneWallWorn2] = 177 ; Caption[:StoneWallWorn2] = 'worn 2 stone wall' ; Shape[:StoneWallWorn2] = :WALL ; Material[:StoneWallWorn2] = :STONE ; Special[:StoneWallWorn2] = :WORN_2
|
|
ENUM[178] = :StoneWallWorn3 ; NUME[:StoneWallWorn3] = 178 ; Caption[:StoneWallWorn3] = 'worn 3 stone wall' ; Shape[:StoneWallWorn3] = :WALL ; Material[:StoneWallWorn3] = :STONE ; Special[:StoneWallWorn3] = :WORN_3
|
|
ENUM[219] = :StoneWall ; NUME[:StoneWall] = 219 ; Caption[:StoneWall] = 'stone wall' ; Shape[:StoneWall] = :WALL ; Material[:StoneWall] = :STONE ; Special[:StoneWall] = :NORMAL
|
|
ENUM[231] = :Sapling ; NUME[:Sapling] = 231 ; Caption[:Sapling] = 'sapling' ; Shape[:Sapling] = :SAPLING ; Material[:Sapling] = :PLANT ; Special[:Sapling] = :NORMAL
|
|
ENUM[233] = :GrassDryRamp ; NUME[:GrassDryRamp] = 233 ; Caption[:GrassDryRamp] = 'dry grass ramp' ; Shape[:GrassDryRamp] = :RAMP ; Material[:GrassDryRamp] = :GRASS_DRY
|
|
ENUM[234] = :GrassDeadRamp ; NUME[:GrassDeadRamp] = 234 ; Caption[:GrassDeadRamp] = 'dead grass ramp' ; Shape[:GrassDeadRamp] = :RAMP ; Material[:GrassDeadRamp] = :GRASS_DEAD
|
|
ENUM[235] = :GrassLightRamp ; NUME[:GrassLightRamp] = 235 ; Caption[:GrassLightRamp] = 'light grass ramp' ; Shape[:GrassLightRamp] = :RAMP ; Material[:GrassLightRamp] = :GRASS_LIGHT
|
|
ENUM[236] = :GrassDarkRamp ; NUME[:GrassDarkRamp] = 236 ; Caption[:GrassDarkRamp] = 'dark grass ramp' ; Shape[:GrassDarkRamp] = :RAMP ; Material[:GrassDarkRamp] = :GRASS_DARK
|
|
ENUM[237] = :StoneRamp ; NUME[:StoneRamp] = 237 ; Caption[:StoneRamp] = 'stone ramp' ; Shape[:StoneRamp] = :RAMP ; Material[:StoneRamp] = :STONE
|
|
ENUM[238] = :LavaRamp ; NUME[:LavaRamp] = 238 ; Caption[:LavaRamp] = 'obsidian ramp' ; Shape[:LavaRamp] = :RAMP ; Material[:LavaRamp] = :LAVA_STONE
|
|
ENUM[239] = :FeatureRamp ; NUME[:FeatureRamp] = 239 ; Caption[:FeatureRamp] = 'featstone ramp' ; Shape[:FeatureRamp] = :RAMP ; Material[:FeatureRamp] = :FEATURE
|
|
ENUM[240] = :MineralRamp ; NUME[:MineralRamp] = 240 ; Caption[:MineralRamp] = 'vein ramp' ; Shape[:MineralRamp] = :RAMP ; Material[:MineralRamp] = :MINERAL
|
|
ENUM[241] = :SoilRamp ; NUME[:SoilRamp] = 241 ; Caption[:SoilRamp] = 'soil ramp' ; Shape[:SoilRamp] = :RAMP ; Material[:SoilRamp] = :SOIL
|
|
ENUM[242] = :Ashes1 ; NUME[:Ashes1] = 242 ; Caption[:Ashes1] = 'ashes' ; Shape[:Ashes1] = :FLOOR ; Material[:Ashes1] = :ASHES ; Variant[:Ashes1] = :VAR_1
|
|
ENUM[243] = :Ashes2 ; NUME[:Ashes2] = 243 ; Caption[:Ashes2] = 'ashes' ; Shape[:Ashes2] = :FLOOR ; Material[:Ashes2] = :ASHES ; Variant[:Ashes2] = :VAR_2
|
|
ENUM[244] = :Ashes3 ; NUME[:Ashes3] = 244 ; Caption[:Ashes3] = 'ashes' ; Shape[:Ashes3] = :FLOOR ; Material[:Ashes3] = :ASHES ; Variant[:Ashes3] = :VAR_3
|
|
ENUM[245] = :FrozenRamp ; NUME[:FrozenRamp] = 245 ; Caption[:FrozenRamp] = 'ice ramp' ; Shape[:FrozenRamp] = :RAMP ; Material[:FrozenRamp] = :FROZEN_LIQUID
|
|
ENUM[258] = :FrozenFloor2 ; NUME[:FrozenFloor2] = 258 ; Caption[:FrozenFloor2] = 'ice floor' ; Shape[:FrozenFloor2] = :FLOOR ; Material[:FrozenFloor2] = :FROZEN_LIQUID ; Variant[:FrozenFloor2] = :VAR_2 ; Special[:FrozenFloor2] = :NORMAL
|
|
ENUM[259] = :FrozenFloor3 ; NUME[:FrozenFloor3] = 259 ; Caption[:FrozenFloor3] = 'ice floor' ; Shape[:FrozenFloor3] = :FLOOR ; Material[:FrozenFloor3] = :FROZEN_LIQUID ; Variant[:FrozenFloor3] = :VAR_3 ; Special[:FrozenFloor3] = :NORMAL
|
|
ENUM[260] = :FrozenFloor4 ; NUME[:FrozenFloor4] = 260 ; Caption[:FrozenFloor4] = 'ice floor' ; Shape[:FrozenFloor4] = :FLOOR ; Material[:FrozenFloor4] = :FROZEN_LIQUID ; Variant[:FrozenFloor4] = :VAR_4 ; Special[:FrozenFloor4] = :NORMAL
|
|
ENUM[261] = :FurrowedSoil ; NUME[:FurrowedSoil] = 261 ; Caption[:FurrowedSoil] = 'furrowed soil' ; Shape[:FurrowedSoil] = :FLOOR ; Material[:FurrowedSoil] = :SOIL ; Special[:FurrowedSoil] = :FURROWED
|
|
ENUM[262] = :FrozenFloor ; NUME[:FrozenFloor] = 262 ; Caption[:FrozenFloor] = 'ice floor' ; Shape[:FrozenFloor] = :FLOOR ; Material[:FrozenFloor] = :FROZEN_LIQUID ; Variant[:FrozenFloor] = :VAR_1 ; Special[:FrozenFloor] = :NORMAL
|
|
ENUM[263] = :SemiMoltenRock ; NUME[:SemiMoltenRock] = 263 ; Caption[:SemiMoltenRock] = 'semi-molten rock' ; Shape[:SemiMoltenRock] = :WALL ; Material[:SemiMoltenRock] = :MAGMA
|
|
ENUM[264] = :MagmaFlow ; NUME[:MagmaFlow] = 264 ; Caption[:MagmaFlow] = 'magma flow' ; Shape[:MagmaFlow] = :FLOOR ; Material[:MagmaFlow] = :MAGMA
|
|
ENUM[265] = :SoilWall ; NUME[:SoilWall] = 265 ; Caption[:SoilWall] = 'soil wall' ; Shape[:SoilWall] = :WALL ; Material[:SoilWall] = :SOIL
|
|
ENUM[266] = :GlowingBarrier ; NUME[:GlowingBarrier] = 266 ; Caption[:GlowingBarrier] = 'glowing barrier' ; Shape[:GlowingBarrier] = :WALL ; Material[:GlowingBarrier] = :HFS
|
|
ENUM[267] = :GlowingFloor ; NUME[:GlowingFloor] = 267 ; Caption[:GlowingFloor] = 'glowing floor' ; Shape[:GlowingFloor] = :FLOOR ; Material[:GlowingFloor] = :HFS
|
|
ENUM[269] = :LavaWallSmoothRD2 ; NUME[:LavaWallSmoothRD2] = 269 ; Caption[:LavaWallSmoothRD2] = 'smooth obsidian wall RD2' ; Shape[:LavaWallSmoothRD2] = :WALL ; Material[:LavaWallSmoothRD2] = :LAVA_STONE ; Special[:LavaWallSmoothRD2] = :SMOOTH ; Direction[:LavaWallSmoothRD2] = '--SS--E-'
|
|
ENUM[270] = :LavaWallSmoothR2D ; NUME[:LavaWallSmoothR2D] = 270 ; Caption[:LavaWallSmoothR2D] = 'smooth obsidian wall R2D' ; Shape[:LavaWallSmoothR2D] = :WALL ; Material[:LavaWallSmoothR2D] = :LAVA_STONE ; Special[:LavaWallSmoothR2D] = :SMOOTH ; Direction[:LavaWallSmoothR2D] = '--S---EE'
|
|
ENUM[271] = :LavaWallSmoothR2U ; NUME[:LavaWallSmoothR2U] = 271 ; Caption[:LavaWallSmoothR2U] = 'smooth obsidian wall R2U' ; Shape[:LavaWallSmoothR2U] = :WALL ; Material[:LavaWallSmoothR2U] = :LAVA_STONE ; Special[:LavaWallSmoothR2U] = :SMOOTH ; Direction[:LavaWallSmoothR2U] = 'N-----EE'
|
|
ENUM[272] = :LavaWallSmoothRU2 ; NUME[:LavaWallSmoothRU2] = 272 ; Caption[:LavaWallSmoothRU2] = 'smooth obsidian wall RU2' ; Shape[:LavaWallSmoothRU2] = :WALL ; Material[:LavaWallSmoothRU2] = :LAVA_STONE ; Special[:LavaWallSmoothRU2] = :SMOOTH ; Direction[:LavaWallSmoothRU2] = 'NN----E-'
|
|
ENUM[273] = :LavaWallSmoothL2U ; NUME[:LavaWallSmoothL2U] = 273 ; Caption[:LavaWallSmoothL2U] = 'smooth obsidian wall L2U' ; Shape[:LavaWallSmoothL2U] = :WALL ; Material[:LavaWallSmoothL2U] = :LAVA_STONE ; Special[:LavaWallSmoothL2U] = :SMOOTH ; Direction[:LavaWallSmoothL2U] = 'N---WW--'
|
|
ENUM[274] = :LavaWallSmoothLU2 ; NUME[:LavaWallSmoothLU2] = 274 ; Caption[:LavaWallSmoothLU2] = 'smooth obsidian wall LU2' ; Shape[:LavaWallSmoothLU2] = :WALL ; Material[:LavaWallSmoothLU2] = :LAVA_STONE ; Special[:LavaWallSmoothLU2] = :SMOOTH ; Direction[:LavaWallSmoothLU2] = 'NN--W---'
|
|
ENUM[275] = :LavaWallSmoothL2D ; NUME[:LavaWallSmoothL2D] = 275 ; Caption[:LavaWallSmoothL2D] = 'smooth obsidian wall L2D' ; Shape[:LavaWallSmoothL2D] = :WALL ; Material[:LavaWallSmoothL2D] = :LAVA_STONE ; Special[:LavaWallSmoothL2D] = :SMOOTH ; Direction[:LavaWallSmoothL2D] = '--S-WW--'
|
|
ENUM[276] = :LavaWallSmoothLD2 ; NUME[:LavaWallSmoothLD2] = 276 ; Caption[:LavaWallSmoothLD2] = 'smooth obsidian wall LD2' ; Shape[:LavaWallSmoothLD2] = :WALL ; Material[:LavaWallSmoothLD2] = :LAVA_STONE ; Special[:LavaWallSmoothLD2] = :SMOOTH ; Direction[:LavaWallSmoothLD2] = '--SSW---'
|
|
ENUM[277] = :LavaWallSmoothLRUD ; NUME[:LavaWallSmoothLRUD] = 277 ; Caption[:LavaWallSmoothLRUD] = 'smooth obsidian wall LRUD' ; Shape[:LavaWallSmoothLRUD] = :WALL ; Material[:LavaWallSmoothLRUD] = :LAVA_STONE ; Special[:LavaWallSmoothLRUD] = :SMOOTH ; Direction[:LavaWallSmoothLRUD] = 'N-S-W-E-'
|
|
ENUM[278] = :LavaWallSmoothRUD ; NUME[:LavaWallSmoothRUD] = 278 ; Caption[:LavaWallSmoothRUD] = 'smooth obsidian wall RUD' ; Shape[:LavaWallSmoothRUD] = :WALL ; Material[:LavaWallSmoothRUD] = :LAVA_STONE ; Special[:LavaWallSmoothRUD] = :SMOOTH ; Direction[:LavaWallSmoothRUD] = 'N-S---E-'
|
|
ENUM[279] = :LavaWallSmoothLRD ; NUME[:LavaWallSmoothLRD] = 279 ; Caption[:LavaWallSmoothLRD] = 'smooth obsidian wall LRD' ; Shape[:LavaWallSmoothLRD] = :WALL ; Material[:LavaWallSmoothLRD] = :LAVA_STONE ; Special[:LavaWallSmoothLRD] = :SMOOTH ; Direction[:LavaWallSmoothLRD] = '--S-W-E-'
|
|
ENUM[280] = :LavaWallSmoothLRU ; NUME[:LavaWallSmoothLRU] = 280 ; Caption[:LavaWallSmoothLRU] = 'smooth obsidian wall LRU' ; Shape[:LavaWallSmoothLRU] = :WALL ; Material[:LavaWallSmoothLRU] = :LAVA_STONE ; Special[:LavaWallSmoothLRU] = :SMOOTH ; Direction[:LavaWallSmoothLRU] = 'N---W-E-'
|
|
ENUM[281] = :LavaWallSmoothLUD ; NUME[:LavaWallSmoothLUD] = 281 ; Caption[:LavaWallSmoothLUD] = 'smooth obsidian wall LUD' ; Shape[:LavaWallSmoothLUD] = :WALL ; Material[:LavaWallSmoothLUD] = :LAVA_STONE ; Special[:LavaWallSmoothLUD] = :SMOOTH ; Direction[:LavaWallSmoothLUD] = 'N-S-W---'
|
|
ENUM[282] = :LavaWallSmoothRD ; NUME[:LavaWallSmoothRD] = 282 ; Caption[:LavaWallSmoothRD] = 'smooth obsidian wall RD' ; Shape[:LavaWallSmoothRD] = :WALL ; Material[:LavaWallSmoothRD] = :LAVA_STONE ; Special[:LavaWallSmoothRD] = :SMOOTH ; Direction[:LavaWallSmoothRD] = '--S---E-'
|
|
ENUM[283] = :LavaWallSmoothRU ; NUME[:LavaWallSmoothRU] = 283 ; Caption[:LavaWallSmoothRU] = 'smooth obsidian wall RU' ; Shape[:LavaWallSmoothRU] = :WALL ; Material[:LavaWallSmoothRU] = :LAVA_STONE ; Special[:LavaWallSmoothRU] = :SMOOTH ; Direction[:LavaWallSmoothRU] = 'N-----E-'
|
|
ENUM[284] = :LavaWallSmoothLU ; NUME[:LavaWallSmoothLU] = 284 ; Caption[:LavaWallSmoothLU] = 'smooth obsidian wall LU' ; Shape[:LavaWallSmoothLU] = :WALL ; Material[:LavaWallSmoothLU] = :LAVA_STONE ; Special[:LavaWallSmoothLU] = :SMOOTH ; Direction[:LavaWallSmoothLU] = 'N---W---'
|
|
ENUM[285] = :LavaWallSmoothLD ; NUME[:LavaWallSmoothLD] = 285 ; Caption[:LavaWallSmoothLD] = 'smooth obsidian wall LD' ; Shape[:LavaWallSmoothLD] = :WALL ; Material[:LavaWallSmoothLD] = :LAVA_STONE ; Special[:LavaWallSmoothLD] = :SMOOTH ; Direction[:LavaWallSmoothLD] = '--S-W---'
|
|
ENUM[286] = :LavaWallSmoothUD ; NUME[:LavaWallSmoothUD] = 286 ; Caption[:LavaWallSmoothUD] = 'smooth obsidian wall UD' ; Shape[:LavaWallSmoothUD] = :WALL ; Material[:LavaWallSmoothUD] = :LAVA_STONE ; Special[:LavaWallSmoothUD] = :SMOOTH ; Direction[:LavaWallSmoothUD] = 'N-S-----'
|
|
ENUM[287] = :LavaWallSmoothLR ; NUME[:LavaWallSmoothLR] = 287 ; Caption[:LavaWallSmoothLR] = 'smooth obsidian wall LR' ; Shape[:LavaWallSmoothLR] = :WALL ; Material[:LavaWallSmoothLR] = :LAVA_STONE ; Special[:LavaWallSmoothLR] = :SMOOTH ; Direction[:LavaWallSmoothLR] = '----W-E-'
|
|
ENUM[288] = :FeatureWallSmoothRD2 ; NUME[:FeatureWallSmoothRD2] = 288 ; Caption[:FeatureWallSmoothRD2] = 'smooth featstone wall RD2' ; Shape[:FeatureWallSmoothRD2] = :WALL ; Material[:FeatureWallSmoothRD2] = :FEATURE ; Special[:FeatureWallSmoothRD2] = :SMOOTH ; Direction[:FeatureWallSmoothRD2] = '--SS--E-'
|
|
ENUM[289] = :FeatureWallSmoothR2D ; NUME[:FeatureWallSmoothR2D] = 289 ; Caption[:FeatureWallSmoothR2D] = 'smooth featstone wall R2D' ; Shape[:FeatureWallSmoothR2D] = :WALL ; Material[:FeatureWallSmoothR2D] = :FEATURE ; Special[:FeatureWallSmoothR2D] = :SMOOTH ; Direction[:FeatureWallSmoothR2D] = '--S---EE'
|
|
ENUM[290] = :FeatureWallSmoothR2U ; NUME[:FeatureWallSmoothR2U] = 290 ; Caption[:FeatureWallSmoothR2U] = 'smooth featstone wall R2U' ; Shape[:FeatureWallSmoothR2U] = :WALL ; Material[:FeatureWallSmoothR2U] = :FEATURE ; Special[:FeatureWallSmoothR2U] = :SMOOTH ; Direction[:FeatureWallSmoothR2U] = 'N-----EE'
|
|
ENUM[291] = :FeatureWallSmoothRU2 ; NUME[:FeatureWallSmoothRU2] = 291 ; Caption[:FeatureWallSmoothRU2] = 'smooth featstone wall RU2' ; Shape[:FeatureWallSmoothRU2] = :WALL ; Material[:FeatureWallSmoothRU2] = :FEATURE ; Special[:FeatureWallSmoothRU2] = :SMOOTH ; Direction[:FeatureWallSmoothRU2] = 'NN----E-'
|
|
ENUM[292] = :FeatureWallSmoothL2U ; NUME[:FeatureWallSmoothL2U] = 292 ; Caption[:FeatureWallSmoothL2U] = 'smooth featstone wall L2U' ; Shape[:FeatureWallSmoothL2U] = :WALL ; Material[:FeatureWallSmoothL2U] = :FEATURE ; Special[:FeatureWallSmoothL2U] = :SMOOTH ; Direction[:FeatureWallSmoothL2U] = 'N---WW--'
|
|
ENUM[293] = :FeatureWallSmoothLU2 ; NUME[:FeatureWallSmoothLU2] = 293 ; Caption[:FeatureWallSmoothLU2] = 'smooth featstone wall LU2' ; Shape[:FeatureWallSmoothLU2] = :WALL ; Material[:FeatureWallSmoothLU2] = :FEATURE ; Special[:FeatureWallSmoothLU2] = :SMOOTH ; Direction[:FeatureWallSmoothLU2] = 'NN--W---'
|
|
ENUM[294] = :FeatureWallSmoothL2D ; NUME[:FeatureWallSmoothL2D] = 294 ; Caption[:FeatureWallSmoothL2D] = 'smooth featstone wall L2D' ; Shape[:FeatureWallSmoothL2D] = :WALL ; Material[:FeatureWallSmoothL2D] = :FEATURE ; Special[:FeatureWallSmoothL2D] = :SMOOTH ; Direction[:FeatureWallSmoothL2D] = '--S-WW--'
|
|
ENUM[295] = :FeatureWallSmoothLD2 ; NUME[:FeatureWallSmoothLD2] = 295 ; Caption[:FeatureWallSmoothLD2] = 'smooth featstone wall LD2' ; Shape[:FeatureWallSmoothLD2] = :WALL ; Material[:FeatureWallSmoothLD2] = :FEATURE ; Special[:FeatureWallSmoothLD2] = :SMOOTH ; Direction[:FeatureWallSmoothLD2] = '--SSW---'
|
|
ENUM[296] = :FeatureWallSmoothLRUD ; NUME[:FeatureWallSmoothLRUD] = 296 ; Caption[:FeatureWallSmoothLRUD] = 'smooth featstone wall LRUD' ; Shape[:FeatureWallSmoothLRUD] = :WALL ; Material[:FeatureWallSmoothLRUD] = :FEATURE ; Special[:FeatureWallSmoothLRUD] = :SMOOTH ; Direction[:FeatureWallSmoothLRUD] = 'N-S-W-E-'
|
|
ENUM[297] = :FeatureWallSmoothRUD ; NUME[:FeatureWallSmoothRUD] = 297 ; Caption[:FeatureWallSmoothRUD] = 'smooth featstone wall RUD' ; Shape[:FeatureWallSmoothRUD] = :WALL ; Material[:FeatureWallSmoothRUD] = :FEATURE ; Special[:FeatureWallSmoothRUD] = :SMOOTH ; Direction[:FeatureWallSmoothRUD] = 'N-S---E-'
|
|
ENUM[298] = :FeatureWallSmoothLRD ; NUME[:FeatureWallSmoothLRD] = 298 ; Caption[:FeatureWallSmoothLRD] = 'smooth featstone wall LRD' ; Shape[:FeatureWallSmoothLRD] = :WALL ; Material[:FeatureWallSmoothLRD] = :FEATURE ; Special[:FeatureWallSmoothLRD] = :SMOOTH ; Direction[:FeatureWallSmoothLRD] = '--S-W-E-'
|
|
ENUM[299] = :FeatureWallSmoothLRU ; NUME[:FeatureWallSmoothLRU] = 299 ; Caption[:FeatureWallSmoothLRU] = 'smooth featstone wall LRU' ; Shape[:FeatureWallSmoothLRU] = :WALL ; Material[:FeatureWallSmoothLRU] = :FEATURE ; Special[:FeatureWallSmoothLRU] = :SMOOTH ; Direction[:FeatureWallSmoothLRU] = 'N---W-E-'
|
|
ENUM[300] = :FeatureWallSmoothLUD ; NUME[:FeatureWallSmoothLUD] = 300 ; Caption[:FeatureWallSmoothLUD] = 'smooth featstone wall LUD' ; Shape[:FeatureWallSmoothLUD] = :WALL ; Material[:FeatureWallSmoothLUD] = :FEATURE ; Special[:FeatureWallSmoothLUD] = :SMOOTH ; Direction[:FeatureWallSmoothLUD] = 'N-S-W---'
|
|
ENUM[301] = :FeatureWallSmoothRD ; NUME[:FeatureWallSmoothRD] = 301 ; Caption[:FeatureWallSmoothRD] = 'smooth featstone wall RD' ; Shape[:FeatureWallSmoothRD] = :WALL ; Material[:FeatureWallSmoothRD] = :FEATURE ; Special[:FeatureWallSmoothRD] = :SMOOTH ; Direction[:FeatureWallSmoothRD] = '--S---E-'
|
|
ENUM[302] = :FeatureWallSmoothRU ; NUME[:FeatureWallSmoothRU] = 302 ; Caption[:FeatureWallSmoothRU] = 'smooth featstone wall RU' ; Shape[:FeatureWallSmoothRU] = :WALL ; Material[:FeatureWallSmoothRU] = :FEATURE ; Special[:FeatureWallSmoothRU] = :SMOOTH ; Direction[:FeatureWallSmoothRU] = 'N-----E-'
|
|
ENUM[303] = :FeatureWallSmoothLU ; NUME[:FeatureWallSmoothLU] = 303 ; Caption[:FeatureWallSmoothLU] = 'smooth featstone wall LU' ; Shape[:FeatureWallSmoothLU] = :WALL ; Material[:FeatureWallSmoothLU] = :FEATURE ; Special[:FeatureWallSmoothLU] = :SMOOTH ; Direction[:FeatureWallSmoothLU] = 'N---W---'
|
|
ENUM[304] = :FeatureWallSmoothLD ; NUME[:FeatureWallSmoothLD] = 304 ; Caption[:FeatureWallSmoothLD] = 'smooth featstone wall LD' ; Shape[:FeatureWallSmoothLD] = :WALL ; Material[:FeatureWallSmoothLD] = :FEATURE ; Special[:FeatureWallSmoothLD] = :SMOOTH ; Direction[:FeatureWallSmoothLD] = '--S-W---'
|
|
ENUM[305] = :FeatureWallSmoothUD ; NUME[:FeatureWallSmoothUD] = 305 ; Caption[:FeatureWallSmoothUD] = 'smooth featstone wall UD' ; Shape[:FeatureWallSmoothUD] = :WALL ; Material[:FeatureWallSmoothUD] = :FEATURE ; Special[:FeatureWallSmoothUD] = :SMOOTH ; Direction[:FeatureWallSmoothUD] = 'N-S-----'
|
|
ENUM[306] = :FeatureWallSmoothLR ; NUME[:FeatureWallSmoothLR] = 306 ; Caption[:FeatureWallSmoothLR] = 'smooth featstone wall LR' ; Shape[:FeatureWallSmoothLR] = :WALL ; Material[:FeatureWallSmoothLR] = :FEATURE ; Special[:FeatureWallSmoothLR] = :SMOOTH ; Direction[:FeatureWallSmoothLR] = '----W-E-'
|
|
ENUM[307] = :StoneWallSmoothRD2 ; NUME[:StoneWallSmoothRD2] = 307 ; Caption[:StoneWallSmoothRD2] = 'smooth stone wall RD2' ; Shape[:StoneWallSmoothRD2] = :WALL ; Material[:StoneWallSmoothRD2] = :STONE ; Special[:StoneWallSmoothRD2] = :SMOOTH ; Direction[:StoneWallSmoothRD2] = '--SS--E-'
|
|
ENUM[308] = :StoneWallSmoothR2D ; NUME[:StoneWallSmoothR2D] = 308 ; Caption[:StoneWallSmoothR2D] = 'smooth stone wall R2D' ; Shape[:StoneWallSmoothR2D] = :WALL ; Material[:StoneWallSmoothR2D] = :STONE ; Special[:StoneWallSmoothR2D] = :SMOOTH ; Direction[:StoneWallSmoothR2D] = '--S---EE'
|
|
ENUM[309] = :StoneWallSmoothR2U ; NUME[:StoneWallSmoothR2U] = 309 ; Caption[:StoneWallSmoothR2U] = 'smooth stone wall R2U' ; Shape[:StoneWallSmoothR2U] = :WALL ; Material[:StoneWallSmoothR2U] = :STONE ; Special[:StoneWallSmoothR2U] = :SMOOTH ; Direction[:StoneWallSmoothR2U] = 'N-----EE'
|
|
ENUM[310] = :StoneWallSmoothRU2 ; NUME[:StoneWallSmoothRU2] = 310 ; Caption[:StoneWallSmoothRU2] = 'smooth stone wall RU2' ; Shape[:StoneWallSmoothRU2] = :WALL ; Material[:StoneWallSmoothRU2] = :STONE ; Special[:StoneWallSmoothRU2] = :SMOOTH ; Direction[:StoneWallSmoothRU2] = 'NN----E-'
|
|
ENUM[311] = :StoneWallSmoothL2U ; NUME[:StoneWallSmoothL2U] = 311 ; Caption[:StoneWallSmoothL2U] = 'smooth stone wall L2U' ; Shape[:StoneWallSmoothL2U] = :WALL ; Material[:StoneWallSmoothL2U] = :STONE ; Special[:StoneWallSmoothL2U] = :SMOOTH ; Direction[:StoneWallSmoothL2U] = 'N---WW--'
|
|
ENUM[312] = :StoneWallSmoothLU2 ; NUME[:StoneWallSmoothLU2] = 312 ; Caption[:StoneWallSmoothLU2] = 'smooth stone wall LU2' ; Shape[:StoneWallSmoothLU2] = :WALL ; Material[:StoneWallSmoothLU2] = :STONE ; Special[:StoneWallSmoothLU2] = :SMOOTH ; Direction[:StoneWallSmoothLU2] = 'NN--W---'
|
|
ENUM[313] = :StoneWallSmoothL2D ; NUME[:StoneWallSmoothL2D] = 313 ; Caption[:StoneWallSmoothL2D] = 'smooth stone wall L2D' ; Shape[:StoneWallSmoothL2D] = :WALL ; Material[:StoneWallSmoothL2D] = :STONE ; Special[:StoneWallSmoothL2D] = :SMOOTH ; Direction[:StoneWallSmoothL2D] = '--S-WW--'
|
|
ENUM[314] = :StoneWallSmoothLD2 ; NUME[:StoneWallSmoothLD2] = 314 ; Caption[:StoneWallSmoothLD2] = 'smooth stone wall LD2' ; Shape[:StoneWallSmoothLD2] = :WALL ; Material[:StoneWallSmoothLD2] = :STONE ; Special[:StoneWallSmoothLD2] = :SMOOTH ; Direction[:StoneWallSmoothLD2] = '--SSW---'
|
|
ENUM[315] = :StoneWallSmoothLRUD ; NUME[:StoneWallSmoothLRUD] = 315 ; Caption[:StoneWallSmoothLRUD] = 'smooth stone wall LRUD' ; Shape[:StoneWallSmoothLRUD] = :WALL ; Material[:StoneWallSmoothLRUD] = :STONE ; Special[:StoneWallSmoothLRUD] = :SMOOTH ; Direction[:StoneWallSmoothLRUD] = 'N-S-W-E-'
|
|
ENUM[316] = :StoneWallSmoothRUD ; NUME[:StoneWallSmoothRUD] = 316 ; Caption[:StoneWallSmoothRUD] = 'smooth stone wall RUD' ; Shape[:StoneWallSmoothRUD] = :WALL ; Material[:StoneWallSmoothRUD] = :STONE ; Special[:StoneWallSmoothRUD] = :SMOOTH ; Direction[:StoneWallSmoothRUD] = 'N-S---E-'
|
|
ENUM[317] = :StoneWallSmoothLRD ; NUME[:StoneWallSmoothLRD] = 317 ; Caption[:StoneWallSmoothLRD] = 'smooth stone wall LRD' ; Shape[:StoneWallSmoothLRD] = :WALL ; Material[:StoneWallSmoothLRD] = :STONE ; Special[:StoneWallSmoothLRD] = :SMOOTH ; Direction[:StoneWallSmoothLRD] = '--S-W-E-'
|
|
ENUM[318] = :StoneWallSmoothLRU ; NUME[:StoneWallSmoothLRU] = 318 ; Caption[:StoneWallSmoothLRU] = 'smooth stone wall LRU' ; Shape[:StoneWallSmoothLRU] = :WALL ; Material[:StoneWallSmoothLRU] = :STONE ; Special[:StoneWallSmoothLRU] = :SMOOTH ; Direction[:StoneWallSmoothLRU] = 'N---W-E-'
|
|
ENUM[319] = :StoneWallSmoothLUD ; NUME[:StoneWallSmoothLUD] = 319 ; Caption[:StoneWallSmoothLUD] = 'smooth stone wall LUD' ; Shape[:StoneWallSmoothLUD] = :WALL ; Material[:StoneWallSmoothLUD] = :STONE ; Special[:StoneWallSmoothLUD] = :SMOOTH ; Direction[:StoneWallSmoothLUD] = 'N-S-W---'
|
|
ENUM[320] = :StoneWallSmoothRD ; NUME[:StoneWallSmoothRD] = 320 ; Caption[:StoneWallSmoothRD] = 'smooth stone wall RD' ; Shape[:StoneWallSmoothRD] = :WALL ; Material[:StoneWallSmoothRD] = :STONE ; Special[:StoneWallSmoothRD] = :SMOOTH ; Direction[:StoneWallSmoothRD] = '--S---E-'
|
|
ENUM[321] = :StoneWallSmoothRU ; NUME[:StoneWallSmoothRU] = 321 ; Caption[:StoneWallSmoothRU] = 'smooth stone wall RU' ; Shape[:StoneWallSmoothRU] = :WALL ; Material[:StoneWallSmoothRU] = :STONE ; Special[:StoneWallSmoothRU] = :SMOOTH ; Direction[:StoneWallSmoothRU] = 'N-----E-'
|
|
ENUM[322] = :StoneWallSmoothLU ; NUME[:StoneWallSmoothLU] = 322 ; Caption[:StoneWallSmoothLU] = 'smooth stone wall LU' ; Shape[:StoneWallSmoothLU] = :WALL ; Material[:StoneWallSmoothLU] = :STONE ; Special[:StoneWallSmoothLU] = :SMOOTH ; Direction[:StoneWallSmoothLU] = 'N---W---'
|
|
ENUM[323] = :StoneWallSmoothLD ; NUME[:StoneWallSmoothLD] = 323 ; Caption[:StoneWallSmoothLD] = 'smooth stone wall LD' ; Shape[:StoneWallSmoothLD] = :WALL ; Material[:StoneWallSmoothLD] = :STONE ; Special[:StoneWallSmoothLD] = :SMOOTH ; Direction[:StoneWallSmoothLD] = '--S-W---'
|
|
ENUM[324] = :StoneWallSmoothUD ; NUME[:StoneWallSmoothUD] = 324 ; Caption[:StoneWallSmoothUD] = 'smooth stone wall UD' ; Shape[:StoneWallSmoothUD] = :WALL ; Material[:StoneWallSmoothUD] = :STONE ; Special[:StoneWallSmoothUD] = :SMOOTH ; Direction[:StoneWallSmoothUD] = 'N-S-----'
|
|
ENUM[325] = :StoneWallSmoothLR ; NUME[:StoneWallSmoothLR] = 325 ; Caption[:StoneWallSmoothLR] = 'smooth stone wall LR' ; Shape[:StoneWallSmoothLR] = :WALL ; Material[:StoneWallSmoothLR] = :STONE ; Special[:StoneWallSmoothLR] = :SMOOTH ; Direction[:StoneWallSmoothLR] = '----W-E-'
|
|
ENUM[326] = :LavaFortification ; NUME[:LavaFortification] = 326 ; Caption[:LavaFortification] = 'obsidian fortification' ; Shape[:LavaFortification] = :FORTIFICATION ; Material[:LavaFortification] = :LAVA_STONE
|
|
ENUM[327] = :FeatureFortification ; NUME[:FeatureFortification] = 327 ; Caption[:FeatureFortification] = 'featstone fortification' ; Shape[:FeatureFortification] = :FORTIFICATION ; Material[:FeatureFortification] = :FEATURE
|
|
ENUM[328] = :LavaWallWorn1 ; NUME[:LavaWallWorn1] = 328 ; Caption[:LavaWallWorn1] = 'worn 1 obsidian wall' ; Shape[:LavaWallWorn1] = :WALL ; Material[:LavaWallWorn1] = :LAVA_STONE ; Special[:LavaWallWorn1] = :WORN_1
|
|
ENUM[329] = :LavaWallWorn2 ; NUME[:LavaWallWorn2] = 329 ; Caption[:LavaWallWorn2] = 'worn 2 obsidian wall' ; Shape[:LavaWallWorn2] = :WALL ; Material[:LavaWallWorn2] = :LAVA_STONE ; Special[:LavaWallWorn2] = :WORN_2
|
|
ENUM[330] = :LavaWallWorn3 ; NUME[:LavaWallWorn3] = 330 ; Caption[:LavaWallWorn3] = 'worn 3 obsidian wall' ; Shape[:LavaWallWorn3] = :WALL ; Material[:LavaWallWorn3] = :LAVA_STONE ; Special[:LavaWallWorn3] = :WORN_3
|
|
ENUM[331] = :LavaWall ; NUME[:LavaWall] = 331 ; Caption[:LavaWall] = 'obsidian wall' ; Shape[:LavaWall] = :WALL ; Material[:LavaWall] = :LAVA_STONE ; Special[:LavaWall] = :NORMAL
|
|
ENUM[332] = :FeatureWallWorn1 ; NUME[:FeatureWallWorn1] = 332 ; Caption[:FeatureWallWorn1] = 'worn 1 featstone wall' ; Shape[:FeatureWallWorn1] = :WALL ; Material[:FeatureWallWorn1] = :FEATURE ; Special[:FeatureWallWorn1] = :WORN_1
|
|
ENUM[333] = :FeatureWallWorn2 ; NUME[:FeatureWallWorn2] = 333 ; Caption[:FeatureWallWorn2] = 'worn 2 featstone wall' ; Shape[:FeatureWallWorn2] = :WALL ; Material[:FeatureWallWorn2] = :FEATURE ; Special[:FeatureWallWorn2] = :WORN_2
|
|
ENUM[334] = :FeatureWallWorn3 ; NUME[:FeatureWallWorn3] = 334 ; Caption[:FeatureWallWorn3] = 'worn 3 featstone wall' ; Shape[:FeatureWallWorn3] = :WALL ; Material[:FeatureWallWorn3] = :FEATURE ; Special[:FeatureWallWorn3] = :WORN_3
|
|
ENUM[335] = :FeatureWall ; NUME[:FeatureWall] = 335 ; Caption[:FeatureWall] = 'featstone wall' ; Shape[:FeatureWall] = :WALL ; Material[:FeatureWall] = :FEATURE ; Special[:FeatureWall] = :NORMAL
|
|
ENUM[336] = :StoneFloor1 ; NUME[:StoneFloor1] = 336 ; Caption[:StoneFloor1] = 'stone floor' ; Shape[:StoneFloor1] = :FLOOR ; Material[:StoneFloor1] = :STONE ; Variant[:StoneFloor1] = :VAR_1 ; Special[:StoneFloor1] = :NORMAL
|
|
ENUM[337] = :StoneFloor2 ; NUME[:StoneFloor2] = 337 ; Caption[:StoneFloor2] = 'stone floor' ; Shape[:StoneFloor2] = :FLOOR ; Material[:StoneFloor2] = :STONE ; Variant[:StoneFloor2] = :VAR_2 ; Special[:StoneFloor2] = :NORMAL
|
|
ENUM[338] = :StoneFloor3 ; NUME[:StoneFloor3] = 338 ; Caption[:StoneFloor3] = 'stone floor' ; Shape[:StoneFloor3] = :FLOOR ; Material[:StoneFloor3] = :STONE ; Variant[:StoneFloor3] = :VAR_3 ; Special[:StoneFloor3] = :NORMAL
|
|
ENUM[339] = :StoneFloor4 ; NUME[:StoneFloor4] = 339 ; Caption[:StoneFloor4] = 'stone floor' ; Shape[:StoneFloor4] = :FLOOR ; Material[:StoneFloor4] = :STONE ; Variant[:StoneFloor4] = :VAR_4 ; Special[:StoneFloor4] = :NORMAL
|
|
ENUM[340] = :LavaFloor1 ; NUME[:LavaFloor1] = 340 ; Caption[:LavaFloor1] = 'obsidian floor' ; Shape[:LavaFloor1] = :FLOOR ; Material[:LavaFloor1] = :LAVA_STONE ; Variant[:LavaFloor1] = :VAR_1 ; Special[:LavaFloor1] = :NORMAL
|
|
ENUM[341] = :LavaFloor2 ; NUME[:LavaFloor2] = 341 ; Caption[:LavaFloor2] = 'obsidian floor' ; Shape[:LavaFloor2] = :FLOOR ; Material[:LavaFloor2] = :LAVA_STONE ; Variant[:LavaFloor2] = :VAR_2 ; Special[:LavaFloor2] = :NORMAL
|
|
ENUM[342] = :LavaFloor3 ; NUME[:LavaFloor3] = 342 ; Caption[:LavaFloor3] = 'obsidian floor' ; Shape[:LavaFloor3] = :FLOOR ; Material[:LavaFloor3] = :LAVA_STONE ; Variant[:LavaFloor3] = :VAR_3 ; Special[:LavaFloor3] = :NORMAL
|
|
ENUM[343] = :LavaFloor4 ; NUME[:LavaFloor4] = 343 ; Caption[:LavaFloor4] = 'obsidian floor' ; Shape[:LavaFloor4] = :FLOOR ; Material[:LavaFloor4] = :LAVA_STONE ; Variant[:LavaFloor4] = :VAR_4 ; Special[:LavaFloor4] = :NORMAL
|
|
ENUM[344] = :FeatureFloor1 ; NUME[:FeatureFloor1] = 344 ; Caption[:FeatureFloor1] = 'featstone floor' ; Shape[:FeatureFloor1] = :FLOOR ; Material[:FeatureFloor1] = :FEATURE ; Variant[:FeatureFloor1] = :VAR_1 ; Special[:FeatureFloor1] = :NORMAL
|
|
ENUM[345] = :FeatureFloor2 ; NUME[:FeatureFloor2] = 345 ; Caption[:FeatureFloor2] = 'featstone floor' ; Shape[:FeatureFloor2] = :FLOOR ; Material[:FeatureFloor2] = :FEATURE ; Variant[:FeatureFloor2] = :VAR_2 ; Special[:FeatureFloor2] = :NORMAL
|
|
ENUM[346] = :FeatureFloor3 ; NUME[:FeatureFloor3] = 346 ; Caption[:FeatureFloor3] = 'featstone floor' ; Shape[:FeatureFloor3] = :FLOOR ; Material[:FeatureFloor3] = :FEATURE ; Variant[:FeatureFloor3] = :VAR_3 ; Special[:FeatureFloor3] = :NORMAL
|
|
ENUM[347] = :FeatureFloor4 ; NUME[:FeatureFloor4] = 347 ; Caption[:FeatureFloor4] = 'featstone floor' ; Shape[:FeatureFloor4] = :FLOOR ; Material[:FeatureFloor4] = :FEATURE ; Variant[:FeatureFloor4] = :VAR_4 ; Special[:FeatureFloor4] = :NORMAL
|
|
ENUM[348] = :GrassDarkFloor1 ; NUME[:GrassDarkFloor1] = 348 ; Caption[:GrassDarkFloor1] = 'dark grass' ; Shape[:GrassDarkFloor1] = :FLOOR ; Material[:GrassDarkFloor1] = :GRASS_DARK ; Variant[:GrassDarkFloor1] = :VAR_1
|
|
ENUM[349] = :GrassDarkFloor2 ; NUME[:GrassDarkFloor2] = 349 ; Caption[:GrassDarkFloor2] = 'dark grass' ; Shape[:GrassDarkFloor2] = :FLOOR ; Material[:GrassDarkFloor2] = :GRASS_DARK ; Variant[:GrassDarkFloor2] = :VAR_2
|
|
ENUM[350] = :GrassDarkFloor3 ; NUME[:GrassDarkFloor3] = 350 ; Caption[:GrassDarkFloor3] = 'dark grass' ; Shape[:GrassDarkFloor3] = :FLOOR ; Material[:GrassDarkFloor3] = :GRASS_DARK ; Variant[:GrassDarkFloor3] = :VAR_3
|
|
ENUM[351] = :GrassDarkFloor4 ; NUME[:GrassDarkFloor4] = 351 ; Caption[:GrassDarkFloor4] = 'dark grass' ; Shape[:GrassDarkFloor4] = :FLOOR ; Material[:GrassDarkFloor4] = :GRASS_DARK ; Variant[:GrassDarkFloor4] = :VAR_4
|
|
ENUM[352] = :SoilFloor1 ; NUME[:SoilFloor1] = 352 ; Caption[:SoilFloor1] = 'soil floor' ; Shape[:SoilFloor1] = :FLOOR ; Material[:SoilFloor1] = :SOIL ; Variant[:SoilFloor1] = :VAR_1 ; Special[:SoilFloor1] = :NORMAL
|
|
ENUM[353] = :SoilFloor2 ; NUME[:SoilFloor2] = 353 ; Caption[:SoilFloor2] = 'soil floor' ; Shape[:SoilFloor2] = :FLOOR ; Material[:SoilFloor2] = :SOIL ; Variant[:SoilFloor2] = :VAR_2 ; Special[:SoilFloor2] = :NORMAL
|
|
ENUM[354] = :SoilFloor3 ; NUME[:SoilFloor3] = 354 ; Caption[:SoilFloor3] = 'soil floor' ; Shape[:SoilFloor3] = :FLOOR ; Material[:SoilFloor3] = :SOIL ; Variant[:SoilFloor3] = :VAR_3 ; Special[:SoilFloor3] = :NORMAL
|
|
ENUM[355] = :SoilFloor4 ; NUME[:SoilFloor4] = 355 ; Caption[:SoilFloor4] = 'soil floor' ; Shape[:SoilFloor4] = :FLOOR ; Material[:SoilFloor4] = :SOIL ; Variant[:SoilFloor4] = :VAR_4 ; Special[:SoilFloor4] = :NORMAL
|
|
ENUM[356] = :SoilWetFloor1 ; NUME[:SoilWetFloor1] = 356 ; Caption[:SoilWetFloor1] = 'wet soil floor' ; Shape[:SoilWetFloor1] = :FLOOR ; Material[:SoilWetFloor1] = :SOIL ; Variant[:SoilWetFloor1] = :VAR_1 ; Special[:SoilWetFloor1] = :WET
|
|
ENUM[357] = :SoilWetFloor2 ; NUME[:SoilWetFloor2] = 357 ; Caption[:SoilWetFloor2] = 'wet soil floor' ; Shape[:SoilWetFloor2] = :FLOOR ; Material[:SoilWetFloor2] = :SOIL ; Variant[:SoilWetFloor2] = :VAR_2 ; Special[:SoilWetFloor2] = :WET
|
|
ENUM[358] = :SoilWetFloor3 ; NUME[:SoilWetFloor3] = 358 ; Caption[:SoilWetFloor3] = 'wet soil floor' ; Shape[:SoilWetFloor3] = :FLOOR ; Material[:SoilWetFloor3] = :SOIL ; Variant[:SoilWetFloor3] = :VAR_3 ; Special[:SoilWetFloor3] = :WET
|
|
ENUM[359] = :SoilWetFloor4 ; NUME[:SoilWetFloor4] = 359 ; Caption[:SoilWetFloor4] = 'wet soil floor' ; Shape[:SoilWetFloor4] = :FLOOR ; Material[:SoilWetFloor4] = :SOIL ; Variant[:SoilWetFloor4] = :VAR_4 ; Special[:SoilWetFloor4] = :WET
|
|
ENUM[360] = :FrozenFortification ; NUME[:FrozenFortification] = 360 ; Caption[:FrozenFortification] = 'ice fortification' ; Shape[:FrozenFortification] = :FORTIFICATION ; Material[:FrozenFortification] = :FROZEN_LIQUID
|
|
ENUM[361] = :FrozenWallWorn1 ; NUME[:FrozenWallWorn1] = 361 ; Caption[:FrozenWallWorn1] = 'worn 1 ice wall' ; Shape[:FrozenWallWorn1] = :WALL ; Material[:FrozenWallWorn1] = :FROZEN_LIQUID ; Special[:FrozenWallWorn1] = :WORN_1
|
|
ENUM[362] = :FrozenWallWorn2 ; NUME[:FrozenWallWorn2] = 362 ; Caption[:FrozenWallWorn2] = 'worn 2 ice wall' ; Shape[:FrozenWallWorn2] = :WALL ; Material[:FrozenWallWorn2] = :FROZEN_LIQUID ; Special[:FrozenWallWorn2] = :WORN_2
|
|
ENUM[363] = :FrozenWallWorn3 ; NUME[:FrozenWallWorn3] = 363 ; Caption[:FrozenWallWorn3] = 'worn 3 ice wall' ; Shape[:FrozenWallWorn3] = :WALL ; Material[:FrozenWallWorn3] = :FROZEN_LIQUID ; Special[:FrozenWallWorn3] = :WORN_3
|
|
ENUM[364] = :FrozenWall ; NUME[:FrozenWall] = 364 ; Caption[:FrozenWall] = 'ice wall' ; Shape[:FrozenWall] = :WALL ; Material[:FrozenWall] = :FROZEN_LIQUID ; Special[:FrozenWall] = :NORMAL
|
|
ENUM[365] = :RiverN ; NUME[:RiverN] = 365 ; Caption[:RiverN] = 'river N' ; Shape[:RiverN] = :FLOOR ; Material[:RiverN] = :RIVER ; Special[:RiverN] = :NORMAL ; Direction[:RiverN] = 'N'
|
|
ENUM[366] = :RiverS ; NUME[:RiverS] = 366 ; Caption[:RiverS] = 'river S' ; Shape[:RiverS] = :FLOOR ; Material[:RiverS] = :RIVER ; Special[:RiverS] = :NORMAL ; Direction[:RiverS] = 'S'
|
|
ENUM[367] = :RiverE ; NUME[:RiverE] = 367 ; Caption[:RiverE] = 'river E' ; Shape[:RiverE] = :FLOOR ; Material[:RiverE] = :RIVER ; Special[:RiverE] = :NORMAL ; Direction[:RiverE] = 'E'
|
|
ENUM[368] = :RiverW ; NUME[:RiverW] = 368 ; Caption[:RiverW] = 'river W' ; Shape[:RiverW] = :FLOOR ; Material[:RiverW] = :RIVER ; Special[:RiverW] = :NORMAL ; Direction[:RiverW] = 'W'
|
|
ENUM[369] = :RiverNW ; NUME[:RiverNW] = 369 ; Caption[:RiverNW] = 'river NW' ; Shape[:RiverNW] = :FLOOR ; Material[:RiverNW] = :RIVER ; Special[:RiverNW] = :NORMAL ; Direction[:RiverNW] = 'NW'
|
|
ENUM[370] = :RiverNE ; NUME[:RiverNE] = 370 ; Caption[:RiverNE] = 'river NE' ; Shape[:RiverNE] = :FLOOR ; Material[:RiverNE] = :RIVER ; Special[:RiverNE] = :NORMAL ; Direction[:RiverNE] = 'NE'
|
|
ENUM[371] = :RiverSW ; NUME[:RiverSW] = 371 ; Caption[:RiverSW] = 'river SW' ; Shape[:RiverSW] = :FLOOR ; Material[:RiverSW] = :RIVER ; Special[:RiverSW] = :NORMAL ; Direction[:RiverSW] = 'SW'
|
|
ENUM[372] = :RiverSE ; NUME[:RiverSE] = 372 ; Caption[:RiverSE] = 'river SE' ; Shape[:RiverSE] = :FLOOR ; Material[:RiverSE] = :RIVER ; Special[:RiverSE] = :NORMAL ; Direction[:RiverSE] = 'SE'
|
|
ENUM[373] = :BrookN ; NUME[:BrookN] = 373 ; Caption[:BrookN] = 'brook bed N' ; Shape[:BrookN] = :BROOK_BED ; Material[:BrookN] = :BROOK ; Direction[:BrookN] = 'N'
|
|
ENUM[374] = :BrookS ; NUME[:BrookS] = 374 ; Caption[:BrookS] = 'brook bed S' ; Shape[:BrookS] = :BROOK_BED ; Material[:BrookS] = :BROOK ; Direction[:BrookS] = 'S'
|
|
ENUM[375] = :BrookE ; NUME[:BrookE] = 375 ; Caption[:BrookE] = 'brook bed E' ; Shape[:BrookE] = :BROOK_BED ; Material[:BrookE] = :BROOK ; Direction[:BrookE] = 'E'
|
|
ENUM[376] = :BrookW ; NUME[:BrookW] = 376 ; Caption[:BrookW] = 'brook bed W' ; Shape[:BrookW] = :BROOK_BED ; Material[:BrookW] = :BROOK ; Direction[:BrookW] = 'W'
|
|
ENUM[377] = :BrookNW ; NUME[:BrookNW] = 377 ; Caption[:BrookNW] = 'brook bed NW' ; Shape[:BrookNW] = :BROOK_BED ; Material[:BrookNW] = :BROOK ; Direction[:BrookNW] = 'NW'
|
|
ENUM[378] = :BrookNE ; NUME[:BrookNE] = 378 ; Caption[:BrookNE] = 'brook bed NE' ; Shape[:BrookNE] = :BROOK_BED ; Material[:BrookNE] = :BROOK ; Direction[:BrookNE] = 'NE'
|
|
ENUM[379] = :BrookSW ; NUME[:BrookSW] = 379 ; Caption[:BrookSW] = 'brook bed SW' ; Shape[:BrookSW] = :BROOK_BED ; Material[:BrookSW] = :BROOK ; Direction[:BrookSW] = 'SW'
|
|
ENUM[380] = :BrookSE ; NUME[:BrookSE] = 380 ; Caption[:BrookSE] = 'brook bed SE' ; Shape[:BrookSE] = :BROOK_BED ; Material[:BrookSE] = :BROOK ; Direction[:BrookSE] = 'SE'
|
|
ENUM[381] = :BrookTop ; NUME[:BrookTop] = 381 ; Caption[:BrookTop] = 'brook top' ; Shape[:BrookTop] = :BROOK_TOP ; Material[:BrookTop] = :BROOK
|
|
ENUM[387] = :GrassDryFloor1 ; NUME[:GrassDryFloor1] = 387 ; Caption[:GrassDryFloor1] = 'dry grass' ; Shape[:GrassDryFloor1] = :FLOOR ; Material[:GrassDryFloor1] = :GRASS_DRY ; Variant[:GrassDryFloor1] = :VAR_1
|
|
ENUM[388] = :GrassDryFloor2 ; NUME[:GrassDryFloor2] = 388 ; Caption[:GrassDryFloor2] = 'dry grass' ; Shape[:GrassDryFloor2] = :FLOOR ; Material[:GrassDryFloor2] = :GRASS_DRY ; Variant[:GrassDryFloor2] = :VAR_2
|
|
ENUM[389] = :GrassDryFloor3 ; NUME[:GrassDryFloor3] = 389 ; Caption[:GrassDryFloor3] = 'dry grass' ; Shape[:GrassDryFloor3] = :FLOOR ; Material[:GrassDryFloor3] = :GRASS_DRY ; Variant[:GrassDryFloor3] = :VAR_3
|
|
ENUM[390] = :GrassDryFloor4 ; NUME[:GrassDryFloor4] = 390 ; Caption[:GrassDryFloor4] = 'dry grass' ; Shape[:GrassDryFloor4] = :FLOOR ; Material[:GrassDryFloor4] = :GRASS_DRY ; Variant[:GrassDryFloor4] = :VAR_4
|
|
ENUM[391] = :TreeDead ; NUME[:TreeDead] = 391 ; Caption[:TreeDead] = 'dead tree' ; Shape[:TreeDead] = :TREE ; Material[:TreeDead] = :PLANT ; Special[:TreeDead] = :DEAD
|
|
ENUM[392] = :SaplingDead ; NUME[:SaplingDead] = 392 ; Caption[:SaplingDead] = 'dead sapling' ; Shape[:SaplingDead] = :SAPLING ; Material[:SaplingDead] = :PLANT ; Special[:SaplingDead] = :DEAD
|
|
ENUM[393] = :ShrubDead ; NUME[:ShrubDead] = 393 ; Caption[:ShrubDead] = 'dead shrub' ; Shape[:ShrubDead] = :SHRUB ; Material[:ShrubDead] = :PLANT ; Special[:ShrubDead] = :DEAD
|
|
ENUM[394] = :GrassDeadFloor1 ; NUME[:GrassDeadFloor1] = 394 ; Caption[:GrassDeadFloor1] = 'dead grass' ; Shape[:GrassDeadFloor1] = :FLOOR ; Material[:GrassDeadFloor1] = :GRASS_DEAD ; Variant[:GrassDeadFloor1] = :VAR_1
|
|
ENUM[395] = :GrassDeadFloor2 ; NUME[:GrassDeadFloor2] = 395 ; Caption[:GrassDeadFloor2] = 'dead grass' ; Shape[:GrassDeadFloor2] = :FLOOR ; Material[:GrassDeadFloor2] = :GRASS_DEAD ; Variant[:GrassDeadFloor2] = :VAR_2
|
|
ENUM[396] = :GrassDeadFloor3 ; NUME[:GrassDeadFloor3] = 396 ; Caption[:GrassDeadFloor3] = 'dead grass' ; Shape[:GrassDeadFloor3] = :FLOOR ; Material[:GrassDeadFloor3] = :GRASS_DEAD ; Variant[:GrassDeadFloor3] = :VAR_3
|
|
ENUM[397] = :GrassDeadFloor4 ; NUME[:GrassDeadFloor4] = 397 ; Caption[:GrassDeadFloor4] = 'dead grass' ; Shape[:GrassDeadFloor4] = :FLOOR ; Material[:GrassDeadFloor4] = :GRASS_DEAD ; Variant[:GrassDeadFloor4] = :VAR_4
|
|
ENUM[398] = :GrassLightFloor1 ; NUME[:GrassLightFloor1] = 398 ; Caption[:GrassLightFloor1] = 'light grass' ; Shape[:GrassLightFloor1] = :FLOOR ; Material[:GrassLightFloor1] = :GRASS_LIGHT ; Variant[:GrassLightFloor1] = :VAR_1
|
|
ENUM[399] = :GrassLightFloor2 ; NUME[:GrassLightFloor2] = 399 ; Caption[:GrassLightFloor2] = 'light grass' ; Shape[:GrassLightFloor2] = :FLOOR ; Material[:GrassLightFloor2] = :GRASS_LIGHT ; Variant[:GrassLightFloor2] = :VAR_2
|
|
ENUM[400] = :GrassLightFloor3 ; NUME[:GrassLightFloor3] = 400 ; Caption[:GrassLightFloor3] = 'light grass' ; Shape[:GrassLightFloor3] = :FLOOR ; Material[:GrassLightFloor3] = :GRASS_LIGHT ; Variant[:GrassLightFloor3] = :VAR_3
|
|
ENUM[401] = :GrassLightFloor4 ; NUME[:GrassLightFloor4] = 401 ; Caption[:GrassLightFloor4] = 'light grass' ; Shape[:GrassLightFloor4] = :FLOOR ; Material[:GrassLightFloor4] = :GRASS_LIGHT ; Variant[:GrassLightFloor4] = :VAR_4
|
|
ENUM[402] = :StoneBoulder ; NUME[:StoneBoulder] = 402 ; Caption[:StoneBoulder] = 'boulder' ; Shape[:StoneBoulder] = :BOULDER ; Material[:StoneBoulder] = :STONE
|
|
ENUM[403] = :LavaBoulder ; NUME[:LavaBoulder] = 403 ; Caption[:LavaBoulder] = 'obsidian boulder' ; Shape[:LavaBoulder] = :BOULDER ; Material[:LavaBoulder] = :LAVA_STONE
|
|
ENUM[404] = :FeatureBoulder ; NUME[:FeatureBoulder] = 404 ; Caption[:FeatureBoulder] = 'featstone boulder' ; Shape[:FeatureBoulder] = :BOULDER ; Material[:FeatureBoulder] = :FEATURE
|
|
ENUM[405] = :StonePebbles1 ; NUME[:StonePebbles1] = 405 ; Caption[:StonePebbles1] = 'stone pebbles' ; Shape[:StonePebbles1] = :PEBBLES ; Material[:StonePebbles1] = :STONE ; Variant[:StonePebbles1] = :VAR_1
|
|
ENUM[406] = :StonePebbles2 ; NUME[:StonePebbles2] = 406 ; Caption[:StonePebbles2] = 'stone pebbles' ; Shape[:StonePebbles2] = :PEBBLES ; Material[:StonePebbles2] = :STONE ; Variant[:StonePebbles2] = :VAR_2
|
|
ENUM[407] = :StonePebbles3 ; NUME[:StonePebbles3] = 407 ; Caption[:StonePebbles3] = 'stone pebbles' ; Shape[:StonePebbles3] = :PEBBLES ; Material[:StonePebbles3] = :STONE ; Variant[:StonePebbles3] = :VAR_3
|
|
ENUM[408] = :StonePebbles4 ; NUME[:StonePebbles4] = 408 ; Caption[:StonePebbles4] = 'stone pebbles' ; Shape[:StonePebbles4] = :PEBBLES ; Material[:StonePebbles4] = :STONE ; Variant[:StonePebbles4] = :VAR_4
|
|
ENUM[409] = :LavaPebbles1 ; NUME[:LavaPebbles1] = 409 ; Caption[:LavaPebbles1] = 'obsidian pebbles' ; Shape[:LavaPebbles1] = :PEBBLES ; Material[:LavaPebbles1] = :LAVA_STONE ; Variant[:LavaPebbles1] = :VAR_1
|
|
ENUM[410] = :LavaPebbles2 ; NUME[:LavaPebbles2] = 410 ; Caption[:LavaPebbles2] = 'obsidian pebbles' ; Shape[:LavaPebbles2] = :PEBBLES ; Material[:LavaPebbles2] = :LAVA_STONE ; Variant[:LavaPebbles2] = :VAR_2
|
|
ENUM[411] = :LavaPebbles3 ; NUME[:LavaPebbles3] = 411 ; Caption[:LavaPebbles3] = 'obsidian pebbles' ; Shape[:LavaPebbles3] = :PEBBLES ; Material[:LavaPebbles3] = :LAVA_STONE ; Variant[:LavaPebbles3] = :VAR_3
|
|
ENUM[412] = :LavaPebbles4 ; NUME[:LavaPebbles4] = 412 ; Caption[:LavaPebbles4] = 'obsidian pebbles' ; Shape[:LavaPebbles4] = :PEBBLES ; Material[:LavaPebbles4] = :LAVA_STONE ; Variant[:LavaPebbles4] = :VAR_4
|
|
ENUM[413] = :FeaturePebbles1 ; NUME[:FeaturePebbles1] = 413 ; Caption[:FeaturePebbles1] = 'featstone pebbles' ; Shape[:FeaturePebbles1] = :PEBBLES ; Material[:FeaturePebbles1] = :FEATURE ; Variant[:FeaturePebbles1] = :VAR_1
|
|
ENUM[414] = :FeaturePebbles2 ; NUME[:FeaturePebbles2] = 414 ; Caption[:FeaturePebbles2] = 'featstone pebbles' ; Shape[:FeaturePebbles2] = :PEBBLES ; Material[:FeaturePebbles2] = :FEATURE ; Variant[:FeaturePebbles2] = :VAR_2
|
|
ENUM[415] = :FeaturePebbles3 ; NUME[:FeaturePebbles3] = 415 ; Caption[:FeaturePebbles3] = 'featstone pebbles' ; Shape[:FeaturePebbles3] = :PEBBLES ; Material[:FeaturePebbles3] = :FEATURE ; Variant[:FeaturePebbles3] = :VAR_3
|
|
ENUM[416] = :FeaturePebbles4 ; NUME[:FeaturePebbles4] = 416 ; Caption[:FeaturePebbles4] = 'featstone pebbles' ; Shape[:FeaturePebbles4] = :PEBBLES ; Material[:FeaturePebbles4] = :FEATURE ; Variant[:FeaturePebbles4] = :VAR_4
|
|
ENUM[417] = :MineralWallSmoothRD2 ; NUME[:MineralWallSmoothRD2] = 417 ; Caption[:MineralWallSmoothRD2] = 'smooth vein wall RD2' ; Shape[:MineralWallSmoothRD2] = :WALL ; Material[:MineralWallSmoothRD2] = :MINERAL ; Special[:MineralWallSmoothRD2] = :SMOOTH ; Direction[:MineralWallSmoothRD2] = '--SS--E-'
|
|
ENUM[418] = :MineralWallSmoothR2D ; NUME[:MineralWallSmoothR2D] = 418 ; Caption[:MineralWallSmoothR2D] = 'smooth vein wall R2D' ; Shape[:MineralWallSmoothR2D] = :WALL ; Material[:MineralWallSmoothR2D] = :MINERAL ; Special[:MineralWallSmoothR2D] = :SMOOTH ; Direction[:MineralWallSmoothR2D] = '--S---EE'
|
|
ENUM[419] = :MineralWallSmoothR2U ; NUME[:MineralWallSmoothR2U] = 419 ; Caption[:MineralWallSmoothR2U] = 'smooth vein wall R2U' ; Shape[:MineralWallSmoothR2U] = :WALL ; Material[:MineralWallSmoothR2U] = :MINERAL ; Special[:MineralWallSmoothR2U] = :SMOOTH ; Direction[:MineralWallSmoothR2U] = 'N-----EE'
|
|
ENUM[420] = :MineralWallSmoothRU2 ; NUME[:MineralWallSmoothRU2] = 420 ; Caption[:MineralWallSmoothRU2] = 'smooth vein wall RU2' ; Shape[:MineralWallSmoothRU2] = :WALL ; Material[:MineralWallSmoothRU2] = :MINERAL ; Special[:MineralWallSmoothRU2] = :SMOOTH ; Direction[:MineralWallSmoothRU2] = 'NN----E-'
|
|
ENUM[421] = :MineralWallSmoothL2U ; NUME[:MineralWallSmoothL2U] = 421 ; Caption[:MineralWallSmoothL2U] = 'smooth vein wall L2U' ; Shape[:MineralWallSmoothL2U] = :WALL ; Material[:MineralWallSmoothL2U] = :MINERAL ; Special[:MineralWallSmoothL2U] = :SMOOTH ; Direction[:MineralWallSmoothL2U] = 'N---WW--'
|
|
ENUM[422] = :MineralWallSmoothLU2 ; NUME[:MineralWallSmoothLU2] = 422 ; Caption[:MineralWallSmoothLU2] = 'smooth vein wall LU2' ; Shape[:MineralWallSmoothLU2] = :WALL ; Material[:MineralWallSmoothLU2] = :MINERAL ; Special[:MineralWallSmoothLU2] = :SMOOTH ; Direction[:MineralWallSmoothLU2] = 'NN--W---'
|
|
ENUM[423] = :MineralWallSmoothL2D ; NUME[:MineralWallSmoothL2D] = 423 ; Caption[:MineralWallSmoothL2D] = 'smooth vein wall L2D' ; Shape[:MineralWallSmoothL2D] = :WALL ; Material[:MineralWallSmoothL2D] = :MINERAL ; Special[:MineralWallSmoothL2D] = :SMOOTH ; Direction[:MineralWallSmoothL2D] = '--S-WW--'
|
|
ENUM[424] = :MineralWallSmoothLD2 ; NUME[:MineralWallSmoothLD2] = 424 ; Caption[:MineralWallSmoothLD2] = 'smooth vein wall LD2' ; Shape[:MineralWallSmoothLD2] = :WALL ; Material[:MineralWallSmoothLD2] = :MINERAL ; Special[:MineralWallSmoothLD2] = :SMOOTH ; Direction[:MineralWallSmoothLD2] = '--SSW---'
|
|
ENUM[425] = :MineralWallSmoothLRUD ; NUME[:MineralWallSmoothLRUD] = 425 ; Caption[:MineralWallSmoothLRUD] = 'smooth vein wall LRUD' ; Shape[:MineralWallSmoothLRUD] = :WALL ; Material[:MineralWallSmoothLRUD] = :MINERAL ; Special[:MineralWallSmoothLRUD] = :SMOOTH ; Direction[:MineralWallSmoothLRUD] = 'N-S-W-E-'
|
|
ENUM[426] = :MineralWallSmoothRUD ; NUME[:MineralWallSmoothRUD] = 426 ; Caption[:MineralWallSmoothRUD] = 'smooth vein wall RUD' ; Shape[:MineralWallSmoothRUD] = :WALL ; Material[:MineralWallSmoothRUD] = :MINERAL ; Special[:MineralWallSmoothRUD] = :SMOOTH ; Direction[:MineralWallSmoothRUD] = 'N-S---E-'
|
|
ENUM[427] = :MineralWallSmoothLRD ; NUME[:MineralWallSmoothLRD] = 427 ; Caption[:MineralWallSmoothLRD] = 'smooth vein wall LRD' ; Shape[:MineralWallSmoothLRD] = :WALL ; Material[:MineralWallSmoothLRD] = :MINERAL ; Special[:MineralWallSmoothLRD] = :SMOOTH ; Direction[:MineralWallSmoothLRD] = '--S-W-E-'
|
|
ENUM[428] = :MineralWallSmoothLRU ; NUME[:MineralWallSmoothLRU] = 428 ; Caption[:MineralWallSmoothLRU] = 'smooth vein wall LRU' ; Shape[:MineralWallSmoothLRU] = :WALL ; Material[:MineralWallSmoothLRU] = :MINERAL ; Special[:MineralWallSmoothLRU] = :SMOOTH ; Direction[:MineralWallSmoothLRU] = 'N---W-E-'
|
|
ENUM[429] = :MineralWallSmoothLUD ; NUME[:MineralWallSmoothLUD] = 429 ; Caption[:MineralWallSmoothLUD] = 'smooth vein wall LUD' ; Shape[:MineralWallSmoothLUD] = :WALL ; Material[:MineralWallSmoothLUD] = :MINERAL ; Special[:MineralWallSmoothLUD] = :SMOOTH ; Direction[:MineralWallSmoothLUD] = 'N-S-W---'
|
|
ENUM[430] = :MineralWallSmoothRD ; NUME[:MineralWallSmoothRD] = 430 ; Caption[:MineralWallSmoothRD] = 'smooth vein wall RD' ; Shape[:MineralWallSmoothRD] = :WALL ; Material[:MineralWallSmoothRD] = :MINERAL ; Special[:MineralWallSmoothRD] = :SMOOTH ; Direction[:MineralWallSmoothRD] = '--S---E-'
|
|
ENUM[431] = :MineralWallSmoothRU ; NUME[:MineralWallSmoothRU] = 431 ; Caption[:MineralWallSmoothRU] = 'smooth vein wall RU' ; Shape[:MineralWallSmoothRU] = :WALL ; Material[:MineralWallSmoothRU] = :MINERAL ; Special[:MineralWallSmoothRU] = :SMOOTH ; Direction[:MineralWallSmoothRU] = 'N-----E-'
|
|
ENUM[432] = :MineralWallSmoothLU ; NUME[:MineralWallSmoothLU] = 432 ; Caption[:MineralWallSmoothLU] = 'smooth vein wall LU' ; Shape[:MineralWallSmoothLU] = :WALL ; Material[:MineralWallSmoothLU] = :MINERAL ; Special[:MineralWallSmoothLU] = :SMOOTH ; Direction[:MineralWallSmoothLU] = 'N---W---'
|
|
ENUM[433] = :MineralWallSmoothLD ; NUME[:MineralWallSmoothLD] = 433 ; Caption[:MineralWallSmoothLD] = 'smooth vein wall LD' ; Shape[:MineralWallSmoothLD] = :WALL ; Material[:MineralWallSmoothLD] = :MINERAL ; Special[:MineralWallSmoothLD] = :SMOOTH ; Direction[:MineralWallSmoothLD] = '--S-W---'
|
|
ENUM[434] = :MineralWallSmoothUD ; NUME[:MineralWallSmoothUD] = 434 ; Caption[:MineralWallSmoothUD] = 'smooth vein wall UD' ; Shape[:MineralWallSmoothUD] = :WALL ; Material[:MineralWallSmoothUD] = :MINERAL ; Special[:MineralWallSmoothUD] = :SMOOTH ; Direction[:MineralWallSmoothUD] = 'N-S-----'
|
|
ENUM[435] = :MineralWallSmoothLR ; NUME[:MineralWallSmoothLR] = 435 ; Caption[:MineralWallSmoothLR] = 'smooth vein wall LR' ; Shape[:MineralWallSmoothLR] = :WALL ; Material[:MineralWallSmoothLR] = :MINERAL ; Special[:MineralWallSmoothLR] = :SMOOTH ; Direction[:MineralWallSmoothLR] = '----W-E-'
|
|
ENUM[436] = :MineralFortification ; NUME[:MineralFortification] = 436 ; Caption[:MineralFortification] = 'vein fortification' ; Shape[:MineralFortification] = :FORTIFICATION ; Material[:MineralFortification] = :MINERAL
|
|
ENUM[437] = :MineralWallWorn1 ; NUME[:MineralWallWorn1] = 437 ; Caption[:MineralWallWorn1] = 'worn 1 vein wall' ; Shape[:MineralWallWorn1] = :WALL ; Material[:MineralWallWorn1] = :MINERAL ; Special[:MineralWallWorn1] = :WORN_1
|
|
ENUM[438] = :MineralWallWorn2 ; NUME[:MineralWallWorn2] = 438 ; Caption[:MineralWallWorn2] = 'worn 2 vein wall' ; Shape[:MineralWallWorn2] = :WALL ; Material[:MineralWallWorn2] = :MINERAL ; Special[:MineralWallWorn2] = :WORN_2
|
|
ENUM[439] = :MineralWallWorn3 ; NUME[:MineralWallWorn3] = 439 ; Caption[:MineralWallWorn3] = 'worn 3 vein wall' ; Shape[:MineralWallWorn3] = :WALL ; Material[:MineralWallWorn3] = :MINERAL ; Special[:MineralWallWorn3] = :WORN_3
|
|
ENUM[440] = :MineralWall ; NUME[:MineralWall] = 440 ; Caption[:MineralWall] = 'vein wall' ; Shape[:MineralWall] = :WALL ; Material[:MineralWall] = :MINERAL ; Special[:MineralWall] = :NORMAL
|
|
ENUM[441] = :MineralFloor1 ; NUME[:MineralFloor1] = 441 ; Caption[:MineralFloor1] = 'vein floor' ; Shape[:MineralFloor1] = :FLOOR ; Material[:MineralFloor1] = :MINERAL ; Variant[:MineralFloor1] = :VAR_1 ; Special[:MineralFloor1] = :NORMAL
|
|
ENUM[442] = :MineralFloor2 ; NUME[:MineralFloor2] = 442 ; Caption[:MineralFloor2] = 'vein floor' ; Shape[:MineralFloor2] = :FLOOR ; Material[:MineralFloor2] = :MINERAL ; Variant[:MineralFloor2] = :VAR_2 ; Special[:MineralFloor2] = :NORMAL
|
|
ENUM[443] = :MineralFloor3 ; NUME[:MineralFloor3] = 443 ; Caption[:MineralFloor3] = 'vein floor' ; Shape[:MineralFloor3] = :FLOOR ; Material[:MineralFloor3] = :MINERAL ; Variant[:MineralFloor3] = :VAR_3 ; Special[:MineralFloor3] = :NORMAL
|
|
ENUM[444] = :MineralFloor4 ; NUME[:MineralFloor4] = 444 ; Caption[:MineralFloor4] = 'vein floor' ; Shape[:MineralFloor4] = :FLOOR ; Material[:MineralFloor4] = :MINERAL ; Variant[:MineralFloor4] = :VAR_4 ; Special[:MineralFloor4] = :NORMAL
|
|
ENUM[445] = :MineralBoulder ; NUME[:MineralBoulder] = 445 ; Caption[:MineralBoulder] = 'vein boulder' ; Shape[:MineralBoulder] = :BOULDER ; Material[:MineralBoulder] = :MINERAL
|
|
ENUM[446] = :MineralPebbles1 ; NUME[:MineralPebbles1] = 446 ; Caption[:MineralPebbles1] = 'vein pebbles' ; Shape[:MineralPebbles1] = :PEBBLES ; Material[:MineralPebbles1] = :MINERAL ; Variant[:MineralPebbles1] = :VAR_1
|
|
ENUM[447] = :MineralPebbles2 ; NUME[:MineralPebbles2] = 447 ; Caption[:MineralPebbles2] = 'vein pebbles' ; Shape[:MineralPebbles2] = :PEBBLES ; Material[:MineralPebbles2] = :MINERAL ; Variant[:MineralPebbles2] = :VAR_2
|
|
ENUM[448] = :MineralPebbles3 ; NUME[:MineralPebbles3] = 448 ; Caption[:MineralPebbles3] = 'vein pebbles' ; Shape[:MineralPebbles3] = :PEBBLES ; Material[:MineralPebbles3] = :MINERAL ; Variant[:MineralPebbles3] = :VAR_3
|
|
ENUM[449] = :MineralPebbles4 ; NUME[:MineralPebbles4] = 449 ; Caption[:MineralPebbles4] = 'vein pebbles' ; Shape[:MineralPebbles4] = :PEBBLES ; Material[:MineralPebbles4] = :MINERAL ; Variant[:MineralPebbles4] = :VAR_4
|
|
ENUM[450] = :FrozenWallSmoothRD2 ; NUME[:FrozenWallSmoothRD2] = 450 ; Caption[:FrozenWallSmoothRD2] = 'smooth ice wall RD2' ; Shape[:FrozenWallSmoothRD2] = :WALL ; Material[:FrozenWallSmoothRD2] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothRD2] = :SMOOTH ; Direction[:FrozenWallSmoothRD2] = '--SS--E-'
|
|
ENUM[451] = :FrozenWallSmoothR2D ; NUME[:FrozenWallSmoothR2D] = 451 ; Caption[:FrozenWallSmoothR2D] = 'smooth ice wall R2D' ; Shape[:FrozenWallSmoothR2D] = :WALL ; Material[:FrozenWallSmoothR2D] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothR2D] = :SMOOTH ; Direction[:FrozenWallSmoothR2D] = '--S---EE'
|
|
ENUM[452] = :FrozenWallSmoothR2U ; NUME[:FrozenWallSmoothR2U] = 452 ; Caption[:FrozenWallSmoothR2U] = 'smooth ice wall R2U' ; Shape[:FrozenWallSmoothR2U] = :WALL ; Material[:FrozenWallSmoothR2U] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothR2U] = :SMOOTH ; Direction[:FrozenWallSmoothR2U] = 'N-----EE'
|
|
ENUM[453] = :FrozenWallSmoothRU2 ; NUME[:FrozenWallSmoothRU2] = 453 ; Caption[:FrozenWallSmoothRU2] = 'smooth ice wall RU2' ; Shape[:FrozenWallSmoothRU2] = :WALL ; Material[:FrozenWallSmoothRU2] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothRU2] = :SMOOTH ; Direction[:FrozenWallSmoothRU2] = 'NN----E-'
|
|
ENUM[454] = :FrozenWallSmoothL2U ; NUME[:FrozenWallSmoothL2U] = 454 ; Caption[:FrozenWallSmoothL2U] = 'smooth ice wall L2U' ; Shape[:FrozenWallSmoothL2U] = :WALL ; Material[:FrozenWallSmoothL2U] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothL2U] = :SMOOTH ; Direction[:FrozenWallSmoothL2U] = 'N---WW--'
|
|
ENUM[455] = :FrozenWallSmoothLU2 ; NUME[:FrozenWallSmoothLU2] = 455 ; Caption[:FrozenWallSmoothLU2] = 'smooth ice wall LU2' ; Shape[:FrozenWallSmoothLU2] = :WALL ; Material[:FrozenWallSmoothLU2] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothLU2] = :SMOOTH ; Direction[:FrozenWallSmoothLU2] = 'NN--W---'
|
|
ENUM[456] = :FrozenWallSmoothL2D ; NUME[:FrozenWallSmoothL2D] = 456 ; Caption[:FrozenWallSmoothL2D] = 'smooth ice wall L2D' ; Shape[:FrozenWallSmoothL2D] = :WALL ; Material[:FrozenWallSmoothL2D] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothL2D] = :SMOOTH ; Direction[:FrozenWallSmoothL2D] = '--S-WW--'
|
|
ENUM[457] = :FrozenWallSmoothLD2 ; NUME[:FrozenWallSmoothLD2] = 457 ; Caption[:FrozenWallSmoothLD2] = 'smooth ice wall LD2' ; Shape[:FrozenWallSmoothLD2] = :WALL ; Material[:FrozenWallSmoothLD2] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothLD2] = :SMOOTH ; Direction[:FrozenWallSmoothLD2] = '--SSW---'
|
|
ENUM[458] = :FrozenWallSmoothLRUD ; NUME[:FrozenWallSmoothLRUD] = 458 ; Caption[:FrozenWallSmoothLRUD] = 'smooth ice wall LRUD' ; Shape[:FrozenWallSmoothLRUD] = :WALL ; Material[:FrozenWallSmoothLRUD] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothLRUD] = :SMOOTH ; Direction[:FrozenWallSmoothLRUD] = 'N-S-W-E-'
|
|
ENUM[459] = :FrozenWallSmoothRUD ; NUME[:FrozenWallSmoothRUD] = 459 ; Caption[:FrozenWallSmoothRUD] = 'smooth ice wall RUD' ; Shape[:FrozenWallSmoothRUD] = :WALL ; Material[:FrozenWallSmoothRUD] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothRUD] = :SMOOTH ; Direction[:FrozenWallSmoothRUD] = 'N-S---E-'
|
|
ENUM[460] = :FrozenWallSmoothLRD ; NUME[:FrozenWallSmoothLRD] = 460 ; Caption[:FrozenWallSmoothLRD] = 'smooth ice wall LRD' ; Shape[:FrozenWallSmoothLRD] = :WALL ; Material[:FrozenWallSmoothLRD] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothLRD] = :SMOOTH ; Direction[:FrozenWallSmoothLRD] = '--S-W-E-'
|
|
ENUM[461] = :FrozenWallSmoothLRU ; NUME[:FrozenWallSmoothLRU] = 461 ; Caption[:FrozenWallSmoothLRU] = 'smooth ice wall LRU' ; Shape[:FrozenWallSmoothLRU] = :WALL ; Material[:FrozenWallSmoothLRU] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothLRU] = :SMOOTH ; Direction[:FrozenWallSmoothLRU] = 'N---W-E-'
|
|
ENUM[462] = :FrozenWallSmoothLUD ; NUME[:FrozenWallSmoothLUD] = 462 ; Caption[:FrozenWallSmoothLUD] = 'smooth ice wall LUD' ; Shape[:FrozenWallSmoothLUD] = :WALL ; Material[:FrozenWallSmoothLUD] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothLUD] = :SMOOTH ; Direction[:FrozenWallSmoothLUD] = 'N-S-W---'
|
|
ENUM[463] = :FrozenWallSmoothRD ; NUME[:FrozenWallSmoothRD] = 463 ; Caption[:FrozenWallSmoothRD] = 'smooth ice wall RD' ; Shape[:FrozenWallSmoothRD] = :WALL ; Material[:FrozenWallSmoothRD] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothRD] = :SMOOTH ; Direction[:FrozenWallSmoothRD] = '--S---E-'
|
|
ENUM[464] = :FrozenWallSmoothRU ; NUME[:FrozenWallSmoothRU] = 464 ; Caption[:FrozenWallSmoothRU] = 'smooth ice wall RU' ; Shape[:FrozenWallSmoothRU] = :WALL ; Material[:FrozenWallSmoothRU] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothRU] = :SMOOTH ; Direction[:FrozenWallSmoothRU] = 'N-----E-'
|
|
ENUM[465] = :FrozenWallSmoothLU ; NUME[:FrozenWallSmoothLU] = 465 ; Caption[:FrozenWallSmoothLU] = 'smooth ice wall LU' ; Shape[:FrozenWallSmoothLU] = :WALL ; Material[:FrozenWallSmoothLU] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothLU] = :SMOOTH ; Direction[:FrozenWallSmoothLU] = 'N---W---'
|
|
ENUM[466] = :FrozenWallSmoothLD ; NUME[:FrozenWallSmoothLD] = 466 ; Caption[:FrozenWallSmoothLD] = 'smooth ice wall LD' ; Shape[:FrozenWallSmoothLD] = :WALL ; Material[:FrozenWallSmoothLD] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothLD] = :SMOOTH ; Direction[:FrozenWallSmoothLD] = '--S-W---'
|
|
ENUM[467] = :FrozenWallSmoothUD ; NUME[:FrozenWallSmoothUD] = 467 ; Caption[:FrozenWallSmoothUD] = 'smooth ice wall UD' ; Shape[:FrozenWallSmoothUD] = :WALL ; Material[:FrozenWallSmoothUD] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothUD] = :SMOOTH ; Direction[:FrozenWallSmoothUD] = 'N-S-----'
|
|
ENUM[468] = :FrozenWallSmoothLR ; NUME[:FrozenWallSmoothLR] = 468 ; Caption[:FrozenWallSmoothLR] = 'smooth ice wall LR' ; Shape[:FrozenWallSmoothLR] = :WALL ; Material[:FrozenWallSmoothLR] = :FROZEN_LIQUID ; Special[:FrozenWallSmoothLR] = :SMOOTH ; Direction[:FrozenWallSmoothLR] = '----W-E-'
|
|
ENUM[469] = :RiverRampN ; NUME[:RiverRampN] = 469 ; Caption[:RiverRampN] = 'river ramp N' ; Shape[:RiverRampN] = :RAMP ; Material[:RiverRampN] = :RIVER ; Direction[:RiverRampN] = 'N'
|
|
ENUM[470] = :RiverRampS ; NUME[:RiverRampS] = 470 ; Caption[:RiverRampS] = 'river ramp S' ; Shape[:RiverRampS] = :RAMP ; Material[:RiverRampS] = :RIVER ; Direction[:RiverRampS] = 'S'
|
|
ENUM[471] = :RiverRampE ; NUME[:RiverRampE] = 471 ; Caption[:RiverRampE] = 'river ramp E' ; Shape[:RiverRampE] = :RAMP ; Material[:RiverRampE] = :RIVER ; Direction[:RiverRampE] = 'E'
|
|
ENUM[472] = :RiverRampW ; NUME[:RiverRampW] = 472 ; Caption[:RiverRampW] = 'river ramp W' ; Shape[:RiverRampW] = :RAMP ; Material[:RiverRampW] = :RIVER ; Direction[:RiverRampW] = 'W'
|
|
ENUM[473] = :RiverRampNW ; NUME[:RiverRampNW] = 473 ; Caption[:RiverRampNW] = 'river ramp NW' ; Shape[:RiverRampNW] = :RAMP ; Material[:RiverRampNW] = :RIVER ; Direction[:RiverRampNW] = 'NW'
|
|
ENUM[474] = :RiverRampNE ; NUME[:RiverRampNE] = 474 ; Caption[:RiverRampNE] = 'river ramp NE' ; Shape[:RiverRampNE] = :RAMP ; Material[:RiverRampNE] = :RIVER ; Direction[:RiverRampNE] = 'NE'
|
|
ENUM[475] = :RiverRampSW ; NUME[:RiverRampSW] = 475 ; Caption[:RiverRampSW] = 'river ramp SW' ; Shape[:RiverRampSW] = :RAMP ; Material[:RiverRampSW] = :RIVER ; Direction[:RiverRampSW] = 'SW'
|
|
ENUM[476] = :RiverRampSE ; NUME[:RiverRampSE] = 476 ; Caption[:RiverRampSE] = 'river ramp SE' ; Shape[:RiverRampSE] = :RAMP ; Material[:RiverRampSE] = :RIVER ; Direction[:RiverRampSE] = 'SE'
|
|
ENUM[493] = :ConstructedFloor ; NUME[:ConstructedFloor] = 493 ; Caption[:ConstructedFloor] = 'constructed floor' ; Shape[:ConstructedFloor] = :FLOOR ; Material[:ConstructedFloor] = :CONSTRUCTION ; Special[:ConstructedFloor] = :SMOOTH
|
|
ENUM[494] = :ConstructedFortification ; NUME[:ConstructedFortification] = 494 ; Caption[:ConstructedFortification] = 'constructed fortification' ; Shape[:ConstructedFortification] = :FORTIFICATION ; Material[:ConstructedFortification] = :CONSTRUCTION
|
|
ENUM[495] = :ConstructedPillar ; NUME[:ConstructedPillar] = 495 ; Caption[:ConstructedPillar] = 'constructed pillar' ; Shape[:ConstructedPillar] = :WALL ; Material[:ConstructedPillar] = :CONSTRUCTION ; Special[:ConstructedPillar] = :SMOOTH
|
|
ENUM[496] = :ConstructedWallRD2 ; NUME[:ConstructedWallRD2] = 496 ; Caption[:ConstructedWallRD2] = 'constructed wall RD2' ; Shape[:ConstructedWallRD2] = :WALL ; Material[:ConstructedWallRD2] = :CONSTRUCTION ; Special[:ConstructedWallRD2] = :SMOOTH ; Direction[:ConstructedWallRD2] = '--SS--E-'
|
|
ENUM[497] = :ConstructedWallR2D ; NUME[:ConstructedWallR2D] = 497 ; Caption[:ConstructedWallR2D] = 'constructed wall R2D' ; Shape[:ConstructedWallR2D] = :WALL ; Material[:ConstructedWallR2D] = :CONSTRUCTION ; Special[:ConstructedWallR2D] = :SMOOTH ; Direction[:ConstructedWallR2D] = '--S---EE'
|
|
ENUM[498] = :ConstructedWallR2U ; NUME[:ConstructedWallR2U] = 498 ; Caption[:ConstructedWallR2U] = 'constructed wall R2U' ; Shape[:ConstructedWallR2U] = :WALL ; Material[:ConstructedWallR2U] = :CONSTRUCTION ; Special[:ConstructedWallR2U] = :SMOOTH ; Direction[:ConstructedWallR2U] = 'N-----EE'
|
|
ENUM[499] = :ConstructedWallRU2 ; NUME[:ConstructedWallRU2] = 499 ; Caption[:ConstructedWallRU2] = 'constructed wall RU2' ; Shape[:ConstructedWallRU2] = :WALL ; Material[:ConstructedWallRU2] = :CONSTRUCTION ; Special[:ConstructedWallRU2] = :SMOOTH ; Direction[:ConstructedWallRU2] = 'NN----E-'
|
|
ENUM[500] = :ConstructedWallL2U ; NUME[:ConstructedWallL2U] = 500 ; Caption[:ConstructedWallL2U] = 'constructed wall L2U' ; Shape[:ConstructedWallL2U] = :WALL ; Material[:ConstructedWallL2U] = :CONSTRUCTION ; Special[:ConstructedWallL2U] = :SMOOTH ; Direction[:ConstructedWallL2U] = 'N---WW--'
|
|
ENUM[501] = :ConstructedWallLU2 ; NUME[:ConstructedWallLU2] = 501 ; Caption[:ConstructedWallLU2] = 'constructed wall LU2' ; Shape[:ConstructedWallLU2] = :WALL ; Material[:ConstructedWallLU2] = :CONSTRUCTION ; Special[:ConstructedWallLU2] = :SMOOTH ; Direction[:ConstructedWallLU2] = 'NN--W---'
|
|
ENUM[502] = :ConstructedWallL2D ; NUME[:ConstructedWallL2D] = 502 ; Caption[:ConstructedWallL2D] = 'constructed wall L2D' ; Shape[:ConstructedWallL2D] = :WALL ; Material[:ConstructedWallL2D] = :CONSTRUCTION ; Special[:ConstructedWallL2D] = :SMOOTH ; Direction[:ConstructedWallL2D] = '--S-WW--'
|
|
ENUM[503] = :ConstructedWallLD2 ; NUME[:ConstructedWallLD2] = 503 ; Caption[:ConstructedWallLD2] = 'constructed wall LD2' ; Shape[:ConstructedWallLD2] = :WALL ; Material[:ConstructedWallLD2] = :CONSTRUCTION ; Special[:ConstructedWallLD2] = :SMOOTH ; Direction[:ConstructedWallLD2] = '--SSW---'
|
|
ENUM[504] = :ConstructedWallLRUD ; NUME[:ConstructedWallLRUD] = 504 ; Caption[:ConstructedWallLRUD] = 'constructed wall LRUD' ; Shape[:ConstructedWallLRUD] = :WALL ; Material[:ConstructedWallLRUD] = :CONSTRUCTION ; Special[:ConstructedWallLRUD] = :SMOOTH ; Direction[:ConstructedWallLRUD] = 'N-S-W-E-'
|
|
ENUM[505] = :ConstructedWallRUD ; NUME[:ConstructedWallRUD] = 505 ; Caption[:ConstructedWallRUD] = 'constructed wall RUD' ; Shape[:ConstructedWallRUD] = :WALL ; Material[:ConstructedWallRUD] = :CONSTRUCTION ; Special[:ConstructedWallRUD] = :SMOOTH ; Direction[:ConstructedWallRUD] = 'N-S---E-'
|
|
ENUM[506] = :ConstructedWallLRD ; NUME[:ConstructedWallLRD] = 506 ; Caption[:ConstructedWallLRD] = 'constructed wall LRD' ; Shape[:ConstructedWallLRD] = :WALL ; Material[:ConstructedWallLRD] = :CONSTRUCTION ; Special[:ConstructedWallLRD] = :SMOOTH ; Direction[:ConstructedWallLRD] = '--S-W-E-'
|
|
ENUM[507] = :ConstructedWallLRU ; NUME[:ConstructedWallLRU] = 507 ; Caption[:ConstructedWallLRU] = 'constructed wall LRU' ; Shape[:ConstructedWallLRU] = :WALL ; Material[:ConstructedWallLRU] = :CONSTRUCTION ; Special[:ConstructedWallLRU] = :SMOOTH ; Direction[:ConstructedWallLRU] = 'N---W-E-'
|
|
ENUM[508] = :ConstructedWallLUD ; NUME[:ConstructedWallLUD] = 508 ; Caption[:ConstructedWallLUD] = 'constructed wall LUD' ; Shape[:ConstructedWallLUD] = :WALL ; Material[:ConstructedWallLUD] = :CONSTRUCTION ; Special[:ConstructedWallLUD] = :SMOOTH ; Direction[:ConstructedWallLUD] = 'N-S-W---'
|
|
ENUM[509] = :ConstructedWallRD ; NUME[:ConstructedWallRD] = 509 ; Caption[:ConstructedWallRD] = 'constructed wall RD' ; Shape[:ConstructedWallRD] = :WALL ; Material[:ConstructedWallRD] = :CONSTRUCTION ; Special[:ConstructedWallRD] = :SMOOTH ; Direction[:ConstructedWallRD] = '--S---E-'
|
|
ENUM[510] = :ConstructedWallRU ; NUME[:ConstructedWallRU] = 510 ; Caption[:ConstructedWallRU] = 'constructed wall RU' ; Shape[:ConstructedWallRU] = :WALL ; Material[:ConstructedWallRU] = :CONSTRUCTION ; Special[:ConstructedWallRU] = :SMOOTH ; Direction[:ConstructedWallRU] = 'N-----E-'
|
|
ENUM[511] = :ConstructedWallLU ; NUME[:ConstructedWallLU] = 511 ; Caption[:ConstructedWallLU] = 'constructed wall LU' ; Shape[:ConstructedWallLU] = :WALL ; Material[:ConstructedWallLU] = :CONSTRUCTION ; Special[:ConstructedWallLU] = :SMOOTH ; Direction[:ConstructedWallLU] = 'N---W---'
|
|
ENUM[512] = :ConstructedWallLD ; NUME[:ConstructedWallLD] = 512 ; Caption[:ConstructedWallLD] = 'constructed wall LD' ; Shape[:ConstructedWallLD] = :WALL ; Material[:ConstructedWallLD] = :CONSTRUCTION ; Special[:ConstructedWallLD] = :SMOOTH ; Direction[:ConstructedWallLD] = '--S-W---'
|
|
ENUM[513] = :ConstructedWallUD ; NUME[:ConstructedWallUD] = 513 ; Caption[:ConstructedWallUD] = 'constructed wall UD' ; Shape[:ConstructedWallUD] = :WALL ; Material[:ConstructedWallUD] = :CONSTRUCTION ; Special[:ConstructedWallUD] = :SMOOTH ; Direction[:ConstructedWallUD] = 'N-S-----'
|
|
ENUM[514] = :ConstructedWallLR ; NUME[:ConstructedWallLR] = 514 ; Caption[:ConstructedWallLR] = 'constructed wall LR' ; Shape[:ConstructedWallLR] = :WALL ; Material[:ConstructedWallLR] = :CONSTRUCTION ; Special[:ConstructedWallLR] = :SMOOTH ; Direction[:ConstructedWallLR] = '----W-E-'
|
|
ENUM[515] = :ConstructedStairUD ; NUME[:ConstructedStairUD] = 515 ; Caption[:ConstructedStairUD] = 'constructed stair up/down' ; Shape[:ConstructedStairUD] = :STAIR_UPDOWN ; Material[:ConstructedStairUD] = :CONSTRUCTION
|
|
ENUM[516] = :ConstructedStairD ; NUME[:ConstructedStairD] = 516 ; Caption[:ConstructedStairD] = 'constructed stair down' ; Shape[:ConstructedStairD] = :STAIR_DOWN ; Material[:ConstructedStairD] = :CONSTRUCTION
|
|
ENUM[517] = :ConstructedStairU ; NUME[:ConstructedStairU] = 517 ; Caption[:ConstructedStairU] = 'constructed stair up' ; Shape[:ConstructedStairU] = :STAIR_UP ; Material[:ConstructedStairU] = :CONSTRUCTION
|
|
ENUM[518] = :ConstructedRamp ; NUME[:ConstructedRamp] = 518 ; Caption[:ConstructedRamp] = 'constructed ramp' ; Shape[:ConstructedRamp] = :RAMP ; Material[:ConstructedRamp] = :CONSTRUCTION
|
|
ENUM[519] = :StoneFloorTrackN ; NUME[:StoneFloorTrackN] = 519 ; Caption[:StoneFloorTrackN] = 'stone floor track N' ; Shape[:StoneFloorTrackN] = :FLOOR ; Material[:StoneFloorTrackN] = :STONE ; Special[:StoneFloorTrackN] = :TRACK ; Direction[:StoneFloorTrackN] = 'N'
|
|
ENUM[520] = :StoneFloorTrackS ; NUME[:StoneFloorTrackS] = 520 ; Caption[:StoneFloorTrackS] = 'stone floor track S' ; Shape[:StoneFloorTrackS] = :FLOOR ; Material[:StoneFloorTrackS] = :STONE ; Special[:StoneFloorTrackS] = :TRACK ; Direction[:StoneFloorTrackS] = 'S'
|
|
ENUM[521] = :StoneFloorTrackE ; NUME[:StoneFloorTrackE] = 521 ; Caption[:StoneFloorTrackE] = 'stone floor track E' ; Shape[:StoneFloorTrackE] = :FLOOR ; Material[:StoneFloorTrackE] = :STONE ; Special[:StoneFloorTrackE] = :TRACK ; Direction[:StoneFloorTrackE] = 'E'
|
|
ENUM[522] = :StoneFloorTrackW ; NUME[:StoneFloorTrackW] = 522 ; Caption[:StoneFloorTrackW] = 'stone floor track W' ; Shape[:StoneFloorTrackW] = :FLOOR ; Material[:StoneFloorTrackW] = :STONE ; Special[:StoneFloorTrackW] = :TRACK ; Direction[:StoneFloorTrackW] = 'W'
|
|
ENUM[523] = :StoneFloorTrackNS ; NUME[:StoneFloorTrackNS] = 523 ; Caption[:StoneFloorTrackNS] = 'stone floor track NS' ; Shape[:StoneFloorTrackNS] = :FLOOR ; Material[:StoneFloorTrackNS] = :STONE ; Special[:StoneFloorTrackNS] = :TRACK ; Direction[:StoneFloorTrackNS] = 'NS'
|
|
ENUM[524] = :StoneFloorTrackNE ; NUME[:StoneFloorTrackNE] = 524 ; Caption[:StoneFloorTrackNE] = 'stone floor track NE' ; Shape[:StoneFloorTrackNE] = :FLOOR ; Material[:StoneFloorTrackNE] = :STONE ; Special[:StoneFloorTrackNE] = :TRACK ; Direction[:StoneFloorTrackNE] = 'NE'
|
|
ENUM[525] = :StoneFloorTrackNW ; NUME[:StoneFloorTrackNW] = 525 ; Caption[:StoneFloorTrackNW] = 'stone floor track NW' ; Shape[:StoneFloorTrackNW] = :FLOOR ; Material[:StoneFloorTrackNW] = :STONE ; Special[:StoneFloorTrackNW] = :TRACK ; Direction[:StoneFloorTrackNW] = 'NW'
|
|
ENUM[526] = :StoneFloorTrackSE ; NUME[:StoneFloorTrackSE] = 526 ; Caption[:StoneFloorTrackSE] = 'stone floor track SE' ; Shape[:StoneFloorTrackSE] = :FLOOR ; Material[:StoneFloorTrackSE] = :STONE ; Special[:StoneFloorTrackSE] = :TRACK ; Direction[:StoneFloorTrackSE] = 'SE'
|
|
ENUM[527] = :StoneFloorTrackSW ; NUME[:StoneFloorTrackSW] = 527 ; Caption[:StoneFloorTrackSW] = 'stone floor track SW' ; Shape[:StoneFloorTrackSW] = :FLOOR ; Material[:StoneFloorTrackSW] = :STONE ; Special[:StoneFloorTrackSW] = :TRACK ; Direction[:StoneFloorTrackSW] = 'SW'
|
|
ENUM[528] = :StoneFloorTrackEW ; NUME[:StoneFloorTrackEW] = 528 ; Caption[:StoneFloorTrackEW] = 'stone floor track EW' ; Shape[:StoneFloorTrackEW] = :FLOOR ; Material[:StoneFloorTrackEW] = :STONE ; Special[:StoneFloorTrackEW] = :TRACK ; Direction[:StoneFloorTrackEW] = 'EW'
|
|
ENUM[529] = :StoneFloorTrackNSE ; NUME[:StoneFloorTrackNSE] = 529 ; Caption[:StoneFloorTrackNSE] = 'stone floor track NSE' ; Shape[:StoneFloorTrackNSE] = :FLOOR ; Material[:StoneFloorTrackNSE] = :STONE ; Special[:StoneFloorTrackNSE] = :TRACK ; Direction[:StoneFloorTrackNSE] = 'NSE'
|
|
ENUM[530] = :StoneFloorTrackNSW ; NUME[:StoneFloorTrackNSW] = 530 ; Caption[:StoneFloorTrackNSW] = 'stone floor track NSW' ; Shape[:StoneFloorTrackNSW] = :FLOOR ; Material[:StoneFloorTrackNSW] = :STONE ; Special[:StoneFloorTrackNSW] = :TRACK ; Direction[:StoneFloorTrackNSW] = 'NSW'
|
|
ENUM[531] = :StoneFloorTrackNEW ; NUME[:StoneFloorTrackNEW] = 531 ; Caption[:StoneFloorTrackNEW] = 'stone floor track NEW' ; Shape[:StoneFloorTrackNEW] = :FLOOR ; Material[:StoneFloorTrackNEW] = :STONE ; Special[:StoneFloorTrackNEW] = :TRACK ; Direction[:StoneFloorTrackNEW] = 'NEW'
|
|
ENUM[532] = :StoneFloorTrackSEW ; NUME[:StoneFloorTrackSEW] = 532 ; Caption[:StoneFloorTrackSEW] = 'stone floor track SEW' ; Shape[:StoneFloorTrackSEW] = :FLOOR ; Material[:StoneFloorTrackSEW] = :STONE ; Special[:StoneFloorTrackSEW] = :TRACK ; Direction[:StoneFloorTrackSEW] = 'SEW'
|
|
ENUM[533] = :StoneFloorTrackNSEW ; NUME[:StoneFloorTrackNSEW] = 533 ; Caption[:StoneFloorTrackNSEW] = 'stone floor track NSEW' ; Shape[:StoneFloorTrackNSEW] = :FLOOR ; Material[:StoneFloorTrackNSEW] = :STONE ; Special[:StoneFloorTrackNSEW] = :TRACK ; Direction[:StoneFloorTrackNSEW] = 'NSEW'
|
|
ENUM[534] = :LavaFloorTrackN ; NUME[:LavaFloorTrackN] = 534 ; Caption[:LavaFloorTrackN] = 'obsidian floor track N' ; Shape[:LavaFloorTrackN] = :FLOOR ; Material[:LavaFloorTrackN] = :LAVA_STONE ; Special[:LavaFloorTrackN] = :TRACK ; Direction[:LavaFloorTrackN] = 'N'
|
|
ENUM[535] = :LavaFloorTrackS ; NUME[:LavaFloorTrackS] = 535 ; Caption[:LavaFloorTrackS] = 'obsidian floor track S' ; Shape[:LavaFloorTrackS] = :FLOOR ; Material[:LavaFloorTrackS] = :LAVA_STONE ; Special[:LavaFloorTrackS] = :TRACK ; Direction[:LavaFloorTrackS] = 'S'
|
|
ENUM[536] = :LavaFloorTrackE ; NUME[:LavaFloorTrackE] = 536 ; Caption[:LavaFloorTrackE] = 'obsidian floor track E' ; Shape[:LavaFloorTrackE] = :FLOOR ; Material[:LavaFloorTrackE] = :LAVA_STONE ; Special[:LavaFloorTrackE] = :TRACK ; Direction[:LavaFloorTrackE] = 'E'
|
|
ENUM[537] = :LavaFloorTrackW ; NUME[:LavaFloorTrackW] = 537 ; Caption[:LavaFloorTrackW] = 'obsidian floor track W' ; Shape[:LavaFloorTrackW] = :FLOOR ; Material[:LavaFloorTrackW] = :LAVA_STONE ; Special[:LavaFloorTrackW] = :TRACK ; Direction[:LavaFloorTrackW] = 'W'
|
|
ENUM[538] = :LavaFloorTrackNS ; NUME[:LavaFloorTrackNS] = 538 ; Caption[:LavaFloorTrackNS] = 'obsidian floor track NS' ; Shape[:LavaFloorTrackNS] = :FLOOR ; Material[:LavaFloorTrackNS] = :LAVA_STONE ; Special[:LavaFloorTrackNS] = :TRACK ; Direction[:LavaFloorTrackNS] = 'NS'
|
|
ENUM[539] = :LavaFloorTrackNE ; NUME[:LavaFloorTrackNE] = 539 ; Caption[:LavaFloorTrackNE] = 'obsidian floor track NE' ; Shape[:LavaFloorTrackNE] = :FLOOR ; Material[:LavaFloorTrackNE] = :LAVA_STONE ; Special[:LavaFloorTrackNE] = :TRACK ; Direction[:LavaFloorTrackNE] = 'NE'
|
|
ENUM[540] = :LavaFloorTrackNW ; NUME[:LavaFloorTrackNW] = 540 ; Caption[:LavaFloorTrackNW] = 'obsidian floor track NW' ; Shape[:LavaFloorTrackNW] = :FLOOR ; Material[:LavaFloorTrackNW] = :LAVA_STONE ; Special[:LavaFloorTrackNW] = :TRACK ; Direction[:LavaFloorTrackNW] = 'NW'
|
|
ENUM[541] = :LavaFloorTrackSE ; NUME[:LavaFloorTrackSE] = 541 ; Caption[:LavaFloorTrackSE] = 'obsidian floor track SE' ; Shape[:LavaFloorTrackSE] = :FLOOR ; Material[:LavaFloorTrackSE] = :LAVA_STONE ; Special[:LavaFloorTrackSE] = :TRACK ; Direction[:LavaFloorTrackSE] = 'SE'
|
|
ENUM[542] = :LavaFloorTrackSW ; NUME[:LavaFloorTrackSW] = 542 ; Caption[:LavaFloorTrackSW] = 'obsidian floor track SW' ; Shape[:LavaFloorTrackSW] = :FLOOR ; Material[:LavaFloorTrackSW] = :LAVA_STONE ; Special[:LavaFloorTrackSW] = :TRACK ; Direction[:LavaFloorTrackSW] = 'SW'
|
|
ENUM[543] = :LavaFloorTrackEW ; NUME[:LavaFloorTrackEW] = 543 ; Caption[:LavaFloorTrackEW] = 'obsidian floor track EW' ; Shape[:LavaFloorTrackEW] = :FLOOR ; Material[:LavaFloorTrackEW] = :LAVA_STONE ; Special[:LavaFloorTrackEW] = :TRACK ; Direction[:LavaFloorTrackEW] = 'EW'
|
|
ENUM[544] = :LavaFloorTrackNSE ; NUME[:LavaFloorTrackNSE] = 544 ; Caption[:LavaFloorTrackNSE] = 'obsidian floor track NSE' ; Shape[:LavaFloorTrackNSE] = :FLOOR ; Material[:LavaFloorTrackNSE] = :LAVA_STONE ; Special[:LavaFloorTrackNSE] = :TRACK ; Direction[:LavaFloorTrackNSE] = 'NSE'
|
|
ENUM[545] = :LavaFloorTrackNSW ; NUME[:LavaFloorTrackNSW] = 545 ; Caption[:LavaFloorTrackNSW] = 'obsidian floor track NSW' ; Shape[:LavaFloorTrackNSW] = :FLOOR ; Material[:LavaFloorTrackNSW] = :LAVA_STONE ; Special[:LavaFloorTrackNSW] = :TRACK ; Direction[:LavaFloorTrackNSW] = 'NSW'
|
|
ENUM[546] = :LavaFloorTrackNEW ; NUME[:LavaFloorTrackNEW] = 546 ; Caption[:LavaFloorTrackNEW] = 'obsidian floor track NEW' ; Shape[:LavaFloorTrackNEW] = :FLOOR ; Material[:LavaFloorTrackNEW] = :LAVA_STONE ; Special[:LavaFloorTrackNEW] = :TRACK ; Direction[:LavaFloorTrackNEW] = 'NEW'
|
|
ENUM[547] = :LavaFloorTrackSEW ; NUME[:LavaFloorTrackSEW] = 547 ; Caption[:LavaFloorTrackSEW] = 'obsidian floor track SEW' ; Shape[:LavaFloorTrackSEW] = :FLOOR ; Material[:LavaFloorTrackSEW] = :LAVA_STONE ; Special[:LavaFloorTrackSEW] = :TRACK ; Direction[:LavaFloorTrackSEW] = 'SEW'
|
|
ENUM[548] = :LavaFloorTrackNSEW ; NUME[:LavaFloorTrackNSEW] = 548 ; Caption[:LavaFloorTrackNSEW] = 'obsidian floor track NSEW' ; Shape[:LavaFloorTrackNSEW] = :FLOOR ; Material[:LavaFloorTrackNSEW] = :LAVA_STONE ; Special[:LavaFloorTrackNSEW] = :TRACK ; Direction[:LavaFloorTrackNSEW] = 'NSEW'
|
|
ENUM[549] = :FeatureFloorTrackN ; NUME[:FeatureFloorTrackN] = 549 ; Caption[:FeatureFloorTrackN] = 'featstone floor track N' ; Shape[:FeatureFloorTrackN] = :FLOOR ; Material[:FeatureFloorTrackN] = :FEATURE ; Special[:FeatureFloorTrackN] = :TRACK ; Direction[:FeatureFloorTrackN] = 'N'
|
|
ENUM[550] = :FeatureFloorTrackS ; NUME[:FeatureFloorTrackS] = 550 ; Caption[:FeatureFloorTrackS] = 'featstone floor track S' ; Shape[:FeatureFloorTrackS] = :FLOOR ; Material[:FeatureFloorTrackS] = :FEATURE ; Special[:FeatureFloorTrackS] = :TRACK ; Direction[:FeatureFloorTrackS] = 'S'
|
|
ENUM[551] = :FeatureFloorTrackE ; NUME[:FeatureFloorTrackE] = 551 ; Caption[:FeatureFloorTrackE] = 'featstone floor track E' ; Shape[:FeatureFloorTrackE] = :FLOOR ; Material[:FeatureFloorTrackE] = :FEATURE ; Special[:FeatureFloorTrackE] = :TRACK ; Direction[:FeatureFloorTrackE] = 'E'
|
|
ENUM[552] = :FeatureFloorTrackW ; NUME[:FeatureFloorTrackW] = 552 ; Caption[:FeatureFloorTrackW] = 'featstone floor track W' ; Shape[:FeatureFloorTrackW] = :FLOOR ; Material[:FeatureFloorTrackW] = :FEATURE ; Special[:FeatureFloorTrackW] = :TRACK ; Direction[:FeatureFloorTrackW] = 'W'
|
|
ENUM[553] = :FeatureFloorTrackNS ; NUME[:FeatureFloorTrackNS] = 553 ; Caption[:FeatureFloorTrackNS] = 'featstone floor track NS' ; Shape[:FeatureFloorTrackNS] = :FLOOR ; Material[:FeatureFloorTrackNS] = :FEATURE ; Special[:FeatureFloorTrackNS] = :TRACK ; Direction[:FeatureFloorTrackNS] = 'NS'
|
|
ENUM[554] = :FeatureFloorTrackNE ; NUME[:FeatureFloorTrackNE] = 554 ; Caption[:FeatureFloorTrackNE] = 'featstone floor track NE' ; Shape[:FeatureFloorTrackNE] = :FLOOR ; Material[:FeatureFloorTrackNE] = :FEATURE ; Special[:FeatureFloorTrackNE] = :TRACK ; Direction[:FeatureFloorTrackNE] = 'NE'
|
|
ENUM[555] = :FeatureFloorTrackNW ; NUME[:FeatureFloorTrackNW] = 555 ; Caption[:FeatureFloorTrackNW] = 'featstone floor track NW' ; Shape[:FeatureFloorTrackNW] = :FLOOR ; Material[:FeatureFloorTrackNW] = :FEATURE ; Special[:FeatureFloorTrackNW] = :TRACK ; Direction[:FeatureFloorTrackNW] = 'NW'
|
|
ENUM[556] = :FeatureFloorTrackSE ; NUME[:FeatureFloorTrackSE] = 556 ; Caption[:FeatureFloorTrackSE] = 'featstone floor track SE' ; Shape[:FeatureFloorTrackSE] = :FLOOR ; Material[:FeatureFloorTrackSE] = :FEATURE ; Special[:FeatureFloorTrackSE] = :TRACK ; Direction[:FeatureFloorTrackSE] = 'SE'
|
|
ENUM[557] = :FeatureFloorTrackSW ; NUME[:FeatureFloorTrackSW] = 557 ; Caption[:FeatureFloorTrackSW] = 'featstone floor track SW' ; Shape[:FeatureFloorTrackSW] = :FLOOR ; Material[:FeatureFloorTrackSW] = :FEATURE ; Special[:FeatureFloorTrackSW] = :TRACK ; Direction[:FeatureFloorTrackSW] = 'SW'
|
|
ENUM[558] = :FeatureFloorTrackEW ; NUME[:FeatureFloorTrackEW] = 558 ; Caption[:FeatureFloorTrackEW] = 'featstone floor track EW' ; Shape[:FeatureFloorTrackEW] = :FLOOR ; Material[:FeatureFloorTrackEW] = :FEATURE ; Special[:FeatureFloorTrackEW] = :TRACK ; Direction[:FeatureFloorTrackEW] = 'EW'
|
|
ENUM[559] = :FeatureFloorTrackNSE ; NUME[:FeatureFloorTrackNSE] = 559 ; Caption[:FeatureFloorTrackNSE] = 'featstone floor track NSE' ; Shape[:FeatureFloorTrackNSE] = :FLOOR ; Material[:FeatureFloorTrackNSE] = :FEATURE ; Special[:FeatureFloorTrackNSE] = :TRACK ; Direction[:FeatureFloorTrackNSE] = 'NSE'
|
|
ENUM[560] = :FeatureFloorTrackNSW ; NUME[:FeatureFloorTrackNSW] = 560 ; Caption[:FeatureFloorTrackNSW] = 'featstone floor track NSW' ; Shape[:FeatureFloorTrackNSW] = :FLOOR ; Material[:FeatureFloorTrackNSW] = :FEATURE ; Special[:FeatureFloorTrackNSW] = :TRACK ; Direction[:FeatureFloorTrackNSW] = 'NSW'
|
|
ENUM[561] = :FeatureFloorTrackNEW ; NUME[:FeatureFloorTrackNEW] = 561 ; Caption[:FeatureFloorTrackNEW] = 'featstone floor track NEW' ; Shape[:FeatureFloorTrackNEW] = :FLOOR ; Material[:FeatureFloorTrackNEW] = :FEATURE ; Special[:FeatureFloorTrackNEW] = :TRACK ; Direction[:FeatureFloorTrackNEW] = 'NEW'
|
|
ENUM[562] = :FeatureFloorTrackSEW ; NUME[:FeatureFloorTrackSEW] = 562 ; Caption[:FeatureFloorTrackSEW] = 'featstone floor track SEW' ; Shape[:FeatureFloorTrackSEW] = :FLOOR ; Material[:FeatureFloorTrackSEW] = :FEATURE ; Special[:FeatureFloorTrackSEW] = :TRACK ; Direction[:FeatureFloorTrackSEW] = 'SEW'
|
|
ENUM[563] = :FeatureFloorTrackNSEW ; NUME[:FeatureFloorTrackNSEW] = 563 ; Caption[:FeatureFloorTrackNSEW] = 'featstone floor track NSEW' ; Shape[:FeatureFloorTrackNSEW] = :FLOOR ; Material[:FeatureFloorTrackNSEW] = :FEATURE ; Special[:FeatureFloorTrackNSEW] = :TRACK ; Direction[:FeatureFloorTrackNSEW] = 'NSEW'
|
|
ENUM[564] = :MineralFloorTrackN ; NUME[:MineralFloorTrackN] = 564 ; Caption[:MineralFloorTrackN] = 'vein floor track N' ; Shape[:MineralFloorTrackN] = :FLOOR ; Material[:MineralFloorTrackN] = :MINERAL ; Special[:MineralFloorTrackN] = :TRACK ; Direction[:MineralFloorTrackN] = 'N'
|
|
ENUM[565] = :MineralFloorTrackS ; NUME[:MineralFloorTrackS] = 565 ; Caption[:MineralFloorTrackS] = 'vein floor track S' ; Shape[:MineralFloorTrackS] = :FLOOR ; Material[:MineralFloorTrackS] = :MINERAL ; Special[:MineralFloorTrackS] = :TRACK ; Direction[:MineralFloorTrackS] = 'S'
|
|
ENUM[566] = :MineralFloorTrackE ; NUME[:MineralFloorTrackE] = 566 ; Caption[:MineralFloorTrackE] = 'vein floor track E' ; Shape[:MineralFloorTrackE] = :FLOOR ; Material[:MineralFloorTrackE] = :MINERAL ; Special[:MineralFloorTrackE] = :TRACK ; Direction[:MineralFloorTrackE] = 'E'
|
|
ENUM[567] = :MineralFloorTrackW ; NUME[:MineralFloorTrackW] = 567 ; Caption[:MineralFloorTrackW] = 'vein floor track W' ; Shape[:MineralFloorTrackW] = :FLOOR ; Material[:MineralFloorTrackW] = :MINERAL ; Special[:MineralFloorTrackW] = :TRACK ; Direction[:MineralFloorTrackW] = 'W'
|
|
ENUM[568] = :MineralFloorTrackNS ; NUME[:MineralFloorTrackNS] = 568 ; Caption[:MineralFloorTrackNS] = 'vein floor track NS' ; Shape[:MineralFloorTrackNS] = :FLOOR ; Material[:MineralFloorTrackNS] = :MINERAL ; Special[:MineralFloorTrackNS] = :TRACK ; Direction[:MineralFloorTrackNS] = 'NS'
|
|
ENUM[569] = :MineralFloorTrackNE ; NUME[:MineralFloorTrackNE] = 569 ; Caption[:MineralFloorTrackNE] = 'vein floor track NE' ; Shape[:MineralFloorTrackNE] = :FLOOR ; Material[:MineralFloorTrackNE] = :MINERAL ; Special[:MineralFloorTrackNE] = :TRACK ; Direction[:MineralFloorTrackNE] = 'NE'
|
|
ENUM[570] = :MineralFloorTrackNW ; NUME[:MineralFloorTrackNW] = 570 ; Caption[:MineralFloorTrackNW] = 'vein floor track NW' ; Shape[:MineralFloorTrackNW] = :FLOOR ; Material[:MineralFloorTrackNW] = :MINERAL ; Special[:MineralFloorTrackNW] = :TRACK ; Direction[:MineralFloorTrackNW] = 'NW'
|
|
ENUM[571] = :MineralFloorTrackSE ; NUME[:MineralFloorTrackSE] = 571 ; Caption[:MineralFloorTrackSE] = 'vein floor track SE' ; Shape[:MineralFloorTrackSE] = :FLOOR ; Material[:MineralFloorTrackSE] = :MINERAL ; Special[:MineralFloorTrackSE] = :TRACK ; Direction[:MineralFloorTrackSE] = 'SE'
|
|
ENUM[572] = :MineralFloorTrackSW ; NUME[:MineralFloorTrackSW] = 572 ; Caption[:MineralFloorTrackSW] = 'vein floor track SW' ; Shape[:MineralFloorTrackSW] = :FLOOR ; Material[:MineralFloorTrackSW] = :MINERAL ; Special[:MineralFloorTrackSW] = :TRACK ; Direction[:MineralFloorTrackSW] = 'SW'
|
|
ENUM[573] = :MineralFloorTrackEW ; NUME[:MineralFloorTrackEW] = 573 ; Caption[:MineralFloorTrackEW] = 'vein floor track EW' ; Shape[:MineralFloorTrackEW] = :FLOOR ; Material[:MineralFloorTrackEW] = :MINERAL ; Special[:MineralFloorTrackEW] = :TRACK ; Direction[:MineralFloorTrackEW] = 'EW'
|
|
ENUM[574] = :MineralFloorTrackNSE ; NUME[:MineralFloorTrackNSE] = 574 ; Caption[:MineralFloorTrackNSE] = 'vein floor track NSE' ; Shape[:MineralFloorTrackNSE] = :FLOOR ; Material[:MineralFloorTrackNSE] = :MINERAL ; Special[:MineralFloorTrackNSE] = :TRACK ; Direction[:MineralFloorTrackNSE] = 'NSE'
|
|
ENUM[575] = :MineralFloorTrackNSW ; NUME[:MineralFloorTrackNSW] = 575 ; Caption[:MineralFloorTrackNSW] = 'vein floor track NSW' ; Shape[:MineralFloorTrackNSW] = :FLOOR ; Material[:MineralFloorTrackNSW] = :MINERAL ; Special[:MineralFloorTrackNSW] = :TRACK ; Direction[:MineralFloorTrackNSW] = 'NSW'
|
|
ENUM[576] = :MineralFloorTrackNEW ; NUME[:MineralFloorTrackNEW] = 576 ; Caption[:MineralFloorTrackNEW] = 'vein floor track NEW' ; Shape[:MineralFloorTrackNEW] = :FLOOR ; Material[:MineralFloorTrackNEW] = :MINERAL ; Special[:MineralFloorTrackNEW] = :TRACK ; Direction[:MineralFloorTrackNEW] = 'NEW'
|
|
ENUM[577] = :MineralFloorTrackSEW ; NUME[:MineralFloorTrackSEW] = 577 ; Caption[:MineralFloorTrackSEW] = 'vein floor track SEW' ; Shape[:MineralFloorTrackSEW] = :FLOOR ; Material[:MineralFloorTrackSEW] = :MINERAL ; Special[:MineralFloorTrackSEW] = :TRACK ; Direction[:MineralFloorTrackSEW] = 'SEW'
|
|
ENUM[578] = :MineralFloorTrackNSEW ; NUME[:MineralFloorTrackNSEW] = 578 ; Caption[:MineralFloorTrackNSEW] = 'vein floor track NSEW' ; Shape[:MineralFloorTrackNSEW] = :FLOOR ; Material[:MineralFloorTrackNSEW] = :MINERAL ; Special[:MineralFloorTrackNSEW] = :TRACK ; Direction[:MineralFloorTrackNSEW] = 'NSEW'
|
|
ENUM[579] = :FrozenFloorTrackN ; NUME[:FrozenFloorTrackN] = 579 ; Caption[:FrozenFloorTrackN] = 'ice floor track N' ; Shape[:FrozenFloorTrackN] = :FLOOR ; Material[:FrozenFloorTrackN] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackN] = :TRACK ; Direction[:FrozenFloorTrackN] = 'N'
|
|
ENUM[580] = :FrozenFloorTrackS ; NUME[:FrozenFloorTrackS] = 580 ; Caption[:FrozenFloorTrackS] = 'ice floor track S' ; Shape[:FrozenFloorTrackS] = :FLOOR ; Material[:FrozenFloorTrackS] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackS] = :TRACK ; Direction[:FrozenFloorTrackS] = 'S'
|
|
ENUM[581] = :FrozenFloorTrackE ; NUME[:FrozenFloorTrackE] = 581 ; Caption[:FrozenFloorTrackE] = 'ice floor track E' ; Shape[:FrozenFloorTrackE] = :FLOOR ; Material[:FrozenFloorTrackE] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackE] = :TRACK ; Direction[:FrozenFloorTrackE] = 'E'
|
|
ENUM[582] = :FrozenFloorTrackW ; NUME[:FrozenFloorTrackW] = 582 ; Caption[:FrozenFloorTrackW] = 'ice floor track W' ; Shape[:FrozenFloorTrackW] = :FLOOR ; Material[:FrozenFloorTrackW] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackW] = :TRACK ; Direction[:FrozenFloorTrackW] = 'W'
|
|
ENUM[583] = :FrozenFloorTrackNS ; NUME[:FrozenFloorTrackNS] = 583 ; Caption[:FrozenFloorTrackNS] = 'ice floor track NS' ; Shape[:FrozenFloorTrackNS] = :FLOOR ; Material[:FrozenFloorTrackNS] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackNS] = :TRACK ; Direction[:FrozenFloorTrackNS] = 'NS'
|
|
ENUM[584] = :FrozenFloorTrackNE ; NUME[:FrozenFloorTrackNE] = 584 ; Caption[:FrozenFloorTrackNE] = 'ice floor track NE' ; Shape[:FrozenFloorTrackNE] = :FLOOR ; Material[:FrozenFloorTrackNE] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackNE] = :TRACK ; Direction[:FrozenFloorTrackNE] = 'NE'
|
|
ENUM[585] = :FrozenFloorTrackNW ; NUME[:FrozenFloorTrackNW] = 585 ; Caption[:FrozenFloorTrackNW] = 'ice floor track NW' ; Shape[:FrozenFloorTrackNW] = :FLOOR ; Material[:FrozenFloorTrackNW] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackNW] = :TRACK ; Direction[:FrozenFloorTrackNW] = 'NW'
|
|
ENUM[586] = :FrozenFloorTrackSE ; NUME[:FrozenFloorTrackSE] = 586 ; Caption[:FrozenFloorTrackSE] = 'ice floor track SE' ; Shape[:FrozenFloorTrackSE] = :FLOOR ; Material[:FrozenFloorTrackSE] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackSE] = :TRACK ; Direction[:FrozenFloorTrackSE] = 'SE'
|
|
ENUM[587] = :FrozenFloorTrackSW ; NUME[:FrozenFloorTrackSW] = 587 ; Caption[:FrozenFloorTrackSW] = 'ice floor track SW' ; Shape[:FrozenFloorTrackSW] = :FLOOR ; Material[:FrozenFloorTrackSW] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackSW] = :TRACK ; Direction[:FrozenFloorTrackSW] = 'SW'
|
|
ENUM[588] = :FrozenFloorTrackEW ; NUME[:FrozenFloorTrackEW] = 588 ; Caption[:FrozenFloorTrackEW] = 'ice floor track EW' ; Shape[:FrozenFloorTrackEW] = :FLOOR ; Material[:FrozenFloorTrackEW] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackEW] = :TRACK ; Direction[:FrozenFloorTrackEW] = 'EW'
|
|
ENUM[589] = :FrozenFloorTrackNSE ; NUME[:FrozenFloorTrackNSE] = 589 ; Caption[:FrozenFloorTrackNSE] = 'ice floor track NSE' ; Shape[:FrozenFloorTrackNSE] = :FLOOR ; Material[:FrozenFloorTrackNSE] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackNSE] = :TRACK ; Direction[:FrozenFloorTrackNSE] = 'NSE'
|
|
ENUM[590] = :FrozenFloorTrackNSW ; NUME[:FrozenFloorTrackNSW] = 590 ; Caption[:FrozenFloorTrackNSW] = 'ice floor track NSW' ; Shape[:FrozenFloorTrackNSW] = :FLOOR ; Material[:FrozenFloorTrackNSW] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackNSW] = :TRACK ; Direction[:FrozenFloorTrackNSW] = 'NSW'
|
|
ENUM[591] = :FrozenFloorTrackNEW ; NUME[:FrozenFloorTrackNEW] = 591 ; Caption[:FrozenFloorTrackNEW] = 'ice floor track NEW' ; Shape[:FrozenFloorTrackNEW] = :FLOOR ; Material[:FrozenFloorTrackNEW] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackNEW] = :TRACK ; Direction[:FrozenFloorTrackNEW] = 'NEW'
|
|
ENUM[592] = :FrozenFloorTrackSEW ; NUME[:FrozenFloorTrackSEW] = 592 ; Caption[:FrozenFloorTrackSEW] = 'ice floor track SEW' ; Shape[:FrozenFloorTrackSEW] = :FLOOR ; Material[:FrozenFloorTrackSEW] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackSEW] = :TRACK ; Direction[:FrozenFloorTrackSEW] = 'SEW'
|
|
ENUM[593] = :FrozenFloorTrackNSEW ; NUME[:FrozenFloorTrackNSEW] = 593 ; Caption[:FrozenFloorTrackNSEW] = 'ice floor track NSEW' ; Shape[:FrozenFloorTrackNSEW] = :FLOOR ; Material[:FrozenFloorTrackNSEW] = :FROZEN_LIQUID ; Special[:FrozenFloorTrackNSEW] = :TRACK ; Direction[:FrozenFloorTrackNSEW] = 'NSEW'
|
|
ENUM[594] = :ConstructedFloorTrackN ; NUME[:ConstructedFloorTrackN] = 594 ; Caption[:ConstructedFloorTrackN] = 'constructed floor track N' ; Shape[:ConstructedFloorTrackN] = :FLOOR ; Material[:ConstructedFloorTrackN] = :CONSTRUCTION ; Special[:ConstructedFloorTrackN] = :TRACK ; Direction[:ConstructedFloorTrackN] = 'N'
|
|
ENUM[595] = :ConstructedFloorTrackS ; NUME[:ConstructedFloorTrackS] = 595 ; Caption[:ConstructedFloorTrackS] = 'constructed floor track S' ; Shape[:ConstructedFloorTrackS] = :FLOOR ; Material[:ConstructedFloorTrackS] = :CONSTRUCTION ; Special[:ConstructedFloorTrackS] = :TRACK ; Direction[:ConstructedFloorTrackS] = 'S'
|
|
ENUM[596] = :ConstructedFloorTrackE ; NUME[:ConstructedFloorTrackE] = 596 ; Caption[:ConstructedFloorTrackE] = 'constructed floor track E' ; Shape[:ConstructedFloorTrackE] = :FLOOR ; Material[:ConstructedFloorTrackE] = :CONSTRUCTION ; Special[:ConstructedFloorTrackE] = :TRACK ; Direction[:ConstructedFloorTrackE] = 'E'
|
|
ENUM[597] = :ConstructedFloorTrackW ; NUME[:ConstructedFloorTrackW] = 597 ; Caption[:ConstructedFloorTrackW] = 'constructed floor track W' ; Shape[:ConstructedFloorTrackW] = :FLOOR ; Material[:ConstructedFloorTrackW] = :CONSTRUCTION ; Special[:ConstructedFloorTrackW] = :TRACK ; Direction[:ConstructedFloorTrackW] = 'W'
|
|
ENUM[598] = :ConstructedFloorTrackNS ; NUME[:ConstructedFloorTrackNS] = 598 ; Caption[:ConstructedFloorTrackNS] = 'constructed floor track NS' ; Shape[:ConstructedFloorTrackNS] = :FLOOR ; Material[:ConstructedFloorTrackNS] = :CONSTRUCTION ; Special[:ConstructedFloorTrackNS] = :TRACK ; Direction[:ConstructedFloorTrackNS] = 'NS'
|
|
ENUM[599] = :ConstructedFloorTrackNE ; NUME[:ConstructedFloorTrackNE] = 599 ; Caption[:ConstructedFloorTrackNE] = 'constructed floor track NE' ; Shape[:ConstructedFloorTrackNE] = :FLOOR ; Material[:ConstructedFloorTrackNE] = :CONSTRUCTION ; Special[:ConstructedFloorTrackNE] = :TRACK ; Direction[:ConstructedFloorTrackNE] = 'NE'
|
|
ENUM[600] = :ConstructedFloorTrackNW ; NUME[:ConstructedFloorTrackNW] = 600 ; Caption[:ConstructedFloorTrackNW] = 'constructed floor track NW' ; Shape[:ConstructedFloorTrackNW] = :FLOOR ; Material[:ConstructedFloorTrackNW] = :CONSTRUCTION ; Special[:ConstructedFloorTrackNW] = :TRACK ; Direction[:ConstructedFloorTrackNW] = 'NW'
|
|
ENUM[601] = :ConstructedFloorTrackSE ; NUME[:ConstructedFloorTrackSE] = 601 ; Caption[:ConstructedFloorTrackSE] = 'constructed floor track SE' ; Shape[:ConstructedFloorTrackSE] = :FLOOR ; Material[:ConstructedFloorTrackSE] = :CONSTRUCTION ; Special[:ConstructedFloorTrackSE] = :TRACK ; Direction[:ConstructedFloorTrackSE] = 'SE'
|
|
ENUM[602] = :ConstructedFloorTrackSW ; NUME[:ConstructedFloorTrackSW] = 602 ; Caption[:ConstructedFloorTrackSW] = 'constructed floor track SW' ; Shape[:ConstructedFloorTrackSW] = :FLOOR ; Material[:ConstructedFloorTrackSW] = :CONSTRUCTION ; Special[:ConstructedFloorTrackSW] = :TRACK ; Direction[:ConstructedFloorTrackSW] = 'SW'
|
|
ENUM[603] = :ConstructedFloorTrackEW ; NUME[:ConstructedFloorTrackEW] = 603 ; Caption[:ConstructedFloorTrackEW] = 'constructed floor track EW' ; Shape[:ConstructedFloorTrackEW] = :FLOOR ; Material[:ConstructedFloorTrackEW] = :CONSTRUCTION ; Special[:ConstructedFloorTrackEW] = :TRACK ; Direction[:ConstructedFloorTrackEW] = 'EW'
|
|
ENUM[604] = :ConstructedFloorTrackNSE ; NUME[:ConstructedFloorTrackNSE] = 604 ; Caption[:ConstructedFloorTrackNSE] = 'constructed floor track NSE' ; Shape[:ConstructedFloorTrackNSE] = :FLOOR ; Material[:ConstructedFloorTrackNSE] = :CONSTRUCTION ; Special[:ConstructedFloorTrackNSE] = :TRACK ; Direction[:ConstructedFloorTrackNSE] = 'NSE'
|
|
ENUM[605] = :ConstructedFloorTrackNSW ; NUME[:ConstructedFloorTrackNSW] = 605 ; Caption[:ConstructedFloorTrackNSW] = 'constructed floor track NSW' ; Shape[:ConstructedFloorTrackNSW] = :FLOOR ; Material[:ConstructedFloorTrackNSW] = :CONSTRUCTION ; Special[:ConstructedFloorTrackNSW] = :TRACK ; Direction[:ConstructedFloorTrackNSW] = 'NSW'
|
|
ENUM[606] = :ConstructedFloorTrackNEW ; NUME[:ConstructedFloorTrackNEW] = 606 ; Caption[:ConstructedFloorTrackNEW] = 'constructed floor track NEW' ; Shape[:ConstructedFloorTrackNEW] = :FLOOR ; Material[:ConstructedFloorTrackNEW] = :CONSTRUCTION ; Special[:ConstructedFloorTrackNEW] = :TRACK ; Direction[:ConstructedFloorTrackNEW] = 'NEW'
|
|
ENUM[607] = :ConstructedFloorTrackSEW ; NUME[:ConstructedFloorTrackSEW] = 607 ; Caption[:ConstructedFloorTrackSEW] = 'constructed floor track SEW' ; Shape[:ConstructedFloorTrackSEW] = :FLOOR ; Material[:ConstructedFloorTrackSEW] = :CONSTRUCTION ; Special[:ConstructedFloorTrackSEW] = :TRACK ; Direction[:ConstructedFloorTrackSEW] = 'SEW'
|
|
ENUM[608] = :ConstructedFloorTrackNSEW ; NUME[:ConstructedFloorTrackNSEW] = 608 ; Caption[:ConstructedFloorTrackNSEW] = 'constructed floor track NSEW' ; Shape[:ConstructedFloorTrackNSEW] = :FLOOR ; Material[:ConstructedFloorTrackNSEW] = :CONSTRUCTION ; Special[:ConstructedFloorTrackNSEW] = :TRACK ; Direction[:ConstructedFloorTrackNSEW] = 'NSEW'
|
|
ENUM[609] = :StoneRampTrackN ; NUME[:StoneRampTrackN] = 609 ; Caption[:StoneRampTrackN] = 'stone ramp track N' ; Shape[:StoneRampTrackN] = :RAMP ; Material[:StoneRampTrackN] = :STONE ; Special[:StoneRampTrackN] = :TRACK ; Direction[:StoneRampTrackN] = 'N'
|
|
ENUM[610] = :StoneRampTrackS ; NUME[:StoneRampTrackS] = 610 ; Caption[:StoneRampTrackS] = 'stone ramp track S' ; Shape[:StoneRampTrackS] = :RAMP ; Material[:StoneRampTrackS] = :STONE ; Special[:StoneRampTrackS] = :TRACK ; Direction[:StoneRampTrackS] = 'S'
|
|
ENUM[611] = :StoneRampTrackE ; NUME[:StoneRampTrackE] = 611 ; Caption[:StoneRampTrackE] = 'stone ramp track E' ; Shape[:StoneRampTrackE] = :RAMP ; Material[:StoneRampTrackE] = :STONE ; Special[:StoneRampTrackE] = :TRACK ; Direction[:StoneRampTrackE] = 'E'
|
|
ENUM[612] = :StoneRampTrackW ; NUME[:StoneRampTrackW] = 612 ; Caption[:StoneRampTrackW] = 'stone ramp track W' ; Shape[:StoneRampTrackW] = :RAMP ; Material[:StoneRampTrackW] = :STONE ; Special[:StoneRampTrackW] = :TRACK ; Direction[:StoneRampTrackW] = 'W'
|
|
ENUM[613] = :StoneRampTrackNS ; NUME[:StoneRampTrackNS] = 613 ; Caption[:StoneRampTrackNS] = 'stone ramp track NS' ; Shape[:StoneRampTrackNS] = :RAMP ; Material[:StoneRampTrackNS] = :STONE ; Special[:StoneRampTrackNS] = :TRACK ; Direction[:StoneRampTrackNS] = 'NS'
|
|
ENUM[614] = :StoneRampTrackNE ; NUME[:StoneRampTrackNE] = 614 ; Caption[:StoneRampTrackNE] = 'stone ramp track NE' ; Shape[:StoneRampTrackNE] = :RAMP ; Material[:StoneRampTrackNE] = :STONE ; Special[:StoneRampTrackNE] = :TRACK ; Direction[:StoneRampTrackNE] = 'NE'
|
|
ENUM[615] = :StoneRampTrackNW ; NUME[:StoneRampTrackNW] = 615 ; Caption[:StoneRampTrackNW] = 'stone ramp track NW' ; Shape[:StoneRampTrackNW] = :RAMP ; Material[:StoneRampTrackNW] = :STONE ; Special[:StoneRampTrackNW] = :TRACK ; Direction[:StoneRampTrackNW] = 'NW'
|
|
ENUM[616] = :StoneRampTrackSE ; NUME[:StoneRampTrackSE] = 616 ; Caption[:StoneRampTrackSE] = 'stone ramp track SE' ; Shape[:StoneRampTrackSE] = :RAMP ; Material[:StoneRampTrackSE] = :STONE ; Special[:StoneRampTrackSE] = :TRACK ; Direction[:StoneRampTrackSE] = 'SE'
|
|
ENUM[617] = :StoneRampTrackSW ; NUME[:StoneRampTrackSW] = 617 ; Caption[:StoneRampTrackSW] = 'stone ramp track SW' ; Shape[:StoneRampTrackSW] = :RAMP ; Material[:StoneRampTrackSW] = :STONE ; Special[:StoneRampTrackSW] = :TRACK ; Direction[:StoneRampTrackSW] = 'SW'
|
|
ENUM[618] = :StoneRampTrackEW ; NUME[:StoneRampTrackEW] = 618 ; Caption[:StoneRampTrackEW] = 'stone ramp track EW' ; Shape[:StoneRampTrackEW] = :RAMP ; Material[:StoneRampTrackEW] = :STONE ; Special[:StoneRampTrackEW] = :TRACK ; Direction[:StoneRampTrackEW] = 'EW'
|
|
ENUM[619] = :StoneRampTrackNSE ; NUME[:StoneRampTrackNSE] = 619 ; Caption[:StoneRampTrackNSE] = 'stone ramp track NSE' ; Shape[:StoneRampTrackNSE] = :RAMP ; Material[:StoneRampTrackNSE] = :STONE ; Special[:StoneRampTrackNSE] = :TRACK ; Direction[:StoneRampTrackNSE] = 'NSE'
|
|
ENUM[620] = :StoneRampTrackNSW ; NUME[:StoneRampTrackNSW] = 620 ; Caption[:StoneRampTrackNSW] = 'stone ramp track NSW' ; Shape[:StoneRampTrackNSW] = :RAMP ; Material[:StoneRampTrackNSW] = :STONE ; Special[:StoneRampTrackNSW] = :TRACK ; Direction[:StoneRampTrackNSW] = 'NSW'
|
|
ENUM[621] = :StoneRampTrackNEW ; NUME[:StoneRampTrackNEW] = 621 ; Caption[:StoneRampTrackNEW] = 'stone ramp track NEW' ; Shape[:StoneRampTrackNEW] = :RAMP ; Material[:StoneRampTrackNEW] = :STONE ; Special[:StoneRampTrackNEW] = :TRACK ; Direction[:StoneRampTrackNEW] = 'NEW'
|
|
ENUM[622] = :StoneRampTrackSEW ; NUME[:StoneRampTrackSEW] = 622 ; Caption[:StoneRampTrackSEW] = 'stone ramp track SEW' ; Shape[:StoneRampTrackSEW] = :RAMP ; Material[:StoneRampTrackSEW] = :STONE ; Special[:StoneRampTrackSEW] = :TRACK ; Direction[:StoneRampTrackSEW] = 'SEW'
|
|
ENUM[623] = :StoneRampTrackNSEW ; NUME[:StoneRampTrackNSEW] = 623 ; Caption[:StoneRampTrackNSEW] = 'stone ramp track NSEW' ; Shape[:StoneRampTrackNSEW] = :RAMP ; Material[:StoneRampTrackNSEW] = :STONE ; Special[:StoneRampTrackNSEW] = :TRACK ; Direction[:StoneRampTrackNSEW] = 'NSEW'
|
|
ENUM[624] = :LavaRampTrackN ; NUME[:LavaRampTrackN] = 624 ; Caption[:LavaRampTrackN] = 'obsidian ramp track N' ; Shape[:LavaRampTrackN] = :RAMP ; Material[:LavaRampTrackN] = :LAVA_STONE ; Special[:LavaRampTrackN] = :TRACK ; Direction[:LavaRampTrackN] = 'N'
|
|
ENUM[625] = :LavaRampTrackS ; NUME[:LavaRampTrackS] = 625 ; Caption[:LavaRampTrackS] = 'obsidian ramp track S' ; Shape[:LavaRampTrackS] = :RAMP ; Material[:LavaRampTrackS] = :LAVA_STONE ; Special[:LavaRampTrackS] = :TRACK ; Direction[:LavaRampTrackS] = 'S'
|
|
ENUM[626] = :LavaRampTrackE ; NUME[:LavaRampTrackE] = 626 ; Caption[:LavaRampTrackE] = 'obsidian ramp track E' ; Shape[:LavaRampTrackE] = :RAMP ; Material[:LavaRampTrackE] = :LAVA_STONE ; Special[:LavaRampTrackE] = :TRACK ; Direction[:LavaRampTrackE] = 'E'
|
|
ENUM[627] = :LavaRampTrackW ; NUME[:LavaRampTrackW] = 627 ; Caption[:LavaRampTrackW] = 'obsidian ramp track W' ; Shape[:LavaRampTrackW] = :RAMP ; Material[:LavaRampTrackW] = :LAVA_STONE ; Special[:LavaRampTrackW] = :TRACK ; Direction[:LavaRampTrackW] = 'W'
|
|
ENUM[628] = :LavaRampTrackNS ; NUME[:LavaRampTrackNS] = 628 ; Caption[:LavaRampTrackNS] = 'obsidian ramp track NS' ; Shape[:LavaRampTrackNS] = :RAMP ; Material[:LavaRampTrackNS] = :LAVA_STONE ; Special[:LavaRampTrackNS] = :TRACK ; Direction[:LavaRampTrackNS] = 'NS'
|
|
ENUM[629] = :LavaRampTrackNE ; NUME[:LavaRampTrackNE] = 629 ; Caption[:LavaRampTrackNE] = 'obsidian ramp track NE' ; Shape[:LavaRampTrackNE] = :RAMP ; Material[:LavaRampTrackNE] = :LAVA_STONE ; Special[:LavaRampTrackNE] = :TRACK ; Direction[:LavaRampTrackNE] = 'NE'
|
|
ENUM[630] = :LavaRampTrackNW ; NUME[:LavaRampTrackNW] = 630 ; Caption[:LavaRampTrackNW] = 'obsidian ramp track NW' ; Shape[:LavaRampTrackNW] = :RAMP ; Material[:LavaRampTrackNW] = :LAVA_STONE ; Special[:LavaRampTrackNW] = :TRACK ; Direction[:LavaRampTrackNW] = 'NW'
|
|
ENUM[631] = :LavaRampTrackSE ; NUME[:LavaRampTrackSE] = 631 ; Caption[:LavaRampTrackSE] = 'obsidian ramp track SE' ; Shape[:LavaRampTrackSE] = :RAMP ; Material[:LavaRampTrackSE] = :LAVA_STONE ; Special[:LavaRampTrackSE] = :TRACK ; Direction[:LavaRampTrackSE] = 'SE'
|
|
ENUM[632] = :LavaRampTrackSW ; NUME[:LavaRampTrackSW] = 632 ; Caption[:LavaRampTrackSW] = 'obsidian ramp track SW' ; Shape[:LavaRampTrackSW] = :RAMP ; Material[:LavaRampTrackSW] = :LAVA_STONE ; Special[:LavaRampTrackSW] = :TRACK ; Direction[:LavaRampTrackSW] = 'SW'
|
|
ENUM[633] = :LavaRampTrackEW ; NUME[:LavaRampTrackEW] = 633 ; Caption[:LavaRampTrackEW] = 'obsidian ramp track EW' ; Shape[:LavaRampTrackEW] = :RAMP ; Material[:LavaRampTrackEW] = :LAVA_STONE ; Special[:LavaRampTrackEW] = :TRACK ; Direction[:LavaRampTrackEW] = 'EW'
|
|
ENUM[634] = :LavaRampTrackNSE ; NUME[:LavaRampTrackNSE] = 634 ; Caption[:LavaRampTrackNSE] = 'obsidian ramp track NSE' ; Shape[:LavaRampTrackNSE] = :RAMP ; Material[:LavaRampTrackNSE] = :LAVA_STONE ; Special[:LavaRampTrackNSE] = :TRACK ; Direction[:LavaRampTrackNSE] = 'NSE'
|
|
ENUM[635] = :LavaRampTrackNSW ; NUME[:LavaRampTrackNSW] = 635 ; Caption[:LavaRampTrackNSW] = 'obsidian ramp track NSW' ; Shape[:LavaRampTrackNSW] = :RAMP ; Material[:LavaRampTrackNSW] = :LAVA_STONE ; Special[:LavaRampTrackNSW] = :TRACK ; Direction[:LavaRampTrackNSW] = 'NSW'
|
|
ENUM[636] = :LavaRampTrackNEW ; NUME[:LavaRampTrackNEW] = 636 ; Caption[:LavaRampTrackNEW] = 'obsidian ramp track NEW' ; Shape[:LavaRampTrackNEW] = :RAMP ; Material[:LavaRampTrackNEW] = :LAVA_STONE ; Special[:LavaRampTrackNEW] = :TRACK ; Direction[:LavaRampTrackNEW] = 'NEW'
|
|
ENUM[637] = :LavaRampTrackSEW ; NUME[:LavaRampTrackSEW] = 637 ; Caption[:LavaRampTrackSEW] = 'obsidian ramp track SEW' ; Shape[:LavaRampTrackSEW] = :RAMP ; Material[:LavaRampTrackSEW] = :LAVA_STONE ; Special[:LavaRampTrackSEW] = :TRACK ; Direction[:LavaRampTrackSEW] = 'SEW'
|
|
ENUM[638] = :LavaRampTrackNSEW ; NUME[:LavaRampTrackNSEW] = 638 ; Caption[:LavaRampTrackNSEW] = 'obsidian ramp track NSEW' ; Shape[:LavaRampTrackNSEW] = :RAMP ; Material[:LavaRampTrackNSEW] = :LAVA_STONE ; Special[:LavaRampTrackNSEW] = :TRACK ; Direction[:LavaRampTrackNSEW] = 'NSEW'
|
|
ENUM[639] = :FeatureRampTrackN ; NUME[:FeatureRampTrackN] = 639 ; Caption[:FeatureRampTrackN] = 'featstone ramp track N' ; Shape[:FeatureRampTrackN] = :RAMP ; Material[:FeatureRampTrackN] = :FEATURE ; Special[:FeatureRampTrackN] = :TRACK ; Direction[:FeatureRampTrackN] = 'N'
|
|
ENUM[640] = :FeatureRampTrackS ; NUME[:FeatureRampTrackS] = 640 ; Caption[:FeatureRampTrackS] = 'featstone ramp track S' ; Shape[:FeatureRampTrackS] = :RAMP ; Material[:FeatureRampTrackS] = :FEATURE ; Special[:FeatureRampTrackS] = :TRACK ; Direction[:FeatureRampTrackS] = 'S'
|
|
ENUM[641] = :FeatureRampTrackE ; NUME[:FeatureRampTrackE] = 641 ; Caption[:FeatureRampTrackE] = 'featstone ramp track E' ; Shape[:FeatureRampTrackE] = :RAMP ; Material[:FeatureRampTrackE] = :FEATURE ; Special[:FeatureRampTrackE] = :TRACK ; Direction[:FeatureRampTrackE] = 'E'
|
|
ENUM[642] = :FeatureRampTrackW ; NUME[:FeatureRampTrackW] = 642 ; Caption[:FeatureRampTrackW] = 'featstone ramp track W' ; Shape[:FeatureRampTrackW] = :RAMP ; Material[:FeatureRampTrackW] = :FEATURE ; Special[:FeatureRampTrackW] = :TRACK ; Direction[:FeatureRampTrackW] = 'W'
|
|
ENUM[643] = :FeatureRampTrackNS ; NUME[:FeatureRampTrackNS] = 643 ; Caption[:FeatureRampTrackNS] = 'featstone ramp track NS' ; Shape[:FeatureRampTrackNS] = :RAMP ; Material[:FeatureRampTrackNS] = :FEATURE ; Special[:FeatureRampTrackNS] = :TRACK ; Direction[:FeatureRampTrackNS] = 'NS'
|
|
ENUM[644] = :FeatureRampTrackNE ; NUME[:FeatureRampTrackNE] = 644 ; Caption[:FeatureRampTrackNE] = 'featstone ramp track NE' ; Shape[:FeatureRampTrackNE] = :RAMP ; Material[:FeatureRampTrackNE] = :FEATURE ; Special[:FeatureRampTrackNE] = :TRACK ; Direction[:FeatureRampTrackNE] = 'NE'
|
|
ENUM[645] = :FeatureRampTrackNW ; NUME[:FeatureRampTrackNW] = 645 ; Caption[:FeatureRampTrackNW] = 'featstone ramp track NW' ; Shape[:FeatureRampTrackNW] = :RAMP ; Material[:FeatureRampTrackNW] = :FEATURE ; Special[:FeatureRampTrackNW] = :TRACK ; Direction[:FeatureRampTrackNW] = 'NW'
|
|
ENUM[646] = :FeatureRampTrackSE ; NUME[:FeatureRampTrackSE] = 646 ; Caption[:FeatureRampTrackSE] = 'featstone ramp track SE' ; Shape[:FeatureRampTrackSE] = :RAMP ; Material[:FeatureRampTrackSE] = :FEATURE ; Special[:FeatureRampTrackSE] = :TRACK ; Direction[:FeatureRampTrackSE] = 'SE'
|
|
ENUM[647] = :FeatureRampTrackSW ; NUME[:FeatureRampTrackSW] = 647 ; Caption[:FeatureRampTrackSW] = 'featstone ramp track SW' ; Shape[:FeatureRampTrackSW] = :RAMP ; Material[:FeatureRampTrackSW] = :FEATURE ; Special[:FeatureRampTrackSW] = :TRACK ; Direction[:FeatureRampTrackSW] = 'SW'
|
|
ENUM[648] = :FeatureRampTrackEW ; NUME[:FeatureRampTrackEW] = 648 ; Caption[:FeatureRampTrackEW] = 'featstone ramp track EW' ; Shape[:FeatureRampTrackEW] = :RAMP ; Material[:FeatureRampTrackEW] = :FEATURE ; Special[:FeatureRampTrackEW] = :TRACK ; Direction[:FeatureRampTrackEW] = 'EW'
|
|
ENUM[649] = :FeatureRampTrackNSE ; NUME[:FeatureRampTrackNSE] = 649 ; Caption[:FeatureRampTrackNSE] = 'featstone ramp track NSE' ; Shape[:FeatureRampTrackNSE] = :RAMP ; Material[:FeatureRampTrackNSE] = :FEATURE ; Special[:FeatureRampTrackNSE] = :TRACK ; Direction[:FeatureRampTrackNSE] = 'NSE'
|
|
ENUM[650] = :FeatureRampTrackNSW ; NUME[:FeatureRampTrackNSW] = 650 ; Caption[:FeatureRampTrackNSW] = 'featstone ramp track NSW' ; Shape[:FeatureRampTrackNSW] = :RAMP ; Material[:FeatureRampTrackNSW] = :FEATURE ; Special[:FeatureRampTrackNSW] = :TRACK ; Direction[:FeatureRampTrackNSW] = 'NSW'
|
|
ENUM[651] = :FeatureRampTrackNEW ; NUME[:FeatureRampTrackNEW] = 651 ; Caption[:FeatureRampTrackNEW] = 'featstone ramp track NEW' ; Shape[:FeatureRampTrackNEW] = :RAMP ; Material[:FeatureRampTrackNEW] = :FEATURE ; Special[:FeatureRampTrackNEW] = :TRACK ; Direction[:FeatureRampTrackNEW] = 'NEW'
|
|
ENUM[652] = :FeatureRampTrackSEW ; NUME[:FeatureRampTrackSEW] = 652 ; Caption[:FeatureRampTrackSEW] = 'featstone ramp track SEW' ; Shape[:FeatureRampTrackSEW] = :RAMP ; Material[:FeatureRampTrackSEW] = :FEATURE ; Special[:FeatureRampTrackSEW] = :TRACK ; Direction[:FeatureRampTrackSEW] = 'SEW'
|
|
ENUM[653] = :FeatureRampTrackNSEW ; NUME[:FeatureRampTrackNSEW] = 653 ; Caption[:FeatureRampTrackNSEW] = 'featstone ramp track NSEW' ; Shape[:FeatureRampTrackNSEW] = :RAMP ; Material[:FeatureRampTrackNSEW] = :FEATURE ; Special[:FeatureRampTrackNSEW] = :TRACK ; Direction[:FeatureRampTrackNSEW] = 'NSEW'
|
|
ENUM[654] = :MineralRampTrackN ; NUME[:MineralRampTrackN] = 654 ; Caption[:MineralRampTrackN] = 'vein ramp track N' ; Shape[:MineralRampTrackN] = :RAMP ; Material[:MineralRampTrackN] = :MINERAL ; Special[:MineralRampTrackN] = :TRACK ; Direction[:MineralRampTrackN] = 'N'
|
|
ENUM[655] = :MineralRampTrackS ; NUME[:MineralRampTrackS] = 655 ; Caption[:MineralRampTrackS] = 'vein ramp track S' ; Shape[:MineralRampTrackS] = :RAMP ; Material[:MineralRampTrackS] = :MINERAL ; Special[:MineralRampTrackS] = :TRACK ; Direction[:MineralRampTrackS] = 'S'
|
|
ENUM[656] = :MineralRampTrackE ; NUME[:MineralRampTrackE] = 656 ; Caption[:MineralRampTrackE] = 'vein ramp track E' ; Shape[:MineralRampTrackE] = :RAMP ; Material[:MineralRampTrackE] = :MINERAL ; Special[:MineralRampTrackE] = :TRACK ; Direction[:MineralRampTrackE] = 'E'
|
|
ENUM[657] = :MineralRampTrackW ; NUME[:MineralRampTrackW] = 657 ; Caption[:MineralRampTrackW] = 'vein ramp track W' ; Shape[:MineralRampTrackW] = :RAMP ; Material[:MineralRampTrackW] = :MINERAL ; Special[:MineralRampTrackW] = :TRACK ; Direction[:MineralRampTrackW] = 'W'
|
|
ENUM[658] = :MineralRampTrackNS ; NUME[:MineralRampTrackNS] = 658 ; Caption[:MineralRampTrackNS] = 'vein ramp track NS' ; Shape[:MineralRampTrackNS] = :RAMP ; Material[:MineralRampTrackNS] = :MINERAL ; Special[:MineralRampTrackNS] = :TRACK ; Direction[:MineralRampTrackNS] = 'NS'
|
|
ENUM[659] = :MineralRampTrackNE ; NUME[:MineralRampTrackNE] = 659 ; Caption[:MineralRampTrackNE] = 'vein ramp track NE' ; Shape[:MineralRampTrackNE] = :RAMP ; Material[:MineralRampTrackNE] = :MINERAL ; Special[:MineralRampTrackNE] = :TRACK ; Direction[:MineralRampTrackNE] = 'NE'
|
|
ENUM[660] = :MineralRampTrackNW ; NUME[:MineralRampTrackNW] = 660 ; Caption[:MineralRampTrackNW] = 'vein ramp track NW' ; Shape[:MineralRampTrackNW] = :RAMP ; Material[:MineralRampTrackNW] = :MINERAL ; Special[:MineralRampTrackNW] = :TRACK ; Direction[:MineralRampTrackNW] = 'NW'
|
|
ENUM[661] = :MineralRampTrackSE ; NUME[:MineralRampTrackSE] = 661 ; Caption[:MineralRampTrackSE] = 'vein ramp track SE' ; Shape[:MineralRampTrackSE] = :RAMP ; Material[:MineralRampTrackSE] = :MINERAL ; Special[:MineralRampTrackSE] = :TRACK ; Direction[:MineralRampTrackSE] = 'SE'
|
|
ENUM[662] = :MineralRampTrackSW ; NUME[:MineralRampTrackSW] = 662 ; Caption[:MineralRampTrackSW] = 'vein ramp track SW' ; Shape[:MineralRampTrackSW] = :RAMP ; Material[:MineralRampTrackSW] = :MINERAL ; Special[:MineralRampTrackSW] = :TRACK ; Direction[:MineralRampTrackSW] = 'SW'
|
|
ENUM[663] = :MineralRampTrackEW ; NUME[:MineralRampTrackEW] = 663 ; Caption[:MineralRampTrackEW] = 'vein ramp track EW' ; Shape[:MineralRampTrackEW] = :RAMP ; Material[:MineralRampTrackEW] = :MINERAL ; Special[:MineralRampTrackEW] = :TRACK ; Direction[:MineralRampTrackEW] = 'EW'
|
|
ENUM[664] = :MineralRampTrackNSE ; NUME[:MineralRampTrackNSE] = 664 ; Caption[:MineralRampTrackNSE] = 'vein ramp track NSE' ; Shape[:MineralRampTrackNSE] = :RAMP ; Material[:MineralRampTrackNSE] = :MINERAL ; Special[:MineralRampTrackNSE] = :TRACK ; Direction[:MineralRampTrackNSE] = 'NSE'
|
|
ENUM[665] = :MineralRampTrackNSW ; NUME[:MineralRampTrackNSW] = 665 ; Caption[:MineralRampTrackNSW] = 'vein ramp track NSW' ; Shape[:MineralRampTrackNSW] = :RAMP ; Material[:MineralRampTrackNSW] = :MINERAL ; Special[:MineralRampTrackNSW] = :TRACK ; Direction[:MineralRampTrackNSW] = 'NSW'
|
|
ENUM[666] = :MineralRampTrackNEW ; NUME[:MineralRampTrackNEW] = 666 ; Caption[:MineralRampTrackNEW] = 'vein ramp track NEW' ; Shape[:MineralRampTrackNEW] = :RAMP ; Material[:MineralRampTrackNEW] = :MINERAL ; Special[:MineralRampTrackNEW] = :TRACK ; Direction[:MineralRampTrackNEW] = 'NEW'
|
|
ENUM[667] = :MineralRampTrackSEW ; NUME[:MineralRampTrackSEW] = 667 ; Caption[:MineralRampTrackSEW] = 'vein ramp track SEW' ; Shape[:MineralRampTrackSEW] = :RAMP ; Material[:MineralRampTrackSEW] = :MINERAL ; Special[:MineralRampTrackSEW] = :TRACK ; Direction[:MineralRampTrackSEW] = 'SEW'
|
|
ENUM[668] = :MineralRampTrackNSEW ; NUME[:MineralRampTrackNSEW] = 668 ; Caption[:MineralRampTrackNSEW] = 'vein ramp track NSEW' ; Shape[:MineralRampTrackNSEW] = :RAMP ; Material[:MineralRampTrackNSEW] = :MINERAL ; Special[:MineralRampTrackNSEW] = :TRACK ; Direction[:MineralRampTrackNSEW] = 'NSEW'
|
|
ENUM[669] = :FrozenRampTrackN ; NUME[:FrozenRampTrackN] = 669 ; Caption[:FrozenRampTrackN] = 'ice ramp track N' ; Shape[:FrozenRampTrackN] = :RAMP ; Material[:FrozenRampTrackN] = :FROZEN_LIQUID ; Special[:FrozenRampTrackN] = :TRACK ; Direction[:FrozenRampTrackN] = 'N'
|
|
ENUM[670] = :FrozenRampTrackS ; NUME[:FrozenRampTrackS] = 670 ; Caption[:FrozenRampTrackS] = 'ice ramp track S' ; Shape[:FrozenRampTrackS] = :RAMP ; Material[:FrozenRampTrackS] = :FROZEN_LIQUID ; Special[:FrozenRampTrackS] = :TRACK ; Direction[:FrozenRampTrackS] = 'S'
|
|
ENUM[671] = :FrozenRampTrackE ; NUME[:FrozenRampTrackE] = 671 ; Caption[:FrozenRampTrackE] = 'ice ramp track E' ; Shape[:FrozenRampTrackE] = :RAMP ; Material[:FrozenRampTrackE] = :FROZEN_LIQUID ; Special[:FrozenRampTrackE] = :TRACK ; Direction[:FrozenRampTrackE] = 'E'
|
|
ENUM[672] = :FrozenRampTrackW ; NUME[:FrozenRampTrackW] = 672 ; Caption[:FrozenRampTrackW] = 'ice ramp track W' ; Shape[:FrozenRampTrackW] = :RAMP ; Material[:FrozenRampTrackW] = :FROZEN_LIQUID ; Special[:FrozenRampTrackW] = :TRACK ; Direction[:FrozenRampTrackW] = 'W'
|
|
ENUM[673] = :FrozenRampTrackNS ; NUME[:FrozenRampTrackNS] = 673 ; Caption[:FrozenRampTrackNS] = 'ice ramp track NS' ; Shape[:FrozenRampTrackNS] = :RAMP ; Material[:FrozenRampTrackNS] = :FROZEN_LIQUID ; Special[:FrozenRampTrackNS] = :TRACK ; Direction[:FrozenRampTrackNS] = 'NS'
|
|
ENUM[674] = :FrozenRampTrackNE ; NUME[:FrozenRampTrackNE] = 674 ; Caption[:FrozenRampTrackNE] = 'ice ramp track NE' ; Shape[:FrozenRampTrackNE] = :RAMP ; Material[:FrozenRampTrackNE] = :FROZEN_LIQUID ; Special[:FrozenRampTrackNE] = :TRACK ; Direction[:FrozenRampTrackNE] = 'NE'
|
|
ENUM[675] = :FrozenRampTrackNW ; NUME[:FrozenRampTrackNW] = 675 ; Caption[:FrozenRampTrackNW] = 'ice ramp track NW' ; Shape[:FrozenRampTrackNW] = :RAMP ; Material[:FrozenRampTrackNW] = :FROZEN_LIQUID ; Special[:FrozenRampTrackNW] = :TRACK ; Direction[:FrozenRampTrackNW] = 'NW'
|
|
ENUM[676] = :FrozenRampTrackSE ; NUME[:FrozenRampTrackSE] = 676 ; Caption[:FrozenRampTrackSE] = 'ice ramp track SE' ; Shape[:FrozenRampTrackSE] = :RAMP ; Material[:FrozenRampTrackSE] = :FROZEN_LIQUID ; Special[:FrozenRampTrackSE] = :TRACK ; Direction[:FrozenRampTrackSE] = 'SE'
|
|
ENUM[677] = :FrozenRampTrackSW ; NUME[:FrozenRampTrackSW] = 677 ; Caption[:FrozenRampTrackSW] = 'ice ramp track SW' ; Shape[:FrozenRampTrackSW] = :RAMP ; Material[:FrozenRampTrackSW] = :FROZEN_LIQUID ; Special[:FrozenRampTrackSW] = :TRACK ; Direction[:FrozenRampTrackSW] = 'SW'
|
|
ENUM[678] = :FrozenRampTrackEW ; NUME[:FrozenRampTrackEW] = 678 ; Caption[:FrozenRampTrackEW] = 'ice ramp track EW' ; Shape[:FrozenRampTrackEW] = :RAMP ; Material[:FrozenRampTrackEW] = :FROZEN_LIQUID ; Special[:FrozenRampTrackEW] = :TRACK ; Direction[:FrozenRampTrackEW] = 'EW'
|
|
ENUM[679] = :FrozenRampTrackNSE ; NUME[:FrozenRampTrackNSE] = 679 ; Caption[:FrozenRampTrackNSE] = 'ice ramp track NSE' ; Shape[:FrozenRampTrackNSE] = :RAMP ; Material[:FrozenRampTrackNSE] = :FROZEN_LIQUID ; Special[:FrozenRampTrackNSE] = :TRACK ; Direction[:FrozenRampTrackNSE] = 'NSE'
|
|
ENUM[680] = :FrozenRampTrackNSW ; NUME[:FrozenRampTrackNSW] = 680 ; Caption[:FrozenRampTrackNSW] = 'ice ramp track NSW' ; Shape[:FrozenRampTrackNSW] = :RAMP ; Material[:FrozenRampTrackNSW] = :FROZEN_LIQUID ; Special[:FrozenRampTrackNSW] = :TRACK ; Direction[:FrozenRampTrackNSW] = 'NSW'
|
|
ENUM[681] = :FrozenRampTrackNEW ; NUME[:FrozenRampTrackNEW] = 681 ; Caption[:FrozenRampTrackNEW] = 'ice ramp track NEW' ; Shape[:FrozenRampTrackNEW] = :RAMP ; Material[:FrozenRampTrackNEW] = :FROZEN_LIQUID ; Special[:FrozenRampTrackNEW] = :TRACK ; Direction[:FrozenRampTrackNEW] = 'NEW'
|
|
ENUM[682] = :FrozenRampTrackSEW ; NUME[:FrozenRampTrackSEW] = 682 ; Caption[:FrozenRampTrackSEW] = 'ice ramp track SEW' ; Shape[:FrozenRampTrackSEW] = :RAMP ; Material[:FrozenRampTrackSEW] = :FROZEN_LIQUID ; Special[:FrozenRampTrackSEW] = :TRACK ; Direction[:FrozenRampTrackSEW] = 'SEW'
|
|
ENUM[683] = :FrozenRampTrackNSEW ; NUME[:FrozenRampTrackNSEW] = 683 ; Caption[:FrozenRampTrackNSEW] = 'ice ramp track NSEW' ; Shape[:FrozenRampTrackNSEW] = :RAMP ; Material[:FrozenRampTrackNSEW] = :FROZEN_LIQUID ; Special[:FrozenRampTrackNSEW] = :TRACK ; Direction[:FrozenRampTrackNSEW] = 'NSEW'
|
|
ENUM[684] = :ConstructedRampTrackN ; NUME[:ConstructedRampTrackN] = 684 ; Caption[:ConstructedRampTrackN] = 'constructed ramp track N' ; Shape[:ConstructedRampTrackN] = :RAMP ; Material[:ConstructedRampTrackN] = :CONSTRUCTION ; Special[:ConstructedRampTrackN] = :TRACK ; Direction[:ConstructedRampTrackN] = 'N'
|
|
ENUM[685] = :ConstructedRampTrackS ; NUME[:ConstructedRampTrackS] = 685 ; Caption[:ConstructedRampTrackS] = 'constructed ramp track S' ; Shape[:ConstructedRampTrackS] = :RAMP ; Material[:ConstructedRampTrackS] = :CONSTRUCTION ; Special[:ConstructedRampTrackS] = :TRACK ; Direction[:ConstructedRampTrackS] = 'S'
|
|
ENUM[686] = :ConstructedRampTrackE ; NUME[:ConstructedRampTrackE] = 686 ; Caption[:ConstructedRampTrackE] = 'constructed ramp track E' ; Shape[:ConstructedRampTrackE] = :RAMP ; Material[:ConstructedRampTrackE] = :CONSTRUCTION ; Special[:ConstructedRampTrackE] = :TRACK ; Direction[:ConstructedRampTrackE] = 'E'
|
|
ENUM[687] = :ConstructedRampTrackW ; NUME[:ConstructedRampTrackW] = 687 ; Caption[:ConstructedRampTrackW] = 'constructed ramp track W' ; Shape[:ConstructedRampTrackW] = :RAMP ; Material[:ConstructedRampTrackW] = :CONSTRUCTION ; Special[:ConstructedRampTrackW] = :TRACK ; Direction[:ConstructedRampTrackW] = 'W'
|
|
ENUM[688] = :ConstructedRampTrackNS ; NUME[:ConstructedRampTrackNS] = 688 ; Caption[:ConstructedRampTrackNS] = 'constructed ramp track NS' ; Shape[:ConstructedRampTrackNS] = :RAMP ; Material[:ConstructedRampTrackNS] = :CONSTRUCTION ; Special[:ConstructedRampTrackNS] = :TRACK ; Direction[:ConstructedRampTrackNS] = 'NS'
|
|
ENUM[689] = :ConstructedRampTrackNE ; NUME[:ConstructedRampTrackNE] = 689 ; Caption[:ConstructedRampTrackNE] = 'constructed ramp track NE' ; Shape[:ConstructedRampTrackNE] = :RAMP ; Material[:ConstructedRampTrackNE] = :CONSTRUCTION ; Special[:ConstructedRampTrackNE] = :TRACK ; Direction[:ConstructedRampTrackNE] = 'NE'
|
|
ENUM[690] = :ConstructedRampTrackNW ; NUME[:ConstructedRampTrackNW] = 690 ; Caption[:ConstructedRampTrackNW] = 'constructed ramp track NW' ; Shape[:ConstructedRampTrackNW] = :RAMP ; Material[:ConstructedRampTrackNW] = :CONSTRUCTION ; Special[:ConstructedRampTrackNW] = :TRACK ; Direction[:ConstructedRampTrackNW] = 'NW'
|
|
ENUM[691] = :ConstructedRampTrackSE ; NUME[:ConstructedRampTrackSE] = 691 ; Caption[:ConstructedRampTrackSE] = 'constructed ramp track SE' ; Shape[:ConstructedRampTrackSE] = :RAMP ; Material[:ConstructedRampTrackSE] = :CONSTRUCTION ; Special[:ConstructedRampTrackSE] = :TRACK ; Direction[:ConstructedRampTrackSE] = 'SE'
|
|
ENUM[692] = :ConstructedRampTrackSW ; NUME[:ConstructedRampTrackSW] = 692 ; Caption[:ConstructedRampTrackSW] = 'constructed ramp track SW' ; Shape[:ConstructedRampTrackSW] = :RAMP ; Material[:ConstructedRampTrackSW] = :CONSTRUCTION ; Special[:ConstructedRampTrackSW] = :TRACK ; Direction[:ConstructedRampTrackSW] = 'SW'
|
|
ENUM[693] = :ConstructedRampTrackEW ; NUME[:ConstructedRampTrackEW] = 693 ; Caption[:ConstructedRampTrackEW] = 'constructed ramp track EW' ; Shape[:ConstructedRampTrackEW] = :RAMP ; Material[:ConstructedRampTrackEW] = :CONSTRUCTION ; Special[:ConstructedRampTrackEW] = :TRACK ; Direction[:ConstructedRampTrackEW] = 'EW'
|
|
ENUM[694] = :ConstructedRampTrackNSE ; NUME[:ConstructedRampTrackNSE] = 694 ; Caption[:ConstructedRampTrackNSE] = 'constructed ramp track NSE' ; Shape[:ConstructedRampTrackNSE] = :RAMP ; Material[:ConstructedRampTrackNSE] = :CONSTRUCTION ; Special[:ConstructedRampTrackNSE] = :TRACK ; Direction[:ConstructedRampTrackNSE] = 'NSE'
|
|
ENUM[695] = :ConstructedRampTrackNSW ; NUME[:ConstructedRampTrackNSW] = 695 ; Caption[:ConstructedRampTrackNSW] = 'constructed ramp track NSW' ; Shape[:ConstructedRampTrackNSW] = :RAMP ; Material[:ConstructedRampTrackNSW] = :CONSTRUCTION ; Special[:ConstructedRampTrackNSW] = :TRACK ; Direction[:ConstructedRampTrackNSW] = 'NSW'
|
|
ENUM[696] = :ConstructedRampTrackNEW ; NUME[:ConstructedRampTrackNEW] = 696 ; Caption[:ConstructedRampTrackNEW] = 'constructed ramp track NEW' ; Shape[:ConstructedRampTrackNEW] = :RAMP ; Material[:ConstructedRampTrackNEW] = :CONSTRUCTION ; Special[:ConstructedRampTrackNEW] = :TRACK ; Direction[:ConstructedRampTrackNEW] = 'NEW'
|
|
ENUM[697] = :ConstructedRampTrackSEW ; NUME[:ConstructedRampTrackSEW] = 697 ; Caption[:ConstructedRampTrackSEW] = 'constructed ramp track SEW' ; Shape[:ConstructedRampTrackSEW] = :RAMP ; Material[:ConstructedRampTrackSEW] = :CONSTRUCTION ; Special[:ConstructedRampTrackSEW] = :TRACK ; Direction[:ConstructedRampTrackSEW] = 'SEW'
|
|
ENUM[698] = :ConstructedRampTrackNSEW ; NUME[:ConstructedRampTrackNSEW] = 698 ; Caption[:ConstructedRampTrackNSEW] = 'constructed ramp track NSEW' ; Shape[:ConstructedRampTrackNSEW] = :RAMP ; Material[:ConstructedRampTrackNSEW] = :CONSTRUCTION ; Special[:ConstructedRampTrackNSEW] = :TRACK ; Direction[:ConstructedRampTrackNSEW] = 'NSEW'
|
|
end
|
|
|
|
class TiletypeMaterial < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Caption = Hash.new
|
|
ENUM[-1] = :NONE ; NUME[:NONE] = -1
|
|
ENUM[0] = :AIR ; NUME[:AIR] = 0 ; Caption[:AIR] = 'empty'
|
|
ENUM[1] = :SOIL ; NUME[:SOIL] = 1 ; Caption[:SOIL] = 'ordinary soil. material depends on geology'
|
|
ENUM[2] = :STONE ; NUME[:STONE] = 2 ; Caption[:STONE] = 'ordinary layer stone. material depends on geology'
|
|
ENUM[3] = :FEATURE ; NUME[:FEATURE] = 3 ; Caption[:FEATURE] = 'map special stone. used for things like hell, curious structures, or adamantine tubes. material depends on local/global special'
|
|
ENUM[4] = :LAVA_STONE ; NUME[:LAVA_STONE] = 4 ; Caption[:LAVA_STONE] = 'lava stone created by mixing magma and water'
|
|
ENUM[5] = :MINERAL ; NUME[:MINERAL] = 5 ; Caption[:MINERAL] = 'vein stone. material depends on mineral veins present'
|
|
ENUM[6] = :FROZEN_LIQUID ; NUME[:FROZEN_LIQUID] = 6 ; Caption[:FROZEN_LIQUID] = 'frozen liquid. material depends on ice vein present (which also indicates what was on the tile before it froze)'
|
|
ENUM[7] = :CONSTRUCTION ; NUME[:CONSTRUCTION] = 7 ; Caption[:CONSTRUCTION] = 'material depends on the construction present'
|
|
ENUM[8] = :GRASS_LIGHT ; NUME[:GRASS_LIGHT] = 8 ; Caption[:GRASS_LIGHT] = 'light grass'
|
|
ENUM[9] = :GRASS_DARK ; NUME[:GRASS_DARK] = 9 ; Caption[:GRASS_DARK] = 'dark grass'
|
|
ENUM[10] = :GRASS_DRY ; NUME[:GRASS_DRY] = 10 ; Caption[:GRASS_DRY] = 'dry grass'
|
|
ENUM[11] = :GRASS_DEAD ; NUME[:GRASS_DEAD] = 11 ; Caption[:GRASS_DEAD] = 'dead grass'
|
|
ENUM[12] = :PLANT ; NUME[:PLANT] = 12 ; Caption[:PLANT] = 'plant'
|
|
ENUM[13] = :HFS ; NUME[:HFS] = 13 ; Caption[:HFS] = 'the stuff glowing barriers/floors and eerie pits are made of - this makes them different from ordinary walls/floors and chasms'
|
|
ENUM[14] = :CAMPFIRE ; NUME[:CAMPFIRE] = 14 ; Caption[:CAMPFIRE] = 'human armies make them when they siege. original tile is lost?'
|
|
ENUM[15] = :FIRE ; NUME[:FIRE] = 15 ; Caption[:FIRE] = 'burning grass'
|
|
ENUM[16] = :ASHES ; NUME[:ASHES] = 16 ; Caption[:ASHES] = 'what remains from a fire'
|
|
ENUM[17] = :MAGMA ; NUME[:MAGMA] = 17 ; Caption[:MAGMA] = 'material for semi-molten rock and magma flow tiles'
|
|
ENUM[18] = :DRIFTWOOD ; NUME[:DRIFTWOOD] = 18 ; Caption[:DRIFTWOOD] = 'driftwood. normally shows up on beaches'
|
|
ENUM[19] = :POOL ; NUME[:POOL] = 19 ; Caption[:POOL] = 'A pool. Gathers water while it\'s raining.'
|
|
ENUM[20] = :BROOK ; NUME[:BROOK] = 20 ; Caption[:BROOK] = 'Brook beds and floors'
|
|
ENUM[21] = :RIVER ; NUME[:RIVER] = 21 ; Caption[:RIVER] = 'It\'s a riverbed. Basically a tile that doesn\'t get muddy.'
|
|
end
|
|
|
|
class TiletypeShape < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Caption = Hash.new
|
|
BasicShape = Hash.new(:None)
|
|
PassableLow = Hash.new(false)
|
|
PassableHigh = Hash.new(false)
|
|
PassableFlow = Hash.new(false)
|
|
Walkable = Hash.new(false)
|
|
WalkableUp = Hash.new(false)
|
|
ENUM[-1] = :NONE ; NUME[:NONE] = -1
|
|
ENUM[0] = :EMPTY ; NUME[:EMPTY] = 0 ; BasicShape[:EMPTY] = :Open ; PassableLow[:EMPTY] = true ; PassableHigh[:EMPTY] = true ; PassableFlow[:EMPTY] = true
|
|
ENUM[1] = :FLOOR ; NUME[:FLOOR] = 1 ; BasicShape[:FLOOR] = :Floor ; PassableHigh[:FLOOR] = true ; PassableFlow[:FLOOR] = true ; Walkable[:FLOOR] = true
|
|
ENUM[2] = :BOULDER ; NUME[:BOULDER] = 2 ; BasicShape[:BOULDER] = :Floor ; PassableHigh[:BOULDER] = true ; PassableFlow[:BOULDER] = true ; Walkable[:BOULDER] = true
|
|
ENUM[3] = :PEBBLES ; NUME[:PEBBLES] = 3 ; BasicShape[:PEBBLES] = :Floor ; PassableHigh[:PEBBLES] = true ; PassableFlow[:PEBBLES] = true ; Walkable[:PEBBLES] = true
|
|
ENUM[4] = :WALL ; NUME[:WALL] = 4 ; BasicShape[:WALL] = :Wall
|
|
ENUM[5] = :FORTIFICATION ; NUME[:FORTIFICATION] = 5 ; BasicShape[:FORTIFICATION] = :Wall ; PassableFlow[:FORTIFICATION] = true
|
|
ENUM[6] = :STAIR_UP ; NUME[:STAIR_UP] = 6 ; BasicShape[:STAIR_UP] = :Stair ; PassableHigh[:STAIR_UP] = true ; PassableFlow[:STAIR_UP] = true ; Walkable[:STAIR_UP] = true ; WalkableUp[:STAIR_UP] = true
|
|
ENUM[7] = :STAIR_DOWN ; NUME[:STAIR_DOWN] = 7 ; BasicShape[:STAIR_DOWN] = :Stair ; PassableLow[:STAIR_DOWN] = true ; PassableHigh[:STAIR_DOWN] = true ; PassableFlow[:STAIR_DOWN] = true ; Walkable[:STAIR_DOWN] = true
|
|
ENUM[8] = :STAIR_UPDOWN ; NUME[:STAIR_UPDOWN] = 8 ; BasicShape[:STAIR_UPDOWN] = :Stair ; PassableLow[:STAIR_UPDOWN] = true ; PassableHigh[:STAIR_UPDOWN] = true ; PassableFlow[:STAIR_UPDOWN] = true ; Walkable[:STAIR_UPDOWN] = true ; WalkableUp[:STAIR_UPDOWN] = true
|
|
ENUM[9] = :RAMP ; NUME[:RAMP] = 9 ; Caption[:RAMP] = 'ramps have no direction' ; BasicShape[:RAMP] = :Ramp ; PassableHigh[:RAMP] = true ; PassableFlow[:RAMP] = true ; Walkable[:RAMP] = true ; WalkableUp[:RAMP] = true
|
|
ENUM[10] = :RAMP_TOP ; NUME[:RAMP_TOP] = 10 ; Caption[:RAMP_TOP] = 'used for pathing?' ; BasicShape[:RAMP_TOP] = :Open ; PassableLow[:RAMP_TOP] = true ; PassableHigh[:RAMP_TOP] = true ; PassableFlow[:RAMP_TOP] = true ; Walkable[:RAMP_TOP] = true
|
|
ENUM[11] = :BROOK_BED ; NUME[:BROOK_BED] = 11 ; Caption[:BROOK_BED] = 'mineable, water-passable rock on the bottom of a brook' ; BasicShape[:BROOK_BED] = :Wall ; PassableFlow[:BROOK_BED] = true
|
|
ENUM[12] = :BROOK_TOP ; NUME[:BROOK_TOP] = 12 ; Caption[:BROOK_TOP] = 'water-passable floor on top of BROOK_BED tiles' ; BasicShape[:BROOK_TOP] = :Floor ; PassableHigh[:BROOK_TOP] = true ; PassableFlow[:BROOK_TOP] = true ; Walkable[:BROOK_TOP] = true
|
|
ENUM[13] = :TREE ; NUME[:TREE] = 13 ; BasicShape[:TREE] = :Floor
|
|
ENUM[14] = :SAPLING ; NUME[:SAPLING] = 14 ; BasicShape[:SAPLING] = :Floor ; PassableHigh[:SAPLING] = true ; PassableFlow[:SAPLING] = true ; Walkable[:SAPLING] = true
|
|
ENUM[15] = :SHRUB ; NUME[:SHRUB] = 15 ; BasicShape[:SHRUB] = :Floor ; PassableHigh[:SHRUB] = true ; PassableFlow[:SHRUB] = true ; Walkable[:SHRUB] = true
|
|
ENUM[16] = :ENDLESS_PIT ; NUME[:ENDLESS_PIT] = 16 ; Caption[:ENDLESS_PIT] = 'a fake endless pit' ; BasicShape[:ENDLESS_PIT] = :Open ; PassableHigh[:ENDLESS_PIT] = true ; PassableFlow[:ENDLESS_PIT] = true ; Walkable[:ENDLESS_PIT] = true
|
|
end
|
|
|
|
class TiletypeShapeBasic < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :None ; NUME[:None] = -1
|
|
ENUM[0] = :Open ; NUME[:Open] = 0
|
|
ENUM[1] = :Floor ; NUME[:Floor] = 1
|
|
ENUM[2] = :Ramp ; NUME[:Ramp] = 2
|
|
ENUM[3] = :Wall ; NUME[:Wall] = 3
|
|
ENUM[4] = :Stair ; NUME[:Stair] = 4
|
|
end
|
|
|
|
class TiletypeSpecial < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Caption = Hash.new
|
|
ENUM[-1] = :NONE ; NUME[:NONE] = -1
|
|
ENUM[0] = :NORMAL ; NUME[:NORMAL] = 0 ; Caption[:NORMAL] = 'default for all tiles, nothing special about it'
|
|
ENUM[1] = :RIVER_SOURCE ; NUME[:RIVER_SOURCE] = 1 ; Caption[:RIVER_SOURCE] = 'river source, when it exists on a map'
|
|
ENUM[2] = :WATERFALL ; NUME[:WATERFALL] = 2 ; Caption[:WATERFALL] = 'waterfall from nowhere, used by cave rivers back in 40d'
|
|
ENUM[3] = :SMOOTH ; NUME[:SMOOTH] = 3 ; Caption[:SMOOTH] = 'smooth walls and floors, including constructions'
|
|
ENUM[4] = :FURROWED ; NUME[:FURROWED] = 4 ; Caption[:FURROWED] = 'furrowed soil, left by roads/farms and removing constructions'
|
|
ENUM[5] = :WET ; NUME[:WET] = 5 ; Caption[:WET] = 'wet soil, found on beaches'
|
|
ENUM[6] = :DEAD ; NUME[:DEAD] = 6 ; Caption[:DEAD] = 'dead, used by plants'
|
|
ENUM[7] = :WORN_1 ; NUME[:WORN_1] = 7 ; Caption[:WORN_1] = 'partially (25%) mined walls'
|
|
ENUM[8] = :WORN_2 ; NUME[:WORN_2] = 8 ; Caption[:WORN_2] = 'partially (50%) mined walls'
|
|
ENUM[9] = :WORN_3 ; NUME[:WORN_3] = 9 ; Caption[:WORN_3] = 'partially (75%) mined walls'
|
|
ENUM[10] = :TRACK ; NUME[:TRACK] = 10 ; Caption[:TRACK] = 'mine cart track'
|
|
end
|
|
|
|
class TiletypeVariant < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :NONE ; NUME[:NONE] = -1
|
|
ENUM[0] = :VAR_1 ; NUME[:VAR_1] = 0
|
|
ENUM[1] = :VAR_2 ; NUME[:VAR_2] = 1
|
|
ENUM[2] = :VAR_3 ; NUME[:VAR_3] = 2
|
|
ENUM[3] = :VAR_4 ; NUME[:VAR_4] = 3
|
|
end
|
|
|
|
class TimedEventType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Caravan ; NUME[:Caravan] = 0
|
|
ENUM[1] = :Migrants ; NUME[:Migrants] = 1
|
|
ENUM[2] = :Diplomat ; NUME[:Diplomat] = 2
|
|
ENUM[3] = :CivAttack ; NUME[:CivAttack] = 3
|
|
ENUM[5] = :Megabeast ; NUME[:Megabeast] = 5
|
|
ENUM[6] = :Wildlife ; NUME[:Wildlife] = 6
|
|
ENUM[7] = :Unk7 ; NUME[:Unk7] = 7
|
|
ENUM[8] = :Unk8 ; NUME[:Unk8] = 8
|
|
ENUM[9] = :Unk9 ; NUME[:Unk9] = 9
|
|
end
|
|
|
|
class TissueTemplateFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :THICKENS_ON_STRENGTH ; NUME[:THICKENS_ON_STRENGTH] = 0
|
|
ENUM[1] = :THICKENS_ON_ENERGY_STORAGE ; NUME[:THICKENS_ON_ENERGY_STORAGE] = 1
|
|
ENUM[2] = :ARTERIES ; NUME[:ARTERIES] = 2
|
|
ENUM[3] = :SCARS ; NUME[:SCARS] = 3
|
|
ENUM[4] = :STRUCTURAL ; NUME[:STRUCTURAL] = 4
|
|
ENUM[5] = :NERVOUS ; NUME[:NERVOUS] = 5
|
|
ENUM[6] = :THOUGHT ; NUME[:THOUGHT] = 6
|
|
ENUM[7] = :MUSCULAR ; NUME[:MUSCULAR] = 7
|
|
ENUM[8] = :SMELL ; NUME[:SMELL] = 8
|
|
ENUM[9] = :HEAR ; NUME[:HEAR] = 9
|
|
ENUM[10] = :FLIGHT ; NUME[:FLIGHT] = 10
|
|
ENUM[11] = :BREATHE ; NUME[:BREATHE] = 11
|
|
ENUM[12] = :SIGHT ; NUME[:SIGHT] = 12
|
|
ENUM[13] = :COSMETIC ; NUME[:COSMETIC] = 13
|
|
ENUM[14] = :CONNECTS ; NUME[:CONNECTS] = 14
|
|
ENUM[15] = :FUNCTIONAL ; NUME[:FUNCTIONAL] = 15
|
|
ENUM[16] = :MAJOR_ARTERIES ; NUME[:MAJOR_ARTERIES] = 16
|
|
ENUM[17] = :TISSUE_LEAKS ; NUME[:TISSUE_LEAKS] = 17
|
|
ENUM[18] = :STYLEABLE ; NUME[:STYLEABLE] = 18
|
|
ENUM[19] = :CONNECTIVE_TISSUE_ANCHOR ; NUME[:CONNECTIVE_TISSUE_ANCHOR] = 19
|
|
ENUM[20] = :SETTABLE ; NUME[:SETTABLE] = 20
|
|
ENUM[21] = :SPLINTABLE ; NUME[:SPLINTABLE] = 21
|
|
end
|
|
|
|
class ToolFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :HARD_MAT ; NUME[:HARD_MAT] = 0
|
|
ENUM[1] = :METAL_MAT ; NUME[:METAL_MAT] = 1
|
|
ENUM[2] = :HAS_EDGE_ATTACK ; NUME[:HAS_EDGE_ATTACK] = 2
|
|
ENUM[3] = :METAL_WEAPON_MAT ; NUME[:METAL_WEAPON_MAT] = 3
|
|
ENUM[4] = :UNIMPROVABLE ; NUME[:UNIMPROVABLE] = 4
|
|
ENUM[5] = :SOFT_MAT ; NUME[:SOFT_MAT] = 5
|
|
ENUM[6] = :WOOD_MAT ; NUME[:WOOD_MAT] = 6
|
|
ENUM[7] = :INVERTED_TILE ; NUME[:INVERTED_TILE] = 7
|
|
ENUM[8] = :FURNITURE ; NUME[:FURNITURE] = 8
|
|
end
|
|
|
|
class ToolUses < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :NONE ; NUME[:NONE] = -1
|
|
ENUM[0] = :LIQUID_COOKING ; NUME[:LIQUID_COOKING] = 0
|
|
ENUM[1] = :LIQUID_SCOOP ; NUME[:LIQUID_SCOOP] = 1
|
|
ENUM[2] = :GRIND_POWDER_RECEPTACLE ; NUME[:GRIND_POWDER_RECEPTACLE] = 2
|
|
ENUM[3] = :GRIND_POWDER_GRINDER ; NUME[:GRIND_POWDER_GRINDER] = 3
|
|
ENUM[4] = :MEAT_CARVING ; NUME[:MEAT_CARVING] = 4
|
|
ENUM[5] = :MEAT_BONING ; NUME[:MEAT_BONING] = 5
|
|
ENUM[6] = :MEAT_SLICING ; NUME[:MEAT_SLICING] = 6
|
|
ENUM[7] = :MEAT_CLEAVING ; NUME[:MEAT_CLEAVING] = 7
|
|
ENUM[8] = :HOLD_MEAT_FOR_CARVING ; NUME[:HOLD_MEAT_FOR_CARVING] = 8
|
|
ENUM[9] = :MEAL_CONTAINER ; NUME[:MEAL_CONTAINER] = 9
|
|
ENUM[10] = :LIQUID_CONTAINER ; NUME[:LIQUID_CONTAINER] = 10
|
|
ENUM[11] = :FOOD_STORAGE ; NUME[:FOOD_STORAGE] = 11
|
|
ENUM[12] = :HIVE ; NUME[:HIVE] = 12
|
|
ENUM[13] = :NEST_BOX ; NUME[:NEST_BOX] = 13
|
|
ENUM[14] = :SMALL_OBJECT_STORAGE ; NUME[:SMALL_OBJECT_STORAGE] = 14
|
|
ENUM[15] = :TRACK_CART ; NUME[:TRACK_CART] = 15
|
|
ENUM[16] = :HEAVY_OBJECT_HAULING ; NUME[:HEAVY_OBJECT_HAULING] = 16
|
|
end
|
|
|
|
class ToyFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :HARD_MAT ; NUME[:HARD_MAT] = 0
|
|
end
|
|
|
|
class TrainingKnowledgeLevel < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :None ; NUME[:None] = 0
|
|
ENUM[1] = :FewFacts ; NUME[:FewFacts] = 1
|
|
ENUM[2] = :GeneralFamiliarity ; NUME[:GeneralFamiliarity] = 2
|
|
ENUM[3] = :Knowledgeable ; NUME[:Knowledgeable] = 3
|
|
ENUM[4] = :Expert ; NUME[:Expert] = 4
|
|
ENUM[5] = :Domesticated ; NUME[:Domesticated] = 5
|
|
end
|
|
|
|
class TrapType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Lever ; NUME[:Lever] = 0
|
|
ENUM[1] = :PressurePlate ; NUME[:PressurePlate] = 1
|
|
ENUM[2] = :CageTrap ; NUME[:CageTrap] = 2
|
|
ENUM[3] = :StoneFallTrap ; NUME[:StoneFallTrap] = 3
|
|
ENUM[4] = :WeaponTrap ; NUME[:WeaponTrap] = 4
|
|
ENUM[5] = :TrackStop ; NUME[:TrackStop] = 5
|
|
end
|
|
|
|
class TrapcompFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :IS_SCREW ; NUME[:IS_SCREW] = 0
|
|
ENUM[1] = :IS_SPIKE ; NUME[:IS_SPIKE] = 1
|
|
ENUM[2] = :WOOD ; NUME[:WOOD] = 2
|
|
ENUM[3] = :METAL ; NUME[:METAL] = 3
|
|
ENUM[4] = :HAS_EDGE_ATTACK ; NUME[:HAS_EDGE_ATTACK] = 4
|
|
end
|
|
|
|
class UiAdvmodeMenu < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Default ; NUME[:Default] = 0
|
|
ENUM[1] = :Look ; NUME[:Look] = 1
|
|
ENUM[2] = :Talk ; NUME[:Talk] = 2
|
|
ENUM[3] = :Inventory ; NUME[:Inventory] = 3
|
|
ENUM[4] = :Drop ; NUME[:Drop] = 4
|
|
ENUM[5] = :ThrowItem ; NUME[:ThrowItem] = 5
|
|
ENUM[6] = :Wear ; NUME[:Wear] = 6
|
|
ENUM[7] = :Remove ; NUME[:Remove] = 7
|
|
ENUM[8] = :Interact ; NUME[:Interact] = 8
|
|
ENUM[9] = :Put ; NUME[:Put] = 9
|
|
ENUM[10] = :Unk10 ; NUME[:Unk10] = 10
|
|
ENUM[11] = :Eat ; NUME[:Eat] = 11
|
|
ENUM[12] = :ThrowAim ; NUME[:ThrowAim] = 12
|
|
ENUM[13] = :Unk13 ; NUME[:Unk13] = 13
|
|
ENUM[14] = :Get ; NUME[:Get] = 14
|
|
ENUM[15] = :Fire ; NUME[:Fire] = 15
|
|
ENUM[16] = :CombatPrefs ; NUME[:CombatPrefs] = 16
|
|
ENUM[17] = :Companions ; NUME[:Companions] = 17
|
|
ENUM[18] = :Unk18 ; NUME[:Unk18] = 18
|
|
ENUM[19] = :Unk19 ; NUME[:Unk19] = 19
|
|
ENUM[20] = :Unk20 ; NUME[:Unk20] = 20
|
|
ENUM[21] = :Announcements ; NUME[:Announcements] = 21
|
|
ENUM[22] = :Attack ; NUME[:Attack] = 22
|
|
ENUM[23] = :UseBuilding ; NUME[:UseBuilding] = 23
|
|
ENUM[24] = :Travel ; NUME[:Travel] = 24
|
|
ENUM[25] = :Unk25 ; NUME[:Unk25] = 25
|
|
ENUM[26] = :Unk26 ; NUME[:Unk26] = 26
|
|
ENUM[27] = :Unk27 ; NUME[:Unk27] = 27
|
|
ENUM[28] = :Unk28 ; NUME[:Unk28] = 28
|
|
ENUM[29] = :Sleep ; NUME[:Sleep] = 29
|
|
end
|
|
|
|
class UiSidebarMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Default ; NUME[:Default] = 0
|
|
ENUM[1] = :Squads ; NUME[:Squads] = 1
|
|
ENUM[2] = :DesignateMine ; NUME[:DesignateMine] = 2
|
|
ENUM[3] = :DesignateRemoveRamps ; NUME[:DesignateRemoveRamps] = 3
|
|
ENUM[4] = :DesignateUpStair ; NUME[:DesignateUpStair] = 4
|
|
ENUM[5] = :DesignateDownStair ; NUME[:DesignateDownStair] = 5
|
|
ENUM[6] = :DesignateUpDownStair ; NUME[:DesignateUpDownStair] = 6
|
|
ENUM[7] = :DesignateUpRamp ; NUME[:DesignateUpRamp] = 7
|
|
ENUM[8] = :DesignateChannel ; NUME[:DesignateChannel] = 8
|
|
ENUM[9] = :DesignateGatherPlants ; NUME[:DesignateGatherPlants] = 9
|
|
ENUM[10] = :DesignateRemoveDesignation ; NUME[:DesignateRemoveDesignation] = 10
|
|
ENUM[11] = :DesignateSmooth ; NUME[:DesignateSmooth] = 11
|
|
ENUM[12] = :DesignateCarveTrack ; NUME[:DesignateCarveTrack] = 12
|
|
ENUM[13] = :DesignateEngrave ; NUME[:DesignateEngrave] = 13
|
|
ENUM[14] = :DesignateCarveFortification ; NUME[:DesignateCarveFortification] = 14
|
|
ENUM[15] = :Stockpiles ; NUME[:Stockpiles] = 15
|
|
ENUM[16] = :Build ; NUME[:Build] = 16
|
|
ENUM[17] = :QueryBuilding ; NUME[:QueryBuilding] = 17
|
|
ENUM[18] = :Orders ; NUME[:Orders] = 18
|
|
ENUM[19] = :OrdersForbid ; NUME[:OrdersForbid] = 19
|
|
ENUM[20] = :OrdersRefuse ; NUME[:OrdersRefuse] = 20
|
|
ENUM[21] = :OrdersWorkshop ; NUME[:OrdersWorkshop] = 21
|
|
ENUM[22] = :OrdersZone ; NUME[:OrdersZone] = 22
|
|
ENUM[23] = :BuildingItems ; NUME[:BuildingItems] = 23
|
|
ENUM[24] = :ViewUnits ; NUME[:ViewUnits] = 24
|
|
ENUM[25] = :LookAround ; NUME[:LookAround] = 25
|
|
ENUM[26] = :DesignateItemsClaim ; NUME[:DesignateItemsClaim] = 26
|
|
ENUM[27] = :DesignateItemsForbid ; NUME[:DesignateItemsForbid] = 27
|
|
ENUM[28] = :DesignateItemsMelt ; NUME[:DesignateItemsMelt] = 28
|
|
ENUM[29] = :DesignateItemsUnmelt ; NUME[:DesignateItemsUnmelt] = 29
|
|
ENUM[30] = :DesignateItemsDump ; NUME[:DesignateItemsDump] = 30
|
|
ENUM[31] = :DesignateItemsUndump ; NUME[:DesignateItemsUndump] = 31
|
|
ENUM[32] = :DesignateItemsHide ; NUME[:DesignateItemsHide] = 32
|
|
ENUM[33] = :DesignateItemsUnhide ; NUME[:DesignateItemsUnhide] = 33
|
|
ENUM[34] = :DesignateChopTrees ; NUME[:DesignateChopTrees] = 34
|
|
ENUM[35] = :DesignateToggleEngravings ; NUME[:DesignateToggleEngravings] = 35
|
|
ENUM[36] = :Hotkeys ; NUME[:Hotkeys] = 36
|
|
ENUM[37] = :DesignateTrafficHigh ; NUME[:DesignateTrafficHigh] = 37
|
|
ENUM[38] = :DesignateTrafficNormal ; NUME[:DesignateTrafficNormal] = 38
|
|
ENUM[39] = :DesignateTrafficLow ; NUME[:DesignateTrafficLow] = 39
|
|
ENUM[40] = :DesignateTrafficRestricted ; NUME[:DesignateTrafficRestricted] = 40
|
|
ENUM[41] = :Zones ; NUME[:Zones] = 41
|
|
ENUM[42] = :ZonesPenInfo ; NUME[:ZonesPenInfo] = 42
|
|
ENUM[43] = :ZonesPitInfo ; NUME[:ZonesPitInfo] = 43
|
|
ENUM[44] = :ZonesHospitalInfo ; NUME[:ZonesHospitalInfo] = 44
|
|
ENUM[45] = :DesignateRemoveConstruction ; NUME[:DesignateRemoveConstruction] = 45
|
|
ENUM[46] = :DepotAccess ; NUME[:DepotAccess] = 46
|
|
ENUM[47] = :NotesPoints ; NUME[:NotesPoints] = 47
|
|
ENUM[48] = :NotesRoutes ; NUME[:NotesRoutes] = 48
|
|
ENUM[49] = :Burrows ; NUME[:Burrows] = 49
|
|
ENUM[50] = :Hauling ; NUME[:Hauling] = 50
|
|
end
|
|
|
|
class UniformCategory < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Body ; NUME[:Body] = 0
|
|
ENUM[1] = :Head ; NUME[:Head] = 1
|
|
ENUM[2] = :Pants ; NUME[:Pants] = 2
|
|
ENUM[3] = :Gloves ; NUME[:Gloves] = 3
|
|
ENUM[4] = :Shoes ; NUME[:Shoes] = 4
|
|
ENUM[5] = :Shield ; NUME[:Shield] = 5
|
|
ENUM[6] = :Weapon ; NUME[:Weapon] = 6
|
|
end
|
|
|
|
class UniformMaterialClass < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :None ; NUME[:None] = -1
|
|
ENUM[1] = :Leather ; NUME[:Leather] = 1
|
|
ENUM[2] = :Cloth ; NUME[:Cloth] = 2
|
|
ENUM[3] = :Wood ; NUME[:Wood] = 3
|
|
ENUM[5] = :Stone ; NUME[:Stone] = 5
|
|
ENUM[14] = :Metal ; NUME[:Metal] = 14
|
|
ENUM[16] = :Metal2 ; NUME[:Metal2] = 16
|
|
ENUM[17] = :Gem ; NUME[:Gem] = 17
|
|
ENUM[18] = :Bone ; NUME[:Bone] = 18
|
|
ENUM[19] = :Shell ; NUME[:Shell] = 19
|
|
ENUM[20] = :Pearl ; NUME[:Pearl] = 20
|
|
ENUM[21] = :Tooth ; NUME[:Tooth] = 21
|
|
ENUM[22] = :Horn ; NUME[:Horn] = 22
|
|
ENUM[27] = :PlantFiber ; NUME[:PlantFiber] = 27
|
|
ENUM[28] = :Silk ; NUME[:Silk] = 28
|
|
ENUM[29] = :Yarn ; NUME[:Yarn] = 29
|
|
end
|
|
|
|
class UnitLabor < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Caption = Hash.new
|
|
ENUM[-1] = :NONE ; NUME[:NONE] = -1
|
|
ENUM[0] = :MINE ; NUME[:MINE] = 0 ; Caption[:MINE] = 'Mining'
|
|
ENUM[1] = :HAUL_STONE ; NUME[:HAUL_STONE] = 1 ; Caption[:HAUL_STONE] = 'Stone Hauling'
|
|
ENUM[2] = :HAUL_WOOD ; NUME[:HAUL_WOOD] = 2 ; Caption[:HAUL_WOOD] = 'Wood Hauling'
|
|
ENUM[3] = :HAUL_BODY ; NUME[:HAUL_BODY] = 3 ; Caption[:HAUL_BODY] = 'Burial'
|
|
ENUM[4] = :HAUL_FOOD ; NUME[:HAUL_FOOD] = 4 ; Caption[:HAUL_FOOD] = 'Food Hauling'
|
|
ENUM[5] = :HAUL_REFUSE ; NUME[:HAUL_REFUSE] = 5 ; Caption[:HAUL_REFUSE] = 'Refuse Hauling'
|
|
ENUM[6] = :HAUL_ITEM ; NUME[:HAUL_ITEM] = 6 ; Caption[:HAUL_ITEM] = 'Item Hauling'
|
|
ENUM[7] = :HAUL_FURNITURE ; NUME[:HAUL_FURNITURE] = 7 ; Caption[:HAUL_FURNITURE] = 'Furniture Hauling'
|
|
ENUM[8] = :HAUL_ANIMAL ; NUME[:HAUL_ANIMAL] = 8 ; Caption[:HAUL_ANIMAL] = 'Animal Hauling'
|
|
ENUM[9] = :CLEAN ; NUME[:CLEAN] = 9 ; Caption[:CLEAN] = 'Cleaning'
|
|
ENUM[10] = :CUTWOOD ; NUME[:CUTWOOD] = 10 ; Caption[:CUTWOOD] = 'Wood Cutting'
|
|
ENUM[11] = :CARPENTER ; NUME[:CARPENTER] = 11 ; Caption[:CARPENTER] = 'Carpentry'
|
|
ENUM[12] = :DETAIL ; NUME[:DETAIL] = 12 ; Caption[:DETAIL] = 'Stone Detailing'
|
|
ENUM[13] = :MASON ; NUME[:MASON] = 13 ; Caption[:MASON] = 'Masonry'
|
|
ENUM[14] = :ARCHITECT ; NUME[:ARCHITECT] = 14 ; Caption[:ARCHITECT] = 'Architecture'
|
|
ENUM[15] = :ANIMALTRAIN ; NUME[:ANIMALTRAIN] = 15 ; Caption[:ANIMALTRAIN] = 'Animal Training'
|
|
ENUM[16] = :ANIMALCARE ; NUME[:ANIMALCARE] = 16 ; Caption[:ANIMALCARE] = 'Animal Care'
|
|
ENUM[17] = :DIAGNOSE ; NUME[:DIAGNOSE] = 17 ; Caption[:DIAGNOSE] = 'Diagnosis'
|
|
ENUM[18] = :SURGERY ; NUME[:SURGERY] = 18 ; Caption[:SURGERY] = 'Surgery'
|
|
ENUM[19] = :BONE_SETTING ; NUME[:BONE_SETTING] = 19 ; Caption[:BONE_SETTING] = 'Setting Bones'
|
|
ENUM[20] = :SUTURING ; NUME[:SUTURING] = 20 ; Caption[:SUTURING] = 'Suturing'
|
|
ENUM[21] = :DRESSING_WOUNDS ; NUME[:DRESSING_WOUNDS] = 21 ; Caption[:DRESSING_WOUNDS] = 'Dressing Wounds'
|
|
ENUM[22] = :FEED_WATER_CIVILIANS ; NUME[:FEED_WATER_CIVILIANS] = 22 ; Caption[:FEED_WATER_CIVILIANS] = 'Feed Patients/Prisoners'
|
|
ENUM[23] = :RECOVER_WOUNDED ; NUME[:RECOVER_WOUNDED] = 23 ; Caption[:RECOVER_WOUNDED] = 'Recovering Wounded'
|
|
ENUM[24] = :BUTCHER ; NUME[:BUTCHER] = 24 ; Caption[:BUTCHER] = 'Butchery'
|
|
ENUM[25] = :TRAPPER ; NUME[:TRAPPER] = 25 ; Caption[:TRAPPER] = 'Trapping'
|
|
ENUM[26] = :DISSECT_VERMIN ; NUME[:DISSECT_VERMIN] = 26 ; Caption[:DISSECT_VERMIN] = 'Small Animal Dissection'
|
|
ENUM[27] = :LEATHER ; NUME[:LEATHER] = 27 ; Caption[:LEATHER] = 'Leatherworking'
|
|
ENUM[28] = :TANNER ; NUME[:TANNER] = 28 ; Caption[:TANNER] = 'Tanning'
|
|
ENUM[29] = :BREWER ; NUME[:BREWER] = 29 ; Caption[:BREWER] = 'Brewing'
|
|
ENUM[30] = :ALCHEMIST ; NUME[:ALCHEMIST] = 30 ; Caption[:ALCHEMIST] = 'Alchemy'
|
|
ENUM[31] = :SOAP_MAKER ; NUME[:SOAP_MAKER] = 31 ; Caption[:SOAP_MAKER] = 'Soap Maker'
|
|
ENUM[32] = :WEAVER ; NUME[:WEAVER] = 32 ; Caption[:WEAVER] = 'Weaving'
|
|
ENUM[33] = :CLOTHESMAKER ; NUME[:CLOTHESMAKER] = 33 ; Caption[:CLOTHESMAKER] = 'Clothesmaking'
|
|
ENUM[34] = :MILLER ; NUME[:MILLER] = 34 ; Caption[:MILLER] = 'Milling'
|
|
ENUM[35] = :PROCESS_PLANT ; NUME[:PROCESS_PLANT] = 35 ; Caption[:PROCESS_PLANT] = 'Plant Processing'
|
|
ENUM[36] = :MAKE_CHEESE ; NUME[:MAKE_CHEESE] = 36 ; Caption[:MAKE_CHEESE] = 'Cheese Making'
|
|
ENUM[37] = :MILK ; NUME[:MILK] = 37 ; Caption[:MILK] = 'Milking'
|
|
ENUM[38] = :COOK ; NUME[:COOK] = 38 ; Caption[:COOK] = 'Cooking'
|
|
ENUM[39] = :PLANT ; NUME[:PLANT] = 39 ; Caption[:PLANT] = 'Farming (Fields)'
|
|
ENUM[40] = :HERBALIST ; NUME[:HERBALIST] = 40 ; Caption[:HERBALIST] = 'Plant Gathering'
|
|
ENUM[41] = :FISH ; NUME[:FISH] = 41 ; Caption[:FISH] = 'Fishing'
|
|
ENUM[42] = :CLEAN_FISH ; NUME[:CLEAN_FISH] = 42 ; Caption[:CLEAN_FISH] = 'Fish Cleaning'
|
|
ENUM[43] = :DISSECT_FISH ; NUME[:DISSECT_FISH] = 43 ; Caption[:DISSECT_FISH] = 'Fish Dissection'
|
|
ENUM[44] = :HUNT ; NUME[:HUNT] = 44 ; Caption[:HUNT] = 'Hunting'
|
|
ENUM[45] = :SMELT ; NUME[:SMELT] = 45 ; Caption[:SMELT] = 'Furnace Operating'
|
|
ENUM[46] = :FORGE_WEAPON ; NUME[:FORGE_WEAPON] = 46 ; Caption[:FORGE_WEAPON] = 'Weaponsmithing'
|
|
ENUM[47] = :FORGE_ARMOR ; NUME[:FORGE_ARMOR] = 47 ; Caption[:FORGE_ARMOR] = 'Armoring'
|
|
ENUM[48] = :FORGE_FURNITURE ; NUME[:FORGE_FURNITURE] = 48 ; Caption[:FORGE_FURNITURE] = 'Blacksmithing'
|
|
ENUM[49] = :METAL_CRAFT ; NUME[:METAL_CRAFT] = 49 ; Caption[:METAL_CRAFT] = 'Metalcrafting'
|
|
ENUM[50] = :CUT_GEM ; NUME[:CUT_GEM] = 50 ; Caption[:CUT_GEM] = 'Gem Cutting'
|
|
ENUM[51] = :ENCRUST_GEM ; NUME[:ENCRUST_GEM] = 51 ; Caption[:ENCRUST_GEM] = 'Gem Setting'
|
|
ENUM[52] = :WOOD_CRAFT ; NUME[:WOOD_CRAFT] = 52 ; Caption[:WOOD_CRAFT] = 'Woodcrafting'
|
|
ENUM[53] = :STONE_CRAFT ; NUME[:STONE_CRAFT] = 53 ; Caption[:STONE_CRAFT] = 'Stonecrafting'
|
|
ENUM[54] = :BONE_CARVE ; NUME[:BONE_CARVE] = 54 ; Caption[:BONE_CARVE] = 'Bone Carving'
|
|
ENUM[55] = :GLASSMAKER ; NUME[:GLASSMAKER] = 55 ; Caption[:GLASSMAKER] = 'Glassmaking'
|
|
ENUM[56] = :EXTRACT_STRAND ; NUME[:EXTRACT_STRAND] = 56 ; Caption[:EXTRACT_STRAND] = 'Strand Extraction'
|
|
ENUM[57] = :SIEGECRAFT ; NUME[:SIEGECRAFT] = 57 ; Caption[:SIEGECRAFT] = 'Siege Engineering'
|
|
ENUM[58] = :SIEGEOPERATE ; NUME[:SIEGEOPERATE] = 58 ; Caption[:SIEGEOPERATE] = 'Siege Operating'
|
|
ENUM[59] = :BOWYER ; NUME[:BOWYER] = 59 ; Caption[:BOWYER] = 'Crossbow-making'
|
|
ENUM[60] = :MECHANIC ; NUME[:MECHANIC] = 60 ; Caption[:MECHANIC] = 'Mechanics'
|
|
ENUM[61] = :POTASH_MAKING ; NUME[:POTASH_MAKING] = 61 ; Caption[:POTASH_MAKING] = 'Potash Making'
|
|
ENUM[62] = :LYE_MAKING ; NUME[:LYE_MAKING] = 62 ; Caption[:LYE_MAKING] = 'Lye Making'
|
|
ENUM[63] = :DYER ; NUME[:DYER] = 63 ; Caption[:DYER] = 'Dyeing'
|
|
ENUM[64] = :BURN_WOOD ; NUME[:BURN_WOOD] = 64 ; Caption[:BURN_WOOD] = 'Wood Burning'
|
|
ENUM[65] = :OPERATE_PUMP ; NUME[:OPERATE_PUMP] = 65 ; Caption[:OPERATE_PUMP] = 'Pump Operating'
|
|
ENUM[66] = :SHEARER ; NUME[:SHEARER] = 66 ; Caption[:SHEARER] = 'Shearing'
|
|
ENUM[67] = :SPINNER ; NUME[:SPINNER] = 67 ; Caption[:SPINNER] = 'Spinning'
|
|
ENUM[68] = :POTTERY ; NUME[:POTTERY] = 68 ; Caption[:POTTERY] = 'Pottery'
|
|
ENUM[69] = :GLAZING ; NUME[:GLAZING] = 69 ; Caption[:GLAZING] = 'Glazing'
|
|
ENUM[70] = :PRESSING ; NUME[:PRESSING] = 70 ; Caption[:PRESSING] = 'Pressing'
|
|
ENUM[71] = :BEEKEEPING ; NUME[:BEEKEEPING] = 71 ; Caption[:BEEKEEPING] = 'Bee Keeping'
|
|
ENUM[72] = :WAX_WORKING ; NUME[:WAX_WORKING] = 72 ; Caption[:WAX_WORKING] = 'Wax Working'
|
|
ENUM[73] = :PUSH_HAUL_VEHICLE ; NUME[:PUSH_HAUL_VEHICLE] = 73 ; Caption[:PUSH_HAUL_VEHICLE] = 'Push/Haul Vehicle'
|
|
end
|
|
|
|
class UnitThoughtType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
Value = Hash.new
|
|
Caption = Hash.new
|
|
ENUM[0] = :Miscarriage ; NUME[:Miscarriage] = 0 ; Value[:Miscarriage] = '-50/-30/-20/-10' ; Caption[:Miscarriage] = 'had a miscarriage recently'
|
|
ENUM[1] = :Evicted ; NUME[:Evicted] = 1 ; Value[:Evicted] = '-10' ; Caption[:Evicted] = 'has been evicted lately'
|
|
ENUM[2] = :Tired ; NUME[:Tired] = 2 ; Value[:Tired] = '-5' ; Caption[:Tired] = 'has been tired lately'
|
|
ENUM[3] = :Exhausted ; NUME[:Exhausted] = 3 ; Value[:Exhausted] = '-30' ; Caption[:Exhausted] = 'has been exhausted lately'
|
|
ENUM[4] = :Hunger ; NUME[:Hunger] = 4 ; Value[:Hunger] = '-5' ; Caption[:Hunger] = 'has complained of hunger lately'
|
|
ENUM[5] = :Thirst ; NUME[:Thirst] = 5 ; Value[:Thirst] = '-5' ; Caption[:Thirst] = 'has complained of thirst lately'
|
|
ENUM[6] = :Starving ; NUME[:Starving] = 6 ; Value[:Starving] = '-30' ; Caption[:Starving] = 'has been starving lately'
|
|
ENUM[7] = :Dehydrated ; NUME[:Dehydrated] = 7 ; Value[:Dehydrated] = '-30' ; Caption[:Dehydrated] = 'has been dehydrated lately'
|
|
ENUM[8] = :ScarceTaxCollectionEscorts ; NUME[:ScarceTaxCollectionEscorts] = 8 ; Value[:ScarceTaxCollectionEscorts] = '-10' ; Caption[:ScarceTaxCollectionEscorts] = 'was worried by the scarcity of tax collection escorts lately'
|
|
ENUM[9] = :ScarceGuards ; NUME[:ScarceGuards] = 9 ; Value[:ScarceGuards] = '-10' ; Caption[:ScarceGuards] = 'was worried by the scarcity of guards lately'
|
|
ENUM[10] = :ScarceCageChain ; NUME[:ScarceCageChain] = 10 ; Value[:ScarceCageChain] = '-10' ; Caption[:ScarceCageChain] = 'was worried by the scarcity of cages and chains lately'
|
|
ENUM[11] = :Attacked ; NUME[:Attacked] = 11 ; Value[:Attacked] = '-30/-20/-10/-5' ; Caption[:Attacked] = 'has been attacked lately'
|
|
ENUM[12] = :AttackedByDead ; NUME[:AttackedByDead] = 12 ; Value[:AttackedByDead] = '-100/-60/-40/-20' ; Caption[:AttackedByDead] = 'has been attacked by a dead (pet/spouse/mother/...) lately'
|
|
ENUM[13] = :TaxRoomUnreachable ; NUME[:TaxRoomUnreachable] = 13 ; Value[:TaxRoomUnreachable] = '-5' ; Caption[:TaxRoomUnreachable] = 'was unable to reach a room for tax collection lately'
|
|
ENUM[14] = :TaxRoomMisinformed ; NUME[:TaxRoomMisinformed] = 14 ; Value[:TaxRoomMisinformed] = '-5' ; Caption[:TaxRoomMisinformed] = 'was misinformed about a room for tax collection lately'
|
|
ENUM[15] = :TaxCollectionRough ; NUME[:TaxCollectionRough] = 15 ; Value[:TaxCollectionRough] = '-10' ; Caption[:TaxCollectionRough] = 'was upset that the tax collection didnt go smoothly lately'
|
|
ENUM[16] = :Taxed ; NUME[:Taxed] = 16 ; Value[:Taxed] = '-5' ; Caption[:Taxed] = 'has been taxed recently'
|
|
ENUM[17] = :TaxedLostProperty ; NUME[:TaxedLostProperty] = 17 ; Value[:TaxedLostProperty] = '-10' ; Caption[:TaxedLostProperty] = 'has lost property to the tax collectors escorts recently'
|
|
ENUM[18] = :DisappointedNoble ; NUME[:DisappointedNoble] = 18 ; Value[:DisappointedNoble] = '-10' ; Caption[:DisappointedNoble] = 'was upset to have disappointed a noble lately'
|
|
ENUM[19] = :LackChairs ; NUME[:LackChairs] = 19 ; Value[:LackChairs] = '-?' ; Caption[:LackChairs] = 'has complained of the lack of chairs lately'
|
|
ENUM[20] = :CrowdedTables ; NUME[:CrowdedTables] = 20 ; Value[:CrowdedTables] = '-2' ; Caption[:CrowdedTables] = 'has complained of the crowded tables lately'
|
|
ENUM[21] = :LackTables ; NUME[:LackTables] = 21 ; Value[:LackTables] = '-?' ; Caption[:LackTables] = 'has complained of the lack of dining tables lately'
|
|
ENUM[22] = :EatVermin ; NUME[:EatVermin] = 22 ; Value[:EatVermin] = '-30/-20/-10' ; Caption[:EatVermin] = 'was forced to eat vermin to survive lately'
|
|
ENUM[23] = :EatLikedCreature ; NUME[:EatLikedCreature] = 23 ; Value[:EatLikedCreature] = '-50' ; Caption[:EatLikedCreature] = 'was forced to eat a beloved creature to survive lately'
|
|
ENUM[24] = :EatPet ; NUME[:EatPet] = 24 ; Value[:EatPet] = '-1000' ; Caption[:EatPet] = 'was forced to eat a treasured pet to survive lately'
|
|
ENUM[25] = :LackWell ; NUME[:LackWell] = 25 ; Value[:LackWell] = '-5/-3/-2' ; Caption[:LackWell] = 'has complained of the lack of a well lately'
|
|
ENUM[26] = :NastyWater ; NUME[:NastyWater] = 26 ; Value[:NastyWater] = '-10/-5/-3' ; Caption[:NastyWater] = 'has complained of the nasty water lately'
|
|
ENUM[27] = :DrinkSlime ; NUME[:DrinkSlime] = 27 ; Value[:DrinkSlime] = '-30/-20/-10/-5' ; Caption[:DrinkSlime] = 'was forced to drink slime lately'
|
|
ENUM[28] = :DrinkVomit ; NUME[:DrinkVomit] = 28 ; Value[:DrinkVomit] = '-30/-20/-10/-5' ; Caption[:DrinkVomit] = 'was forced to drink vomit lately'
|
|
ENUM[29] = :DrinkBlood ; NUME[:DrinkBlood] = 29 ; Value[:DrinkBlood] = '-30/-20/-10/-5' ; Caption[:DrinkBlood] = 'was forced to drink bloody water lately'
|
|
ENUM[30] = :DrinkGoo ; NUME[:DrinkGoo] = 30 ; Value[:DrinkGoo] = '-30/-20/-10/-5' ; Caption[:DrinkGoo] = 'was forced to drink gooey water lately'
|
|
ENUM[31] = :DrinkIchor ; NUME[:DrinkIchor] = 31 ; Value[:DrinkIchor] = '-30/-20/-10/-5' ; Caption[:DrinkIchor] = 'was forced to drink ichorous water lately'
|
|
ENUM[32] = :DrinkPus ; NUME[:DrinkPus] = 32 ; Value[:DrinkPus] = '-30/-20/-10/-5' ; Caption[:DrinkPus] = 'was forced to drink purulent water lately'
|
|
ENUM[33] = :SleepNoise ; NUME[:SleepNoise] = 33 ; Value[:SleepNoise] = '-2' ; Caption[:SleepNoise] = 'slept uneasily due to noise lately'
|
|
ENUM[34] = :SleepNoiseMajor ; NUME[:SleepNoiseMajor] = 34 ; Value[:SleepNoiseMajor] = '-5' ; Caption[:SleepNoiseMajor] = 'slept very uneasily due to noise lately'
|
|
ENUM[35] = :SleepNoiseWake ; NUME[:SleepNoiseWake] = 35 ; Value[:SleepNoiseWake] = '-10' ; Caption[:SleepNoiseWake] = 'was woken by noise while sleeping lately'
|
|
ENUM[36] = :LackProtection ; NUME[:LackProtection] = 36 ; Value[:LackProtection] = '-10' ; Caption[:LackProtection] = 'was worried not to have adequate protection lately'
|
|
ENUM[37] = :Drafted ; NUME[:Drafted] = 37 ; Value[:Drafted] = '-30' ; Caption[:Drafted] = 'has complained about the draft lately'
|
|
ENUM[38] = :Relieved ; NUME[:Relieved] = 38 ; Value[:Relieved] = '-30' ; Caption[:Relieved] = 'was upset about being relieved from duty'
|
|
ENUM[39] = :ArtDefacement ; NUME[:ArtDefacement] = 39 ; Value[:ArtDefacement] = '-200/x' ; Caption[:ArtDefacement] = 'has suffered the travesty of art defacement'
|
|
ENUM[40] = :AnnoyedFlies ; NUME[:AnnoyedFlies] = 40 ; Value[:AnnoyedFlies] = '-5/-3/-2' ; Caption[:AnnoyedFlies] = 'has been annoyed by flies'
|
|
ENUM[41] = :AnnoyedVermin ; NUME[:AnnoyedVermin] = 41 ; Value[:AnnoyedVermin] = '-30/-20/-10' ; Caption[:AnnoyedVermin] = 'has been accosted by terrible vermin'
|
|
ENUM[42] = :AnnoyedCage ; NUME[:AnnoyedCage] = 42 ; Value[:AnnoyedCage] = '-10/-5/-3' ; Caption[:AnnoyedCage] = 'saw something unpleasant in a cage recently'
|
|
ENUM[43] = :AnnoyedPond ; NUME[:AnnoyedPond] = 43 ; Value[:AnnoyedPond] = '-10/-5/-3' ; Caption[:AnnoyedPond] = 'saw something unpleasant in a pond recently'
|
|
ENUM[44] = :WitnessDeath ; NUME[:WitnessDeath] = 44 ; Value[:WitnessDeath] = '-30/-20/-10/-5' ; Caption[:WitnessDeath] = 'has witnessed death'
|
|
ENUM[45] = :LostPet ; NUME[:LostPet] = 45 ; Value[:LostPet] = '-50/-30/-20/-10' ; Caption[:LostPet] = 'has lost a pet recently'
|
|
ENUM[46] = :LostPet2 ; NUME[:LostPet2] = 46 ; Value[:LostPet2] = '-50/-30/-20/-10' ; Caption[:LostPet2] = 'has lost a pet recently'
|
|
ENUM[47] = :RageKill ; NUME[:RageKill] = 47 ; Value[:RageKill] = '-50/-30/-20/-10' ; Caption[:RageKill] = 'accidentally killed somebody in a fit of rage recently'
|
|
ENUM[48] = :SparringAccident ; NUME[:SparringAccident] = 48 ; Value[:SparringAccident] = '-50/-30/-20/-10' ; Caption[:SparringAccident] = 'killed somebody by accident while sparring recently'
|
|
ENUM[49] = :LostSpouse ; NUME[:LostSpouse] = 49 ; Value[:LostSpouse] = '-50/-30/-20/-10' ; Caption[:LostSpouse] = 'has lost a spouse to tragedy recently'
|
|
ENUM[50] = :LostFriend ; NUME[:LostFriend] = 50 ; Value[:LostFriend] = '-50/-30/-20/-10' ; Caption[:LostFriend] = 'has lost a friend to tragedy recently'
|
|
ENUM[51] = :LostSibling ; NUME[:LostSibling] = 51 ; Value[:LostSibling] = '-50/-30/-20/-10' ; Caption[:LostSibling] = 'has lost a sibling to tragedy recently'
|
|
ENUM[52] = :LostChild ; NUME[:LostChild] = 52 ; Value[:LostChild] = '-50/-30/-20/-10' ; Caption[:LostChild] = 'has lost a child to tragedy recently'
|
|
ENUM[53] = :LostMother ; NUME[:LostMother] = 53 ; Value[:LostMother] = '-50/-30/-20/-10' ; Caption[:LostMother] = 'has lost a mother to tragedy recently'
|
|
ENUM[54] = :LostFather ; NUME[:LostFather] = 54 ; Value[:LostFather] = '-50/-30/-20/-10' ; Caption[:LostFather] = 'has lost a father to tragedy recently'
|
|
ENUM[55] = :Decay ; NUME[:Decay] = 55 ; Value[:Decay] = '-20/-10/-5/-3' ; Caption[:Decay] = 'was forced to endure the decay of a (pet/spouse/mother..)'
|
|
ENUM[56] = :AteRotten ; NUME[:AteRotten] = 56 ; Value[:AteRotten] = '-10' ; Caption[:AteRotten] = 'ate rotten food lately'
|
|
ENUM[57] = :DrankSpoiled ; NUME[:DrankSpoiled] = 57 ; Value[:DrankSpoiled] = '-10' ; Caption[:DrankSpoiled] = 'drank something spoiled lately'
|
|
ENUM[58] = :LongPatrol ; NUME[:LongPatrol] = 58 ; Value[:LongPatrol] = '-2/-3/-5-/10' ; Caption[:LongPatrol] = 'was (grumbling/depressed/angered/enraged) about long patrol duty lately'
|
|
ENUM[59] = :Miasma ; NUME[:Miasma] = 59 ; Value[:Miasma] = '-5/-3/-2' ; Caption[:Miasma] = 'was disgusted by a miasma lately'
|
|
ENUM[60] = :Smoke ; NUME[:Smoke] = 60 ; Value[:Smoke] = '-5/-3/-2' ; Caption[:Smoke] = 'choked on smoke underground lately'
|
|
ENUM[61] = :Dust ; NUME[:Dust] = 61 ; Value[:Dust] = '-5/-3/-2' ; Caption[:Dust] = 'choked on dust underground lately'
|
|
ENUM[62] = :Cavein ; NUME[:Cavein] = 62 ; Value[:Cavein] = '-20/-10/-5/-3' ; Caption[:Cavein] = 'was knocked out during a cave-in lately'
|
|
ENUM[63] = :MeetingInDiningRoom ; NUME[:MeetingInDiningRoom] = 63 ; Value[:MeetingInDiningRoom] = '-?' ; Caption[:MeetingInDiningRoom] = 'was embarrassed to have to conduct an official meeting in a dining room'
|
|
ENUM[64] = :MeetingInBedroom ; NUME[:MeetingInBedroom] = 64 ; Value[:MeetingInBedroom] = '-?' ; Caption[:MeetingInBedroom] = 'was very embarrassed to have to conduct an official meeting in a bedroom'
|
|
ENUM[65] = :NoRooms ; NUME[:NoRooms] = 65 ; Value[:NoRooms] = '-?' ; Caption[:NoRooms] = 'was incredibly embarrassed not to have any rooms lately'
|
|
ENUM[66] = :MajorInjuries ; NUME[:MajorInjuries] = 66 ; Value[:MajorInjuries] = '-30/-20/-10/-5' ; Caption[:MajorInjuries] = 'sustained major injuries recently'
|
|
ENUM[67] = :MinorInjuries ; NUME[:MinorInjuries] = 67 ; Value[:MinorInjuries] = '-20/-10/-5/-3' ; Caption[:MinorInjuries] = 'sustained minor injuries recently'
|
|
ENUM[68] = :SleptMud ; NUME[:SleptMud] = 68 ; Value[:SleptMud] = '-?' ; Caption[:SleptMud] = 'slept in the mud recently'
|
|
ENUM[69] = :SleptGrass ; NUME[:SleptGrass] = 69 ; Value[:SleptGrass] = '-?' ; Caption[:SleptGrass] = 'slept in the grass recently'
|
|
ENUM[70] = :SleptDirt ; NUME[:SleptDirt] = 70 ; Value[:SleptDirt] = '-?' ; Caption[:SleptDirt] = 'slept in the dirt recently'
|
|
ENUM[71] = :SleptRocks ; NUME[:SleptRocks] = 71 ; Value[:SleptRocks] = '-?' ; Caption[:SleptRocks] = 'slept on rocks recently'
|
|
ENUM[72] = :SleptRoughFloor ; NUME[:SleptRoughFloor] = 72 ; Value[:SleptRoughFloor] = '-?' ; Caption[:SleptRoughFloor] = 'slept on a rough cave floor recently'
|
|
ENUM[73] = :SleptFloor ; NUME[:SleptFloor] = 73 ; Value[:SleptFloor] = '-?' ; Caption[:SleptFloor] = 'slept on the floor recently'
|
|
ENUM[74] = :SleptIce ; NUME[:SleptIce] = 74 ; Value[:SleptIce] = '-?' ; Caption[:SleptIce] = 'slept on ice recently'
|
|
ENUM[75] = :SleptDriftwood ; NUME[:SleptDriftwood] = 75 ; Value[:SleptDriftwood] = '-?' ; Caption[:SleptDriftwood] = 'slept on a pile of driftwood recently'
|
|
ENUM[76] = :BedroomNone ; NUME[:BedroomNone] = 76 ; Value[:BedroomNone] = '-?' ; Caption[:BedroomNone] = 'slept without a proper room recently'
|
|
ENUM[77] = :BedroomBad5 ; NUME[:BedroomBad5] = 77 ; Value[:BedroomBad5] = '-20' ; Caption[:BedroomBad5] = 'slept in a horribly substandard bedroom recently'
|
|
ENUM[78] = :BedroomBad4 ; NUME[:BedroomBad4] = 78 ; Value[:BedroomBad4] = '-10' ; Caption[:BedroomBad4] = 'slept in a horrible bedroom recently'
|
|
ENUM[79] = :BedroomBad3 ; NUME[:BedroomBad3] = 79 ; Value[:BedroomBad3] = '-5' ; Caption[:BedroomBad3] = 'slept in an awful bedroom recently'
|
|
ENUM[80] = :BedroomBad2 ; NUME[:BedroomBad2] = 80 ; Value[:BedroomBad2] = '-3' ; Caption[:BedroomBad2] = 'slept in a very poor bedroom recently'
|
|
ENUM[81] = :BedroomBad1 ; NUME[:BedroomBad1] = 81 ; Value[:BedroomBad1] = '-2' ; Caption[:BedroomBad1] = 'slept in a poor bedroom recently'
|
|
ENUM[82] = :OfficeBad5 ; NUME[:OfficeBad5] = 82 ; Value[:OfficeBad5] = '-30' ; Caption[:OfficeBad5] = 'conducted a meeting in a horribly substandard setting recently'
|
|
ENUM[83] = :OfficeBad4 ; NUME[:OfficeBad4] = 83 ; Value[:OfficeBad4] = '-20' ; Caption[:OfficeBad4] = 'conducted a meeting in a horrible setting recently'
|
|
ENUM[84] = :OfficeBad3 ; NUME[:OfficeBad3] = 84 ; Value[:OfficeBad3] = '-10' ; Caption[:OfficeBad3] = 'conducted a meeting in an awful setting recently'
|
|
ENUM[85] = :OfficeBad2 ; NUME[:OfficeBad2] = 85 ; Value[:OfficeBad2] = '-5' ; Caption[:OfficeBad2] = 'conducted a meeting in a very poor setting recently'
|
|
ENUM[86] = :OfficeBad1 ; NUME[:OfficeBad1] = 86 ; Value[:OfficeBad1] = '-3' ; Caption[:OfficeBad1] = 'conducted a meeting in a poor setting recently'
|
|
ENUM[87] = :DiningBad5 ; NUME[:DiningBad5] = 87 ; Value[:DiningBad5] = '-20' ; Caption[:DiningBad5] = 'dined in a horribly substandard dining room recently'
|
|
ENUM[88] = :DiningBad4 ; NUME[:DiningBad4] = 88 ; Value[:DiningBad4] = '-10' ; Caption[:DiningBad4] = 'dined in a horrible dining room recently'
|
|
ENUM[89] = :DiningBad3 ; NUME[:DiningBad3] = 89 ; Value[:DiningBad3] = '-5' ; Caption[:DiningBad3] = 'dined in an awful dining room recently'
|
|
ENUM[90] = :DiningBad2 ; NUME[:DiningBad2] = 90 ; Value[:DiningBad2] = '-3' ; Caption[:DiningBad2] = 'dined in a very poor dining room recently'
|
|
ENUM[91] = :DiningBad1 ; NUME[:DiningBad1] = 91 ; Value[:DiningBad1] = '-2' ; Caption[:DiningBad1] = 'dined in a poor dining room recently'
|
|
ENUM[92] = :DiningNone ; NUME[:DiningNone] = 92 ; Value[:DiningNone] = '-?' ; Caption[:DiningNone] = 'dined without a proper dining room recently'
|
|
ENUM[93] = :TombNone ; NUME[:TombNone] = 93 ; Value[:TombNone] = '-?' ; Caption[:TombNone] = 'worried greatly about not having a tomb after gaining another year'
|
|
ENUM[94] = :TombBad5 ; NUME[:TombBad5] = 94 ; Value[:TombBad5] = '-30' ; Caption[:TombBad5] = 'worried about having a horribly substandard tomb after gaining another year'
|
|
ENUM[95] = :TombBad4 ; NUME[:TombBad4] = 95 ; Value[:TombBad4] = '-20' ; Caption[:TombBad4] = 'worried about having a horrible tomb after gaining another year'
|
|
ENUM[96] = :TombBad3 ; NUME[:TombBad3] = 96 ; Value[:TombBad3] = '-10' ; Caption[:TombBad3] = 'worried about having an awful tomb after gaining another year'
|
|
ENUM[97] = :TombBad2 ; NUME[:TombBad2] = 97 ; Value[:TombBad2] = '-5' ; Caption[:TombBad2] = 'worried about having a very poor tomb after gaining another year'
|
|
ENUM[98] = :TombBad1 ; NUME[:TombBad1] = 98 ; Value[:TombBad1] = '-3' ; Caption[:TombBad1] = 'worried about having a poor tomb after gaining another year'
|
|
ENUM[99] = :DemandsAngry3 ; NUME[:DemandsAngry3] = 99 ; Value[:DemandsAngry3] = '-10' ; Caption[:DemandsAngry3] = 'was greatly angered at the state of demands recently'
|
|
ENUM[100] = :DemandsAngry2 ; NUME[:DemandsAngry2] = 100 ; Value[:DemandsAngry2] = '-5' ; Caption[:DemandsAngry2] = 'was very angered at the state of demands recently'
|
|
ENUM[101] = :DemandsAngry1 ; NUME[:DemandsAngry1] = 101 ; Value[:DemandsAngry1] = '-3' ; Caption[:DemandsAngry1] = 'was angered at the state of demands recently'
|
|
ENUM[102] = :MoreChests ; NUME[:MoreChests] = 102 ; Value[:MoreChests] = '-3' ; Caption[:MoreChests] = 'was upset by not having enough chests lately'
|
|
ENUM[103] = :MoreCabinets ; NUME[:MoreCabinets] = 103 ; Value[:MoreCabinets] = '-3' ; Caption[:MoreCabinets] = 'was upset by not having enough cabinets lately'
|
|
ENUM[104] = :MoreArmorStands ; NUME[:MoreArmorStands] = 104 ; Value[:MoreArmorStands] = '-3' ; Caption[:MoreArmorStands] = 'was upset by not having enough armor stands lately'
|
|
ENUM[105] = :MoreWeaponRacks ; NUME[:MoreWeaponRacks] = 105 ; Value[:MoreWeaponRacks] = '-3' ; Caption[:MoreWeaponRacks] = 'was upset by not having enough weapon racks lately'
|
|
ENUM[106] = :OldClothing ; NUME[:OldClothing] = 106 ; Value[:OldClothing] = '-3/-2' ; Caption[:OldClothing] = 'was upset to be wearing old clothing lately'
|
|
ENUM[107] = :TatteredClothing ; NUME[:TatteredClothing] = 107 ; Value[:TatteredClothing] = '-5/-3/-2' ; Caption[:TatteredClothing] = 'was upset to be wearing tattered clothing lately'
|
|
ENUM[108] = :RottedClothing ; NUME[:RottedClothing] = 108 ; Value[:RottedClothing] = '-10/-5/-3' ; Caption[:RottedClothing] = 'was very upset to have worn clothes rot away lately'
|
|
ENUM[109] = :Uncovered ; NUME[:Uncovered] = 109 ; Value[:Uncovered] = '-20/-10/-5' ; Caption[:Uncovered] = 'was very embarrassed to be uncovered lately'
|
|
ENUM[110] = :NoShirt ; NUME[:NoShirt] = 110 ; Value[:NoShirt] = '-10/-5/-3' ; Caption[:NoShirt] = 'was embarrassed to have no shirt lately'
|
|
ENUM[111] = :NoShoes ; NUME[:NoShoes] = 111 ; Value[:NoShoes] = '-10/-5/-3' ; Caption[:NoShoes] = 'was embarrassed to have no shoes lately'
|
|
ENUM[112] = :NoCloak ; NUME[:NoCloak] = 112 ; Value[:NoCloak] = '-20/-10/-5' ; Caption[:NoCloak] = 'was very embarrassed to be uncloaked lately'
|
|
ENUM[113] = :Rain ; NUME[:Rain] = 113 ; Value[:Rain] = '-3/-2' ; Caption[:Rain] = 'was caught in the rain recently'
|
|
ENUM[114] = :SnowStorm ; NUME[:SnowStorm] = 114 ; Value[:SnowStorm] = '-3/-2' ; Caption[:SnowStorm] = 'was caught in a snow storm recently'
|
|
ENUM[115] = :FreakishWeather ; NUME[:FreakishWeather] = 115 ; Value[:FreakishWeather] = '-?' ; Caption[:FreakishWeather] = 'was caught in freakish weather recently'
|
|
ENUM[116] = :RoomPretension ; NUME[:RoomPretension] = 116 ; Value[:RoomPretension] = '-4*x' ; Caption[:RoomPretension] = 'was (put off/flustered/upset/very upset/greatly upset/angered/enraged/shattered/traumatized/utterly traumatized) by a lessers pretentious (office/sleeping/dining/burial) arrangements lately'
|
|
ENUM[117] = :NoHammer ; NUME[:NoHammer] = 117 ; Value[:NoHammer] = '-50' ; Caption[:NoHammer] = 'was unable to find an available hammer lately'
|
|
ENUM[118] = :MandateIgnored ; NUME[:MandateIgnored] = 118 ; Value[:MandateIgnored] = '-5' ; Caption[:MandateIgnored] = 'was upset by having a mandate ignored lately'
|
|
ENUM[119] = :MandateDeadlineMissed ; NUME[:MandateDeadlineMissed] = 119 ; Value[:MandateDeadlineMissed] = '-3' ; Caption[:MandateDeadlineMissed] = 'was upset by having a mandate deadline missed lately'
|
|
ENUM[120] = :RequestIgnored ; NUME[:RequestIgnored] = 120 ; Value[:RequestIgnored] = '-5' ; Caption[:RequestIgnored] = 'was upset by having a request ignored lately'
|
|
ENUM[121] = :NoPunishment ; NUME[:NoPunishment] = 121 ; Value[:NoPunishment] = '-10' ; Caption[:NoPunishment] = 'was angered that nobody could be punished for a recent failure'
|
|
ENUM[122] = :ImproperPunishment ; NUME[:ImproperPunishment] = 122 ; Value[:ImproperPunishment] = '-5' ; Caption[:ImproperPunishment] = 'was upset that a criminal could not be properly punished'
|
|
ENUM[123] = :DelayedPunishment ; NUME[:DelayedPunishment] = 123 ; Value[:DelayedPunishment] = '-5' ; Caption[:DelayedPunishment] = 'was upset by the delayed punishment of a criminal'
|
|
ENUM[124] = :GotBeaten ; NUME[:GotBeaten] = 124 ; Value[:GotBeaten] = '-10/-5/-3/-2' ; Caption[:GotBeaten] = 'was beaten recently'
|
|
ENUM[125] = :GotHammered ; NUME[:GotHammered] = 125 ; Value[:GotHammered] = '-20/-10/-5/-3' ; Caption[:GotHammered] = 'was beaten with a hammer recently'
|
|
ENUM[126] = :Jailed ; NUME[:Jailed] = 126 ; Value[:Jailed] = '-10' ; Caption[:Jailed] = 'is depressed about being confined'
|
|
ENUM[127] = :LackWork ; NUME[:LackWork] = 127 ; Value[:LackWork] = '-10' ; Caption[:LackWork] = 'was unhappy with the lack of work last season'
|
|
ENUM[128] = :Nightmare ; NUME[:Nightmare] = 128 ; Value[:Nightmare] = '-20' ; Caption[:Nightmare] = 'had a terrifying nightmare about an army of the dead'
|
|
ENUM[129] = :AdmireBuilding ; NUME[:AdmireBuilding] = 129 ; Value[:AdmireBuilding] = '+x' ; Caption[:AdmireBuilding] = 'admired a (fine/very fine/splendid/wonderful/completely sublime) (building) lately'
|
|
ENUM[130] = :AdmireOwnBuilding ; NUME[:AdmireOwnBuilding] = 130 ; Value[:AdmireOwnBuilding] = '+2x' ; Caption[:AdmireOwnBuilding] = 'admired own (fine/very fine/splendid/wonderful/completely sublime) (building) lately'
|
|
ENUM[131] = :AdmireArrangedBuilding ; NUME[:AdmireArrangedBuilding] = 131 ; Value[:AdmireArrangedBuilding] = '+2x' ; Caption[:AdmireArrangedBuilding] = 'admired a (fine/very fine/splendid/wonderful/completely sublime) tastefully arranged (building) lately'
|
|
ENUM[132] = :AdmireOwnArrangedBuilding ; NUME[:AdmireOwnArrangedBuilding] = 132 ; Value[:AdmireOwnArrangedBuilding] = '+4x' ; Caption[:AdmireOwnArrangedBuilding] = 'admired own (fine/very fine/splendid/wonderful/completely sublime) tastefully arranged (building) lately'
|
|
ENUM[133] = :ComfortedCage ; NUME[:ComfortedCage] = 133 ; Value[:ComfortedCage] = '+3' ; Caption[:ComfortedCage] = 'was comforted by a wonderful creature in a cage recently'
|
|
ENUM[134] = :ComfortedPond ; NUME[:ComfortedPond] = 134 ; Value[:ComfortedPond] = '+3' ; Caption[:ComfortedPond] = 'was comforted by a wonderful creature in a pond recently'
|
|
ENUM[135] = :RequestApproved ; NUME[:RequestApproved] = 135 ; Value[:RequestApproved] = '+5' ; Caption[:RequestApproved] = 'was pleased by having a request approved lately'
|
|
ENUM[136] = :PunishmentReduced ; NUME[:PunishmentReduced] = 136 ; Value[:PunishmentReduced] = '+20' ; Caption[:PunishmentReduced] = 'was glad to have punishment reduced recently'
|
|
ENUM[137] = :PunishmentDelayed ; NUME[:PunishmentDelayed] = 137 ; Value[:PunishmentDelayed] = '+20' ; Caption[:PunishmentDelayed] = 'was glad to have punishment delayed recently'
|
|
ENUM[138] = :GaveBeating ; NUME[:GaveBeating] = 138 ; Value[:GaveBeating] = '+5' ; Caption[:GaveBeating] = 'beat somebody recently'
|
|
ENUM[139] = :GaveHammering ; NUME[:GaveHammering] = 139 ; Value[:GaveHammering] = '+5' ; Caption[:GaveHammering] = 'beat somebody with a hammer recently'
|
|
ENUM[140] = :SatisfiedAtWork ; NUME[:SatisfiedAtWork] = 140 ; Value[:SatisfiedAtWork] = '+5' ; Caption[:SatisfiedAtWork] = 'has been satisfied at work lately'
|
|
ENUM[141] = :PleasedNoble ; NUME[:PleasedNoble] = 141 ; Value[:PleasedNoble] = '+10' ; Caption[:PleasedNoble] = 'was happy to have pleased a noble lately'
|
|
ENUM[142] = :MadeArtifact ; NUME[:MadeArtifact] = 142 ; Value[:MadeArtifact] = '+1000' ; Caption[:MadeArtifact] = 'is quite pleased with making an artifact'
|
|
ENUM[143] = :AcquiredItem ; NUME[:AcquiredItem] = 143 ; Value[:AcquiredItem] = '+10' ; Caption[:AcquiredItem] = 'made a satisfying acquisition lately'
|
|
ENUM[144] = :AdoptedPet ; NUME[:AdoptedPet] = 144 ; Value[:AdoptedPet] = '+10' ; Caption[:AdoptedPet] = 'adopted a new pet recently'
|
|
ENUM[145] = :JoyInSlaughter ; NUME[:JoyInSlaughter] = 145 ; Value[:JoyInSlaughter] = '+10' ; Caption[:JoyInSlaughter] = 'took joy in slaughter lately'
|
|
ENUM[146] = :GoodFood1 ; NUME[:GoodFood1] = 146 ; Value[:GoodFood1] = '+2' ; Caption[:GoodFood1] = 'ate a pretty decent meal lately'
|
|
ENUM[147] = :GoodFood2 ; NUME[:GoodFood2] = 147 ; Value[:GoodFood2] = '+3' ; Caption[:GoodFood2] = 'ate a fine dish lately'
|
|
ENUM[148] = :GoodFood3 ; NUME[:GoodFood3] = 148 ; Value[:GoodFood3] = '+5' ; Caption[:GoodFood3] = 'ate a wonderful dish lately'
|
|
ENUM[149] = :GoodFood4 ; NUME[:GoodFood4] = 149 ; Value[:GoodFood4] = '+10' ; Caption[:GoodFood4] = 'ate a truly decadent dish lately'
|
|
ENUM[150] = :GoodFood5 ; NUME[:GoodFood5] = 150 ; Value[:GoodFood5] = '+20' ; Caption[:GoodFood5] = 'ate a legendary meal lately'
|
|
ENUM[151] = :GoodDrink1 ; NUME[:GoodDrink1] = 151 ; Value[:GoodDrink1] = '+2' ; Caption[:GoodDrink1] = 'had a pretty decent drink lately'
|
|
ENUM[152] = :GoodDrink2 ; NUME[:GoodDrink2] = 152 ; Value[:GoodDrink2] = '+3' ; Caption[:GoodDrink2] = 'had a fine drink lately'
|
|
ENUM[153] = :GoodDrink3 ; NUME[:GoodDrink3] = 153 ; Value[:GoodDrink3] = '+5' ; Caption[:GoodDrink3] = 'had a wonderful drink lately'
|
|
ENUM[154] = :GoodDrink4 ; NUME[:GoodDrink4] = 154 ; Value[:GoodDrink4] = '+10' ; Caption[:GoodDrink4] = 'had a truly decadent drink lately'
|
|
ENUM[155] = :GoodDrink5 ; NUME[:GoodDrink5] = 155 ; Value[:GoodDrink5] = '+20' ; Caption[:GoodDrink5] = 'had a legendary drink lately'
|
|
ENUM[156] = :ComfortedPet ; NUME[:ComfortedPet] = 156 ; Value[:ComfortedPet] = '+5' ; Caption[:ComfortedPet] = 'was comforted by a pet lately'
|
|
ENUM[157] = :ComfortedCreature ; NUME[:ComfortedCreature] = 157 ; Value[:ComfortedCreature] = '+5' ; Caption[:ComfortedCreature] = 'saw a beloved creature lately'
|
|
ENUM[158] = :MandateDeadlineMet ; NUME[:MandateDeadlineMet] = 158 ; Value[:MandateDeadlineMet] = '+10' ; Caption[:MandateDeadlineMet] = 'was pleased to have a mandate deadline met lately'
|
|
ENUM[159] = :Talked ; NUME[:Talked] = 159 ; Value[:Talked] = '+2' ; Caption[:Talked] = 'talked with (somebody/a pet/a spouse/...) lately'
|
|
ENUM[160] = :MadeFriend ; NUME[:MadeFriend] = 160 ; Value[:MadeFriend] = '+5' ; Caption[:MadeFriend] = 'made a friend recently'
|
|
ENUM[161] = :TaxCollectionSmooth ; NUME[:TaxCollectionSmooth] = 161 ; Value[:TaxCollectionSmooth] = '+10' ; Caption[:TaxCollectionSmooth] = 'was pleased that the tax collection went smoothly lately'
|
|
ENUM[162] = :Waterfall ; NUME[:Waterfall] = 162 ; Value[:Waterfall] = '+5' ; Caption[:Waterfall] = 'was comforted by a lovely waterfall lately'
|
|
ENUM[163] = :OfficeGood5 ; NUME[:OfficeGood5] = 163 ; Value[:OfficeGood5] = '+30' ; Caption[:OfficeGood5] = 'conducted a meeting in a setting worthy of legends recently'
|
|
ENUM[164] = :OfficeGood4 ; NUME[:OfficeGood4] = 164 ; Value[:OfficeGood4] = '+20' ; Caption[:OfficeGood4] = 'conducted a meeting in a fantastic setting recently'
|
|
ENUM[165] = :OfficeGood3 ; NUME[:OfficeGood3] = 165 ; Value[:OfficeGood3] = '+10' ; Caption[:OfficeGood3] = 'conducted a meeting in a great setting recently'
|
|
ENUM[166] = :OfficeGood2 ; NUME[:OfficeGood2] = 166 ; Value[:OfficeGood2] = '+5' ; Caption[:OfficeGood2] = 'conducted a meeting in a very good setting recently'
|
|
ENUM[167] = :OfficeGood1 ; NUME[:OfficeGood1] = 167 ; Value[:OfficeGood1] = '+3' ; Caption[:OfficeGood1] = 'conducted a meeting in a good setting recently'
|
|
ENUM[168] = :DiningGood5 ; NUME[:DiningGood5] = 168 ; Value[:DiningGood5] = '+20' ; Caption[:DiningGood5] = 'dined in a legendary dining room recently'
|
|
ENUM[169] = :DiningGood4 ; NUME[:DiningGood4] = 169 ; Value[:DiningGood4] = '+10' ; Caption[:DiningGood4] = 'dined in a fantastic dining room recently'
|
|
ENUM[170] = :DiningGood3 ; NUME[:DiningGood3] = 170 ; Value[:DiningGood3] = '+5' ; Caption[:DiningGood3] = 'dined in a great dining room recently'
|
|
ENUM[171] = :DiningGood2 ; NUME[:DiningGood2] = 171 ; Value[:DiningGood2] = '+3' ; Caption[:DiningGood2] = 'dined in a very good dining room recently'
|
|
ENUM[172] = :DiningGood1 ; NUME[:DiningGood1] = 172 ; Value[:DiningGood1] = '+2' ; Caption[:DiningGood1] = 'dined in a good dining room recently'
|
|
ENUM[173] = :BedroomGood5 ; NUME[:BedroomGood5] = 173 ; Value[:BedroomGood5] = '+20' ; Caption[:BedroomGood5] = 'slept in a bedroom like a personal palace recently'
|
|
ENUM[174] = :BedroomGood4 ; NUME[:BedroomGood4] = 174 ; Value[:BedroomGood4] = '+10' ; Caption[:BedroomGood4] = 'slept in a fantastic bedroom recently'
|
|
ENUM[175] = :BedroomGood3 ; NUME[:BedroomGood3] = 175 ; Value[:BedroomGood3] = '+5' ; Caption[:BedroomGood3] = 'slept in a great bedroom recently'
|
|
ENUM[176] = :BedroomGood2 ; NUME[:BedroomGood2] = 176 ; Value[:BedroomGood2] = '+3' ; Caption[:BedroomGood2] = 'slept in a very good bedroom recently'
|
|
ENUM[177] = :BedroomGood1 ; NUME[:BedroomGood1] = 177 ; Value[:BedroomGood1] = '+2' ; Caption[:BedroomGood1] = 'slept in a good bedroom recently'
|
|
ENUM[178] = :DemandsPleased3 ; NUME[:DemandsPleased3] = 178 ; Value[:DemandsPleased3] = '+10' ; Caption[:DemandsPleased3] = 'was greatly pleased at the state of demands recently'
|
|
ENUM[179] = :DemandsPleased2 ; NUME[:DemandsPleased2] = 179 ; Value[:DemandsPleased2] = '+5' ; Caption[:DemandsPleased2] = 'was very pleased at the state of demands recently'
|
|
ENUM[180] = :DemandsPleased1 ; NUME[:DemandsPleased1] = 180 ; Value[:DemandsPleased1] = '+3' ; Caption[:DemandsPleased1] = 'was pleased at the state of demands recently'
|
|
ENUM[181] = :TombGood5 ; NUME[:TombGood5] = 181 ; Value[:TombGood5] = '+30' ; Caption[:TombGood5] = 'celebrated having a legendary tomb after gaining another year'
|
|
ENUM[182] = :TombGood4 ; NUME[:TombGood4] = 182 ; Value[:TombGood4] = '+20' ; Caption[:TombGood4] = 'celebrated having a fantastic tomb after gaining another year'
|
|
ENUM[183] = :TombGood3 ; NUME[:TombGood3] = 183 ; Value[:TombGood3] = '+10' ; Caption[:TombGood3] = 'celebrated having a great tomb after gaining another year'
|
|
ENUM[184] = :TombGood2 ; NUME[:TombGood2] = 184 ; Value[:TombGood2] = '+5' ; Caption[:TombGood2] = 'celebrated having a very good tomb after gaining another year'
|
|
ENUM[185] = :TombGood1 ; NUME[:TombGood1] = 185 ; Value[:TombGood1] = '+3' ; Caption[:TombGood1] = 'celebrated having a good tomb after gaining another year'
|
|
ENUM[186] = :FistFight ; NUME[:FistFight] = 186 ; Value[:FistFight] = '+20' ; Caption[:FistFight] = 'enjoyed starting a fist fight recently'
|
|
ENUM[187] = :SmashedBuilding ; NUME[:SmashedBuilding] = 187 ; Value[:SmashedBuilding] = '+20' ; Caption[:SmashedBuilding] = 'enjoyed smashing up a building recently'
|
|
ENUM[188] = :ToppledStuff ; NUME[:ToppledStuff] = 188 ; Value[:ToppledStuff] = '+10' ; Caption[:ToppledStuff] = 'enjoyed toppling something over recently'
|
|
ENUM[189] = :ThrownStuff ; NUME[:ThrownStuff] = 189 ; Value[:ThrownStuff] = '+5' ; Caption[:ThrownStuff] = 'enjoyed throwing something recently'
|
|
ENUM[190] = :Spar ; NUME[:Spar] = 190 ; Value[:Spar] = '+10' ; Caption[:Spar] = 'had a satisfying sparring session recently'
|
|
ENUM[191] = :Free ; NUME[:Free] = 191 ; Value[:Free] = '+1000' ; Caption[:Free] = 'is happy to be free'
|
|
ENUM[192] = :SunNausea ; NUME[:SunNausea] = 192 ; Value[:SunNausea] = '-20' ; Caption[:SunNausea] = 'was nauseated by the sun lately'
|
|
ENUM[193] = :SunIrritated ; NUME[:SunIrritated] = 193 ; Value[:SunIrritated] = '-10' ; Caption[:SunIrritated] = 'was irritated by the sun lately'
|
|
ENUM[194] = :Rest ; NUME[:Rest] = 194 ; Value[:Rest] = '+10' ; Caption[:Rest] = 'was able to rest and recuperate lately'
|
|
ENUM[195] = :ReceivedWater ; NUME[:ReceivedWater] = 195 ; Value[:ReceivedWater] = '+10' ; Caption[:ReceivedWater] = 'received water recently'
|
|
ENUM[196] = :ReceivedFood ; NUME[:ReceivedFood] = 196 ; Value[:ReceivedFood] = '+10' ; Caption[:ReceivedFood] = 'received food recently'
|
|
ENUM[197] = :Rescued ; NUME[:Rescued] = 197 ; Value[:Rescued] = '+10' ; Caption[:Rescued] = 'was rescued recently'
|
|
ENUM[198] = :UnableComplain ; NUME[:UnableComplain] = 198 ; Value[:UnableComplain] = '-10' ; Caption[:UnableComplain] = 'was unable to find somebody to complain to about job scarcity lately'
|
|
ENUM[199] = :ReceivedComplaint ; NUME[:ReceivedComplaint] = 199 ; Value[:ReceivedComplaint] = '-6/-4/-3/-2' ; Caption[:ReceivedComplaint] = 'was yelled at by an unhappy citizen lately'
|
|
ENUM[200] = :Complained ; NUME[:Complained] = 200 ; Value[:Complained] = '+10' ; Caption[:Complained] = 'was satisfied to bring up job scarcity in a meeting lately'
|
|
ENUM[201] = :ElectedMayor ; NUME[:ElectedMayor] = 201 ; Value[:ElectedMayor] = '+30' ; Caption[:ElectedMayor] = 'was very happy to be elected mayor recently'
|
|
ENUM[202] = :ReelectedMayor ; NUME[:ReelectedMayor] = 202 ; Value[:ReelectedMayor] = '+30' ; Caption[:ReelectedMayor] = 'was very happy to be re-elected mayor recently'
|
|
ENUM[203] = :BecomeExpeditionLeader ; NUME[:BecomeExpeditionLeader] = 203 ; Value[:BecomeExpeditionLeader] = '+30' ; Caption[:BecomeExpeditionLeader] = 'was very satisfied to be chosen as the expedition leader recently'
|
|
ENUM[204] = :NoblePromotion ; NUME[:NoblePromotion] = 204 ; Value[:NoblePromotion] = '+30' ; Caption[:NoblePromotion] = 'was very pleased to receive a higher rank of nobility recently'
|
|
ENUM[205] = :BecomeNoble ; NUME[:BecomeNoble] = 205 ; Value[:BecomeNoble] = '+50' ; Caption[:BecomeNoble] = 'was greatly pleased to enter the nobility recently'
|
|
ENUM[206] = :BecomeMayor ; NUME[:BecomeMayor] = 206 ; Value[:BecomeMayor] = '+30' ; Caption[:BecomeMayor] = 'was proud to have become a mayor recently'
|
|
ENUM[207] = :GaveWater ; NUME[:GaveWater] = 207 ; Value[:GaveWater] = '+20/+10/+5/+3/0/-3/-5/-10/-20' ; Caption[:GaveWater] = 'was (overjoyed to be/happy to have been/pleased to have been) able to give somebody water lately'
|
|
ENUM[208] = :GaveFood ; NUME[:GaveFood] = 208 ; Value[:GaveFood] = '+20/+10/+5/+3/0/-3/-5/-10/-20' ; Caption[:GaveFood] = 'was (overjoyed to be/happy to have been/pleased to have been) able to give somebody food lately'
|
|
ENUM[209] = :RescuedOther ; NUME[:RescuedOther] = 209 ; Value[:RescuedOther] = '+20/+10/+5/+3/0/-3/-5/-10/-20' ; Caption[:RescuedOther] = 'was (overjoyed to be/happy to have been/pleased to have been) able to help somebody to bed lately'
|
|
ENUM[210] = :GaveBirth ; NUME[:GaveBirth] = 210 ; Value[:GaveBirth] = '+1000' ; Caption[:GaveBirth] = 'gave birth to (children) recently'
|
|
ENUM[211] = :Family ; NUME[:Family] = 211 ; Value[:Family] = '+250' ; Caption[:Family] = 'got (married/new romance/new sibling) recently'
|
|
ENUM[212] = :FormedGrudge ; NUME[:FormedGrudge] = 212 ; Value[:FormedGrudge] = '-5' ; Caption[:FormedGrudge] = 'formed a grudge recently'
|
|
ENUM[213] = :LostLover ; NUME[:LostLover] = 213 ; Value[:LostLover] = '-50/-30/-20/-10' ; Caption[:LostLover] = 'has lost a lover to tragedy recently'
|
|
ENUM[214] = :LostGrudge ; NUME[:LostGrudge] = 214 ; Value[:LostGrudge] = '-10/-5/-3/-2' ; Caption[:LostGrudge] = '(has lost/was just a little happy to lose/was happy to lose/was thrilled to lose) an annoying acquaintance to tragedy recently'
|
|
ENUM[215] = :SameFood ; NUME[:SameFood] = 215 ; Value[:SameFood] = '-5' ; Caption[:SameFood] = 'has been tired of eating the same old food lately'
|
|
ENUM[216] = :SameBooze ; NUME[:SameBooze] = 216 ; Value[:SameBooze] = '-5' ; Caption[:SameBooze] = 'has been tired of drinking the same old booze lately'
|
|
ENUM[217] = :TalkToNoble ; NUME[:TalkToNoble] = 217 ; Value[:TalkToNoble] = '-5/-3/-2/+5/+10/+20' ; Caption[:TalkToNoble] = 'was (disgusted/upset/irritated) to be forced to talk to a pillar of society recently'
|
|
ENUM[218] = :SoapyBath ; NUME[:SoapyBath] = 218 ; Value[:SoapyBath] = '+10' ; Caption[:SoapyBath] = 'had a wonderful soapy bath recently'
|
|
ENUM[219] = :Bath ; NUME[:Bath] = 219 ; Value[:Bath] = '+3' ; Caption[:Bath] = 'had a nice bath recently'
|
|
ENUM[220] = :GhostHaunt ; NUME[:GhostHaunt] = 220 ; Value[:GhostHaunt] = '-20/-50/-100/-200' ; Caption[:GhostHaunt] = 'has been (haunted/tormented/possessed/tortured) by the (dead/dead pet/...) lately'
|
|
ENUM[221] = :GhostNightmare ; NUME[:GhostNightmare] = 221 ; Value[:GhostNightmare] = '-20/-50/-100/-200' ; Caption[:GhostNightmare] = 'has been tormented in nightmares by the (dead/dead pet/...) lately'
|
|
ENUM[222] = :Conviction ; NUME[:Conviction] = 222 ; Value[:Conviction] = '-?' ; Caption[:Conviction] = 'was outraged at the ridiculous conviction of X recently/was pleased to have received justice recently'
|
|
ENUM[223] = :LostTrainingAnimal ; NUME[:LostTrainingAnimal] = 223 ; Value[:LostTrainingAnimal] = '-?' ; Caption[:LostTrainingAnimal] = 'has lost an animal training partner to tragedy recently'
|
|
ENUM[224] = :BondTrainingAnimal ; NUME[:BondTrainingAnimal] = 224 ; Value[:BondTrainingAnimal] = '+?' ; Caption[:BondTrainingAnimal] = 'formed a bond with an animal training partner recently'
|
|
end
|
|
|
|
class UnitsOtherId < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :ANY_RIDER ; NUME[:ANY_RIDER] = 0
|
|
ENUM[1] = :ANY_ANIMAL ; NUME[:ANY_ANIMAL] = 1
|
|
ENUM[2] = :ANY_BABY2 ; NUME[:ANY_BABY2] = 2
|
|
end
|
|
|
|
class WeaponFlags < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :CAN_STONE ; NUME[:CAN_STONE] = 0
|
|
ENUM[1] = :HAS_EDGE_ATTACK ; NUME[:HAS_EDGE_ATTACK] = 1
|
|
ENUM[2] = :TRAINING ; NUME[:TRAINING] = 2
|
|
end
|
|
|
|
class WeatherType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :None ; NUME[:None] = 0
|
|
ENUM[1] = :Rain ; NUME[:Rain] = 1
|
|
ENUM[2] = :Snow ; NUME[:Snow] = 2
|
|
end
|
|
|
|
class WorkshopType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Carpenters ; NUME[:Carpenters] = 0
|
|
ENUM[1] = :Farmers ; NUME[:Farmers] = 1
|
|
ENUM[2] = :Masons ; NUME[:Masons] = 2
|
|
ENUM[3] = :Craftsdwarfs ; NUME[:Craftsdwarfs] = 3
|
|
ENUM[4] = :Jewelers ; NUME[:Jewelers] = 4
|
|
ENUM[5] = :MetalsmithsForge ; NUME[:MetalsmithsForge] = 5
|
|
ENUM[6] = :MagmaForge ; NUME[:MagmaForge] = 6
|
|
ENUM[7] = :Bowyers ; NUME[:Bowyers] = 7
|
|
ENUM[8] = :Mechanics ; NUME[:Mechanics] = 8
|
|
ENUM[9] = :Siege ; NUME[:Siege] = 9
|
|
ENUM[10] = :Butchers ; NUME[:Butchers] = 10
|
|
ENUM[11] = :Leatherworks ; NUME[:Leatherworks] = 11
|
|
ENUM[12] = :Tanners ; NUME[:Tanners] = 12
|
|
ENUM[13] = :Clothiers ; NUME[:Clothiers] = 13
|
|
ENUM[14] = :Fishery ; NUME[:Fishery] = 14
|
|
ENUM[15] = :Still ; NUME[:Still] = 15
|
|
ENUM[16] = :Loom ; NUME[:Loom] = 16
|
|
ENUM[17] = :Quern ; NUME[:Quern] = 17
|
|
ENUM[18] = :Kennels ; NUME[:Kennels] = 18
|
|
ENUM[19] = :Kitchen ; NUME[:Kitchen] = 19
|
|
ENUM[20] = :Ashery ; NUME[:Ashery] = 20
|
|
ENUM[21] = :Dyers ; NUME[:Dyers] = 21
|
|
ENUM[22] = :Millstone ; NUME[:Millstone] = 22
|
|
ENUM[23] = :Custom ; NUME[:Custom] = 23
|
|
ENUM[24] = :Tool ; NUME[:Tool] = 24
|
|
end
|
|
|
|
class WorldConstructionType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :ROAD ; NUME[:ROAD] = 0
|
|
ENUM[1] = :TUNNEL ; NUME[:TUNNEL] = 1
|
|
ENUM[2] = :BRIDGE ; NUME[:BRIDGE] = 2
|
|
ENUM[3] = :WALL ; NUME[:WALL] = 3
|
|
end
|
|
|
|
class WorldPopulationType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Animal ; NUME[:Animal] = 0
|
|
ENUM[1] = :Vermin ; NUME[:Vermin] = 1
|
|
ENUM[2] = :Unk2 ; NUME[:Unk2] = 2
|
|
ENUM[3] = :VerminInnumerable ; NUME[:VerminInnumerable] = 3
|
|
ENUM[4] = :ColonyInsect ; NUME[:ColonyInsect] = 4
|
|
ENUM[5] = :Tree ; NUME[:Tree] = 5
|
|
ENUM[6] = :Grass ; NUME[:Grass] = 6
|
|
ENUM[7] = :Bush ; NUME[:Bush] = 7
|
|
end
|
|
|
|
class WorldgenRangeType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :ELEVATION ; NUME[:ELEVATION] = 0
|
|
ENUM[1] = :RAINFALL ; NUME[:RAINFALL] = 1
|
|
ENUM[3] = :TEMPERATURE ; NUME[:TEMPERATURE] = 3
|
|
ENUM[5] = :DRAINAGE ; NUME[:DRAINAGE] = 5
|
|
ENUM[6] = :VOLCANISM ; NUME[:VOLCANISM] = 6
|
|
ENUM[7] = :SAVAGERY ; NUME[:SAVAGERY] = 7
|
|
end
|
|
|
|
class WorldgenRegionType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :SWAMP ; NUME[:SWAMP] = 0
|
|
ENUM[1] = :DESERT ; NUME[:DESERT] = 1
|
|
ENUM[2] = :FOREST ; NUME[:FOREST] = 2
|
|
ENUM[3] = :MOUNTAINS ; NUME[:MOUNTAINS] = 3
|
|
ENUM[4] = :OCEAN ; NUME[:OCEAN] = 4
|
|
ENUM[5] = :LAKE ; NUME[:LAKE] = 5
|
|
ENUM[6] = :GLACIER ; NUME[:GLACIER] = 6
|
|
ENUM[7] = :TUNDRA ; NUME[:TUNDRA] = 7
|
|
ENUM[8] = :GRASSLAND ; NUME[:GRASSLAND] = 8
|
|
ENUM[9] = :HILLS ; NUME[:HILLS] = 9
|
|
end
|
|
|
|
class ActivityEntry < MemHack::Compound
|
|
sizeof 24
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:is_individual, 4) {
|
|
number 16, true
|
|
}
|
|
field(:events, 8) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ActivityEvent
|
|
}
|
|
}
|
|
}
|
|
field(:unk2, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ActivityEvent < MemHack::Compound
|
|
sizeof 76
|
|
|
|
rtti_classname :activity_eventst
|
|
|
|
field(:event_id, 4) {
|
|
number 32, true
|
|
}
|
|
field(:activity_id, 8) {
|
|
number 32, true
|
|
}
|
|
def activity_tg ; df.world.activities.all[activity_id] ; end
|
|
field(:subevent_id, 12) {
|
|
number 32, true
|
|
}
|
|
field(:num_subevents, 16) {
|
|
number 32, true
|
|
}
|
|
field(:hist_figure_ids, 20) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def hist_figure_tgs ; hist_figure_ids.map { |i| df.world.history.figures[i] } ; end
|
|
field(:participant_ids, 32) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def participant_tgs ; participant_ids.map { |i| df.world.units.all[i] } ; end
|
|
field(:hist_figure_ids2, 44) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def hist_figure_tgs2 ; hist_figure_ids2.map { |i| df.world.history.figures[i] } ; end
|
|
field(:participant_ids2, 56) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def participant_tgs2 ; participant_ids2.map { |i| df.world.units.all[i] } ; end
|
|
field(:activity_id2, 68) {
|
|
number 32, true
|
|
}
|
|
def activity_tg2 ; df.world.activities.all[activity_id2] ; end
|
|
field(:event_id2, 72) {
|
|
number 32, true
|
|
}
|
|
def getType()
|
|
ActivityEventType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 4, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 8, arg0, loadversion) ; nil
|
|
end
|
|
def getHistFigVector()
|
|
ptr = DFHack.vmethod_call(self, 32)
|
|
class << self
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def setSkillDemoUnk5(unk5)
|
|
DFHack.vmethod_call(self, 60, unk5) ; nil
|
|
end
|
|
def setSkillDemoUnk789(unk7, unk8, unk9)
|
|
DFHack.vmethod_call(self, 64, unk7, unk8, unk9) ; nil
|
|
end
|
|
def adjustUnkA(amount)
|
|
DFHack.vmethod_call(self, 68, amount) ; nil
|
|
end
|
|
def getOrganizer(hist_figure_id, unit_id)
|
|
DFHack.vmethod_call(self, 72, hist_figure_id, unit_id) ; nil
|
|
end
|
|
def getBuilding()
|
|
ptr = DFHack.vmethod_call(self, 76)
|
|
class << self
|
|
number 32, true
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getName(arg0, str)
|
|
DFHack.vmethod_call(self, 88, arg0, str) ; nil
|
|
end
|
|
end
|
|
|
|
class ActivityEventCombatTrainingst < ActivityEvent
|
|
sizeof 92
|
|
|
|
rtti_classname :activity_event_combat_trainingst
|
|
|
|
field(:building_id, 76) {
|
|
number 32, true
|
|
}
|
|
def building_tg ; df.world.buildings.all[building_id] ; end
|
|
field(:hist_figure_id, 80) {
|
|
number 32, true
|
|
}
|
|
def hist_figure_tg ; df.world.history.figures[hist_figure_id] ; end
|
|
field(:unit_id, 84) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:unk5, 88) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ActivityEventIndividualSkillDrillst < ActivityEvent
|
|
sizeof 84
|
|
|
|
rtti_classname :activity_event_individual_skill_drillst
|
|
|
|
field(:building_id, 76) {
|
|
number 32, true
|
|
}
|
|
def building_tg ; df.world.buildings.all[building_id] ; end
|
|
field(:unk5, 80) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ActivityEventRangedPracticest < ActivityEvent
|
|
sizeof 84
|
|
|
|
rtti_classname :activity_event_ranged_practicest
|
|
|
|
field(:anon_1, 76) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 80) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ActivityEventSkillDemonstrationst < ActivityEvent
|
|
sizeof 108
|
|
|
|
rtti_classname :activity_event_skill_demonstrationst
|
|
|
|
field(:building_id, 76) {
|
|
number 32, true
|
|
}
|
|
def building_tg ; df.world.buildings.all[building_id] ; end
|
|
field(:hist_figure_id, 80) {
|
|
number 32, true
|
|
}
|
|
def hist_figure_tg ; df.world.history.figures[hist_figure_id] ; end
|
|
field(:unit_id, 84) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:unk5, 88) {
|
|
number 16, true
|
|
}
|
|
field(:unk6, 92) {
|
|
number 32, true
|
|
}
|
|
field(:unk7, 96) {
|
|
number 32, true
|
|
}
|
|
field(:unk8, 100) {
|
|
number 32, true
|
|
}
|
|
field(:unk9, 104) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ActivityEventSparringst < ActivityEvent
|
|
sizeof 96
|
|
|
|
rtti_classname :activity_event_sparringst
|
|
|
|
field(:anon_1, 76) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 80) {
|
|
stl_vector
|
|
}
|
|
field(:anon_3, 92) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ActivityEventTrainingSessionst < ActivityEvent
|
|
sizeof 76
|
|
|
|
rtti_classname :activity_event_training_sessionst
|
|
|
|
end
|
|
|
|
class ActivityInfo < MemHack::Compound
|
|
sizeof 28
|
|
|
|
field(:unk1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:person1, 4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:person2, 8) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:place, 12) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
field(:unk2, 16) {
|
|
number 16, true
|
|
}
|
|
field(:unk3, 18) {
|
|
number 8, false
|
|
}
|
|
field(:unk4, 20) {
|
|
number 16, true
|
|
}
|
|
field(:unk5, 24) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class AdvTask < MemHack::Compound
|
|
sizeof 48
|
|
|
|
rtti_classname :taskst
|
|
|
|
field(:link, 4) {
|
|
pointer {
|
|
global :QuestListLink
|
|
}
|
|
}
|
|
field(:id, 8) {
|
|
number 32, true
|
|
}
|
|
field(:quest_giver_id, 12) {
|
|
number 32, true
|
|
}
|
|
def quest_giver_tg ; df.world.history.figures[quest_giver_id] ; end
|
|
field(:anon_1, 16) {
|
|
number 32, true
|
|
}
|
|
def anon_1_tg ; df.world.world_data.sites[anon_1] ; end
|
|
field(:anon_2, 20) {
|
|
number 32, true
|
|
}
|
|
field(:adventurer_id, 24) {
|
|
number 32, true
|
|
}
|
|
def adventurer_tg ; df.world.history.figures[adventurer_id] ; end
|
|
field(:anon_3, 28) {
|
|
number 32, true
|
|
}
|
|
field(:target_pos, 32) {
|
|
global :Coord2d
|
|
}
|
|
field(:giver_pos, 36) {
|
|
global :Coord2d
|
|
}
|
|
field(:anon_4, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 44) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class AdventureMovementOption < MemHack::Compound
|
|
sizeof 4
|
|
|
|
rtti_classname :adventure_movement_optionst
|
|
|
|
end
|
|
|
|
class AnnouncementFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:DO_MEGA, 0) { bit 0 }
|
|
field(:PAUSE, 0) { bit 1 }
|
|
field(:RECENTER, 0) { bit 2 }
|
|
field(:A_DISPLAY, 0) { bit 3 }
|
|
field(:D_DISPLAY, 0) { bit 4 }
|
|
field(:UNIT_COMBAT_REPORT, 0) { bit 5 }
|
|
field(:UNIT_COMBAT_REPORT_ALL_ACTIVE, 0) { bit 6 }
|
|
end
|
|
|
|
class Announcements < MemHack::Compound
|
|
sizeof 644
|
|
|
|
field(:flags, 0) {
|
|
static_array(161, 4, AnnouncementType) {
|
|
global :AnnouncementFlags
|
|
}
|
|
}
|
|
end
|
|
|
|
class ArmorProperties < MemHack::Compound
|
|
sizeof 20
|
|
|
|
field(:flags, 0) {
|
|
df_flagarray(ArmorGeneralFlags)
|
|
}
|
|
field(:layer, 8) {
|
|
number 32, true
|
|
}
|
|
field(:layer_size, 12) {
|
|
number 16, true
|
|
}
|
|
field(:layer_permit, 14) {
|
|
number 16, true
|
|
}
|
|
field(:coverage, 16) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class ArtImage < MemHack::Compound
|
|
sizeof 132
|
|
|
|
field(:elements, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ArtImageElement
|
|
}
|
|
}
|
|
}
|
|
field(:properties, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ArtImageProperty
|
|
}
|
|
}
|
|
}
|
|
field(:event, 24) {
|
|
number 32, true
|
|
}
|
|
def event_tg ; df.world.history.events[event] ; end
|
|
field(:name, 28) {
|
|
global :LanguageName
|
|
}
|
|
field(:anon_1, 88) {
|
|
number 32, true
|
|
}
|
|
field(:mat_type, 92) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 96) {
|
|
number 32, true
|
|
}
|
|
field(:quality, 100) {
|
|
number 16, true, nil, ItemQuality
|
|
}
|
|
field(:artist, 104) {
|
|
number 32, true
|
|
}
|
|
def artist_tg ; df.world.history.figures[artist] ; end
|
|
field(:site, 108) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:anon_2, 112) {
|
|
pointer {
|
|
global :GeneralRef
|
|
}
|
|
}
|
|
field(:year, 116) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 120) {
|
|
number 32, true
|
|
}
|
|
field(:id, 124) {
|
|
number 32, true
|
|
}
|
|
def id_tg ; df.world.art_images[id] ; end
|
|
field(:subid, 128) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class ArtImageCollection < MemHack::Compound
|
|
sizeof 2004
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:images, 4) {
|
|
static_array(500, 4) {
|
|
pointer {
|
|
global :ArtImage
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class ArtImageElement < MemHack::Compound
|
|
sizeof 8
|
|
|
|
rtti_classname :art_image_elementst
|
|
|
|
field(:count, 4) {
|
|
number 32, true
|
|
}
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 0, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 4, arg0, loadversion) ; nil
|
|
end
|
|
def getType()
|
|
ArtImageElementType.sym(DFHack.vmethod_call(self, 8))
|
|
end
|
|
def setID(iD)
|
|
DFHack.vmethod_call(self, 12, iD) ; nil
|
|
end
|
|
def clone()
|
|
ptr = DFHack.vmethod_call(self, 24)
|
|
class << self
|
|
global :ArtImageElement
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getSymbol(sym, arg1)
|
|
DFHack.vmethod_call(self, 28, sym, arg1) ; nil
|
|
end
|
|
def getName1(arg0, arg1, arg2)
|
|
DFHack.vmethod_call(self, 32, arg0, arg1, arg2) ; nil
|
|
end
|
|
def getName2(arg0, arg1)
|
|
DFHack.vmethod_call(self, 36, arg0, arg1) ; nil
|
|
end
|
|
end
|
|
|
|
class ArtImageElementCreaturest < ArtImageElement
|
|
sizeof 20
|
|
|
|
rtti_classname :art_image_element_creaturest
|
|
|
|
field(:race, 8) {
|
|
number 32, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:caste, 12) {
|
|
number 16, true
|
|
}
|
|
field(:histfig, 16) {
|
|
number 32, true
|
|
}
|
|
def histfig_tg ; df.world.history.figures[histfig] ; end
|
|
end
|
|
|
|
class ArtImageElementItemst < ArtImageElement
|
|
sizeof 24
|
|
|
|
rtti_classname :art_image_element_itemst
|
|
|
|
field(:item_type, 8) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 10) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 12) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 14) {
|
|
number 16, true
|
|
}
|
|
field(:flags, 16) {
|
|
global :ItemFlags
|
|
}
|
|
field(:item_id, 20) {
|
|
number 32, true
|
|
}
|
|
def item_tg ; df.world.items.all[item_id] ; end
|
|
end
|
|
|
|
class ArtImageElementPlantst < ArtImageElement
|
|
sizeof 12
|
|
|
|
rtti_classname :art_image_element_plantst
|
|
|
|
field(:plant_id, 8) {
|
|
number 32, true
|
|
}
|
|
def plant_tg ; df.world.raws.plants.all[plant_id] ; end
|
|
end
|
|
|
|
class ArtImageElementShapest < ArtImageElement
|
|
sizeof 16
|
|
|
|
rtti_classname :art_image_element_shapest
|
|
|
|
field(:shape_id, 8) {
|
|
number 32, true
|
|
}
|
|
def shape_tg ; df.world.raws.language.shapes[shape_id] ; end
|
|
field(:anon_1, 12) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class ArtImageElementTreest < ArtImageElement
|
|
sizeof 12
|
|
|
|
rtti_classname :art_image_element_treest
|
|
|
|
field(:plant_id, 8) {
|
|
number 32, true
|
|
}
|
|
def plant_tg ; df.world.raws.plants.all[plant_id] ; end
|
|
end
|
|
|
|
class ArtImageProperty < MemHack::Compound
|
|
sizeof 12
|
|
|
|
rtti_classname :art_image_propertyst
|
|
|
|
field(:flags, 4) {
|
|
df_flagarray
|
|
}
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 0, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 4, arg0, loadversion) ; nil
|
|
end
|
|
def getType()
|
|
ArtImagePropertyType.sym(DFHack.vmethod_call(self, 8))
|
|
end
|
|
def clone()
|
|
ptr = DFHack.vmethod_call(self, 20)
|
|
class << self
|
|
global :ArtImageElement
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getName(arg0, arg1, arg2)
|
|
DFHack.vmethod_call(self, 24, arg0, arg1, arg2) ; nil
|
|
end
|
|
end
|
|
|
|
class ArtImagePropertyIntransitiveVerbst < ArtImageProperty
|
|
sizeof 20
|
|
|
|
rtti_classname :art_image_property_intransitive_verbst
|
|
|
|
field(:anon_1, 12) {
|
|
number 32, true
|
|
}
|
|
field(:verb, 16) {
|
|
number 16, true, nil, ArtImagePropertyVerb
|
|
}
|
|
end
|
|
|
|
class ArtImagePropertyTransitiveVerbst < ArtImageProperty
|
|
sizeof 24
|
|
|
|
rtti_classname :art_image_property_transitive_verbst
|
|
|
|
field(:subject, 12) {
|
|
number 32, true
|
|
}
|
|
field(:object, 16) {
|
|
number 32, true
|
|
}
|
|
field(:verb, 20) {
|
|
number 16, true, nil, ArtImagePropertyVerb
|
|
}
|
|
end
|
|
|
|
class ArtImageRef < MemHack::Compound
|
|
sizeof 16
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
def id_tg ; df.world.art_images[id] ; end
|
|
field(:subid, 4) {
|
|
number 16, true
|
|
}
|
|
field(:civ_id, 8) {
|
|
number 32, true
|
|
}
|
|
def civ_tg ; df.world.entities.all[civ_id] ; end
|
|
field(:site_id, 12) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site_id] ; end
|
|
end
|
|
|
|
class ArtifactRecord < MemHack::Compound
|
|
sizeof 88
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:name, 4) {
|
|
global :LanguageName
|
|
}
|
|
field(:flags, 64) {
|
|
df_flagarray
|
|
}
|
|
field(:item, 72) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
field(:anon_1, 76) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 80) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 84) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class AssignTradeStatus < MemHack::Compound
|
|
sizeof 20
|
|
|
|
field(:item, 0) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
field(:distance, 4) {
|
|
number 32, true
|
|
}
|
|
field(:status, 8) {
|
|
class ::DFHack::AssignTradeStatus_TStatus < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-2] = :RemoveTrading ; NUME[:RemoveTrading] = -2
|
|
ENUM[-1] = :RemovePending ; NUME[:RemovePending] = -1
|
|
ENUM[0] = :None ; NUME[:None] = 0
|
|
ENUM[1] = :AddPending ; NUME[:AddPending] = 1
|
|
ENUM[2] = :Pending ; NUME[:Pending] = 2
|
|
ENUM[3] = :Trading ; NUME[:Trading] = 3
|
|
end
|
|
|
|
number 8, false, nil, AssignTradeStatus_TStatus
|
|
}
|
|
field(:unk, 9) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:value, 12) {
|
|
number 32, true
|
|
}
|
|
field(:weight, 16) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class AssumedIdentity < MemHack::Compound
|
|
sizeof 88
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:name, 4) {
|
|
global :LanguageName
|
|
}
|
|
field(:race, 64) {
|
|
number 32, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:caste, 68) {
|
|
number 16, true
|
|
}
|
|
field(:histfig_id, 72) {
|
|
number 32, true
|
|
}
|
|
def histfig_tg ; df.world.history.figures[histfig_id] ; end
|
|
field(:anon_1, 76) {
|
|
number 32, true
|
|
}
|
|
field(:birth_year, 80) {
|
|
number 32, true
|
|
}
|
|
field(:birth_second, 84) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class BlockBurrow < MemHack::Compound
|
|
sizeof 40
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
def id_tg ; df.ui.burrows.list[id] ; end
|
|
field(:tile_bitmask, 4) {
|
|
global :TileBitmask
|
|
}
|
|
field(:link, 36) {
|
|
pointer {
|
|
global :BlockBurrowLink
|
|
}
|
|
}
|
|
end
|
|
|
|
class BlockBurrowLink < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:item, 0) {
|
|
pointer {
|
|
global :BlockBurrow
|
|
}
|
|
}
|
|
field(:prev, 4) {
|
|
pointer {
|
|
global :BlockBurrowLink
|
|
}
|
|
}
|
|
field(:next, 8) {
|
|
pointer {
|
|
global :BlockBurrowLink
|
|
}
|
|
}
|
|
end
|
|
|
|
class BlockFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:designated, 0) { bit 0 }
|
|
field(:update_temperature, 0) { bit 1 }
|
|
field(:update_liquid, 0) { bit 2 }
|
|
field(:update_liquid_twice, 0) { bit 3 }
|
|
end
|
|
|
|
class BlockSquareEvent < MemHack::Compound
|
|
sizeof 4
|
|
|
|
rtti_classname :block_square_eventst
|
|
|
|
def getType()
|
|
BlockSquareEventType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 4, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 8, arg0, loadversion) ; nil
|
|
end
|
|
def isEmpty()
|
|
val = DFHack.vmethod_call(self, 12)
|
|
(val & 1) != 0
|
|
end
|
|
def checkTemperature(x, y, temperature)
|
|
DFHack.vmethod_call(self, 24, x, y, temperature) ; nil
|
|
end
|
|
end
|
|
|
|
class BlockSquareEventFrozenLiquidst < BlockSquareEvent
|
|
sizeof 772
|
|
|
|
rtti_classname :block_square_event_frozen_liquidst
|
|
|
|
field(:tiles, 4) {
|
|
static_array(16, 32) {
|
|
static_array(16, 2) {
|
|
number 16, true, nil, Tiletype
|
|
}
|
|
}
|
|
}
|
|
field(:liquid_type, 516) {
|
|
static_array(16, 16) {
|
|
static_array(16, 1) {
|
|
number 8, false, nil, TileLiquid
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class BlockSquareEventGrassst < BlockSquareEvent
|
|
sizeof 264
|
|
|
|
rtti_classname :block_square_event_grassst
|
|
|
|
field(:plant_index, 4) {
|
|
number 32, true
|
|
}
|
|
def plant_index_tg ; df.world.raws.plants.all[plant_index] ; end
|
|
field(:amount, 8) {
|
|
static_array(16, 16) {
|
|
static_array(16, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class BlockSquareEventMaterialSpatterst < BlockSquareEvent
|
|
sizeof 276
|
|
|
|
rtti_classname :block_square_event_material_spatterst
|
|
|
|
field(:mat_type, 4) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 8) {
|
|
number 32, true
|
|
}
|
|
field(:mat_state, 12) {
|
|
number 16, true
|
|
}
|
|
field(:amount, 14) {
|
|
static_array(16, 16) {
|
|
static_array(16, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
field(:min_temperature, 270) {
|
|
number 16, true
|
|
}
|
|
field(:max_temperature, 272) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BlockSquareEventMineralst < BlockSquareEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :block_square_event_mineralst
|
|
|
|
field(:inorganic_mat, 4) {
|
|
number 32, true
|
|
}
|
|
def inorganic_mat_tg ; df.world.raws.inorganics[inorganic_mat] ; end
|
|
field(:tile_bitmask, 8) {
|
|
global :TileBitmask
|
|
}
|
|
field(:flags, 40) {
|
|
number 32, false
|
|
}
|
|
end
|
|
|
|
class BlockSquareEventWorldConstructionst < BlockSquareEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :block_square_event_world_constructionst
|
|
|
|
field(:inorganic_mat, 4) {
|
|
number 32, true
|
|
}
|
|
def inorganic_mat_tg ; df.world.raws.inorganics[inorganic_mat] ; end
|
|
field(:tile_bitmask, 8) {
|
|
global :TileBitmask
|
|
}
|
|
end
|
|
|
|
class BodyComponentInfo < MemHack::Compound
|
|
sizeof 96
|
|
|
|
field(:body_part_308, 0) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:unk_318, 12) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:body_layer_328, 24) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:body_layer_338, 36) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:body_layer_348, 48) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:body_layer_358, 60) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:body_layer_368, 72) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:body_layer_378, 84) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
end
|
|
|
|
class BodyDetailPlan < MemHack::Compound
|
|
sizeof 304
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:add_material_name, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:add_material_template, 16) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:add_tissue_name, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:add_tissue_template, 40) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:unk5c, 52) {
|
|
stl_vector
|
|
}
|
|
field(:unk6c, 64) {
|
|
stl_vector
|
|
}
|
|
field(:unk7c, 76) {
|
|
stl_vector
|
|
}
|
|
field(:bp_layers_selection, 88) {
|
|
stl_vector
|
|
}
|
|
field(:bp_layers_criteria, 100) {
|
|
stl_vector
|
|
}
|
|
field(:bp_layers_tissue, 112) {
|
|
stl_vector
|
|
}
|
|
field(:bp_layers_thickness, 124) {
|
|
stl_vector
|
|
}
|
|
field(:bp_layers_position, 136) {
|
|
stl_vector
|
|
}
|
|
field(:bp_layers_over_under, 148) {
|
|
stl_vector
|
|
}
|
|
field(:bp_relsize_selection, 160) {
|
|
stl_vector
|
|
}
|
|
field(:bp_relsize_criteria, 172) {
|
|
stl_vector
|
|
}
|
|
field(:bp_relsize_value, 184) {
|
|
stl_vector
|
|
}
|
|
field(:bp_position_selection, 196) {
|
|
stl_vector
|
|
}
|
|
field(:bp_position_criteria, 208) {
|
|
stl_vector
|
|
}
|
|
field(:bp_position_value, 220) {
|
|
stl_vector
|
|
}
|
|
field(:bp_relation_selection_1, 232) {
|
|
stl_vector
|
|
}
|
|
field(:bp_relation_criteria_1, 244) {
|
|
stl_vector
|
|
}
|
|
field(:bp_relation_value_1, 256) {
|
|
stl_vector
|
|
}
|
|
field(:bp_relation_selection_2, 268) {
|
|
stl_vector
|
|
}
|
|
field(:bp_relation_criteria_2, 280) {
|
|
stl_vector
|
|
}
|
|
field(:bp_relation_extent, 292) {
|
|
stl_vector
|
|
}
|
|
end
|
|
|
|
class BodyPartLayerRaw < MemHack::Compound
|
|
sizeof 80
|
|
|
|
field(:layer_name, 0) {
|
|
stl_string
|
|
}
|
|
field(:tissue_id, 4) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 8) {
|
|
df_flagarray
|
|
}
|
|
field(:unk2, 16) {
|
|
number 32, true
|
|
}
|
|
field(:healing_rate, 20) {
|
|
number 32, true
|
|
}
|
|
field(:vascular, 24) {
|
|
number 32, true
|
|
}
|
|
field(:pain_receptors, 28) {
|
|
number 32, true
|
|
}
|
|
field(:unk6, 32) {
|
|
number 32, true
|
|
}
|
|
field(:unk7, 36) {
|
|
number 16, true
|
|
}
|
|
field(:unk8, 40) {
|
|
stl_vector
|
|
}
|
|
field(:layer_id, 52) {
|
|
number 32, true
|
|
}
|
|
field(:unk10, 56) {
|
|
number 32, true
|
|
}
|
|
field(:unk11, 60) {
|
|
number 32, true
|
|
}
|
|
field(:layer_depth, 64) {
|
|
number 32, true
|
|
}
|
|
field(:unk13, 68) {
|
|
number 32, true
|
|
}
|
|
field(:unk14, 72) {
|
|
number 32, true
|
|
}
|
|
field(:unk15, 76) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class BodyPartRaw < MemHack::Compound
|
|
sizeof 120
|
|
|
|
field(:token, 0) {
|
|
stl_string
|
|
}
|
|
field(:category, 4) {
|
|
stl_string
|
|
}
|
|
field(:con_part_id, 8) {
|
|
number 16, true
|
|
}
|
|
field(:flags, 12) {
|
|
df_flagarray(BodyPartRawFlags)
|
|
}
|
|
field(:layers, 20) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BodyPartLayerRaw
|
|
}
|
|
}
|
|
}
|
|
field(:unk2, 32) {
|
|
number 32, true
|
|
}
|
|
field(:unk3, 36) {
|
|
number 32, true
|
|
}
|
|
field(:unk4, 40) {
|
|
number 32, true
|
|
}
|
|
field(:unk5, 44) {
|
|
number 32, true
|
|
}
|
|
field(:relsize, 48) {
|
|
number 32, true
|
|
}
|
|
field(:unk7, 52) {
|
|
number 32, true
|
|
}
|
|
field(:unk7b, 56) {
|
|
number 16, true
|
|
}
|
|
field(:name_singular, 60) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:name_plural, 72) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:bp_relation_part_id, 84) {
|
|
pointer {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:bp_relation_code, 88) {
|
|
pointer {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:bp_relation_coverage, 92) {
|
|
pointer {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:min_temp, 96) {
|
|
number 16, false
|
|
}
|
|
field(:max_temp, 98) {
|
|
number 16, false
|
|
}
|
|
field(:temp_factor, 100) {
|
|
number 16, false
|
|
}
|
|
field(:unused, 104) {
|
|
number 32, true
|
|
}
|
|
field(:insulation_muscle, 108) {
|
|
number 16, true
|
|
}
|
|
field(:insulation_fat, 110) {
|
|
number 16, true
|
|
}
|
|
field(:insulation_base, 112) {
|
|
number 16, true
|
|
}
|
|
field(:clothing_item_id, 116) {
|
|
number 32, true, -1
|
|
}
|
|
end
|
|
|
|
class BodyPartTemplate < MemHack::Compound
|
|
sizeof 60
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:con, 4) {
|
|
stl_string
|
|
}
|
|
field(:category, 8) {
|
|
stl_string
|
|
}
|
|
field(:con_cat, 12) {
|
|
stl_string
|
|
}
|
|
field(:contype, 16) {
|
|
number 16, true, nil, BodyPartTemplateContype
|
|
}
|
|
field(:flags, 20) {
|
|
df_flagarray(BodyPartTemplateFlags)
|
|
}
|
|
field(:default_relsize, 28) {
|
|
number 32, true
|
|
}
|
|
field(:number, 32) {
|
|
number 32, true
|
|
}
|
|
field(:name_singular, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:name_plural, 48) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class BodyTemplate < MemHack::Compound
|
|
sizeof 16
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:parts, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BodyPartTemplate
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class BuildReqChoicest < MemHack::Compound
|
|
sizeof 8
|
|
|
|
rtti_classname :build_req_choicest
|
|
|
|
field(:distance, 4) {
|
|
number 32, true
|
|
}
|
|
def getType()
|
|
BuildReqChoiceType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def getName(str)
|
|
DFHack.vmethod_call(self, 4, str) ; nil
|
|
end
|
|
def isCandidate(item_id)
|
|
val = DFHack.vmethod_call(self, 12, item_id)
|
|
(val & 1) != 0
|
|
end
|
|
def getUsedCount()
|
|
val = DFHack.vmethod_call(self, 20)
|
|
end
|
|
def getNumCandidates()
|
|
val = DFHack.vmethod_call(self, 24)
|
|
end
|
|
end
|
|
|
|
class BuildReqChoiceGenst < BuildReqChoicest
|
|
sizeof 36
|
|
|
|
rtti_classname :build_req_choice_genst
|
|
|
|
field(:item_type, 8) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 10) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 12) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 16) {
|
|
number 32, true
|
|
}
|
|
field(:candidates, 20) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:used_count, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class BuildReqChoiceSpecst < BuildReqChoicest
|
|
sizeof 16
|
|
|
|
rtti_classname :build_req_choice_specst
|
|
|
|
field(:candidate, 8) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
field(:candidate_id, 12) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class Building < MemHack::Compound
|
|
sizeof 180
|
|
|
|
rtti_classname :buildingst
|
|
|
|
field(:x1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:y1, 8) {
|
|
number 32, true
|
|
}
|
|
field(:centerx, 12) {
|
|
number 32, true
|
|
}
|
|
field(:x2, 16) {
|
|
number 32, true
|
|
}
|
|
field(:y2, 20) {
|
|
number 32, true
|
|
}
|
|
field(:centery, 24) {
|
|
number 32, true
|
|
}
|
|
field(:z, 28) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 32) {
|
|
global :BuildingFlags
|
|
}
|
|
field(:mat_type, 36) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 40) {
|
|
number 32, true, -1
|
|
}
|
|
field(:room, 44) {
|
|
global :BuildingExtents
|
|
}
|
|
field(:age, 64) {
|
|
number 32, true
|
|
}
|
|
field(:race, 68) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:id, 72) {
|
|
number 32, true, -1
|
|
}
|
|
field(:jobs, 76) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Job
|
|
}
|
|
}
|
|
}
|
|
field(:specific_refs, 88) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :SpecificRef
|
|
}
|
|
}
|
|
}
|
|
field(:refs, 100) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :GeneralRef
|
|
}
|
|
}
|
|
}
|
|
field(:is_room, 112) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:children, 116) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
}
|
|
field(:parents, 128) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
}
|
|
field(:owner, 140) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:unk7, 144) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:name, 156) {
|
|
stl_string
|
|
}
|
|
field(:activities, 160) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Building_TActivities) {
|
|
sizeof 8
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
def id_tg ; df.world.activities.all[id] ; end
|
|
field(:is_group, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:world_data_id, 172) {
|
|
number 32, true, -1
|
|
}
|
|
field(:world_data_subid, 176) {
|
|
number 32, true, -1
|
|
}
|
|
def getCustomType()
|
|
val = DFHack.vmethod_call(self, 0)
|
|
end
|
|
def setCustomType(type)
|
|
DFHack.vmethod_call(self, 4, type) ; nil
|
|
end
|
|
def countHospitalSupplies(supplies)
|
|
DFHack.vmethod_call(self, 8, supplies) ; nil
|
|
end
|
|
def detachWorldData()
|
|
DFHack.vmethod_call(self, 16) ; nil
|
|
end
|
|
def getUsers()
|
|
ptr = DFHack.vmethod_call(self, 24)
|
|
class << self
|
|
global :BuildingUsers
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def moveBuilding(delta_x, delta_y, delta_z)
|
|
DFHack.vmethod_call(self, 28, delta_x, delta_y, delta_z) ; nil
|
|
end
|
|
def initOccupancy(abs_x, abs_y)
|
|
DFHack.vmethod_call(self, 32, abs_x, abs_y) ; nil
|
|
end
|
|
def setFillTimer(arg0, arg1)
|
|
DFHack.vmethod_call(self, 36, JobType.int(arg0), arg1) ; nil
|
|
end
|
|
def isOnFire()
|
|
val = DFHack.vmethod_call(self, 40)
|
|
(val & 1) != 0
|
|
end
|
|
def isUnpowered()
|
|
val = DFHack.vmethod_call(self, 44)
|
|
(val & 1) != 0
|
|
end
|
|
def canCollapse()
|
|
val = DFHack.vmethod_call(self, 48)
|
|
(val & 1) != 0
|
|
end
|
|
def getPassableOccupancy()
|
|
val = DFHack.vmethod_call(self, 52)
|
|
val & ((1 << 32) - 1)
|
|
end
|
|
def getImpassableOccupancy()
|
|
val = DFHack.vmethod_call(self, 56)
|
|
val & ((1 << 32) - 1)
|
|
end
|
|
def isPowerSource()
|
|
val = DFHack.vmethod_call(self, 60)
|
|
(val & 1) != 0
|
|
end
|
|
def updateFromWeather()
|
|
DFHack.vmethod_call(self, 64) ; nil
|
|
end
|
|
def updateTemperature()
|
|
DFHack.vmethod_call(self, 68) ; nil
|
|
end
|
|
def updateItems()
|
|
DFHack.vmethod_call(self, 72) ; nil
|
|
end
|
|
def updateTempFromTile(temp, arg1, arg2)
|
|
DFHack.vmethod_call(self, 76, temp, arg1, arg2) ; nil
|
|
end
|
|
def isNormalFurniture()
|
|
val = DFHack.vmethod_call(self, 80)
|
|
(val & 1) != 0
|
|
end
|
|
def isFarmPlot()
|
|
val = DFHack.vmethod_call(self, 84)
|
|
(val & 1) != 0
|
|
end
|
|
def getWorkshopProfile()
|
|
ptr = DFHack.vmethod_call(self, 88)
|
|
class << self
|
|
global :WorkshopProfile
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getMachineInfo()
|
|
ptr = DFHack.vmethod_call(self, 92)
|
|
class << self
|
|
global :MachineInfo
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getPowerInfo(power_info)
|
|
DFHack.vmethod_call(self, 96, power_info) ; nil
|
|
end
|
|
def canConnectToMachine(arg0)
|
|
val = DFHack.vmethod_call(self, 100, arg0)
|
|
(val & 1) != 0
|
|
end
|
|
def getType()
|
|
BuildingType.sym(DFHack.vmethod_call(self, 104))
|
|
end
|
|
def getSubtype()
|
|
val = DFHack.vmethod_call(self, 108)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def setSubtype(subtype)
|
|
DFHack.vmethod_call(self, 112, subtype) ; nil
|
|
end
|
|
def isActual()
|
|
val = DFHack.vmethod_call(self, 116)
|
|
(val & 1) != 0
|
|
end
|
|
def isCoffin2()
|
|
val = DFHack.vmethod_call(self, 120)
|
|
(val & 1) != 0
|
|
end
|
|
def updateAction()
|
|
DFHack.vmethod_call(self, 124) ; nil
|
|
end
|
|
def isStatueOrRestraint()
|
|
val = DFHack.vmethod_call(self, 128)
|
|
(val & 1) != 0
|
|
end
|
|
def setMaterialAmount(arg0)
|
|
DFHack.vmethod_call(self, 132, arg0) ; nil
|
|
end
|
|
def setBuildStage(stage)
|
|
DFHack.vmethod_call(self, 136, stage) ; nil
|
|
end
|
|
def getBuildStage()
|
|
val = DFHack.vmethod_call(self, 140)
|
|
end
|
|
def getMaxBuildStage()
|
|
val = DFHack.vmethod_call(self, 144)
|
|
end
|
|
def getArchitectureValue()
|
|
val = DFHack.vmethod_call(self, 148)
|
|
end
|
|
def isSettingOccupancy()
|
|
val = DFHack.vmethod_call(self, 152)
|
|
(val & 1) != 0
|
|
end
|
|
def isActual2()
|
|
val = DFHack.vmethod_call(self, 156)
|
|
(val & 1) != 0
|
|
end
|
|
def isExtentShaped()
|
|
val = DFHack.vmethod_call(self, 160)
|
|
(val & 1) != 0
|
|
end
|
|
def updateOccupancy(abs_x, abs_y)
|
|
DFHack.vmethod_call(self, 164, abs_x, abs_y) ; nil
|
|
end
|
|
def getRoomValue(arg0)
|
|
val = DFHack.vmethod_call(self, 168, arg0)
|
|
end
|
|
def getPersonalValue(arg0)
|
|
val = DFHack.vmethod_call(self, 172, arg0)
|
|
end
|
|
def canBeRoom()
|
|
val = DFHack.vmethod_call(self, 176)
|
|
(val & 1) != 0
|
|
end
|
|
def getConstructionValue()
|
|
val = DFHack.vmethod_call(self, 180)
|
|
end
|
|
def queueDestroy()
|
|
DFHack.vmethod_call(self, 184) ; nil
|
|
end
|
|
def isImpassableTile(rel_x, rel_y)
|
|
val = DFHack.vmethod_call(self, 188, rel_x, rel_y)
|
|
(val & 1) != 0
|
|
end
|
|
def getFreeCapacity(exclude_in_room, subtract_pending_jobs)
|
|
val = DFHack.vmethod_call(self, 192, exclude_in_room, subtract_pending_jobs)
|
|
end
|
|
def canStoreItem(arg0, subtract_pending_jobs)
|
|
val = DFHack.vmethod_call(self, 196, arg0, subtract_pending_jobs)
|
|
(val & 1) != 0
|
|
end
|
|
def getName(name)
|
|
DFHack.vmethod_call(self, 200, name) ; nil
|
|
end
|
|
def getNameColor()
|
|
DFHack.vmethod_call(self, 204) ; nil
|
|
end
|
|
def initFarmSeasons()
|
|
DFHack.vmethod_call(self, 208) ; nil
|
|
end
|
|
def initBurialFlags()
|
|
DFHack.vmethod_call(self, 212) ; nil
|
|
end
|
|
def clearBurialFlags()
|
|
DFHack.vmethod_call(self, 216) ; nil
|
|
end
|
|
def clearBurialFlags2()
|
|
DFHack.vmethod_call(self, 220) ; nil
|
|
end
|
|
def getClutterLevel()
|
|
val = DFHack.vmethod_call(self, 224)
|
|
end
|
|
def needsDesign()
|
|
val = DFHack.vmethod_call(self, 228)
|
|
(val & 1) != 0
|
|
end
|
|
def canUseForMood(arg0)
|
|
val = DFHack.vmethod_call(self, 232, JobType.int(arg0))
|
|
(val & 1) != 0
|
|
end
|
|
def canBeRoomSubset()
|
|
val = DFHack.vmethod_call(self, 236)
|
|
(val & 1) != 0
|
|
end
|
|
def isCoffin()
|
|
val = DFHack.vmethod_call(self, 240)
|
|
(val & 1) != 0
|
|
end
|
|
def canUseSpouseRoom()
|
|
val = DFHack.vmethod_call(self, 244)
|
|
(val & 1) != 0
|
|
end
|
|
def canMakeRoom()
|
|
val = DFHack.vmethod_call(self, 248)
|
|
(val & 1) != 0
|
|
end
|
|
def isJusticeRestraint()
|
|
val = DFHack.vmethod_call(self, 252)
|
|
(val & 1) != 0
|
|
end
|
|
def detachRestrainedUnit(arg0)
|
|
DFHack.vmethod_call(self, 256, arg0) ; nil
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 260, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 264, arg0, loadversion) ; nil
|
|
end
|
|
def isImpassableAtCreation()
|
|
val = DFHack.vmethod_call(self, 268)
|
|
(val & 1) != 0
|
|
end
|
|
def categorize(arg0)
|
|
DFHack.vmethod_call(self, 272, arg0) ; nil
|
|
end
|
|
def uncategorize()
|
|
DFHack.vmethod_call(self, 276) ; nil
|
|
end
|
|
def getBaseValue()
|
|
val = DFHack.vmethod_call(self, 280)
|
|
end
|
|
def setMachineState(new_state)
|
|
DFHack.vmethod_call(self, 284, new_state) ; nil
|
|
end
|
|
def checkAdvmodeLocked()
|
|
DFHack.vmethod_call(self, 288) ; nil
|
|
end
|
|
def drawAdvmodeUnlockUI()
|
|
DFHack.vmethod_call(self, 292) ; nil
|
|
end
|
|
def advmodeUnlock(arg0)
|
|
DFHack.vmethod_call(self, 296, arg0) ; nil
|
|
end
|
|
def needsMagma()
|
|
val = DFHack.vmethod_call(self, 300)
|
|
(val & 1) != 0
|
|
end
|
|
def removeUses(noscatter, lost)
|
|
DFHack.vmethod_call(self, 304, noscatter, lost) ; nil
|
|
end
|
|
def deconstructItems(noscatter, lost)
|
|
DFHack.vmethod_call(self, 308, noscatter, lost) ; nil
|
|
end
|
|
def cleanupMap()
|
|
DFHack.vmethod_call(self, 312) ; nil
|
|
end
|
|
def fillSidebarMenu()
|
|
DFHack.vmethod_call(self, 320) ; nil
|
|
end
|
|
def isForbidden()
|
|
val = DFHack.vmethod_call(self, 324)
|
|
(val & 1) != 0
|
|
end
|
|
def isHidden()
|
|
val = DFHack.vmethod_call(self, 328)
|
|
(val & 1) != 0
|
|
end
|
|
def isVisibleInUI()
|
|
val = DFHack.vmethod_call(self, 332)
|
|
(val & 1) != 0
|
|
end
|
|
def drawBuilding(arg0, arg1)
|
|
DFHack.vmethod_call(self, 344, arg0, arg1) ; nil
|
|
end
|
|
def setSquadUse(squad, arg1)
|
|
DFHack.vmethod_call(self, 348, squad, arg1) ; nil
|
|
end
|
|
def getSquads()
|
|
ptr = DFHack.vmethod_call(self, 352)
|
|
class << self
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingSquadUse
|
|
}
|
|
}
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getSpecificSquad()
|
|
val = DFHack.vmethod_call(self, 356)
|
|
end
|
|
def getSpecificPosition()
|
|
val = DFHack.vmethod_call(self, 360)
|
|
end
|
|
def setSpecificSquadPos(arg0, arg1)
|
|
DFHack.vmethod_call(self, 364, arg0, arg1) ; nil
|
|
end
|
|
def clearSpecificSquad()
|
|
DFHack.vmethod_call(self, 368) ; nil
|
|
end
|
|
end
|
|
|
|
class BuildingActual < Building
|
|
sizeof 200
|
|
|
|
rtti_classname :building_actualst
|
|
|
|
field(:construction_stage, 180) {
|
|
number 16, true
|
|
}
|
|
field(:contained_items, 184) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:BuildingActual_TContainedItems) {
|
|
sizeof 8
|
|
|
|
field(:item, 0) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
field(:use_mode, 4) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:design, 196) {
|
|
pointer {
|
|
global :BuildingDesign
|
|
}
|
|
}
|
|
def isDestroyedByItemRemoval()
|
|
val = DFHack.vmethod_call(self, 0)
|
|
(val & 1) != 0
|
|
end
|
|
end
|
|
|
|
class BuildingAnimaltrapst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_animaltrapst
|
|
|
|
field(:bait_type, 200) {
|
|
number 16, true, -1
|
|
}
|
|
field(:fill_timer, 202) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingArcherytargetst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_archerytargetst
|
|
|
|
field(:archery_direction, 200) {
|
|
class ::DFHack::BuildingArcherytargetst_TArcheryDirection < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :TopToBottom ; NUME[:TopToBottom] = 0
|
|
ENUM[1] = :BottomToTop ; NUME[:BottomToTop] = 1
|
|
ENUM[2] = :LeftToRight ; NUME[:LeftToRight] = 2
|
|
ENUM[3] = :RightToLeft ; NUME[:RightToLeft] = 3
|
|
end
|
|
|
|
number 8, false, nil, BuildingArcherytargetst_TArcheryDirection
|
|
}
|
|
end
|
|
|
|
class BuildingArmorstandst < BuildingActual
|
|
sizeof 224
|
|
|
|
rtti_classname :building_armorstandst
|
|
|
|
field(:unk_c0, 200) {
|
|
number 16, true
|
|
}
|
|
field(:squads, 204) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingSquadUse
|
|
}
|
|
}
|
|
}
|
|
field(:specific_squad, 216) {
|
|
number 32, true
|
|
}
|
|
def specific_squad_tg ; df.world.squads.all[specific_squad] ; end
|
|
field(:specific_position, 220) {
|
|
number 32, true, -1
|
|
}
|
|
end
|
|
|
|
class BuildingAxleHorizontalst < BuildingActual
|
|
sizeof 212
|
|
|
|
rtti_classname :building_axle_horizontalst
|
|
|
|
field(:machine, 200) {
|
|
global :MachineInfo
|
|
}
|
|
field(:is_vertical, 208) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class BuildingAxleVerticalst < BuildingActual
|
|
sizeof 208
|
|
|
|
rtti_classname :building_axle_verticalst
|
|
|
|
field(:machine, 200) {
|
|
global :MachineInfo
|
|
}
|
|
end
|
|
|
|
class BuildingBarsFloorst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_bars_floorst
|
|
|
|
field(:gate_flags, 200) {
|
|
global :GateFlags
|
|
}
|
|
field(:timer, 202) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class BuildingBarsVerticalst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_bars_verticalst
|
|
|
|
field(:gate_flags, 200) {
|
|
global :GateFlags
|
|
}
|
|
field(:timer, 202) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class BuildingBedst < BuildingActual
|
|
sizeof 248
|
|
|
|
rtti_classname :building_bedst
|
|
|
|
field(:anon_1, 200) {
|
|
compound(:BuildingBedst_TAnon1) {
|
|
field(:_whole, 0) {
|
|
number 16, false
|
|
}
|
|
field(:barracks, 0) { bit 0 }
|
|
field(:dormitory, 0) { bit 1 }
|
|
}
|
|
}
|
|
field(:squads, 204) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingSquadUse
|
|
}
|
|
}
|
|
}
|
|
field(:specific_squad, 216) {
|
|
number 32, true
|
|
}
|
|
def specific_squad_tg ; df.world.squads.all[specific_squad] ; end
|
|
field(:specific_position, 220) {
|
|
number 32, true, -1
|
|
}
|
|
field(:users, 224) {
|
|
global :BuildingUsers
|
|
}
|
|
end
|
|
|
|
class BuildingBoxst < BuildingActual
|
|
sizeof 224
|
|
|
|
rtti_classname :building_boxst
|
|
|
|
field(:anon_1, 200) {
|
|
number 16, true
|
|
}
|
|
field(:squads, 204) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingSquadUse
|
|
}
|
|
}
|
|
}
|
|
field(:specific_squad, 216) {
|
|
number 32, true
|
|
}
|
|
def specific_squad_tg ; df.world.squads.all[specific_squad] ; end
|
|
field(:specific_position, 220) {
|
|
number 32, true, -1
|
|
}
|
|
end
|
|
|
|
class BuildingBridgest < BuildingActual
|
|
sizeof 208
|
|
|
|
rtti_classname :building_bridgest
|
|
|
|
field(:gate_flags, 200) {
|
|
global :GateFlags
|
|
}
|
|
field(:timer, 202) {
|
|
number 8, false
|
|
}
|
|
field(:direction, 203) {
|
|
class ::DFHack::BuildingBridgest_TDirection < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :Retracting ; NUME[:Retracting] = -1
|
|
ENUM[0] = :Left ; NUME[:Left] = 0
|
|
ENUM[1] = :Right ; NUME[:Right] = 1
|
|
ENUM[2] = :Up ; NUME[:Up] = 2
|
|
ENUM[3] = :Down ; NUME[:Down] = 3
|
|
end
|
|
|
|
number 8, false, nil, BuildingBridgest_TDirection
|
|
}
|
|
field(:material_amount, 204) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class BuildingCabinetst < BuildingActual
|
|
sizeof 224
|
|
|
|
rtti_classname :building_cabinetst
|
|
|
|
field(:anon_1, 200) {
|
|
number 16, true
|
|
}
|
|
field(:squads, 204) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingSquadUse
|
|
}
|
|
}
|
|
}
|
|
field(:specific_squad, 216) {
|
|
number 32, true
|
|
}
|
|
def specific_squad_tg ; df.world.squads.all[specific_squad] ; end
|
|
field(:specific_position, 220) {
|
|
number 32, true, -1
|
|
}
|
|
end
|
|
|
|
class BuildingCagest < BuildingActual
|
|
sizeof 228
|
|
|
|
rtti_classname :building_cagest
|
|
|
|
field(:assigned_creature, 200) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def assigned_creature_tg ; assigned_creature.map { |i| df.world.units.all[i] } ; end
|
|
field(:assigned_vermin, 212) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def assigned_vermin_tg ; assigned_vermin.map { |i| df.world.items.all[i] } ; end
|
|
field(:anon_1, 224) {
|
|
number 16, true
|
|
}
|
|
field(:fill_timer, 226) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingChainst < BuildingActual
|
|
sizeof 212
|
|
|
|
rtti_classname :building_chainst
|
|
|
|
field(:assigned, 200) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:chained, 204) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:unk, 208) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingChairst < BuildingActual
|
|
sizeof 228
|
|
|
|
rtti_classname :building_chairst
|
|
|
|
field(:anon_1, 200) {
|
|
number 16, true
|
|
}
|
|
field(:users, 204) {
|
|
global :BuildingUsers
|
|
}
|
|
end
|
|
|
|
class BuildingCivzonest < Building
|
|
sizeof 308
|
|
|
|
rtti_classname :building_civzonest
|
|
|
|
field(:assigned_creature, 180) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def assigned_creature_tg ; assigned_creature.map { |i| df.world.units.all[i] } ; end
|
|
field(:assigned_vermin, 192) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def assigned_vermin_tg ; assigned_vermin.map { |i| df.world.items.all[i] } ; end
|
|
field(:type, 204) {
|
|
number 16, true, nil, CivzoneType
|
|
}
|
|
field(:anon_1, 206) {
|
|
number 16, true
|
|
}
|
|
field(:zone_flags, 208) {
|
|
compound(:BuildingCivzonest_TZoneFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:water_source, 0) { bit 0 }
|
|
field(:garbage_dump, 0) { bit 1 }
|
|
field(:sand, 0) { bit 2 }
|
|
field(:active, 0) { bit 3 }
|
|
field(:fishing, 0) { bit 4 }
|
|
field(:pit_pond, 0) { bit 5 }
|
|
field(:meeting_area, 0) { bit 6 }
|
|
field(:hospital, 0) { bit 7 }
|
|
field(:pen_pasture, 0) { bit 8 }
|
|
field(:clay, 0) { bit 9 }
|
|
field(:animal_training, 0) { bit 10 }
|
|
}
|
|
}
|
|
field(:anon_2, 212) {
|
|
number 32, true, -1
|
|
}
|
|
field(:anon_3, 216) {
|
|
number 32, true, -1
|
|
}
|
|
field(:anon_4, 220) {
|
|
number 32, true, -1
|
|
}
|
|
field(:anon_5, 224) {
|
|
number 32, true, -1
|
|
}
|
|
field(:zone_num, 228) {
|
|
number 32, true, -1
|
|
}
|
|
field(:anon_6, 232) {
|
|
number 32, true
|
|
}
|
|
field(:pit_flags, 236) {
|
|
compound(:BuildingCivzonest_TPitFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:is_pond, 0) { bit 1 }
|
|
}
|
|
}
|
|
field(:fill_timer, 240) {
|
|
number 16, true
|
|
}
|
|
field(:hospital, 244) {
|
|
global :HospitalSupplies
|
|
}
|
|
end
|
|
|
|
class BuildingCoffinst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_coffinst
|
|
|
|
field(:burial_mode, 200) {
|
|
compound(:BuildingCoffinst_TBurialMode) {
|
|
field(:_whole, 0) {
|
|
number 16, false
|
|
}
|
|
field(:allow_burial, 0) { bit 0 }
|
|
field(:no_citizens, 0) { bit 1 }
|
|
field(:no_pets, 0) { bit 2 }
|
|
}
|
|
}
|
|
end
|
|
|
|
class BuildingConstructionst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_constructionst
|
|
|
|
field(:type, 200) {
|
|
number 16, true, nil, ConstructionType
|
|
}
|
|
end
|
|
|
|
class BuildingDef < MemHack::Compound
|
|
sizeof 16424
|
|
|
|
rtti_classname :building_defst
|
|
|
|
field(:code, 4) {
|
|
stl_string
|
|
}
|
|
field(:id, 8) {
|
|
number 32, true
|
|
}
|
|
field(:name, 12) {
|
|
stl_string
|
|
}
|
|
field(:unk_40, 16) {
|
|
number 32, true
|
|
}
|
|
field(:unk_44, 20) {
|
|
number 32, true
|
|
}
|
|
field(:name_color, 24) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:tile, 30) {
|
|
static_array(4, 961) {
|
|
static_array(31, 31) {
|
|
static_array(31, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:tile_color, 3874) {
|
|
static_array(3, 3844) {
|
|
static_array(4, 961) {
|
|
static_array(31, 31) {
|
|
static_array(31, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:tile_block, 15406) {
|
|
static_array(31, 31) {
|
|
static_array(31, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
field(:build_key, 16368) {
|
|
number 32, true
|
|
}
|
|
field(:needs_magma, 16372) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:build_items, 16376) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingDefItem
|
|
}
|
|
}
|
|
}
|
|
field(:dim_x, 16388) {
|
|
number 32, true
|
|
}
|
|
field(:dim_y, 16392) {
|
|
number 32, true
|
|
}
|
|
field(:workloc_x, 16396) {
|
|
number 32, true
|
|
}
|
|
field(:workloc_y, 16400) {
|
|
number 32, true
|
|
}
|
|
field(:build_labors, 16404) {
|
|
stl_vector(4) {
|
|
number 32, true, nil, UnitLabor
|
|
}
|
|
}
|
|
field(:labor_description, 16416) {
|
|
stl_string
|
|
}
|
|
field(:build_stages, 16420) {
|
|
number 32, true
|
|
}
|
|
def parseRaws(arg0, arg1, arg2, arg3)
|
|
DFHack.vmethod_call(self, 0, arg0, arg1, arg2, arg3) ; nil
|
|
end
|
|
def categorize()
|
|
DFHack.vmethod_call(self, 4) ; nil
|
|
end
|
|
def finalize()
|
|
DFHack.vmethod_call(self, 8) ; nil
|
|
end
|
|
end
|
|
|
|
class BuildingDefFurnacest < BuildingDef
|
|
sizeof 16424
|
|
|
|
rtti_classname :building_def_furnacest
|
|
|
|
end
|
|
|
|
class BuildingDefItem < MemHack::Compound
|
|
sizeof 76
|
|
|
|
field(:item_type, 0) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 2) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 4) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 6) {
|
|
number 16, true, -1
|
|
}
|
|
field(:reaction_class, 8) {
|
|
stl_string
|
|
}
|
|
field(:has_material_reaction_product, 12) {
|
|
stl_string
|
|
}
|
|
field(:flags1, 16) {
|
|
global :JobItemFlags1
|
|
}
|
|
field(:flags2, 20) {
|
|
global :JobItemFlags2
|
|
}
|
|
field(:flags3, 24) {
|
|
global :JobItemFlags3
|
|
}
|
|
field(:flags4, 28) {
|
|
number 32, false
|
|
}
|
|
field(:flags5, 32) {
|
|
number 32, false
|
|
}
|
|
field(:metal_ore, 36) {
|
|
number 32, true
|
|
}
|
|
def metal_ore_tg ; df.world.raws.inorganics[metal_ore] ; end
|
|
field(:min_dimension, 40) {
|
|
number 32, true
|
|
}
|
|
field(:quantity, 44) {
|
|
number 32, true
|
|
}
|
|
field(:has_tool_use, 48) {
|
|
number 16, true, nil, ToolUses
|
|
}
|
|
field(:item_str, 52) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:material_str, 60) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:metal_ore_str, 72) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class BuildingDefWorkshopst < BuildingDef
|
|
sizeof 16424
|
|
|
|
rtti_classname :building_def_workshopst
|
|
|
|
end
|
|
|
|
class BuildingDesign < MemHack::Compound
|
|
sizeof 48
|
|
|
|
field(:architect, 0) {
|
|
number 32, true
|
|
}
|
|
def architect_tg ; df.world.history.figures[architect] ; end
|
|
field(:unk2, 4) {
|
|
number 32, true, -1
|
|
}
|
|
field(:unk3, 8) {
|
|
number 16, true
|
|
}
|
|
field(:builder1, 12) {
|
|
number 32, true
|
|
}
|
|
def builder1_tg ; df.world.history.figures[builder1] ; end
|
|
field(:unk5, 16) {
|
|
number 32, true, -1
|
|
}
|
|
field(:unk6, 20) {
|
|
number 16, true
|
|
}
|
|
field(:build_timer1, 22) {
|
|
number 16, true
|
|
}
|
|
field(:builder2, 24) {
|
|
number 32, true
|
|
}
|
|
def builder2_tg ; df.world.history.figures[builder2] ; end
|
|
field(:build_timer2, 28) {
|
|
number 16, true
|
|
}
|
|
field(:quality1, 30) {
|
|
number 16, true, nil, ItemQuality
|
|
}
|
|
field(:quality2, 32) {
|
|
number 16, true, nil, ItemQuality
|
|
}
|
|
field(:flags, 36) {
|
|
compound(:BuildingDesign_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:rough, 0) { bit 0 }
|
|
field(:built, 0) { bit 1 }
|
|
field(:designed, 0) { bit 2 }
|
|
}
|
|
}
|
|
field(:unk11, 40) {
|
|
number 32, true
|
|
}
|
|
field(:unk12, 44) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class BuildingDoorst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_doorst
|
|
|
|
field(:flags, 200) {
|
|
global :DoorFlags
|
|
}
|
|
field(:close_timer, 202) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingExtents < MemHack::Compound
|
|
sizeof 20
|
|
|
|
field(:extents, 0) {
|
|
pointer_ary(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:x, 4) {
|
|
number 32, true
|
|
}
|
|
field(:y, 8) {
|
|
number 32, true
|
|
}
|
|
field(:width, 12) {
|
|
number 32, true
|
|
}
|
|
field(:height, 16) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class BuildingFarmplotst < BuildingActual
|
|
sizeof 232
|
|
|
|
rtti_classname :building_farmplotst
|
|
|
|
field(:plant_id, 200) {
|
|
static_array(4, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:material_amount, 208) {
|
|
number 32, true
|
|
}
|
|
field(:seasonal_fertilize, 212) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 216) {
|
|
number 8, false, -1
|
|
}
|
|
field(:current_fertilization, 220) {
|
|
number 32, true
|
|
}
|
|
field(:max_fertilization, 224) {
|
|
number 32, true
|
|
}
|
|
field(:terrain_purge_timer, 228) {
|
|
number 16, true, 500
|
|
}
|
|
end
|
|
|
|
class BuildingFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:exists, 0) { bit 0 }
|
|
field(:site_blocked, 0) { bit 1 }
|
|
field(:room_collision, 0) { bit 2 }
|
|
field(:justice, 0) { bit 4 }
|
|
field(:almost_deleted, 0) { bit 5 }
|
|
field(:in_update, 0) { bit 6 }
|
|
end
|
|
|
|
class BuildingFloodgatest < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_floodgatest
|
|
|
|
field(:gate_flags, 200) {
|
|
global :GateFlags
|
|
}
|
|
field(:timer, 202) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class BuildingFurnacest < BuildingActual
|
|
sizeof 288
|
|
|
|
rtti_classname :building_furnacest
|
|
|
|
field(:melt_remainder, 200) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_108, 212) {
|
|
number 16, true
|
|
}
|
|
field(:type, 214) {
|
|
number 16, true, nil, FurnaceType
|
|
}
|
|
field(:profile, 216) {
|
|
global :WorkshopProfile
|
|
}
|
|
field(:give_to_pile, 236) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingStockpilest
|
|
}
|
|
}
|
|
}
|
|
field(:take_from_pile, 248) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingStockpilest
|
|
}
|
|
}
|
|
}
|
|
field(:unk14, 260) {
|
|
stl_vector
|
|
}
|
|
field(:unk15, 272) {
|
|
stl_vector
|
|
}
|
|
field(:custom_type, 284) {
|
|
number 32, true
|
|
}
|
|
def custom_type_tg ; df.world.raws.buildings.all[custom_type] ; end
|
|
end
|
|
|
|
class BuildingGearAssemblyst < BuildingActual
|
|
sizeof 212
|
|
|
|
rtti_classname :building_gear_assemblyst
|
|
|
|
field(:machine, 200) {
|
|
global :MachineInfo
|
|
}
|
|
field(:gear_flags, 208) {
|
|
compound(:BuildingGearAssemblyst_TGearFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:disengaged, 0) { bit 0 }
|
|
}
|
|
}
|
|
end
|
|
|
|
class BuildingGrateFloorst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_grate_floorst
|
|
|
|
field(:gate_flags, 200) {
|
|
global :GateFlags
|
|
}
|
|
field(:timer, 202) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class BuildingGrateWallst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_grate_wallst
|
|
|
|
field(:gate_flags, 200) {
|
|
global :GateFlags
|
|
}
|
|
field(:timer, 202) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class BuildingHatchst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_hatchst
|
|
|
|
field(:flags, 200) {
|
|
global :DoorFlags
|
|
}
|
|
field(:close_timer, 202) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingHivest < BuildingActual
|
|
sizeof 220
|
|
|
|
rtti_classname :building_hivest
|
|
|
|
field(:anon_1, 200) {
|
|
number 32, true, 3
|
|
}
|
|
field(:anon_2, 204) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 208) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 212) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 216) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class BuildingNestBoxst < BuildingActual
|
|
sizeof 208
|
|
|
|
rtti_classname :building_nest_boxst
|
|
|
|
field(:claimed_by, 200) {
|
|
number 32, true
|
|
}
|
|
def claimed_by_tg ; df.world.units.all[claimed_by] ; end
|
|
field(:anon_1, 204) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class BuildingNestst < BuildingActual
|
|
sizeof 200
|
|
|
|
rtti_classname :building_nestst
|
|
|
|
end
|
|
|
|
class BuildingRoadst < BuildingActual
|
|
sizeof 200
|
|
|
|
rtti_classname :building_roadst
|
|
|
|
end
|
|
|
|
class BuildingRoadDirtst < BuildingRoadst
|
|
sizeof 204
|
|
|
|
rtti_classname :building_road_dirtst
|
|
|
|
field(:material_amount, 200) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class BuildingRoadPavedst < BuildingRoadst
|
|
sizeof 208
|
|
|
|
rtti_classname :building_road_pavedst
|
|
|
|
field(:material_amount, 200) {
|
|
number 32, true
|
|
}
|
|
field(:terrain_purge_timer, 204) {
|
|
number 16, true, 500
|
|
}
|
|
end
|
|
|
|
class BuildingRollersst < BuildingActual
|
|
sizeof 216
|
|
|
|
rtti_classname :building_rollersst
|
|
|
|
field(:machine, 200) {
|
|
global :MachineInfo
|
|
}
|
|
field(:direction, 208) {
|
|
number 32, true, nil, ScrewPumpDirection
|
|
}
|
|
field(:speed, 212) {
|
|
number 32, true, 50000
|
|
}
|
|
end
|
|
|
|
class BuildingScrewPumpst < BuildingActual
|
|
sizeof 212
|
|
|
|
rtti_classname :building_screw_pumpst
|
|
|
|
field(:machine, 200) {
|
|
global :MachineInfo
|
|
}
|
|
field(:unk_100, 208) {
|
|
number 8, false
|
|
}
|
|
field(:direction, 209) {
|
|
number 8, false, nil, ScrewPumpDirection
|
|
}
|
|
field(:pump_manually, 210) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class BuildingShopst < BuildingActual
|
|
sizeof 212
|
|
|
|
rtti_classname :building_shopst
|
|
|
|
field(:has_owner, 200) {
|
|
number 32, true
|
|
}
|
|
field(:owner, 204) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 208) {
|
|
compound(:BuildingShopst_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 16, true, 1
|
|
}
|
|
field(:for_sale, 0) { bit 0 }
|
|
}
|
|
}
|
|
field(:type, 210) {
|
|
number 16, true, nil, ShopType
|
|
}
|
|
end
|
|
|
|
class BuildingSiegeenginest < BuildingActual
|
|
sizeof 208
|
|
|
|
rtti_classname :building_siegeenginest
|
|
|
|
field(:type, 200) {
|
|
number 16, true, nil, SiegeengineType
|
|
}
|
|
field(:facing, 202) {
|
|
class ::DFHack::BuildingSiegeenginest_TFacing < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Left ; NUME[:Left] = 0
|
|
ENUM[1] = :Up ; NUME[:Up] = 1
|
|
ENUM[2] = :Right ; NUME[:Right] = 2
|
|
ENUM[3] = :Down ; NUME[:Down] = 3
|
|
end
|
|
|
|
number 8, false, nil, BuildingSiegeenginest_TFacing
|
|
}
|
|
field(:action, 203) {
|
|
class ::DFHack::BuildingSiegeenginest_TAction < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :NotInUse ; NUME[:NotInUse] = 0
|
|
ENUM[1] = :PrepareToFire ; NUME[:PrepareToFire] = 1
|
|
ENUM[2] = :FireAtWill ; NUME[:FireAtWill] = 2
|
|
end
|
|
|
|
number 8, false, nil, BuildingSiegeenginest_TAction
|
|
}
|
|
field(:fire_timer, 204) {
|
|
number 8, false
|
|
}
|
|
field(:fill_timer, 206) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingSlabst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_slabst
|
|
|
|
field(:anon_1, 200) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingSquadUse < MemHack::Compound
|
|
sizeof 8
|
|
|
|
field(:squad_id, 0) {
|
|
number 32, true
|
|
}
|
|
def squad_tg ; df.world.squads.all[squad_id] ; end
|
|
field(:mode, 4) {
|
|
global :SquadUseFlags
|
|
}
|
|
end
|
|
|
|
class BuildingStatuest < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_statuest
|
|
|
|
field(:anon_1, 200) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingStockpilest < Building
|
|
sizeof 1260
|
|
|
|
rtti_classname :building_stockpilest
|
|
|
|
field(:settings, 180) {
|
|
global :StockpileSettings
|
|
}
|
|
field(:max_barrels, 1136) {
|
|
number 16, true
|
|
}
|
|
field(:max_bins, 1138) {
|
|
number 16, true
|
|
}
|
|
field(:max_wheelbarrows, 1140) {
|
|
number 16, true
|
|
}
|
|
field(:container_type, 1144) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:container_item_id, 1156) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def container_item_tg ; container_item_id.map { |i| df.world.items.all[i] } ; end
|
|
field(:container_x, 1168) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:container_y, 1180) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:give_to, 1192) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingStockpilest
|
|
}
|
|
}
|
|
}
|
|
field(:take_from, 1204) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingStockpilest
|
|
}
|
|
}
|
|
}
|
|
field(:give_to_workshop, 1216) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
}
|
|
field(:take_from_workshop, 1228) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
}
|
|
field(:use_links_only, 1240) {
|
|
number 32, true
|
|
}
|
|
field(:stockpile_number, 1244) {
|
|
number 32, true, -1
|
|
}
|
|
field(:linked_stops, 1248) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HaulingStop
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class BuildingSupportst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_supportst
|
|
|
|
field(:anon_1, 200) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingTablest < BuildingActual
|
|
sizeof 228
|
|
|
|
rtti_classname :building_tablest
|
|
|
|
field(:flags, 200) {
|
|
compound(:BuildingTablest_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 16, true
|
|
}
|
|
field(:meeting_hall, 0) { bit 0 }
|
|
}
|
|
}
|
|
field(:users, 204) {
|
|
global :BuildingUsers
|
|
}
|
|
end
|
|
|
|
class BuildingTractionBenchst < BuildingActual
|
|
sizeof 228
|
|
|
|
rtti_classname :building_traction_benchst
|
|
|
|
field(:anon_1, 200) {
|
|
number 16, true
|
|
}
|
|
field(:users, 204) {
|
|
global :BuildingUsers
|
|
}
|
|
end
|
|
|
|
class BuildingTradedepotst < BuildingActual
|
|
sizeof 208
|
|
|
|
rtti_classname :building_tradedepotst
|
|
|
|
field(:flags, 200) {
|
|
compound(:BuildingTradedepotst_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:trader_requested, 0) { bit 0 }
|
|
field(:anyone_can_trade, 0) { bit 1 }
|
|
}
|
|
}
|
|
field(:anon_1, 204) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class BuildingTrapst < BuildingActual
|
|
sizeof 348
|
|
|
|
rtti_classname :building_trapst
|
|
|
|
field(:trap_type, 200) {
|
|
number 16, true, nil, TrapType
|
|
}
|
|
field(:state, 202) {
|
|
number 8, false
|
|
}
|
|
field(:unk_cc, 204) {
|
|
number 16, true
|
|
}
|
|
field(:fill_timer, 206) {
|
|
number 16, true
|
|
}
|
|
field(:unk_d0, 208) {
|
|
number 16, true
|
|
}
|
|
field(:linked_mechanisms, 212) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
field(:anon_1, 224) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_2, 236) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_3, 248) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 252) {
|
|
number 32, true, 3000
|
|
}
|
|
field(:unk12, 256) {
|
|
stl_vector
|
|
}
|
|
field(:unk13, 268) {
|
|
stl_vector
|
|
}
|
|
field(:unk14, 280) {
|
|
stl_vector
|
|
}
|
|
field(:unk15, 292) {
|
|
stl_vector
|
|
}
|
|
field(:plate_info, 304) {
|
|
global :PressurePlateInfo
|
|
}
|
|
field(:friction, 328) {
|
|
number 32, true, 50000
|
|
}
|
|
field(:use_dump, 332) {
|
|
number 32, true
|
|
}
|
|
field(:dump_x_shift, 336) {
|
|
number 32, true
|
|
}
|
|
field(:dump_y_shift, 340) {
|
|
number 32, true
|
|
}
|
|
field(:unk19, 344) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class BuildingUsers < MemHack::Compound
|
|
sizeof 24
|
|
|
|
field(:unit, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def unit_tg ; unit.map { |i| df.world.units.all[i] } ; end
|
|
field(:mode, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class BuildingWagonst < BuildingActual
|
|
sizeof 200
|
|
|
|
rtti_classname :building_wagonst
|
|
|
|
end
|
|
|
|
class BuildingWaterWheelst < BuildingActual
|
|
sizeof 212
|
|
|
|
rtti_classname :building_water_wheelst
|
|
|
|
field(:machine, 200) {
|
|
global :MachineInfo
|
|
}
|
|
field(:is_vertical, 208) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:gives_power, 209) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class BuildingWeaponrackst < BuildingActual
|
|
sizeof 220
|
|
|
|
rtti_classname :building_weaponrackst
|
|
|
|
field(:unk_c0, 200) {
|
|
number 16, true
|
|
}
|
|
field(:squads, 204) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingSquadUse
|
|
}
|
|
}
|
|
}
|
|
field(:specific_squad, 216) {
|
|
number 32, true
|
|
}
|
|
def specific_squad_tg ; df.world.squads.all[specific_squad] ; end
|
|
end
|
|
|
|
class BuildingWeaponst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_weaponst
|
|
|
|
field(:gate_flags, 200) {
|
|
global :GateFlags
|
|
}
|
|
field(:timer, 202) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class BuildingWellst < BuildingActual
|
|
sizeof 212
|
|
|
|
rtti_classname :building_wellst
|
|
|
|
field(:flags, 200) {
|
|
compound(:BuildingWellst_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 16, true
|
|
}
|
|
field(:lowering, 0) { bit 0 }
|
|
}
|
|
}
|
|
field(:anon_1, 202) {
|
|
number 8, false
|
|
}
|
|
field(:bucket_z, 204) {
|
|
number 16, true
|
|
}
|
|
field(:bucket_timer, 206) {
|
|
number 8, false
|
|
}
|
|
field(:unk_timer, 208) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingWindmillst < BuildingActual
|
|
sizeof 220
|
|
|
|
rtti_classname :building_windmillst
|
|
|
|
field(:machine, 200) {
|
|
global :MachineInfo
|
|
}
|
|
field(:orient_angle, 208) {
|
|
number 16, true, -1
|
|
}
|
|
field(:orient_mode, 210) {
|
|
number 16, true
|
|
}
|
|
field(:is_working, 212) {
|
|
number 16, true
|
|
}
|
|
field(:visual_rotated, 214) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:rotate_timer, 216) {
|
|
number 16, true
|
|
}
|
|
field(:orient_timer, 218) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingWindowst < BuildingActual
|
|
sizeof 204
|
|
|
|
rtti_classname :building_windowst
|
|
|
|
field(:anon_1, 200) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class BuildingWindowGemst < BuildingWindowst
|
|
sizeof 204
|
|
|
|
rtti_classname :building_window_gemst
|
|
|
|
end
|
|
|
|
class BuildingWindowGlassst < BuildingWindowst
|
|
sizeof 204
|
|
|
|
rtti_classname :building_window_glassst
|
|
|
|
end
|
|
|
|
class BuildingWorkshopst < BuildingActual
|
|
sizeof 284
|
|
|
|
rtti_classname :building_workshopst
|
|
|
|
field(:type, 200) {
|
|
number 16, true, nil, WorkshopType
|
|
}
|
|
field(:profile, 204) {
|
|
global :WorkshopProfile
|
|
}
|
|
field(:give_to_pile, 224) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingStockpilest
|
|
}
|
|
}
|
|
}
|
|
field(:take_from_pile, 236) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingStockpilest
|
|
}
|
|
}
|
|
}
|
|
field(:unk14, 248) {
|
|
stl_vector
|
|
}
|
|
field(:unk15, 260) {
|
|
stl_vector
|
|
}
|
|
field(:machine, 272) {
|
|
global :MachineInfo
|
|
}
|
|
field(:custom_type, 280) {
|
|
number 32, true
|
|
}
|
|
def custom_type_tg ; df.world.raws.buildings.all[custom_type] ; end
|
|
end
|
|
|
|
class Burrow < MemHack::Compound
|
|
sizeof 64
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:name, 4) {
|
|
stl_string
|
|
}
|
|
field(:tile, 8) {
|
|
number 8, false
|
|
}
|
|
field(:fg_color, 10) {
|
|
number 16, true
|
|
}
|
|
field(:bg_color, 12) {
|
|
number 16, true
|
|
}
|
|
field(:block_x, 16) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:block_y, 28) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:block_z, 40) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:units, 52) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def units_tg ; units.map { |i| df.world.units.all[i] } ; end
|
|
end
|
|
|
|
class CaravanState < MemHack::Compound
|
|
sizeof 8396
|
|
|
|
field(:anon_1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:trade_state, 8) {
|
|
number 8, false
|
|
}
|
|
field(:depot_notified, 9) {
|
|
number 8, false
|
|
}
|
|
field(:time_remaining, 10) {
|
|
number 16, true
|
|
}
|
|
field(:entity, 12) {
|
|
number 32, true
|
|
}
|
|
def entity_tg ; df.world.entities.all[entity] ; end
|
|
field(:activity_stats, 16) {
|
|
global :EntityActivityStatistics
|
|
}
|
|
field(:flags, 8336) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 8340) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 8344) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 8348) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 8352) {
|
|
number 32, true
|
|
}
|
|
field(:animals, 8356) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def animals_tg ; animals.map { |i| df.world.units.all[i] } ; end
|
|
field(:anon_7, 8368) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:anon_8, 8372) {
|
|
pointer {
|
|
compound(:CaravanState_TAnon8) {
|
|
sizeof 16
|
|
|
|
field(:unk_0, 0) {
|
|
pointer {
|
|
compound(:CaravanState_TAnon8_TUnk0) {
|
|
sizeof 72
|
|
|
|
field(:unk_0, 0) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_10, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_20, 24) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_30, 36) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_40, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_50, 60) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_4, 4) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:goods, 8376) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def goods_tg ; goods.map { |i| df.world.items.all[i] } ; end
|
|
field(:anon_9, 8388) {
|
|
number 32, true
|
|
}
|
|
field(:anon_10, 8392) {
|
|
pointer {
|
|
}
|
|
}
|
|
end
|
|
|
|
class CasteBodyInfo < MemHack::Compound
|
|
sizeof 160
|
|
|
|
field(:body_parts, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BodyPartRaw
|
|
}
|
|
}
|
|
}
|
|
field(:attacks, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:interactions, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:extra_butcher_objects, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk8, 48) {
|
|
number 32, true
|
|
}
|
|
field(:layer_part, 52) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:layer_idx, 64) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk10, 76) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:layer_nonsolid, 88) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:nonsolid_layers, 100) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_1, 112) {
|
|
number 32, true
|
|
}
|
|
field(:materials, 116) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:unk15a, 140) {
|
|
number 32, true
|
|
}
|
|
field(:unk15b, 144) {
|
|
number 32, true
|
|
}
|
|
field(:unk15c, 148) {
|
|
number 32, true
|
|
}
|
|
field(:unk15d, 152) {
|
|
number 32, true
|
|
}
|
|
field(:clothing_items, 156) {
|
|
pointer {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CasteClothingItem
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class CasteClothingItem < MemHack::Compound
|
|
sizeof 68
|
|
|
|
field(:body_part_id, 0) {
|
|
number 16, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 32, true
|
|
}
|
|
field(:item, 8) {
|
|
static_array(3, 4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
field(:unk_14, 20) {
|
|
static_array(3, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:size, 32) {
|
|
static_array(3, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:permit, 44) {
|
|
static_array(3, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_38, 56) {
|
|
static_array(3, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class CasteRaw < MemHack::Compound
|
|
sizeof 5628
|
|
|
|
field(:caste_id, 0) {
|
|
stl_string
|
|
}
|
|
field(:caste_name, 4) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:vermin_bite_txt, 16) {
|
|
stl_string
|
|
}
|
|
field(:gnawer_txt, 20) {
|
|
stl_string
|
|
}
|
|
field(:baby_name, 24) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:child_name, 32) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:itemcorpse_str, 40) {
|
|
static_array(5, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:remains, 60) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:description, 68) {
|
|
stl_string
|
|
}
|
|
field(:mannerisms, 72) {
|
|
static_array(17, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:caste_tile, 140) {
|
|
number 8, false
|
|
}
|
|
field(:caste_soldier_tile, 141) {
|
|
number 8, false
|
|
}
|
|
field(:caste_alttile, 142) {
|
|
number 8, false
|
|
}
|
|
field(:caste_soldier_alttile, 143) {
|
|
number 8, false
|
|
}
|
|
field(:caste_glowtile, 144) {
|
|
number 8, false
|
|
}
|
|
field(:homeotherm, 146) {
|
|
number 16, false
|
|
}
|
|
field(:unk1_1, 148) {
|
|
number 16, true
|
|
}
|
|
field(:unk1_2, 150) {
|
|
number 16, true
|
|
}
|
|
field(:fixed_temp, 152) {
|
|
number 16, false
|
|
}
|
|
field(:caste_color, 154) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:misc, 160) {
|
|
compound(:CasteRaw_TMisc) {
|
|
field(:litter_size_min, 0) {
|
|
number 16, true
|
|
}
|
|
field(:litter_size_max, 2) {
|
|
number 16, true
|
|
}
|
|
field(:penetratepower, 4) {
|
|
number 16, true
|
|
}
|
|
field(:vermin_bite_chance, 6) {
|
|
number 16, true
|
|
}
|
|
field(:grasstrample, 8) {
|
|
number 16, true
|
|
}
|
|
field(:buildingdestroyer, 10) {
|
|
number 16, true
|
|
}
|
|
field(:itemcorpse_itemtype, 12) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:itemcorpse_itemsubtype, 14) {
|
|
number 16, true
|
|
}
|
|
field(:itemcorpse_materialtype, 16) {
|
|
number 16, true
|
|
}
|
|
field(:itemcorpse_materialindex, 18) {
|
|
number 16, true
|
|
}
|
|
field(:itemcorpse_quality, 20) {
|
|
number 16, true
|
|
}
|
|
field(:remains_color, 22) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:difficulty, 28) {
|
|
number 16, true
|
|
}
|
|
field(:caste_glowcolor, 30) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:beach_frequency, 36) {
|
|
number 16, true
|
|
}
|
|
field(:clutch_size_min, 38) {
|
|
number 16, true
|
|
}
|
|
field(:clutch_size_max, 40) {
|
|
number 16, true
|
|
}
|
|
field(:speed, 44) {
|
|
number 32, true
|
|
}
|
|
field(:modvalue, 48) {
|
|
number 32, true
|
|
}
|
|
field(:petvalue, 52) {
|
|
number 32, true
|
|
}
|
|
field(:milkable, 56) {
|
|
number 32, true
|
|
}
|
|
field(:viewrange, 60) {
|
|
number 32, true
|
|
}
|
|
field(:maxage_min, 64) {
|
|
number 32, true
|
|
}
|
|
field(:maxage_max, 68) {
|
|
number 32, true
|
|
}
|
|
field(:baby_age, 72) {
|
|
number 32, true
|
|
}
|
|
field(:child_age, 76) {
|
|
number 32, true
|
|
}
|
|
field(:swim_speed, 80) {
|
|
number 32, true
|
|
}
|
|
field(:trade_capacity, 84) {
|
|
number 32, true
|
|
}
|
|
field(:unk4, 88) {
|
|
number 32, true
|
|
}
|
|
field(:pop_ratio, 92) {
|
|
number 32, true
|
|
}
|
|
field(:adult_size, 96) {
|
|
number 32, true
|
|
}
|
|
field(:unk5, 100) {
|
|
static_array(4, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:attack_trigger, 116) {
|
|
static_array(3, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:egg_size, 128) {
|
|
number 32, true
|
|
}
|
|
field(:grazer, 132) {
|
|
number 32, true
|
|
}
|
|
field(:petvalue_divisor, 136) {
|
|
number 32, true
|
|
}
|
|
field(:prone_to_rage, 140) {
|
|
number 32, true
|
|
}
|
|
field(:unk6, 144) {
|
|
static_array(29, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:personality, 420) {
|
|
compound(:CasteRaw_TPersonality) {
|
|
field(:a, 0) {
|
|
static_array(30, 2, PersonalityFacetType) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:b, 60) {
|
|
static_array(30, 2, PersonalityFacetType) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:c, 120) {
|
|
static_array(30, 2, PersonalityFacetType) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:flags, 600) {
|
|
df_flagarray(CasteRawFlags)
|
|
}
|
|
field(:index, 608) {
|
|
number 32, true
|
|
}
|
|
field(:body_info, 612) {
|
|
global :CasteBodyInfo
|
|
}
|
|
field(:caste_speech_1, 772) {
|
|
stl_vector
|
|
}
|
|
field(:caste_speech_2, 784) {
|
|
stl_vector
|
|
}
|
|
field(:skill_rates, 796) {
|
|
static_array(4, 464) {
|
|
static_array(116, 4, JobSkill) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:attributes, 2652) {
|
|
compound(:CasteRaw_TAttributes) {
|
|
field(:phys_att_range, 0) {
|
|
static_array(6, 28, PhysicalAttributeType) {
|
|
static_array(7, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:ment_att_range, 168) {
|
|
static_array(13, 28, MentalAttributeType) {
|
|
static_array(7, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:phys_att_rates, 532) {
|
|
static_array(6, 16, PhysicalAttributeType) {
|
|
static_array(4, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:ment_att_rates, 628) {
|
|
static_array(13, 16, MentalAttributeType) {
|
|
static_array(4, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:phys_att_cap_perc, 836) {
|
|
static_array(6, 4, PhysicalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:ment_att_cap_perc, 860) {
|
|
static_array(13, 4, MentalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:gender, 3564) {
|
|
number 8, false
|
|
}
|
|
field(:body_size_1, 3568) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:body_size_2, 3580) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:body_appearance_modifiers, 3592) {
|
|
stl_vector
|
|
}
|
|
field(:tissue_appearance_modifiers, 3604) {
|
|
stl_vector
|
|
}
|
|
field(:unk_1184, 3616) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_1194, 3628) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_11a4, 3640) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_11b4, 3652) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_11c4, 3664) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_11d4, 3676) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:color_modifiers, 3688) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ColorModifierRaw
|
|
}
|
|
}
|
|
}
|
|
field(:unk_11f4, 3700) {
|
|
stl_vector
|
|
}
|
|
field(:unk_1204, 3712) {
|
|
stl_vector
|
|
}
|
|
field(:unk16a, 3724) {
|
|
static_array(4, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:unk16b, 3772) {
|
|
static_array(4, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:unk18, 3820) {
|
|
static_array(2, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:natural_skill_id, 3828) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:natural_skill_exp, 3840) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:natural_skill_lvl, 3852) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:caste_profession_name, 3864) {
|
|
compound(:CasteRaw_TCasteProfessionName) {
|
|
field(:singular, 0) {
|
|
static_array(106, 4, Profession) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:plural, 424) {
|
|
static_array(106, 4, Profession) {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:extracts, 4712) {
|
|
compound(:CasteRaw_TExtracts) {
|
|
field(:extract_mat, 0) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:extract_matidx, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:extract_str, 24) {
|
|
static_array(3, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:milkable_mat, 60) {
|
|
number 16, true
|
|
}
|
|
field(:milkable_matidx, 64) {
|
|
number 32, true
|
|
}
|
|
field(:milkable_str, 68) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:webber_mat, 80) {
|
|
number 16, true
|
|
}
|
|
field(:webber_matidx, 84) {
|
|
number 32, true
|
|
}
|
|
field(:webber_str, 88) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:vermin_bite_mat, 100) {
|
|
number 16, true
|
|
}
|
|
field(:vermin_bite_matidx, 104) {
|
|
number 32, true
|
|
}
|
|
field(:vermin_bite_chance, 108) {
|
|
number 16, true
|
|
}
|
|
field(:vermin_bite_str, 112) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:tendons_mat, 124) {
|
|
number 16, true
|
|
}
|
|
field(:tendons_matidx, 128) {
|
|
number 32, true
|
|
}
|
|
field(:tendons_str, 132) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:tendons_heal, 144) {
|
|
number 32, true
|
|
}
|
|
field(:ligaments_mat, 148) {
|
|
number 16, true
|
|
}
|
|
field(:ligaments_matidx, 152) {
|
|
number 32, true
|
|
}
|
|
field(:ligaments_str, 156) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:ligaments_heal, 168) {
|
|
number 32, true
|
|
}
|
|
field(:blood_state, 172) {
|
|
number 16, true
|
|
}
|
|
field(:blood_mat, 174) {
|
|
number 16, true
|
|
}
|
|
field(:blood_matidx, 176) {
|
|
number 32, true
|
|
}
|
|
field(:blood_str, 180) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:pus_state, 192) {
|
|
number 16, true
|
|
}
|
|
field(:pus_mat, 194) {
|
|
number 16, true
|
|
}
|
|
field(:pus_matidx, 196) {
|
|
number 32, true
|
|
}
|
|
field(:pus_str, 200) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:egg_material_mattype, 212) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:egg_material_matindex, 224) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:egg_material_str, 236) {
|
|
static_array(3, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:lays_unusual_eggs_itemtype, 272) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:lays_unusual_eggs_itemsubtype, 284) {
|
|
stl_vector
|
|
}
|
|
field(:lays_unusual_eggs_mattype, 296) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:lays_unusual_eggs_matindex, 308) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:lays_unusual_eggs_str, 320) {
|
|
static_array(5, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk22, 5092) {
|
|
stl_vector
|
|
}
|
|
field(:creature_class, 5104) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:unknown2, 5116) {
|
|
compound(:CasteRaw_TUnknown2) {
|
|
field(:unk23a, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk23b, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk23c, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_1, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_2, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_3, 60) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_4, 72) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk24_flags, 84) {
|
|
df_flagarray
|
|
}
|
|
field(:unk25_flags, 92) {
|
|
df_flagarray
|
|
}
|
|
field(:unk26, 100) {
|
|
static_array(33, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:materials, 232) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:unk_2f20, 256) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_2f30, 268) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:unk_2f40, 280) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_2f50, 292) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:mat_type, 304) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 308) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:habit_num, 5428) {
|
|
static_array(2, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:habit, 5436) {
|
|
static_array(2, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:lair, 5460) {
|
|
static_array(2, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:lair_characteristic, 5484) {
|
|
static_array(2, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:lair_hunter_speech, 5508) {
|
|
static_array(2, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:unk29, 5532) {
|
|
static_array(2, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:specific_food, 5556) {
|
|
static_array(2, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:sound, 5580) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:sound_alert, 5592) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:sound_peaceful_intermittent, 5604) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_1, 5616) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class CaveColumnLink < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:item, 0) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:prev, 4) {
|
|
pointer {
|
|
global :CaveColumnLink
|
|
}
|
|
}
|
|
field(:next, 8) {
|
|
pointer {
|
|
global :CaveColumnLink
|
|
}
|
|
}
|
|
end
|
|
|
|
class CieAddTagMask1 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:EXTRAVISION, 0) { bit 0 }
|
|
field(:OPPOSED_TO_LIFE, 0) { bit 1 }
|
|
field(:NOT_LIVING, 0) { bit 2 }
|
|
field(:NOEXERT, 0) { bit 3 }
|
|
field(:NOPAIN, 0) { bit 4 }
|
|
field(:NOBREATHE, 0) { bit 5 }
|
|
field(:HAS_BLOOD, 0) { bit 6 }
|
|
field(:NOSTUN, 0) { bit 7 }
|
|
field(:NONAUSEA, 0) { bit 8 }
|
|
field(:NO_DIZZINESS, 0) { bit 9 }
|
|
field(:NO_FEVERS, 0) { bit 10 }
|
|
field(:TRANCES, 0) { bit 11 }
|
|
field(:NOEMOTION, 0) { bit 12 }
|
|
field(:LIKES_FIGHTING, 0) { bit 13 }
|
|
field(:PARALYZEIMMUNE, 0) { bit 14 }
|
|
field(:NOFEAR, 0) { bit 15 }
|
|
field(:NO_EAT, 0) { bit 16 }
|
|
field(:NO_DRINK, 0) { bit 17 }
|
|
field(:NO_SLEEP, 0) { bit 18 }
|
|
field(:MISCHIEVOUS, 0) { bit 19 }
|
|
field(:NO_PHYS_ATT_GAIN, 0) { bit 20 }
|
|
field(:NO_PHYS_ATT_RUST, 0) { bit 21 }
|
|
field(:NOTHOUGHT, 0) { bit 22 }
|
|
field(:NO_THOUGHT_CENTER_FOR_MOVEMENT, 0) { bit 23 }
|
|
field(:CAN_SPEAK, 0) { bit 24 }
|
|
field(:CAN_LEARN, 0) { bit 25 }
|
|
field(:UTTERANCES, 0) { bit 26 }
|
|
field(:CRAZED, 0) { bit 27 }
|
|
field(:BLOODSUCKER, 0) { bit 28 }
|
|
field(:NO_CONNECTIONS_FOR_MOVEMENT, 0) { bit 29 }
|
|
field(:SUPERNATURAL, 0) { bit 30 }
|
|
end
|
|
|
|
class CieAddTagMask2 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:NO_AGING, 0) { bit 0 }
|
|
field(:MORTAL, 0) { bit 1 }
|
|
field(:STERILE, 0) { bit 2 }
|
|
field(:FIT_FOR_ANIMATION, 0) { bit 3 }
|
|
field(:FIT_FOR_RESURRECTION, 0) { bit 4 }
|
|
end
|
|
|
|
class ColorModifierRaw < MemHack::Compound
|
|
sizeof 104
|
|
|
|
field(:color_indexes, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def color_indexes_tg ; color_indexes.map { |i| df.world.raws.language.colors[i] } ; end
|
|
field(:unk2, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk3, 24) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk4, 36) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk5, 48) {
|
|
number 16, true
|
|
}
|
|
field(:start_date, 52) {
|
|
number 32, true
|
|
}
|
|
field(:end_date, 56) {
|
|
number 32, true
|
|
}
|
|
field(:unk6, 60) {
|
|
number 32, true
|
|
}
|
|
field(:part, 64) {
|
|
stl_string
|
|
}
|
|
field(:unk_6c, 68) {
|
|
number 16, true
|
|
}
|
|
field(:unk_6e, 70) {
|
|
number 16, true
|
|
}
|
|
field(:unk_70, 72) {
|
|
number 32, true
|
|
}
|
|
field(:unk_74, 76) {
|
|
number 32, true
|
|
}
|
|
field(:unk_78, 80) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk_88, 92) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class Construction < MemHack::Compound
|
|
sizeof 20
|
|
|
|
field(:pos, 0) {
|
|
global :Coord
|
|
}
|
|
field(:item_type, 6) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 8) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 10) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 12) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 16) {
|
|
global :ConstructionFlags
|
|
}
|
|
field(:original_tile, 18) {
|
|
number 16, true, nil, Tiletype
|
|
}
|
|
end
|
|
|
|
class ConstructionFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 8, false
|
|
}
|
|
field(:top_of_wall, 0) { bit 1 }
|
|
end
|
|
|
|
class Contaminant < MemHack::Compound
|
|
sizeof 24
|
|
|
|
field(:mat_type, 0) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 4) {
|
|
number 32, true
|
|
}
|
|
field(:mat_state, 8) {
|
|
number 16, true, nil, MatterState
|
|
}
|
|
field(:temperature, 10) {
|
|
number 16, false
|
|
}
|
|
field(:temperature_fraction, 12) {
|
|
number 16, false
|
|
}
|
|
field(:size, 16) {
|
|
number 32, true
|
|
}
|
|
field(:unk, 20) {
|
|
number 16, true
|
|
}
|
|
field(:flags, 22) {
|
|
number 16, false
|
|
}
|
|
end
|
|
|
|
class Coord < MemHack::Compound
|
|
sizeof 6
|
|
|
|
field(:x, 0) {
|
|
number 16, true, -30000
|
|
}
|
|
field(:y, 2) {
|
|
number 16, true, -30000
|
|
}
|
|
field(:z, 4) {
|
|
number 16, true, -30000
|
|
}
|
|
end
|
|
|
|
class Coord2d < MemHack::Compound
|
|
sizeof 4
|
|
|
|
field(:x, 0) {
|
|
number 16, true, -30000
|
|
}
|
|
field(:y, 2) {
|
|
number 16, true, -30000
|
|
}
|
|
end
|
|
|
|
class Coord2dPath < MemHack::Compound
|
|
sizeof 24
|
|
|
|
field(:x, 0) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:y, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class CoordPath < MemHack::Compound
|
|
sizeof 36
|
|
|
|
field(:x, 0) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:y, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:z, 24) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffect < MemHack::Compound
|
|
sizeof 92
|
|
|
|
rtti_classname :creature_interaction_effectst
|
|
|
|
field(:flags, 4) {
|
|
global :CreatureInteractionEffectFlags
|
|
}
|
|
field(:prob, 8) {
|
|
number 32, true
|
|
}
|
|
field(:start, 12) {
|
|
number 32, true
|
|
}
|
|
field(:peak, 16) {
|
|
number 32, true
|
|
}
|
|
field(:end, 20) {
|
|
number 32, true
|
|
}
|
|
field(:syn_id, 24) {
|
|
number 32, true
|
|
}
|
|
def syn_tg ; df.world.raws.syndromes.all[syn_id] ; end
|
|
field(:id, 28) {
|
|
number 32, true
|
|
}
|
|
field(:syn_index, 32) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 40) {
|
|
number 32, true
|
|
}
|
|
field(:counter_trigger, 44) {
|
|
compound(:CreatureInteractionEffect_TCounterTrigger) {
|
|
field(:counter, 0) {
|
|
stl_vector(4) {
|
|
number 32, true, nil, MiscTraitType
|
|
}
|
|
}
|
|
field(:minval, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:maxval, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:required, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
def getType()
|
|
CreatureInteractionEffectType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def clone()
|
|
ptr = DFHack.vmethod_call(self, 4)
|
|
class << self
|
|
global :CreatureInteractionEffect
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getVector1()
|
|
ptr = DFHack.vmethod_call(self, 24)
|
|
class << self
|
|
stl_vector
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getVector2()
|
|
ptr = DFHack.vmethod_call(self, 28)
|
|
class << self
|
|
stl_vector
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getVector3()
|
|
ptr = DFHack.vmethod_call(self, 32)
|
|
class << self
|
|
stl_vector
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def checkAddFlag1(arg0)
|
|
val = DFHack.vmethod_call(self, 36, arg0)
|
|
(val & 1) != 0
|
|
end
|
|
def setBodyMatInteractionName(arg0)
|
|
DFHack.vmethod_call(self, 40, arg0) ; nil
|
|
end
|
|
def parseSynAcquireType(type)
|
|
DFHack.vmethod_call(self, 44, type) ; nil
|
|
end
|
|
def setBodyTransform(race, caste)
|
|
DFHack.vmethod_call(self, 48, race, caste) ; nil
|
|
end
|
|
def checkMoonPhase(arg0, arg1, arg2)
|
|
DFHack.vmethod_call(self, 52, arg0, arg1, arg2) ; nil
|
|
end
|
|
def checkCounter(arg0, arg1, arg2, arg3)
|
|
DFHack.vmethod_call(self, 56, arg0, arg1, arg2, arg3) ; nil
|
|
end
|
|
end
|
|
|
|
class CreatureInteractionEffectAddSimpleFlagst < CreatureInteractionEffect
|
|
sizeof 100
|
|
|
|
rtti_classname :creature_interaction_effect_add_simple_flagst
|
|
|
|
field(:tags1, 92) {
|
|
global :CieAddTagMask1
|
|
}
|
|
field(:tags2, 96) {
|
|
global :CieAddTagMask2
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectBleedingst < CreatureInteractionEffect
|
|
sizeof 132
|
|
|
|
rtti_classname :creature_interaction_effect_bleedingst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
field(:target, 96) {
|
|
global :CreatureInteractionEffectTarget
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectBlistersst < CreatureInteractionEffect
|
|
sizeof 132
|
|
|
|
rtti_classname :creature_interaction_effect_blistersst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
field(:target, 96) {
|
|
global :CreatureInteractionEffectTarget
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectBodyMatInteractionst < CreatureInteractionEffect
|
|
sizeof 112
|
|
|
|
rtti_classname :creature_interaction_effect_body_mat_interactionst
|
|
|
|
field(:unk_6c, 92) {
|
|
stl_string
|
|
}
|
|
field(:unk_88, 96) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8c, 100) {
|
|
number 32, true
|
|
}
|
|
field(:unk_90, 104) {
|
|
number 32, true
|
|
}
|
|
field(:unk_94, 108) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectBodyTransformationst < CreatureInteractionEffect
|
|
sizeof 112
|
|
|
|
rtti_classname :creature_interaction_effect_body_transformationst
|
|
|
|
field(:unk_6c, 92) {
|
|
number 32, true
|
|
}
|
|
field(:race_str, 96) {
|
|
stl_string
|
|
}
|
|
field(:caste_str, 100) {
|
|
stl_string
|
|
}
|
|
field(:race, 104) {
|
|
number 32, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:caste, 108) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectBpAppearanceModifierst < CreatureInteractionEffect
|
|
sizeof 136
|
|
|
|
rtti_classname :creature_interaction_effect_bp_appearance_modifierst
|
|
|
|
field(:unk_6c, 92) {
|
|
number 16, true
|
|
}
|
|
field(:value, 96) {
|
|
number 32, true
|
|
}
|
|
field(:target, 100) {
|
|
global :CreatureInteractionEffectTarget
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectBruisingst < CreatureInteractionEffect
|
|
sizeof 132
|
|
|
|
rtti_classname :creature_interaction_effect_bruisingst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
field(:target, 96) {
|
|
global :CreatureInteractionEffectTarget
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectCanDoInteractionst < CreatureInteractionEffect
|
|
sizeof 288
|
|
|
|
rtti_classname :creature_interaction_effect_can_do_interactionst
|
|
|
|
field(:unk_6c, 92) {
|
|
stl_vector
|
|
}
|
|
field(:unk_7c, 104) {
|
|
stl_vector
|
|
}
|
|
field(:unk_8c, 116) {
|
|
stl_string
|
|
}
|
|
field(:unk_a8, 120) {
|
|
stl_string
|
|
}
|
|
field(:unk_c4, 124) {
|
|
stl_string
|
|
}
|
|
field(:unk_e0, 128) {
|
|
number 16, true
|
|
}
|
|
field(:unk_e2, 130) {
|
|
}
|
|
field(:unk_e4, 132) {
|
|
stl_string
|
|
}
|
|
field(:unk_100, 136) {
|
|
stl_string
|
|
}
|
|
field(:unk_11c, 140) {
|
|
stl_string
|
|
}
|
|
field(:unk_138, 144) {
|
|
stl_string
|
|
}
|
|
field(:unk_154, 148) {
|
|
stl_string
|
|
}
|
|
field(:unk_170, 152) {
|
|
stl_string
|
|
}
|
|
field(:unk_18c, 156) {
|
|
stl_string
|
|
}
|
|
field(:unk_1a8, 160) {
|
|
stl_string
|
|
}
|
|
field(:unk_1c4, 164) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1c8, 168) {
|
|
stl_vector
|
|
}
|
|
field(:unk_1d8, 180) {
|
|
stl_vector
|
|
}
|
|
field(:unk_1e8, 192) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1ec, 196) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk_1fc, 208) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_20c, 220) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_21c, 232) {
|
|
stl_vector
|
|
}
|
|
field(:unk_22c, 244) {
|
|
stl_vector
|
|
}
|
|
field(:unk_23c, 256) {
|
|
stl_vector
|
|
}
|
|
field(:unk_24c, 268) {
|
|
stl_vector
|
|
}
|
|
field(:unk_25c, 280) {
|
|
stl_string
|
|
}
|
|
field(:unk_278, 284) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectCoughBloodst < CreatureInteractionEffect
|
|
sizeof 96
|
|
|
|
rtti_classname :creature_interaction_effect_cough_bloodst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectDisplayNamest < CreatureInteractionEffect
|
|
sizeof 108
|
|
|
|
rtti_classname :creature_interaction_effect_display_namest
|
|
|
|
field(:name, 92) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 96) {
|
|
stl_string
|
|
}
|
|
field(:name_adj, 100) {
|
|
stl_string
|
|
}
|
|
field(:anon_1, 104) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectDisplaySymbolst < CreatureInteractionEffect
|
|
sizeof 100
|
|
|
|
rtti_classname :creature_interaction_effect_display_symbolst
|
|
|
|
field(:unk_6c, 92) {
|
|
number 32, true
|
|
}
|
|
field(:unk_70, 96) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectDizzinessst < CreatureInteractionEffect
|
|
sizeof 96
|
|
|
|
rtti_classname :creature_interaction_effect_dizzinessst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectDrowsinessst < CreatureInteractionEffect
|
|
sizeof 96
|
|
|
|
rtti_classname :creature_interaction_effect_drowsinessst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectFeverst < CreatureInteractionEffect
|
|
sizeof 96
|
|
|
|
rtti_classname :creature_interaction_effect_feverst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:SIZE_DELAYS, 0) { bit 0 }
|
|
field(:SIZE_DILUTES, 0) { bit 1 }
|
|
field(:VASCULAR_ONLY, 0) { bit 2 }
|
|
field(:MUSCULAR_ONLY, 0) { bit 3 }
|
|
field(:RESISTABLE, 0) { bit 4 }
|
|
field(:LOCALIZED, 0) { bit 5 }
|
|
end
|
|
|
|
class CreatureInteractionEffectFlashSymbolst < CreatureInteractionEffect
|
|
sizeof 108
|
|
|
|
rtti_classname :creature_interaction_effect_flash_symbolst
|
|
|
|
field(:sym_color, 92) {
|
|
number 32, true
|
|
}
|
|
field(:period, 96) {
|
|
number 32, true
|
|
}
|
|
field(:time, 100) {
|
|
number 32, true
|
|
}
|
|
field(:unk_78, 104) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectImpairFunctionst < CreatureInteractionEffect
|
|
sizeof 132
|
|
|
|
rtti_classname :creature_interaction_effect_impair_functionst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
field(:target, 96) {
|
|
global :CreatureInteractionEffectTarget
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectMaterialForceAdjustst < CreatureInteractionEffect
|
|
sizeof 120
|
|
|
|
rtti_classname :creature_interaction_effect_material_force_adjustst
|
|
|
|
field(:unk_6c, 92) {
|
|
stl_string
|
|
}
|
|
field(:unk_88, 96) {
|
|
stl_string
|
|
}
|
|
field(:unk_a4, 100) {
|
|
stl_string
|
|
}
|
|
field(:unk_c0, 104) {
|
|
number 16, true
|
|
}
|
|
field(:unk_c2, 106) {
|
|
}
|
|
field(:unk_c4, 108) {
|
|
number 32, true
|
|
}
|
|
field(:unk_c8, 112) {
|
|
number 32, true
|
|
}
|
|
field(:unk_cc, 116) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectMentAttChangest < CreatureInteractionEffect
|
|
sizeof 196
|
|
|
|
rtti_classname :creature_interaction_effect_ment_att_changest
|
|
|
|
field(:ment_att_perc, 92) {
|
|
static_array(13, 4, MentalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:ment_att_unk, 144) {
|
|
static_array(13, 4, MentalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectNauseast < CreatureInteractionEffect
|
|
sizeof 96
|
|
|
|
rtti_classname :creature_interaction_effect_nauseast
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectNecrosisst < CreatureInteractionEffect
|
|
sizeof 132
|
|
|
|
rtti_classname :creature_interaction_effect_necrosisst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
field(:target, 96) {
|
|
global :CreatureInteractionEffectTarget
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectNumbnessst < CreatureInteractionEffect
|
|
sizeof 132
|
|
|
|
rtti_classname :creature_interaction_effect_numbnessst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
field(:target, 96) {
|
|
global :CreatureInteractionEffectTarget
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectOozingst < CreatureInteractionEffect
|
|
sizeof 132
|
|
|
|
rtti_classname :creature_interaction_effect_oozingst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
field(:target, 96) {
|
|
global :CreatureInteractionEffectTarget
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectPainst < CreatureInteractionEffect
|
|
sizeof 132
|
|
|
|
rtti_classname :creature_interaction_effect_painst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
field(:target, 96) {
|
|
global :CreatureInteractionEffectTarget
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectParalysisst < CreatureInteractionEffect
|
|
sizeof 132
|
|
|
|
rtti_classname :creature_interaction_effect_paralysisst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
field(:target, 96) {
|
|
global :CreatureInteractionEffectTarget
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectPhysAttChangest < CreatureInteractionEffect
|
|
sizeof 140
|
|
|
|
rtti_classname :creature_interaction_effect_phys_att_changest
|
|
|
|
field(:phys_att_perc, 92) {
|
|
static_array(6, 4, PhysicalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:phys_att_unk, 116) {
|
|
static_array(6, 4, PhysicalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectRemoveSimpleFlagst < CreatureInteractionEffect
|
|
sizeof 100
|
|
|
|
rtti_classname :creature_interaction_effect_remove_simple_flagst
|
|
|
|
field(:tags1, 92) {
|
|
global :CieAddTagMask1
|
|
}
|
|
field(:tags2, 96) {
|
|
global :CieAddTagMask2
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectSkillRollAdjustst < CreatureInteractionEffect
|
|
sizeof 100
|
|
|
|
rtti_classname :creature_interaction_effect_skill_roll_adjustst
|
|
|
|
field(:unk_6c, 92) {
|
|
number 32, true
|
|
}
|
|
field(:unk_70, 96) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectSpeedChangest < CreatureInteractionEffect
|
|
sizeof 100
|
|
|
|
rtti_classname :creature_interaction_effect_speed_changest
|
|
|
|
field(:unk_6c, 92) {
|
|
number 32, true
|
|
}
|
|
field(:unk_70, 96) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectSwellingst < CreatureInteractionEffect
|
|
sizeof 132
|
|
|
|
rtti_classname :creature_interaction_effect_swellingst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
field(:target, 96) {
|
|
global :CreatureInteractionEffectTarget
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectTarget < MemHack::Compound
|
|
sizeof 36
|
|
|
|
field(:mode, 0) {
|
|
stl_vector(2) {
|
|
class ::DFHack::CreatureInteractionEffectTarget_TMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :BY_TYPE ; NUME[:BY_TYPE] = 0
|
|
ENUM[1] = :BY_TOKEN ; NUME[:BY_TOKEN] = 1
|
|
ENUM[2] = :BY_CATEGORY ; NUME[:BY_CATEGORY] = 2
|
|
end
|
|
|
|
number 16, true, nil, CreatureInteractionEffectTarget_TMode
|
|
}
|
|
}
|
|
field(:key, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:tissue, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectUnconsciousnessst < CreatureInteractionEffect
|
|
sizeof 96
|
|
|
|
rtti_classname :creature_interaction_effect_unconsciousnessst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureInteractionEffectVomitBloodst < CreatureInteractionEffect
|
|
sizeof 96
|
|
|
|
rtti_classname :creature_interaction_effect_vomit_bloodst
|
|
|
|
field(:sev, 92) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class CreatureRaw < MemHack::Compound
|
|
sizeof 8088
|
|
|
|
field(:creature_id, 0) {
|
|
stl_string
|
|
}
|
|
field(:name, 4) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:general_baby_name, 16) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:general_child_name, 24) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:creature_tile, 32) {
|
|
number 8, false
|
|
}
|
|
field(:creature_soldier_tile, 33) {
|
|
number 8, false
|
|
}
|
|
field(:alttile, 34) {
|
|
number 8, false
|
|
}
|
|
field(:soldier_alttile, 35) {
|
|
number 8, false
|
|
}
|
|
field(:glowtile, 36) {
|
|
number 8, false
|
|
}
|
|
field(:temperature1, 38) {
|
|
number 16, false
|
|
}
|
|
field(:temperature2, 40) {
|
|
number 16, false
|
|
}
|
|
field(:frequency, 42) {
|
|
number 16, true
|
|
}
|
|
field(:population_number, 44) {
|
|
static_array(2, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:cluster_number, 48) {
|
|
static_array(2, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:triggerable_group, 52) {
|
|
static_array(2, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:color, 56) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:glowcolor, 62) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:adultsize, 68) {
|
|
number 32, true
|
|
}
|
|
field(:prefstring, 72) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:sphere, 84) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:caste, 96) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CasteRaw
|
|
}
|
|
}
|
|
}
|
|
field(:pop_ratio, 108) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:flags, 120) {
|
|
df_flagarray(CreatureRawFlags)
|
|
}
|
|
field(:stuff, 128) {
|
|
}
|
|
field(:unk5, 6988) {
|
|
stl_vector
|
|
}
|
|
field(:speech1, 7000) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:speech2, 7012) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:speech3, 7024) {
|
|
stl_vector
|
|
}
|
|
field(:material, 7036) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Material
|
|
}
|
|
}
|
|
}
|
|
field(:tissue, 7048) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:profession_name, 7060) {
|
|
compound(:CreatureRaw_TProfessionName) {
|
|
field(:singular, 0) {
|
|
static_array(106, 4, Profession) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:plural, 424) {
|
|
static_array(106, 4, Profession) {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk6pa, 7908) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:unk6pb, 7912) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:unk6, 7916) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk7, 7928) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:hive_product_0, 7940) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:hive_product_1, 7952) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:hive_product_2, 7964) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:hive_product_3, 7976) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:hive_product_4, 7988) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:hive_product_5, 8000) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:hive_product_tmpstr, 8012) {
|
|
static_array(5, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk8, 8072) {
|
|
number 32, true
|
|
}
|
|
field(:raws, 8076) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class CreatureVariation < MemHack::Compound
|
|
sizeof 40
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:cv_convert_tag, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CreatureVariationConvertTag
|
|
}
|
|
}
|
|
}
|
|
field(:cv_new_tag, 16) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:cv_remove_tag, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class CreatureVariationConvertTag < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:cvct_master, 0) {
|
|
stl_string
|
|
}
|
|
field(:cvct_target, 4) {
|
|
stl_string
|
|
}
|
|
field(:cvct_replacement, 8) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class CriminalCase < MemHack::Compound
|
|
sizeof 76
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:mode, 4) {
|
|
class ::DFHack::CriminalCase_TMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :ProductionOrderViolation ; NUME[:ProductionOrderViolation] = 0
|
|
ENUM[1] = :ExportViolation ; NUME[:ExportViolation] = 1
|
|
ENUM[2] = :JobOrderViolation ; NUME[:JobOrderViolation] = 2
|
|
ENUM[3] = :ConspiracyToSlowLabor ; NUME[:ConspiracyToSlowLabor] = 3
|
|
ENUM[4] = :Murder ; NUME[:Murder] = 4
|
|
ENUM[5] = :DisorderlyBehavior ; NUME[:DisorderlyBehavior] = 5
|
|
ENUM[6] = :BuildingDestruction ; NUME[:BuildingDestruction] = 6
|
|
ENUM[7] = :Vandalism ; NUME[:Vandalism] = 7
|
|
end
|
|
|
|
number 32, true, nil, CriminalCase_TMode
|
|
}
|
|
field(:anon_1, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 16) {
|
|
number 32, true
|
|
}
|
|
field(:criminal, 20) {
|
|
number 32, true
|
|
}
|
|
def criminal_tg ; df.world.units.all[criminal] ; end
|
|
field(:convicted, 24) {
|
|
number 32, true
|
|
}
|
|
def convicted_tg ; df.world.units.all[convicted] ; end
|
|
field(:victim, 28) {
|
|
number 32, true
|
|
}
|
|
def victim_tg ; df.world.units.all[victim] ; end
|
|
field(:flags, 32) {
|
|
compound(:CriminalCase_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:sentenced, 0) { bit 0 }
|
|
field(:discovered, 0) { bit 1 }
|
|
field(:needs_trial, 0) { bit 2 }
|
|
}
|
|
}
|
|
field(:death_id, 36) {
|
|
number 32, true
|
|
}
|
|
def death_tg ; df.world.deaths.all[death_id] ; end
|
|
field(:event_year, 40) {
|
|
number 32, true
|
|
}
|
|
field(:event_time, 44) {
|
|
number 32, true
|
|
}
|
|
field(:discovered_year, 48) {
|
|
number 32, true
|
|
}
|
|
field(:discovered_time, 52) {
|
|
number 32, true
|
|
}
|
|
field(:site, 56) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:entity, 60) {
|
|
number 32, true
|
|
}
|
|
def entity_tg ; df.world.entities.all[entity] ; end
|
|
field(:anon_4, 64) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:CriminalCase_TAnon4) {
|
|
sizeof 36
|
|
|
|
field(:unk_0, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
number 32, true
|
|
}
|
|
field(:event_year, 12) {
|
|
number 32, true
|
|
}
|
|
field(:event_time, 16) {
|
|
number 32, true
|
|
}
|
|
field(:witness, 20) {
|
|
number 32, true
|
|
}
|
|
def witness_tg ; df.world.units.all[witness] ; end
|
|
field(:accuses, 24) {
|
|
number 32, true
|
|
}
|
|
def accuses_tg ; df.world.units.all[accuses] ; end
|
|
field(:report_year, 28) {
|
|
number 32, true
|
|
}
|
|
field(:report_time, 32) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class DInit < MemHack::Compound
|
|
sizeof 232
|
|
|
|
field(:flags1, 0) {
|
|
df_flagarray(DInitFlags1)
|
|
}
|
|
field(:nickname_dwarf, 8) {
|
|
number 32, true, nil, DInitNickname
|
|
}
|
|
field(:nickname_adventure, 12) {
|
|
number 32, true, nil, DInitNickname
|
|
}
|
|
field(:nickname_legends, 16) {
|
|
number 32, true, nil, DInitNickname
|
|
}
|
|
field(:nickname_dwarf2, 20) {
|
|
number 32, true, nil, DInitNickname
|
|
}
|
|
field(:unk_18, 24) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1c, 28) {
|
|
number 32, true
|
|
}
|
|
field(:sky_tile, 32) {
|
|
number 8, false
|
|
}
|
|
field(:sky_color, 34) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:chasm_tile, 40) {
|
|
number 8, false
|
|
}
|
|
field(:pillar_tile, 41) {
|
|
number 8, false
|
|
}
|
|
field(:anon_1, 42) {
|
|
}
|
|
field(:chasm_color, 102) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:wound_color, 108) {
|
|
compound(:DInit_TWoundColor) {
|
|
field(:none, 0) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:minor, 6) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:inhibited, 12) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:function_loss, 18) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:broken, 24) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:missing, 30) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:idlers, 144) {
|
|
number 16, true, nil, DInitIdlers
|
|
}
|
|
field(:show_embark_tunnel, 146) {
|
|
number 16, true, nil, DInitTunnel
|
|
}
|
|
field(:flags2, 148) {
|
|
df_flagarray(DInitFlags2)
|
|
}
|
|
field(:display_length, 156) {
|
|
number 32, true
|
|
}
|
|
field(:adventurer_z_view, 160) {
|
|
number 32, true, nil, DInitZView
|
|
}
|
|
field(:adventurer_z_view_size, 164) {
|
|
number 32, true
|
|
}
|
|
field(:flags3, 168) {
|
|
df_flagarray(DInitFlags3)
|
|
}
|
|
field(:population_cap, 176) {
|
|
number 32, true
|
|
}
|
|
field(:baby_cap_absolute, 180) {
|
|
number 32, true
|
|
}
|
|
field(:baby_cap_percent, 184) {
|
|
number 32, true
|
|
}
|
|
field(:path_cost, 188) {
|
|
static_array(4, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:embark_rect, 204) {
|
|
static_array(2, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:store_dist, 208) {
|
|
compound(:DInit_TStoreDist) {
|
|
field(:item_decrease, 0) {
|
|
number 16, true
|
|
}
|
|
field(:seed_combine, 2) {
|
|
number 16, true
|
|
}
|
|
field(:bucket_combine, 4) {
|
|
number 16, true
|
|
}
|
|
field(:barrel_combine, 6) {
|
|
number 16, true
|
|
}
|
|
field(:bin_combine, 8) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:set_labor_lists, 218) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:anon_2, 220) {
|
|
number 32, true
|
|
}
|
|
field(:flags4, 224) {
|
|
df_flagarray(DInitFlags4)
|
|
}
|
|
end
|
|
|
|
class DeathInfo < MemHack::Compound
|
|
sizeof 56
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def unk_8_tg ; unk_8.map { |i| df.world.units.all[i] } ; end
|
|
field(:victim, 20) {
|
|
number 32, true
|
|
}
|
|
def victim_tg ; df.world.units.all[victim] ; end
|
|
field(:killer, 24) {
|
|
number 32, true
|
|
}
|
|
def killer_tg ; df.world.units.all[killer] ; end
|
|
field(:crime_id, 28) {
|
|
number 32, true
|
|
}
|
|
def crime_tg ; df.world.criminal_cases.all[crime_id] ; end
|
|
field(:site, 32) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:entity, 36) {
|
|
number 32, true
|
|
}
|
|
def entity_tg ; df.world.entities.all[entity] ; end
|
|
field(:event_year, 40) {
|
|
number 32, true
|
|
}
|
|
field(:event_time, 44) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 48) {
|
|
compound(:DeathInfo_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:announced_missing, 0) { bit 0 }
|
|
field(:discovered, 0) { bit 1 }
|
|
}
|
|
}
|
|
field(:death_cause, 52) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class DescriptorColor < MemHack::Compound
|
|
sizeof 48
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:word_unk, 4) {
|
|
stl_vector
|
|
}
|
|
field(:words, 16) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def words_tg ; words.map { |i| df.world.raws.language.words[i] } ; end
|
|
field(:name, 28) {
|
|
stl_string
|
|
}
|
|
field(:unk_58, 32) {
|
|
number 16, true
|
|
}
|
|
field(:red, 36) {
|
|
float
|
|
}
|
|
field(:green, 40) {
|
|
float
|
|
}
|
|
field(:blue, 44) {
|
|
float
|
|
}
|
|
end
|
|
|
|
class DescriptorPattern < MemHack::Compound
|
|
sizeof 32
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:colors, 4) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def colors_tg ; colors.map { |i| df.world.raws.language.colors[i] } ; end
|
|
field(:pattern, 16) {
|
|
number 16, true, nil, PatternType
|
|
}
|
|
field(:cp_color, 20) {
|
|
stl_vector
|
|
}
|
|
end
|
|
|
|
class DescriptorShape < MemHack::Compound
|
|
sizeof 56
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:word_unk, 4) {
|
|
stl_vector
|
|
}
|
|
field(:words, 16) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def words_tg ; words.map { |i| df.world.raws.language.words[i] } ; end
|
|
field(:name, 28) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 32) {
|
|
stl_string
|
|
}
|
|
field(:adj, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:gems_use, 48) {
|
|
compound(:DescriptorShape_TGemsUse) {
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:noun, 0) { bit 0 }
|
|
field(:adj, 0) { bit 1 }
|
|
field(:adj_noun, 0) { bit 2 }
|
|
}
|
|
}
|
|
field(:tile, 52) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class DfhackMaterialCategory < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:plant, 0) { bit 0 }
|
|
field(:wood, 0) { bit 1 }
|
|
field(:cloth, 0) { bit 2 }
|
|
field(:silk, 0) { bit 3 }
|
|
field(:leather, 0) { bit 4 }
|
|
field(:bone, 0) { bit 5 }
|
|
field(:shell, 0) { bit 6 }
|
|
field(:wood2, 0) { bit 7 }
|
|
field(:soap, 0) { bit 8 }
|
|
field(:tooth, 0) { bit 9 }
|
|
field(:horn, 0) { bit 10 }
|
|
field(:pearl, 0) { bit 11 }
|
|
field(:yarn, 0) { bit 12 }
|
|
field(:metal, 0) { bit 13 }
|
|
field(:stone, 0) { bit 14 }
|
|
field(:sand, 0) { bit 15 }
|
|
field(:glass, 0) { bit 16 }
|
|
field(:clay, 0) { bit 17 }
|
|
end
|
|
|
|
class DipscriptInfo < MemHack::Compound
|
|
sizeof 36
|
|
|
|
field(:unk1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:script_file, 4) {
|
|
stl_string
|
|
}
|
|
field(:script_steps, 8) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unknown, 20) {
|
|
stl_vector
|
|
}
|
|
field(:code, 32) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class DoorFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 16, false
|
|
}
|
|
field(:forbidden, 0) { bit 0 }
|
|
field(:internal, 0) { bit 1 }
|
|
field(:taken_by_invaders, 0) { bit 2 }
|
|
field(:used_by_intruder, 0) { bit 3 }
|
|
field(:closed, 0) { bit 4 }
|
|
field(:operated_by_mechanisms, 0) { bit 5 }
|
|
field(:pet_passable, 0) { bit 6 }
|
|
end
|
|
|
|
class DyeInfo < MemHack::Compound
|
|
sizeof 20
|
|
|
|
field(:mat_type, 0) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 4) {
|
|
number 32, true
|
|
}
|
|
field(:dyer, 8) {
|
|
number 32, true
|
|
}
|
|
def dyer_tg ; df.world.history.figures[dyer] ; end
|
|
field(:quality, 12) {
|
|
number 16, true, nil, ItemQuality
|
|
}
|
|
field(:skill_rating, 14) {
|
|
number 16, true
|
|
}
|
|
field(:anon_1, 16) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class EffectInfo < MemHack::Compound
|
|
sizeof 28
|
|
|
|
field(:anon_1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 4) {
|
|
pointer {
|
|
global :Job
|
|
}
|
|
}
|
|
field(:type, 8) {
|
|
number 16, true
|
|
}
|
|
field(:foreground, 10) {
|
|
number 16, true
|
|
}
|
|
field(:background, 12) {
|
|
number 16, true
|
|
}
|
|
field(:bright, 14) {
|
|
number 8, false
|
|
}
|
|
field(:pos, 16) {
|
|
global :Coord
|
|
}
|
|
field(:timer, 24) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class Enabler < MemHack::Compound
|
|
sizeof 604
|
|
|
|
field(:fullscreen, 0) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:overridden_grid_sizes, 4) {
|
|
stl_deque(8) {
|
|
compound(:Enabler_TOverriddenGridSizes) {
|
|
field(:anon_1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:renderer, 44) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:calculated_fps, 48) {
|
|
number 32, true
|
|
}
|
|
field(:calculated_gfps, 52) {
|
|
number 32, true
|
|
}
|
|
field(:frame_timings, 56) {
|
|
stl_deque(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:gframe_timings, 96) {
|
|
stl_deque(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:frame_sum, 136) {
|
|
number 32, true
|
|
}
|
|
field(:gframe_sum, 140) {
|
|
number 32, true
|
|
}
|
|
field(:frame_last, 144) {
|
|
number 32, true
|
|
}
|
|
field(:gframe_last, 148) {
|
|
number 32, true
|
|
}
|
|
field(:fps, 152) {
|
|
float
|
|
}
|
|
field(:gfps, 156) {
|
|
float
|
|
}
|
|
field(:fps_per_gfps, 160) {
|
|
float
|
|
}
|
|
field(:last_tick, 164) {
|
|
number 32, false
|
|
}
|
|
field(:outstanding_frames, 168) {
|
|
float
|
|
}
|
|
field(:outstanding_gframes, 172) {
|
|
float
|
|
}
|
|
field(:async_frames, 176) {
|
|
number 32, false
|
|
}
|
|
field(:async_paused, 180) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:async_tobox, 184) {
|
|
compound(:Enabler_TAsyncTobox) {
|
|
field(:sem, 0) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:queue, 4) {
|
|
stl_deque(8) {
|
|
compound(:Enabler_TAsyncTobox_TQueue) {
|
|
field(:cmd, 0) {
|
|
class ::DFHack::Enabler_TAsyncTobox_TQueue_TCmd < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Pause ; NUME[:Pause] = 0
|
|
ENUM[1] = :Start ; NUME[:Start] = 1
|
|
ENUM[2] = :Render ; NUME[:Render] = 2
|
|
ENUM[3] = :Inc ; NUME[:Inc] = 3
|
|
ENUM[4] = :SetFps ; NUME[:SetFps] = 4
|
|
end
|
|
|
|
number 32, true, nil, Enabler_TAsyncTobox_TQueue_TCmd
|
|
}
|
|
field(:val, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:sem_fill, 44) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:async_frombox, 232) {
|
|
compound(:Enabler_TAsyncFrombox) {
|
|
field(:sem, 0) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:queue, 4) {
|
|
stl_deque(12) {
|
|
compound(:Enabler_TAsyncFrombox_TQueue) {
|
|
field(:msg, 0) {
|
|
class ::DFHack::Enabler_TAsyncFrombox_TQueue_TMsg < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Quit ; NUME[:Quit] = 0
|
|
ENUM[1] = :Complete ; NUME[:Complete] = 1
|
|
ENUM[2] = :SetFps ; NUME[:SetFps] = 2
|
|
ENUM[3] = :SetGfps ; NUME[:SetGfps] = 3
|
|
ENUM[4] = :PushResize ; NUME[:PushResize] = 4
|
|
ENUM[5] = :PopResize ; NUME[:PopResize] = 5
|
|
ENUM[6] = :ResetTextures ; NUME[:ResetTextures] = 6
|
|
end
|
|
|
|
number 32, true, nil, Enabler_TAsyncFrombox_TQueue_TMsg
|
|
}
|
|
field(:fps, 4) {
|
|
number 32, true
|
|
}
|
|
field(:x, 4) {
|
|
number 32, true
|
|
}
|
|
field(:y, 8) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:sem_fill, 44) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:async_zoom, 280) {
|
|
compound(:Enabler_TAsyncZoom) {
|
|
field(:sem, 0) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:queue, 4) {
|
|
stl_deque(4) {
|
|
class ::DFHack::Enabler_TAsyncZoom_TQueue < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :ZoomIn ; NUME[:ZoomIn] = 0
|
|
ENUM[1] = :ZoomOut ; NUME[:ZoomOut] = 1
|
|
ENUM[2] = :ZoomReset ; NUME[:ZoomReset] = 2
|
|
ENUM[3] = :ZoomFullscreen ; NUME[:ZoomFullscreen] = 3
|
|
ENUM[4] = :ZoomResetgrid ; NUME[:ZoomResetgrid] = 4
|
|
end
|
|
|
|
number 32, true, nil, Enabler_TAsyncZoom_TQueue
|
|
}
|
|
}
|
|
field(:sem_fill, 44) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:async_fromcomplete, 328) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:renderer_threadid, 332) {
|
|
number 32, false
|
|
}
|
|
field(:command_line, 336) {
|
|
stl_string
|
|
}
|
|
field(:ccolor, 340) {
|
|
static_array(16, 12) {
|
|
static_array(3, 4) {
|
|
float
|
|
}
|
|
}
|
|
}
|
|
field(:flag, 532) {
|
|
compound(:Enabler_TFlag) {
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:render, 0) { bit 0 }
|
|
field(:maxfps, 0) { bit 1 }
|
|
}
|
|
}
|
|
field(:mouse_lbut, 536) {
|
|
number 8, false
|
|
}
|
|
field(:mouse_rbut, 537) {
|
|
number 8, false
|
|
}
|
|
field(:mouse_lbut_down, 538) {
|
|
number 8, false
|
|
}
|
|
field(:mouse_rbut_down, 539) {
|
|
number 8, false
|
|
}
|
|
field(:mouse_lbut_lift, 540) {
|
|
number 8, false
|
|
}
|
|
field(:mouse_rbut_lift, 541) {
|
|
number 8, false
|
|
}
|
|
field(:tracking_on, 542) {
|
|
number 8, false
|
|
}
|
|
field(:textures, 544) {
|
|
compound(:Enabler_TTextures) {
|
|
field(:raws, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:uploaded, 12) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:gl_catalog, 16) {
|
|
number 32, false
|
|
}
|
|
field(:gl_texpos, 20) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:sync, 568) {
|
|
number 32, true
|
|
}
|
|
field(:text_system, 572) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:simticks, 584) {
|
|
compound(:Enabler_TSimticks) {
|
|
field(:sem, 0) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:value, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:gputicks, 592) {
|
|
compound(:Enabler_TGputicks) {
|
|
field(:sem, 0) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:value, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:clock, 600) {
|
|
number 32, false
|
|
}
|
|
end
|
|
|
|
class Engraving < MemHack::Compound
|
|
sizeof 44
|
|
|
|
field(:artist, 0) {
|
|
number 32, true
|
|
}
|
|
def artist_tg ; df.world.history.figures[artist] ; end
|
|
field(:masterpiece_event, 4) {
|
|
number 32, true
|
|
}
|
|
def masterpiece_event_tg ; df.world.history.events[masterpiece_event] ; end
|
|
field(:skill_rating, 8) {
|
|
number 32, true
|
|
}
|
|
field(:pos, 12) {
|
|
global :Coord
|
|
}
|
|
field(:flags, 20) {
|
|
global :EngravingFlags
|
|
}
|
|
field(:tile, 24) {
|
|
number 8, false
|
|
}
|
|
field(:art_id, 28) {
|
|
number 32, true
|
|
}
|
|
def art_tg ; df.world.art_images[art_id] ; end
|
|
field(:art_subid, 32) {
|
|
number 16, true
|
|
}
|
|
field(:quality, 34) {
|
|
number 16, true, nil, ItemQuality
|
|
}
|
|
field(:unk1, 36) {
|
|
number 32, true, -1
|
|
}
|
|
field(:unk2, 40) {
|
|
number 32, true, -1
|
|
}
|
|
end
|
|
|
|
class EngravingFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:floor, 0) { bit 0 }
|
|
field(:west, 0) { bit 1 }
|
|
field(:east, 0) { bit 2 }
|
|
field(:north, 0) { bit 3 }
|
|
field(:south, 0) { bit 4 }
|
|
field(:hidden, 0) { bit 5 }
|
|
field(:northwest, 0) { bit 6 }
|
|
field(:northeast, 0) { bit 7 }
|
|
field(:southwest, 0) { bit 8 }
|
|
field(:southeast, 0) { bit 9 }
|
|
end
|
|
|
|
class EntityActivityStatistics < MemHack::Compound
|
|
sizeof 8320
|
|
|
|
field(:food, 0) {
|
|
compound(:EntityActivityStatistics_TFood) {
|
|
field(:total, 0) {
|
|
number 32, true
|
|
}
|
|
field(:meat, 4) {
|
|
number 32, true
|
|
}
|
|
field(:fish, 8) {
|
|
number 32, true
|
|
}
|
|
field(:other, 12) {
|
|
number 32, true
|
|
}
|
|
field(:seeds, 16) {
|
|
number 32, true
|
|
}
|
|
field(:plant, 20) {
|
|
number 32, true
|
|
}
|
|
field(:drink, 24) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:anon_1, 28) {
|
|
static_array(152, 2, Profession) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_2, 332) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 334) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 336) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 338) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 340) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 342) {
|
|
number 16, true
|
|
}
|
|
field(:anon_8, 344) {
|
|
number 16, true
|
|
}
|
|
field(:anon_9, 348) {
|
|
number 32, true
|
|
}
|
|
field(:anon_10, 352) {
|
|
static_array(112, 4, ItemType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk530, 800) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:wealth, 812) {
|
|
compound(:EntityActivityStatistics_TWealth) {
|
|
field(:total, 0) {
|
|
number 32, true
|
|
}
|
|
field(:weapons, 4) {
|
|
number 32, true
|
|
}
|
|
field(:armor, 8) {
|
|
number 32, true
|
|
}
|
|
field(:furniture, 12) {
|
|
number 32, true
|
|
}
|
|
field(:other, 16) {
|
|
number 32, true
|
|
}
|
|
field(:architecture, 20) {
|
|
number 32, true
|
|
}
|
|
field(:displayed, 24) {
|
|
number 32, true
|
|
}
|
|
field(:held, 28) {
|
|
number 32, true
|
|
}
|
|
field(:imported, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 36) {
|
|
number 32, true
|
|
}
|
|
field(:exported, 40) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:anon_11, 856) {
|
|
static_array(7, 1040) {
|
|
static_array(260, 4, JobType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:anon_12, 8136) {
|
|
number 32, true
|
|
}
|
|
field(:anon_13, 8140) {
|
|
static_array(4, 20) {
|
|
static_array(5, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:anon_14, 8220) {
|
|
number 32, true
|
|
}
|
|
field(:anon_15, 8224) {
|
|
number 32, true
|
|
}
|
|
field(:anon_16, 8228) {
|
|
number 32, true
|
|
}
|
|
field(:anon_17, 8232) {
|
|
number 32, true
|
|
}
|
|
field(:anon_18, 8236) {
|
|
number 32, true
|
|
}
|
|
field(:unk2298, 8240) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:unk22a4, 8252) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:unk22b0, 8264) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:known_plants, 8276) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:anon_19, 8288) {
|
|
number 16, true
|
|
}
|
|
field(:anon_20, 8290) {
|
|
number 16, true
|
|
}
|
|
field(:anon_21, 8292) {
|
|
number 16, true
|
|
}
|
|
field(:anon_22, 8294) {
|
|
number 16, true
|
|
}
|
|
field(:anon_23, 8296) {
|
|
number 16, true
|
|
}
|
|
field(:anon_24, 8300) {
|
|
number 32, true
|
|
}
|
|
field(:unk22d8, 8304) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_25, 8316) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class EntityPopulation < MemHack::Compound
|
|
sizeof 128
|
|
|
|
field(:name, 0) {
|
|
global :LanguageName
|
|
}
|
|
field(:unk1, 60) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def unk1_tg ; unk1.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:unk2, 72) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk3, 84) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk4, 96) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPopulationUnk4
|
|
}
|
|
}
|
|
}
|
|
field(:unk5, 108) {
|
|
number 32, true
|
|
}
|
|
field(:unk6, 112) {
|
|
number 32, true
|
|
}
|
|
field(:id, 116) {
|
|
number 32, true
|
|
}
|
|
field(:unk7, 120) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:civ_id, 124) {
|
|
number 32, true
|
|
}
|
|
def civ_tg ; df.world.entities.all[civ_id] ; end
|
|
end
|
|
|
|
class EntityPopulationUnk4 < MemHack::Compound
|
|
sizeof 36
|
|
|
|
field(:anon_1, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:EntityPopulationUnk4_TAnon1) {
|
|
sizeof 12
|
|
|
|
field(:idx, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk2, 8) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_2, 12) {
|
|
stl_vector
|
|
}
|
|
field(:anon_3, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:EntityPopulationUnk4_TAnon3) {
|
|
sizeof 8
|
|
|
|
field(:idx, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk1, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class EntityPosition < MemHack::Compound
|
|
sizeof 292
|
|
|
|
field(:code, 0) {
|
|
stl_string
|
|
}
|
|
field(:id, 4) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 8) {
|
|
df_flagarray(EntityPositionFlags)
|
|
}
|
|
field(:allowed_creature, 16) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:allowed_class, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:rejected_creature, 40) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:rejected_class, 52) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:name, 64) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:name_female, 72) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:name_male, 80) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:spouse, 88) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:spouse_female, 96) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:spouse_male, 104) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:squad, 112) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:land_name, 120) {
|
|
stl_string
|
|
}
|
|
field(:squad_size, 124) {
|
|
number 16, true
|
|
}
|
|
field(:commander_id, 128) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:commander_civ, 140) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def commander_civ_tg ; commander_civ.map { |i| df.world.entities.all[i] } ; end
|
|
field(:commander_types, 152) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:land_holder, 164) {
|
|
number 16, true
|
|
}
|
|
field(:requires_population, 166) {
|
|
number 16, true
|
|
}
|
|
field(:anon_1, 168) {
|
|
number 16, true
|
|
}
|
|
field(:precedence, 172) {
|
|
number 32, true, 30001
|
|
}
|
|
field(:replaced_by, 176) {
|
|
number 32, true, -1
|
|
}
|
|
field(:number, 180) {
|
|
number 16, true, 1
|
|
}
|
|
field(:appointed_by, 184) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:appointed_by_civ, 196) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def appointed_by_civ_tg ; appointed_by_civ.map { |i| df.world.entities.all[i] } ; end
|
|
field(:succession_by_position, 208) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:responsibilities, 220) {
|
|
static_array(25, 1, EntityPositionResponsibility) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:color, 246) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:required_boxes, 252) {
|
|
number 32, true
|
|
}
|
|
field(:required_cabinets, 256) {
|
|
number 32, true
|
|
}
|
|
field(:required_racks, 260) {
|
|
number 32, true
|
|
}
|
|
field(:required_stands, 264) {
|
|
number 32, true
|
|
}
|
|
field(:required_office, 268) {
|
|
number 32, true
|
|
}
|
|
field(:required_bedroom, 272) {
|
|
number 32, true
|
|
}
|
|
field(:required_dining, 276) {
|
|
number 32, true
|
|
}
|
|
field(:required_tomb, 280) {
|
|
number 32, true
|
|
}
|
|
field(:mandate_max, 284) {
|
|
number 32, true
|
|
}
|
|
field(:demand_max, 288) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class EntityPositionAssignment < MemHack::Compound
|
|
sizeof 32
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:histfig, 4) {
|
|
number 32, true
|
|
}
|
|
def histfig_tg ; df.world.history.figures[histfig] ; end
|
|
field(:position_id, 8) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 12) {
|
|
df_flagarray
|
|
}
|
|
field(:squad_id, 20) {
|
|
number 32, true
|
|
}
|
|
def squad_tg ; df.world.squads.all[squad_id] ; end
|
|
field(:anon_1, 24) {
|
|
number 32, true, -1
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true, -1
|
|
}
|
|
end
|
|
|
|
class EntityPositionRaw < MemHack::Compound
|
|
sizeof 352
|
|
|
|
field(:code, 0) {
|
|
stl_string
|
|
}
|
|
field(:id, 4) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 8) {
|
|
df_flagarray(EntityPositionRawFlags)
|
|
}
|
|
field(:allowed_creature_str, 16) {
|
|
static_array(2, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:allowed_creature, 40) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:allowed_class, 52) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:rejected_creature_str, 64) {
|
|
static_array(2, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:rejected_creature, 88) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:rejected_class, 100) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:name, 112) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:name_female, 120) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:name_male, 128) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:spouse, 136) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:spouse_female, 144) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:spouse_male, 152) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:squad, 160) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:land_name, 168) {
|
|
stl_string
|
|
}
|
|
field(:squad_size, 172) {
|
|
number 16, true
|
|
}
|
|
field(:commander_str, 176) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:commander_id, 188) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:commander_types, 200) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:land_holder, 212) {
|
|
number 16, true
|
|
}
|
|
field(:number, 214) {
|
|
number 16, true
|
|
}
|
|
field(:requires_population, 216) {
|
|
number 16, true
|
|
}
|
|
field(:precedence, 220) {
|
|
number 32, true
|
|
}
|
|
field(:replaced_by_str, 224) {
|
|
stl_string
|
|
}
|
|
field(:replaced_by, 228) {
|
|
number 32, true
|
|
}
|
|
field(:appointed_by_str, 232) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:appointed_by, 244) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:succession_by_position_str, 256) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:succession_by_position, 268) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:responsibilities, 280) {
|
|
static_array(25, 1, EntityPositionResponsibility) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:color, 306) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:required_boxes, 312) {
|
|
number 32, true
|
|
}
|
|
field(:required_cabinets, 316) {
|
|
number 32, true
|
|
}
|
|
field(:required_racks, 320) {
|
|
number 32, true
|
|
}
|
|
field(:required_stands, 324) {
|
|
number 32, true
|
|
}
|
|
field(:required_office, 328) {
|
|
number 32, true
|
|
}
|
|
field(:required_bedroom, 332) {
|
|
number 32, true
|
|
}
|
|
field(:required_dining, 336) {
|
|
number 32, true
|
|
}
|
|
field(:required_tomb, 340) {
|
|
number 32, true
|
|
}
|
|
field(:mandate_max, 344) {
|
|
number 32, true
|
|
}
|
|
field(:demand_max, 348) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class EntityRaw < MemHack::Compound
|
|
sizeof 6592
|
|
|
|
field(:code, 0) {
|
|
stl_string
|
|
}
|
|
field(:creature_ids, 4) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def creature_tgs ; creature_ids.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:creatures, 16) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:equipment, 28) {
|
|
compound(:EntityRaw_TEquipment) {
|
|
field(:digger_id, 0) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def digger_tg ; digger_id.map { |i| df.world.raws.itemdefs.weapons[i] } ; end
|
|
field(:weapon_id, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def weapon_tg ; weapon_id.map { |i| df.world.raws.itemdefs.weapons[i] } ; end
|
|
field(:armor_id, 24) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def armor_tg ; armor_id.map { |i| df.world.raws.itemdefs.armor[i] } ; end
|
|
field(:ammo_id, 36) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def ammo_tg ; ammo_id.map { |i| df.world.raws.itemdefs.ammo[i] } ; end
|
|
field(:helm_id, 48) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def helm_tg ; helm_id.map { |i| df.world.raws.itemdefs.helms[i] } ; end
|
|
field(:gloves_id, 60) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def gloves_tg ; gloves_id.map { |i| df.world.raws.itemdefs.gloves[i] } ; end
|
|
field(:shoes_id, 72) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def shoes_tg ; shoes_id.map { |i| df.world.raws.itemdefs.shoes[i] } ; end
|
|
field(:pants_id, 84) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def pants_tg ; pants_id.map { |i| df.world.raws.itemdefs.pants[i] } ; end
|
|
field(:shield_id, 96) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def shield_tg ; shield_id.map { |i| df.world.raws.itemdefs.shields[i] } ; end
|
|
field(:trapcomp_id, 108) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def trapcomp_tg ; trapcomp_id.map { |i| df.world.raws.itemdefs.trapcomps[i] } ; end
|
|
field(:toy_id, 120) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def toy_tg ; toy_id.map { |i| df.world.raws.itemdefs.toys[i] } ; end
|
|
field(:instrument_id, 132) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def instrument_tg ; instrument_id.map { |i| df.world.raws.itemdefs.instruments[i] } ; end
|
|
field(:tool_id, 144) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def tool_tg ; tool_id.map { |i| df.world.raws.itemdefs.tools[i] } ; end
|
|
field(:siegeammo_id, 156) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def siegeammo_tg ; siegeammo_id.map { |i| df.world.raws.itemdefs.siege_ammo[i] } ; end
|
|
field(:armor_rarity, 168) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:helm_rarity, 180) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:gloves_rarity, 192) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:shoes_rarity, 204) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:pants_rarity, 216) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:digger_str, 228) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:weapon_str, 240) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:armor_str, 252) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:ammo_str, 264) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:helm_str, 276) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:gloves_str, 288) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:shoes_str, 300) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:pants_str, 312) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:shield_str, 324) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:trapcomp_str, 336) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:toy_str, 348) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:instrument_str, 360) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:siegeammo_str, 372) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:tool_str, 384) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:currency_value, 424) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:flags, 436) {
|
|
df_flagarray(EntityRawFlags)
|
|
}
|
|
field(:translation, 444) {
|
|
stl_string
|
|
}
|
|
field(:symbols, 448) {
|
|
compound(:EntityRaw_TSymbols) {
|
|
field(:symbols1, 0) {
|
|
static_array(14, 144) {
|
|
static_array(12, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:symbols2, 2016) {
|
|
static_array(14, 144) {
|
|
static_array(12, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:symbols3, 4032) {
|
|
static_array(14, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:symbols4, 4200) {
|
|
static_array(14, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:cull_symbol, 4368) {
|
|
static_array(14, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:habitat, 4984) {
|
|
compound(:EntityRaw_THabitat) {
|
|
field(:sphere_alignment, 0) {
|
|
static_array(130, 4, SphereType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:art_facet_modifier, 520) {
|
|
static_array(4, 4, ArtFacetType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:art_image_element_modifier, 536) {
|
|
static_array(5, 4, ArtImageElementType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:item_improvement_modifier, 556) {
|
|
static_array(11, 4, ImprovementType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:adventure_tier, 600) {
|
|
number 32, true
|
|
}
|
|
field(:friendly_color, 604) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:default_site_type, 612) {
|
|
number 32, true
|
|
}
|
|
field(:likes_site, 616) {
|
|
static_array(11, 1, SiteType) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:tolerates_site, 627) {
|
|
static_array(11, 1, SiteType) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:biome_support, 640) {
|
|
static_array(51, 4, BiomeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:start_biome, 844) {
|
|
static_array(51, 1, BiomeType) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:active_season, 895) {
|
|
static_array(4, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:progress_trigger, 5884) {
|
|
compound(:EntityRaw_TProgressTrigger) {
|
|
field(:population, 0) {
|
|
number 16, true
|
|
}
|
|
field(:production, 2) {
|
|
number 16, true
|
|
}
|
|
field(:trade, 4) {
|
|
number 16, true
|
|
}
|
|
field(:pop_siege, 6) {
|
|
number 16, true
|
|
}
|
|
field(:prod_siege, 8) {
|
|
number 16, true
|
|
}
|
|
field(:trade_siege, 10) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:ethic, 5896) {
|
|
static_array(22, 2, EthicType) {
|
|
number 16, true, nil, EthicResponse
|
|
}
|
|
}
|
|
field(:max_site_pop_number, 5940) {
|
|
number 32, true
|
|
}
|
|
field(:max_pop_number, 5944) {
|
|
number 32, true
|
|
}
|
|
field(:max_starting_civ_number, 5948) {
|
|
number 32, true
|
|
}
|
|
field(:religion, 5952) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:religion_sphere, 5964) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, SphereType
|
|
}
|
|
}
|
|
field(:jobs, 5976) {
|
|
compound(:EntityRaw_TJobs) {
|
|
field(:permitted_job, 0) {
|
|
static_array(106, 1, Profession) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:permitted_labor, 106) {
|
|
static_array(94, 1, UnitLabor) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:permitted_skill, 200) {
|
|
static_array(116, 1, JobSkill) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:world_construction, 316) {
|
|
static_array(4, 1, WorldConstructionType) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:positions, 6296) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPositionRaw
|
|
}
|
|
}
|
|
}
|
|
field(:variable_positions, 6308) {
|
|
static_array(25, 1, EntityPositionResponsibility) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:tissue_style, 6336) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:workshops, 6348) {
|
|
compound(:EntityRaw_TWorkshops) {
|
|
field(:permitted_building_str, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:permitted_building_id, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def permitted_building_tg ; permitted_building_id.map { |i| df.world.raws.buildings.all[i] } ; end
|
|
field(:permitted_reaction_str, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:permitted_reaction_id, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:land_holder_trigger, 6396) {
|
|
compound(:EntityRaw_TLandHolderTrigger) {
|
|
field(:num, 0) {
|
|
static_array(10, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:population, 40) {
|
|
static_array(10, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:wealth, 80) {
|
|
static_array(10, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:banditry, 6516) {
|
|
number 32, true
|
|
}
|
|
field(:unk2, 6520) {
|
|
stl_vector
|
|
}
|
|
field(:currency, 6532) {
|
|
stl_vector
|
|
}
|
|
field(:gem_shapes, 6544) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def gem_shapes_tg ; gem_shapes.map { |i| df.world.raws.language.shapes[i] } ; end
|
|
field(:stone_shapes, 6556) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def stone_shapes_tg ; stone_shapes.map { |i| df.world.raws.language.shapes[i] } ; end
|
|
field(:anon_1, 6568) {
|
|
stl_vector
|
|
}
|
|
field(:anon_2, 6580) {
|
|
stl_vector
|
|
}
|
|
end
|
|
|
|
class EntityUniform < MemHack::Compound
|
|
sizeof 268
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 16, true
|
|
}
|
|
field(:uniform_item_types, 8) {
|
|
static_array(7, 12, UniformCategory) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
}
|
|
field(:uniform_item_subtypes, 92) {
|
|
static_array(7, 12, UniformCategory) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:uniform_item_info, 176) {
|
|
static_array(7, 12, UniformCategory) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityUniformItem
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:name, 260) {
|
|
stl_string
|
|
}
|
|
field(:flags, 264) {
|
|
global :UniformFlags
|
|
}
|
|
end
|
|
|
|
class EntityUniformItem < MemHack::Compound
|
|
sizeof 32
|
|
|
|
field(:unk_0, 0) {
|
|
number 16, true
|
|
}
|
|
field(:color, 2) {
|
|
number 16, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unk_c, 12) {
|
|
number 32, true
|
|
}
|
|
field(:indiv_choice, 16) {
|
|
global :UniformIndivChoice
|
|
}
|
|
field(:mattype, 20) {
|
|
number 16, true
|
|
}
|
|
field(:matindex, 24) {
|
|
number 32, true
|
|
}
|
|
field(:material_class, 28) {
|
|
number 16, true, nil, UniformMaterialClass
|
|
}
|
|
end
|
|
|
|
class Feature < MemHack::Compound
|
|
sizeof 72
|
|
|
|
rtti_classname :featurest
|
|
|
|
field(:population, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldPopulation
|
|
}
|
|
}
|
|
}
|
|
field(:anon_1, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 20) {
|
|
number 16, true
|
|
}
|
|
field(:embark_pos, 24) {
|
|
global :Coord2dPath
|
|
}
|
|
field(:anon_3, 48) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_4, 60) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def getType()
|
|
FeatureType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 4, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 8, arg0, loadversion) ; nil
|
|
end
|
|
end
|
|
|
|
class FeatureAlteration < MemHack::Compound
|
|
sizeof 4
|
|
|
|
rtti_classname :feature_alterationst
|
|
|
|
def getType()
|
|
FeatureAlterationType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 4, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 8, arg0, loadversion) ; nil
|
|
end
|
|
end
|
|
|
|
class FeatureAlterationNewLavaFillZst < FeatureAlteration
|
|
sizeof 8
|
|
|
|
rtti_classname :feature_alteration_new_lava_fill_zst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class FeatureAlterationNewPopMaxst < FeatureAlteration
|
|
sizeof 12
|
|
|
|
rtti_classname :feature_alteration_new_pop_maxst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 8) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class FeatureCavest < Feature
|
|
sizeof 72
|
|
|
|
rtti_classname :feature_cavest
|
|
|
|
end
|
|
|
|
class FeatureDeepSpecialTubest < Feature
|
|
sizeof 72
|
|
|
|
rtti_classname :feature_deep_special_tubest
|
|
|
|
end
|
|
|
|
class FeatureDeepSurfacePortalst < Feature
|
|
sizeof 72
|
|
|
|
rtti_classname :feature_deep_surface_portalst
|
|
|
|
end
|
|
|
|
class FeatureInit < MemHack::Compound
|
|
sizeof 36
|
|
|
|
rtti_classname :feature_initst
|
|
|
|
field(:flags, 4) {
|
|
df_flagarray(FeatureInitFlags)
|
|
}
|
|
field(:anon_1, 12) {
|
|
stl_vector
|
|
}
|
|
field(:start_x, 24) {
|
|
number 16, true
|
|
}
|
|
field(:start_y, 26) {
|
|
number 16, true
|
|
}
|
|
field(:end_x, 28) {
|
|
number 16, true
|
|
}
|
|
field(:end_y, 30) {
|
|
number 16, true
|
|
}
|
|
field(:start_depth, 32) {
|
|
number 16, true
|
|
}
|
|
field(:end_depth, 34) {
|
|
number 16, true
|
|
}
|
|
def getType()
|
|
FeatureType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 4, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 8, arg0, loadversion) ; nil
|
|
end
|
|
def createFeature()
|
|
ptr = DFHack.vmethod_call(self, 12)
|
|
class << self
|
|
global :Feature
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def recreateFeature()
|
|
ptr = DFHack.vmethod_call(self, 16)
|
|
class << self
|
|
global :Feature
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def destroyFeature()
|
|
DFHack.vmethod_call(self, 20) ; nil
|
|
end
|
|
def getFeature()
|
|
ptr = DFHack.vmethod_call(self, 24)
|
|
class << self
|
|
global :Feature
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getMaterial(mat_type, mat_index)
|
|
DFHack.vmethod_call(self, 36, mat_type, mat_index) ; nil
|
|
end
|
|
def getColor(foreground, background, bright)
|
|
DFHack.vmethod_call(self, 56, foreground, background, bright) ; nil
|
|
end
|
|
def getName(name)
|
|
DFHack.vmethod_call(self, 60, name) ; nil
|
|
end
|
|
def getLayer()
|
|
val = DFHack.vmethod_call(self, 88)
|
|
end
|
|
end
|
|
|
|
class FeatureInitCavest < FeatureInit
|
|
sizeof 40
|
|
|
|
rtti_classname :feature_init_cavest
|
|
|
|
field(:feature, 36) {
|
|
pointer {
|
|
global :FeatureCavest
|
|
}
|
|
}
|
|
end
|
|
|
|
class FeatureInitDeepSpecialTubest < FeatureInit
|
|
sizeof 48
|
|
|
|
rtti_classname :feature_init_deep_special_tubest
|
|
|
|
field(:mat_type, 36) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 40) {
|
|
number 32, true
|
|
}
|
|
field(:feature, 44) {
|
|
pointer {
|
|
global :FeatureDeepSpecialTubest
|
|
}
|
|
}
|
|
end
|
|
|
|
class FeatureInitDeepSurfacePortalst < FeatureInit
|
|
sizeof 48
|
|
|
|
rtti_classname :feature_init_deep_surface_portalst
|
|
|
|
field(:mat_type, 36) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 40) {
|
|
number 32, true
|
|
}
|
|
field(:feature, 44) {
|
|
pointer {
|
|
global :FeatureDeepSurfacePortalst
|
|
}
|
|
}
|
|
end
|
|
|
|
class FeatureInitMagmaCoreFromLayerst < FeatureInit
|
|
sizeof 44
|
|
|
|
rtti_classname :feature_init_magma_core_from_layerst
|
|
|
|
field(:layer, 36) {
|
|
number 32, true
|
|
}
|
|
def layer_tg ; df.world.world_data.underground_regions[layer] ; end
|
|
field(:feature, 40) {
|
|
pointer {
|
|
global :FeatureMagmaCoreFromLayerst
|
|
}
|
|
}
|
|
end
|
|
|
|
class FeatureInitMagmaPoolst < FeatureInit
|
|
sizeof 40
|
|
|
|
rtti_classname :feature_init_magma_poolst
|
|
|
|
field(:feature, 36) {
|
|
pointer {
|
|
global :FeatureMagmaPoolst
|
|
}
|
|
}
|
|
end
|
|
|
|
class FeatureInitOutdoorRiverst < FeatureInit
|
|
sizeof 40
|
|
|
|
rtti_classname :feature_init_outdoor_riverst
|
|
|
|
field(:feature, 36) {
|
|
pointer {
|
|
global :FeatureOutdoorRiverst
|
|
}
|
|
}
|
|
end
|
|
|
|
class FeatureInitPitst < FeatureInit
|
|
sizeof 40
|
|
|
|
rtti_classname :feature_init_pitst
|
|
|
|
field(:feature, 36) {
|
|
pointer {
|
|
global :FeaturePitst
|
|
}
|
|
}
|
|
end
|
|
|
|
class FeatureInitSubterraneanFromLayerst < FeatureInit
|
|
sizeof 44
|
|
|
|
rtti_classname :feature_init_subterranean_from_layerst
|
|
|
|
field(:layer, 36) {
|
|
number 32, true
|
|
}
|
|
def layer_tg ; df.world.world_data.underground_regions[layer] ; end
|
|
field(:feature, 40) {
|
|
pointer {
|
|
global :FeatureSubterraneanFromLayerst
|
|
}
|
|
}
|
|
end
|
|
|
|
class FeatureInitUnderworldFromLayerst < FeatureInit
|
|
sizeof 52
|
|
|
|
rtti_classname :feature_init_underworld_from_layerst
|
|
|
|
field(:layer, 36) {
|
|
number 32, true
|
|
}
|
|
def layer_tg ; df.world.world_data.underground_regions[layer] ; end
|
|
field(:mat_type, 40) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 44) {
|
|
number 32, true
|
|
}
|
|
field(:feature, 48) {
|
|
pointer {
|
|
global :FeatureUnderworldFromLayerst
|
|
}
|
|
}
|
|
end
|
|
|
|
class FeatureInitVolcanost < FeatureInit
|
|
sizeof 40
|
|
|
|
rtti_classname :feature_init_volcanost
|
|
|
|
field(:feature, 36) {
|
|
pointer {
|
|
global :FeatureVolcanost
|
|
}
|
|
}
|
|
end
|
|
|
|
class FeatureMagmaCoreFromLayerst < Feature
|
|
sizeof 72
|
|
|
|
rtti_classname :feature_magma_core_from_layerst
|
|
|
|
end
|
|
|
|
class FeatureMagmaPoolst < Feature
|
|
sizeof 76
|
|
|
|
rtti_classname :feature_magma_poolst
|
|
|
|
field(:anon_1, 72) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class FeatureOutdoorRiverst < Feature
|
|
sizeof 72
|
|
|
|
rtti_classname :feature_outdoor_riverst
|
|
|
|
end
|
|
|
|
class FeaturePitst < Feature
|
|
sizeof 72
|
|
|
|
rtti_classname :feature_pitst
|
|
|
|
end
|
|
|
|
class FeatureSubterraneanFromLayerst < Feature
|
|
sizeof 72
|
|
|
|
rtti_classname :feature_subterranean_from_layerst
|
|
|
|
end
|
|
|
|
class FeatureUnderworldFromLayerst < Feature
|
|
sizeof 72
|
|
|
|
rtti_classname :feature_underworld_from_layerst
|
|
|
|
end
|
|
|
|
class FeatureVolcanost < Feature
|
|
sizeof 76
|
|
|
|
rtti_classname :feature_volcanost
|
|
|
|
field(:anon_1, 72) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class FlowInfo < MemHack::Compound
|
|
sizeof 28
|
|
|
|
field(:type, 0) {
|
|
number 16, true, nil, FlowType
|
|
}
|
|
field(:mat_type, 2) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 4) {
|
|
number 32, true
|
|
}
|
|
field(:density, 8) {
|
|
number 16, true
|
|
}
|
|
field(:x, 10) {
|
|
number 16, true
|
|
}
|
|
field(:y, 12) {
|
|
number 16, true
|
|
}
|
|
field(:z, 14) {
|
|
number 16, true
|
|
}
|
|
field(:anon_1, 16) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 18) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 20) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 22) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 24) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GateFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 16, false
|
|
}
|
|
field(:closed, 0) { bit 0 }
|
|
field(:closing, 0) { bit 1 }
|
|
field(:opening, 0) { bit 2 }
|
|
field(:collapsing, 0) { bit 3 }
|
|
field(:has_support, 0) { bit 4 }
|
|
end
|
|
|
|
class GeneralRef < MemHack::Compound
|
|
sizeof 4
|
|
|
|
rtti_classname :general_refst
|
|
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 0, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 4, arg0, loadversion) ; nil
|
|
end
|
|
def getType()
|
|
GeneralRefType.sym(DFHack.vmethod_call(self, 8))
|
|
end
|
|
def getItem()
|
|
ptr = DFHack.vmethod_call(self, 12)
|
|
class << self
|
|
global :Item
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getUnit()
|
|
ptr = DFHack.vmethod_call(self, 16)
|
|
class << self
|
|
global :Unit
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getProjectile()
|
|
ptr = DFHack.vmethod_call(self, 20)
|
|
class << self
|
|
global :Projectile
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getBuilding()
|
|
ptr = DFHack.vmethod_call(self, 24)
|
|
class << self
|
|
global :Building
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getEntity()
|
|
ptr = DFHack.vmethod_call(self, 28)
|
|
class << self
|
|
global :HistoricalEntity
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getArtifact()
|
|
ptr = DFHack.vmethod_call(self, 32)
|
|
class << self
|
|
global :ArtifactRecord
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getNemesis()
|
|
ptr = DFHack.vmethod_call(self, 36)
|
|
class << self
|
|
global :NemesisRecord
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def setID(arg0)
|
|
DFHack.vmethod_call(self, 40, arg0) ; nil
|
|
end
|
|
def getID()
|
|
val = DFHack.vmethod_call(self, 44)
|
|
end
|
|
def clone()
|
|
ptr = DFHack.vmethod_call(self, 64)
|
|
class << self
|
|
global :GeneralRef
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
end
|
|
|
|
class GeneralRefAbstractBuildingst < GeneralRef
|
|
sizeof 12
|
|
|
|
rtti_classname :general_ref_abstract_buildingst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 8) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefArtifact < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_artifactst
|
|
|
|
field(:artifact_id, 4) {
|
|
number 32, true
|
|
}
|
|
def artifact_tg ; df.world.artifacts.all[artifact_id] ; end
|
|
end
|
|
|
|
class GeneralRefBuilding < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_buildingst
|
|
|
|
field(:building_id, 4) {
|
|
number 32, true
|
|
}
|
|
def building_tg ; df.world.buildings.all[building_id] ; end
|
|
end
|
|
|
|
class GeneralRefBuildingCagedst < GeneralRefBuilding
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_building_cagedst
|
|
|
|
end
|
|
|
|
class GeneralRefBuildingChainst < GeneralRefBuilding
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_building_chainst
|
|
|
|
end
|
|
|
|
class GeneralRefBuildingCivzoneAssignedst < GeneralRefBuilding
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_building_civzone_assignedst
|
|
|
|
end
|
|
|
|
class GeneralRefBuildingDestinationst < GeneralRefBuilding
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_building_destinationst
|
|
|
|
end
|
|
|
|
class GeneralRefBuildingHolderst < GeneralRefBuilding
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_building_holderst
|
|
|
|
end
|
|
|
|
class GeneralRefBuildingNestBoxst < GeneralRefBuilding
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_building_nest_boxst
|
|
|
|
end
|
|
|
|
class GeneralRefBuildingTriggerst < GeneralRefBuilding
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_building_triggerst
|
|
|
|
end
|
|
|
|
class GeneralRefBuildingTriggertargetst < GeneralRefBuilding
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_building_triggertargetst
|
|
|
|
end
|
|
|
|
class GeneralRefBuildingUseTarget1st < GeneralRefBuilding
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_building_use_target_1st
|
|
|
|
end
|
|
|
|
class GeneralRefBuildingUseTarget2st < GeneralRefBuilding
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_building_use_target_2st
|
|
|
|
end
|
|
|
|
class GeneralRefBuildingWellTag < GeneralRefBuilding
|
|
sizeof 12
|
|
|
|
rtti_classname :general_ref_building_well_tagst
|
|
|
|
field(:unk, 8) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class GeneralRefCoinbatch < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_coinbatchst
|
|
|
|
field(:batch, 4) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefItem < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_itemst
|
|
|
|
field(:item_id, 4) {
|
|
number 32, true
|
|
}
|
|
def item_tg ; df.world.items.all[item_id] ; end
|
|
end
|
|
|
|
class GeneralRefContainedInItemst < GeneralRefItem
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_contained_in_itemst
|
|
|
|
end
|
|
|
|
class GeneralRefContainsItemst < GeneralRefItem
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_contains_itemst
|
|
|
|
end
|
|
|
|
class GeneralRefUnit < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unitst
|
|
|
|
field(:unit_id, 4) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
end
|
|
|
|
class GeneralRefContainsUnitst < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_contains_unitst
|
|
|
|
end
|
|
|
|
class GeneralRefCreaturest < GeneralRef
|
|
sizeof 24
|
|
|
|
rtti_classname :general_ref_creaturest
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefEntity < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_entityst
|
|
|
|
field(:entity_id, 4) {
|
|
number 32, true
|
|
}
|
|
def entity_tg ; df.world.entities.all[entity_id] ; end
|
|
end
|
|
|
|
class GeneralRefEntityArtImage < GeneralRef
|
|
sizeof 12
|
|
|
|
rtti_classname :general_ref_entity_art_imagest
|
|
|
|
field(:entity_id, 4) {
|
|
number 32, true
|
|
}
|
|
def entity_tg ; df.world.entities.all[entity_id] ; end
|
|
field(:unk, 8) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefEntityItemownerst < GeneralRefEntity
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_entity_itemownerst
|
|
|
|
end
|
|
|
|
class GeneralRefEntityOfferedst < GeneralRefEntity
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_entity_offeredst
|
|
|
|
end
|
|
|
|
class GeneralRefEntityPopst < GeneralRef
|
|
sizeof 20
|
|
|
|
rtti_classname :general_ref_entity_popst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 16) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefEntityStolenst < GeneralRefEntity
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_entity_stolenst
|
|
|
|
end
|
|
|
|
class GeneralRefFeatureLayerst < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_feature_layerst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefHistoricalEventst < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_historical_eventst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefHistoricalFigurest < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_historical_figurest
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefInteractionst < GeneralRef
|
|
sizeof 20
|
|
|
|
rtti_classname :general_ref_interactionst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 16) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefIsArtifactst < GeneralRefArtifact
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_is_artifactst
|
|
|
|
end
|
|
|
|
class GeneralRefNemesis < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_nemesisst
|
|
|
|
field(:nemesis_id, 4) {
|
|
number 32, true
|
|
}
|
|
def nemesis_tg ; df.world.nemesis.all[nemesis_id] ; end
|
|
end
|
|
|
|
class GeneralRefIsNemesisst < GeneralRefNemesis
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_is_nemesisst
|
|
|
|
end
|
|
|
|
class GeneralRefItemType < GeneralRef
|
|
sizeof 16
|
|
|
|
rtti_classname :general_ref_item_typest
|
|
|
|
field(:type, 4) {
|
|
number 32, true, nil, ItemType
|
|
}
|
|
field(:subtype, 8) {
|
|
number 32, true
|
|
}
|
|
field(:mat_type, 12) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 14) {
|
|
number 16, true, -1
|
|
}
|
|
end
|
|
|
|
class GeneralRefLocationst < GeneralRef
|
|
sizeof 16
|
|
|
|
rtti_classname :general_ref_locationst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 12) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefMapsquare < GeneralRef
|
|
sizeof 12
|
|
|
|
rtti_classname :general_ref_mapsquarest
|
|
|
|
field(:unk1, 4) {
|
|
number 16, true
|
|
}
|
|
field(:unk2, 6) {
|
|
number 16, true
|
|
}
|
|
field(:unk3, 8) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefProjectile < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_projectilest
|
|
|
|
field(:projectile_id, 4) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefSitest < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_sitest
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefSpherest < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_spherest
|
|
|
|
field(:anon_1, 4) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefSubregionst < GeneralRef
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_subregionst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefUnitBeateest < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_beateest
|
|
|
|
end
|
|
|
|
class GeneralRefUnitCageest < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_cageest
|
|
|
|
end
|
|
|
|
class GeneralRefUnitFoodreceiverst < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_foodreceiverst
|
|
|
|
end
|
|
|
|
class GeneralRefUnitHolderst < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_holderst
|
|
|
|
end
|
|
|
|
class GeneralRefUnitInfantst < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_infantst
|
|
|
|
end
|
|
|
|
class GeneralRefUnitItemownerst < GeneralRefUnit
|
|
sizeof 12
|
|
|
|
rtti_classname :general_ref_unit_itemownerst
|
|
|
|
field(:anon_1, 8) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class GeneralRefUnitKidnapeest < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_kidnapeest
|
|
|
|
end
|
|
|
|
class GeneralRefUnitMilkeest < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_milkeest
|
|
|
|
end
|
|
|
|
class GeneralRefUnitPatientst < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_patientst
|
|
|
|
end
|
|
|
|
class GeneralRefUnitReporteest < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_reporteest
|
|
|
|
end
|
|
|
|
class GeneralRefUnitRiderst < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_riderst
|
|
|
|
end
|
|
|
|
class GeneralRefUnitSheareest < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_sheareest
|
|
|
|
end
|
|
|
|
class GeneralRefUnitSlaughtereest < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_slaughtereest
|
|
|
|
end
|
|
|
|
class GeneralRefUnitSuckeest < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_suckeest
|
|
|
|
end
|
|
|
|
class GeneralRefUnitTradebringerst < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_tradebringerst
|
|
|
|
end
|
|
|
|
class GeneralRefUnitTraineest < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_traineest
|
|
|
|
end
|
|
|
|
class GeneralRefUnitWorkerst < GeneralRefUnit
|
|
sizeof 8
|
|
|
|
rtti_classname :general_ref_unit_workerst
|
|
|
|
end
|
|
|
|
class Graphic < MemHack::Compound
|
|
sizeof 892
|
|
|
|
field(:screenx, 0) {
|
|
number 32, true
|
|
}
|
|
field(:screeny, 4) {
|
|
number 32, true
|
|
}
|
|
field(:screenf, 8) {
|
|
number 8, false
|
|
}
|
|
field(:screenb, 9) {
|
|
number 8, false
|
|
}
|
|
field(:screenbright, 10) {
|
|
number 8, false
|
|
}
|
|
field(:screen, 12) {
|
|
pointer_ary(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:screentexpos, 16) {
|
|
pointer_ary(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:screentexpos_addcolor, 20) {
|
|
pointer_ary(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:screentexpos_grayscale, 24) {
|
|
pointer_ary(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:screentexpos_cf, 28) {
|
|
pointer_ary(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:screentexpos_cbr, 32) {
|
|
pointer_ary(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:clipx, 36) {
|
|
static_array(2, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:clipy, 44) {
|
|
static_array(2, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:tex_pos, 52) {
|
|
static_array(1, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:rect_id, 56) {
|
|
number 32, true
|
|
}
|
|
field(:print_time, 60) {
|
|
static_array(100, 8) {
|
|
number 64, true
|
|
}
|
|
}
|
|
field(:print_index, 860) {
|
|
number 32, true
|
|
}
|
|
field(:display_frames, 864) {
|
|
number 8, false
|
|
}
|
|
field(:force_full_display_count, 866) {
|
|
number 16, true
|
|
}
|
|
field(:original_rect, 868) {
|
|
number 8, false
|
|
}
|
|
field(:dimx, 872) {
|
|
number 32, true
|
|
}
|
|
field(:dimy, 876) {
|
|
number 32, true
|
|
}
|
|
field(:mouse_x, 880) {
|
|
number 32, true
|
|
}
|
|
field(:mouse_y, 884) {
|
|
number 32, true
|
|
}
|
|
field(:screen_limit, 888) {
|
|
pointer {
|
|
number 8, false
|
|
}
|
|
}
|
|
end
|
|
|
|
class HaulingRoute < MemHack::Compound
|
|
sizeof 44
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:name, 4) {
|
|
stl_string
|
|
}
|
|
field(:stops, 8) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HaulingStop
|
|
}
|
|
}
|
|
}
|
|
field(:vehicle_ids, 20) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def vehicle_tgs ; vehicle_ids.map { |i| df.world.vehicles.all[i] } ; end
|
|
field(:vehicle_stops, 32) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class HaulingStop < MemHack::Compound
|
|
sizeof 1004
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:name, 4) {
|
|
stl_string
|
|
}
|
|
field(:pos, 8) {
|
|
global :Coord
|
|
}
|
|
field(:settings, 16) {
|
|
global :StockpileSettings
|
|
}
|
|
field(:conditions, 972) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :StopDepartCondition
|
|
}
|
|
}
|
|
}
|
|
field(:stockpiles, 984) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :RouteStockpileLink
|
|
}
|
|
}
|
|
}
|
|
field(:time_waiting, 996) {
|
|
number 32, true
|
|
}
|
|
field(:cart_id, 1000) {
|
|
number 32, true
|
|
}
|
|
def cart_tg ; df.world.items.all[cart_id] ; end
|
|
end
|
|
|
|
class HealthViewBits1 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:bleeding_heavy, 0) { bit 0 }
|
|
field(:bleeding, 0) { bit 1 }
|
|
field(:pale, 0) { bit 2 }
|
|
field(:blood_loss_severe, 0) { bit 3 }
|
|
field(:faint, 0) { bit 4 }
|
|
field(:blood_loss, 0) { bit 5 }
|
|
field(:paralyzed, 0) { bit 6 }
|
|
field(:paralyzed_partially, 0) { bit 7 }
|
|
field(:sluggish, 0) { bit 8 }
|
|
field(:numb_completely, 0) { bit 9 }
|
|
field(:numb_partially, 0) { bit 10 }
|
|
field(:numb_slightly, 0) { bit 11 }
|
|
field(:fever_serious, 0) { bit 12 }
|
|
field(:fever_moderate, 0) { bit 13 }
|
|
field(:fever_slight, 0) { bit 14 }
|
|
field(:pain_extreme, 0) { bit 15 }
|
|
field(:pain_moderate, 0) { bit 16 }
|
|
field(:pain_slight, 0) { bit 17 }
|
|
field(:exhausted, 0) { bit 18 }
|
|
field(:overexerted, 0) { bit 19 }
|
|
field(:tired, 0) { bit 20 }
|
|
field(:stunned, 0) { bit 21 }
|
|
field(:dizzy, 0) { bit 22 }
|
|
field(:drowning, 0) { bit 23 }
|
|
field(:winded, 0) { bit 24 }
|
|
field(:nauseous, 0) { bit 25 }
|
|
field(:drowsy_very, 0) { bit 26 }
|
|
field(:drowsy, 0) { bit 27 }
|
|
field(:dehydrated, 0) { bit 28 }
|
|
field(:thirsty, 0) { bit 29 }
|
|
field(:starving, 0) { bit 30 }
|
|
field(:hungry, 0) { bit 31 }
|
|
end
|
|
|
|
class HealthViewBits2 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:breathe_cant, 0) { bit 0 }
|
|
field(:breathe_trouble, 0) { bit 1 }
|
|
field(:vision_lost, 0) { bit 2 }
|
|
field(:vision_impaired, 0) { bit 3 }
|
|
field(:vision_impaired2, 0) { bit 4 }
|
|
field(:stand_cant, 0) { bit 5 }
|
|
field(:stand_impaired, 0) { bit 6 }
|
|
field(:grasp_cant, 0) { bit 7 }
|
|
field(:grasp_impaired, 0) { bit 8 }
|
|
field(:fly_cant, 0) { bit 9 }
|
|
field(:fly_impaired, 0) { bit 10 }
|
|
field(:motor_nerve, 0) { bit 11 }
|
|
field(:sensory_nerve, 0) { bit 12 }
|
|
field(:spilled, 0) { bit 13 }
|
|
field(:artery_major, 0) { bit 14 }
|
|
field(:artery, 0) { bit 15 }
|
|
field(:tendon_torn, 0) { bit 16 }
|
|
field(:tendon_strain, 0) { bit 17 }
|
|
field(:tendon_bruise, 0) { bit 18 }
|
|
field(:ligament_torn, 0) { bit 19 }
|
|
field(:ligament_sprain, 0) { bit 20 }
|
|
field(:ligament_bruise, 0) { bit 21 }
|
|
field(:fracture_compound, 0) { bit 22 }
|
|
field(:fracture_overlap, 0) { bit 23 }
|
|
field(:need_setting, 0) { bit 24 }
|
|
field(:tissue_broken, 0) { bit 25 }
|
|
field(:tissue_part_broken, 0) { bit 26 }
|
|
field(:damage_heavy, 0) { bit 27 }
|
|
field(:damage_moderate, 0) { bit 28 }
|
|
field(:damage_light, 0) { bit 29 }
|
|
field(:pain_extreme, 0) { bit 30 }
|
|
field(:pain_moderate, 0) { bit 31 }
|
|
end
|
|
|
|
class HealthViewBits3 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:pain_minor, 0) { bit 0 }
|
|
field(:swell_extreme, 0) { bit 1 }
|
|
field(:swell_medium, 0) { bit 2 }
|
|
field(:swell_minor, 0) { bit 3 }
|
|
field(:infection, 0) { bit 4 }
|
|
field(:rq_diagnosis, 0) { bit 5 }
|
|
field(:rq_crutch, 0) { bit 6 }
|
|
field(:inoperable_rot, 0) { bit 7 }
|
|
field(:rq_cleaning, 0) { bit 8 }
|
|
field(:rq_surgery, 0) { bit 9 }
|
|
field(:rq_suture, 0) { bit 10 }
|
|
field(:rq_setting, 0) { bit 11 }
|
|
field(:rq_dressing, 0) { bit 12 }
|
|
field(:rq_traction, 0) { bit 13 }
|
|
field(:rq_immobilize, 0) { bit 14 }
|
|
end
|
|
|
|
class HistfigEntityLink < MemHack::Compound
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_linkst
|
|
|
|
field(:entity_id, 4) {
|
|
number 32, true
|
|
}
|
|
def entity_tg ; df.world.entities.all[entity_id] ; end
|
|
field(:link_strength, 8) {
|
|
number 16, true
|
|
}
|
|
def getType()
|
|
HistfigEntityLinkType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 12, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 16, arg0, loadversion) ; nil
|
|
end
|
|
def getPosition()
|
|
val = DFHack.vmethod_call(self, 20)
|
|
end
|
|
def getPositionStartYear()
|
|
val = DFHack.vmethod_call(self, 24)
|
|
end
|
|
def getPositionEndYear()
|
|
val = DFHack.vmethod_call(self, 28)
|
|
end
|
|
end
|
|
|
|
class HistfigEntityLinkCriminalst < HistfigEntityLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_link_criminalst
|
|
|
|
end
|
|
|
|
class HistfigEntityLinkEnemyst < HistfigEntityLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_link_enemyst
|
|
|
|
end
|
|
|
|
class HistfigEntityLinkFormerMemberst < HistfigEntityLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_link_former_memberst
|
|
|
|
end
|
|
|
|
class HistfigEntityLinkFormerMercenaryst < HistfigEntityLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_link_former_mercenaryst
|
|
|
|
end
|
|
|
|
class HistfigEntityLinkFormerPositionst < HistfigEntityLink
|
|
sizeof 24
|
|
|
|
rtti_classname :histfig_entity_link_former_positionst
|
|
|
|
field(:assignment_id, 12) {
|
|
number 32, true
|
|
}
|
|
field(:start_year, 16) {
|
|
number 32, true
|
|
}
|
|
field(:end_year, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistfigEntityLinkFormerPrisonerst < HistfigEntityLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_link_former_prisonerst
|
|
|
|
end
|
|
|
|
class HistfigEntityLinkFormerSlavest < HistfigEntityLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_link_former_slavest
|
|
|
|
end
|
|
|
|
class HistfigEntityLinkHerost < HistfigEntityLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_link_herost
|
|
|
|
end
|
|
|
|
class HistfigEntityLinkMemberst < HistfigEntityLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_link_memberst
|
|
|
|
end
|
|
|
|
class HistfigEntityLinkMercenaryst < HistfigEntityLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_link_mercenaryst
|
|
|
|
end
|
|
|
|
class HistfigEntityLinkPositionst < HistfigEntityLink
|
|
sizeof 20
|
|
|
|
rtti_classname :histfig_entity_link_positionst
|
|
|
|
field(:assignment_id, 12) {
|
|
number 32, true
|
|
}
|
|
field(:start_year, 16) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistfigEntityLinkPrisonerst < HistfigEntityLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_link_prisonerst
|
|
|
|
end
|
|
|
|
class HistfigEntityLinkSlavest < HistfigEntityLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_entity_link_slavest
|
|
|
|
end
|
|
|
|
class HistfigHfLink < MemHack::Compound
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_hf_linkst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
def anon_1_tg ; df.world.history.figures[anon_1] ; end
|
|
field(:link_strength, 8) {
|
|
number 16, true
|
|
}
|
|
def getType()
|
|
HistfigHfLinkType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 12, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 16, arg0, loadversion) ; nil
|
|
end
|
|
end
|
|
|
|
class HistfigHfLinkApprenticest < HistfigHfLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_hf_link_apprenticest
|
|
|
|
end
|
|
|
|
class HistfigHfLinkChildst < HistfigHfLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_hf_link_childst
|
|
|
|
end
|
|
|
|
class HistfigHfLinkDeityst < HistfigHfLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_hf_link_deityst
|
|
|
|
end
|
|
|
|
class HistfigHfLinkFatherst < HistfigHfLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_hf_link_fatherst
|
|
|
|
end
|
|
|
|
class HistfigHfLinkImprisonerst < HistfigHfLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_hf_link_imprisonerst
|
|
|
|
end
|
|
|
|
class HistfigHfLinkLoverst < HistfigHfLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_hf_link_loverst
|
|
|
|
end
|
|
|
|
class HistfigHfLinkMasterst < HistfigHfLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_hf_link_masterst
|
|
|
|
end
|
|
|
|
class HistfigHfLinkMotherst < HistfigHfLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_hf_link_motherst
|
|
|
|
end
|
|
|
|
class HistfigHfLinkPrisonerst < HistfigHfLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_hf_link_prisonerst
|
|
|
|
end
|
|
|
|
class HistfigHfLinkSpousest < HistfigHfLink
|
|
sizeof 12
|
|
|
|
rtti_classname :histfig_hf_link_spousest
|
|
|
|
end
|
|
|
|
class HistfigSiteLink < MemHack::Compound
|
|
sizeof 16
|
|
|
|
rtti_classname :histfig_site_linkst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 12) {
|
|
number 32, true
|
|
}
|
|
def getType()
|
|
HistfigSiteLinkType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 12, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 16, arg0, loadversion) ; nil
|
|
end
|
|
end
|
|
|
|
class HistfigSiteLinkHangoutst < HistfigSiteLink
|
|
sizeof 16
|
|
|
|
rtti_classname :histfig_site_link_hangoutst
|
|
|
|
end
|
|
|
|
class HistfigSiteLinkHomeSiteAbstractBuildingst < HistfigSiteLink
|
|
sizeof 16
|
|
|
|
rtti_classname :histfig_site_link_home_site_abstract_buildingst
|
|
|
|
end
|
|
|
|
class HistfigSiteLinkHomeSiteRealizationBuildingst < HistfigSiteLink
|
|
sizeof 16
|
|
|
|
rtti_classname :histfig_site_link_home_site_realization_buildingst
|
|
|
|
end
|
|
|
|
class HistfigSiteLinkHomeSiteRealizationSulst < HistfigSiteLink
|
|
sizeof 16
|
|
|
|
rtti_classname :histfig_site_link_home_site_realization_sulst
|
|
|
|
end
|
|
|
|
class HistfigSiteLinkLairst < HistfigSiteLink
|
|
sizeof 16
|
|
|
|
rtti_classname :histfig_site_link_lairst
|
|
|
|
end
|
|
|
|
class HistfigSiteLinkSeatOfPowerst < HistfigSiteLink
|
|
sizeof 16
|
|
|
|
rtti_classname :histfig_site_link_seat_of_powerst
|
|
|
|
end
|
|
|
|
class HistfigSiteLinkShopkeeperst < HistfigSiteLink
|
|
sizeof 16
|
|
|
|
rtti_classname :histfig_site_link_shopkeeperst
|
|
|
|
end
|
|
|
|
class HistoricalEntity < MemHack::Compound
|
|
sizeof 3848
|
|
|
|
field(:type, 0) {
|
|
number 16, true
|
|
}
|
|
field(:id, 4) {
|
|
number 32, true
|
|
}
|
|
field(:entity_raw, 8) {
|
|
pointer {
|
|
global :EntityRaw
|
|
}
|
|
}
|
|
field(:save_file_id, 12) {
|
|
number 32, true
|
|
}
|
|
field(:next_member_idx, 16) {
|
|
number 16, true
|
|
}
|
|
field(:name, 20) {
|
|
global :LanguageName
|
|
}
|
|
field(:race, 80) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:unk5, 84) {
|
|
number 32, true
|
|
}
|
|
field(:unk6a, 88) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:HistoricalEntity_TUnk6a) {
|
|
sizeof 12
|
|
|
|
field(:unk1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:unk2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk3, 8) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk6b, 100) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:HistoricalEntity_TUnk6b) {
|
|
sizeof 16
|
|
|
|
field(:unk1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:unk2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk2b, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unk3, 12) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unit_ids, 112) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def unit_tgs ; unit_ids.map { |i| df.world.units.all[i] } ; end
|
|
field(:unk7, 124) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:nemesis_ids, 136) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def nemesis_tgs ; nemesis_ids.map { |i| df.world.history.figures[i] } ; end
|
|
field(:resources, 148) {
|
|
compound(:HistoricalEntity_TResources) {
|
|
field(:unk8, 0) {
|
|
static_array(15, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:metals, 180) {
|
|
static_array(7, 24) {
|
|
global :MaterialVecRef
|
|
}
|
|
}
|
|
field(:organic, 348) {
|
|
compound(:HistoricalEntity_TResources_TOrganic) {
|
|
field(:leather, 0) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:fiber, 24) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:silk, 48) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:wool, 72) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:wood, 96) {
|
|
global :MaterialVecRef
|
|
}
|
|
}
|
|
}
|
|
field(:unk10, 468) {
|
|
static_array(3, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:refuse, 504) {
|
|
compound(:HistoricalEntity_TResources_TRefuse) {
|
|
field(:bone, 0) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:shell, 24) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:unk1, 48) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:tooth, 72) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:hoof, 96) {
|
|
global :MaterialVecRef
|
|
}
|
|
}
|
|
}
|
|
field(:misc_mat, 624) {
|
|
compound(:HistoricalEntity_TResources_TMiscMat) {
|
|
field(:unk2, 0) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:glass, 24) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:sand, 48) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:clay, 72) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:rock_bone_metal, 96) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:unk4, 120) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:wood, 144) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:metal_leather, 168) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:leather, 192) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:leather2, 216) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:metal, 240) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:wood2, 264) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:rock_metal, 288) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:booze, 312) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:cheese, 336) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:powders, 360) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:extracts, 384) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:meat, 408) {
|
|
global :MaterialVecRef
|
|
}
|
|
}
|
|
}
|
|
field(:fish_races, 1056) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def fish_races_tg ; fish_races.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:fish_castes, 1068) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:egg_races, 1080) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def egg_races_tg ; egg_races.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:egg_castes, 1092) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:plants, 1104) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:seeds, 1128) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:wood_products, 1152) {
|
|
compound(:HistoricalEntity_TResources_TWoodProducts) {
|
|
field(:item_type, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:item_subtype, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:material, 24) {
|
|
global :MaterialVecRef
|
|
}
|
|
}
|
|
}
|
|
field(:animals, 1200) {
|
|
compound(:HistoricalEntity_TResources_TAnimals) {
|
|
field(:pet_races, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def pet_races_tg ; pet_races.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:wagon_races, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def wagon_races_tg ; wagon_races.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:pack_animal_races, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def pack_animal_races_tg ; pack_animal_races.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:wagon_puller_races, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def wagon_puller_races_tg ; wagon_puller_races.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:mount_races, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def mount_races_tg ; mount_races.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:war_exotic_races, 60) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def war_exotic_races_tg ; war_exotic_races.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:unk728_races, 72) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def unk728_races_tg ; unk728_races.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:pet_castes, 84) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:wagon_castes, 96) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:pack_animal_castes, 108) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:wagon_puller_castes, 120) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:mount_castes, 132) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:war_exotic_castes, 144) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk728_castes, 156) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk798, 1368) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk7a8, 1380) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk13, 1392) {
|
|
static_array(3, 8) {
|
|
compound(:HistoricalEntity_TResources_TUnk13) {
|
|
field(:unk1, 0) {
|
|
number 16, true, -1
|
|
}
|
|
field(:unk2, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk14, 1416) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk15a, 1428) {
|
|
number 16, true
|
|
}
|
|
field(:unk15b, 1430) {
|
|
number 16, true
|
|
}
|
|
field(:ethic, 1432) {
|
|
static_array(22, 2, EthicType) {
|
|
number 16, true, nil, EthicResponse
|
|
}
|
|
}
|
|
field(:unk_metal16, 1476) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:unk18, 1500) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk19, 1512) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:unk20, 1524) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:unk21, 1536) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:unk22, 1548) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:unk23, 1560) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk24, 1572) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:uniforms, 1732) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityUniform
|
|
}
|
|
}
|
|
}
|
|
field(:unknown1b, 1744) {
|
|
compound(:HistoricalEntity_TUnknown1b) {
|
|
field(:unk26a, 0) {
|
|
number 16, true
|
|
}
|
|
field(:unk26b, 2) {
|
|
number 16, true
|
|
}
|
|
field(:unk27, 4) {
|
|
number 16, true, -1
|
|
}
|
|
field(:unk28, 8) {
|
|
number 32, true, -1
|
|
}
|
|
field(:unk29, 12) {
|
|
number 32, true
|
|
}
|
|
field(:unk30, 16) {
|
|
number 32, true, -1
|
|
}
|
|
field(:unk31, 20) {
|
|
number 32, true, -1
|
|
}
|
|
field(:flags, 24) {
|
|
df_flagarray
|
|
}
|
|
field(:unk32a, 32) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk32b, 44) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk32c, 56) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk32d, 68) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk32e, 80) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk32f, 92) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk33, 104) {
|
|
number 16, true
|
|
}
|
|
field(:unk34a, 108) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk34b, 120) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk34c, 132) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk34d, 144) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk34e, 156) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:positions, 1912) {
|
|
compound(:HistoricalEntity_TPositions) {
|
|
field(:own, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPosition
|
|
}
|
|
}
|
|
}
|
|
field(:site, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPosition
|
|
}
|
|
}
|
|
}
|
|
field(:conquered_site, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPosition
|
|
}
|
|
}
|
|
}
|
|
field(:next_position_id, 36) {
|
|
number 32, true
|
|
}
|
|
field(:assignments, 40) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPositionAssignment
|
|
}
|
|
}
|
|
}
|
|
field(:next_assignment_id, 52) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:unknown1c, 1968) {
|
|
compound(:HistoricalEntity_TUnknown1c) {
|
|
field(:unk38, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk39, 12) {
|
|
number 32, true
|
|
}
|
|
field(:unk40, 16) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:squads, 1996) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def squads_tg ; squads.map { |i| df.world.squads.all[i] } ; end
|
|
field(:unknown1d, 2008) {
|
|
compound(:HistoricalEntity_TUnknown1d) {
|
|
field(:unk42, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk43, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk44, 16) {
|
|
number 32, true
|
|
}
|
|
field(:unk44a, 20) {
|
|
static_array(16, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:training_knowledge, 84) {
|
|
pointer {
|
|
compound(:HistoricalEntity_TUnknown1d_TTrainingKnowledge) {
|
|
sizeof 24
|
|
|
|
field(:level, 0) {
|
|
stl_vector(4) {
|
|
number 32, true, nil, TrainingKnowledgeLevel
|
|
}
|
|
}
|
|
field(:unk_10, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk45, 88) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk46, 100) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:unk47, 104) {
|
|
number 16, true
|
|
}
|
|
field(:unk48, 108) {
|
|
number 32, true
|
|
}
|
|
field(:unk49, 112) {
|
|
static_array(15, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk50, 172) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:hist_figures, 2192) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistoricalFigure
|
|
}
|
|
}
|
|
}
|
|
field(:nemesis, 2204) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :NemesisRecord
|
|
}
|
|
}
|
|
}
|
|
field(:unknown2, 2216) {
|
|
compound(:HistoricalEntity_TUnknown2) {
|
|
field(:flour_sugar, 0) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:dye, 24) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:unk5, 48) {
|
|
static_array(30, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:unk6, 408) {
|
|
static_array(25, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPositionAssignment
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk6b, 708) {
|
|
static_array(6, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:unk8, 780) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk9, 792) {
|
|
number 32, true
|
|
}
|
|
field(:unk10, 796) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk11, 808) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:unk12a, 812) {
|
|
number 16, true, -1
|
|
}
|
|
field(:unk12b, 814) {
|
|
number 16, true
|
|
}
|
|
field(:unk13, 816) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:unk14, 820) {
|
|
number 32, true
|
|
}
|
|
field(:unk15, 824) {
|
|
number 32, true
|
|
}
|
|
field(:unk16, 828) {
|
|
number 32, true
|
|
}
|
|
field(:unk17, 832) {
|
|
number 16, true
|
|
}
|
|
field(:unk18, 836) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk19, 848) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk20, 860) {
|
|
number 16, true
|
|
}
|
|
field(:unk21, 864) {
|
|
number 32, true
|
|
}
|
|
field(:unk22, 868) {
|
|
number 32, true
|
|
}
|
|
field(:unk23, 872) {
|
|
number 32, true
|
|
}
|
|
field(:unk24, 876) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk25, 888) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk26, 900) {
|
|
static_array(177, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk28, 1608) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk29, 1620) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class HistoricalFigure < MemHack::Compound
|
|
sizeof 204
|
|
|
|
field(:profession, 0) {
|
|
number 16, true, nil, Profession
|
|
}
|
|
field(:race, 2) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:caste, 4) {
|
|
number 16, true
|
|
}
|
|
field(:sex, 6) {
|
|
number 8, false
|
|
}
|
|
field(:appeared_year, 8) {
|
|
number 32, true
|
|
}
|
|
field(:born_year, 12) {
|
|
number 32, true
|
|
}
|
|
field(:born_seconds, 16) {
|
|
number 32, true
|
|
}
|
|
field(:curse_year, 20) {
|
|
number 32, true
|
|
}
|
|
field(:curse_seconds, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 32) {
|
|
number 32, true
|
|
}
|
|
field(:old_year, 36) {
|
|
number 32, true
|
|
}
|
|
field(:old_seconds, 40) {
|
|
number 32, true
|
|
}
|
|
field(:died_year, 44) {
|
|
number 32, true
|
|
}
|
|
field(:died_seconds, 48) {
|
|
number 32, true
|
|
}
|
|
field(:name, 52) {
|
|
global :LanguageName
|
|
}
|
|
field(:civ_id, 112) {
|
|
number 32, true
|
|
}
|
|
def civ_tg ; df.world.entities.all[civ_id] ; end
|
|
field(:population_id, 116) {
|
|
number 32, true
|
|
}
|
|
def population_tg ; df.world.entity_populations[population_id] ; end
|
|
field(:anon_3, 120) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 124) {
|
|
df_flagarray
|
|
}
|
|
field(:unit_id, 132) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:id, 136) {
|
|
number 32, true
|
|
}
|
|
field(:unk4, 140) {
|
|
number 32, true
|
|
}
|
|
field(:entity_links, 144) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistfigEntityLink
|
|
}
|
|
}
|
|
}
|
|
field(:site_links, 156) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistfigSiteLink
|
|
}
|
|
}
|
|
}
|
|
field(:histfig_links, 168) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistfigHfLink
|
|
}
|
|
}
|
|
}
|
|
field(:info, 180) {
|
|
pointer {
|
|
global :HistoricalFigureInfo
|
|
}
|
|
}
|
|
field(:worldgen, 184) {
|
|
compound(:HistoricalFigure_TWorldgen) {
|
|
field(:unk_0, 0) {
|
|
pointer {
|
|
global :WorldSite
|
|
}
|
|
}
|
|
field(:unk_4, 4) {
|
|
pointer {
|
|
global :LanguageName
|
|
}
|
|
}
|
|
field(:unk_8, 8) {
|
|
pointer {
|
|
global :WorldUndergroundRegion
|
|
}
|
|
}
|
|
field(:unk_c, 12) {
|
|
pointer {
|
|
compound(:HistoricalFigure_TWorldgen_TUnkC) {
|
|
sizeof 16
|
|
|
|
field(:unk_0, 0) {
|
|
df_array(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:unk_8, 8) {
|
|
df_array(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_10, 16) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class HistoricalFigureInfo < MemHack::Compound
|
|
sizeof 48
|
|
|
|
field(:spheres, 0) {
|
|
pointer {
|
|
stl_vector(2) {
|
|
number 16, true, nil, SphereType
|
|
}
|
|
}
|
|
}
|
|
field(:skills, 4) {
|
|
pointer {
|
|
compound(:HistoricalFigureInfo_TSkills) {
|
|
sizeof 76
|
|
|
|
field(:skills, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, JobSkill
|
|
}
|
|
}
|
|
field(:points, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_20, 24) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_30, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_40, 48) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_50, 60) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_60, 72) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:pets, 8) {
|
|
pointer {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:unk_c, 12) {
|
|
pointer {
|
|
compound(:HistoricalFigureInfo_TUnkC) {
|
|
sizeof 96
|
|
|
|
field(:traits, 0) {
|
|
static_array(30, 2, PersonalityFacetType) {
|
|
number 16, false
|
|
}
|
|
}
|
|
field(:unk_3c, 60) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:HistoricalFigureInfo_TUnkC_TUnk3c) {
|
|
sizeof 4
|
|
|
|
field(:a, 0) {
|
|
number 16, true
|
|
}
|
|
field(:b, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_4c, 72) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_5c, 84) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:masterpieces, 16) {
|
|
pointer {
|
|
compound(:HistoricalFigureInfo_TMasterpieces) {
|
|
sizeof 24
|
|
|
|
field(:events, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def events_tg ; events.map { |i| df.world.history.events[i] } ; end
|
|
field(:events2, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def events2_tg ; events2.map { |i| df.world.history.events[i] } ; end
|
|
}
|
|
}
|
|
}
|
|
field(:unk_14, 20) {
|
|
pointer {
|
|
compound(:HistoricalFigureInfo_TUnk14) {
|
|
sizeof 32
|
|
|
|
field(:unk_0, 0) {
|
|
number 16, true
|
|
}
|
|
field(:site, 4) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:unk_8, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unk_c, 12) {
|
|
number 32, true
|
|
}
|
|
field(:region, 16) {
|
|
global :Coord2d
|
|
}
|
|
field(:unk_14, 20) {
|
|
number 8, false
|
|
}
|
|
field(:unk_18, 24) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1c, 28) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:kills, 24) {
|
|
pointer {
|
|
global :HistoricalKills
|
|
}
|
|
}
|
|
field(:wounds, 28) {
|
|
pointer {
|
|
compound(:HistoricalFigureInfo_TWounds) {
|
|
sizeof 32
|
|
|
|
field(:events, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def events_tg ; events.map { |i| df.world.history.events[i] } ; end
|
|
field(:status, 12) {
|
|
stl_bit_vector
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:secret, 32) {
|
|
pointer {
|
|
compound(:HistoricalFigureInfo_TSecret) {
|
|
sizeof 28
|
|
|
|
field(:interactions, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Interaction
|
|
}
|
|
}
|
|
}
|
|
field(:unk_10, 12) {
|
|
number 32, true
|
|
}
|
|
field(:unk_14, 16) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:curse, 36) {
|
|
pointer {
|
|
compound(:HistoricalFigureInfo_TCurse) {
|
|
sizeof 136
|
|
|
|
field(:active_interactions, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Interaction
|
|
}
|
|
}
|
|
}
|
|
field(:active_effects, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:can_do, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Interaction
|
|
}
|
|
}
|
|
}
|
|
field(:unk_30, 36) {
|
|
number 16, true
|
|
}
|
|
field(:unk_32, 38) {
|
|
number 16, true
|
|
}
|
|
field(:unk_34, 40) {
|
|
number 32, true
|
|
}
|
|
field(:unk_38, 44) {
|
|
number 32, true
|
|
}
|
|
field(:unk_3c, 48) {
|
|
number 32, true
|
|
}
|
|
field(:unk_40, 52) {
|
|
number 8, false
|
|
}
|
|
field(:name, 56) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 60) {
|
|
stl_string
|
|
}
|
|
field(:name_adjective, 64) {
|
|
stl_string
|
|
}
|
|
field(:race, 68) {
|
|
number 32, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:caste, 72) {
|
|
number 16, true
|
|
}
|
|
field(:unk_a0, 76) {
|
|
stl_vector
|
|
}
|
|
field(:unk_b0, 88) {
|
|
stl_vector
|
|
}
|
|
field(:unk_c0, 100) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_d0, 112) {
|
|
number 32, true
|
|
}
|
|
field(:unk_d4, 116) {
|
|
number 32, true
|
|
}
|
|
field(:unk_d8, 120) {
|
|
number 32, true
|
|
}
|
|
field(:unk_dc, 124) {
|
|
number 32, true
|
|
}
|
|
field(:unk_e0, 128) {
|
|
stl_string
|
|
}
|
|
field(:unk_fc, 132) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:books, 40) {
|
|
pointer {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ArtifactRecord
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:reputation, 44) {
|
|
pointer {
|
|
compound(:HistoricalFigureInfo_TReputation) {
|
|
sizeof 28
|
|
|
|
field(:wanted, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:HistoricalFigureInfo_TReputation_TWanted) {
|
|
sizeof 16
|
|
|
|
field(:entity_id, 0) {
|
|
number 32, true
|
|
}
|
|
def entity_tg ; df.world.entities.all[entity_id] ; end
|
|
field(:discovered_year, 4) {
|
|
number 32, true
|
|
}
|
|
field(:discovered_time, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unsolved_murders, 12) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:cur_identity, 12) {
|
|
number 32, true
|
|
}
|
|
def cur_identity_tg ; df.world.assumed_identities.all[cur_identity] ; end
|
|
field(:all_identities, 16) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def all_identities_tg ; all_identities.map { |i| df.world.assumed_identities.all[i] } ; end
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class HistoricalKills < MemHack::Compound
|
|
sizeof 96
|
|
|
|
field(:events, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def events_tg ; events.map { |i| df.world.history.events[i] } ; end
|
|
field(:killed_race, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def killed_race_tg ; killed_race.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:killed_caste, 24) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_30, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_40, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:killed_site, 60) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def killed_site_tg ; killed_site.map { |i| df.world.world_data.sites[i] } ; end
|
|
field(:killed_undead, 72) {
|
|
stl_vector(2) {
|
|
compound(:HistoricalKills_TKilledUndead) {
|
|
field(:_whole, 0) {
|
|
number 16, false
|
|
}
|
|
field(:skeletal, 0) { bit 0 }
|
|
field(:zombie, 0) { bit 1 }
|
|
field(:ghostly, 0) { bit 2 }
|
|
}
|
|
}
|
|
}
|
|
field(:killed_count, 84) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class HistoryEvent < MemHack::Compound
|
|
sizeof 24
|
|
|
|
rtti_classname :history_eventst
|
|
|
|
field(:year, 4) {
|
|
number 32, true
|
|
}
|
|
field(:seconds, 8) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 12) {
|
|
df_flagarray
|
|
}
|
|
field(:id, 20) {
|
|
number 32, true
|
|
}
|
|
def getType()
|
|
HistoryEventType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def generate_xml(arg0, arg1)
|
|
DFHack.vmethod_call(self, 136, arg0, arg1) ; nil
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 140, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 144, arg0, loadversion) ; nil
|
|
end
|
|
end
|
|
|
|
class HistoryEventAddHfEntityLinkst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_add_hf_entity_linkst
|
|
|
|
field(:entity_id, 24) {
|
|
number 32, true
|
|
}
|
|
def entity_tg ; df.world.entities.all[entity_id] ; end
|
|
field(:hfid, 28) {
|
|
number 32, true
|
|
}
|
|
def hfid_tg ; df.world.history.figures[hfid] ; end
|
|
field(:anon_1, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventAddHfHfLinkst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_add_hf_hf_linkst
|
|
|
|
field(:hfid, 24) {
|
|
number 32, true
|
|
}
|
|
def hfid_tg ; df.world.history.figures[hfid] ; end
|
|
field(:hfid2, 28) {
|
|
number 32, true
|
|
}
|
|
def hfid2_tg ; df.world.history.figures[hfid2] ; end
|
|
field(:type, 32) {
|
|
number 32, true, nil, HistfigHfLinkType
|
|
}
|
|
end
|
|
|
|
class HistoryEventAddHfSiteLinkst < HistoryEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :history_event_add_hf_site_linkst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventAgreementsVoidedst < HistoryEvent
|
|
sizeof 32
|
|
|
|
rtti_classname :history_event_agreements_voidedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventArtifactCreatedst < HistoryEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :history_event_artifact_createdst
|
|
|
|
field(:artifact_id, 24) {
|
|
number 32, true
|
|
}
|
|
def artifact_tg ; df.world.artifacts.all[artifact_id] ; end
|
|
field(:unit_id, 28) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:hfid, 32) {
|
|
number 32, true
|
|
}
|
|
def hfid_tg ; df.world.history.figures[hfid] ; end
|
|
field(:site, 36) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:anon_1, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventArtifactDroppedst < HistoryEvent
|
|
sizeof 48
|
|
|
|
rtti_classname :history_event_artifact_droppedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventArtifactFoundst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_artifact_foundst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventArtifactHiddenst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_artifact_hiddenst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventArtifactLostst < HistoryEvent
|
|
sizeof 32
|
|
|
|
rtti_classname :history_event_artifact_lostst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventArtifactPossessedst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_artifact_possessedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventArtifactRecoveredst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_artifact_recoveredst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventArtifactStoredst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_artifact_storedst
|
|
|
|
field(:artifact_id, 24) {
|
|
number 32, true
|
|
}
|
|
def artifact_tg ; df.world.artifacts.all[artifact_id] ; end
|
|
field(:unit_id, 28) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:hfid, 32) {
|
|
number 32, true
|
|
}
|
|
def hfid_tg ; df.world.history.figures[hfid] ; end
|
|
field(:site, 36) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
end
|
|
|
|
class HistoryEventAssumeIdentityst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_assume_identityst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventBodyAbusedst < HistoryEvent
|
|
sizeof 84
|
|
|
|
rtti_classname :history_event_body_abusedst
|
|
|
|
field(:anon_1, 24) {
|
|
stl_vector
|
|
}
|
|
field(:anon_2, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 48) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 52) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 56) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 60) {
|
|
number 16, true
|
|
}
|
|
field(:anon_9, 62) {
|
|
number 16, true
|
|
}
|
|
field(:anon_10, 64) {
|
|
number 16, true
|
|
}
|
|
field(:anon_11, 68) {
|
|
number 32, true
|
|
}
|
|
field(:anon_12, 72) {
|
|
number 32, true
|
|
}
|
|
field(:anon_13, 76) {
|
|
number 32, true
|
|
}
|
|
field(:anon_14, 80) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventChangeCreatureTypest < HistoryEvent
|
|
sizeof 48
|
|
|
|
rtti_classname :history_event_change_creature_typest
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventChangeHfBodyStatest < HistoryEvent
|
|
sizeof 52
|
|
|
|
rtti_classname :history_event_change_hf_body_statest
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 48) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventChangeHfJobst < HistoryEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :history_event_change_hf_jobst
|
|
|
|
field(:hfid, 24) {
|
|
number 32, true
|
|
}
|
|
def hfid_tg ; df.world.history.figures[hfid] ; end
|
|
field(:new_job, 28) {
|
|
number 16, true, nil, Profession
|
|
}
|
|
field(:old_job, 30) {
|
|
number 16, true, nil, Profession
|
|
}
|
|
field(:site, 32) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:anon_1, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventChangeHfStatest < HistoryEvent
|
|
sizeof 52
|
|
|
|
rtti_classname :history_event_change_hf_statest
|
|
|
|
field(:hfid, 24) {
|
|
number 32, true
|
|
}
|
|
def hfid_tg ; df.world.history.figures[hfid] ; end
|
|
field(:anon_1, 28) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 32) {
|
|
number 32, true
|
|
}
|
|
field(:site, 36) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:region, 40) {
|
|
number 32, true
|
|
}
|
|
def region_tg ; df.world.world_data.regions[region] ; end
|
|
field(:anon_3, 44) {
|
|
number 32, true
|
|
}
|
|
field(:region_pos, 48) {
|
|
global :Coord2d
|
|
}
|
|
end
|
|
|
|
class HistoryEventCollection < MemHack::Compound
|
|
sizeof 56
|
|
|
|
rtti_classname :history_event_collectionst
|
|
|
|
field(:anon_1, 4) {
|
|
stl_vector
|
|
}
|
|
field(:anon_2, 16) {
|
|
stl_vector
|
|
}
|
|
field(:anon_3, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 44) {
|
|
df_flagarray
|
|
}
|
|
field(:id, 52) {
|
|
number 32, true
|
|
}
|
|
def getType()
|
|
HistoryEventCollectionType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def generate_xml(arg0, arg1)
|
|
DFHack.vmethod_call(self, 4, arg0, arg1) ; nil
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 8, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 12, arg0, loadversion) ; nil
|
|
end
|
|
def updateTime()
|
|
DFHack.vmethod_call(self, 44) ; nil
|
|
end
|
|
end
|
|
|
|
class HistoryEventCollectionAbductionst < HistoryEventCollection
|
|
sizeof 124
|
|
|
|
rtti_classname :history_event_collection_abductionst
|
|
|
|
field(:anon_1, 56) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 60) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 64) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 68) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 72) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 74) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 76) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 80) {
|
|
number 32, true
|
|
}
|
|
field(:anon_9, 84) {
|
|
stl_vector
|
|
}
|
|
field(:anon_10, 96) {
|
|
stl_vector
|
|
}
|
|
field(:anon_11, 108) {
|
|
stl_vector
|
|
}
|
|
field(:anon_12, 120) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventCollectionBattlest < HistoryEventCollection
|
|
sizeof 320
|
|
|
|
rtti_classname :history_event_collection_battlest
|
|
|
|
field(:anon_1, 56) {
|
|
global :LanguageName
|
|
}
|
|
field(:anon_2, 116) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 120) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 124) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 128) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 132) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 134) {
|
|
number 16, true
|
|
}
|
|
field(:anon_8, 136) {
|
|
stl_vector
|
|
}
|
|
field(:anon_9, 148) {
|
|
stl_vector
|
|
}
|
|
field(:anon_10, 160) {
|
|
stl_vector
|
|
}
|
|
field(:anon_11, 172) {
|
|
stl_vector
|
|
}
|
|
field(:anon_12, 184) {
|
|
stl_vector
|
|
}
|
|
field(:anon_13, 196) {
|
|
stl_vector
|
|
}
|
|
field(:anon_14, 208) {
|
|
stl_vector
|
|
}
|
|
field(:anon_15, 220) {
|
|
stl_vector
|
|
}
|
|
field(:anon_16, 232) {
|
|
stl_vector
|
|
}
|
|
field(:anon_17, 244) {
|
|
stl_vector
|
|
}
|
|
field(:anon_18, 256) {
|
|
stl_vector
|
|
}
|
|
field(:anon_19, 268) {
|
|
stl_vector
|
|
}
|
|
field(:anon_20, 280) {
|
|
stl_vector
|
|
}
|
|
field(:anon_21, 292) {
|
|
stl_vector
|
|
}
|
|
field(:anon_22, 304) {
|
|
stl_vector
|
|
}
|
|
field(:anon_23, 316) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventCollectionBeastAttackst < HistoryEventCollection
|
|
sizeof 96
|
|
|
|
rtti_classname :history_event_collection_beast_attackst
|
|
|
|
field(:anon_1, 56) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 60) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 64) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 68) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 72) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 74) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 76) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 80) {
|
|
stl_vector
|
|
}
|
|
field(:anon_9, 92) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventCollectionDuelst < HistoryEventCollection
|
|
sizeof 92
|
|
|
|
rtti_classname :history_event_collection_duelst
|
|
|
|
field(:anon_1, 56) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 60) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 64) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 68) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 72) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 74) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 76) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 80) {
|
|
number 32, true
|
|
}
|
|
field(:anon_9, 84) {
|
|
number 32, true
|
|
}
|
|
field(:anon_10, 88) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class HistoryEventCollectionJourneyst < HistoryEventCollection
|
|
sizeof 72
|
|
|
|
rtti_classname :history_event_collection_journeyst
|
|
|
|
field(:anon_1, 56) {
|
|
stl_vector
|
|
}
|
|
field(:anon_2, 68) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventCollectionSiteConqueredst < HistoryEventCollection
|
|
sizeof 96
|
|
|
|
rtti_classname :history_event_collection_site_conqueredst
|
|
|
|
field(:anon_1, 56) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 60) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 64) {
|
|
stl_vector
|
|
}
|
|
field(:anon_4, 76) {
|
|
stl_vector
|
|
}
|
|
field(:anon_5, 88) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 92) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventCollectionTheftst < HistoryEventCollection
|
|
sizeof 244
|
|
|
|
rtti_classname :history_event_collection_theftst
|
|
|
|
field(:anon_1, 56) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 60) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 64) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 68) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 72) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 74) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 76) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 80) {
|
|
number 32, true
|
|
}
|
|
field(:anon_9, 84) {
|
|
stl_vector
|
|
}
|
|
field(:anon_10, 96) {
|
|
stl_vector
|
|
}
|
|
field(:anon_11, 108) {
|
|
stl_vector
|
|
}
|
|
field(:anon_12, 120) {
|
|
stl_vector
|
|
}
|
|
field(:anon_13, 132) {
|
|
stl_vector
|
|
}
|
|
field(:anon_14, 144) {
|
|
stl_vector
|
|
}
|
|
field(:anon_15, 156) {
|
|
stl_vector
|
|
}
|
|
field(:anon_16, 168) {
|
|
stl_vector
|
|
}
|
|
field(:anon_17, 180) {
|
|
stl_vector
|
|
}
|
|
field(:anon_18, 192) {
|
|
stl_vector
|
|
}
|
|
field(:anon_19, 204) {
|
|
stl_vector
|
|
}
|
|
field(:anon_20, 216) {
|
|
stl_vector
|
|
}
|
|
field(:anon_21, 228) {
|
|
stl_vector
|
|
}
|
|
field(:anon_22, 240) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventCollectionWarst < HistoryEventCollection
|
|
sizeof 296
|
|
|
|
rtti_classname :history_event_collection_warst
|
|
|
|
field(:anon_1, 56) {
|
|
global :LanguageName
|
|
}
|
|
field(:anon_2, 116) {
|
|
stl_vector
|
|
}
|
|
field(:anon_3, 128) {
|
|
stl_vector
|
|
}
|
|
field(:unk, 140) {
|
|
compound(:HistoryEventCollectionWarst_TUnk) {
|
|
field(:anon_1, 0) {
|
|
stl_vector
|
|
}
|
|
field(:anon_2, 12) {
|
|
stl_vector
|
|
}
|
|
field(:anon_3, 24) {
|
|
stl_vector
|
|
}
|
|
field(:anon_4, 36) {
|
|
stl_vector
|
|
}
|
|
field(:anon_5, 48) {
|
|
stl_vector
|
|
}
|
|
field(:anon_6, 60) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 64) {
|
|
stl_vector
|
|
}
|
|
field(:anon_8, 76) {
|
|
stl_vector
|
|
}
|
|
field(:anon_9, 88) {
|
|
stl_vector
|
|
}
|
|
field(:anon_10, 100) {
|
|
stl_vector
|
|
}
|
|
field(:anon_11, 112) {
|
|
number 32, true
|
|
}
|
|
field(:anon_12, 116) {
|
|
stl_vector
|
|
}
|
|
field(:anon_13, 128) {
|
|
stl_vector
|
|
}
|
|
field(:anon_14, 140) {
|
|
stl_vector
|
|
}
|
|
field(:anon_15, 152) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class HistoryEventCreateEntityPositionst < HistoryEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :history_event_create_entity_positionst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventCreatedBuildingst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_created_buildingst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventCreatedSitest < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_created_sitest
|
|
|
|
field(:civ_id, 24) {
|
|
number 32, true
|
|
}
|
|
def civ_tg ; df.world.entities.all[civ_id] ; end
|
|
field(:group_id, 28) {
|
|
number 32, true
|
|
}
|
|
def group_tg ; df.world.entities.all[group_id] ; end
|
|
field(:site_id, 32) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site_id] ; end
|
|
end
|
|
|
|
class HistoryEventCreatedWorldConstructionst < HistoryEvent
|
|
sizeof 48
|
|
|
|
rtti_classname :history_event_created_world_constructionst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventCreatureDevouredst < HistoryEvent
|
|
sizeof 56
|
|
|
|
rtti_classname :history_event_creature_devouredst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 48) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 52) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventDiplomatLostst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_diplomat_lostst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventEntityActionst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_entity_actionst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventEntityCreatedst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_entity_createdst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventEntityIncorporatedst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_entity_incorporatedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventEntityLawst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_entity_lawst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventEntityRazedBuildingst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_entity_razed_buildingst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventFirstContactFailedst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_first_contact_failedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventFirstContactst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_first_contactst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHfActOnBuildingst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_hf_act_on_buildingst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHfConfrontedst < HistoryEvent
|
|
sizeof 64
|
|
|
|
rtti_classname :history_event_hf_confrontedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 48) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 52) {
|
|
number 32, true
|
|
}
|
|
field(:anon_9, 56) {
|
|
number 32, true
|
|
}
|
|
field(:anon_10, 60) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHfDestroyedSitest < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_hf_destroyed_sitest
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHfDoesInteractionst < HistoryEvent
|
|
sizeof 52
|
|
|
|
rtti_classname :history_event_hf_does_interactionst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 48) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHfGainsSecretGoalst < HistoryEvent
|
|
sizeof 32
|
|
|
|
rtti_classname :history_event_hf_gains_secret_goalst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHfLearnsSecretst < HistoryEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :history_event_hf_learns_secretst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHfRazedBuildingst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_hf_razed_buildingst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHistFigureAbductedst < HistoryEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :history_event_hist_figure_abductedst
|
|
|
|
field(:hfid, 24) {
|
|
number 32, true
|
|
}
|
|
def hfid_tg ; df.world.history.figures[hfid] ; end
|
|
field(:snatcher, 28) {
|
|
number 32, true
|
|
}
|
|
def snatcher_tg ; df.world.history.figures[snatcher] ; end
|
|
field(:site, 32) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:region, 36) {
|
|
number 32, true
|
|
}
|
|
def region_tg ; df.world.world_data.regions[region] ; end
|
|
field(:layer, 40) {
|
|
number 32, true
|
|
}
|
|
def layer_tg ; df.world.world_data.underground_regions[layer] ; end
|
|
end
|
|
|
|
class HistoryEventHistFigureDiedst < HistoryEvent
|
|
sizeof 88
|
|
|
|
rtti_classname :history_event_hist_figure_diedst
|
|
|
|
field(:hfid, 24) {
|
|
number 32, true
|
|
}
|
|
def hfid_tg ; df.world.history.figures[hfid] ; end
|
|
field(:slayer, 28) {
|
|
number 32, true
|
|
}
|
|
def slayer_tg ; df.world.history.figures[slayer] ; end
|
|
field(:slayer_race, 32) {
|
|
number 32, true
|
|
}
|
|
def slayer_race_tg ; df.world.raws.creatures.all[slayer_race] ; end
|
|
field(:slayer_caste, 36) {
|
|
number 32, true
|
|
}
|
|
field(:weapon, 40) {
|
|
global :HistoryHitItem
|
|
}
|
|
field(:site, 72) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:region, 76) {
|
|
number 32, true
|
|
}
|
|
def region_tg ; df.world.world_data.regions[region] ; end
|
|
field(:layer, 80) {
|
|
number 32, true
|
|
}
|
|
def layer_tg ; df.world.world_data.underground_regions[layer] ; end
|
|
field(:death_cause, 84) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHistFigureNewPetst < HistoryEvent
|
|
sizeof 64
|
|
|
|
rtti_classname :history_event_hist_figure_new_petst
|
|
|
|
field(:figures, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def figures_tg ; figures.map { |i| df.world.history.figures[i] } ; end
|
|
field(:pets, 36) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def pets_tg ; pets.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:site, 48) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:region, 52) {
|
|
number 32, true
|
|
}
|
|
def region_tg ; df.world.world_data.regions[region] ; end
|
|
field(:layer, 56) {
|
|
number 32, true
|
|
}
|
|
def layer_tg ; df.world.world_data.underground_regions[layer] ; end
|
|
field(:region_pos, 60) {
|
|
global :Coord2d
|
|
}
|
|
end
|
|
|
|
class HistoryEventHistFigureReachSummitst < HistoryEvent
|
|
sizeof 48
|
|
|
|
rtti_classname :history_event_hist_figure_reach_summitst
|
|
|
|
field(:anon_1, 24) {
|
|
stl_vector
|
|
}
|
|
field(:anon_2, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 44) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 46) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHistFigureReunionst < HistoryEvent
|
|
sizeof 60
|
|
|
|
rtti_classname :history_event_hist_figure_reunionst
|
|
|
|
field(:anon_1, 24) {
|
|
stl_vector
|
|
}
|
|
field(:anon_2, 36) {
|
|
stl_vector
|
|
}
|
|
field(:anon_3, 48) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 52) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 56) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHistFigureRevivedst < HistoryEvent
|
|
sizeof 48
|
|
|
|
rtti_classname :history_event_hist_figure_revivedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHistFigureSimpleBattleEventst < HistoryEvent
|
|
sizeof 64
|
|
|
|
rtti_classname :history_event_hist_figure_simple_battle_eventst
|
|
|
|
field(:side1, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def side1_tg ; side1.map { |i| df.world.history.figures[i] } ; end
|
|
field(:side2, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def side2_tg ; side2.map { |i| df.world.history.figures[i] } ; end
|
|
field(:site, 48) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:region, 52) {
|
|
number 32, true
|
|
}
|
|
def region_tg ; df.world.world_data.regions[region] ; end
|
|
field(:layer, 56) {
|
|
number 32, true
|
|
}
|
|
def layer_tg ; df.world.world_data.underground_regions[layer] ; end
|
|
field(:subtype, 60) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventHistFigureTravelst < HistoryEvent
|
|
sizeof 56
|
|
|
|
rtti_classname :history_event_hist_figure_travelst
|
|
|
|
field(:figures, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def figures_tg ; figures.map { |i| df.world.history.figures[i] } ; end
|
|
field(:anon_1, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 48) {
|
|
number 32, true
|
|
}
|
|
field(:region_pos, 52) {
|
|
global :Coord2d
|
|
}
|
|
end
|
|
|
|
class HistoryEventHistFigureWoundedst < HistoryEvent
|
|
sizeof 56
|
|
|
|
rtti_classname :history_event_hist_figure_woundedst
|
|
|
|
field(:victim, 24) {
|
|
number 32, true
|
|
}
|
|
def victim_tg ; df.world.history.figures[victim] ; end
|
|
field(:attacker, 28) {
|
|
number 32, true
|
|
}
|
|
def attacker_tg ; df.world.history.figures[attacker] ; end
|
|
field(:anon_1, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 48) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 50) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 52) {
|
|
number 16, true
|
|
}
|
|
field(:anon_8, 54) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class HistoryEventItemStolenst < HistoryEvent
|
|
sizeof 72
|
|
|
|
rtti_classname :history_event_item_stolenst
|
|
|
|
field(:item_type, 24) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 26) {
|
|
number 16, true
|
|
}
|
|
field(:mattype, 28) {
|
|
number 16, true
|
|
}
|
|
field(:matindex, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 36) {
|
|
number 32, true
|
|
}
|
|
field(:entity_id, 40) {
|
|
number 32, true
|
|
}
|
|
def entity_tg ; df.world.entities.all[entity_id] ; end
|
|
field(:hfid, 44) {
|
|
number 32, true
|
|
}
|
|
def hfid_tg ; df.world.history.figures[hfid] ; end
|
|
field(:site, 48) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
field(:anon_2, 52) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 56) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 60) {
|
|
number 32, true
|
|
}
|
|
field(:region_pos, 64) {
|
|
global :Coord2d
|
|
}
|
|
field(:anon_5, 68) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventMasterpieceCreatedst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_masterpiece_createdst
|
|
|
|
field(:maker, 24) {
|
|
number 32, true
|
|
}
|
|
def maker_tg ; df.world.history.figures[maker] ; end
|
|
field(:maker_entity, 28) {
|
|
number 32, true
|
|
}
|
|
def maker_entity_tg ; df.world.entities.all[maker_entity] ; end
|
|
field(:site, 32) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site] ; end
|
|
end
|
|
|
|
class HistoryEventMasterpieceCreatedArchConstructst < HistoryEventMasterpieceCreatedst
|
|
sizeof 52
|
|
|
|
rtti_classname :history_event_masterpiece_created_arch_constructst
|
|
|
|
field(:anon_1, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 40) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 42) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 48) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventMasterpieceCreatedArchDesignst < HistoryEventMasterpieceCreatedst
|
|
sizeof 52
|
|
|
|
rtti_classname :history_event_masterpiece_created_arch_designst
|
|
|
|
field(:anon_1, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 40) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 42) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 48) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventMasterpieceCreatedDyeItemst < HistoryEventMasterpieceCreatedst
|
|
sizeof 64
|
|
|
|
rtti_classname :history_event_masterpiece_created_dye_itemst
|
|
|
|
field(:anon_1, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 40) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 42) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 44) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 48) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 52) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 56) {
|
|
number 16, true
|
|
}
|
|
field(:anon_8, 60) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventMasterpieceCreatedEngravingst < HistoryEventMasterpieceCreatedst
|
|
sizeof 48
|
|
|
|
rtti_classname :history_event_masterpiece_created_engravingst
|
|
|
|
field(:skill_rating, 36) {
|
|
number 32, true
|
|
}
|
|
field(:type, 40) {
|
|
number 32, true
|
|
}
|
|
field(:subtype, 44) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventMasterpieceCreatedFoodst < HistoryEventMasterpieceCreatedst
|
|
sizeof 48
|
|
|
|
rtti_classname :history_event_masterpiece_created_foodst
|
|
|
|
field(:unk1, 36) {
|
|
number 32, true
|
|
}
|
|
field(:item_subtype, 40) {
|
|
number 16, true
|
|
}
|
|
def item_subtype_tg ; df.world.raws.itemdefs.food[item_subtype] ; end
|
|
field(:item_id, 44) {
|
|
number 32, true
|
|
}
|
|
def item_tg ; df.world.items.all[item_id] ; end
|
|
end
|
|
|
|
class HistoryEventMasterpieceCreatedItemImprovementst < HistoryEventMasterpieceCreatedst
|
|
sizeof 80
|
|
|
|
rtti_classname :history_event_masterpiece_created_item_improvementst
|
|
|
|
field(:anon_1, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 40) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 42) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 44) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 48) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 52) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 56) {
|
|
number 16, true
|
|
}
|
|
field(:anon_8, 60) {
|
|
number 32, true
|
|
}
|
|
field(:anon_9, 64) {
|
|
number 16, true
|
|
}
|
|
field(:anon_10, 68) {
|
|
number 32, true
|
|
}
|
|
field(:anon_11, 72) {
|
|
number 32, true
|
|
}
|
|
field(:anon_12, 76) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventMasterpieceCreatedItemst < HistoryEventMasterpieceCreatedst
|
|
sizeof 52
|
|
|
|
rtti_classname :history_event_masterpiece_created_itemst
|
|
|
|
field(:skill_used, 36) {
|
|
number 32, true, nil, JobSkill
|
|
}
|
|
field(:item_type, 40) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 42) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 44) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 46) {
|
|
number 16, true
|
|
}
|
|
field(:item_id, 48) {
|
|
number 32, true
|
|
}
|
|
def item_tg ; df.world.items.all[item_id] ; end
|
|
end
|
|
|
|
class HistoryEventMasterpieceLostst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_masterpiece_lostst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventMerchantst < HistoryEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :history_event_merchantst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventReclaimSitest < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_reclaim_sitest
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventRemoveHfEntityLinkst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_remove_hf_entity_linkst
|
|
|
|
field(:entity_id, 24) {
|
|
number 32, true
|
|
}
|
|
def entity_tg ; df.world.entities.all[entity_id] ; end
|
|
field(:hfid, 28) {
|
|
number 32, true
|
|
}
|
|
def hfid_tg ; df.world.history.figures[hfid] ; end
|
|
field(:anon_1, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventRemoveHfHfLinkst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_remove_hf_hf_linkst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventRemoveHfSiteLinkst < HistoryEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :history_event_remove_hf_site_linkst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventReplacedBuildingst < HistoryEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :history_event_replaced_buildingst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventSiteAbandonedst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_site_abandonedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventSiteDiedst < HistoryEvent
|
|
sizeof 36
|
|
|
|
rtti_classname :history_event_site_diedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventTopicagreementConcludedst < HistoryEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :history_event_topicagreement_concludedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventTopicagreementMadest < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_topicagreement_madest
|
|
|
|
field(:anon_1, 24) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventTopicagreementRejectedst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_topicagreement_rejectedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventWarAttackedSitest < HistoryEvent
|
|
sizeof 48
|
|
|
|
rtti_classname :history_event_war_attacked_sitest
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventWarDestroyedSitest < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_war_destroyed_sitest
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventWarFieldBattlest < HistoryEvent
|
|
sizeof 52
|
|
|
|
rtti_classname :history_event_war_field_battlest
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 42) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 48) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventWarPeaceAcceptedst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_war_peace_acceptedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventWarPeaceRejectedst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_war_peace_rejectedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventWarPlunderedSitest < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_war_plundered_sitest
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventWarSiteNewLeaderst < HistoryEvent
|
|
sizeof 60
|
|
|
|
rtti_classname :history_event_war_site_new_leaderst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 48) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 52) {
|
|
number 32, true
|
|
}
|
|
field(:anon_9, 56) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventWarSiteTakenOverst < HistoryEvent
|
|
sizeof 44
|
|
|
|
rtti_classname :history_event_war_site_taken_overst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryEventWarSiteTributeForcedst < HistoryEvent
|
|
sizeof 40
|
|
|
|
rtti_classname :history_event_war_site_tribute_forcedst
|
|
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HistoryHitItem < MemHack::Compound
|
|
sizeof 32
|
|
|
|
field(:item, 0) {
|
|
number 32, true
|
|
}
|
|
def item_tg ; df.world.items.all[item] ; end
|
|
field(:item_type, 4) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 6) {
|
|
number 16, true
|
|
}
|
|
field(:mattype, 8) {
|
|
number 16, true
|
|
}
|
|
field(:matindex, 12) {
|
|
number 32, true
|
|
}
|
|
field(:bow_item, 16) {
|
|
number 32, true
|
|
}
|
|
def bow_item_tg ; df.world.items.all[bow_item] ; end
|
|
field(:bow_item_type, 20) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:bow_item_subtype, 22) {
|
|
number 16, true
|
|
}
|
|
field(:bow_mattype, 24) {
|
|
number 16, true
|
|
}
|
|
field(:bow_matindex, 28) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class HospitalSupplies < MemHack::Compound
|
|
sizeof 64
|
|
|
|
field(:supplies_needed, 0) {
|
|
compound(:HospitalSupplies_TSuppliesNeeded) {
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:splints, 0) { bit 0 }
|
|
field(:thread, 0) { bit 1 }
|
|
field(:cloth, 0) { bit 2 }
|
|
field(:crutches, 0) { bit 3 }
|
|
field(:plaster, 0) { bit 4 }
|
|
field(:buckets, 0) { bit 5 }
|
|
field(:soap, 0) { bit 6 }
|
|
}
|
|
}
|
|
field(:max_splints, 4) {
|
|
number 32, true, 5
|
|
}
|
|
field(:max_thread, 8) {
|
|
number 32, true, 75000
|
|
}
|
|
field(:max_cloth, 12) {
|
|
number 32, true, 50000
|
|
}
|
|
field(:max_crutches, 16) {
|
|
number 32, true, 5
|
|
}
|
|
field(:max_plaster, 20) {
|
|
number 32, true, 750
|
|
}
|
|
field(:max_buckets, 24) {
|
|
number 32, true, 2
|
|
}
|
|
field(:max_soap, 28) {
|
|
number 32, true, 750
|
|
}
|
|
field(:cur_splints, 32) {
|
|
number 32, true
|
|
}
|
|
field(:cur_thread, 36) {
|
|
number 32, true
|
|
}
|
|
field(:cur_cloth, 40) {
|
|
number 32, true
|
|
}
|
|
field(:cur_crutches, 44) {
|
|
number 32, true
|
|
}
|
|
field(:cur_plaster, 48) {
|
|
number 32, true
|
|
}
|
|
field(:cur_buckets, 52) {
|
|
number 32, true
|
|
}
|
|
field(:cur_soap, 56) {
|
|
number 32, true
|
|
}
|
|
field(:supply_recheck_timer, 60) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class Init < MemHack::Compound
|
|
sizeof 4232
|
|
|
|
field(:display, 0) {
|
|
global :InitDisplay
|
|
}
|
|
field(:media, 40) {
|
|
global :InitMedia
|
|
}
|
|
field(:input, 52) {
|
|
global :InitInput
|
|
}
|
|
field(:font, 88) {
|
|
global :InitFont
|
|
}
|
|
field(:window, 4224) {
|
|
global :InitWindow
|
|
}
|
|
end
|
|
|
|
class InitDisplay < MemHack::Compound
|
|
sizeof 40
|
|
|
|
field(:flag, 0) {
|
|
df_flagarray(InitDisplayFlags)
|
|
}
|
|
field(:windowed, 8) {
|
|
class ::DFHack::InitDisplay_TWindowed < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :True ; NUME[:True] = 0
|
|
ENUM[1] = :False ; NUME[:False] = 1
|
|
ENUM[2] = :Prompt ; NUME[:Prompt] = 2
|
|
end
|
|
|
|
number 32, true, nil, InitDisplay_TWindowed
|
|
}
|
|
field(:grid_x, 12) {
|
|
number 32, true
|
|
}
|
|
field(:grid_y, 16) {
|
|
number 32, true
|
|
}
|
|
field(:desired_fullscreen_width, 20) {
|
|
number 32, true
|
|
}
|
|
field(:desired_fullscreen_height, 24) {
|
|
number 32, true
|
|
}
|
|
field(:desired_windowed_width, 28) {
|
|
number 32, true
|
|
}
|
|
field(:desired_windowed_height, 32) {
|
|
number 32, true
|
|
}
|
|
field(:partial_print_count, 36) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class InitFont < MemHack::Compound
|
|
sizeof 4136
|
|
|
|
field(:small_font_texpos, 0) {
|
|
static_array(256, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:large_font_texpos, 1024) {
|
|
static_array(256, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:small_font_datapos, 2048) {
|
|
static_array(256, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:large_font_datapos, 3072) {
|
|
static_array(256, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:small_font_adjx, 4096) {
|
|
float
|
|
}
|
|
field(:small_font_adjy, 4100) {
|
|
float
|
|
}
|
|
field(:large_font_adjx, 4104) {
|
|
float
|
|
}
|
|
field(:large_font_adjy, 4108) {
|
|
float
|
|
}
|
|
field(:small_font_dispx, 4112) {
|
|
number 32, true
|
|
}
|
|
field(:small_font_dispy, 4116) {
|
|
number 32, true
|
|
}
|
|
field(:large_font_dispx, 4120) {
|
|
number 32, true
|
|
}
|
|
field(:large_font_dispy, 4124) {
|
|
number 32, true
|
|
}
|
|
field(:use_ttf, 4128) {
|
|
class ::DFHack::InitFont_TUseTtf < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :TTF_OFF ; NUME[:TTF_OFF] = 0
|
|
ENUM[1] = :TTF_ON ; NUME[:TTF_ON] = 1
|
|
ENUM[2] = :TTF_AUTO ; NUME[:TTF_AUTO] = 2
|
|
end
|
|
|
|
number 32, true, nil, InitFont_TUseTtf
|
|
}
|
|
field(:ttf_limit, 4132) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class InitInput < MemHack::Compound
|
|
sizeof 36
|
|
|
|
field(:hold_time, 0) {
|
|
number 32, true
|
|
}
|
|
field(:repeat_time, 4) {
|
|
number 32, true
|
|
}
|
|
field(:macro_time, 8) {
|
|
number 32, true
|
|
}
|
|
field(:pause_zoom_no_interface_ms, 12) {
|
|
number 32, true
|
|
}
|
|
field(:flag, 16) {
|
|
df_flagarray(InitInputFlags)
|
|
}
|
|
field(:zoom_speed, 24) {
|
|
number 32, true
|
|
}
|
|
field(:repeat_accel_start, 28) {
|
|
number 32, true
|
|
}
|
|
field(:repeat_accel_limit, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class InitMedia < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:flag, 0) {
|
|
df_flagarray(InitMediaFlags)
|
|
}
|
|
field(:volume, 8) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class InitWindow < MemHack::Compound
|
|
sizeof 8
|
|
|
|
field(:flag, 0) {
|
|
df_flagarray(InitWindowFlags)
|
|
}
|
|
end
|
|
|
|
class InorganicRaw < MemHack::Compound
|
|
sizeof 756
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:str, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:flags, 16) {
|
|
df_flagarray(InorganicFlags)
|
|
}
|
|
field(:metal_ore, 24) {
|
|
compound(:InorganicRaw_TMetalOre) {
|
|
field(:str, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:mat_index, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def mat_index_tg ; mat_index.map { |i| df.world.raws.inorganics[i] } ; end
|
|
field(:probability, 24) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:thread_metal, 60) {
|
|
compound(:InorganicRaw_TThreadMetal) {
|
|
field(:str, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:mat_index, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def mat_index_tg ; mat_index.map { |i| df.world.raws.inorganics[i] } ; end
|
|
field(:probability, 24) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk1, 96) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:environment_spec, 108) {
|
|
compound(:InorganicRaw_TEnvironmentSpec) {
|
|
field(:str, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:mat_index, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def mat_index_tg ; mat_index.map { |i| df.world.raws.inorganics[i] } ; end
|
|
field(:inclusion_type, 24) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, InclusionType
|
|
}
|
|
}
|
|
field(:probability, 36) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:environment, 156) {
|
|
compound(:InorganicRaw_TEnvironment) {
|
|
field(:location, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, EnvironmentType
|
|
}
|
|
}
|
|
field(:type, 12) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, InclusionType
|
|
}
|
|
}
|
|
field(:probability, 24) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk2, 192) {
|
|
number 32, true
|
|
}
|
|
field(:material, 196) {
|
|
global :Material
|
|
}
|
|
end
|
|
|
|
class Interaction < MemHack::Compound
|
|
sizeof 64
|
|
|
|
field(:name, 0) {
|
|
stl_string
|
|
}
|
|
field(:id, 4) {
|
|
number 32, true
|
|
}
|
|
field(:str, 8) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:flags, 20) {
|
|
df_flagarray
|
|
}
|
|
field(:sources, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:targets, 40) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:effects, 52) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class InterfaceButton < MemHack::Compound
|
|
sizeof 12
|
|
|
|
rtti_classname :interface_buttonst
|
|
|
|
field(:hotkey_id, 4) {
|
|
number 32, true
|
|
}
|
|
field(:is_hidden, 8) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
def getLabel(str)
|
|
DFHack.vmethod_call(self, 4, str) ; nil
|
|
end
|
|
def click()
|
|
DFHack.vmethod_call(self, 8) ; nil
|
|
end
|
|
def setColor(selected)
|
|
DFHack.vmethod_call(self, 12, selected) ; nil
|
|
end
|
|
end
|
|
|
|
class InterfaceButtonBuildingst < InterfaceButton
|
|
sizeof 16
|
|
|
|
rtti_classname :interface_button_buildingst
|
|
|
|
field(:building, 12) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
end
|
|
|
|
class InterfaceButtonBuildingCategorySelectorst < InterfaceButtonBuildingst
|
|
sizeof 24
|
|
|
|
rtti_classname :interface_button_building_category_selectorst
|
|
|
|
field(:category_id, 16) {
|
|
number 32, true
|
|
}
|
|
field(:unk_14, 20) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class InterfaceButtonBuildingMaterialSelectorst < InterfaceButtonBuildingst
|
|
sizeof 32
|
|
|
|
rtti_classname :interface_button_building_material_selectorst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:material_category, 24) {
|
|
global :JobMaterialCategory
|
|
}
|
|
field(:unk_1c, 28) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class InterfaceButtonBuildingNewJobst < InterfaceButtonBuildingst
|
|
sizeof 52
|
|
|
|
rtti_classname :interface_button_building_new_jobst
|
|
|
|
field(:job_type, 16) {
|
|
number 32, true, nil, JobType
|
|
}
|
|
field(:reaction_name, 20) {
|
|
stl_string
|
|
}
|
|
field(:unused_30, 24) {
|
|
number 16, true
|
|
}
|
|
field(:item_subtype, 26) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 28) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 32) {
|
|
number 32, true
|
|
}
|
|
field(:item_category, 36) {
|
|
global :StockpileGroupSet
|
|
}
|
|
field(:hist_figure_id, 40) {
|
|
number 32, true
|
|
}
|
|
def hist_figure_tg ; df.world.history.figures[hist_figure_id] ; end
|
|
field(:material_category, 44) {
|
|
global :JobMaterialCategory
|
|
}
|
|
field(:unk_48, 48) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:is_custom, 49) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class InterfaceButtonButtonst < InterfaceButton
|
|
sizeof 12
|
|
|
|
rtti_classname :interface_button_buttonst
|
|
|
|
field(:anon_1, 9) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class InterfaceButtonButtonDesignateSelectst < InterfaceButtonButtonst
|
|
sizeof 12
|
|
|
|
rtti_classname :interface_button_button_designate_selectst
|
|
|
|
end
|
|
|
|
class InterfaceButtonButtonDonest < InterfaceButtonButtonst
|
|
sizeof 12
|
|
|
|
rtti_classname :interface_button_button_donest
|
|
|
|
end
|
|
|
|
class InterfaceButtonButtonOpenBitemDesignationst < InterfaceButtonButtonst
|
|
sizeof 12
|
|
|
|
rtti_classname :interface_button_button_open_bitem_designationst
|
|
|
|
end
|
|
|
|
class InterfaceButtonButtonOpenTrafficDesignationst < InterfaceButtonButtonst
|
|
sizeof 12
|
|
|
|
rtti_classname :interface_button_button_open_traffic_designationst
|
|
|
|
end
|
|
|
|
class InterfaceButtonConstructionst < InterfaceButton
|
|
sizeof 16
|
|
|
|
rtti_classname :interface_button_constructionst
|
|
|
|
field(:unused_c, 12) {
|
|
pointer {
|
|
}
|
|
}
|
|
end
|
|
|
|
class InterfaceButtonConstructionBuildingSelectorst < InterfaceButtonConstructionst
|
|
sizeof 28
|
|
|
|
rtti_classname :interface_button_construction_building_selectorst
|
|
|
|
field(:building_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:building_subtype, 18) {
|
|
number 16, true
|
|
}
|
|
field(:custom_type, 20) {
|
|
number 32, true
|
|
}
|
|
def custom_type_tg ; df.world.raws.buildings.all[custom_type] ; end
|
|
field(:existing_count, 24) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class InterfaceButtonConstructionCategorySelectorst < InterfaceButtonConstructionst
|
|
sizeof 20
|
|
|
|
rtti_classname :interface_button_construction_category_selectorst
|
|
|
|
field(:category_id, 16) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class InterfaceButtonConstructionDonest < InterfaceButtonConstructionst
|
|
sizeof 16
|
|
|
|
rtti_classname :interface_button_construction_donest
|
|
|
|
end
|
|
|
|
class Interfacest < MemHack::Compound
|
|
sizeof 1812876
|
|
|
|
field(:original_fps, 0) {
|
|
number 32, true
|
|
}
|
|
field(:view, 4) {
|
|
global :Viewscreen
|
|
}
|
|
field(:flag, 20) {
|
|
number 32, false
|
|
}
|
|
field(:shutdown_interface_tickcount, 24) {
|
|
number 32, true
|
|
}
|
|
field(:shutdown_interface_for_ms, 28) {
|
|
number 32, true
|
|
}
|
|
field(:supermovie_on, 32) {
|
|
number 8, false
|
|
}
|
|
field(:supermovie_pos, 36) {
|
|
number 32, true
|
|
}
|
|
field(:supermovie_delayrate, 40) {
|
|
number 32, true
|
|
}
|
|
field(:supermovie_delaystep, 44) {
|
|
number 32, true
|
|
}
|
|
field(:supermovie_sound, 48) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:supermovie_sound_time, 60) {
|
|
static_array(16, 800) {
|
|
static_array(200, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:supermoviebuffer, 12860) {
|
|
}
|
|
field(:supermoviebuffer_comp, 812860) {
|
|
}
|
|
field(:currentblocksize, 1812860) {
|
|
number 32, true
|
|
}
|
|
field(:nextfilepos, 1812864) {
|
|
number 32, true
|
|
}
|
|
field(:first_movie_write, 1812868) {
|
|
number 8, false
|
|
}
|
|
field(:movie_file, 1812872) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class InvasionInfo < MemHack::Compound
|
|
sizeof 28
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:civ_id, 4) {
|
|
number 32, true
|
|
}
|
|
def civ_tg ; df.world.entities.all[civ_id] ; end
|
|
field(:active_size1, 8) {
|
|
number 32, true
|
|
}
|
|
field(:active_size2, 12) {
|
|
number 32, true
|
|
}
|
|
field(:size, 16) {
|
|
number 32, true
|
|
}
|
|
field(:duration_counter, 20) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 24) {
|
|
compound(:InvasionInfo_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 16, false
|
|
}
|
|
field(:active, 0) { bit 0 }
|
|
field(:siege, 0) { bit 1 }
|
|
}
|
|
}
|
|
field(:unk4b, 26) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class Item < MemHack::Compound
|
|
sizeof 92
|
|
|
|
rtti_classname :itemst
|
|
|
|
field(:pos, 4) {
|
|
global :Coord
|
|
}
|
|
field(:flags, 12) {
|
|
global :ItemFlags
|
|
}
|
|
field(:flags2, 16) {
|
|
global :ItemFlags2
|
|
}
|
|
field(:age, 20) {
|
|
number 32, false
|
|
}
|
|
field(:id, 24) {
|
|
number 32, true
|
|
}
|
|
field(:specific_refs, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :SpecificRef
|
|
}
|
|
}
|
|
}
|
|
field(:itemrefs, 40) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :GeneralRef
|
|
}
|
|
}
|
|
}
|
|
field(:world_data_id, 52) {
|
|
number 32, true, -1
|
|
}
|
|
field(:world_data_subid, 56) {
|
|
number 32, true, -1
|
|
}
|
|
field(:temp, 60) {
|
|
compound(:Item_TTemp) {
|
|
field(:unk1a, 0) {
|
|
number 8, false
|
|
}
|
|
field(:unk1b, 1) {
|
|
number 8, false
|
|
}
|
|
field(:unk2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:unk3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:unk4, 6) {
|
|
number 16, true
|
|
}
|
|
field(:unk5, 8) {
|
|
number 16, true
|
|
}
|
|
field(:spec_heat, 10) {
|
|
number 16, true
|
|
}
|
|
field(:ignite_point, 12) {
|
|
number 16, true
|
|
}
|
|
field(:heatdam_point, 14) {
|
|
number 16, true
|
|
}
|
|
field(:colddam_point, 16) {
|
|
number 16, true
|
|
}
|
|
field(:boiling_point, 18) {
|
|
number 16, true
|
|
}
|
|
field(:melting_point, 20) {
|
|
number 16, true
|
|
}
|
|
field(:fixed_temp, 22) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:weight, 84) {
|
|
number 32, true
|
|
}
|
|
field(:weight_fraction, 88) {
|
|
number 32, true
|
|
}
|
|
def getType()
|
|
ItemType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def getSubtype()
|
|
val = DFHack.vmethod_call(self, 4)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def getMaterial()
|
|
val = DFHack.vmethod_call(self, 8)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def getMaterialIndex()
|
|
val = DFHack.vmethod_call(self, 12)
|
|
end
|
|
def setSubtype(arg0)
|
|
DFHack.vmethod_call(self, 16, arg0) ; nil
|
|
end
|
|
def setMaterial(arg0)
|
|
DFHack.vmethod_call(self, 20, arg0) ; nil
|
|
end
|
|
def setMaterialIndex(arg0)
|
|
DFHack.vmethod_call(self, 24, arg0) ; nil
|
|
end
|
|
def getActualMaterial()
|
|
val = DFHack.vmethod_call(self, 28)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def getActualMaterialIndex()
|
|
val = DFHack.vmethod_call(self, 32)
|
|
end
|
|
def getRace()
|
|
val = DFHack.vmethod_call(self, 36)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def getCaste()
|
|
val = DFHack.vmethod_call(self, 40)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def getPlantID()
|
|
val = DFHack.vmethod_call(self, 44)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def getTotalDimension()
|
|
val = DFHack.vmethod_call(self, 48)
|
|
end
|
|
def setDimension(amount)
|
|
DFHack.vmethod_call(self, 52, amount) ; nil
|
|
end
|
|
def subtractDimension(amount)
|
|
val = DFHack.vmethod_call(self, 56, amount)
|
|
(val & 1) != 0
|
|
end
|
|
def isFoodStorage()
|
|
val = DFHack.vmethod_call(self, 60)
|
|
(val & 1) != 0
|
|
end
|
|
def isTrackCart()
|
|
val = DFHack.vmethod_call(self, 64)
|
|
(val & 1) != 0
|
|
end
|
|
def isWheelbarrow()
|
|
val = DFHack.vmethod_call(self, 68)
|
|
(val & 1) != 0
|
|
end
|
|
def getVehicleID()
|
|
val = DFHack.vmethod_call(self, 72)
|
|
end
|
|
def getStockpile()
|
|
ptr = DFHack.vmethod_call(self, 76)
|
|
class << self
|
|
global :ItemStockpileRef
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def containsPlaster()
|
|
val = DFHack.vmethod_call(self, 80)
|
|
(val & 1) != 0
|
|
end
|
|
def isPlaster()
|
|
val = DFHack.vmethod_call(self, 84)
|
|
(val & 1) != 0
|
|
end
|
|
def getColorOverride(arg0)
|
|
val = DFHack.vmethod_call(self, 88, arg0)
|
|
(val & 1) != 0
|
|
end
|
|
def getHistoryInfo()
|
|
ptr = DFHack.vmethod_call(self, 92)
|
|
class << self
|
|
pointer {
|
|
global :ItemHistoryInfo
|
|
}
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def hasToolUse(arg0)
|
|
val = DFHack.vmethod_call(self, 96, arg0)
|
|
(val & 1) != 0
|
|
end
|
|
def becomePaste()
|
|
DFHack.vmethod_call(self, 104) ; nil
|
|
end
|
|
def becomePressed()
|
|
DFHack.vmethod_call(self, 108) ; nil
|
|
end
|
|
def calculateWeight()
|
|
DFHack.vmethod_call(self, 112) ; nil
|
|
end
|
|
def isSharpStone()
|
|
val = DFHack.vmethod_call(self, 116)
|
|
(val & 1) != 0
|
|
end
|
|
def isCrystalGlassable()
|
|
val = DFHack.vmethod_call(self, 120)
|
|
(val & 1) != 0
|
|
end
|
|
def isMetalOre(matIndex)
|
|
val = DFHack.vmethod_call(self, 124, matIndex)
|
|
(val & 1) != 0
|
|
end
|
|
def getSpecHeat()
|
|
val = DFHack.vmethod_call(self, 136)
|
|
val & ((1 << 16) - 1)
|
|
end
|
|
def getIgnitePoint()
|
|
val = DFHack.vmethod_call(self, 140)
|
|
val & ((1 << 16) - 1)
|
|
end
|
|
def getHeatdamPoint()
|
|
val = DFHack.vmethod_call(self, 144)
|
|
val & ((1 << 16) - 1)
|
|
end
|
|
def getColddamPoint()
|
|
val = DFHack.vmethod_call(self, 148)
|
|
val & ((1 << 16) - 1)
|
|
end
|
|
def getBoilingPoint()
|
|
val = DFHack.vmethod_call(self, 152)
|
|
val & ((1 << 16) - 1)
|
|
end
|
|
def getMeltingPoint()
|
|
val = DFHack.vmethod_call(self, 156)
|
|
val & ((1 << 16) - 1)
|
|
end
|
|
def getFixedTemp()
|
|
val = DFHack.vmethod_call(self, 160)
|
|
val & ((1 << 16) - 1)
|
|
end
|
|
def getSolidDensity()
|
|
val = DFHack.vmethod_call(self, 164)
|
|
end
|
|
def materialRots()
|
|
val = DFHack.vmethod_call(self, 168)
|
|
(val & 1) != 0
|
|
end
|
|
def getTemperature()
|
|
val = DFHack.vmethod_call(self, 172)
|
|
val & ((1 << 16) - 1)
|
|
end
|
|
def adjustTemperature(target, unk)
|
|
val = DFHack.vmethod_call(self, 176, target, unk)
|
|
(val & 1) != 0
|
|
end
|
|
def extinguish()
|
|
DFHack.vmethod_call(self, 184) ; nil
|
|
end
|
|
def getGloveHandedness()
|
|
val = DFHack.vmethod_call(self, 188)
|
|
val &= ((1 << 8) - 1)
|
|
((val >> (8-1)) & 1) == 0 ? val : val - (1 << 8)
|
|
end
|
|
def setGloveHandedness(arg0)
|
|
DFHack.vmethod_call(self, 192, arg0) ; nil
|
|
end
|
|
def isSpike()
|
|
val = DFHack.vmethod_call(self, 196)
|
|
(val & 1) != 0
|
|
end
|
|
def isScrew()
|
|
val = DFHack.vmethod_call(self, 200)
|
|
(val & 1) != 0
|
|
end
|
|
def isBuildMat()
|
|
val = DFHack.vmethod_call(self, 204)
|
|
(val & 1) != 0
|
|
end
|
|
def isTemperatureSafe(arg0)
|
|
val = DFHack.vmethod_call(self, 208, arg0)
|
|
(val & 1) != 0
|
|
end
|
|
def setRandSubtype(arg0)
|
|
DFHack.vmethod_call(self, 212, arg0) ; nil
|
|
end
|
|
def getWear()
|
|
val = DFHack.vmethod_call(self, 220)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def setWear(arg0)
|
|
DFHack.vmethod_call(self, 224, arg0) ; nil
|
|
end
|
|
def getMaker()
|
|
val = DFHack.vmethod_call(self, 228)
|
|
end
|
|
def setMaker(unit_id)
|
|
DFHack.vmethod_call(self, 232, unit_id) ; nil
|
|
end
|
|
def getCorpseInfo(prace, pcaste, phfig, punit)
|
|
DFHack.vmethod_call(self, 236, prace, pcaste, phfig, punit) ; nil
|
|
end
|
|
def getGloveFlags()
|
|
ptr = DFHack.vmethod_call(self, 244)
|
|
class << self
|
|
df_flagarray
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getItemShapeDesc()
|
|
ptr = DFHack.vmethod_call(self, 248)
|
|
class << self
|
|
stl_string
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def isMatchingAmmoItem(arg0)
|
|
val = DFHack.vmethod_call(self, 252, arg0)
|
|
(val & 1) != 0
|
|
end
|
|
def setSeedsUnk84(arg0)
|
|
DFHack.vmethod_call(self, 268, arg0) ; nil
|
|
end
|
|
def getCorpseUnk17c()
|
|
val = DFHack.vmethod_call(self, 272)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def ageItem(amount)
|
|
DFHack.vmethod_call(self, 276, amount) ; nil
|
|
end
|
|
def getCritterUnk80()
|
|
val = DFHack.vmethod_call(self, 280)
|
|
end
|
|
def setCritterUnk80(arg0)
|
|
DFHack.vmethod_call(self, 284, arg0) ; nil
|
|
end
|
|
def incrementCritterUnk80()
|
|
DFHack.vmethod_call(self, 288) ; nil
|
|
end
|
|
def getRotTimer()
|
|
val = DFHack.vmethod_call(self, 292)
|
|
end
|
|
def setRotTimer(val)
|
|
DFHack.vmethod_call(self, 296, val) ; nil
|
|
end
|
|
def incrementRotTimer()
|
|
DFHack.vmethod_call(self, 300) ; nil
|
|
end
|
|
def isBogeymanCorpse()
|
|
val = DFHack.vmethod_call(self, 304)
|
|
(val & 1) != 0
|
|
end
|
|
def getAmmoType(arg0)
|
|
ptr = DFHack.vmethod_call(self, 312, arg0)
|
|
class << self
|
|
stl_string
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def isLiquidPowder()
|
|
val = DFHack.vmethod_call(self, 316)
|
|
(val & 1) != 0
|
|
end
|
|
def isLiquid()
|
|
val = DFHack.vmethod_call(self, 320)
|
|
(val & 1) != 0
|
|
end
|
|
def getVolume()
|
|
val = DFHack.vmethod_call(self, 328)
|
|
end
|
|
def isArmorNotClothing()
|
|
val = DFHack.vmethod_call(self, 340)
|
|
(val & 1) != 0
|
|
end
|
|
def isMillable()
|
|
val = DFHack.vmethod_call(self, 344)
|
|
(val & 1) != 0
|
|
end
|
|
def isProcessableThread()
|
|
val = DFHack.vmethod_call(self, 348)
|
|
(val & 1) != 0
|
|
end
|
|
def isProcessableVial()
|
|
val = DFHack.vmethod_call(self, 352)
|
|
(val & 1) != 0
|
|
end
|
|
def isProcessableBag()
|
|
val = DFHack.vmethod_call(self, 356)
|
|
(val & 1) != 0
|
|
end
|
|
def isProcessableBarrel()
|
|
val = DFHack.vmethod_call(self, 360)
|
|
(val & 1) != 0
|
|
end
|
|
def isEdiblePlant()
|
|
val = DFHack.vmethod_call(self, 364)
|
|
(val & 1) != 0
|
|
end
|
|
def isEdibleRaw(hunger)
|
|
val = DFHack.vmethod_call(self, 368, hunger)
|
|
(val & 1) != 0
|
|
end
|
|
def isEdibleMeat(hunger)
|
|
val = DFHack.vmethod_call(self, 372, hunger)
|
|
(val & 1) != 0
|
|
end
|
|
def isEdibleCorpse(hunger)
|
|
val = DFHack.vmethod_call(self, 376, hunger)
|
|
(val & 1) != 0
|
|
end
|
|
def moveToGround(arg0, arg1, arg2)
|
|
val = DFHack.vmethod_call(self, 380, arg0, arg1, arg2)
|
|
(val & 1) != 0
|
|
end
|
|
def categorize(arg0)
|
|
DFHack.vmethod_call(self, 384, arg0) ; nil
|
|
end
|
|
def uncategorize()
|
|
DFHack.vmethod_call(self, 388) ; nil
|
|
end
|
|
def isFurniture(empty)
|
|
val = DFHack.vmethod_call(self, 392, empty)
|
|
(val & 1) != 0
|
|
end
|
|
def isPressed()
|
|
val = DFHack.vmethod_call(self, 396)
|
|
(val & 1) != 0
|
|
end
|
|
def isCageOrTrap()
|
|
val = DFHack.vmethod_call(self, 400)
|
|
(val & 1) != 0
|
|
end
|
|
def assignQuality(maker, job_skill)
|
|
DFHack.vmethod_call(self, 404, maker, JobSkill.int(job_skill)) ; nil
|
|
end
|
|
def notifyLostMasterwork()
|
|
DFHack.vmethod_call(self, 408) ; nil
|
|
end
|
|
def isDamagedByHeat()
|
|
val = DFHack.vmethod_call(self, 436)
|
|
(val & 1) != 0
|
|
end
|
|
def needTwoHandedWield(arg0)
|
|
val = DFHack.vmethod_call(self, 440, arg0)
|
|
(val & 1) != 0
|
|
end
|
|
def splitStack(arg0, arg1)
|
|
ptr = DFHack.vmethod_call(self, 444, arg0, arg1)
|
|
class << self
|
|
global :Item
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def isTameableVermin()
|
|
val = DFHack.vmethod_call(self, 448)
|
|
(val & 1) != 0
|
|
end
|
|
def isDistillable(checkKitchenSettings)
|
|
val = DFHack.vmethod_call(self, 452, checkKitchenSettings)
|
|
(val & 1) != 0
|
|
end
|
|
def isDye()
|
|
val = DFHack.vmethod_call(self, 456)
|
|
(val & 1) != 0
|
|
end
|
|
def isMilkable()
|
|
val = DFHack.vmethod_call(self, 460)
|
|
(val & 1) != 0
|
|
end
|
|
def isSandBearing()
|
|
val = DFHack.vmethod_call(self, 464)
|
|
(val & 1) != 0
|
|
end
|
|
def isLyeBearing()
|
|
val = DFHack.vmethod_call(self, 468)
|
|
(val & 1) != 0
|
|
end
|
|
def isAnimalProduct()
|
|
val = DFHack.vmethod_call(self, 472)
|
|
(val & 1) != 0
|
|
end
|
|
def addWear(delta, simple, lose_masterwork)
|
|
val = DFHack.vmethod_call(self, 480, delta, simple, lose_masterwork)
|
|
(val & 1) != 0
|
|
end
|
|
def incWearTimer(delta)
|
|
val = DFHack.vmethod_call(self, 484, delta)
|
|
(val & 1) != 0
|
|
end
|
|
def checkWearDestroy(simple, lose_masterwork)
|
|
val = DFHack.vmethod_call(self, 488, simple, lose_masterwork)
|
|
(val & 1) != 0
|
|
end
|
|
def addContaminant(mat_type, mat_index, mat_state, temp, size, unk, flags)
|
|
DFHack.vmethod_call(self, 492, mat_type, mat_index, MatterState.int(mat_state), temp, size, unk, flags) ; nil
|
|
end
|
|
def removeContaminantByIdx(index, amount)
|
|
DFHack.vmethod_call(self, 496, index, amount) ; nil
|
|
end
|
|
def removeContaminant(mat_type, mat_index, amount)
|
|
DFHack.vmethod_call(self, 500, mat_type, mat_index, amount) ; nil
|
|
end
|
|
def tradeUnitContaminants(arg0, body_part_id)
|
|
DFHack.vmethod_call(self, 504, arg0, body_part_id) ; nil
|
|
end
|
|
def tradeItemContaminants(arg0)
|
|
DFHack.vmethod_call(self, 508, arg0) ; nil
|
|
end
|
|
def tradeItemContaminants2(arg0)
|
|
DFHack.vmethod_call(self, 512, arg0) ; nil
|
|
end
|
|
def contaminateWound(arg0, arg1, shift, body_part_id)
|
|
DFHack.vmethod_call(self, 516, arg0, arg1, shift, body_part_id) ; nil
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 520, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 524, arg0, loadversion) ; nil
|
|
end
|
|
def getWeaponAttacks()
|
|
ptr = DFHack.vmethod_call(self, 528)
|
|
class << self
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def isBag()
|
|
val = DFHack.vmethod_call(self, 552)
|
|
(val & 1) != 0
|
|
end
|
|
def isSand()
|
|
val = DFHack.vmethod_call(self, 556)
|
|
(val & 1) != 0
|
|
end
|
|
def getStackSize()
|
|
val = DFHack.vmethod_call(self, 564)
|
|
end
|
|
def addStackSize(amount)
|
|
DFHack.vmethod_call(self, 568, amount) ; nil
|
|
end
|
|
def setStackSize(amount)
|
|
DFHack.vmethod_call(self, 572, amount) ; nil
|
|
end
|
|
def isAmmoClass(arg0)
|
|
val = DFHack.vmethod_call(self, 576, arg0)
|
|
(val & 1) != 0
|
|
end
|
|
def updateTempFromMap(local, contained, adjust, multiplier)
|
|
val = DFHack.vmethod_call(self, 596, local, contained, adjust, multiplier)
|
|
(val & 1) != 0
|
|
end
|
|
def updateTemperature(temp, local, contained, adjust, multiplier)
|
|
val = DFHack.vmethod_call(self, 600, temp, local, contained, adjust, multiplier)
|
|
(val & 1) != 0
|
|
end
|
|
def updateFromWeather()
|
|
val = DFHack.vmethod_call(self, 604)
|
|
(val & 1) != 0
|
|
end
|
|
def updateContaminants()
|
|
val = DFHack.vmethod_call(self, 608)
|
|
(val & 1) != 0
|
|
end
|
|
def checkTemperatureDamage()
|
|
val = DFHack.vmethod_call(self, 612)
|
|
(val & 1) != 0
|
|
end
|
|
def checkHeatColdDamage()
|
|
val = DFHack.vmethod_call(self, 616)
|
|
(val & 1) != 0
|
|
end
|
|
def checkMeltBoil()
|
|
val = DFHack.vmethod_call(self, 620)
|
|
(val & 1) != 0
|
|
end
|
|
def getMeleeSkill()
|
|
val = DFHack.vmethod_call(self, 624)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def getRangedSkill()
|
|
val = DFHack.vmethod_call(self, 628)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def setQuality(quality)
|
|
DFHack.vmethod_call(self, 632, quality) ; nil
|
|
end
|
|
def getQuality()
|
|
val = DFHack.vmethod_call(self, 636)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def getOverallQuality()
|
|
val = DFHack.vmethod_call(self, 640)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def getImprovementQuality()
|
|
val = DFHack.vmethod_call(self, 644)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def getProjectileSize()
|
|
val = DFHack.vmethod_call(self, 648)
|
|
end
|
|
def isImprovable(arg0, arg1, arg2)
|
|
val = DFHack.vmethod_call(self, 652, arg0, arg1, arg2)
|
|
(val & 1) != 0
|
|
end
|
|
def setSharpness(unk1, unk2)
|
|
DFHack.vmethod_call(self, 656, unk1, unk2) ; nil
|
|
end
|
|
def getSharpness()
|
|
val = DFHack.vmethod_call(self, 660)
|
|
end
|
|
def isTotemable()
|
|
val = DFHack.vmethod_call(self, 664)
|
|
(val & 1) != 0
|
|
end
|
|
def isDyeable()
|
|
val = DFHack.vmethod_call(self, 668)
|
|
(val & 1) != 0
|
|
end
|
|
def isNotDyed()
|
|
val = DFHack.vmethod_call(self, 672)
|
|
(val & 1) != 0
|
|
end
|
|
def isDyed()
|
|
val = DFHack.vmethod_call(self, 676)
|
|
(val & 1) != 0
|
|
end
|
|
def canSewImage()
|
|
val = DFHack.vmethod_call(self, 680)
|
|
(val & 1) != 0
|
|
end
|
|
def isProcessableVialAtStill()
|
|
val = DFHack.vmethod_call(self, 688)
|
|
(val & 1) != 0
|
|
end
|
|
def getBlockChance()
|
|
val = DFHack.vmethod_call(self, 696)
|
|
end
|
|
def getMakerRace()
|
|
val = DFHack.vmethod_call(self, 704)
|
|
val &= ((1 << 16) - 1)
|
|
((val >> (16-1)) & 1) == 0 ? val : val - (1 << 16)
|
|
end
|
|
def setMakerRace(arg0)
|
|
DFHack.vmethod_call(self, 708, arg0) ; nil
|
|
end
|
|
def getEffectiveArmorLevel()
|
|
val = DFHack.vmethod_call(self, 712)
|
|
val &= ((1 << 8) - 1)
|
|
((val >> (8-1)) & 1) == 0 ? val : val - (1 << 8)
|
|
end
|
|
def isOrganicCloth()
|
|
val = DFHack.vmethod_call(self, 720)
|
|
(val & 1) != 0
|
|
end
|
|
def coverWithContaminant(mat_type, mat_index, mat_state, temperature)
|
|
DFHack.vmethod_call(self, 728, mat_type, mat_index, MatterState.int(mat_state), temperature) ; nil
|
|
end
|
|
def isImproved()
|
|
val = DFHack.vmethod_call(self, 736)
|
|
(val & 1) != 0
|
|
end
|
|
def getMagic()
|
|
ptr = DFHack.vmethod_call(self, 740)
|
|
class << self
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemMagicness
|
|
}
|
|
}
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getItemDescription(arg0, mode)
|
|
DFHack.vmethod_call(self, 744, arg0, mode) ; nil
|
|
end
|
|
def getItemDescriptionPrefix(arg0, mode)
|
|
DFHack.vmethod_call(self, 748, arg0, mode) ; nil
|
|
end
|
|
def getItemBasicName(arg0)
|
|
DFHack.vmethod_call(self, 752, arg0) ; nil
|
|
end
|
|
def getImprovementsValue(entity_id)
|
|
val = DFHack.vmethod_call(self, 756, entity_id)
|
|
end
|
|
def isExtractBearingFish()
|
|
val = DFHack.vmethod_call(self, 760)
|
|
(val & 1) != 0
|
|
end
|
|
def isExtractBearingVermin()
|
|
val = DFHack.vmethod_call(self, 764)
|
|
(val & 1) != 0
|
|
end
|
|
def getBaseWeight()
|
|
val = DFHack.vmethod_call(self, 772)
|
|
end
|
|
def getWeightShiftBits()
|
|
val = DFHack.vmethod_call(self, 776)
|
|
end
|
|
def isCollected()
|
|
val = DFHack.vmethod_call(self, 780)
|
|
(val & 1) != 0
|
|
end
|
|
def isEdibleVermin()
|
|
val = DFHack.vmethod_call(self, 784)
|
|
(val & 1) != 0
|
|
end
|
|
def drawSelf()
|
|
DFHack.vmethod_call(self, 788) ; nil
|
|
end
|
|
def isRangedWeapon()
|
|
val = DFHack.vmethod_call(self, 792)
|
|
(val & 1) != 0
|
|
end
|
|
def isClothing()
|
|
val = DFHack.vmethod_call(self, 796)
|
|
(val & 1) != 0
|
|
end
|
|
def isWet()
|
|
val = DFHack.vmethod_call(self, 800)
|
|
(val & 1) != 0
|
|
end
|
|
def isAssignedToStockpile()
|
|
val = DFHack.vmethod_call(self, 808)
|
|
(val & 1) != 0
|
|
end
|
|
def isAssignedToThisStockpile(arg0)
|
|
val = DFHack.vmethod_call(self, 812, arg0)
|
|
(val & 1) != 0
|
|
end
|
|
def removeStockpileAssignment()
|
|
DFHack.vmethod_call(self, 820) ; nil
|
|
end
|
|
def getStockpile2()
|
|
ptr = DFHack.vmethod_call(self, 824)
|
|
class << self
|
|
global :ItemStockpileRef
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getThreadDyeValue(arg0)
|
|
val = DFHack.vmethod_call(self, 840, arg0)
|
|
end
|
|
def getSlabEngravingType()
|
|
SlabEngravingType.sym(DFHack.vmethod_call(self, 892))
|
|
end
|
|
def getAbsorption()
|
|
val = DFHack.vmethod_call(self, 896)
|
|
end
|
|
def isGemMaterial()
|
|
val = DFHack.vmethod_call(self, 904)
|
|
(val & 1) != 0
|
|
end
|
|
def setGemShape(shape)
|
|
DFHack.vmethod_call(self, 908, shape) ; nil
|
|
end
|
|
def hasGemShape()
|
|
val = DFHack.vmethod_call(self, 912)
|
|
(val & 1) != 0
|
|
end
|
|
def getGemShape()
|
|
val = DFHack.vmethod_call(self, 916)
|
|
end
|
|
end
|
|
|
|
class ItemActual < Item
|
|
sizeof 128
|
|
|
|
rtti_classname :item_actualst
|
|
|
|
field(:stack_size, 92) {
|
|
number 32, true
|
|
}
|
|
field(:history_info, 96) {
|
|
pointer {
|
|
pointer {
|
|
global :ItemHistoryInfo
|
|
}
|
|
}
|
|
}
|
|
field(:magic, 100) {
|
|
pointer {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemMagicness
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:contaminants, 104) {
|
|
pointer {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Contaminant
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:temperature, 108) {
|
|
number 16, false
|
|
}
|
|
field(:temperature_fraction, 110) {
|
|
number 16, false
|
|
}
|
|
field(:wear, 112) {
|
|
number 16, true
|
|
}
|
|
field(:wear_timer, 116) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 120) {
|
|
number 32, true, -1
|
|
}
|
|
field(:temp_updated_frame, 124) {
|
|
number 32, true, -1
|
|
}
|
|
end
|
|
|
|
class ItemCrafted < ItemActual
|
|
sizeof 152
|
|
|
|
rtti_classname :item_craftedst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:maker_race, 136) {
|
|
number 16, true
|
|
}
|
|
def maker_race_tg ; df.world.raws.creatures.all[maker_race] ; end
|
|
field(:quality, 138) {
|
|
number 16, true, nil, ItemQuality
|
|
}
|
|
field(:skill_used, 140) {
|
|
number 32, true, nil, JobSkill
|
|
}
|
|
field(:maker, 144) {
|
|
number 32, true
|
|
}
|
|
def maker_tg ; df.world.history.figures[maker] ; end
|
|
field(:masterpiece_event, 148) {
|
|
number 32, true
|
|
}
|
|
def masterpiece_event_tg ; df.world.history.events[masterpiece_event] ; end
|
|
end
|
|
|
|
class ItemConstructed < ItemCrafted
|
|
sizeof 164
|
|
|
|
rtti_classname :item_constructedst
|
|
|
|
field(:improvements, 152) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Itemimprovement
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemAmmost < ItemConstructed
|
|
sizeof 172
|
|
|
|
rtti_classname :item_ammost
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefAmmost
|
|
}
|
|
}
|
|
field(:sharpness, 168) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemAmuletst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_amuletst
|
|
|
|
end
|
|
|
|
class ItemAnimaltrapst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_animaltrapst
|
|
|
|
end
|
|
|
|
class ItemAnvilst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_anvilst
|
|
|
|
end
|
|
|
|
class ItemArmorst < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_armorst
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefArmorst
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemArmorstandst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_armorstandst
|
|
|
|
end
|
|
|
|
class ItemBackpackst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_backpackst
|
|
|
|
end
|
|
|
|
class ItemBallistaarrowheadst < ItemActual
|
|
sizeof 136
|
|
|
|
rtti_classname :item_ballistaarrowheadst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemBallistapartsst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_ballistapartsst
|
|
|
|
end
|
|
|
|
class ItemBarrelst < ItemConstructed
|
|
sizeof 172
|
|
|
|
rtti_classname :item_barrelst
|
|
|
|
field(:stockpile, 164) {
|
|
global :ItemStockpileRef
|
|
}
|
|
end
|
|
|
|
class ItemBarst < ItemActual
|
|
sizeof 140
|
|
|
|
rtti_classname :item_barst
|
|
|
|
field(:subtype, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 130) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:dimension, 136) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemBedst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_bedst
|
|
|
|
end
|
|
|
|
class ItemBinst < ItemConstructed
|
|
sizeof 172
|
|
|
|
rtti_classname :item_binst
|
|
|
|
field(:stockpile, 164) {
|
|
global :ItemStockpileRef
|
|
}
|
|
end
|
|
|
|
class ItemBlocksst < ItemActual
|
|
sizeof 136
|
|
|
|
rtti_classname :item_blocksst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemBodyComponent < ItemActual
|
|
sizeof 628
|
|
|
|
rtti_classname :item_body_componentst
|
|
|
|
field(:race, 128) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:hist_figure_id, 132) {
|
|
number 32, true
|
|
}
|
|
def hist_figure_tg ; df.world.history.figures[hist_figure_id] ; end
|
|
field(:unit_id, 136) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:caste, 140) {
|
|
number 16, true
|
|
}
|
|
field(:sex, 142) {
|
|
number 8, false
|
|
}
|
|
field(:race2, 144) {
|
|
number 16, true
|
|
}
|
|
def race2_tg ; df.world.raws.creatures.all[race2] ; end
|
|
field(:caste2, 146) {
|
|
number 16, true
|
|
}
|
|
field(:unk_88, 148) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8c, 152) {
|
|
number 8, false
|
|
}
|
|
field(:body, 156) {
|
|
compound(:ItemBodyComponent_TBody) {
|
|
field(:wounds, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk_100, 12) {
|
|
static_array(10, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_c8, 52) {
|
|
number 32, true
|
|
}
|
|
field(:components, 56) {
|
|
global :BodyComponentInfo
|
|
}
|
|
field(:physical_attr_unk1, 152) {
|
|
static_array(6, 4, PhysicalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:physical_attr_unk2, 176) {
|
|
static_array(6, 4, PhysicalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:physical_attr_unk3, 200) {
|
|
static_array(6, 4, PhysicalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_194, 224) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_1a4, 236) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_1b4, 248) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_18c, 260) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:birth_year, 420) {
|
|
number 32, true
|
|
}
|
|
field(:birth_time, 424) {
|
|
number 32, true
|
|
}
|
|
field(:curse_year, 428) {
|
|
number 32, true
|
|
}
|
|
field(:curse_time, 432) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 436) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 440) {
|
|
number 32, true
|
|
}
|
|
field(:death_year, 444) {
|
|
number 32, true
|
|
}
|
|
field(:death_time, 448) {
|
|
number 32, true
|
|
}
|
|
field(:appearance, 452) {
|
|
compound(:ItemBodyComponent_TAppearance) {
|
|
field(:colors, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_1e8, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_1f8, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_208, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_218, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:blood_count, 512) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1e0, 516) {
|
|
number 32, true
|
|
}
|
|
field(:hist_figure_id2, 520) {
|
|
number 32, true
|
|
}
|
|
def hist_figure_tg2 ; df.world.history.figures[hist_figure_id2] ; end
|
|
field(:anon_3, 524) {
|
|
number 32, true
|
|
}
|
|
field(:unit_id2, 528) {
|
|
number 32, true
|
|
}
|
|
def unit_tg2 ; df.world.units.all[unit_id2] ; end
|
|
field(:corpse_flags, 532) {
|
|
compound(:ItemBodyComponent_TCorpseFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unbutchered, 0) { bit 0 }
|
|
field(:bone, 0) { bit 4 }
|
|
field(:shell, 0) { bit 5 }
|
|
field(:skull, 0) { bit 12 }
|
|
field(:separated_part, 0) { bit 13 }
|
|
field(:hair_wool, 0) { bit 14 }
|
|
field(:yarn, 0) { bit 15 }
|
|
}
|
|
}
|
|
field(:material_amount, 536) {
|
|
static_array(19, 4, CorpseMaterialType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:bone1, 612) {
|
|
compound(:ItemBodyComponent_TBone1) {
|
|
field(:mat_type, 0) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:bone2, 620) {
|
|
compound(:ItemBodyComponent_TBone2) {
|
|
field(:mat_type, 0) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemBookst < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_bookst
|
|
|
|
field(:title, 164) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class ItemBoulderst < ItemActual
|
|
sizeof 136
|
|
|
|
rtti_classname :item_boulderst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemBoxst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_boxst
|
|
|
|
end
|
|
|
|
class ItemBraceletst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_braceletst
|
|
|
|
end
|
|
|
|
class ItemBucketst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_bucketst
|
|
|
|
end
|
|
|
|
class ItemCabinetst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_cabinetst
|
|
|
|
end
|
|
|
|
class ItemCagest < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_cagest
|
|
|
|
end
|
|
|
|
class ItemCatapultpartsst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_catapultpartsst
|
|
|
|
end
|
|
|
|
class ItemChainst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_chainst
|
|
|
|
end
|
|
|
|
class ItemChairst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_chairst
|
|
|
|
end
|
|
|
|
class ItemCheesest < ItemActual
|
|
sizeof 140
|
|
|
|
rtti_classname :item_cheesest
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:rot_timer, 136) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemClothst < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_clothst
|
|
|
|
field(:dimension, 164) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemCoffinst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_coffinst
|
|
|
|
end
|
|
|
|
class ItemCoinst < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_coinst
|
|
|
|
field(:unk_a0, 164) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class ItemCorpsepiecest < ItemBodyComponent
|
|
sizeof 628
|
|
|
|
rtti_classname :item_corpsepiecest
|
|
|
|
end
|
|
|
|
class ItemCorpsest < ItemBodyComponent
|
|
sizeof 628
|
|
|
|
rtti_classname :item_corpsest
|
|
|
|
end
|
|
|
|
class ItemCritter < ItemActual
|
|
sizeof 140
|
|
|
|
rtti_classname :item_critterst
|
|
|
|
field(:race, 128) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:caste, 130) {
|
|
number 16, true
|
|
}
|
|
field(:unk_7c, 132) {
|
|
number 32, true
|
|
}
|
|
field(:unk_80, 136) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemCrownst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_crownst
|
|
|
|
end
|
|
|
|
class ItemCrutchst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_crutchst
|
|
|
|
end
|
|
|
|
class ItemDoorst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_doorst
|
|
|
|
end
|
|
|
|
class ItemLiquipowder < ItemActual
|
|
sizeof 144
|
|
|
|
rtti_classname :item_liquipowderst
|
|
|
|
field(:mat_state, 128) {
|
|
global :ItemMatstate
|
|
}
|
|
field(:dimension, 132) {
|
|
number 32, true
|
|
}
|
|
field(:mat_type, 136) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 140) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemLiquid < ItemLiquipowder
|
|
sizeof 144
|
|
|
|
rtti_classname :item_liquidst
|
|
|
|
end
|
|
|
|
class ItemDrinkst < ItemLiquid
|
|
sizeof 144
|
|
|
|
rtti_classname :item_drinkst
|
|
|
|
end
|
|
|
|
class ItemEarringst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_earringst
|
|
|
|
end
|
|
|
|
class ItemEggst < ItemActual
|
|
sizeof 244
|
|
|
|
rtti_classname :item_eggst
|
|
|
|
field(:race, 128) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:caste, 130) {
|
|
number 16, true
|
|
}
|
|
field(:unk_7c, 132) {
|
|
number 32, true
|
|
}
|
|
field(:egg_materials, 136) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:anon_1, 160) {
|
|
}
|
|
field(:anon_2, 204) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 208) {
|
|
number 32, true
|
|
}
|
|
field(:unk_cc, 212) {
|
|
compound(:ItemEggst_TUnkCc) {
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 20) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:anon_4, 236) {
|
|
number 32, true
|
|
}
|
|
field(:size, 240) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemFigurinest < ItemConstructed
|
|
sizeof 184
|
|
|
|
rtti_classname :item_figurinest
|
|
|
|
field(:image, 164) {
|
|
global :ArtImageRef
|
|
}
|
|
field(:description, 180) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class ItemFilterSpec < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:item_type, 0) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 2) {
|
|
number 16, true
|
|
}
|
|
field(:material_class, 4) {
|
|
number 16, true, nil, UniformMaterialClass
|
|
}
|
|
field(:mattype, 6) {
|
|
number 16, true
|
|
}
|
|
field(:matindex, 8) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemFishRawst < ItemActual
|
|
sizeof 136
|
|
|
|
rtti_classname :item_fish_rawst
|
|
|
|
field(:race, 128) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:caste, 130) {
|
|
number 16, true
|
|
}
|
|
field(:rot_timer, 132) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemFishst < ItemActual
|
|
sizeof 136
|
|
|
|
rtti_classname :item_fishst
|
|
|
|
field(:race, 128) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:caste, 130) {
|
|
number 16, true
|
|
}
|
|
field(:rot_timer, 132) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:on_ground, 0) { bit 0 }
|
|
field(:in_job, 0) { bit 1 }
|
|
field(:hostile, 0) { bit 2 }
|
|
field(:in_inventory, 0) { bit 3 }
|
|
field(:removed, 0) { bit 4 }
|
|
field(:in_building, 0) { bit 5 }
|
|
field(:container, 0) { bit 6 }
|
|
field(:dead_dwarf, 0) { bit 7 }
|
|
field(:rotten, 0) { bit 8 }
|
|
field(:spider_web, 0) { bit 9 }
|
|
field(:construction, 0) { bit 10 }
|
|
field(:encased, 0) { bit 11 }
|
|
field(:unk4, 0) { bit 12 }
|
|
field(:murder, 0) { bit 13 }
|
|
field(:foreign, 0) { bit 14 }
|
|
field(:trader, 0) { bit 15 }
|
|
field(:owned, 0) { bit 16 }
|
|
field(:garbage_collect, 0) { bit 17 }
|
|
field(:artifact1, 0) { bit 18 }
|
|
field(:forbid, 0) { bit 19 }
|
|
field(:unk6, 0) { bit 20 }
|
|
field(:dump, 0) { bit 21 }
|
|
field(:on_fire, 0) { bit 22 }
|
|
field(:melt, 0) { bit 23 }
|
|
field(:hidden, 0) { bit 24 }
|
|
field(:in_chest, 0) { bit 25 }
|
|
field(:unk7, 0) { bit 26 }
|
|
field(:artifact2, 0) { bit 27 }
|
|
field(:temps_computed, 0) { bit 28 }
|
|
field(:weight_computed, 0) { bit 29 }
|
|
field(:unk10, 0) { bit 30 }
|
|
field(:unk11, 0) { bit 31 }
|
|
end
|
|
|
|
class ItemFlags2 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:has_rider, 0) { bit 0 }
|
|
end
|
|
|
|
class ItemFlaskst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_flaskst
|
|
|
|
end
|
|
|
|
class ItemFloodgatest < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_floodgatest
|
|
|
|
end
|
|
|
|
class ItemFoodst < ItemCrafted
|
|
sizeof 180
|
|
|
|
rtti_classname :item_foodst
|
|
|
|
field(:subtype, 152) {
|
|
pointer {
|
|
global :ItemdefFoodst
|
|
}
|
|
}
|
|
field(:unk_94, 156) {
|
|
number 32, true
|
|
}
|
|
field(:unk_98, 160) {
|
|
number 16, true
|
|
}
|
|
field(:ingredients, 164) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:ItemFoodst_TIngredients) {
|
|
sizeof 28
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:item_type, 2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 16, true, -1
|
|
}
|
|
field(:mat_type, 6) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 8) {
|
|
number 32, true, -1
|
|
}
|
|
field(:maker, 12) {
|
|
number 32, true
|
|
}
|
|
def maker_tg ; df.world.history.figures[maker] ; end
|
|
field(:unk_10, 16) {
|
|
number 16, true
|
|
}
|
|
field(:unk_14, 20) {
|
|
number 32, true
|
|
}
|
|
field(:unk_18, 24) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:rot_timer, 176) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemGemst < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_gemst
|
|
|
|
field(:shape, 164) {
|
|
number 32, true
|
|
}
|
|
def shape_tg ; df.world.raws.language.shapes[shape] ; end
|
|
end
|
|
|
|
class ItemGlobst < ItemActual
|
|
sizeof 144
|
|
|
|
rtti_classname :item_globst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:rot_timer, 136) {
|
|
number 32, true
|
|
}
|
|
field(:mat_state, 140) {
|
|
global :ItemMatstate
|
|
}
|
|
end
|
|
|
|
class ItemGlovesst < ItemConstructed
|
|
sizeof 176
|
|
|
|
rtti_classname :item_glovesst
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefGlovesst
|
|
}
|
|
}
|
|
field(:flags, 168) {
|
|
df_flagarray
|
|
}
|
|
end
|
|
|
|
class ItemGobletst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_gobletst
|
|
|
|
end
|
|
|
|
class ItemGratest < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_gratest
|
|
|
|
end
|
|
|
|
class ItemHatchCoverst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_hatch_coverst
|
|
|
|
end
|
|
|
|
class ItemHelmst < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_helmst
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefHelmst
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemHistoryInfo < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:kills, 0) {
|
|
pointer {
|
|
global :ItemKillInfo
|
|
}
|
|
}
|
|
field(:unk1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk2, 8) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemInstrumentst < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_instrumentst
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefInstrumentst
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemKillInfo < MemHack::Compound
|
|
sizeof 120
|
|
|
|
field(:targets, 0) {
|
|
global :HistoricalKills
|
|
}
|
|
field(:slayers, 96) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def slayers_tg ; slayers.map { |i| df.world.history.figures[i] } ; end
|
|
field(:slayer_kill_counts, 108) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemLeavesst < ItemActual
|
|
sizeof 140
|
|
|
|
rtti_classname :item_leavesst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:rot_timer, 136) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemLiquidMiscst < ItemLiquid
|
|
sizeof 148
|
|
|
|
rtti_classname :item_liquid_miscst
|
|
|
|
field(:unk_88, 144) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemMagicness < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:type, 0) {
|
|
number 16, true
|
|
}
|
|
field(:value, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_1, 4) {
|
|
number 16, true
|
|
}
|
|
field(:flags, 8) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemMatstate < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:pressed, 0) { bit 1 }
|
|
field(:paste, 0) { bit 2 }
|
|
end
|
|
|
|
class ItemMeatst < ItemActual
|
|
sizeof 140
|
|
|
|
rtti_classname :item_meatst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:rot_timer, 136) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemMillstonest < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_millstonest
|
|
|
|
end
|
|
|
|
class ItemOrthopedicCastst < ItemConstructed
|
|
sizeof 172
|
|
|
|
rtti_classname :item_orthopedic_castst
|
|
|
|
field(:unk_a0, 164) {
|
|
stl_string
|
|
}
|
|
field(:unk_bc, 168) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class ItemPantsst < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_pantsst
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefPantsst
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemPetst < ItemCritter
|
|
sizeof 140
|
|
|
|
rtti_classname :item_petst
|
|
|
|
end
|
|
|
|
class ItemPipeSectionst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_pipe_sectionst
|
|
|
|
end
|
|
|
|
class ItemPlantst < ItemActual
|
|
sizeof 140
|
|
|
|
rtti_classname :item_plantst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:rot_timer, 136) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemPowder < ItemLiquipowder
|
|
sizeof 144
|
|
|
|
rtti_classname :item_powderst
|
|
|
|
end
|
|
|
|
class ItemPowderMiscst < ItemPowder
|
|
sizeof 144
|
|
|
|
rtti_classname :item_powder_miscst
|
|
|
|
end
|
|
|
|
class ItemQuernst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_quernst
|
|
|
|
end
|
|
|
|
class ItemQuiverst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_quiverst
|
|
|
|
end
|
|
|
|
class ItemRemainsst < ItemActual
|
|
sizeof 136
|
|
|
|
rtti_classname :item_remainsst
|
|
|
|
field(:race, 128) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:caste, 130) {
|
|
number 16, true
|
|
}
|
|
field(:rot_timer, 132) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemRingst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_ringst
|
|
|
|
end
|
|
|
|
class ItemRockst < ItemActual
|
|
sizeof 144
|
|
|
|
rtti_classname :item_rockst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:sharpness, 136) {
|
|
number 32, true
|
|
}
|
|
field(:unk_84, 140) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemRoughst < ItemActual
|
|
sizeof 136
|
|
|
|
rtti_classname :item_roughst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemScepterst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_scepterst
|
|
|
|
end
|
|
|
|
class ItemSeedsst < ItemActual
|
|
sizeof 144
|
|
|
|
rtti_classname :item_seedsst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:grow_counter, 136) {
|
|
number 32, true
|
|
}
|
|
field(:unk_84, 140) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemShieldst < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_shieldst
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefShieldst
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemShoesst < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_shoesst
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefShoesst
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemSiegeammost < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_siegeammost
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefSiegeammost
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemSkinTannedst < ItemActual
|
|
sizeof 140
|
|
|
|
rtti_classname :item_skin_tannedst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:unk_80, 136) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemSlabst < ItemConstructed
|
|
sizeof 176
|
|
|
|
rtti_classname :item_slabst
|
|
|
|
field(:description, 164) {
|
|
stl_string
|
|
}
|
|
field(:unk_bc, 168) {
|
|
number 32, true
|
|
}
|
|
field(:unk_c0, 172) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class ItemSmallgemst < ItemActual
|
|
sizeof 140
|
|
|
|
rtti_classname :item_smallgemst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:shape, 136) {
|
|
number 32, true
|
|
}
|
|
def shape_tg ; df.world.raws.language.shapes[shape] ; end
|
|
end
|
|
|
|
class ItemSplintst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_splintst
|
|
|
|
end
|
|
|
|
class ItemStatuest < ItemConstructed
|
|
sizeof 184
|
|
|
|
rtti_classname :item_statuest
|
|
|
|
field(:image, 164) {
|
|
global :ArtImageRef
|
|
}
|
|
field(:description, 180) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class ItemStockpileRef < MemHack::Compound
|
|
sizeof 8
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
def id_tg ; df.world.buildings.all[id] ; end
|
|
field(:x, 4) {
|
|
number 16, true
|
|
}
|
|
field(:y, 6) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class ItemTablest < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_tablest
|
|
|
|
end
|
|
|
|
class ItemThreadst < ItemActual
|
|
sizeof 168
|
|
|
|
rtti_classname :item_threadst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
field(:dye_mat_type, 136) {
|
|
number 16, true
|
|
}
|
|
field(:dye_mat_index, 140) {
|
|
number 32, true
|
|
}
|
|
field(:unk_88, 144) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8c, 148) {
|
|
number 32, true
|
|
}
|
|
field(:dye_quality, 152) {
|
|
number 16, true
|
|
}
|
|
field(:unk_92, 154) {
|
|
number 16, true
|
|
}
|
|
field(:unk_94, 156) {
|
|
number 32, true
|
|
}
|
|
field(:unk_98, 160) {
|
|
number 8, false
|
|
}
|
|
field(:dimension, 164) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemToolst < ItemConstructed
|
|
sizeof 184
|
|
|
|
rtti_classname :item_toolst
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefToolst
|
|
}
|
|
}
|
|
field(:sharpness, 168) {
|
|
number 32, true
|
|
}
|
|
field(:stockpile, 172) {
|
|
global :ItemStockpileRef
|
|
}
|
|
field(:vehicle_id, 180) {
|
|
number 32, true
|
|
}
|
|
def vehicle_tg ; df.world.vehicles.all[vehicle_id] ; end
|
|
end
|
|
|
|
class ItemTotemst < ItemConstructed
|
|
sizeof 172
|
|
|
|
rtti_classname :item_totemst
|
|
|
|
field(:unk_a0, 164) {
|
|
number 16, true
|
|
}
|
|
field(:unk_a2, 166) {
|
|
number 16, true
|
|
}
|
|
field(:unk_a4, 168) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class ItemToyst < ItemConstructed
|
|
sizeof 168
|
|
|
|
rtti_classname :item_toyst
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefToyst
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemTractionBenchst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_traction_benchst
|
|
|
|
end
|
|
|
|
class ItemTrapcompst < ItemConstructed
|
|
sizeof 172
|
|
|
|
rtti_classname :item_trapcompst
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefTrapcompst
|
|
}
|
|
}
|
|
field(:sharpness, 168) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemTrappartsst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_trappartsst
|
|
|
|
end
|
|
|
|
class ItemVerminst < ItemCritter
|
|
sizeof 140
|
|
|
|
rtti_classname :item_verminst
|
|
|
|
end
|
|
|
|
class ItemWeaponrackst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_weaponrackst
|
|
|
|
end
|
|
|
|
class ItemWeaponst < ItemConstructed
|
|
sizeof 172
|
|
|
|
rtti_classname :item_weaponst
|
|
|
|
field(:subtype, 164) {
|
|
pointer {
|
|
global :ItemdefWeaponst
|
|
}
|
|
}
|
|
field(:sharpness, 168) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemWindowst < ItemConstructed
|
|
sizeof 164
|
|
|
|
rtti_classname :item_windowst
|
|
|
|
end
|
|
|
|
class ItemWoodst < ItemActual
|
|
sizeof 136
|
|
|
|
rtti_classname :item_woodst
|
|
|
|
field(:mat_type, 128) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 132) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class Itemdef < MemHack::Compound
|
|
sizeof 32
|
|
|
|
rtti_classname :itemdefst
|
|
|
|
field(:id, 4) {
|
|
stl_string
|
|
}
|
|
field(:subtype, 8) {
|
|
number 16, true
|
|
}
|
|
field(:base_flags, 12) {
|
|
df_flagarray
|
|
}
|
|
field(:raw_strings, 20) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
def parseRaws(arg0, arg1, arg2)
|
|
DFHack.vmethod_call(self, 0, arg0, arg1, arg2) ; nil
|
|
end
|
|
def categorize()
|
|
DFHack.vmethod_call(self, 4) ; nil
|
|
end
|
|
def finalize()
|
|
DFHack.vmethod_call(self, 8) ; nil
|
|
end
|
|
end
|
|
|
|
class ItemdefAmmost < Itemdef
|
|
sizeof 72
|
|
|
|
rtti_classname :itemdef_ammost
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:ammo_class, 40) {
|
|
stl_string
|
|
}
|
|
field(:flags, 44) {
|
|
df_flagarray(AmmoFlags)
|
|
}
|
|
field(:size, 52) {
|
|
number 32, true
|
|
}
|
|
field(:unk_84, 56) {
|
|
number 32, true
|
|
}
|
|
field(:attacks, 60) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemdefArmorst < Itemdef
|
|
sizeof 92
|
|
|
|
rtti_classname :itemdef_armorst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:name_preplural, 40) {
|
|
stl_string
|
|
}
|
|
field(:material_placeholder, 44) {
|
|
stl_string
|
|
}
|
|
field(:value, 48) {
|
|
number 32, true
|
|
}
|
|
field(:armorlevel, 52) {
|
|
number 8, false
|
|
}
|
|
field(:ubstep, 54) {
|
|
number 16, true
|
|
}
|
|
field(:lbstep, 56) {
|
|
number 16, true
|
|
}
|
|
field(:material_size, 60) {
|
|
number 32, true
|
|
}
|
|
field(:props, 64) {
|
|
global :ArmorProperties
|
|
}
|
|
field(:flags, 84) {
|
|
df_flagarray(ArmorFlags)
|
|
}
|
|
end
|
|
|
|
class ItemdefFoodst < Itemdef
|
|
sizeof 40
|
|
|
|
rtti_classname :itemdef_foodst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:level, 36) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class ItemdefGlovesst < Itemdef
|
|
sizeof 80
|
|
|
|
rtti_classname :itemdef_glovesst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:value, 40) {
|
|
number 32, true
|
|
}
|
|
field(:armorlevel, 44) {
|
|
number 8, false
|
|
}
|
|
field(:upstep, 46) {
|
|
number 16, true
|
|
}
|
|
field(:flags, 48) {
|
|
df_flagarray(GlovesFlags)
|
|
}
|
|
field(:material_size, 56) {
|
|
number 32, true
|
|
}
|
|
field(:props, 60) {
|
|
global :ArmorProperties
|
|
}
|
|
end
|
|
|
|
class ItemdefHelmst < Itemdef
|
|
sizeof 80
|
|
|
|
rtti_classname :itemdef_helmst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:value, 40) {
|
|
number 32, true
|
|
}
|
|
field(:armorlevel, 44) {
|
|
number 8, false
|
|
}
|
|
field(:flags, 48) {
|
|
df_flagarray(HelmFlags)
|
|
}
|
|
field(:material_size, 56) {
|
|
number 32, true
|
|
}
|
|
field(:props, 60) {
|
|
global :ArmorProperties
|
|
}
|
|
end
|
|
|
|
class ItemdefInstrumentst < Itemdef
|
|
sizeof 48
|
|
|
|
rtti_classname :itemdef_instrumentst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:flags, 40) {
|
|
df_flagarray(InstrumentFlags)
|
|
}
|
|
end
|
|
|
|
class ItemdefPantsst < Itemdef
|
|
sizeof 92
|
|
|
|
rtti_classname :itemdef_pantsst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:name_preplural, 40) {
|
|
stl_string
|
|
}
|
|
field(:material_placeholder, 44) {
|
|
stl_string
|
|
}
|
|
field(:value, 48) {
|
|
number 32, true
|
|
}
|
|
field(:armorlevel, 52) {
|
|
number 8, false
|
|
}
|
|
field(:flags, 56) {
|
|
df_flagarray(PantsFlags)
|
|
}
|
|
field(:material_size, 64) {
|
|
number 32, true
|
|
}
|
|
field(:lbstep, 68) {
|
|
number 16, true
|
|
}
|
|
field(:props, 72) {
|
|
global :ArmorProperties
|
|
}
|
|
end
|
|
|
|
class ItemdefShieldst < Itemdef
|
|
sizeof 56
|
|
|
|
rtti_classname :itemdef_shieldst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:value, 40) {
|
|
number 32, true
|
|
}
|
|
field(:blockchance, 44) {
|
|
number 32, true
|
|
}
|
|
field(:armorlevel, 48) {
|
|
number 8, false
|
|
}
|
|
field(:upstep, 50) {
|
|
number 16, true
|
|
}
|
|
field(:material_size, 52) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemdefShoesst < Itemdef
|
|
sizeof 80
|
|
|
|
rtti_classname :itemdef_shoesst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:value, 40) {
|
|
number 32, true
|
|
}
|
|
field(:armorlevel, 44) {
|
|
number 8, false
|
|
}
|
|
field(:upstep, 46) {
|
|
number 16, true
|
|
}
|
|
field(:flags, 48) {
|
|
df_flagarray(ShoesFlags)
|
|
}
|
|
field(:material_size, 56) {
|
|
number 32, true
|
|
}
|
|
field(:props, 60) {
|
|
global :ArmorProperties
|
|
}
|
|
end
|
|
|
|
class ItemdefSiegeammost < Itemdef
|
|
sizeof 44
|
|
|
|
rtti_classname :itemdef_siegeammost
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:ammo_class, 40) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class ItemdefToolst < Itemdef
|
|
sizeof 120
|
|
|
|
rtti_classname :itemdef_toolst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:flags, 40) {
|
|
df_flagarray(ToolFlags)
|
|
}
|
|
field(:value, 48) {
|
|
number 32, true
|
|
}
|
|
field(:tile, 52) {
|
|
number 8, false
|
|
}
|
|
field(:tool_use, 56) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ToolUses
|
|
}
|
|
}
|
|
field(:adjective, 68) {
|
|
stl_string
|
|
}
|
|
field(:size, 72) {
|
|
number 32, true
|
|
}
|
|
field(:skill_melee, 76) {
|
|
number 16, true
|
|
}
|
|
field(:skill_ranged, 78) {
|
|
number 16, true
|
|
}
|
|
field(:ranged_ammo, 80) {
|
|
stl_string
|
|
}
|
|
field(:two_handed, 84) {
|
|
number 32, true
|
|
}
|
|
field(:minimum_size, 88) {
|
|
number 32, true
|
|
}
|
|
field(:material_size, 92) {
|
|
number 32, true
|
|
}
|
|
field(:attacks, 96) {
|
|
stl_vector
|
|
}
|
|
field(:shoot_force, 108) {
|
|
number 32, true
|
|
}
|
|
field(:shoot_maxvel, 112) {
|
|
number 32, true
|
|
}
|
|
field(:container_capacity, 116) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemdefToyst < Itemdef
|
|
sizeof 48
|
|
|
|
rtti_classname :itemdef_toyst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:flags, 40) {
|
|
df_flagarray(ToyFlags)
|
|
}
|
|
end
|
|
|
|
class ItemdefTrapcompst < Itemdef
|
|
sizeof 80
|
|
|
|
rtti_classname :itemdef_trapcompst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:adjective, 40) {
|
|
stl_string
|
|
}
|
|
field(:size, 44) {
|
|
number 32, true
|
|
}
|
|
field(:unk_7c, 48) {
|
|
number 32, true
|
|
}
|
|
field(:hits, 52) {
|
|
number 32, true
|
|
}
|
|
field(:material_size, 56) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 60) {
|
|
df_flagarray(TrapcompFlags)
|
|
}
|
|
field(:attacks, 68) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class ItemdefWeaponst < Itemdef
|
|
sizeof 100
|
|
|
|
rtti_classname :itemdef_weaponst
|
|
|
|
field(:name, 32) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:adjective, 40) {
|
|
stl_string
|
|
}
|
|
field(:size, 44) {
|
|
number 32, true
|
|
}
|
|
field(:unk_7c, 48) {
|
|
number 32, true
|
|
}
|
|
field(:skill_melee, 52) {
|
|
number 16, true
|
|
}
|
|
field(:skill_ranged, 54) {
|
|
number 16, true
|
|
}
|
|
field(:ranged_ammo, 56) {
|
|
stl_string
|
|
}
|
|
field(:two_handed, 60) {
|
|
number 32, true
|
|
}
|
|
field(:minimum_size, 64) {
|
|
number 32, true
|
|
}
|
|
field(:material_size, 68) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 72) {
|
|
df_flagarray(WeaponFlags)
|
|
}
|
|
field(:attacks, 80) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:shoot_force, 92) {
|
|
number 32, true
|
|
}
|
|
field(:shoot_maxvel, 96) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class Itemimprovement < MemHack::Compound
|
|
sizeof 32
|
|
|
|
rtti_classname :itemimprovementst
|
|
|
|
field(:mat_type, 4) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 8) {
|
|
number 32, true
|
|
}
|
|
field(:maker, 12) {
|
|
number 32, true
|
|
}
|
|
def maker_tg ; df.world.history.figures[maker] ; end
|
|
field(:anon_1, 16) {
|
|
number 32, true
|
|
}
|
|
field(:quality, 20) {
|
|
number 16, true, nil, ItemQuality
|
|
}
|
|
field(:skill_rating, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
def getImage()
|
|
ptr = DFHack.vmethod_call(self, 0)
|
|
class << self
|
|
global :ArtImage
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def clone()
|
|
ptr = DFHack.vmethod_call(self, 8)
|
|
class << self
|
|
global :Itemimprovement
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 12, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 16, arg0, loadversion) ; nil
|
|
end
|
|
def getType()
|
|
ImprovementType.sym(DFHack.vmethod_call(self, 20))
|
|
end
|
|
def getDyeValue(arg0)
|
|
val = DFHack.vmethod_call(self, 36, arg0)
|
|
end
|
|
def setShape(shape)
|
|
DFHack.vmethod_call(self, 40, shape) ; nil
|
|
end
|
|
end
|
|
|
|
class ItemimprovementArtImagest < Itemimprovement
|
|
sizeof 48
|
|
|
|
rtti_classname :itemimprovement_art_imagest
|
|
|
|
field(:image, 32) {
|
|
global :ArtImageRef
|
|
}
|
|
end
|
|
|
|
class ItemimprovementBandsst < Itemimprovement
|
|
sizeof 36
|
|
|
|
rtti_classname :itemimprovement_bandsst
|
|
|
|
field(:shape, 32) {
|
|
number 32, true
|
|
}
|
|
def shape_tg ; df.world.raws.language.shapes[shape] ; end
|
|
end
|
|
|
|
class ItemimprovementClothst < Itemimprovement
|
|
sizeof 32
|
|
|
|
rtti_classname :itemimprovement_clothst
|
|
|
|
end
|
|
|
|
class ItemimprovementCoveredst < Itemimprovement
|
|
sizeof 40
|
|
|
|
rtti_classname :itemimprovement_coveredst
|
|
|
|
field(:is_glazed, 32) {
|
|
number 32, true
|
|
}
|
|
field(:shape, 36) {
|
|
number 32, true
|
|
}
|
|
def shape_tg ; df.world.raws.language.shapes[shape] ; end
|
|
end
|
|
|
|
class ItemimprovementIllustrationst < Itemimprovement
|
|
sizeof 52
|
|
|
|
rtti_classname :itemimprovement_illustrationst
|
|
|
|
field(:image, 32) {
|
|
global :ArtImageRef
|
|
}
|
|
field(:anon_1, 48) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemimprovementItemspecificst < Itemimprovement
|
|
sizeof 36
|
|
|
|
rtti_classname :itemimprovement_itemspecificst
|
|
|
|
field(:type, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ItemimprovementPagesst < Itemimprovement
|
|
sizeof 48
|
|
|
|
rtti_classname :itemimprovement_pagesst
|
|
|
|
field(:anon_1, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 36) {
|
|
stl_vector
|
|
}
|
|
end
|
|
|
|
class ItemimprovementRingsHangingst < Itemimprovement
|
|
sizeof 32
|
|
|
|
rtti_classname :itemimprovement_rings_hangingst
|
|
|
|
end
|
|
|
|
class ItemimprovementSewnImagest < Itemimprovement
|
|
sizeof 76
|
|
|
|
rtti_classname :itemimprovement_sewn_imagest
|
|
|
|
field(:image, 32) {
|
|
global :ArtImageRef
|
|
}
|
|
field(:cloth, 48) {
|
|
compound(:ItemimprovementSewnImagest_TCloth) {
|
|
field(:unit_id, 0) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.history.figures[unit_id] ; end
|
|
field(:quality, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_1, 6) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:dye, 56) {
|
|
global :DyeInfo
|
|
}
|
|
end
|
|
|
|
class ItemimprovementSpikesst < Itemimprovement
|
|
sizeof 32
|
|
|
|
rtti_classname :itemimprovement_spikesst
|
|
|
|
end
|
|
|
|
class ItemimprovementThreadst < Itemimprovement
|
|
sizeof 52
|
|
|
|
rtti_classname :itemimprovement_threadst
|
|
|
|
field(:dye, 32) {
|
|
global :DyeInfo
|
|
}
|
|
end
|
|
|
|
class Job < MemHack::Compound
|
|
sizeof 168
|
|
|
|
field(:id, 0) {
|
|
number 32, true, -1
|
|
}
|
|
field(:list_link, 4) {
|
|
pointer {
|
|
global :JobListLink
|
|
}
|
|
}
|
|
field(:job_type, 8) {
|
|
number 16, true, nil, JobType
|
|
}
|
|
field(:unk2, 12) {
|
|
number 32, true, -1
|
|
}
|
|
field(:pos, 16) {
|
|
global :Coord
|
|
}
|
|
field(:completion_timer, 24) {
|
|
number 32, true, -1
|
|
}
|
|
field(:unk4a, 28) {
|
|
number 16, false
|
|
}
|
|
field(:unk4b, 30) {
|
|
number 16, false
|
|
}
|
|
field(:flags, 32) {
|
|
global :JobFlags
|
|
}
|
|
field(:mat_type, 36) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 40) {
|
|
number 32, true, -1
|
|
}
|
|
field(:unk5, 44) {
|
|
number 16, true, -1
|
|
}
|
|
field(:unk6, 46) {
|
|
number 16, true, -1
|
|
}
|
|
field(:item_subtype, 48) {
|
|
number 16, true, -1
|
|
}
|
|
field(:item_category, 52) {
|
|
global :StockpileGroupSet
|
|
}
|
|
field(:hist_figure_id, 56) {
|
|
number 32, true
|
|
}
|
|
def hist_figure_tg ; df.world.history.figures[hist_figure_id] ; end
|
|
field(:material_category, 60) {
|
|
global :JobMaterialCategory
|
|
}
|
|
field(:reaction_name, 64) {
|
|
stl_string
|
|
}
|
|
field(:unk9, 68) {
|
|
number 32, true
|
|
}
|
|
field(:unk10a, 72) {
|
|
number 16, true
|
|
}
|
|
field(:unk10b_cntdn, 74) {
|
|
number 16, true
|
|
}
|
|
field(:unk11, 76) {
|
|
number 32, true, -1
|
|
}
|
|
field(:items, 80) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :JobItemRef
|
|
}
|
|
}
|
|
}
|
|
field(:specific_refs, 92) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :SpecificRef
|
|
}
|
|
}
|
|
}
|
|
field(:references, 104) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :GeneralRef
|
|
}
|
|
}
|
|
}
|
|
field(:job_items, 116) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :JobItem
|
|
}
|
|
}
|
|
}
|
|
field(:guide_path, 128) {
|
|
global :CoordPath
|
|
}
|
|
field(:cur_path_index, 164) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class JobFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:repeat, 0) { bit 0 }
|
|
field(:suspend, 0) { bit 1 }
|
|
field(:working, 0) { bit 2 }
|
|
field(:fetching, 0) { bit 3 }
|
|
field(:special, 0) { bit 4 }
|
|
field(:bringing, 0) { bit 5 }
|
|
field(:item_lost, 0) { bit 6 }
|
|
field(:by_manager, 0) { bit 9 }
|
|
field(:store_item, 0) { bit 10 }
|
|
end
|
|
|
|
class JobItem < MemHack::Compound
|
|
sizeof 80
|
|
|
|
field(:item_type, 0) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 2) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 4) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 8) {
|
|
number 32, true, -1
|
|
}
|
|
field(:flags1, 12) {
|
|
global :JobItemFlags1
|
|
}
|
|
field(:quantity, 16) {
|
|
number 32, true, 1
|
|
}
|
|
field(:vector_id, 20) {
|
|
number 16, true, :ANY_FREE, JobItemVectorId
|
|
}
|
|
field(:flags2, 24) {
|
|
global :JobItemFlags2
|
|
}
|
|
field(:flags3, 28) {
|
|
global :JobItemFlags3
|
|
}
|
|
field(:flags4, 32) {
|
|
number 32, false
|
|
}
|
|
field(:flags5, 36) {
|
|
number 32, false
|
|
}
|
|
field(:metal_ore, 40) {
|
|
number 32, true
|
|
}
|
|
def metal_ore_tg ; df.world.raws.inorganics[metal_ore] ; end
|
|
field(:reaction_class, 44) {
|
|
stl_string
|
|
}
|
|
field(:has_material_reaction_product, 48) {
|
|
stl_string
|
|
}
|
|
field(:min_dimension, 52) {
|
|
number 32, true, -1
|
|
}
|
|
field(:reagent_index, 56) {
|
|
number 32, true, -1
|
|
}
|
|
field(:contains, 60) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:reaction_id, 72) {
|
|
number 32, true
|
|
}
|
|
def reaction_tg ; df.world.raws.reactions[reaction_id] ; end
|
|
field(:has_tool_use, 76) {
|
|
number 16, true, nil, ToolUses
|
|
}
|
|
end
|
|
|
|
class JobItemFilter < MemHack::Compound
|
|
sizeof 140
|
|
|
|
field(:item_type, 0) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 2) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 4) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 8) {
|
|
number 32, true, -1
|
|
}
|
|
field(:flags1, 12) {
|
|
global :JobItemFlags1
|
|
}
|
|
field(:item_vector, 16) {
|
|
pointer {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:use_mat_index, 20) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:flags2, 24) {
|
|
global :JobItemFlags2
|
|
}
|
|
field(:use_flags2, 28) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:flags3, 32) {
|
|
global :JobItemFlags3
|
|
}
|
|
field(:use_flags3, 36) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:flags4, 40) {
|
|
number 32, false
|
|
}
|
|
field(:use_flags4, 44) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:flags5, 48) {
|
|
number 32, false
|
|
}
|
|
field(:use_flags5, 52) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:reaction_class, 56) {
|
|
stl_string
|
|
}
|
|
field(:has_material_reaction_product, 60) {
|
|
stl_string
|
|
}
|
|
field(:metal_ore, 64) {
|
|
number 32, true
|
|
}
|
|
def metal_ore_tg ; df.world.raws.inorganics[metal_ore] ; end
|
|
field(:use_metal_ore, 68) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:use_reaction_class, 69) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:use_reaction_product, 70) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:min_dimension, 72) {
|
|
number 32, true, -1
|
|
}
|
|
field(:reaction_id, 76) {
|
|
number 32, true
|
|
}
|
|
def reaction_tg ; df.world.raws.reactions[reaction_id] ; end
|
|
field(:contains, 80) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:use_contains, 92) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:has_tool_use, 94) {
|
|
number 16, true, nil, ToolUses
|
|
}
|
|
field(:has_melee_skill, 96) {
|
|
number 16, true, nil, JobSkill
|
|
}
|
|
field(:pos, 98) {
|
|
global :Coord
|
|
}
|
|
field(:unit, 104) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:job, 108) {
|
|
pointer {
|
|
global :Job
|
|
}
|
|
}
|
|
field(:building, 112) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
field(:unk_74, 116) {
|
|
number 32, true
|
|
}
|
|
field(:burrows, 120) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def burrows_tg ; burrows.map { |i| df.ui.burrows.list[i] } ; end
|
|
field(:use_burrows, 132) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:take_from, 136) {
|
|
pointer {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class JobItemFlags1 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:improvable, 0) { bit 0 }
|
|
field(:butcherable, 0) { bit 1 }
|
|
field(:millable, 0) { bit 2 }
|
|
field(:allow_buryable, 0) { bit 3 }
|
|
field(:unrotten, 0) { bit 4 }
|
|
field(:undisturbed, 0) { bit 5 }
|
|
field(:collected, 0) { bit 6 }
|
|
field(:sharpenable, 0) { bit 7 }
|
|
field(:murdered, 0) { bit 8 }
|
|
field(:distillable, 0) { bit 9 }
|
|
field(:empty, 0) { bit 10 }
|
|
field(:processable, 0) { bit 11 }
|
|
field(:bag, 0) { bit 12 }
|
|
field(:cookable, 0) { bit 13 }
|
|
field(:extract_bearing_plant, 0) { bit 14 }
|
|
field(:extract_bearing_fish, 0) { bit 15 }
|
|
field(:extract_bearing_vermin, 0) { bit 16 }
|
|
field(:processable_to_vial, 0) { bit 17 }
|
|
field(:processable_to_bag, 0) { bit 18 }
|
|
field(:processable_to_barrel, 0) { bit 19 }
|
|
field(:solid, 0) { bit 20 }
|
|
field(:tameable_vermin, 0) { bit 21 }
|
|
field(:nearby, 0) { bit 22 }
|
|
field(:sand_bearing, 0) { bit 23 }
|
|
field(:glass, 0) { bit 24 }
|
|
field(:milk, 0) { bit 25 }
|
|
field(:milkable, 0) { bit 26 }
|
|
field(:finished_goods, 0) { bit 27 }
|
|
field(:ammo, 0) { bit 28 }
|
|
field(:furniture, 0) { bit 29 }
|
|
field(:not_bin, 0) { bit 30 }
|
|
field(:lye_bearing, 0) { bit 31 }
|
|
end
|
|
|
|
class JobItemFlags2 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:dye, 0) { bit 0 }
|
|
field(:dyeable, 0) { bit 1 }
|
|
field(:dyed, 0) { bit 2 }
|
|
field(:sewn_imageless, 0) { bit 3 }
|
|
field(:glass_making, 0) { bit 4 }
|
|
field(:screw, 0) { bit 5 }
|
|
field(:building_material, 0) { bit 6 }
|
|
field(:fire_safe, 0) { bit 7 }
|
|
field(:magma_safe, 0) { bit 8 }
|
|
field(:deep_material, 0) { bit 9 }
|
|
field(:melt_designated, 0) { bit 10 }
|
|
field(:non_economic, 0) { bit 11 }
|
|
field(:allow_melt_dump, 0) { bit 12 }
|
|
field(:allow_artifact, 0) { bit 13 }
|
|
field(:plant, 0) { bit 14 }
|
|
field(:silk, 0) { bit 15 }
|
|
field(:leather, 0) { bit 16 }
|
|
field(:bone, 0) { bit 17 }
|
|
field(:shell, 0) { bit 18 }
|
|
field(:totemable, 0) { bit 19 }
|
|
field(:horn, 0) { bit 20 }
|
|
field(:pearl, 0) { bit 21 }
|
|
field(:plaster_containing, 0) { bit 22 }
|
|
field(:soap, 0) { bit 24 }
|
|
field(:body_part, 0) { bit 25 }
|
|
field(:ivory_tooth, 0) { bit 26 }
|
|
field(:lye_milk_free, 0) { bit 27 }
|
|
field(:blunt, 0) { bit 28 }
|
|
field(:unengraved, 0) { bit 29 }
|
|
field(:hair_wool, 0) { bit 30 }
|
|
field(:yarn, 0) { bit 31 }
|
|
end
|
|
|
|
class JobItemFlags3 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:unimproved, 0) { bit 0 }
|
|
field(:any_raw_material, 0) { bit 1 }
|
|
field(:non_absorbent, 0) { bit 2 }
|
|
field(:non_pressed, 0) { bit 3 }
|
|
field(:allow_liquid_powder, 0) { bit 4 }
|
|
field(:any_craft, 0) { bit 5 }
|
|
field(:hard, 0) { bit 6 }
|
|
field(:food_storage, 0) { bit 7 }
|
|
end
|
|
|
|
class JobItemRef < MemHack::Compound
|
|
sizeof 16
|
|
|
|
field(:item, 0) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
field(:role, 4) {
|
|
class ::DFHack::JobItemRef_TRole < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[1] = :Reagent ; NUME[:Reagent] = 1
|
|
ENUM[2] = :Hauled ; NUME[:Hauled] = 2
|
|
ENUM[6] = :TargetContainer ; NUME[:TargetContainer] = 6
|
|
end
|
|
|
|
number 32, true, nil, JobItemRef_TRole
|
|
}
|
|
field(:is_fetching, 8) {
|
|
number 32, true
|
|
}
|
|
field(:job_item_idx, 12) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class JobListLink < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:item, 0) {
|
|
pointer {
|
|
global :Job
|
|
}
|
|
}
|
|
field(:prev, 4) {
|
|
pointer {
|
|
global :JobListLink
|
|
}
|
|
}
|
|
field(:next, 8) {
|
|
pointer {
|
|
global :JobListLink
|
|
}
|
|
}
|
|
end
|
|
|
|
class JobMaterialCategory < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:plant, 0) { bit 0 }
|
|
field(:wood, 0) { bit 1 }
|
|
field(:cloth, 0) { bit 2 }
|
|
field(:silk, 0) { bit 3 }
|
|
field(:leather, 0) { bit 4 }
|
|
field(:bone, 0) { bit 5 }
|
|
field(:shell, 0) { bit 6 }
|
|
field(:wood2, 0) { bit 7 }
|
|
field(:soap, 0) { bit 8 }
|
|
field(:tooth, 0) { bit 9 }
|
|
field(:horn, 0) { bit 10 }
|
|
field(:pearl, 0) { bit 11 }
|
|
field(:yarn, 0) { bit 12 }
|
|
end
|
|
|
|
class LanguageName < MemHack::Compound
|
|
sizeof 60
|
|
|
|
field(:first_name, 0) {
|
|
stl_string
|
|
}
|
|
field(:nickname, 4) {
|
|
stl_string
|
|
}
|
|
field(:words, 8) {
|
|
static_array(7, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:parts_of_speech, 36) {
|
|
static_array(7, 2) {
|
|
number 16, true, nil, PartOfSpeech
|
|
}
|
|
}
|
|
field(:language, 52) {
|
|
number 32, true
|
|
}
|
|
def language_tg ; df.world.raws.language.translations[language] ; end
|
|
field(:unknown, 56) {
|
|
number 16, true
|
|
}
|
|
field(:has_name, 58) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class LanguageSymbol < MemHack::Compound
|
|
sizeof 28
|
|
|
|
field(:name, 0) {
|
|
stl_string
|
|
}
|
|
field(:unknown, 4) {
|
|
stl_vector
|
|
}
|
|
field(:words, 16) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def words_tg ; words.map { |i| df.world.raws.language.words[i] } ; end
|
|
end
|
|
|
|
class LanguageTranslation < MemHack::Compound
|
|
sizeof 40
|
|
|
|
field(:name, 0) {
|
|
stl_string
|
|
}
|
|
field(:unknown1, 4) {
|
|
stl_vector
|
|
}
|
|
field(:unknown2, 16) {
|
|
stl_vector
|
|
}
|
|
field(:words, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class LanguageWord < MemHack::Compound
|
|
sizeof 56
|
|
|
|
field(:word, 0) {
|
|
stl_string
|
|
}
|
|
field(:forms, 4) {
|
|
static_array(9, 4, PartOfSpeech) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:adj_dist, 40) {
|
|
number 8, false
|
|
}
|
|
field(:anon_1, 41) {
|
|
}
|
|
field(:flags, 48) {
|
|
df_flagarray(LanguageWordFlags)
|
|
}
|
|
end
|
|
|
|
class LayerObject < MemHack::Compound
|
|
sizeof 8
|
|
|
|
rtti_classname :layer_objectst
|
|
|
|
field(:enabled, 4) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:bright, 5) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class LayerObjectListst < LayerObject
|
|
sizeof 60
|
|
|
|
rtti_classname :layer_object_listst
|
|
|
|
field(:cursor, 8) {
|
|
number 32, true
|
|
}
|
|
field(:num_entries, 12) {
|
|
number 32, true
|
|
}
|
|
field(:x1, 16) {
|
|
number 32, true
|
|
}
|
|
field(:y1, 20) {
|
|
number 32, true
|
|
}
|
|
field(:page_size, 24) {
|
|
number 32, true
|
|
}
|
|
field(:x2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:y2, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 44) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:anon_4, 48) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 52) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 56) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class Machine < MemHack::Compound
|
|
sizeof 48
|
|
|
|
rtti_classname :machinest
|
|
|
|
field(:x, 4) {
|
|
number 32, true
|
|
}
|
|
field(:y, 8) {
|
|
number 32, true
|
|
}
|
|
field(:z, 12) {
|
|
number 32, true
|
|
}
|
|
field(:id, 16) {
|
|
number 32, true
|
|
}
|
|
field(:components, 20) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Machine_TComponents) {
|
|
sizeof 16
|
|
|
|
field(:building_id, 0) {
|
|
number 32, true
|
|
}
|
|
def building_tg ; df.world.buildings.all[building_id] ; end
|
|
field(:connections, 4) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:cur_power, 32) {
|
|
number 32, true
|
|
}
|
|
field(:min_power, 36) {
|
|
number 32, true
|
|
}
|
|
field(:visual_phase, 40) {
|
|
number 8, false
|
|
}
|
|
field(:phase_timer, 42) {
|
|
number 16, true
|
|
}
|
|
field(:is_active, 44) {
|
|
number 32, true
|
|
}
|
|
def getType()
|
|
MachineType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def moveMachine(x, y, z)
|
|
DFHack.vmethod_call(self, 4, x, y, z) ; nil
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 8, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 12, arg0, loadversion) ; nil
|
|
end
|
|
end
|
|
|
|
class MachineConnModes < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 8, false
|
|
}
|
|
field(:up, 0) { bit 0 }
|
|
field(:down, 0) { bit 1 }
|
|
field(:right, 0) { bit 2 }
|
|
field(:left, 0) { bit 3 }
|
|
field(:z_up, 0) { bit 4 }
|
|
field(:z_down, 0) { bit 5 }
|
|
end
|
|
|
|
class MachineInfo < MemHack::Compound
|
|
sizeof 8
|
|
|
|
field(:machine_id, 0) {
|
|
number 32, true
|
|
}
|
|
def machine_tg ; df.world.machines.all[machine_id] ; end
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class MachineStandardst < Machine
|
|
sizeof 48
|
|
|
|
rtti_classname :machine_standardst
|
|
|
|
end
|
|
|
|
class MachineTileSet < MemHack::Compound
|
|
sizeof 48
|
|
|
|
field(:tiles, 0) {
|
|
global :CoordPath
|
|
}
|
|
field(:can_connect, 36) {
|
|
stl_vector(1) {
|
|
global :MachineConnModes
|
|
}
|
|
}
|
|
end
|
|
|
|
class ManagerOrder < MemHack::Compound
|
|
sizeof 40
|
|
|
|
field(:job_type, 0) {
|
|
number 16, true, nil, JobType
|
|
}
|
|
field(:unk_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:item_subtype, 4) {
|
|
number 16, true
|
|
}
|
|
field(:reaction_name, 8) {
|
|
stl_string
|
|
}
|
|
field(:mat_type, 12) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 16) {
|
|
number 32, true
|
|
}
|
|
field(:item_category, 20) {
|
|
global :StockpileGroupSet
|
|
}
|
|
field(:hist_figure_id, 24) {
|
|
number 32, true
|
|
}
|
|
def hist_figure_tg ; df.world.history.figures[hist_figure_id] ; end
|
|
field(:material_category, 28) {
|
|
global :JobMaterialCategory
|
|
}
|
|
field(:amount_left, 32) {
|
|
number 16, true
|
|
}
|
|
field(:amount_total, 34) {
|
|
number 16, true
|
|
}
|
|
field(:is_validated, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ManagerOrderTemplate < MemHack::Compound
|
|
sizeof 36
|
|
|
|
field(:job_type, 0) {
|
|
number 16, true, nil, JobType
|
|
}
|
|
field(:reaction_name, 4) {
|
|
stl_string
|
|
}
|
|
field(:anon_1, 8) {
|
|
number 16, true, -1
|
|
}
|
|
field(:item_subtype, 10) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 12) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 16) {
|
|
number 32, true
|
|
}
|
|
field(:item_category, 20) {
|
|
global :StockpileGroupSet
|
|
}
|
|
field(:anon_2, 24) {
|
|
number 32, true, -1
|
|
}
|
|
field(:material_category, 28) {
|
|
global :JobMaterialCategory
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 8, false, 1
|
|
}
|
|
end
|
|
|
|
class Mandate < MemHack::Compound
|
|
sizeof 48
|
|
|
|
field(:unit, 0) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:mode, 4) {
|
|
number 16, true
|
|
}
|
|
field(:item_type, 6) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 8) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 10) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 12) {
|
|
number 32, true
|
|
}
|
|
field(:amount_total, 16) {
|
|
number 16, true
|
|
}
|
|
field(:amount_remaining, 18) {
|
|
number 16, true
|
|
}
|
|
field(:timeout_counter, 20) {
|
|
number 32, true
|
|
}
|
|
field(:timeout_limit, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 32) {
|
|
number 32, true
|
|
}
|
|
field(:unk2, 36) {
|
|
number 32, true
|
|
}
|
|
field(:unk3, 40) {
|
|
number 8, false
|
|
}
|
|
field(:unk4, 44) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class MapBlock < MemHack::Compound
|
|
sizeof 7544
|
|
|
|
field(:flags, 0) {
|
|
global :BlockFlags
|
|
}
|
|
field(:block_events, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BlockSquareEvent
|
|
}
|
|
}
|
|
}
|
|
field(:block_burrows, 16) {
|
|
df_linked_list {
|
|
global :BlockBurrowLink
|
|
}
|
|
}
|
|
field(:local_feature, 28) {
|
|
number 32, true
|
|
}
|
|
field(:global_feature, 32) {
|
|
number 32, true
|
|
}
|
|
field(:unk2, 36) {
|
|
number 32, true
|
|
}
|
|
field(:unk3, 40) {
|
|
number 32, true
|
|
}
|
|
field(:dsgn_check_cooldown, 44) {
|
|
number 32, true
|
|
}
|
|
field(:default_liquid, 48) {
|
|
global :TileDesignation
|
|
}
|
|
field(:items, 52) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def items_tg ; items.map { |i| df.world.items.all[i] } ; end
|
|
field(:flows, 64) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :FlowInfo
|
|
}
|
|
}
|
|
}
|
|
field(:unk7, 76) {
|
|
number 32, true
|
|
}
|
|
field(:unk8, 80) {
|
|
number 32, true
|
|
}
|
|
field(:plants, 84) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Plant
|
|
}
|
|
}
|
|
}
|
|
field(:map_pos, 96) {
|
|
global :Coord
|
|
}
|
|
field(:region_pos, 102) {
|
|
global :Coord2d
|
|
}
|
|
field(:tiletype, 106) {
|
|
static_array(16, 32) {
|
|
static_array(16, 2) {
|
|
number 16, true, nil, Tiletype
|
|
}
|
|
}
|
|
}
|
|
field(:designation, 620) {
|
|
static_array(16, 64) {
|
|
static_array(16, 4) {
|
|
global :TileDesignation
|
|
}
|
|
}
|
|
}
|
|
field(:occupancy, 1644) {
|
|
static_array(16, 64) {
|
|
static_array(16, 4) {
|
|
global :TileOccupancy
|
|
}
|
|
}
|
|
}
|
|
field(:unk9, 2668) {
|
|
static_array(16, 16) {
|
|
static_array(16, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
field(:path_cost, 2924) {
|
|
static_array(16, 64) {
|
|
static_array(16, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:path_tag, 3948) {
|
|
static_array(16, 32) {
|
|
static_array(16, 2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
}
|
|
field(:walkable, 4460) {
|
|
static_array(16, 32) {
|
|
static_array(16, 2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
}
|
|
field(:map_edge_distance, 4972) {
|
|
static_array(16, 32) {
|
|
static_array(16, 2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
}
|
|
field(:temperature_1, 5484) {
|
|
static_array(16, 32) {
|
|
static_array(16, 2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
}
|
|
field(:temperature_2, 5996) {
|
|
static_array(16, 32) {
|
|
static_array(16, 2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
}
|
|
field(:unk13, 6508) {
|
|
static_array(16, 32) {
|
|
static_array(16, 2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
}
|
|
field(:liquid_flow, 7020) {
|
|
static_array(16, 32) {
|
|
static_array(16, 2) {
|
|
global :TileLiquidFlow
|
|
}
|
|
}
|
|
}
|
|
field(:region_offset, 7532) {
|
|
static_array(9, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
end
|
|
|
|
class MapBlockColumn < MemHack::Compound
|
|
sizeof 3132
|
|
|
|
field(:unk_0, 0) {
|
|
number 16, true
|
|
}
|
|
field(:unk_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 16, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:MapBlockColumn_TUnk8) {
|
|
sizeof 20
|
|
|
|
field(:unk1, 0) {
|
|
static_array(8, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk2, 16) {
|
|
static_array(4, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:z_base, 20) {
|
|
number 16, true
|
|
}
|
|
field(:cave_columns, 24) {
|
|
static_array(16, 192) {
|
|
static_array(16, 12) {
|
|
df_linked_list {
|
|
global :CaveColumnLink
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:column_rectangles, 3096) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk_c2c, 3108) {
|
|
number 16, true
|
|
}
|
|
field(:flags, 3112) {
|
|
df_flagarray
|
|
}
|
|
field(:tile_min_x, 3120) {
|
|
number 16, true
|
|
}
|
|
field(:tile_min_y, 3122) {
|
|
number 16, true
|
|
}
|
|
field(:unk_c3c, 3124) {
|
|
number 16, true
|
|
}
|
|
field(:unk_c3e, 3126) {
|
|
number 16, true
|
|
}
|
|
field(:unk_c40, 3128) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class MaterialCommon < MemHack::Compound
|
|
sizeof 380
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:gem_name1, 4) {
|
|
stl_string
|
|
}
|
|
field(:gem_name2, 8) {
|
|
stl_string
|
|
}
|
|
field(:stone_name, 12) {
|
|
stl_string
|
|
}
|
|
field(:heat, 16) {
|
|
compound(:MaterialCommon_THeat) {
|
|
field(:spec_heat, 0) {
|
|
number 16, false
|
|
}
|
|
field(:heatdam_point, 2) {
|
|
number 16, false
|
|
}
|
|
field(:colddam_point, 4) {
|
|
number 16, false
|
|
}
|
|
field(:ignite_point, 6) {
|
|
number 16, false
|
|
}
|
|
field(:melting_point, 8) {
|
|
number 16, false
|
|
}
|
|
field(:boiling_point, 10) {
|
|
number 16, false
|
|
}
|
|
field(:mat_fixed_temp, 12) {
|
|
number 16, false
|
|
}
|
|
}
|
|
}
|
|
field(:solid_density, 32) {
|
|
number 32, true
|
|
}
|
|
field(:liquid_density, 36) {
|
|
number 32, true
|
|
}
|
|
field(:molar_mass, 40) {
|
|
number 32, true
|
|
}
|
|
field(:state_color, 44) {
|
|
static_array(6, 4, MatterState) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:state_name, 68) {
|
|
static_array(6, 4, MatterState) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:state_adj, 92) {
|
|
static_array(6, 4, MatterState) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:strength, 116) {
|
|
compound(:MaterialCommon_TStrength) {
|
|
field(:absorption, 0) {
|
|
number 32, true
|
|
}
|
|
field(:bending_yield, 4) {
|
|
number 32, true
|
|
}
|
|
field(:shear_yield, 8) {
|
|
number 32, true
|
|
}
|
|
field(:torsion_yield, 12) {
|
|
number 32, true
|
|
}
|
|
field(:impact_yield, 16) {
|
|
number 32, true
|
|
}
|
|
field(:tensile_yield, 20) {
|
|
number 32, true
|
|
}
|
|
field(:compressive_yield, 24) {
|
|
number 32, true
|
|
}
|
|
field(:bending_fracture, 28) {
|
|
number 32, true
|
|
}
|
|
field(:shear_fracture, 32) {
|
|
number 32, true
|
|
}
|
|
field(:torsion_fracture, 36) {
|
|
number 32, true
|
|
}
|
|
field(:impact_fracture, 40) {
|
|
number 32, true
|
|
}
|
|
field(:tensile_fracture, 44) {
|
|
number 32, true
|
|
}
|
|
field(:compressive_fracture, 48) {
|
|
number 32, true
|
|
}
|
|
field(:bending_strain_at_yield, 52) {
|
|
number 32, true
|
|
}
|
|
field(:shear_strain_at_yield, 56) {
|
|
number 32, true
|
|
}
|
|
field(:torsion_strain_at_yield, 60) {
|
|
number 32, true
|
|
}
|
|
field(:impact_strain_at_yield, 64) {
|
|
number 32, true
|
|
}
|
|
field(:tensile_strain_at_yield, 68) {
|
|
number 32, true
|
|
}
|
|
field(:compressive_strain_at_yield, 72) {
|
|
number 32, true
|
|
}
|
|
field(:max_edge, 76) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:material_value, 196) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 200) {
|
|
df_flagarray(MaterialFlags)
|
|
}
|
|
field(:extract_storage, 208) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:butcher_special_type, 210) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:butcher_special_subtype, 212) {
|
|
number 16, true
|
|
}
|
|
field(:meat_name, 216) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:block_name, 228) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:reaction_product, 236) {
|
|
compound(:MaterialCommon_TReactionProduct) {
|
|
field(:id, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:material, 12) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:str, 36) {
|
|
static_array(3, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:hardens_with_water, 308) {
|
|
compound(:MaterialCommon_THardensWithWater) {
|
|
field(:mat_type, 0) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 4) {
|
|
number 32, true
|
|
}
|
|
field(:str, 8) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:reaction_class, 328) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:tile, 340) {
|
|
number 8, false
|
|
}
|
|
field(:basic_color, 342) {
|
|
static_array(2, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:build_color, 346) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:tile_color, 352) {
|
|
static_array(3, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:item_symbol, 358) {
|
|
number 8, false
|
|
}
|
|
field(:powder_dye, 360) {
|
|
number 16, true
|
|
}
|
|
field(:temp_diet_info, 362) {
|
|
number 16, true
|
|
}
|
|
field(:syndrome, 364) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Syndrome
|
|
}
|
|
}
|
|
}
|
|
field(:soap_level, 376) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class Material < MaterialCommon
|
|
sizeof 560
|
|
|
|
field(:prefix, 380) {
|
|
stl_string
|
|
}
|
|
field(:food_mat_index, 384) {
|
|
static_array(37, 4, OrganicMatCategory) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:powder_dye_str, 532) {
|
|
stl_string
|
|
}
|
|
field(:state_color_str, 536) {
|
|
static_array(6, 4, MatterState) {
|
|
stl_string
|
|
}
|
|
}
|
|
end
|
|
|
|
class MaterialTemplate < MaterialCommon
|
|
sizeof 408
|
|
|
|
field(:powder_dye_str, 380) {
|
|
stl_string
|
|
}
|
|
field(:state_color_str, 384) {
|
|
static_array(6, 4, MatterState) {
|
|
stl_string
|
|
}
|
|
}
|
|
end
|
|
|
|
class MaterialVecRef < MemHack::Compound
|
|
sizeof 24
|
|
|
|
field(:mat_type, 0) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:mat_index, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class MeetingDiplomatInfo < MemHack::Compound
|
|
sizeof 188
|
|
|
|
field(:civ_id, 0) {
|
|
number 32, true
|
|
}
|
|
def civ_tg ; df.world.entities.all[civ_id] ; end
|
|
field(:unk1, 4) {
|
|
number 16, true
|
|
}
|
|
field(:diplomat_id, 8) {
|
|
number 32, true
|
|
}
|
|
def diplomat_tg ; df.world.history.figures[diplomat_id] ; end
|
|
field(:unk2, 12) {
|
|
number 32, true
|
|
}
|
|
field(:unk_10, 16) {
|
|
stl_vector
|
|
}
|
|
field(:unk_20, 28) {
|
|
stl_vector
|
|
}
|
|
field(:unk_30, 40) {
|
|
number 32, true
|
|
}
|
|
field(:unk_34, 44) {
|
|
number 32, true
|
|
}
|
|
field(:dipscript, 48) {
|
|
pointer {
|
|
global :DipscriptInfo
|
|
}
|
|
}
|
|
field(:unk_3c, 52) {
|
|
number 32, true
|
|
}
|
|
field(:unk_40, 56) {
|
|
stl_vector
|
|
}
|
|
field(:unk_50, 68) {
|
|
stl_string
|
|
}
|
|
field(:unk_6c, 72) {
|
|
stl_string
|
|
}
|
|
field(:unk_88, 76) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8c, 80) {
|
|
stl_vector
|
|
}
|
|
field(:unk_9c, 92) {
|
|
stl_vector
|
|
}
|
|
field(:unk_ac, 104) {
|
|
stl_vector
|
|
}
|
|
field(:unk_bc, 116) {
|
|
stl_vector
|
|
}
|
|
field(:unk_cc, 128) {
|
|
stl_vector
|
|
}
|
|
field(:unk_dc, 140) {
|
|
stl_vector
|
|
}
|
|
field(:unk_ec, 152) {
|
|
stl_vector
|
|
}
|
|
field(:unk_fc, 164) {
|
|
stl_vector
|
|
}
|
|
field(:unk_10c, 176) {
|
|
stl_vector
|
|
}
|
|
end
|
|
|
|
class NemesisRecord < MemHack::Compound
|
|
sizeof 60
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unit_id, 4) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:save_file_id, 8) {
|
|
number 32, true
|
|
}
|
|
field(:member_idx, 12) {
|
|
number 16, true
|
|
}
|
|
field(:figure, 16) {
|
|
pointer {
|
|
global :HistoricalFigure
|
|
}
|
|
}
|
|
field(:unit, 20) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:group_leader_id, 24) {
|
|
number 32, true
|
|
}
|
|
def group_leader_tg ; df.world.nemesis.all[group_leader_id] ; end
|
|
field(:companions, 28) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def companions_tg ; companions.map { |i| df.world.nemesis.all[i] } ; end
|
|
field(:unk10, 40) {
|
|
number 16, true
|
|
}
|
|
field(:unk11, 44) {
|
|
number 32, true
|
|
}
|
|
field(:unk12, 48) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 52) {
|
|
df_flagarray
|
|
}
|
|
end
|
|
|
|
class PartyInfo < MemHack::Compound
|
|
sizeof 20
|
|
|
|
field(:units, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:location, 12) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
field(:timer, 16) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class PetInfo < MemHack::Compound
|
|
sizeof 80
|
|
|
|
field(:unk0, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:pet_id, 8) {
|
|
number 32, true
|
|
}
|
|
def pet_tg ; df.world.units.all[pet_id] ; end
|
|
field(:name, 12) {
|
|
global :LanguageName
|
|
}
|
|
field(:unk3, 72) {
|
|
number 32, true
|
|
}
|
|
field(:owner_id, 76) {
|
|
number 32, true
|
|
}
|
|
def owner_tg ; df.world.units.all[owner_id] ; end
|
|
end
|
|
|
|
class Plant < MemHack::Compound
|
|
sizeof 116
|
|
|
|
field(:name, 0) {
|
|
global :LanguageName
|
|
}
|
|
field(:flags, 60) {
|
|
global :PlantFlags
|
|
}
|
|
field(:material, 62) {
|
|
number 16, true
|
|
}
|
|
def material_tg ; df.world.raws.plants.all[material] ; end
|
|
field(:pos, 64) {
|
|
global :Coord
|
|
}
|
|
field(:grow_counter, 72) {
|
|
number 32, true
|
|
}
|
|
field(:temperature_1, 76) {
|
|
number 16, false
|
|
}
|
|
field(:temperature_2, 78) {
|
|
number 16, false
|
|
}
|
|
field(:is_burning, 80) {
|
|
number 32, true
|
|
}
|
|
field(:hitpoints, 84) {
|
|
number 32, true
|
|
}
|
|
field(:update_order, 88) {
|
|
number 16, true
|
|
}
|
|
field(:anon_1, 92) {
|
|
stl_vector
|
|
}
|
|
field(:anon_2, 104) {
|
|
number 32, true
|
|
}
|
|
field(:temperature_3, 108) {
|
|
number 16, false
|
|
}
|
|
field(:temperature_4, 110) {
|
|
number 16, false
|
|
}
|
|
field(:temperature_5, 112) {
|
|
number 16, false
|
|
}
|
|
end
|
|
|
|
class PlantFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 16, false
|
|
}
|
|
field(:watery, 0) { bit 0 }
|
|
field(:is_shrub, 0) { bit 1 }
|
|
end
|
|
|
|
class PlantRaw < MemHack::Compound
|
|
sizeof 412
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:flags, 4) {
|
|
df_flagarray(PlantRawFlags)
|
|
}
|
|
field(:name, 12) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 16) {
|
|
stl_string
|
|
}
|
|
field(:adj, 20) {
|
|
stl_string
|
|
}
|
|
field(:seed_singular, 24) {
|
|
stl_string
|
|
}
|
|
field(:seed_plural, 28) {
|
|
stl_string
|
|
}
|
|
field(:leaves_singular, 32) {
|
|
stl_string
|
|
}
|
|
field(:leaves_plural, 36) {
|
|
stl_string
|
|
}
|
|
field(:unk1, 40) {
|
|
number 8, false
|
|
}
|
|
field(:unk2, 41) {
|
|
number 8, false
|
|
}
|
|
field(:tiles, 42) {
|
|
compound(:PlantRaw_TTiles) {
|
|
field(:picked_tile, 0) {
|
|
number 8, false
|
|
}
|
|
field(:dead_picked_tile, 1) {
|
|
number 8, false
|
|
}
|
|
field(:shrub_tile, 2) {
|
|
number 8, false
|
|
}
|
|
field(:dead_shrub_tile, 3) {
|
|
number 8, false
|
|
}
|
|
field(:leaves_tile, 4) {
|
|
number 8, false
|
|
}
|
|
field(:tree_tile, 5) {
|
|
number 8, false
|
|
}
|
|
field(:dead_tree_tile, 6) {
|
|
number 8, false
|
|
}
|
|
field(:sapling_tile, 7) {
|
|
number 8, false
|
|
}
|
|
field(:dead_sapling_tile, 8) {
|
|
number 8, false
|
|
}
|
|
field(:grass_tiles, 9) {
|
|
static_array(16, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:alt_grass_tiles, 25) {
|
|
static_array(12, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:growdur, 80) {
|
|
number 32, true
|
|
}
|
|
field(:value, 84) {
|
|
number 32, true
|
|
}
|
|
field(:colors, 88) {
|
|
compound(:PlantRaw_TColors) {
|
|
field(:picked_color, 0) {
|
|
static_array(3, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:dead_picked_color, 3) {
|
|
static_array(3, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:shrub_color, 6) {
|
|
static_array(3, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:dead_shrub_color, 9) {
|
|
static_array(3, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:seed_color, 12) {
|
|
static_array(3, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:leaves_color, 15) {
|
|
static_array(3, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:dead_leaves_color, 18) {
|
|
static_array(3, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:tree_color, 21) {
|
|
static_array(3, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:dead_tree_color, 24) {
|
|
static_array(3, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:sapling_color, 27) {
|
|
static_array(3, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:dead_sapling_color, 30) {
|
|
static_array(3, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:grass_colors_0, 33) {
|
|
static_array(20, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:grass_colors_1, 53) {
|
|
static_array(20, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:grass_colors_2, 73) {
|
|
static_array(20, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:alt_period, 184) {
|
|
static_array(2, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:shrub_drown_level, 192) {
|
|
number 8, false
|
|
}
|
|
field(:tree_drown_level, 193) {
|
|
number 8, false
|
|
}
|
|
field(:sapling_drown_level, 194) {
|
|
number 8, false
|
|
}
|
|
field(:frequency, 196) {
|
|
number 16, true
|
|
}
|
|
field(:clustersize, 198) {
|
|
number 16, true
|
|
}
|
|
field(:prefstring, 200) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:material, 212) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Material
|
|
}
|
|
}
|
|
}
|
|
field(:material_defs, 224) {
|
|
compound(:PlantRaw_TMaterialDefs) {
|
|
field(:type_basic_mat, 0) {
|
|
number 16, true
|
|
}
|
|
field(:type_tree, 2) {
|
|
number 16, true
|
|
}
|
|
field(:type_drink, 4) {
|
|
number 16, true
|
|
}
|
|
field(:type_seed, 6) {
|
|
number 16, true
|
|
}
|
|
field(:type_thread, 8) {
|
|
number 16, true
|
|
}
|
|
field(:type_mill, 10) {
|
|
number 16, true
|
|
}
|
|
field(:type_extract_vial, 12) {
|
|
number 16, true
|
|
}
|
|
field(:type_extract_barrel, 14) {
|
|
number 16, true
|
|
}
|
|
field(:type_extract_still_vial, 16) {
|
|
number 16, true
|
|
}
|
|
field(:type_leaves, 18) {
|
|
number 16, true
|
|
}
|
|
field(:idx_basic_mat, 20) {
|
|
number 32, true
|
|
}
|
|
field(:idx_tree, 24) {
|
|
number 32, true
|
|
}
|
|
field(:idx_drink, 28) {
|
|
number 32, true
|
|
}
|
|
field(:idx_seed, 32) {
|
|
number 32, true
|
|
}
|
|
field(:idx_thread, 36) {
|
|
number 32, true
|
|
}
|
|
field(:idx_mill, 40) {
|
|
number 32, true
|
|
}
|
|
field(:idx_extract_vial, 44) {
|
|
number 32, true
|
|
}
|
|
field(:idx_extract_barrel, 48) {
|
|
number 32, true
|
|
}
|
|
field(:idx_extract_still_vial, 52) {
|
|
number 32, true
|
|
}
|
|
field(:idx_leaves, 56) {
|
|
number 32, true
|
|
}
|
|
field(:str_basic_mat, 60) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:str_tree, 72) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:str_drink, 84) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:str_seed, 96) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:str_thread, 108) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:str_mill, 120) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:str_extract_vial, 132) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:str_extract_barrel, 144) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:str_extract_still_vial, 156) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:str_leaves, 168) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:underground_depth_min, 404) {
|
|
number 32, true
|
|
}
|
|
field(:underground_depth_max, 408) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class PopupMessage < MemHack::Compound
|
|
sizeof 8
|
|
|
|
field(:text, 0) {
|
|
stl_string
|
|
}
|
|
field(:color, 4) {
|
|
number 16, true, 7
|
|
}
|
|
field(:bright, 6) {
|
|
number 8, true, 1, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class PowerInfo < MemHack::Compound
|
|
sizeof 8
|
|
|
|
field(:produced, 0) {
|
|
number 32, true
|
|
}
|
|
field(:consumed, 4) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class PressurePlateInfo < MemHack::Compound
|
|
sizeof 24
|
|
|
|
field(:unit_min, 0) {
|
|
number 32, true, 50000
|
|
}
|
|
field(:unit_max, 4) {
|
|
number 32, true, 200000
|
|
}
|
|
field(:water_min, 8) {
|
|
number 8, false, 1
|
|
}
|
|
field(:water_max, 9) {
|
|
number 8, false, 7
|
|
}
|
|
field(:magma_min, 10) {
|
|
number 8, false, 1
|
|
}
|
|
field(:magma_max, 11) {
|
|
number 8, false, 7
|
|
}
|
|
field(:track_min, 12) {
|
|
number 32, true, 1
|
|
}
|
|
field(:track_max, 16) {
|
|
number 32, true, 2000
|
|
}
|
|
field(:flags, 20) {
|
|
compound(:PressurePlateInfo_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, true, 0x10
|
|
}
|
|
field(:units, 0) { bit 0 }
|
|
field(:water, 0) { bit 1 }
|
|
field(:magma, 0) { bit 2 }
|
|
field(:citizens, 0) { bit 3 }
|
|
field(:resets, 0) { bit 4 }
|
|
field(:track, 0) { bit 5 }
|
|
}
|
|
}
|
|
end
|
|
|
|
class Projectile < MemHack::Compound
|
|
sizeof 80
|
|
|
|
rtti_classname :projst
|
|
|
|
field(:link, 4) {
|
|
pointer {
|
|
global :ProjListLink
|
|
}
|
|
}
|
|
field(:id, 8) {
|
|
number 32, true
|
|
}
|
|
field(:firer, 12) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:origin_pos, 16) {
|
|
global :Coord
|
|
}
|
|
field(:target_pos, 22) {
|
|
global :Coord
|
|
}
|
|
field(:cur_pos, 28) {
|
|
global :Coord
|
|
}
|
|
field(:prev_pos, 34) {
|
|
global :Coord
|
|
}
|
|
field(:distance_flown, 40) {
|
|
number 32, true
|
|
}
|
|
field(:unk14, 44) {
|
|
number 32, true
|
|
}
|
|
field(:unk15, 48) {
|
|
number 32, true
|
|
}
|
|
field(:unk16, 52) {
|
|
number 32, true
|
|
}
|
|
field(:collided, 56) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:fall_counter, 58) {
|
|
number 16, true
|
|
}
|
|
field(:fall_delay, 60) {
|
|
number 16, true
|
|
}
|
|
field(:unk20, 64) {
|
|
number 32, true
|
|
}
|
|
field(:unk21, 68) {
|
|
number 32, true
|
|
}
|
|
field(:unk22, 72) {
|
|
number 32, true
|
|
}
|
|
field(:unk23, 76) {
|
|
number 32, true
|
|
}
|
|
def getType()
|
|
ProjectileType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 12, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 16, arg0, loadversion) ; nil
|
|
end
|
|
end
|
|
|
|
class ProjItemst < Projectile
|
|
sizeof 84
|
|
|
|
rtti_classname :proj_itemst
|
|
|
|
field(:item, 80) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
end
|
|
|
|
class ProjListLink < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:item, 0) {
|
|
pointer {
|
|
global :Projectile
|
|
}
|
|
}
|
|
field(:prev, 4) {
|
|
pointer {
|
|
global :ProjListLink
|
|
}
|
|
}
|
|
field(:next, 8) {
|
|
pointer {
|
|
global :ProjListLink
|
|
}
|
|
}
|
|
end
|
|
|
|
class ProjMagicst < Projectile
|
|
sizeof 84
|
|
|
|
rtti_classname :proj_magicst
|
|
|
|
field(:unk, 80) {
|
|
pointer {
|
|
}
|
|
}
|
|
end
|
|
|
|
class ProjUnitst < Projectile
|
|
sizeof 84
|
|
|
|
rtti_classname :proj_unitst
|
|
|
|
field(:unit, 80) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
end
|
|
|
|
class QuestListLink < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:item, 0) {
|
|
pointer {
|
|
global :AdvTask
|
|
}
|
|
}
|
|
field(:prev, 4) {
|
|
pointer {
|
|
global :QuestListLink
|
|
}
|
|
}
|
|
field(:next, 8) {
|
|
pointer {
|
|
global :QuestListLink
|
|
}
|
|
}
|
|
end
|
|
|
|
class Reaction < MemHack::Compound
|
|
sizeof 120
|
|
|
|
field(:code, 0) {
|
|
stl_string
|
|
}
|
|
field(:name, 4) {
|
|
stl_string
|
|
}
|
|
field(:flags, 8) {
|
|
df_flagarray(ReactionFlags)
|
|
}
|
|
field(:reagents, 16) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ReactionReagent
|
|
}
|
|
}
|
|
}
|
|
field(:products, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ReactionProduct
|
|
}
|
|
}
|
|
}
|
|
field(:skill, 40) {
|
|
number 16, true, nil, JobSkill
|
|
}
|
|
field(:building, 44) {
|
|
compound(:Reaction_TBuilding) {
|
|
field(:str, 0) {
|
|
static_array(2, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:type, 24) {
|
|
stl_vector(4) {
|
|
number 32, true, nil, BuildingType
|
|
}
|
|
}
|
|
field(:subtype, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:custom, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:hotkey, 60) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:index, 116) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ReactionProduct < MemHack::Compound
|
|
sizeof 4
|
|
|
|
rtti_classname :reaction_productst
|
|
|
|
def getType()
|
|
ReactionProductType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def resolveTokens(reactionID)
|
|
DFHack.vmethod_call(self, 4, reactionID) ; nil
|
|
end
|
|
def getDescription(desc)
|
|
DFHack.vmethod_call(self, 12, desc) ; nil
|
|
end
|
|
end
|
|
|
|
class ReactionProductItemImprovementst < ReactionProduct
|
|
sizeof 56
|
|
|
|
rtti_classname :reaction_product_item_improvementst
|
|
|
|
field(:anon_1, 4) {
|
|
stl_string
|
|
}
|
|
field(:target_reagent, 8) {
|
|
stl_string
|
|
}
|
|
field(:improvement_type, 12) {
|
|
number 32, true, nil, ImprovementType
|
|
}
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:probability, 24) {
|
|
number 16, true
|
|
}
|
|
field(:flags, 28) {
|
|
df_flagarray(ReactionProductImprovementFlags)
|
|
}
|
|
field(:get_material, 36) {
|
|
compound(:ReactionProductItemImprovementst_TGetMaterial) {
|
|
field(:reagent_code, 0) {
|
|
stl_string
|
|
}
|
|
field(:product_code, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:material_str, 44) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
end
|
|
|
|
class ReactionProductItemst < ReactionProduct
|
|
sizeof 64
|
|
|
|
rtti_classname :reaction_product_itemst
|
|
|
|
field(:product_to_container, 4) {
|
|
stl_string
|
|
}
|
|
field(:item_type, 8) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 10) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 12) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 16) {
|
|
number 32, true
|
|
}
|
|
field(:probability, 20) {
|
|
number 16, true
|
|
}
|
|
field(:count, 22) {
|
|
number 16, true
|
|
}
|
|
field(:product_dimension, 24) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 28) {
|
|
df_flagarray(ReactionProductItemFlags)
|
|
}
|
|
field(:get_material, 36) {
|
|
compound(:ReactionProductItemst_TGetMaterial) {
|
|
field(:reagent_code, 0) {
|
|
stl_string
|
|
}
|
|
field(:product_code, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:item_str, 44) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:material_str, 52) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
end
|
|
|
|
class ReactionReagent < MemHack::Compound
|
|
sizeof 8
|
|
|
|
rtti_classname :reaction_reagentst
|
|
|
|
field(:code, 4) {
|
|
stl_string
|
|
}
|
|
def getType()
|
|
ReactionReagentType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def resolveTokens(reactionID)
|
|
DFHack.vmethod_call(self, 16, reactionID) ; nil
|
|
end
|
|
def isLyeBearing()
|
|
val = DFHack.vmethod_call(self, 36)
|
|
(val & 1) != 0
|
|
end
|
|
end
|
|
|
|
class ReactionReagentFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:PRESERVE_REAGENT, 0) { bit 0 }
|
|
field(:IN_CONTAINER, 0) { bit 1 }
|
|
field(:DOES_NOT_DETERMINE_PRODUCT_AMOUNT, 0) { bit 2 }
|
|
end
|
|
|
|
class ReactionReagentItemst < ReactionReagent
|
|
sizeof 112
|
|
|
|
rtti_classname :reaction_reagent_itemst
|
|
|
|
field(:quantity, 8) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 12) {
|
|
global :ReactionReagentFlags
|
|
}
|
|
field(:item_type, 16) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 18) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 20) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 22) {
|
|
number 16, true
|
|
}
|
|
field(:reaction_class, 24) {
|
|
stl_string
|
|
}
|
|
field(:has_material_reaction_product, 28) {
|
|
stl_string
|
|
}
|
|
field(:flags1, 32) {
|
|
global :JobItemFlags1
|
|
}
|
|
field(:flags2, 36) {
|
|
global :JobItemFlags2
|
|
}
|
|
field(:flags3, 40) {
|
|
global :JobItemFlags3
|
|
}
|
|
field(:flags4, 44) {
|
|
number 32, false
|
|
}
|
|
field(:flags5, 48) {
|
|
number 32, false
|
|
}
|
|
field(:metal_ore, 52) {
|
|
number 32, true
|
|
}
|
|
def metal_ore_tg ; df.world.raws.inorganics[metal_ore] ; end
|
|
field(:min_dimension, 56) {
|
|
number 32, true
|
|
}
|
|
field(:contains, 60) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:has_tool_use, 72) {
|
|
number 16, true, nil, ToolUses
|
|
}
|
|
field(:item_str, 76) {
|
|
static_array(2, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:material_str, 84) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:metal_ore_str, 96) {
|
|
stl_string
|
|
}
|
|
field(:contains_str, 100) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class Report < MemHack::Compound
|
|
sizeof 44
|
|
|
|
field(:type, 0) {
|
|
number 16, true, nil, AnnouncementType
|
|
}
|
|
field(:text, 4) {
|
|
stl_string
|
|
}
|
|
field(:color, 8) {
|
|
number 16, true, 7
|
|
}
|
|
field(:bright, 10) {
|
|
number 8, true, 1, BooleanEnum
|
|
}
|
|
field(:duration, 12) {
|
|
number 32, true, 100
|
|
}
|
|
field(:flags, 16) {
|
|
compound(:Report_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 8, false
|
|
}
|
|
field(:continuation, 0) { bit 0 }
|
|
field(:unk1, 0) { bit 1 }
|
|
field(:announcement, 0) { bit 2 }
|
|
}
|
|
}
|
|
field(:repeat_count, 20) {
|
|
number 32, true
|
|
}
|
|
field(:pos, 24) {
|
|
global :Coord
|
|
}
|
|
field(:id, 32) {
|
|
number 32, true
|
|
}
|
|
field(:year, 36) {
|
|
number 32, true
|
|
}
|
|
field(:time, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifier < MemHack::Compound
|
|
sizeof 16
|
|
|
|
rtti_classname :resource_allotment_specifierst
|
|
|
|
field(:anon_1, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 12) {
|
|
number 32, true
|
|
}
|
|
def getType()
|
|
ResourceAllotmentSpecifierType.sym(DFHack.vmethod_call(self, 0))
|
|
end
|
|
def write_file(arg0)
|
|
DFHack.vmethod_call(self, 4, arg0) ; nil
|
|
end
|
|
def read_file(arg0, loadversion)
|
|
DFHack.vmethod_call(self, 8, arg0, loadversion) ; nil
|
|
end
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierAmmost < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_ammost
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierAnvilst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_anvilst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierArmorBodyst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_armor_bodyst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierArmorBootsst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_armor_bootsst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierArmorGlovesst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_armor_glovesst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierArmorHelmst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_armor_helmst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierArmorPantsst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_armor_pantsst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierBackpackst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_backpackst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierBagst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_bagst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierBedst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_bedst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierBonest < ResourceAllotmentSpecifier
|
|
sizeof 28
|
|
|
|
rtti_classname :resource_allotment_specifier_bonest
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierBoxst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_boxst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierCabinetst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_cabinetst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierChairst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_chairst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierCheesest < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_cheesest
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierClothingBodyst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_clothing_bodyst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierClothingBootsst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_clothing_bootsst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierClothingGlovesst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_clothing_glovesst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierClothingHelmst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_clothing_helmst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierClothingPantsst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_clothing_pantsst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierClothst < ResourceAllotmentSpecifier
|
|
sizeof 44
|
|
|
|
rtti_classname :resource_allotment_specifier_clothst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierCraftsst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_craftsst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierCropst < ResourceAllotmentSpecifier
|
|
sizeof 44
|
|
|
|
rtti_classname :resource_allotment_specifier_cropst
|
|
|
|
field(:anon_1, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 24) {
|
|
static_array(5, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierExtractst < ResourceAllotmentSpecifier
|
|
sizeof 40
|
|
|
|
rtti_classname :resource_allotment_specifier_extractst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:mat_type2, 28) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index2, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 36) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierFlaskst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_flaskst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierGemsst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_gemsst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierHornst < ResourceAllotmentSpecifier
|
|
sizeof 28
|
|
|
|
rtti_classname :resource_allotment_specifier_hornst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierLeatherst < ResourceAllotmentSpecifier
|
|
sizeof 64
|
|
|
|
rtti_classname :resource_allotment_specifier_leatherst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 48) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 52) {
|
|
number 32, true
|
|
}
|
|
field(:anon_9, 56) {
|
|
number 32, true
|
|
}
|
|
field(:anon_10, 60) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierMeatst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_meatst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierMetalst < ResourceAllotmentSpecifier
|
|
sizeof 76
|
|
|
|
rtti_classname :resource_allotment_specifier_metalst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
static_array(12, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierPearlst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_pearlst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierPowderst < ResourceAllotmentSpecifier
|
|
sizeof 28
|
|
|
|
rtti_classname :resource_allotment_specifier_powderst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierQuiverst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_quiverst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierShellst < ResourceAllotmentSpecifier
|
|
sizeof 28
|
|
|
|
rtti_classname :resource_allotment_specifier_shellst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierSkinst < ResourceAllotmentSpecifier
|
|
sizeof 36
|
|
|
|
rtti_classname :resource_allotment_specifier_skinst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:mat_type2, 24) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 32) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierSoapst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_soapst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierStonest < ResourceAllotmentSpecifier
|
|
sizeof 52
|
|
|
|
rtti_classname :resource_allotment_specifier_stonest
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
static_array(5, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierTablest < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_tablest
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierTallowst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_tallowst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierThreadst < ResourceAllotmentSpecifier
|
|
sizeof 28
|
|
|
|
rtti_classname :resource_allotment_specifier_threadst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierToothst < ResourceAllotmentSpecifier
|
|
sizeof 28
|
|
|
|
rtti_classname :resource_allotment_specifier_toothst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierWeaponMeleest < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_weapon_meleest
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierWeaponRangedst < ResourceAllotmentSpecifier
|
|
sizeof 24
|
|
|
|
rtti_classname :resource_allotment_specifier_weapon_rangedst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ResourceAllotmentSpecifierWoodst < ResourceAllotmentSpecifier
|
|
sizeof 48
|
|
|
|
rtti_classname :resource_allotment_specifier_woodst
|
|
|
|
field(:mat_type, 16) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class RoomRentInfo < MemHack::Compound
|
|
sizeof 20
|
|
|
|
field(:elements, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
}
|
|
field(:rent_value, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 16) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class RouteStockpileLink < MemHack::Compound
|
|
sizeof 8
|
|
|
|
field(:building_id, 0) {
|
|
number 32, true
|
|
}
|
|
def building_tg ; df.world.buildings.all[building_id] ; end
|
|
field(:mode, 4) {
|
|
compound(:RouteStockpileLink_TMode) {
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:take, 0) { bit 0 }
|
|
field(:give, 0) { bit 1 }
|
|
}
|
|
}
|
|
end
|
|
|
|
class SpecialMatTable < MemHack::Compound
|
|
sizeof 3968
|
|
|
|
field(:organic_types, 0) {
|
|
static_array(37, 12, OrganicMatCategory) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:organic_indexes, 444) {
|
|
static_array(37, 12, OrganicMatCategory) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:organic_unknown, 888) {
|
|
static_array(37, 12, OrganicMatCategory) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:builtin, 1332) {
|
|
static_array(659, 4, BuiltinMats) {
|
|
pointer {
|
|
global :Material
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class SpecificRef < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:type, 0) {
|
|
number 32, true, nil, SpecificRefType
|
|
}
|
|
field(:object, 4) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:unit, 4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:activity, 4) {
|
|
pointer {
|
|
global :ActivityInfo
|
|
}
|
|
}
|
|
field(:pet, 4) {
|
|
pointer {
|
|
global :PetInfo
|
|
}
|
|
}
|
|
field(:screen, 4) {
|
|
pointer {
|
|
global :Viewscreen
|
|
}
|
|
}
|
|
field(:vermin, 4) {
|
|
pointer {
|
|
global :Vermin
|
|
}
|
|
}
|
|
field(:effect, 4) {
|
|
pointer {
|
|
global :EffectInfo
|
|
}
|
|
}
|
|
field(:job, 4) {
|
|
pointer {
|
|
global :Job
|
|
}
|
|
}
|
|
field(:arg2, 8) {
|
|
compound(:SpecificRef_TArg2) {
|
|
field(:wrestle, 0) {
|
|
pointer {
|
|
global :UnitItemWrestle
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class Squad < MemHack::Compound
|
|
sizeof 216
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:name, 4) {
|
|
global :LanguageName
|
|
}
|
|
field(:alias, 64) {
|
|
stl_string
|
|
}
|
|
field(:positions, 68) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :SquadPosition
|
|
}
|
|
}
|
|
}
|
|
field(:orders, 80) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :SquadOrder
|
|
}
|
|
}
|
|
}
|
|
field(:schedule, 92) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
static_array(12, 32) {
|
|
compound(:Squad_TSchedule) {
|
|
sizeof 32
|
|
|
|
field(:name, 0) {
|
|
stl_string
|
|
}
|
|
field(:sleep_mode, 4) {
|
|
number 16, true
|
|
}
|
|
field(:uniform_mode, 6) {
|
|
number 16, true
|
|
}
|
|
field(:orders, 8) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Squad_TSchedule_TOrders) {
|
|
sizeof 24
|
|
|
|
field(:order, 0) {
|
|
pointer {
|
|
global :SquadOrder
|
|
}
|
|
}
|
|
field(:min_count, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_18, 20) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:order_assignments, 20) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:cur_alert_idx, 104) {
|
|
number 32, true
|
|
}
|
|
field(:rooms, 108) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Squad_TRooms) {
|
|
sizeof 8
|
|
|
|
field(:building_id, 0) {
|
|
number 32, true
|
|
}
|
|
def building_tg ; df.world.buildings.all[building_id] ; end
|
|
field(:mode, 4) {
|
|
global :SquadUseFlags
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_d0, 120) {
|
|
stl_vector
|
|
}
|
|
field(:unk_e0, 132) {
|
|
stl_vector
|
|
}
|
|
field(:uniform_priority, 144) {
|
|
number 32, true
|
|
}
|
|
field(:activity, 148) {
|
|
number 32, true
|
|
}
|
|
def activity_tg ; df.world.activities.all[activity] ; end
|
|
field(:ammunition, 152) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :SquadAmmoSpec
|
|
}
|
|
}
|
|
}
|
|
field(:weapons_free, 164) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def weapons_free_tg ; weapons_free.map { |i| df.world.items.all[i] } ; end
|
|
field(:weapons_inuse, 176) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def weapons_inuse_tg ; weapons_inuse.map { |i| df.world.items.all[i] } ; end
|
|
field(:ammo_items, 188) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def ammo_items_tg ; ammo_items.map { |i| df.world.items.all[i] } ; end
|
|
field(:ammo_units, 200) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def ammo_units_tg ; ammo_units.map { |i| df.world.units.all[i] } ; end
|
|
field(:carry_food, 212) {
|
|
number 16, true
|
|
}
|
|
field(:carry_water, 214) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class SquadAmmoSpec < MemHack::Compound
|
|
sizeof 32
|
|
|
|
field(:item_filter, 0) {
|
|
global :ItemFilterSpec
|
|
}
|
|
field(:amount, 12) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 16) {
|
|
compound(:SquadAmmoSpec_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:use_combat, 0) { bit 0 }
|
|
field(:use_training, 0) { bit 1 }
|
|
}
|
|
}
|
|
field(:assigned, 20) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def assigned_tg ; assigned.map { |i| df.world.items.all[i] } ; end
|
|
end
|
|
|
|
class SquadOrder < MemHack::Compound
|
|
sizeof 4
|
|
|
|
rtti_classname :squad_orderst
|
|
|
|
def isPatrol()
|
|
val = DFHack.vmethod_call(self, 16)
|
|
(val & 1) != 0
|
|
end
|
|
def isFulfilled()
|
|
val = DFHack.vmethod_call(self, 44)
|
|
(val & 1) != 0
|
|
end
|
|
def getTargetUnits()
|
|
ptr = DFHack.vmethod_call(self, 48)
|
|
class << self
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
end._at(ptr) if ptr != 0
|
|
end
|
|
def getDescription(arg0)
|
|
DFHack.vmethod_call(self, 56, arg0) ; nil
|
|
end
|
|
def isInactive()
|
|
val = DFHack.vmethod_call(self, 60)
|
|
(val & 1) != 0
|
|
end
|
|
end
|
|
|
|
class SquadOrderKillListst < SquadOrder
|
|
sizeof 32
|
|
|
|
rtti_classname :squad_order_kill_listst
|
|
|
|
field(:units, 4) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def units_tg ; units.map { |i| df.world.units.all[i] } ; end
|
|
field(:histfigs, 16) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def histfigs_tg ; histfigs.map { |i| df.world.history.figures[i] } ; end
|
|
field(:title, 28) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class SquadOrderMovest < SquadOrder
|
|
sizeof 16
|
|
|
|
rtti_classname :squad_order_movest
|
|
|
|
field(:pos, 4) {
|
|
global :Coord
|
|
}
|
|
field(:unk, 12) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class SquadOrderTrainst < SquadOrder
|
|
sizeof 4
|
|
|
|
rtti_classname :squad_order_trainst
|
|
|
|
end
|
|
|
|
class SquadPosition < MemHack::Compound
|
|
sizeof 212
|
|
|
|
field(:occupant, 0) {
|
|
number 32, true
|
|
}
|
|
def occupant_tg ; df.world.history.figures[occupant] ; end
|
|
field(:orders, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :SquadOrder
|
|
}
|
|
}
|
|
}
|
|
field(:preferences, 16) {
|
|
compound(:SquadPosition_TPreferences) {
|
|
field(:bed, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def bed_tg ; bed.map { |i| df.world.buildings.all[i] } ; end
|
|
field(:armor_stand, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def armor_stand_tg ; armor_stand.map { |i| df.world.buildings.all[i] } ; end
|
|
field(:box, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def box_tg ; box.map { |i| df.world.buildings.all[i] } ; end
|
|
}
|
|
}
|
|
field(:unk_44, 52) {
|
|
stl_vector
|
|
}
|
|
field(:uniform, 64) {
|
|
static_array(7, 12, UniformCategory) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :SquadUniformSpec
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_c4, 148) {
|
|
stl_string
|
|
}
|
|
field(:flags, 152) {
|
|
global :UniformFlags
|
|
}
|
|
field(:assigned_items, 156) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def assigned_items_tg ; assigned_items.map { |i| df.world.items.all[i] } ; end
|
|
field(:quiver, 168) {
|
|
number 32, true
|
|
}
|
|
def quiver_tg ; df.world.items.all[quiver] ; end
|
|
field(:backpack, 172) {
|
|
number 32, true
|
|
}
|
|
def backpack_tg ; df.world.items.all[backpack] ; end
|
|
field(:flask, 176) {
|
|
number 32, true
|
|
}
|
|
def flask_tg ; df.world.items.all[flask] ; end
|
|
field(:activity1, 180) {
|
|
number 32, true
|
|
}
|
|
def activity1_tg ; df.world.activities.all[activity1] ; end
|
|
field(:activity2, 184) {
|
|
number 32, true
|
|
}
|
|
def activity2_tg ; df.world.activities.all[activity2] ; end
|
|
field(:activity3, 188) {
|
|
number 32, true
|
|
}
|
|
def activity3_tg ; df.world.activities.all[activity3] ; end
|
|
field(:unk_10c, 192) {
|
|
number 32, true
|
|
}
|
|
field(:unk_110, 196) {
|
|
number 32, true
|
|
}
|
|
field(:unk_114, 200) {
|
|
number 32, true
|
|
}
|
|
field(:unk_118, 204) {
|
|
number 32, true
|
|
}
|
|
field(:unk_11c, 208) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class SquadUniformSpec < MemHack::Compound
|
|
sizeof 36
|
|
|
|
field(:item, 0) {
|
|
number 32, true
|
|
}
|
|
def item_tg ; df.world.items.all[item] ; end
|
|
field(:item_filter, 4) {
|
|
global :ItemFilterSpec
|
|
}
|
|
field(:color, 16) {
|
|
number 32, true
|
|
}
|
|
field(:assigned, 20) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def assigned_tg ; assigned.map { |i| df.world.items.all[i] } ; end
|
|
field(:indiv_choice, 32) {
|
|
global :UniformIndivChoice
|
|
}
|
|
end
|
|
|
|
class SquadUseFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:sleep, 0) { bit 0 }
|
|
field(:train, 0) { bit 1 }
|
|
field(:indiv_eq, 0) { bit 2 }
|
|
field(:squad_eq, 0) { bit 3 }
|
|
end
|
|
|
|
class StockpileGroupSet < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:animals, 0) { bit 0 }
|
|
field(:food, 0) { bit 1 }
|
|
field(:furniture, 0) { bit 2 }
|
|
field(:corpses, 0) { bit 3 }
|
|
field(:refuse, 0) { bit 4 }
|
|
field(:stone, 0) { bit 5 }
|
|
field(:ammo, 0) { bit 6 }
|
|
field(:coins, 0) { bit 7 }
|
|
field(:bars, 0) { bit 8 }
|
|
field(:gems, 0) { bit 9 }
|
|
field(:goods, 0) { bit 10 }
|
|
field(:leather, 0) { bit 11 }
|
|
field(:cloth, 0) { bit 12 }
|
|
field(:wood, 0) { bit 13 }
|
|
field(:weapons, 0) { bit 14 }
|
|
field(:armor, 0) { bit 15 }
|
|
end
|
|
|
|
class StockpileSettings < MemHack::Compound
|
|
sizeof 956
|
|
|
|
field(:flags, 0) {
|
|
global :StockpileGroupSet
|
|
}
|
|
field(:animals, 4) {
|
|
compound(:StockpileSettings_TAnimals) {
|
|
field(:animals_empty_cages, 0) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:animals_empty_traps, 1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:enabled, 4) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:food, 20) {
|
|
compound(:StockpileSettings_TFood) {
|
|
field(:type, 0) {
|
|
global :StockpileSettingsFood
|
|
}
|
|
field(:prepared_meals, 228) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
field(:furniture, 252) {
|
|
compound(:StockpileSettings_TFurniture) {
|
|
field(:type, 0) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:other_mats, 12) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:mats, 24) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:quality_core, 36) {
|
|
static_array(7, 1, ItemQuality) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:quality_total, 43) {
|
|
static_array(7, 1, ItemQuality) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:sand_bags, 50) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
field(:unk1, 304) {
|
|
number 32, true
|
|
}
|
|
field(:refuse, 308) {
|
|
compound(:StockpileSettings_TRefuse) {
|
|
field(:type, 0) {
|
|
global :StockpileSettingsRefuse
|
|
}
|
|
field(:fresh_raw_hide, 108) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:rotten_raw_hide, 109) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
field(:stone, 420) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:unk2, 432) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:ammo, 444) {
|
|
compound(:StockpileSettings_TAmmo) {
|
|
field(:type, 0) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:other_mats, 12) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:mats, 24) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:quality_core, 36) {
|
|
static_array(7, 1, ItemQuality) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:quality_total, 43) {
|
|
static_array(7, 1, ItemQuality) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:coins, 496) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:bars_other_mats, 508) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:blocks_other_mats, 520) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:bars_mats, 532) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:blocks_mats, 544) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:gems, 556) {
|
|
compound(:StockpileSettings_TGems) {
|
|
field(:rough_other_mats, 0) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:cut_other_mats, 12) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:rough_mats, 24) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:cut_mats, 36) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:finished_goods, 604) {
|
|
compound(:StockpileSettings_TFinishedGoods) {
|
|
field(:type, 0) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:other_mats, 12) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:mats, 24) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:quality_core, 36) {
|
|
static_array(7, 1, ItemQuality) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:quality_total, 43) {
|
|
static_array(7, 1, ItemQuality) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:leather, 656) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:cloth, 668) {
|
|
compound(:StockpileSettings_TCloth) {
|
|
field(:thread_silk, 0) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:thread_plant, 12) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:thread_yarn, 24) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:thread_metal, 36) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:cloth_silk, 48) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:cloth_plant, 60) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:cloth_yarn, 72) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:cloth_metal, 84) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:wood, 764) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:weapons, 776) {
|
|
compound(:StockpileSettings_TWeapons) {
|
|
field(:weapon_type, 0) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:trapcomp_type, 12) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:other_mats, 24) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:mats, 36) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:quality_core, 48) {
|
|
static_array(7, 1, ItemQuality) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:quality_total, 55) {
|
|
static_array(7, 1, ItemQuality) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:usable, 62) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:unusable, 63) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
field(:armor, 840) {
|
|
compound(:StockpileSettings_TArmor) {
|
|
field(:body, 0) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:head, 12) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:feet, 24) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:hands, 36) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:legs, 48) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:shield, 60) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:other_mats, 72) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:mats, 84) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:quality_core, 96) {
|
|
static_array(7, 1, ItemQuality) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:quality_total, 103) {
|
|
static_array(7, 1, ItemQuality) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:usable, 110) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:unusable, 111) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
field(:allow_organic, 952) {
|
|
number 8, true, 1, BooleanEnum
|
|
}
|
|
field(:allow_inorganic, 953) {
|
|
number 8, true, 1, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class StockpileSettingsFood < MemHack::Compound
|
|
sizeof 228
|
|
|
|
field(:meat, 0) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:fish, 12) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:unprepared_fish, 24) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:egg, 36) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:plants, 48) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:drink_plant, 60) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:drink_animal, 72) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:cheese_plant, 84) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:cheese_animal, 96) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:seeds, 108) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:leaves, 120) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:powder_plant, 132) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:powder_creature, 144) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:glob, 156) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:glob_paste, 168) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:glob_pressed, 180) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:liquid_plant, 192) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:liquid_animal, 204) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:liquid_misc, 216) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
end
|
|
|
|
class StockpileSettingsRefuse < MemHack::Compound
|
|
sizeof 108
|
|
|
|
field(:type, 0) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:corpses, 12) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:body_parts, 24) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:skulls, 36) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:bones, 48) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:hair, 60) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:shells, 72) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:teeth, 84) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:horns, 96) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
end
|
|
|
|
class StopDepartCondition < MemHack::Compound
|
|
sizeof 56
|
|
|
|
field(:timeout, 0) {
|
|
number 32, true
|
|
}
|
|
field(:direction, 4) {
|
|
class ::DFHack::StopDepartCondition_TDirection < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :North ; NUME[:North] = 0
|
|
ENUM[1] = :South ; NUME[:South] = 1
|
|
ENUM[2] = :East ; NUME[:East] = 2
|
|
ENUM[3] = :West ; NUME[:West] = 3
|
|
end
|
|
|
|
number 32, true, nil, StopDepartCondition_TDirection
|
|
}
|
|
field(:mode, 8) {
|
|
class ::DFHack::StopDepartCondition_TMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Push ; NUME[:Push] = 0
|
|
ENUM[1] = :Ride ; NUME[:Ride] = 1
|
|
ENUM[2] = :Guide ; NUME[:Guide] = 2
|
|
end
|
|
|
|
number 32, true, nil, StopDepartCondition_TMode
|
|
}
|
|
field(:load_percent, 12) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 16) {
|
|
compound(:StopDepartCondition_TFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:at_most, 0) { bit 0 }
|
|
field(:desired, 0) { bit 1 }
|
|
}
|
|
}
|
|
field(:guide_path, 20) {
|
|
global :CoordPath
|
|
}
|
|
end
|
|
|
|
class Syndrome < MemHack::Compound
|
|
sizeof 108
|
|
|
|
field(:syn_name, 0) {
|
|
stl_string
|
|
}
|
|
field(:ce, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CreatureInteractionEffect
|
|
}
|
|
}
|
|
}
|
|
field(:syn_affected_class, 16) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:syn_affected_creature_1, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:syn_affected_creature_2, 40) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:syn_immune_class, 52) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:syn_immune_creature_1, 64) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:syn_immune_creature_2, 76) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:syn_class, 88) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:flags, 100) {
|
|
global :SyndromeFlags
|
|
}
|
|
field(:id, 104) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class SyndromeFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:SYN_INJECTED, 0) { bit 0 }
|
|
field(:SYN_CONTACT, 0) { bit 1 }
|
|
field(:SYN_INHALED, 0) { bit 2 }
|
|
field(:SYN_INGESTED, 0) { bit 4 }
|
|
end
|
|
|
|
class TaskKillNemesisst < AdvTask
|
|
sizeof 64
|
|
|
|
rtti_classname :task_kill_nemesisst
|
|
|
|
field(:anon_1, 48) {
|
|
number 32, true
|
|
}
|
|
field(:target_site, 52) {
|
|
number 32, true
|
|
}
|
|
def target_site_tg ; df.world.world_data.sites[target_site] ; end
|
|
field(:target_hfid, 56) {
|
|
number 32, true
|
|
}
|
|
def target_hfid_tg ; df.world.history.figures[target_hfid] ; end
|
|
field(:anon_2, 60) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class TaskSeekNemesisst < AdvTask
|
|
sizeof 60
|
|
|
|
rtti_classname :task_seek_nemesisst
|
|
|
|
field(:anon_1, 48) {
|
|
number 32, true
|
|
}
|
|
field(:target_site, 52) {
|
|
number 32, true
|
|
}
|
|
def target_site_tg ; df.world.world_data.sites[target_site] ; end
|
|
field(:target_hfid, 56) {
|
|
number 32, true
|
|
}
|
|
def target_hfid_tg ; df.world.history.figures[target_hfid] ; end
|
|
end
|
|
|
|
class TextureHandler < MemHack::Compound
|
|
sizeof 36
|
|
|
|
field(:page, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :TilePage
|
|
}
|
|
}
|
|
}
|
|
field(:texpos, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:datapos, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class TileBitmask < MemHack::Compound
|
|
sizeof 32
|
|
|
|
field(:bits, 0) {
|
|
static_array(16, 2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
end
|
|
|
|
class TileDesignation < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:flow_size, 0) { bits 0, 3 }
|
|
field(:pile, 0) { bit 3 }
|
|
field(:dig, 0) { bits 4, 3, TileDigDesignation }
|
|
field(:smooth, 0) { bits 7, 2 }
|
|
field(:hidden, 0) { bit 9 }
|
|
field(:geolayer_index, 0) { bits 10, 4 }
|
|
field(:light, 0) { bit 14 }
|
|
field(:subterranean, 0) { bit 15 }
|
|
field(:outside, 0) { bit 16 }
|
|
field(:biome, 0) { bits 17, 4 }
|
|
field(:liquid_type, 0) { bit 21 }
|
|
field(:water_table, 0) { bit 22 }
|
|
field(:rained, 0) { bit 23 }
|
|
field(:traffic, 0) { bits 24, 2, TileTraffic }
|
|
field(:flow_forbid, 0) { bit 26 }
|
|
field(:liquid_static, 0) { bit 27 }
|
|
field(:feature_local, 0) { bit 28 }
|
|
field(:feature_global, 0) { bit 29 }
|
|
field(:water_stagnant, 0) { bit 30 }
|
|
field(:water_salt, 0) { bit 31 }
|
|
end
|
|
|
|
class TileLiquidFlow < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 16, false
|
|
}
|
|
field(:temp_flow_timer, 0) { bits 0, 3 }
|
|
field(:unk_1, 0) { bits 3, 3 }
|
|
field(:perm_flow_dir, 0) { bits 6, 4, TileLiquidFlowDir }
|
|
field(:unk_2, 0) { bits 10, 6 }
|
|
end
|
|
|
|
class TileOccupancy < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:building, 0) { bits 0, 3, TileBuildingOcc }
|
|
field(:unit, 0) { bit 3 }
|
|
field(:unit_grounded, 0) { bit 4 }
|
|
field(:item, 0) { bit 5 }
|
|
field(:edge_flow_in, 0) { bit 6 }
|
|
field(:moss, 0) { bit 7 }
|
|
field(:arrow_color, 0) { bits 8, 4 }
|
|
field(:arrow_variant, 0) { bit 12 }
|
|
field(:unk13, 0) { bit 13 }
|
|
field(:monster_lair, 0) { bit 14 }
|
|
field(:no_grow, 0) { bit 15 }
|
|
field(:unk16, 0) { bit 16 }
|
|
field(:unk17, 0) { bit 17 }
|
|
field(:carve_track_north, 0) { bit 18 }
|
|
field(:carve_track_south, 0) { bit 19 }
|
|
field(:carve_track_east, 0) { bit 20 }
|
|
field(:carve_track_west, 0) { bit 21 }
|
|
end
|
|
|
|
class TilePage < MemHack::Compound
|
|
sizeof 68
|
|
|
|
field(:token, 0) {
|
|
stl_string
|
|
}
|
|
field(:filename, 4) {
|
|
stl_string
|
|
}
|
|
field(:tile_dim_x, 8) {
|
|
number 16, true
|
|
}
|
|
field(:tile_dim_y, 10) {
|
|
number 16, true
|
|
}
|
|
field(:page_dim_x, 12) {
|
|
number 16, true
|
|
}
|
|
field(:page_dim_y, 14) {
|
|
number 16, true
|
|
}
|
|
field(:texpos, 16) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:datapos, 28) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:texpos_gs, 40) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:datapos_gs, 52) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:loaded, 64) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class TimedEvent < MemHack::Compound
|
|
sizeof 24
|
|
|
|
field(:type, 0) {
|
|
number 16, true, nil, TimedEventType
|
|
}
|
|
field(:season, 2) {
|
|
number 8, false
|
|
}
|
|
field(:season_ticks, 4) {
|
|
number 16, true
|
|
}
|
|
field(:entity, 8) {
|
|
pointer {
|
|
global :HistoricalEntity
|
|
}
|
|
}
|
|
field(:anon_1, 12) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 20) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 22) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class TissueTemplate < MemHack::Compound
|
|
sizeof 80
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:flags, 4) {
|
|
df_flagarray(TissueTemplateFlags)
|
|
}
|
|
field(:tissue_name_singular, 12) {
|
|
stl_string
|
|
}
|
|
field(:tissue_name_plural, 16) {
|
|
stl_string
|
|
}
|
|
field(:tissue_material_str, 20) {
|
|
static_array(3, 4) {
|
|
stl_string
|
|
}
|
|
}
|
|
field(:anon_1, 32) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 36) {
|
|
number 32, true
|
|
}
|
|
field(:relative_thickness, 40) {
|
|
number 32, true
|
|
}
|
|
field(:healing_rate, 44) {
|
|
number 32, true
|
|
}
|
|
field(:vascular, 48) {
|
|
number 32, true
|
|
}
|
|
field(:pain_receptors, 52) {
|
|
number 32, true
|
|
}
|
|
field(:tissue_shape, 56) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 60) {
|
|
number 32, true
|
|
}
|
|
field(:insulation, 64) {
|
|
number 16, true
|
|
}
|
|
field(:subordinate_to_tissue, 68) {
|
|
stl_string
|
|
}
|
|
field(:tissue_mat_state, 72) {
|
|
number 16, true
|
|
}
|
|
field(:tissue_shape_str, 76) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class TrainingAssignment < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:animal_id, 0) {
|
|
number 32, true
|
|
}
|
|
def animal_tg ; df.world.units.all[animal_id] ; end
|
|
field(:trainer_id, 4) {
|
|
number 32, true
|
|
}
|
|
def trainer_tg ; df.world.units.all[trainer_id] ; end
|
|
field(:auto_mode, 8) {
|
|
class ::DFHack::TrainingAssignment_TAutoMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :None ; NUME[:None] = 0
|
|
ENUM[1] = :Any ; NUME[:Any] = 1
|
|
ENUM[2] = :AnyUnassigned ; NUME[:AnyUnassigned] = 2
|
|
end
|
|
|
|
number 32, true, nil, TrainingAssignment_TAutoMode
|
|
}
|
|
end
|
|
|
|
class Ui < MemHack::Compound
|
|
sizeof 28420
|
|
|
|
field(:game_state, 0) {
|
|
number 16, true
|
|
}
|
|
field(:lost_to_siege_civ, 4) {
|
|
number 32, true
|
|
}
|
|
def lost_to_siege_civ_tg ; df.world.entities.all[lost_to_siege_civ] ; end
|
|
field(:unk8, 8) {
|
|
compound(:Ui_TUnk8) {
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk10, 8) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
}
|
|
field(:anon_3, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 28) {
|
|
static_array(2, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_6, 36) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 38) {
|
|
number 16, true
|
|
}
|
|
field(:anon_8, 40) {
|
|
number 16, true
|
|
}
|
|
field(:anon_9, 42) {
|
|
number 16, true
|
|
}
|
|
field(:anon_10, 44) {
|
|
number 16, true
|
|
}
|
|
field(:anon_11, 46) {
|
|
static_array(2, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_12, 50) {
|
|
static_array(2, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_13, 54) {
|
|
static_array(2, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_14, 60) {
|
|
number 32, true
|
|
}
|
|
field(:anon_15, 64) {
|
|
number 32, true
|
|
}
|
|
field(:anon_16, 68) {
|
|
number 32, true
|
|
}
|
|
field(:anon_17, 72) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
field(:anon_1, 84) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 88) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 92) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 96) {
|
|
number 32, true
|
|
}
|
|
field(:bookkeeper_settings, 100) {
|
|
number 16, true
|
|
}
|
|
field(:caravans, 104) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CaravanState
|
|
}
|
|
}
|
|
}
|
|
field(:anon_5, 116) {
|
|
number 8, false
|
|
}
|
|
field(:fortress_rank, 118) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 120) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 122) {
|
|
number 16, true
|
|
}
|
|
field(:anon_8, 124) {
|
|
number 16, true
|
|
}
|
|
field(:anon_9, 126) {
|
|
number 8, false
|
|
}
|
|
field(:anon_10, 127) {
|
|
number 8, false
|
|
}
|
|
field(:economy_enabled, 128) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:anon_11, 129) {
|
|
number 8, false
|
|
}
|
|
field(:justice_active, 130) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:anon_12, 132) {
|
|
number 16, true
|
|
}
|
|
field(:anon_13, 134) {
|
|
number 16, true
|
|
}
|
|
field(:anon_14, 136) {
|
|
number 16, true
|
|
}
|
|
field(:becoming_capital, 140) {
|
|
compound(:Ui_TBecomingCapital) {
|
|
field(:desired_architecture, 0) {
|
|
number 32, true
|
|
}
|
|
field(:desired_offerings, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:anon_15, 148) {
|
|
static_array(152, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:guild_wages, 452) {
|
|
static_array(6, 4, GuildId) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:guild_happiness, 476) {
|
|
static_array(6, 2, GuildId) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:labor_slowdown_timer, 488) {
|
|
static_array(6, 2, GuildId) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:currency_value, 500) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_16, 512) {
|
|
number 32, true
|
|
}
|
|
field(:anon_17, 516) {
|
|
number 32, true
|
|
}
|
|
field(:anon_18, 520) {
|
|
number 32, true
|
|
}
|
|
field(:tasks, 524) {
|
|
global :EntityActivityStatistics
|
|
}
|
|
field(:unk22e8, 8844) {
|
|
stl_vector
|
|
}
|
|
field(:activities, 8856) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ActivityInfo
|
|
}
|
|
}
|
|
}
|
|
field(:dip_meeting_info, 8868) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :MeetingDiplomatInfo
|
|
}
|
|
}
|
|
}
|
|
field(:unk230c, 8880) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def unk230c_tg ; unk230c.map { |i| df.world.units.all[i] } ; end
|
|
field(:game_over, 8892) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:invasions, 8896) {
|
|
compound(:Ui_TInvasions) {
|
|
field(:list, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :InvasionInfo
|
|
}
|
|
}
|
|
}
|
|
field(:next_id, 12) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:crimes, 8912) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Ui_TCrimes) {
|
|
sizeof 24
|
|
|
|
field(:mode, 0) {
|
|
class ::DFHack::Ui_TCrimes_TMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :ProductionOrderViolation ; NUME[:ProductionOrderViolation] = 0
|
|
ENUM[1] = :ExportViolation ; NUME[:ExportViolation] = 1
|
|
ENUM[2] = :JobOrderViolation ; NUME[:JobOrderViolation] = 2
|
|
ENUM[3] = :ConspiracyToSlowLabor ; NUME[:ConspiracyToSlowLabor] = 3
|
|
ENUM[4] = :Murder ; NUME[:Murder] = 4
|
|
ENUM[5] = :DisorderlyBehavior ; NUME[:DisorderlyBehavior] = 5
|
|
ENUM[6] = :BuildingDestruction ; NUME[:BuildingDestruction] = 6
|
|
ENUM[7] = :Vandalism ; NUME[:Vandalism] = 7
|
|
end
|
|
|
|
number 16, true, nil, Ui_TCrimes_TMode
|
|
}
|
|
field(:unk2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:unk3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:unk4, 6) {
|
|
number 16, true
|
|
}
|
|
field(:unk5, 8) {
|
|
number 32, true
|
|
}
|
|
field(:criminal, 12) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:victim, 16) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:punishment_assigned, 20) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:punishments, 8924) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Ui_TPunishments) {
|
|
sizeof 36
|
|
|
|
field(:criminal, 0) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:officer, 4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:beating, 8) {
|
|
number 16, true
|
|
}
|
|
field(:hammer_strikes, 10) {
|
|
number 16, true
|
|
}
|
|
field(:prison_counter, 12) {
|
|
number 32, true
|
|
}
|
|
field(:unk_10, 16) {
|
|
number 16, true
|
|
}
|
|
field(:chain, 20) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
field(:victims, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:pets, 8936) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :PetInfo
|
|
}
|
|
}
|
|
}
|
|
field(:parties, 8948) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :PartyInfo
|
|
}
|
|
}
|
|
}
|
|
field(:room_rent, 8960) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :RoomRentInfo
|
|
}
|
|
}
|
|
}
|
|
field(:dipscripts, 8972) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :DipscriptInfo
|
|
}
|
|
}
|
|
}
|
|
field(:dipscript_popups, 8984) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:kitchen, 8996) {
|
|
compound(:Ui_TKitchen) {
|
|
field(:item_types, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:item_subtypes, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:mat_types, 24) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:mat_indices, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:exc_types, 48) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:economic_stone, 9056) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:unk23c8_flags, 9068) {
|
|
number 32, false
|
|
}
|
|
field(:unk23cc, 9072) {
|
|
number 16, true
|
|
}
|
|
field(:mood_cooldown, 9074) {
|
|
number 16, true
|
|
}
|
|
field(:civ_id, 9076) {
|
|
number 32, true
|
|
}
|
|
def civ_tg ; df.world.entities.all[civ_id] ; end
|
|
field(:site_id, 9080) {
|
|
number 32, true
|
|
}
|
|
def site_tg ; df.world.world_data.sites[site_id] ; end
|
|
field(:group_id, 9084) {
|
|
number 32, true
|
|
}
|
|
def group_tg ; df.world.entities.all[group_id] ; end
|
|
field(:race_id, 9088) {
|
|
number 32, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race_id] ; end
|
|
field(:unk23e0, 9092) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk23ec, 9104) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:economy_prices, 9116) {
|
|
compound(:Ui_TEconomyPrices) {
|
|
field(:price_adjustment, 0) {
|
|
compound(:Ui_TEconomyPrices_TPriceAdjustment) {
|
|
field(:general_items, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:weapons, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:armor, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:handwear, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:footwear, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:headwear, 60) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:legwear, 72) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:prepared_food, 84) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:wood, 96) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:thread_cloth, 108) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:bone, 120) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:tooth, 132) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:horn, 144) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:pearl, 156) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:shell, 168) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:leather, 180) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:silk, 192) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:inorganic, 204) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:meat, 216) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:fish, 228) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:plants, 240) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:drinks, 252) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:extract_animal, 264) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:extract_plant, 276) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:mill_animal, 288) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:mill_plant, 300) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:cheese_animal, 312) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:cheese_plant, 324) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:pets, 336) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:yarn, 348) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:price_setter, 360) {
|
|
compound(:Ui_TEconomyPrices_TPriceSetter) {
|
|
field(:general_items, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:weapons, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:armor, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:handwear, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:footwear, 48) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:headwear, 60) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:legwear, 72) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:prepared_food, 84) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:wood, 96) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:thread_cloth, 108) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:bone, 120) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:tooth, 132) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:horn, 144) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:pearl, 156) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:shell, 168) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:leather, 180) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:silk, 192) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:inorganic, 204) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:meat, 216) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:fish, 228) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:plants, 240) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:drinks, 252) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:extract_animal, 264) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:extract_plant, 276) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:mill_animal, 288) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:mill_plant, 300) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:cheese_animal, 312) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:cheese_plant, 324) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:pets, 336) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:yarn, 348) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:stockpile, 9836) {
|
|
compound(:Ui_TStockpile) {
|
|
field(:reserved_bins, 0) {
|
|
number 32, true
|
|
}
|
|
field(:reserved_barrels, 4) {
|
|
number 32, true
|
|
}
|
|
field(:custom_settings, 8) {
|
|
global :StockpileSettings
|
|
}
|
|
}
|
|
}
|
|
field(:unk2a8c, 10800) {
|
|
static_array(4, 3072) {
|
|
static_array(768, 4) {
|
|
compound(:Ui_TUnk2a8c) {
|
|
field(:unk1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:unk2, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk5a8c, 23088) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk5a98, 23100) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk5aa4, 23112) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk5ab0, 23124) {
|
|
static_array(5, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:unk5aec, 23184) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk5af8, 23196) {
|
|
static_array(5, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:unk5b34, 23256) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk5b40, 23268) {
|
|
static_array(5, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:unk5b7c, 23328) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk5b88, 23340) {
|
|
static_array(7, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:waypoints, 23424) {
|
|
compound(:Ui_TWaypoints) {
|
|
field(:points, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Ui_TWaypoints_TPoints) {
|
|
sizeof 28
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:tile, 4) {
|
|
number 8, false
|
|
}
|
|
field(:fg_color, 6) {
|
|
number 16, true
|
|
}
|
|
field(:bg_color, 8) {
|
|
number 16, true
|
|
}
|
|
field(:name, 12) {
|
|
stl_string
|
|
}
|
|
field(:comment, 16) {
|
|
stl_string
|
|
}
|
|
field(:pos, 20) {
|
|
global :Coord
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:routes, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Ui_TWaypoints_TRoutes) {
|
|
sizeof 20
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:name, 4) {
|
|
stl_string
|
|
}
|
|
field(:points, 8) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:sym_selector, 24) {
|
|
number 16, true
|
|
}
|
|
field(:anon_1, 26) {
|
|
number 16, true
|
|
}
|
|
field(:cur_point_index, 28) {
|
|
number 32, true
|
|
}
|
|
field(:in_edit_name_mode, 32) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:anon_2, 33) {
|
|
number 8, false
|
|
}
|
|
field(:sym_tile, 34) {
|
|
number 8, false
|
|
}
|
|
field(:sym_fg_color, 36) {
|
|
number 16, true
|
|
}
|
|
field(:sym_bg_color, 38) {
|
|
number 16, true
|
|
}
|
|
field(:unk5c04, 40) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:next_point_id, 52) {
|
|
number 32, true
|
|
}
|
|
field(:next_route_id, 56) {
|
|
number 32, true
|
|
}
|
|
field(:sel_route_idx, 60) {
|
|
number 32, true
|
|
}
|
|
field(:sel_route_waypt_idx, 64) {
|
|
number 32, true
|
|
}
|
|
field(:in_edit_waypts_mode, 68) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
field(:burrows, 23496) {
|
|
compound(:Ui_TBurrows) {
|
|
field(:list, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Burrow
|
|
}
|
|
}
|
|
}
|
|
field(:next_id, 12) {
|
|
number 32, true
|
|
}
|
|
field(:sel_index, 16) {
|
|
number 32, true
|
|
}
|
|
field(:sel_id, 20) {
|
|
number 32, true
|
|
}
|
|
def sel_tg ; df.ui.burrows.list[sel_id] ; end
|
|
field(:in_confirm_delete, 24) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:in_add_units_mode, 25) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:list_units, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:sel_units, 40) {
|
|
stl_bit_vector
|
|
}
|
|
field(:unit_cursor_pos, 60) {
|
|
number 32, true
|
|
}
|
|
field(:in_define_mode, 64) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:rect_start, 66) {
|
|
global :Coord
|
|
}
|
|
field(:brush_mode, 72) {
|
|
number 16, true
|
|
}
|
|
field(:in_edit_name_mode, 74) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:sym_selector, 76) {
|
|
number 16, true
|
|
}
|
|
field(:sym_tile, 78) {
|
|
number 16, true
|
|
}
|
|
field(:sym_fg_color, 80) {
|
|
number 16, true
|
|
}
|
|
field(:sym_bg_color, 82) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:alerts, 23580) {
|
|
compound(:Ui_TAlerts) {
|
|
field(:list, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Ui_TAlerts_TList) {
|
|
sizeof 20
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:name, 4) {
|
|
stl_string
|
|
}
|
|
field(:anon_1, 8) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:next_id, 12) {
|
|
number 32, true
|
|
}
|
|
field(:civ_alert_idx, 16) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:equipment, 23600) {
|
|
compound(:Ui_TEquipment) {
|
|
field(:items_by_type1, 0) {
|
|
static_array(112, 12, ItemType) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:items_unassigned, 1344) {
|
|
static_array(112, 12, ItemType) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:items_assigned, 2688) {
|
|
static_array(112, 12, ItemType) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:update, 4032) {
|
|
compound(:Ui_TEquipment_TUpdate) {
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:weapon, 0) { bit 0 }
|
|
field(:armor, 0) { bit 1 }
|
|
field(:shoes, 0) { bit 2 }
|
|
field(:shield, 0) { bit 3 }
|
|
field(:helm, 0) { bit 4 }
|
|
field(:gloves, 0) { bit 5 }
|
|
field(:ammo, 0) { bit 6 }
|
|
field(:pants, 0) { bit 7 }
|
|
field(:backpack, 0) { bit 8 }
|
|
field(:quiver, 0) { bit 9 }
|
|
field(:flask, 0) { bit 10 }
|
|
field(:buildings, 0) { bit 12 }
|
|
}
|
|
}
|
|
field(:work_weapons, 4036) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def work_weapons_tg ; work_weapons.map { |i| df.world.items.all[i] } ; end
|
|
field(:work_units, 4048) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def work_units_tg ; work_units.map { |i| df.world.units.all[i] } ; end
|
|
field(:hunter_ammunition, 4060) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :SquadAmmoSpec
|
|
}
|
|
}
|
|
}
|
|
field(:ammo_items, 4072) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def ammo_items_tg ; ammo_items.map { |i| df.world.items.all[i] } ; end
|
|
field(:ammo_units, 4084) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def ammo_units_tg ; ammo_units.map { |i| df.world.units.all[i] } ; end
|
|
field(:training_assignments, 4096) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :TrainingAssignment
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:hauling, 27708) {
|
|
compound(:Ui_THauling) {
|
|
field(:routes, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HaulingRoute
|
|
}
|
|
}
|
|
}
|
|
field(:next_id, 12) {
|
|
number 32, true
|
|
}
|
|
field(:view_routes, 16) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HaulingRoute
|
|
}
|
|
}
|
|
}
|
|
field(:view_stops, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HaulingStop
|
|
}
|
|
}
|
|
}
|
|
field(:view_bad, 40) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:cursor_top, 52) {
|
|
number 32, true
|
|
}
|
|
field(:in_stop, 56) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:cursor_stop, 60) {
|
|
number 32, true
|
|
}
|
|
field(:stop_conditions, 64) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :StopDepartCondition
|
|
}
|
|
}
|
|
}
|
|
field(:stop_links, 76) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :RouteStockpileLink
|
|
}
|
|
}
|
|
}
|
|
field(:in_advanced_cond, 88) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:in_assign_vehicle, 89) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:cursor_vehicle, 92) {
|
|
number 32, true
|
|
}
|
|
field(:vehicles, 96) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Vehicle
|
|
}
|
|
}
|
|
}
|
|
field(:in_name, 108) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:old_name, 112) {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:main, 27824) {
|
|
compound(:Ui_TMain) {
|
|
field(:hotkeys, 0) {
|
|
static_array(16, 24) {
|
|
global :UiHotkey
|
|
}
|
|
}
|
|
field(:traffic_cost_high, 384) {
|
|
number 32, true
|
|
}
|
|
field(:traffic_cost_normal, 388) {
|
|
number 32, true
|
|
}
|
|
field(:traffic_cost_low, 392) {
|
|
number 32, true
|
|
}
|
|
field(:traffic_cost_restricted, 396) {
|
|
number 32, true
|
|
}
|
|
field(:dead_citizens, 400) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Ui_TMain_TDeadCitizens) {
|
|
sizeof 24
|
|
|
|
field(:unit_id, 0) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:histfig_id, 4) {
|
|
number 32, true
|
|
}
|
|
def histfig_tg ; df.world.history.figures[histfig_id] ; end
|
|
field(:death_year, 8) {
|
|
number 32, true
|
|
}
|
|
field(:death_time, 12) {
|
|
number 32, true
|
|
}
|
|
field(:timer, 16) {
|
|
number 32, true
|
|
}
|
|
field(:unk6, 20) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:fortress_entity, 412) {
|
|
pointer {
|
|
global :HistoricalEntity
|
|
}
|
|
}
|
|
field(:mode, 416) {
|
|
number 16, true, nil, UiSidebarMode
|
|
}
|
|
field(:unk1, 418) {
|
|
number 16, true
|
|
}
|
|
field(:selected_traffic_cost, 420) {
|
|
number 16, true
|
|
}
|
|
field(:autosave_request, 422) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:unk6df4, 424) {
|
|
number 32, true
|
|
}
|
|
field(:selected_hotkey, 428) {
|
|
number 16, true
|
|
}
|
|
field(:in_rename_hotkey, 430) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
field(:squads, 28256) {
|
|
compound(:Ui_TSquads) {
|
|
field(:list, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
}
|
|
field(:unk6e08, 12) {
|
|
stl_vector
|
|
}
|
|
field(:sel_squads, 24) {
|
|
stl_bit_vector
|
|
}
|
|
field(:indiv_selected, 44) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def indiv_selected_tg ; indiv_selected.map { |i| df.world.history.figures[i] } ; end
|
|
field(:in_select_indiv, 56) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:sel_indiv_squad, 60) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 64) {
|
|
}
|
|
field(:unk48, 72) {
|
|
number 32, true
|
|
}
|
|
field(:unk4c, 76) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
field(:in_move_order, 80) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:point_list_scroll, 84) {
|
|
number 32, true
|
|
}
|
|
field(:in_kill_order, 88) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:kill_rect_targets, 92) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:anon_2, 104) {
|
|
}
|
|
field(:in_kill_list, 108) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:kill_targets, 112) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:sel_kill_targets, 124) {
|
|
stl_bit_vector
|
|
}
|
|
field(:anon_3, 144) {
|
|
}
|
|
field(:in_kill_rect, 148) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:rect_start, 150) {
|
|
global :Coord
|
|
}
|
|
}
|
|
}
|
|
field(:follow_unit, 28412) {
|
|
number 32, true
|
|
}
|
|
def follow_unit_tg ; df.world.units.all[follow_unit] ; end
|
|
field(:follow_item, 28416) {
|
|
number 32, true
|
|
}
|
|
def follow_item_tg ; df.world.items.all[follow_item] ; end
|
|
end
|
|
|
|
class UiAdvmode < MemHack::Compound
|
|
sizeof 460
|
|
|
|
field(:menu, 0) {
|
|
number 16, true, nil, UiAdvmodeMenu
|
|
}
|
|
field(:anon_1, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 12) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 14) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_9, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_10, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_11, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_12, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_13, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_14, 48) {
|
|
stl_vector
|
|
}
|
|
field(:anon_15, 60) {
|
|
stl_vector
|
|
}
|
|
field(:anon_16, 72) {
|
|
stl_vector
|
|
}
|
|
field(:anon_17, 84) {
|
|
stl_vector
|
|
}
|
|
field(:anon_18, 96) {
|
|
number 32, true
|
|
}
|
|
field(:anon_19, 100) {
|
|
number 32, true
|
|
}
|
|
field(:anon_20, 104) {
|
|
number 32, true
|
|
}
|
|
field(:anon_21, 108) {
|
|
number 32, true
|
|
}
|
|
field(:anon_22, 112) {
|
|
number 32, true
|
|
}
|
|
field(:anon_23, 116) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def anon_23_tg ; anon_23.map { |i| df.world.world_data.sites[i] } ; end
|
|
field(:anon_24, 128) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_25, 140) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_26, 152) {
|
|
number 16, true
|
|
}
|
|
field(:anon_27, 154) {
|
|
number 16, true
|
|
}
|
|
field(:anon_28, 156) {
|
|
number 16, true
|
|
}
|
|
field(:anon_29, 158) {
|
|
number 16, true
|
|
}
|
|
field(:player_id, 160) {
|
|
number 32, true
|
|
}
|
|
def player_tg ; df.world.nemesis.all[player_id] ; end
|
|
field(:anon_30, 164) {
|
|
stl_vector
|
|
}
|
|
field(:talks, 176) {
|
|
stl_vector
|
|
}
|
|
field(:unk_e0, 188) {
|
|
number 32, true
|
|
}
|
|
field(:unk_e4, 192) {
|
|
number 8, false
|
|
}
|
|
field(:unk_e8, 196) {
|
|
number 32, true
|
|
}
|
|
field(:unk_ec, 200) {
|
|
number 32, true
|
|
}
|
|
field(:unk_f0, 204) {
|
|
number 32, true
|
|
}
|
|
field(:unk_f4, 208) {
|
|
number 32, true
|
|
}
|
|
field(:unk_f8, 212) {
|
|
number 32, true
|
|
}
|
|
field(:unk_fc, 216) {
|
|
number 16, true
|
|
}
|
|
field(:unk_100, 220) {
|
|
number 32, true
|
|
}
|
|
field(:unk_104, 224) {
|
|
number 32, true
|
|
}
|
|
field(:unk_108, 228) {
|
|
number 32, true
|
|
}
|
|
field(:unk_10c, 232) {
|
|
number 32, true
|
|
}
|
|
field(:anon_31, 236) {
|
|
stl_vector
|
|
}
|
|
field(:anon_32, 248) {
|
|
stl_vector
|
|
}
|
|
field(:anon_33, 260) {
|
|
stl_vector
|
|
}
|
|
field(:actions, 272) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :AdventureMovementOption
|
|
}
|
|
}
|
|
}
|
|
field(:anon_34, 284) {
|
|
stl_vector
|
|
}
|
|
field(:anon_35, 296) {
|
|
number 32, true
|
|
}
|
|
field(:anon_36, 300) {
|
|
number 16, true
|
|
}
|
|
field(:anon_37, 302) {
|
|
number 16, true
|
|
}
|
|
field(:anon_38, 304) {
|
|
number 32, true
|
|
}
|
|
field(:anon_39, 308) {
|
|
number 32, true
|
|
}
|
|
field(:companions, 312) {
|
|
compound(:UiAdvmode_TCompanions) {
|
|
field(:unit, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:unit_visible, 12) {
|
|
stl_bit_vector
|
|
}
|
|
field(:unit_position, 32) {
|
|
global :CoordPath
|
|
}
|
|
field(:all_histfigs, 68) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def all_histfigs_tg ; all_histfigs.map { |i| df.world.history.figures[i] } ; end
|
|
}
|
|
}
|
|
field(:anon_40, 392) {
|
|
stl_vector
|
|
}
|
|
field(:anon_41, 404) {
|
|
stl_vector
|
|
}
|
|
field(:unk_1e4, 416) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1e8, 420) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1ec, 424) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1f0, 428) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1f4, 432) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1f8, 436) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1fc, 440) {
|
|
number 32, true
|
|
}
|
|
field(:unk_200, 444) {
|
|
number 32, true
|
|
}
|
|
field(:anon_42, 448) {
|
|
stl_string
|
|
}
|
|
field(:unk_220, 452) {
|
|
number 32, true
|
|
}
|
|
field(:unk_224, 456) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class UiBuildItemReq < MemHack::Compound
|
|
sizeof 196
|
|
|
|
field(:filter, 0) {
|
|
global :JobItemFilter
|
|
}
|
|
field(:candidates, 140) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
field(:candidate_selected, 152) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:unk_a0, 164) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:candidate_enabled, 176) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:count_required, 188) {
|
|
number 16, true
|
|
}
|
|
field(:count_max, 190) {
|
|
number 16, true
|
|
}
|
|
field(:count_provided, 192) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class UiBuildSelector < MemHack::Compound
|
|
sizeof 3988
|
|
|
|
field(:requirements, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UiBuildItemReq
|
|
}
|
|
}
|
|
}
|
|
field(:choices, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildReqChoicest
|
|
}
|
|
}
|
|
}
|
|
field(:building_type, 24) {
|
|
number 32, true, nil, BuildingType
|
|
}
|
|
field(:building_subtype, 28) {
|
|
number 16, true
|
|
}
|
|
field(:custom_type, 32) {
|
|
number 32, true
|
|
}
|
|
def custom_type_tg ; df.world.raws.buildings.all[custom_type] ; end
|
|
field(:stage, 36) {
|
|
number 32, true
|
|
}
|
|
field(:req_index, 40) {
|
|
number 16, true
|
|
}
|
|
field(:sel_index, 42) {
|
|
number 16, true
|
|
}
|
|
field(:is_grouped, 44) {
|
|
number 32, true
|
|
}
|
|
field(:unk3, 48) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:unk4, 60) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:tiles, 72) {
|
|
static_array(31, 124) {
|
|
static_array(31, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:unk5_0a, 3916) {
|
|
number 16, true
|
|
}
|
|
field(:unk5_0b, 3918) {
|
|
number 16, true
|
|
}
|
|
field(:plate_info, 3920) {
|
|
global :PressurePlateInfo
|
|
}
|
|
field(:unk6, 3944) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk7, 3956) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:friction, 3968) {
|
|
number 32, true, 50000
|
|
}
|
|
field(:use_dump, 3972) {
|
|
number 32, true
|
|
}
|
|
field(:dump_x_shift, 3976) {
|
|
number 32, true
|
|
}
|
|
field(:dump_y_shift, 3980) {
|
|
number 32, true
|
|
}
|
|
field(:speed, 3984) {
|
|
number 32, true, 50000
|
|
}
|
|
end
|
|
|
|
class UiHotkey < MemHack::Compound
|
|
sizeof 24
|
|
|
|
field(:name, 0) {
|
|
stl_string
|
|
}
|
|
field(:cmd, 4) {
|
|
class ::DFHack::UiHotkey_TCmd < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :None ; NUME[:None] = -1
|
|
ENUM[0] = :Zoom ; NUME[:Zoom] = 0
|
|
ENUM[1] = :FollowUnit ; NUME[:FollowUnit] = 1
|
|
ENUM[2] = :FollowItem ; NUME[:FollowItem] = 2
|
|
end
|
|
|
|
number 16, true, nil, UiHotkey_TCmd
|
|
}
|
|
field(:x, 8) {
|
|
number 32, true
|
|
}
|
|
field(:y, 12) {
|
|
number 32, true
|
|
}
|
|
field(:z, 16) {
|
|
number 32, true
|
|
}
|
|
field(:unit_id, 20) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:item_id, 20) {
|
|
number 32, true
|
|
}
|
|
def item_tg ; df.world.items.all[item_id] ; end
|
|
end
|
|
|
|
class UiLookList < MemHack::Compound
|
|
sizeof 12
|
|
|
|
field(:items, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:UiLookList_TItems) {
|
|
sizeof 16
|
|
|
|
field(:type, 0) {
|
|
class ::DFHack::UiLookList_TItems_TType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Item ; NUME[:Item] = 0
|
|
ENUM[1] = :Floor ; NUME[:Floor] = 1
|
|
ENUM[2] = :Unit ; NUME[:Unit] = 2
|
|
ENUM[3] = :Building ; NUME[:Building] = 3
|
|
ENUM[4] = :Vermin ; NUME[:Vermin] = 4
|
|
ENUM[5] = :Flow ; NUME[:Flow] = 5
|
|
ENUM[6] = :Campfire ; NUME[:Campfire] = 6
|
|
ENUM[7] = :Spatter ; NUME[:Spatter] = 7
|
|
end
|
|
|
|
number 16, true, nil, UiLookList_TItems_TType
|
|
}
|
|
field(:spatter_mat_type, 2) {
|
|
number 16, true
|
|
}
|
|
field(:spatter_mat_index, 4) {
|
|
number 32, true
|
|
}
|
|
field(:spatter_mat_state, 8) {
|
|
number 16, true, nil, MatterState
|
|
}
|
|
field(:item, 12) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
field(:unit, 12) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:building, 12) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
field(:vermin, 12) {
|
|
pointer {
|
|
global :Vermin
|
|
}
|
|
}
|
|
field(:flow, 12) {
|
|
pointer {
|
|
global :FlowInfo
|
|
}
|
|
}
|
|
field(:spatter_size, 12) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class UiSidebarMenus < MemHack::Compound
|
|
sizeof 6208
|
|
|
|
field(:workshop_job, 0) {
|
|
compound(:UiSidebarMenus_TWorkshopJob) {
|
|
field(:choices_all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :InterfaceButtonBuildingst
|
|
}
|
|
}
|
|
}
|
|
field(:choices_visible, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :InterfaceButtonBuildingst
|
|
}
|
|
}
|
|
}
|
|
field(:cursor, 24) {
|
|
number 32, true
|
|
}
|
|
field(:category_id, 28) {
|
|
number 32, true
|
|
}
|
|
field(:mat_type, 32) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 36) {
|
|
number 32, true
|
|
}
|
|
field(:material_category, 40) {
|
|
global :JobMaterialCategory
|
|
}
|
|
}
|
|
}
|
|
field(:building, 44) {
|
|
compound(:UiSidebarMenus_TBuilding) {
|
|
field(:choices_all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :InterfaceButtonConstructionst
|
|
}
|
|
}
|
|
}
|
|
field(:choices_visible, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :InterfaceButtonConstructionst
|
|
}
|
|
}
|
|
}
|
|
field(:category_id, 24) {
|
|
number 32, true
|
|
}
|
|
field(:cursor, 28) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:anon_1, 76) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk_58, 88) {
|
|
number 32, true
|
|
}
|
|
field(:unk_5c, 92) {
|
|
number 32, true
|
|
}
|
|
field(:unk_60, 96) {
|
|
number 32, true
|
|
}
|
|
field(:unk_64, 100) {
|
|
number 32, true
|
|
}
|
|
field(:unit, 104) {
|
|
compound(:UiSidebarMenus_TUnit) {
|
|
field(:inv_items, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitInventoryItem
|
|
}
|
|
}
|
|
}
|
|
field(:inv_spatters, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitSpatter
|
|
}
|
|
}
|
|
}
|
|
field(:in_new_squad, 24) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:cursor_uniform, 28) {
|
|
number 32, true
|
|
}
|
|
field(:unk_88n, 32) {
|
|
number 32, true
|
|
}
|
|
field(:squads, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
}
|
|
field(:squad_pos, 48) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPosition
|
|
}
|
|
}
|
|
}
|
|
field(:squad_assn, 60) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPositionAssignment
|
|
}
|
|
}
|
|
}
|
|
field(:squad_unk1, 72) {
|
|
stl_bit_vector
|
|
}
|
|
field(:squad_unk2, 92) {
|
|
stl_vector
|
|
}
|
|
field(:anon_1, 104) {
|
|
pointer {
|
|
global :EntityPosition
|
|
}
|
|
}
|
|
field(:anon_2, 108) {
|
|
pointer {
|
|
global :EntityPositionAssignment
|
|
}
|
|
}
|
|
field(:anon_3, 112) {
|
|
pointer {
|
|
global :EntityPosition
|
|
}
|
|
}
|
|
field(:in_squad, 116) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 118) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 120) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 122) {
|
|
number 16, true
|
|
}
|
|
field(:unk_80, 124) {
|
|
number 32, true
|
|
}
|
|
field(:unk_84, 128) {
|
|
number 32, true
|
|
}
|
|
field(:unk_88, 132) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8c, 136) {
|
|
number 32, true
|
|
}
|
|
field(:unk_90, 140) {
|
|
number 32, true
|
|
}
|
|
field(:list, 144) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_a0, 156) {
|
|
number 32, true
|
|
}
|
|
field(:skills, 160) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:show_combat, 172) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:show_labor, 173) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:show_misc, 174) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
field(:barracks, 280) {
|
|
compound(:UiSidebarMenus_TBarracks) {
|
|
field(:squad_cursor, 0) {
|
|
number 32, true
|
|
}
|
|
field(:squads, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
}
|
|
field(:uses, 16) {
|
|
stl_vector(4) {
|
|
global :SquadUseFlags
|
|
}
|
|
}
|
|
field(:in_rename, 28) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:in_positions, 29) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:position_squad, 32) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
field(:position_cursor, 36) {
|
|
number 32, true
|
|
}
|
|
field(:in_position_squads, 40) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:position_squads, 44) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
}
|
|
field(:position_squad_cursor, 56) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:anon_2, 340) {
|
|
}
|
|
field(:anon_3, 6164) {
|
|
stl_string
|
|
}
|
|
field(:anon_4, 6168) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:unk_17c0, 6180) {
|
|
number 32, true
|
|
}
|
|
field(:unk_17c4, 6184) {
|
|
number 32, true
|
|
}
|
|
field(:unk_17c8, 6188) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 6192) {
|
|
stl_string
|
|
}
|
|
field(:unk_17d0, 6196) {
|
|
number 32, true
|
|
}
|
|
field(:unk_17d4, 6200) {
|
|
number 32, true
|
|
}
|
|
field(:unk_17d8, 6204) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class UiUnitViewMode < MemHack::Compound
|
|
sizeof 4
|
|
|
|
field(:value, 0) {
|
|
class ::DFHack::UiUnitViewMode_TValue < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :General ; NUME[:General] = 0
|
|
ENUM[1] = :Inventory ; NUME[:Inventory] = 1
|
|
ENUM[2] = :Preferences ; NUME[:Preferences] = 2
|
|
ENUM[3] = :Wounds ; NUME[:Wounds] = 3
|
|
ENUM[4] = :PrefLabor ; NUME[:PrefLabor] = 4
|
|
ENUM[5] = :PrefDogs ; NUME[:PrefDogs] = 5
|
|
end
|
|
|
|
number 32, true, nil, UiUnitViewMode_TValue
|
|
}
|
|
end
|
|
|
|
class UniformFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:replace_clothing, 0) { bit 0 }
|
|
field(:exact_matches, 0) { bit 1 }
|
|
end
|
|
|
|
class UniformIndivChoice < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:any, 0) { bit 0 }
|
|
field(:melee, 0) { bit 1 }
|
|
field(:ranged, 0) { bit 2 }
|
|
end
|
|
|
|
class Unit < MemHack::Compound
|
|
sizeof 2224
|
|
|
|
field(:name, 0) {
|
|
global :LanguageName
|
|
}
|
|
field(:custom_profession, 60) {
|
|
stl_string
|
|
}
|
|
field(:profession, 64) {
|
|
number 16, true, nil, Profession
|
|
}
|
|
field(:profession2, 66) {
|
|
number 16, true, nil, Profession
|
|
}
|
|
field(:race, 68) {
|
|
number 32, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:pos, 72) {
|
|
global :Coord
|
|
}
|
|
field(:old_pos, 78) {
|
|
global :Coord
|
|
}
|
|
field(:unknown1, 84) {
|
|
compound(:Unit_TUnknown1) {
|
|
field(:unk_9c, 0) {
|
|
number 32, false
|
|
}
|
|
field(:unk_a0, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_1, 6) {
|
|
}
|
|
field(:unk_a4a, 8) {
|
|
number 16, true
|
|
}
|
|
field(:unk_a4b, 10) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:path, 96) {
|
|
compound(:Unit_TPath) {
|
|
field(:dest, 0) {
|
|
global :Coord
|
|
}
|
|
field(:unk_ae, 6) {
|
|
number 16, true
|
|
}
|
|
field(:path, 8) {
|
|
global :CoordPath
|
|
}
|
|
}
|
|
}
|
|
field(:flags1, 140) {
|
|
global :UnitFlags1
|
|
}
|
|
field(:flags2, 144) {
|
|
global :UnitFlags2
|
|
}
|
|
field(:flags3, 148) {
|
|
global :UnitFlags3
|
|
}
|
|
field(:unknown2, 152) {
|
|
compound(:Unit_TUnknown2) {
|
|
field(:unk_ec, 0) {
|
|
number 8, false
|
|
}
|
|
field(:unk_f0, 4) {
|
|
number 32, true
|
|
}
|
|
def unk_f0_tg ; df.world.entities.all[unk_f0] ; end
|
|
field(:unk_f4, 8) {
|
|
number 16, true
|
|
}
|
|
field(:anon_1, 10) {
|
|
}
|
|
}
|
|
}
|
|
field(:caste, 164) {
|
|
number 16, true
|
|
}
|
|
field(:sex, 166) {
|
|
number 8, false
|
|
}
|
|
field(:id, 168) {
|
|
number 32, true
|
|
}
|
|
field(:unk_100, 172) {
|
|
number 16, true
|
|
}
|
|
field(:training_level, 176) {
|
|
number 32, true, :WildUntamed, AnimalTrainingLevel
|
|
}
|
|
field(:unk_104, 180) {
|
|
number 32, true
|
|
}
|
|
field(:civ_id, 184) {
|
|
number 32, true
|
|
}
|
|
def civ_tg ; df.world.entities.all[civ_id] ; end
|
|
field(:population_id, 188) {
|
|
number 32, true
|
|
}
|
|
def population_tg ; df.world.entity_populations[population_id] ; end
|
|
field(:anon_1, 192) {
|
|
number 32, true
|
|
}
|
|
field(:invasion_id, 196) {
|
|
number 32, true
|
|
}
|
|
def invasion_tg ; df.ui.invasions.list[invasion_id] ; end
|
|
field(:unknown3, 200) {
|
|
compound(:Unit_TUnknown3) {
|
|
field(:unk_path, 0) {
|
|
global :CoordPath
|
|
}
|
|
field(:unk_144, 36) {
|
|
number 32, false
|
|
}
|
|
}
|
|
}
|
|
field(:specific_refs, 240) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :SpecificRef
|
|
}
|
|
}
|
|
}
|
|
field(:refs, 252) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :GeneralRef
|
|
}
|
|
}
|
|
}
|
|
field(:military, 264) {
|
|
compound(:Unit_TMilitary) {
|
|
field(:squad_index, 0) {
|
|
number 32, true
|
|
}
|
|
def squad_index_tg ; df.world.squads.all[squad_index] ; end
|
|
field(:squad_position, 4) {
|
|
number 32, true
|
|
}
|
|
field(:patrol_cooldown, 8) {
|
|
number 32, true
|
|
}
|
|
field(:patrol_timer, 12) {
|
|
number 32, true
|
|
}
|
|
field(:cur_uniform, 16) {
|
|
number 16, true
|
|
}
|
|
field(:uniforms, 20) {
|
|
static_array(4, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:anon_1, 68) {
|
|
stl_vector
|
|
}
|
|
field(:pickup_flags, 80) {
|
|
compound(:Unit_TMilitary_TPickupFlags) {
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:update, 0) { bit 0 }
|
|
}
|
|
}
|
|
field(:uniform_pickup, 84) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def uniform_pickup_tg ; uniform_pickup.map { |i| df.world.items.all[i] } ; end
|
|
field(:uniform_drop, 96) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def uniform_drop_tg ; uniform_drop.map { |i| df.world.items.all[i] } ; end
|
|
field(:individual_drills, 108) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def individual_drills_tg ; individual_drills.map { |i| df.world.activities.all[i] } ; end
|
|
}
|
|
}
|
|
field(:unknown4, 384) {
|
|
compound(:Unit_TUnknown4) {
|
|
field(:population, 0) {
|
|
global :WorldPopulationRef
|
|
}
|
|
field(:animal_leave_countdown, 24) {
|
|
number 32, false
|
|
}
|
|
field(:unk_20c, 28) {
|
|
number 32, false
|
|
}
|
|
}
|
|
}
|
|
field(:mood, 416) {
|
|
number 16, true, nil, MoodType
|
|
}
|
|
field(:unk_18e, 418) {
|
|
number 16, true
|
|
}
|
|
field(:relations, 420) {
|
|
compound(:Unit_TRelations) {
|
|
field(:pregnancy_timer, 0) {
|
|
number 32, false
|
|
}
|
|
field(:pregnancy_ptr, 4) {
|
|
pointer {
|
|
global :UnitGenes
|
|
}
|
|
}
|
|
field(:pregnancy_mystery, 8) {
|
|
number 16, true
|
|
}
|
|
field(:unk_21c_b, 10) {
|
|
number 16, true
|
|
}
|
|
field(:ghost_info, 12) {
|
|
pointer {
|
|
global :UnitGhostInfo
|
|
}
|
|
}
|
|
field(:anon_1, 16) {
|
|
number 32, true
|
|
}
|
|
field(:birth_year, 20) {
|
|
number 32, true
|
|
}
|
|
field(:birth_time, 24) {
|
|
number 32, true
|
|
}
|
|
field(:curse_year, 28) {
|
|
number 32, true
|
|
}
|
|
field(:curse_time, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 40) {
|
|
number 32, true
|
|
}
|
|
field(:old_year, 44) {
|
|
number 32, true
|
|
}
|
|
field(:old_time, 48) {
|
|
number 32, true
|
|
}
|
|
field(:following, 52) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:unk_238, 56) {
|
|
number 16, false
|
|
}
|
|
field(:pet_owner_id, 60) {
|
|
number 32, true
|
|
}
|
|
def pet_owner_tg ; df.world.units.all[pet_owner_id] ; end
|
|
field(:spouse_id, 64) {
|
|
number 32, true
|
|
}
|
|
def spouse_tg ; df.world.units.all[spouse_id] ; end
|
|
field(:mother_id, 68) {
|
|
number 32, true
|
|
}
|
|
def mother_tg ; df.world.units.all[mother_id] ; end
|
|
field(:father_id, 72) {
|
|
number 32, true
|
|
}
|
|
def father_tg ; df.world.units.all[father_id] ; end
|
|
field(:last_attacker_id, 76) {
|
|
number 32, true
|
|
}
|
|
def last_attacker_tg ; df.world.units.all[last_attacker_id] ; end
|
|
field(:group_leader_id, 80) {
|
|
number 32, true
|
|
}
|
|
def group_leader_tg ; df.world.units.all[group_leader_id] ; end
|
|
field(:draggee_id, 84) {
|
|
number 32, true
|
|
}
|
|
def draggee_tg ; df.world.units.all[draggee_id] ; end
|
|
field(:dragger_id, 88) {
|
|
number 32, true
|
|
}
|
|
def dragger_tg ; df.world.units.all[dragger_id] ; end
|
|
field(:rider_mount_id, 92) {
|
|
number 32, true
|
|
}
|
|
def rider_mount_tg ; df.world.units.all[rider_mount_id] ; end
|
|
field(:lover_id, 96) {
|
|
number 32, true
|
|
}
|
|
def lover_tg ; df.world.units.all[lover_id] ; end
|
|
field(:unk_264, 100) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:last_hit, 524) {
|
|
global :HistoryHitItem
|
|
}
|
|
field(:riding_item_id, 556) {
|
|
number 32, true
|
|
}
|
|
def riding_item_tg ; df.world.items.all[riding_item_id] ; end
|
|
field(:inventory, 560) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitInventoryItem
|
|
}
|
|
}
|
|
}
|
|
field(:owned_items, 572) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def owned_items_tg ; owned_items.map { |i| df.world.items.all[i] } ; end
|
|
field(:traded_items, 584) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def traded_items_tg ; traded_items.map { |i| df.world.items.all[i] } ; end
|
|
field(:owned_buildings, 596) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
}
|
|
field(:corpse_parts, 608) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def corpse_parts_tg ; corpse_parts.map { |i| df.world.items.all[i] } ; end
|
|
field(:job, 620) {
|
|
compound(:Unit_TJob) {
|
|
field(:unk_2d8, 0) {
|
|
number 32, false
|
|
}
|
|
field(:unk_2dc, 4) {
|
|
number 32, false
|
|
}
|
|
field(:hunt_target, 8) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:destroy_target, 12) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
field(:unk_2e8, 16) {
|
|
number 16, true
|
|
}
|
|
field(:unk_2ea, 18) {
|
|
number 16, true
|
|
}
|
|
field(:unk_2ec, 20) {
|
|
number 16, false
|
|
}
|
|
field(:unk_2ee, 22) {
|
|
number 16, false
|
|
}
|
|
field(:unk_2f0_cntr, 24) {
|
|
number 16, false
|
|
}
|
|
field(:current_job, 28) {
|
|
pointer {
|
|
global :Job
|
|
}
|
|
}
|
|
field(:mood_skill, 32) {
|
|
number 16, true, nil, JobSkill
|
|
}
|
|
field(:unk_2fc, 36) {
|
|
number 32, false
|
|
}
|
|
field(:unk_300, 40) {
|
|
number 32, false
|
|
}
|
|
field(:unk_304, 44) {
|
|
number 32, false
|
|
}
|
|
}
|
|
}
|
|
field(:body, 668) {
|
|
compound(:Unit_TBody) {
|
|
field(:components, 0) {
|
|
global :BodyComponentInfo
|
|
}
|
|
field(:wounds, 96) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitWound
|
|
}
|
|
}
|
|
}
|
|
field(:wound_next_id, 108) {
|
|
number 32, true
|
|
}
|
|
field(:unk_39c, 112) {
|
|
static_array(10, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:body_plan, 152) {
|
|
pointer {
|
|
global :CasteBodyInfo
|
|
}
|
|
}
|
|
field(:unk_3c8, 156) {
|
|
number 16, false
|
|
}
|
|
field(:physical_attrs, 160) {
|
|
static_array(6, 28, PhysicalAttributeType) {
|
|
global :UnitAttribute
|
|
}
|
|
}
|
|
field(:physical_attr_unk3, 328) {
|
|
static_array(6, 4, PhysicalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:blood_max, 352) {
|
|
number 32, false
|
|
}
|
|
field(:blood_count, 356) {
|
|
number 32, false
|
|
}
|
|
field(:unk_494, 360) {
|
|
number 32, false
|
|
}
|
|
field(:spatters, 364) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitSpatter
|
|
}
|
|
}
|
|
}
|
|
field(:body_app_modifiers, 376) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:unk_4b8, 388) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:unk_4c8, 400) {
|
|
number 32, false
|
|
}
|
|
}
|
|
}
|
|
field(:appearance, 1072) {
|
|
compound(:Unit_TAppearance) {
|
|
field(:unk_4cc, 0) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_4dc, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_4ec, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_4fc, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_50c, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:genes, 60) {
|
|
global :UnitGenes
|
|
}
|
|
field(:colors, 76) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:counters, 1160) {
|
|
compound(:Unit_TCounters) {
|
|
field(:think_counter, 0) {
|
|
number 32, true
|
|
}
|
|
field(:job_counter, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_544, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unk_548, 12) {
|
|
number 16, true
|
|
}
|
|
field(:death_id, 16) {
|
|
number 32, true
|
|
}
|
|
def death_tg ; df.world.deaths.all[death_id] ; end
|
|
field(:winded, 20) {
|
|
number 16, true
|
|
}
|
|
field(:stunned, 22) {
|
|
number 16, true
|
|
}
|
|
field(:unconscious, 24) {
|
|
number 16, true
|
|
}
|
|
field(:unk_550, 26) {
|
|
number 16, true
|
|
}
|
|
field(:webbed, 28) {
|
|
number 16, true
|
|
}
|
|
field(:unk_554, 30) {
|
|
global :Coord
|
|
}
|
|
field(:unk_55a, 36) {
|
|
global :Coord
|
|
}
|
|
field(:soldier_mood_countdown, 42) {
|
|
number 16, true
|
|
}
|
|
field(:soldier_mood, 44) {
|
|
class ::DFHack::Unit_TCounters_TSoldierMood < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[-1] = :None ; NUME[:None] = -1
|
|
ENUM[0] = :MartialTrance ; NUME[:MartialTrance] = 0
|
|
ENUM[1] = :Enranged ; NUME[:Enranged] = 1
|
|
ENUM[2] = :Tantrum ; NUME[:Tantrum] = 2
|
|
end
|
|
|
|
number 16, true, nil, Unit_TCounters_TSoldierMood
|
|
}
|
|
field(:pain, 48) {
|
|
number 32, false
|
|
}
|
|
field(:nausea, 52) {
|
|
number 32, false
|
|
}
|
|
field(:dizziness, 56) {
|
|
number 32, false
|
|
}
|
|
}
|
|
}
|
|
field(:curse, 1220) {
|
|
compound(:Unit_TCurse) {
|
|
field(:add_tags1, 0) {
|
|
global :CieAddTagMask1
|
|
}
|
|
field(:rem_tags1, 4) {
|
|
global :CieAddTagMask1
|
|
}
|
|
field(:add_tags2, 8) {
|
|
global :CieAddTagMask2
|
|
}
|
|
field(:rem_tags2, 12) {
|
|
global :CieAddTagMask2
|
|
}
|
|
field(:name_visible, 16) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:name, 20) {
|
|
stl_string
|
|
}
|
|
field(:name_plural, 24) {
|
|
stl_string
|
|
}
|
|
field(:name_adjective, 28) {
|
|
stl_string
|
|
}
|
|
field(:sym_and_color1, 32) {
|
|
number 32, false
|
|
}
|
|
field(:sym_and_color2, 36) {
|
|
number 32, false
|
|
}
|
|
field(:flash_period, 40) {
|
|
number 32, false
|
|
}
|
|
field(:flash_time2, 44) {
|
|
number 32, false
|
|
}
|
|
field(:anon_1, 48) {
|
|
stl_vector
|
|
}
|
|
field(:appearance_change, 60) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_2, 72) {
|
|
number 32, false
|
|
}
|
|
field(:anon_3, 76) {
|
|
number 32, false
|
|
}
|
|
field(:attr_change, 80) {
|
|
pointer {
|
|
compound(:Unit_TCurse_TAttrChange) {
|
|
sizeof 152
|
|
|
|
field(:phys_att_perc, 0) {
|
|
static_array(6, 4, PhysicalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:phys_att_unk, 24) {
|
|
static_array(6, 4, PhysicalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:ment_att_perc, 48) {
|
|
static_array(13, 4, MentalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:ment_att_unk, 100) {
|
|
static_array(13, 4, MentalAttributeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_4, 84) {
|
|
number 32, false
|
|
}
|
|
field(:anon_5, 88) {
|
|
stl_vector
|
|
}
|
|
field(:anon_6, 100) {
|
|
stl_vector
|
|
}
|
|
field(:anon_7, 112) {
|
|
stl_vector
|
|
}
|
|
field(:time_on_site, 124) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 128) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_9, 140) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:counters2, 1372) {
|
|
compound(:Unit_TCounters2) {
|
|
field(:paralysis, 0) {
|
|
number 32, false
|
|
}
|
|
field(:numbness, 4) {
|
|
number 32, false
|
|
}
|
|
field(:fever, 8) {
|
|
number 32, false
|
|
}
|
|
field(:exhaustion, 12) {
|
|
number 32, false
|
|
}
|
|
field(:hunger_timer, 16) {
|
|
number 32, false
|
|
}
|
|
field(:thirst_timer, 20) {
|
|
number 32, false
|
|
}
|
|
field(:sleepiness_timer, 24) {
|
|
number 32, false
|
|
}
|
|
field(:stomach_content, 28) {
|
|
number 32, false
|
|
}
|
|
field(:stomach_food, 32) {
|
|
number 32, false
|
|
}
|
|
field(:vomit_timeout, 36) {
|
|
number 32, false
|
|
}
|
|
field(:stored_fat, 40) {
|
|
number 32, false
|
|
}
|
|
field(:unk_59c, 44) {
|
|
number 32, false
|
|
}
|
|
}
|
|
}
|
|
field(:status, 1420) {
|
|
compound(:Unit_TStatus) {
|
|
field(:misc_traits, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitMiscTrait
|
|
}
|
|
}
|
|
}
|
|
field(:eat_history, 12) {
|
|
pointer {
|
|
compound(:Unit_TStatus_TEatHistory) {
|
|
sizeof 144
|
|
|
|
field(:food, 0) {
|
|
compound(:Unit_TStatus_TEatHistory_TFood) {
|
|
field(:item_type, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:item_subtype, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:material, 24) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:year, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:year_time, 60) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:drink, 72) {
|
|
compound(:Unit_TStatus_TEatHistory_TDrink) {
|
|
field(:item_type, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:item_subtype, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:material, 24) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:year, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:year_time, 60) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_5b4, 16) {
|
|
number 32, false
|
|
}
|
|
field(:unk_5b8, 20) {
|
|
number 32, false
|
|
}
|
|
field(:attacker_ids, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def attacker_tgs ; attacker_ids.map { |i| df.world.units.all[i] } ; end
|
|
field(:attacker_unk, 36) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_5dc, 48) {
|
|
number 8, false
|
|
}
|
|
field(:artifact_name, 52) {
|
|
global :LanguageName
|
|
}
|
|
field(:souls, 112) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitSoul
|
|
}
|
|
}
|
|
}
|
|
field(:current_soul, 124) {
|
|
pointer {
|
|
global :UnitSoul
|
|
}
|
|
}
|
|
field(:demands, 128) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitDemand
|
|
}
|
|
}
|
|
}
|
|
field(:labors, 140) {
|
|
static_array(94, 1, UnitLabor) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:wrestle_items, 236) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitItemWrestle
|
|
}
|
|
}
|
|
}
|
|
field(:unk_6e0, 248) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:recent_events, 260) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitThought
|
|
}
|
|
}
|
|
}
|
|
field(:unk_700, 272) {
|
|
stl_vector
|
|
}
|
|
field(:happiness, 284) {
|
|
number 32, false
|
|
}
|
|
field(:unk_714, 288) {
|
|
number 16, false
|
|
}
|
|
field(:unk_718, 292) {
|
|
stl_vector
|
|
}
|
|
field(:unk_728, 304) {
|
|
stl_vector
|
|
}
|
|
field(:acquintances, 316) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Unit_TStatus_TAcquintances) {
|
|
sizeof 16
|
|
|
|
field(:unit_id, 0) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:acquintance_level, 4) {
|
|
number 32, true
|
|
}
|
|
field(:timer, 8) {
|
|
number 32, true
|
|
}
|
|
field(:is_friend, 12) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_748, 328) {
|
|
stl_vector
|
|
}
|
|
field(:unk_758, 340) {
|
|
number 16, false
|
|
}
|
|
field(:unk_75a, 342) {
|
|
global :Coord
|
|
}
|
|
field(:unk_760, 348) {
|
|
global :CoordPath
|
|
}
|
|
}
|
|
}
|
|
field(:hist_figure_id, 1804) {
|
|
number 32, true
|
|
}
|
|
def hist_figure_tg ; df.world.history.figures[hist_figure_id] ; end
|
|
field(:hist_figure_id2, 1808) {
|
|
number 32, true
|
|
}
|
|
def hist_figure_tg2 ; df.world.history.figures[hist_figure_id2] ; end
|
|
field(:status2, 1812) {
|
|
compound(:Unit_TStatus2) {
|
|
field(:able_stand, 0) {
|
|
number 16, false
|
|
}
|
|
field(:able_stand_impair, 2) {
|
|
number 16, false
|
|
}
|
|
field(:able_grasp, 4) {
|
|
number 16, false
|
|
}
|
|
field(:able_grasp_impair, 6) {
|
|
number 16, false
|
|
}
|
|
field(:unk_7a0, 8) {
|
|
number 32, false
|
|
}
|
|
field(:body_part_temperature, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:Unit_TStatus2_TBodyPartTemperature) {
|
|
sizeof 4
|
|
|
|
field(:whole, 0) {
|
|
number 16, false
|
|
}
|
|
field(:fraction, 2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_7b4, 24) {
|
|
number 32, false
|
|
}
|
|
field(:unk_7b8, 28) {
|
|
number 32, false
|
|
}
|
|
field(:unk_7bc, 32) {
|
|
number 8, false
|
|
}
|
|
field(:unk_7c0, 36) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:unknown7, 1852) {
|
|
compound(:Unit_TUnknown7) {
|
|
field(:unk_7c4, 0) {
|
|
stl_vector
|
|
}
|
|
field(:anon_1, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
field(:syndromes, 1876) {
|
|
compound(:Unit_TSyndromes) {
|
|
field(:active, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitSyndrome
|
|
}
|
|
}
|
|
}
|
|
field(:unk_7d4, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def unk_7d4_tg ; unk_7d4.map { |i| df.world.raws.syndromes.all[i] } ; end
|
|
field(:unk_7e4, 24) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:reports, 1912) {
|
|
compound(:Unit_TReports) {
|
|
field(:combat_log, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def combat_log_tg ; combat_log.map { |i| df.world.status.reports[i] } ; end
|
|
field(:sparring_log, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def sparring_log_tg ; sparring_log.map { |i| df.world.status.reports[i] } ; end
|
|
field(:unk_log, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def unk_log_tg ; unk_log.map { |i| df.world.status.reports[i] } ; end
|
|
field(:last_combat_year, 36) {
|
|
number 32, false
|
|
}
|
|
field(:last_sparring_year, 40) {
|
|
number 32, false
|
|
}
|
|
field(:last_unk_year, 44) {
|
|
number 32, false
|
|
}
|
|
field(:last_combat_time, 48) {
|
|
number 32, false
|
|
}
|
|
field(:last_sparring_time, 52) {
|
|
number 32, false
|
|
}
|
|
field(:last_unk_time, 56) {
|
|
number 32, false
|
|
}
|
|
}
|
|
}
|
|
field(:health, 1972) {
|
|
pointer {
|
|
global :UnitHealthInfo
|
|
}
|
|
}
|
|
field(:used_items, 1976) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitItemUse
|
|
}
|
|
}
|
|
}
|
|
field(:adventurer_knows, 1988) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def adventurer_knows_tg ; adventurer_knows.map { |i| df.world.units.all[i] } ; end
|
|
field(:unknown8, 2000) {
|
|
compound(:Unit_TUnknown8) {
|
|
field(:unk1, 0) {
|
|
stl_vector
|
|
}
|
|
field(:unk2, 12) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:were_race, 16) {
|
|
number 32, true
|
|
}
|
|
def were_race_tg ; df.world.raws.creatures.all[were_race] ; end
|
|
field(:were_caste, 20) {
|
|
number 32, true
|
|
}
|
|
field(:normal_race, 24) {
|
|
number 32, true
|
|
}
|
|
def normal_race_tg ; df.world.raws.creatures.all[normal_race] ; end
|
|
field(:normal_caste, 28) {
|
|
number 32, true
|
|
}
|
|
field(:unk3, 32) {
|
|
number 32, true, -1
|
|
}
|
|
field(:unk_850, 36) {
|
|
stl_vector
|
|
}
|
|
field(:unk_860, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:enemy_status_slot, 60) {
|
|
number 32, true
|
|
}
|
|
field(:unk_874_cntr, 64) {
|
|
number 32, true
|
|
}
|
|
field(:body_part_878, 68) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:body_part_888, 80) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:body_part_898, 92) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:body_part_8a8, 104) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:body_part_base_ins, 116) {
|
|
stl_vector(2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
field(:body_part_clothing_ins, 128) {
|
|
stl_vector(2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
field(:body_part_8d8, 140) {
|
|
stl_vector(2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
field(:unk_8e8, 152) {
|
|
stl_vector
|
|
}
|
|
field(:unk_8f8, 164) {
|
|
stl_vector(2) {
|
|
number 16, false
|
|
}
|
|
}
|
|
field(:body_layer_908, 176) {
|
|
stl_vector(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:unk_918, 188) {
|
|
number 32, true
|
|
}
|
|
field(:unk_91c, 192) {
|
|
number 32, true
|
|
}
|
|
field(:unk_920, 196) {
|
|
number 32, true
|
|
}
|
|
field(:unk_924, 200) {
|
|
number 32, false
|
|
}
|
|
field(:unk_928, 204) {
|
|
number 32, false
|
|
}
|
|
}
|
|
}
|
|
field(:burrows, 2208) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def burrows_tg ; burrows.map { |i| df.ui.burrows.list[i] } ; end
|
|
field(:combat_side_id, 2220) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class UnitAttribute < MemHack::Compound
|
|
sizeof 28
|
|
|
|
field(:value, 0) {
|
|
number 32, true
|
|
}
|
|
field(:max_value, 4) {
|
|
number 32, true
|
|
}
|
|
field(:improve_counter, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unused_counter, 12) {
|
|
number 32, true
|
|
}
|
|
field(:soft_demotion, 16) {
|
|
number 32, true
|
|
}
|
|
field(:rust_counter, 20) {
|
|
number 32, true
|
|
}
|
|
field(:demotion_counter, 24) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class UnitDemand < MemHack::Compound
|
|
sizeof 24
|
|
|
|
field(:unk_0, 0) {
|
|
number 16, true
|
|
}
|
|
field(:place, 2) {
|
|
class ::DFHack::UnitDemand_TPlace < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Office ; NUME[:Office] = 0
|
|
ENUM[1] = :Bedroom ; NUME[:Bedroom] = 1
|
|
ENUM[2] = :DiningRoom ; NUME[:DiningRoom] = 2
|
|
ENUM[3] = :Tomb ; NUME[:Tomb] = 3
|
|
end
|
|
|
|
number 16, true, nil, UnitDemand_TPlace
|
|
}
|
|
field(:item_type, 4) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 6) {
|
|
number 16, true
|
|
}
|
|
field(:mat_type, 8) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 12) {
|
|
number 32, true, -1
|
|
}
|
|
field(:timeout_counter, 16) {
|
|
number 32, true
|
|
}
|
|
field(:timeout_limit, 20) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class UnitFlags1 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:move_state, 0) { bit 0 }
|
|
field(:dead, 0) { bit 1 }
|
|
field(:has_mood, 0) { bit 2 }
|
|
field(:had_mood, 0) { bit 3 }
|
|
field(:marauder, 0) { bit 4 }
|
|
field(:drowning, 0) { bit 5 }
|
|
field(:merchant, 0) { bit 6 }
|
|
field(:forest, 0) { bit 7 }
|
|
field(:left, 0) { bit 8 }
|
|
field(:rider, 0) { bit 9 }
|
|
field(:incoming, 0) { bit 10 }
|
|
field(:diplomat, 0) { bit 11 }
|
|
field(:zombie, 0) { bit 12 }
|
|
field(:skeleton, 0) { bit 13 }
|
|
field(:can_swap, 0) { bit 14 }
|
|
field(:on_ground, 0) { bit 15 }
|
|
field(:projectile, 0) { bit 16 }
|
|
field(:active_invader, 0) { bit 17 }
|
|
field(:hidden_in_ambush, 0) { bit 18 }
|
|
field(:invader_origin, 0) { bit 19 }
|
|
field(:coward, 0) { bit 20 }
|
|
field(:hidden_ambusher, 0) { bit 21 }
|
|
field(:invades, 0) { bit 22 }
|
|
field(:check_flows, 0) { bit 23 }
|
|
field(:ridden, 0) { bit 24 }
|
|
field(:caged, 0) { bit 25 }
|
|
field(:tame, 0) { bit 26 }
|
|
field(:chained, 0) { bit 27 }
|
|
field(:royal_guard, 0) { bit 28 }
|
|
field(:fortress_guard, 0) { bit 29 }
|
|
field(:suppress_wield, 0) { bit 30 }
|
|
field(:important_historical_figure, 0) { bit 31 }
|
|
end
|
|
|
|
class UnitFlags2 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:swimming, 0) { bit 0 }
|
|
field(:sparring, 0) { bit 1 }
|
|
field(:no_notify, 0) { bit 2 }
|
|
field(:unused, 0) { bit 3 }
|
|
field(:calculated_nerves, 0) { bit 4 }
|
|
field(:calculated_bodyparts, 0) { bit 5 }
|
|
field(:important_historical_figure, 0) { bit 6 }
|
|
field(:killed, 0) { bit 7 }
|
|
field(:cleanup_1, 0) { bit 8 }
|
|
field(:cleanup_2, 0) { bit 9 }
|
|
field(:cleanup_3, 0) { bit 10 }
|
|
field(:for_trade, 0) { bit 11 }
|
|
field(:trade_resolved, 0) { bit 12 }
|
|
field(:has_breaks, 0) { bit 13 }
|
|
field(:gutted, 0) { bit 14 }
|
|
field(:circulatory_spray, 0) { bit 15 }
|
|
field(:locked_in_for_trading, 0) { bit 16 }
|
|
field(:slaughter, 0) { bit 17 }
|
|
field(:underworld, 0) { bit 18 }
|
|
field(:resident, 0) { bit 19 }
|
|
field(:cleanup_4, 0) { bit 20 }
|
|
field(:calculated_insulation, 0) { bit 21 }
|
|
field(:visitor_uninvited, 0) { bit 22 }
|
|
field(:visitor, 0) { bit 23 }
|
|
field(:calculated_inventory, 0) { bit 24 }
|
|
field(:vision_good, 0) { bit 25 }
|
|
field(:vision_damaged, 0) { bit 26 }
|
|
field(:vision_missing, 0) { bit 27 }
|
|
field(:breathing_good, 0) { bit 28 }
|
|
field(:breathing_problem, 0) { bit 29 }
|
|
field(:roaming_wilderness_population_source, 0) { bit 30 }
|
|
field(:roaming_wilderness_population_source_not_a_map_feature, 0) { bit 31 }
|
|
end
|
|
|
|
class UnitFlags3 < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, false
|
|
}
|
|
field(:unk0, 0) { bit 0 }
|
|
field(:unk1, 0) { bit 1 }
|
|
field(:unk2, 0) { bit 2 }
|
|
field(:unk3, 0) { bit 3 }
|
|
field(:announce_titan, 0) { bit 4 }
|
|
field(:unk5, 0) { bit 5 }
|
|
field(:unk6, 0) { bit 6 }
|
|
field(:unk7, 0) { bit 7 }
|
|
field(:body_temp_in_range, 0) { bit 8 }
|
|
field(:wait_until_reveal, 0) { bit 9 }
|
|
field(:scuttle, 0) { bit 10 }
|
|
field(:unk11, 0) { bit 11 }
|
|
field(:ghostly, 0) { bit 12 }
|
|
field(:unk13, 0) { bit 13 }
|
|
field(:unk14, 0) { bit 14 }
|
|
field(:unk15, 0) { bit 15 }
|
|
field(:unk16, 0) { bit 16 }
|
|
end
|
|
|
|
class UnitGenes < MemHack::Compound
|
|
sizeof 16
|
|
|
|
field(:appearance, 0) {
|
|
df_array(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:colors, 8) {
|
|
df_array(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class UnitGhostInfo < MemHack::Compound
|
|
sizeof 44
|
|
|
|
field(:type, 0) {
|
|
number 16, true, nil, GhostType
|
|
}
|
|
field(:unk_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 16, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unk_pos, 12) {
|
|
global :Coord
|
|
}
|
|
field(:unk_14, 20) {
|
|
number 32, true
|
|
}
|
|
field(:unk_18, 24) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1c, 28) {
|
|
number 32, true
|
|
}
|
|
field(:unk_20, 32) {
|
|
number 32, true
|
|
}
|
|
field(:unk_24, 36) {
|
|
number 32, true
|
|
}
|
|
field(:unk_28, 40) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class UnitHealthInfo < MemHack::Compound
|
|
sizeof 56
|
|
|
|
field(:unit_id, 0) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:unk_4, 4) {
|
|
number 32, true
|
|
}
|
|
field(:body_part_8, 8) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_18, 20) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1c, 24) {
|
|
number 32, true
|
|
}
|
|
field(:unk_20, 28) {
|
|
number 16, true
|
|
}
|
|
field(:op_history, 32) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:UnitHealthInfo_TOpHistory) {
|
|
sizeof 36
|
|
|
|
field(:job_type, 0) {
|
|
number 16, true, nil, JobType
|
|
}
|
|
field(:info, 4) {
|
|
compound(:UnitHealthInfo_TOpHistory_TInfo) {
|
|
field(:crutch, 0) {
|
|
compound(:UnitHealthInfo_TOpHistory_TInfo_TCrutch) {
|
|
field(:item_type, 0) {
|
|
number 32, true
|
|
}
|
|
field(:item_subtype, 4) {
|
|
number 32, true, -1
|
|
}
|
|
field(:mat_type, 8) {
|
|
number 32, true
|
|
}
|
|
field(:mat_index, 12) {
|
|
number 32, true, -1
|
|
}
|
|
field(:item_id, 16) {
|
|
number 32, true
|
|
}
|
|
def item_tg ; df.world.items.all[item_id] ; end
|
|
}
|
|
}
|
|
field(:bed_id, 0) {
|
|
number 32, true
|
|
}
|
|
def bed_tg ; df.world.buildings.all[bed_id] ; end
|
|
field(:bandage, 0) {
|
|
compound(:UnitHealthInfo_TOpHistory_TInfo_TBandage) {
|
|
field(:mat_type, 0) {
|
|
number 32, true
|
|
}
|
|
field(:mat_index, 4) {
|
|
number 32, true, -1
|
|
}
|
|
field(:body_part_id, 8) {
|
|
number 32, true, -1
|
|
}
|
|
field(:item_id, 12) {
|
|
number 32, true
|
|
}
|
|
def item_tg ; df.world.items.all[item_id] ; end
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:year, 24) {
|
|
number 32, true
|
|
}
|
|
field(:year_time, 28) {
|
|
number 32, true
|
|
}
|
|
field(:doctor_id, 32) {
|
|
number 32, true
|
|
}
|
|
def doctor_tg ; df.world.units.all[doctor_id] ; end
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_34, 44) {
|
|
stl_vector
|
|
}
|
|
end
|
|
|
|
class UnitInventoryItem < MemHack::Compound
|
|
sizeof 16
|
|
|
|
field(:item, 0) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
field(:mode, 4) {
|
|
class ::DFHack::UnitInventoryItem_TMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Carried ; NUME[:Carried] = 0
|
|
ENUM[1] = :Weapon ; NUME[:Weapon] = 1
|
|
ENUM[2] = :Worn ; NUME[:Worn] = 2
|
|
ENUM[3] = :InBody ; NUME[:InBody] = 3
|
|
ENUM[4] = :Flask ; NUME[:Flask] = 4
|
|
ENUM[5] = :WrappedAround ; NUME[:WrappedAround] = 5
|
|
ENUM[6] = :StuckIn ; NUME[:StuckIn] = 6
|
|
ENUM[7] = :Unk7 ; NUME[:Unk7] = 7
|
|
ENUM[8] = :Shouldered ; NUME[:Shouldered] = 8
|
|
ENUM[9] = :SewnInto ; NUME[:SewnInto] = 9
|
|
end
|
|
|
|
number 16, true, nil, UnitInventoryItem_TMode
|
|
}
|
|
field(:body_part_id, 6) {
|
|
number 16, true
|
|
}
|
|
field(:anon_1, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 12) {
|
|
number 32, true, -1
|
|
}
|
|
end
|
|
|
|
class UnitItemUse < MemHack::Compound
|
|
sizeof 16
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
def id_tg ; df.world.items.all[id] ; end
|
|
field(:time_in_use, 4) {
|
|
number 32, true
|
|
}
|
|
field(:has_grown_attached, 8) {
|
|
number 32, true
|
|
}
|
|
field(:affection_level, 12) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class UnitItemWrestle < MemHack::Compound
|
|
sizeof 28
|
|
|
|
field(:anon_1, 0) {
|
|
}
|
|
field(:item1, 20) {
|
|
number 32, true
|
|
}
|
|
def item1_tg ; df.world.items.all[item1] ; end
|
|
field(:item2, 24) {
|
|
number 32, true
|
|
}
|
|
def item2_tg ; df.world.items.all[item2] ; end
|
|
end
|
|
|
|
class UnitMiscTrait < MemHack::Compound
|
|
sizeof 8
|
|
|
|
field(:id, 0) {
|
|
number 16, true, nil, MiscTraitType
|
|
}
|
|
field(:value, 4) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class UnitPreference < MemHack::Compound
|
|
sizeof 20
|
|
|
|
field(:type, 0) {
|
|
class ::DFHack::UnitPreference_TType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :LikeMaterial ; NUME[:LikeMaterial] = 0
|
|
ENUM[1] = :LikeCreature ; NUME[:LikeCreature] = 1
|
|
ENUM[2] = :LikeFood ; NUME[:LikeFood] = 2
|
|
ENUM[3] = :HateCreature ; NUME[:HateCreature] = 3
|
|
ENUM[4] = :LikeItem ; NUME[:LikeItem] = 4
|
|
ENUM[5] = :LikePlant ; NUME[:LikePlant] = 5
|
|
ENUM[6] = :LikeTree ; NUME[:LikeTree] = 6
|
|
ENUM[7] = :LikeColor ; NUME[:LikeColor] = 7
|
|
ENUM[8] = :LikeShape ; NUME[:LikeShape] = 8
|
|
end
|
|
|
|
number 16, true, nil, UnitPreference_TType
|
|
}
|
|
field(:item_type, 2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:creature_id, 2) {
|
|
number 16, true
|
|
}
|
|
def creature_tg ; df.world.raws.creatures.all[creature_id] ; end
|
|
field(:color_id, 2) {
|
|
number 16, true
|
|
}
|
|
def color_tg ; df.world.raws.language.colors[color_id] ; end
|
|
field(:shape_id, 2) {
|
|
number 16, true
|
|
}
|
|
def shape_tg ; df.world.raws.language.shapes[shape_id] ; end
|
|
field(:plant_id, 2) {
|
|
number 16, true
|
|
}
|
|
def plant_tg ; df.world.raws.plants.all[plant_id] ; end
|
|
field(:item_subtype, 4) {
|
|
number 16, true
|
|
}
|
|
field(:mattype, 6) {
|
|
number 16, true
|
|
}
|
|
field(:matindex, 8) {
|
|
number 32, true
|
|
}
|
|
field(:active, 12) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:unk, 16) {
|
|
number 32, false
|
|
}
|
|
end
|
|
|
|
class UnitSkill < MemHack::Compound
|
|
sizeof 32
|
|
|
|
field(:id, 0) {
|
|
number 16, true, nil, JobSkill
|
|
}
|
|
field(:rating, 4) {
|
|
number 32, true
|
|
}
|
|
field(:experience, 8) {
|
|
number 32, false
|
|
}
|
|
field(:unk_c, 12) {
|
|
number 32, true
|
|
}
|
|
field(:rusty, 16) {
|
|
number 32, true
|
|
}
|
|
field(:unk_14, 20) {
|
|
number 32, true
|
|
}
|
|
field(:unk_18, 24) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1c, 28) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class UnitSoul < MemHack::Compound
|
|
sizeof 576
|
|
|
|
field(:unit_id, 0) {
|
|
number 32, true
|
|
}
|
|
def unit_tg ; df.world.units.all[unit_id] ; end
|
|
field(:name, 4) {
|
|
global :LanguageName
|
|
}
|
|
field(:race, 64) {
|
|
number 32, false
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:sex, 68) {
|
|
number 8, false
|
|
}
|
|
field(:caste, 70) {
|
|
number 16, false
|
|
}
|
|
field(:unk1, 72) {
|
|
number 32, true
|
|
}
|
|
field(:unk2, 76) {
|
|
number 32, true
|
|
}
|
|
field(:unk3, 80) {
|
|
number 32, true
|
|
}
|
|
field(:unk4, 84) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 88) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 92) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 96) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 100) {
|
|
number 32, true
|
|
}
|
|
field(:mental_attrs, 104) {
|
|
static_array(13, 28, MentalAttributeType) {
|
|
global :UnitAttribute
|
|
}
|
|
}
|
|
field(:skills, 468) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitSkill
|
|
}
|
|
}
|
|
}
|
|
field(:preferences, 480) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitPreference
|
|
}
|
|
}
|
|
}
|
|
field(:traits, 492) {
|
|
static_array(30, 2, PersonalityFacetType) {
|
|
number 16, false
|
|
}
|
|
}
|
|
field(:unk5, 552) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:UnitSoul_TUnk5) {
|
|
sizeof 4
|
|
|
|
field(:unk1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:unk2, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk6, 564) {
|
|
stl_vector
|
|
}
|
|
end
|
|
|
|
class UnitSpatter < MemHack::Compound
|
|
sizeof 24
|
|
|
|
field(:mat_type, 0) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 4) {
|
|
number 32, true, -1
|
|
}
|
|
field(:mat_state, 8) {
|
|
number 16, true, nil, MatterState
|
|
}
|
|
field(:temperature, 10) {
|
|
number 16, false
|
|
}
|
|
field(:temperature_fraction, 12) {
|
|
number 16, false
|
|
}
|
|
field(:size, 16) {
|
|
number 32, true
|
|
}
|
|
field(:body_part_id, 20) {
|
|
number 16, true
|
|
}
|
|
field(:unk_16, 22) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class UnitSyndrome < MemHack::Compound
|
|
sizeof 64
|
|
|
|
field(:type, 0) {
|
|
number 32, true
|
|
}
|
|
def type_tg ; df.world.raws.syndromes.all[type] ; end
|
|
field(:year, 4) {
|
|
number 32, true
|
|
}
|
|
field(:year_time, 8) {
|
|
number 32, true
|
|
}
|
|
field(:ticks, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 16) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk1, 28) {
|
|
number 32, true
|
|
}
|
|
field(:symptoms, 32) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:UnitSyndrome_TSymptoms) {
|
|
sizeof 76
|
|
|
|
field(:unk1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:ticks, 8) {
|
|
number 32, true
|
|
}
|
|
field(:target_bp, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:target_layer, 24) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:target_unk1, 36) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:target_unk2, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:target_ticks, 60) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:flags, 72) {
|
|
number 32, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk2, 44) {
|
|
number 16, true
|
|
}
|
|
field(:unk3, 48) {
|
|
number 32, true
|
|
}
|
|
field(:unk4, 52) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class UnitThought < MemHack::Compound
|
|
sizeof 16
|
|
|
|
field(:type, 0) {
|
|
number 16, true, nil, UnitThoughtType
|
|
}
|
|
field(:age, 4) {
|
|
number 32, true
|
|
}
|
|
field(:subtype, 8) {
|
|
number 32, true, -1
|
|
}
|
|
field(:severity, 12) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class UnitWound < MemHack::Compound
|
|
sizeof 64
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:parts, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:UnitWound_TParts) {
|
|
sizeof 108
|
|
|
|
field(:unk_0, 0) {
|
|
number 32, true
|
|
}
|
|
field(:body_part_id, 4) {
|
|
number 16, true
|
|
}
|
|
field(:layer_idx, 6) {
|
|
number 16, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unk_c, 12) {
|
|
number 16, true
|
|
}
|
|
field(:unk_10, 16) {
|
|
number 32, true
|
|
}
|
|
field(:unk_14, 20) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_24, 32) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_34, 44) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_44, 56) {
|
|
number 16, true
|
|
}
|
|
field(:unk_48, 60) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4c, 64) {
|
|
number 32, true
|
|
}
|
|
field(:unk_50, 68) {
|
|
number 32, true
|
|
}
|
|
field(:unk_54, 72) {
|
|
number 32, true
|
|
}
|
|
field(:unk_58, 76) {
|
|
number 32, true
|
|
}
|
|
field(:unk_5c, 80) {
|
|
number 32, true
|
|
}
|
|
field(:unk_60, 84) {
|
|
number 32, true
|
|
}
|
|
field(:unk_64, 88) {
|
|
number 32, true
|
|
}
|
|
field(:unk_68, 92) {
|
|
number 32, true
|
|
}
|
|
field(:unk_6c, 96) {
|
|
number 32, true
|
|
}
|
|
field(:unk_70, 100) {
|
|
number 16, true
|
|
}
|
|
field(:unk_72, 102) {
|
|
number 16, true
|
|
}
|
|
field(:unk_74, 104) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_14, 16) {
|
|
number 32, true
|
|
}
|
|
field(:unk_18, 20) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1c, 24) {
|
|
number 32, true
|
|
}
|
|
field(:unk_20, 28) {
|
|
number 32, true
|
|
}
|
|
field(:unk_24, 32) {
|
|
number 32, true
|
|
}
|
|
field(:unk_28, 36) {
|
|
number 32, true
|
|
}
|
|
field(:unk_2c, 40) {
|
|
number 32, true
|
|
}
|
|
field(:unk_30, 44) {
|
|
number 32, true
|
|
}
|
|
field(:unk_34, 48) {
|
|
number 32, true
|
|
}
|
|
field(:unk_38, 52) {
|
|
number 32, true
|
|
}
|
|
field(:unk_3c, 56) {
|
|
number 32, true
|
|
}
|
|
field(:unk_40, 60) {
|
|
pointer {
|
|
}
|
|
}
|
|
end
|
|
|
|
class Vehicle < MemHack::Compound
|
|
sizeof 64
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:item_id, 4) {
|
|
number 32, true
|
|
}
|
|
def item_tg ; df.world.items.all[item_id] ; end
|
|
field(:offset_x, 8) {
|
|
number 32, true
|
|
}
|
|
field(:offset_y, 12) {
|
|
number 32, true
|
|
}
|
|
field(:offset_z, 16) {
|
|
number 32, true
|
|
}
|
|
field(:speed_x, 20) {
|
|
number 32, true
|
|
}
|
|
field(:speed_y, 24) {
|
|
number 32, true
|
|
}
|
|
field(:speed_z, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 32) {
|
|
}
|
|
field(:route_id, 48) {
|
|
number 32, true
|
|
}
|
|
def route_tg ; df.ui.hauling.routes[route_id] ; end
|
|
field(:pos, 52) {
|
|
global :Coord
|
|
}
|
|
field(:time_stopped, 60) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class Vermin < MemHack::Compound
|
|
sizeof 60
|
|
|
|
field(:race, 0) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:caste, 2) {
|
|
number 16, true
|
|
}
|
|
field(:pos, 4) {
|
|
global :Coord
|
|
}
|
|
field(:visible, 10) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:countdown, 12) {
|
|
number 16, true
|
|
}
|
|
field(:item, 16) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
field(:flags, 20) {
|
|
global :VerminFlags
|
|
}
|
|
field(:amount, 24) {
|
|
number 32, true
|
|
}
|
|
field(:population, 28) {
|
|
global :WorldPopulationRef
|
|
}
|
|
field(:unk_34, 52) {
|
|
number 16, true
|
|
}
|
|
field(:unk_38, 56) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class VerminFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:is_colony, 0) { bit 1 }
|
|
end
|
|
|
|
class Viewscreen < MemHack::Compound
|
|
sizeof 16
|
|
|
|
rtti_classname :viewscreenst
|
|
|
|
field(:child, 4) {
|
|
pointer {
|
|
global :Viewscreen
|
|
}
|
|
}
|
|
field(:parent, 8) {
|
|
pointer {
|
|
global :Viewscreen
|
|
}
|
|
}
|
|
field(:breakdown_level, 12) {
|
|
number 8, false, nil, InterfaceBreakdownTypes
|
|
}
|
|
field(:option_key_pressed, 13) {
|
|
number 8, false
|
|
}
|
|
def feed(events)
|
|
DFHack.vmethod_call(self, 0, events) ; nil
|
|
end
|
|
def logic()
|
|
DFHack.vmethod_call(self, 4) ; nil
|
|
end
|
|
def render()
|
|
DFHack.vmethod_call(self, 8) ; nil
|
|
end
|
|
def resize(w, h)
|
|
DFHack.vmethod_call(self, 12, w, h) ; nil
|
|
end
|
|
def help()
|
|
DFHack.vmethod_call(self, 16) ; nil
|
|
end
|
|
def movies_okay()
|
|
val = DFHack.vmethod_call(self, 20)
|
|
(val & 1) != 0
|
|
end
|
|
def is_option_screen()
|
|
val = DFHack.vmethod_call(self, 24)
|
|
(val & 1) != 0
|
|
end
|
|
def is_save_screen()
|
|
val = DFHack.vmethod_call(self, 28)
|
|
(val & 1) != 0
|
|
end
|
|
def key_conflict(arg0)
|
|
val = DFHack.vmethod_call(self, 40, arg0)
|
|
(val & 1) != 0
|
|
end
|
|
end
|
|
|
|
class ViewscreenChooseStartSitest < Viewscreen
|
|
sizeof 320
|
|
|
|
rtti_classname :viewscreen_choose_start_sitest
|
|
|
|
field(:page, 16) {
|
|
class ::DFHack::ViewscreenChooseStartSitest_TPage < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Biome ; NUME[:Biome] = 0
|
|
ENUM[1] = :Neighbors ; NUME[:Neighbors] = 1
|
|
ENUM[2] = :Civilization ; NUME[:Civilization] = 2
|
|
ENUM[3] = :Elevation ; NUME[:Elevation] = 3
|
|
ENUM[4] = :Cliffs ; NUME[:Cliffs] = 4
|
|
ENUM[5] = :Reclaim ; NUME[:Reclaim] = 5
|
|
ENUM[6] = :Reclaim2 ; NUME[:Reclaim2] = 6
|
|
ENUM[7] = :Find ; NUME[:Find] = 7
|
|
ENUM[8] = :Notes ; NUME[:Notes] = 8
|
|
end
|
|
|
|
number 32, true, nil, ViewscreenChooseStartSitest_TPage
|
|
}
|
|
field(:region_pos, 20) {
|
|
global :Coord2d
|
|
}
|
|
field(:reclaim_site, 24) {
|
|
number 32, true
|
|
}
|
|
def reclaim_site_tg ; df.world.world_data.sites[reclaim_site] ; end
|
|
field(:biome_rgn, 28) {
|
|
global :Coord2dPath
|
|
}
|
|
field(:embark_pos_min, 52) {
|
|
global :Coord2d
|
|
}
|
|
field(:embark_pos_max, 56) {
|
|
global :Coord2d
|
|
}
|
|
field(:embark_biome_rgn, 60) {
|
|
global :Coord2d
|
|
}
|
|
field(:biome_idx, 64) {
|
|
number 32, true
|
|
}
|
|
field(:biome_highlighted, 68) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:in_embark_aquifer, 69) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:in_embark_salt, 70) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:in_embark_large, 71) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:in_embark_normal, 72) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:highlighted_sites, 76) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldSite
|
|
}
|
|
}
|
|
}
|
|
field(:local_sites, 88) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldSite
|
|
}
|
|
}
|
|
}
|
|
field(:unk_74, 100) {
|
|
number 32, true
|
|
}
|
|
field(:civ_idx, 104) {
|
|
number 32, true
|
|
}
|
|
field(:available_civs, 108) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistoricalEntity
|
|
}
|
|
}
|
|
}
|
|
field(:finder, 120) {
|
|
compound(:ViewscreenChooseStartSitest_TFinder) {
|
|
field(:anon_1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_90, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_94, 8) {
|
|
number 32, true
|
|
}
|
|
field(:cursor, 12) {
|
|
number 32, true
|
|
}
|
|
field(:options, 16) {
|
|
static_array(22, 4, EmbarkFinderOption) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unmatched, 104) {
|
|
static_array(22, 1, EmbarkFinderOption) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:visible_options, 128) {
|
|
stl_vector(4) {
|
|
number 32, true, nil, EmbarkFinderOption
|
|
}
|
|
}
|
|
field(:unk_11c, 140) {
|
|
number 16, true, -1
|
|
}
|
|
field(:unk_11e, 142) {
|
|
number 16, true
|
|
}
|
|
field(:unk_120, 144) {
|
|
number 16, true
|
|
}
|
|
field(:unk_122, 146) {
|
|
number 16, true
|
|
}
|
|
field(:unk_124, 148) {
|
|
number 16, true
|
|
}
|
|
field(:unk_126, 150) {
|
|
number 16, true
|
|
}
|
|
field(:unk_128, 152) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:unk_12c, 276) {
|
|
stl_vector
|
|
}
|
|
field(:unk_13c, 288) {
|
|
stl_vector
|
|
}
|
|
field(:unk_14c, 300) {
|
|
number 32, true
|
|
}
|
|
field(:unk_150, 304) {
|
|
number 32, true
|
|
}
|
|
field(:unk_154, 308) {
|
|
number 16, true
|
|
}
|
|
field(:unk_156, 310) {
|
|
number 16, true
|
|
}
|
|
field(:unk_158, 312) {
|
|
number 16, true
|
|
}
|
|
field(:unk_15a, 314) {
|
|
number 16, true
|
|
}
|
|
field(:unk_15c, 316) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ViewscreenCreatequotast < Viewscreen
|
|
sizeof 308
|
|
|
|
rtti_classname :viewscreen_createquotast
|
|
|
|
field(:str_filter, 14) {
|
|
static_string(256)
|
|
}
|
|
field(:top_idx, 272) {
|
|
number 32, true
|
|
}
|
|
field(:sel_idx, 276) {
|
|
number 32, true
|
|
}
|
|
field(:orders, 280) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ManagerOrderTemplate
|
|
}
|
|
}
|
|
}
|
|
field(:anon_1, 292) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:want_quantity, 304) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class ViewscreenDungeonMonsterstatusst < Viewscreen
|
|
sizeof 68
|
|
|
|
rtti_classname :viewscreen_dungeon_monsterstatusst
|
|
|
|
field(:unit, 16) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:inventory_cursor, 20) {
|
|
number 32, true
|
|
}
|
|
field(:body_part_cursor, 24) {
|
|
number 32, true
|
|
}
|
|
field(:body_part, 28) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:view_skills, 40) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:inventory, 44) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitInventoryItem
|
|
}
|
|
}
|
|
}
|
|
field(:spatters, 56) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :UnitSpatter
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class ViewscreenDungeonmodest < Viewscreen
|
|
sizeof 40
|
|
|
|
rtti_classname :viewscreen_dungeonmodest
|
|
|
|
field(:x, 16) {
|
|
number 32, true
|
|
}
|
|
field(:y, 20) {
|
|
number 32, true
|
|
}
|
|
field(:z, 24) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1c, 28) {
|
|
number 32, true
|
|
}
|
|
field(:unk_20, 32) {
|
|
number 32, true
|
|
}
|
|
field(:unk_24, 36) {
|
|
number 8, false
|
|
}
|
|
end
|
|
|
|
class ViewscreenDwarfmodest < Viewscreen
|
|
sizeof 100
|
|
|
|
rtti_classname :viewscreen_dwarfmodest
|
|
|
|
field(:unk_10, 14) {
|
|
number 8, false
|
|
}
|
|
field(:anon_1, 15) {
|
|
}
|
|
field(:unk_14, 20) {
|
|
stl_vector
|
|
}
|
|
field(:unk_24, 32) {
|
|
stl_vector
|
|
}
|
|
field(:unk_34, 44) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_44, 56) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_54, 68) {
|
|
number 32, true
|
|
}
|
|
field(:unk_58, 72) {
|
|
number 8, false
|
|
}
|
|
field(:keyRepeat, 73) {
|
|
number 8, false
|
|
}
|
|
field(:anon_2, 76) {
|
|
stl_vector
|
|
}
|
|
field(:anon_3, 88) {
|
|
}
|
|
end
|
|
|
|
class ViewscreenItemst < Viewscreen
|
|
sizeof 88
|
|
|
|
rtti_classname :viewscreen_itemst
|
|
|
|
field(:item, 16) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
field(:entry_ref, 20) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :GeneralRef
|
|
}
|
|
}
|
|
}
|
|
field(:entry_indent, 32) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_34, 44) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:entry_string, 56) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:entry_reaction, 68) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:cursor_pos, 80) {
|
|
number 32, true
|
|
}
|
|
field(:caption_uses, 84) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:caption_contents, 85) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class ViewscreenJoblistst < Viewscreen
|
|
sizeof 44
|
|
|
|
rtti_classname :viewscreen_joblistst
|
|
|
|
field(:allow_zoom, 14) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:cursor_pos, 16) {
|
|
number 32, true
|
|
}
|
|
field(:jobs, 20) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Job
|
|
}
|
|
}
|
|
}
|
|
field(:units, 32) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class ViewscreenKitchenprefst < Viewscreen
|
|
sizeof 104
|
|
|
|
rtti_classname :viewscreen_kitchenprefst
|
|
|
|
field(:cursor, 16) {
|
|
number 32, true
|
|
}
|
|
field(:item_type, 20) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:item_subtype, 32) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:mat_type, 44) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:mat_index, 56) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:count, 68) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:forbidden, 80) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:possible, 92) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
end
|
|
|
|
class ViewscreenLayerst < Viewscreen
|
|
sizeof 28
|
|
|
|
rtti_classname :viewscreen_layerst
|
|
|
|
field(:layer_objects, 16) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :LayerObject
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class ViewscreenLayerArenaCreaturest < ViewscreenLayerst
|
|
sizeof 48
|
|
|
|
rtti_classname :viewscreen_layer_arena_creaturest
|
|
|
|
field(:unk_1c, 28) {
|
|
number 8, false
|
|
}
|
|
field(:unk_1e, 30) {
|
|
number 16, true
|
|
}
|
|
field(:unk_20, 32) {
|
|
}
|
|
field(:cur_side, 40) {
|
|
number 32, true
|
|
}
|
|
field(:cur_interaction, 44) {
|
|
number 32, true
|
|
}
|
|
def cur_interaction_tg ; df.world.arena_spawn.interactions[cur_interaction] ; end
|
|
end
|
|
|
|
class ViewscreenLayerAssigntradest < ViewscreenLayerst
|
|
sizeof 796
|
|
|
|
rtti_classname :viewscreen_layer_assigntradest
|
|
|
|
field(:info, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :AssignTradeStatus
|
|
}
|
|
}
|
|
}
|
|
field(:depot, 40) {
|
|
pointer {
|
|
global :BuildingTradedepotst
|
|
}
|
|
}
|
|
field(:lists, 44) {
|
|
static_array(61, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:visible_lists, 776) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:sort_distance, 788) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:pending_on_top, 789) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:filter_mandates, 790) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:filter, 792) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class ViewscreenLayerMilitaryst < ViewscreenLayerst
|
|
sizeof 632
|
|
|
|
rtti_classname :viewscreen_layer_militaryst
|
|
|
|
field(:squads, 28) {
|
|
compound(:ViewscreenLayerMilitaryst_TSquads) {
|
|
field(:list, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
}
|
|
field(:leader_positions, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPosition
|
|
}
|
|
}
|
|
}
|
|
field(:leader_assignments, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPositionAssignment
|
|
}
|
|
}
|
|
}
|
|
field(:can_appoint, 36) {
|
|
stl_bit_vector
|
|
}
|
|
}
|
|
}
|
|
field(:positions, 84) {
|
|
compound(:ViewscreenLayerMilitaryst_TPositions) {
|
|
field(:assigned, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:skill, 12) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, JobSkill
|
|
}
|
|
}
|
|
field(:unk_84, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:candidates, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:page, 132) {
|
|
class ::DFHack::ViewscreenLayerMilitaryst_TPage < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Positions ; NUME[:Positions] = 0
|
|
ENUM[1] = :Alerts ; NUME[:Alerts] = 1
|
|
ENUM[2] = :Equip ; NUME[:Equip] = 2
|
|
ENUM[3] = :Uniforms ; NUME[:Uniforms] = 3
|
|
ENUM[4] = :Supplies ; NUME[:Supplies] = 4
|
|
ENUM[5] = :Ammunition ; NUME[:Ammunition] = 5
|
|
end
|
|
|
|
number 32, true, nil, ViewscreenLayerMilitaryst_TPage
|
|
}
|
|
field(:num_squads, 136) {
|
|
number 32, true
|
|
}
|
|
field(:num_soldiers, 140) {
|
|
number 32, true
|
|
}
|
|
field(:num_active, 144) {
|
|
number 32, true
|
|
}
|
|
field(:squad_members, 148) {
|
|
compound(:ViewscreenLayerMilitaryst_TSquadMembers) {
|
|
field(:profession, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, Profession
|
|
}
|
|
}
|
|
field(:count, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:max_count, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:in_create_squad, 184) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:in_new_squad, 185) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:unk_e6, 186) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:captain_positions, 188) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPosition
|
|
}
|
|
}
|
|
}
|
|
field(:new_position, 200) {
|
|
pointer {
|
|
global :EntityPosition
|
|
}
|
|
}
|
|
field(:unk_fc, 204) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:in_rename_alert, 205) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:in_delete_alert, 206) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:alert_squads, 208) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
}
|
|
field(:equip, 220) {
|
|
compound(:ViewscreenLayerMilitaryst_TEquip) {
|
|
field(:mode, 0) {
|
|
class ::DFHack::ViewscreenLayerMilitaryst_TEquip_TMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Customize ; NUME[:Customize] = 0
|
|
ENUM[1] = :Uniform ; NUME[:Uniform] = 1
|
|
ENUM[2] = :Priority ; NUME[:Priority] = 2
|
|
end
|
|
|
|
number 32, true, nil, ViewscreenLayerMilitaryst_TEquip_TMode
|
|
}
|
|
field(:squads, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
}
|
|
field(:units, 16) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:specific_items, 28) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
field(:prio_in_move, 40) {
|
|
number 32, true
|
|
}
|
|
field(:assigned, 44) {
|
|
compound(:ViewscreenLayerMilitaryst_TEquip_TAssigned) {
|
|
field(:spec, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :SquadUniformSpec
|
|
}
|
|
}
|
|
}
|
|
field(:category, 12) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, UniformCategory
|
|
}
|
|
}
|
|
field(:index, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_178, 80) {
|
|
stl_vector
|
|
}
|
|
field(:edit_spec, 92) {
|
|
pointer {
|
|
global :SquadUniformSpec
|
|
}
|
|
}
|
|
field(:uniforms, 96) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityUniform
|
|
}
|
|
}
|
|
}
|
|
field(:uniform, 108) {
|
|
compound(:ViewscreenLayerMilitaryst_TEquip_TUniform) {
|
|
field(:type, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:subtype, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:category, 24) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, UniformCategory
|
|
}
|
|
}
|
|
field(:index, 36) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:info, 48) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityUniformItem
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:edit_mode, 168) {
|
|
class ::DFHack::ViewscreenLayerMilitaryst_TEquip_TEditMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Armor ; NUME[:Armor] = 0
|
|
ENUM[1] = :Helm ; NUME[:Helm] = 1
|
|
ENUM[2] = :Legs ; NUME[:Legs] = 2
|
|
ENUM[3] = :Gloves ; NUME[:Gloves] = 3
|
|
ENUM[4] = :Boots ; NUME[:Boots] = 4
|
|
ENUM[5] = :Shield ; NUME[:Shield] = 5
|
|
ENUM[6] = :Weapon ; NUME[:Weapon] = 6
|
|
ENUM[7] = :Material ; NUME[:Material] = 7
|
|
ENUM[8] = :Color ; NUME[:Color] = 8
|
|
ENUM[9] = :SpecificArmor ; NUME[:SpecificArmor] = 9
|
|
ENUM[10] = :SpecificHelm ; NUME[:SpecificHelm] = 10
|
|
ENUM[11] = :SpecificLegs ; NUME[:SpecificLegs] = 11
|
|
ENUM[12] = :SpecificGloves ; NUME[:SpecificGloves] = 12
|
|
ENUM[13] = :SpecificBoots ; NUME[:SpecificBoots] = 13
|
|
ENUM[14] = :SpecificShield ; NUME[:SpecificShield] = 14
|
|
ENUM[15] = :SpecificWeapon ; NUME[:SpecificWeapon] = 15
|
|
end
|
|
|
|
number 32, true, nil, ViewscreenLayerMilitaryst_TEquip_TEditMode
|
|
}
|
|
field(:unk_1ec, 172) {
|
|
}
|
|
field(:add_item, 176) {
|
|
compound(:ViewscreenLayerMilitaryst_TEquip_TAddItem) {
|
|
field(:type, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:subtype, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_214, 24) {
|
|
stl_vector
|
|
}
|
|
field(:foreign, 36) {
|
|
stl_bit_vector
|
|
}
|
|
}
|
|
}
|
|
field(:material, 232) {
|
|
compound(:ViewscreenLayerMilitaryst_TEquip_TMaterial) {
|
|
field(:generic, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, UniformMaterialClass
|
|
}
|
|
}
|
|
field(:specific, 12) {
|
|
global :MaterialVecRef
|
|
}
|
|
}
|
|
}
|
|
field(:color, 268) {
|
|
compound(:ViewscreenLayerMilitaryst_TEquip_TColor) {
|
|
field(:id, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def id_tg ; id.map { |i| df.world.raws.language.colors[i] } ; end
|
|
field(:dye, 12) {
|
|
stl_bit_vector
|
|
}
|
|
}
|
|
}
|
|
field(:in_name_uniform, 300) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
field(:ammo, 524) {
|
|
compound(:ViewscreenLayerMilitaryst_TAmmo) {
|
|
field(:squads, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
}
|
|
field(:in_add_item, 12) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:in_set_material, 13) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:add_item, 16) {
|
|
compound(:ViewscreenLayerMilitaryst_TAmmo_TAddItem) {
|
|
field(:type, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:subtype, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:foreign, 24) {
|
|
stl_bit_vector
|
|
}
|
|
}
|
|
}
|
|
field(:material, 60) {
|
|
compound(:ViewscreenLayerMilitaryst_TAmmo_TMaterial) {
|
|
field(:generic, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, UniformMaterialClass
|
|
}
|
|
}
|
|
field(:specific, 12) {
|
|
global :MaterialVecRef
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:supplies_squads, 620) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class ViewscreenLayerNoblelistst < ViewscreenLayerst
|
|
sizeof 92
|
|
|
|
rtti_classname :viewscreen_layer_noblelistst
|
|
|
|
field(:mode, 28) {
|
|
class ::DFHack::ViewscreenLayerNoblelistst_TMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :List ; NUME[:List] = 0
|
|
ENUM[1] = :Appoint ; NUME[:Appoint] = 1
|
|
ENUM[2] = :Settings ; NUME[:Settings] = 2
|
|
end
|
|
|
|
number 16, true, nil, ViewscreenLayerNoblelistst_TMode
|
|
}
|
|
field(:info, 32) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:ViewscreenLayerNoblelistst_TInfo) {
|
|
sizeof 28
|
|
|
|
field(:unit, 0) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:nemesis, 4) {
|
|
pointer {
|
|
global :NemesisRecord
|
|
}
|
|
}
|
|
field(:unk_8, 8) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:position, 12) {
|
|
pointer {
|
|
global :EntityPosition
|
|
}
|
|
}
|
|
field(:assignment, 16) {
|
|
pointer {
|
|
global :EntityPositionAssignment
|
|
}
|
|
}
|
|
field(:group, 20) {
|
|
number 32, true
|
|
}
|
|
def group_tg ; df.world.entities.all[group] ; end
|
|
field(:precedence, 24) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:candidates, 44) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:ViewscreenLayerNoblelistst_TCandidates) {
|
|
sizeof 8
|
|
|
|
field(:unit, 0) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:weight, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:assignments, 56) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPositionAssignment
|
|
}
|
|
}
|
|
}
|
|
field(:histfigs, 68) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def histfigs_tg ; histfigs.map { |i| df.world.history.figures[i] } ; end
|
|
field(:groups, 80) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def groups_tg ; groups.map { |i| df.world.entities.all[i] } ; end
|
|
end
|
|
|
|
class ViewscreenLayerOverallHealthst < ViewscreenLayerst
|
|
sizeof 84
|
|
|
|
rtti_classname :viewscreen_layer_overall_healthst
|
|
|
|
field(:anon_1, 28) {
|
|
number 32, true
|
|
}
|
|
field(:unit, 32) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:bits1, 44) {
|
|
stl_vector(4) {
|
|
global :HealthViewBits1
|
|
}
|
|
}
|
|
field(:bits2, 56) {
|
|
stl_vector(4) {
|
|
global :HealthViewBits2
|
|
}
|
|
}
|
|
field(:bits3, 68) {
|
|
stl_vector(4) {
|
|
global :HealthViewBits3
|
|
}
|
|
}
|
|
field(:x_cursor_pos, 80) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ViewscreenLayerStockpilest < ViewscreenLayerst
|
|
sizeof 104
|
|
|
|
rtti_classname :viewscreen_layer_stockpilest
|
|
|
|
field(:settings, 28) {
|
|
pointer {
|
|
global :StockpileSettings
|
|
}
|
|
}
|
|
field(:cur_group, 32) {
|
|
number 32, true, nil, StockpileList
|
|
}
|
|
field(:cur_list, 36) {
|
|
number 32, true, nil, StockpileList
|
|
}
|
|
field(:group_ids, 40) {
|
|
stl_vector(4) {
|
|
number 32, true, nil, StockpileList
|
|
}
|
|
}
|
|
field(:group_bits, 52) {
|
|
stl_vector(4) {
|
|
global :StockpileGroupSet
|
|
}
|
|
}
|
|
field(:list_ids, 64) {
|
|
stl_vector(4) {
|
|
number 32, true, nil, StockpileList
|
|
}
|
|
}
|
|
field(:item_names, 76) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
field(:item_status, 88) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
field(:title, 100) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class ViewscreenLayerWorkshopProfilest < ViewscreenLayerst
|
|
sizeof 44
|
|
|
|
rtti_classname :viewscreen_layer_workshop_profilest
|
|
|
|
field(:profile, 28) {
|
|
pointer {
|
|
global :WorkshopProfile
|
|
}
|
|
}
|
|
field(:workers, 32) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class ViewscreenOptionst < Viewscreen
|
|
sizeof 16
|
|
|
|
rtti_classname :viewscreen_optionst
|
|
|
|
end
|
|
|
|
class ViewscreenOverallstatusst < Viewscreen
|
|
sizeof 32
|
|
|
|
rtti_classname :viewscreen_overallstatusst
|
|
|
|
field(:visible_pages, 16) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:page_cursor, 28) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class ViewscreenPetst < Viewscreen
|
|
sizeof 128
|
|
|
|
rtti_classname :viewscreen_petst
|
|
|
|
field(:cursor, 16) {
|
|
number 32, true
|
|
}
|
|
field(:animal, 20) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:is_vermin, 32) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:pet_info, 44) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :PetInfo
|
|
}
|
|
}
|
|
}
|
|
field(:is_tame, 56) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:is_adopting, 68) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:mode, 80) {
|
|
class ::DFHack::ViewscreenPetst_TMode < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :List ; NUME[:List] = 0
|
|
ENUM[1] = :TrainingKnowledge ; NUME[:TrainingKnowledge] = 1
|
|
ENUM[2] = :SelectTrainer ; NUME[:SelectTrainer] = 2
|
|
end
|
|
|
|
number 32, true, nil, ViewscreenPetst_TMode
|
|
}
|
|
field(:knowledge_page, 84) {
|
|
number 32, true
|
|
}
|
|
field(:known, 88) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def known_tg ; known.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:trainer_cursor, 100) {
|
|
number 32, true
|
|
}
|
|
field(:trainer_unit, 104) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:trainer_mode, 116) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class ViewscreenStoresst < Viewscreen
|
|
sizeof 396
|
|
|
|
rtti_classname :viewscreen_storesst
|
|
|
|
field(:title, 14) {
|
|
static_string(256)
|
|
}
|
|
field(:category_cursor, 272) {
|
|
number 32, true
|
|
}
|
|
field(:item_cursor, 276) {
|
|
number 32, true
|
|
}
|
|
field(:in_right_list, 280) {
|
|
number 16, true
|
|
}
|
|
field(:in_group_mode, 282) {
|
|
number 16, true
|
|
}
|
|
field(:category_total, 284) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:category_busy, 296) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:items, 308) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
field(:group_item_type, 320) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:group_item_subtype, 332) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:group_mat_type, 344) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:group_mat_index, 356) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:group_count, 368) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:category_order, 380) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:can_zoom, 392) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
|
|
class ViewscreenTitlest < Viewscreen
|
|
sizeof 636
|
|
|
|
rtti_classname :viewscreen_titlest
|
|
|
|
field(:str_histories, 14) {
|
|
static_string(256)
|
|
}
|
|
field(:menu_items, 270) {
|
|
static_string(256)
|
|
}
|
|
field(:sel_subpage, 526) {
|
|
class ::DFHack::ViewscreenTitlest_TSelSubpage < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :None ; NUME[:None] = 0
|
|
ENUM[1] = :StartGame ; NUME[:StartGame] = 1
|
|
ENUM[2] = :Unk2 ; NUME[:Unk2] = 2
|
|
ENUM[3] = :Arena ; NUME[:Arena] = 3
|
|
ENUM[4] = :About ; NUME[:About] = 4
|
|
end
|
|
|
|
number 16, true, nil, ViewscreenTitlest_TSelSubpage
|
|
}
|
|
field(:sel_menu_line, 528) {
|
|
number 32, true
|
|
}
|
|
field(:sel_submenu_line, 532) {
|
|
number 32, true
|
|
}
|
|
field(:unk_218, 536) {
|
|
number 8, false
|
|
}
|
|
field(:unk_21c, 540) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_228, 552) {
|
|
stl_vector
|
|
}
|
|
field(:unk_234, 564) {
|
|
stl_vector
|
|
}
|
|
field(:start_savegames, 576) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:continue_savegames, 588) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:str_slaves, 600) {
|
|
stl_string
|
|
}
|
|
field(:str_chapter, 604) {
|
|
stl_string
|
|
}
|
|
field(:str_copyright, 608) {
|
|
stl_string
|
|
}
|
|
field(:str_version, 612) {
|
|
stl_string
|
|
}
|
|
field(:str_unk, 616) {
|
|
stl_string
|
|
}
|
|
field(:str_programmed, 620) {
|
|
stl_string
|
|
}
|
|
field(:str_designed, 624) {
|
|
stl_string
|
|
}
|
|
field(:str_visit, 628) {
|
|
stl_string
|
|
}
|
|
field(:str_site, 632) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class ViewscreenTradegoodsst < Viewscreen
|
|
sizeof 420
|
|
|
|
rtti_classname :viewscreen_tradegoodsst
|
|
|
|
field(:title, 14) {
|
|
static_string(256)
|
|
}
|
|
field(:merchant_name, 272) {
|
|
stl_string
|
|
}
|
|
field(:merchant_entity, 276) {
|
|
stl_string
|
|
}
|
|
field(:depot, 280) {
|
|
pointer {
|
|
global :BuildingTradedepotst
|
|
}
|
|
}
|
|
field(:caravan, 284) {
|
|
pointer {
|
|
global :CaravanState
|
|
}
|
|
}
|
|
field(:entity, 288) {
|
|
pointer {
|
|
global :HistoricalEntity
|
|
}
|
|
}
|
|
field(:is_unloading, 292) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:has_traders, 293) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:trader, 296) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:broker, 300) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
field(:trader_items, 304) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
field(:broker_items, 316) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
field(:trader_selected, 328) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:broker_selected, 340) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:trader_count, 352) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:broker_count, 364) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:trader_cursor, 376) {
|
|
number 32, true
|
|
}
|
|
field(:broker_cursor, 380) {
|
|
number 32, true
|
|
}
|
|
field(:in_right_pane, 384) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:trade_reply, 386) {
|
|
number 16, true
|
|
}
|
|
field(:anon_1, 388) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 392) {
|
|
number 32, true
|
|
}
|
|
field(:has_offer, 396) {
|
|
number 8, false
|
|
}
|
|
field(:unk_1d8, 400) {
|
|
stl_vector
|
|
}
|
|
field(:in_edit_count, 412) {
|
|
number 8, false
|
|
}
|
|
field(:edit_count, 416) {
|
|
stl_string
|
|
}
|
|
end
|
|
|
|
class ViewscreenTradelistst < Viewscreen
|
|
sizeof 36
|
|
|
|
rtti_classname :viewscreen_tradelistst
|
|
|
|
field(:unk_10, 16) {
|
|
number 32, true
|
|
}
|
|
field(:depot, 20) {
|
|
pointer {
|
|
global :BuildingTradedepotst
|
|
}
|
|
}
|
|
field(:caravans, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CaravanState
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class ViewscreenUnitlistst < Viewscreen
|
|
sizeof 132
|
|
|
|
rtti_classname :viewscreen_unitlistst
|
|
|
|
field(:allow_zoom, 14) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:page, 16) {
|
|
class ::DFHack::ViewscreenUnitlistst_TPage < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :Citizens ; NUME[:Citizens] = 0
|
|
ENUM[1] = :Livestock ; NUME[:Livestock] = 1
|
|
ENUM[2] = :Others ; NUME[:Others] = 2
|
|
ENUM[3] = :Dead ; NUME[:Dead] = 3
|
|
end
|
|
|
|
number 32, true, nil, ViewscreenUnitlistst_TPage
|
|
}
|
|
field(:cursor_pos, 20) {
|
|
static_array(4, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:jobs, 36) {
|
|
static_array(4, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Job
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:units, 84) {
|
|
static_array(4, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class WorkshopProfile < MemHack::Compound
|
|
sizeof 20
|
|
|
|
field(:permitted_workers, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def permitted_workers_tg ; permitted_workers.map { |i| df.world.units.all[i] } ; end
|
|
field(:min_level, 12) {
|
|
number 32, true
|
|
}
|
|
field(:max_level, 16) {
|
|
number 32, true, 3000
|
|
}
|
|
end
|
|
|
|
class World < MemHack::Compound
|
|
sizeof 1652052
|
|
|
|
field(:glowing_barriers, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TGlowingBarriers) {
|
|
sizeof 24
|
|
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 4) {
|
|
stl_vector
|
|
}
|
|
field(:pos, 16) {
|
|
global :Coord
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:deep_vein_hollows, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TDeepVeinHollows) {
|
|
sizeof 52
|
|
|
|
field(:anon_1, 0) {
|
|
number 8, false
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:tiles, 8) {
|
|
global :CoordPath
|
|
}
|
|
field(:anon_3, 44) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 48) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_20, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldUnk20
|
|
}
|
|
}
|
|
}
|
|
field(:engravings, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Engraving
|
|
}
|
|
}
|
|
}
|
|
field(:vermin, 48) {
|
|
compound(:World_TVermin) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Vermin
|
|
}
|
|
}
|
|
}
|
|
field(:colonies, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Vermin
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_3C, 72) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Coord
|
|
}
|
|
}
|
|
}
|
|
field(:unk_48, 84) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnk48) {
|
|
sizeof 12
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 8) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_54, 96) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnk54) {
|
|
sizeof 52
|
|
|
|
field(:anon_1, 0) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_2, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_3, 24) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 26) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 28) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 30) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 32) {
|
|
number 16, true
|
|
}
|
|
field(:anon_8, 34) {
|
|
number 16, true
|
|
}
|
|
field(:anon_9, 36) {
|
|
number 16, true
|
|
}
|
|
field(:anon_10, 40) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_60, 108) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnk60) {
|
|
sizeof 16
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 6) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 8) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 10) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 12) {
|
|
number 16, true
|
|
}
|
|
field(:anon_8, 14) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_6C, 120) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnk6C) {
|
|
sizeof 56
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 6) {
|
|
number 8, false
|
|
}
|
|
field(:anon_5, 8) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_6, 20) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_7, 32) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_8, 44) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_78, 132) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnk78) {
|
|
sizeof 14
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 6) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 8) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 10) {
|
|
number 8, false
|
|
}
|
|
field(:anon_7, 11) {
|
|
number 8, false
|
|
}
|
|
field(:anon_8, 12) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:constructions, 144) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Construction
|
|
}
|
|
}
|
|
}
|
|
field(:unk_90, 156) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnk90) {
|
|
sizeof 10
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 6) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 8) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_9C, 168) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnk9C) {
|
|
sizeof 32
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 6) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 8) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 20) {
|
|
number 16, true
|
|
}
|
|
field(:anon_9, 22) {
|
|
number 16, true
|
|
}
|
|
field(:anon_10, 24) {
|
|
number 16, true
|
|
}
|
|
field(:anon_11, 26) {
|
|
number 16, true
|
|
}
|
|
field(:anon_12, 28) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_A8, 180) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnkA8) {
|
|
sizeof 28
|
|
|
|
field(:anon_1, 0) {
|
|
number 8, false
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 8) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_4, 20) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 22) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 24) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_B4, 192) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnkB4) {
|
|
sizeof 52
|
|
|
|
field(:anon_1, 0) {
|
|
number 8, false
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 8) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_4, 20) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_5, 32) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 46) {
|
|
number 16, true
|
|
}
|
|
field(:anon_8, 48) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_C0, 204) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldUnkC0
|
|
}
|
|
}
|
|
}
|
|
field(:unk_CC, 216) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnkCC) {
|
|
sizeof 44
|
|
|
|
field(:anon_1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 12) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 14) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 16) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 20) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 24) {
|
|
number 8, false
|
|
}
|
|
field(:anon_9, 28) {
|
|
number 32, true
|
|
}
|
|
field(:anon_10, 32) {
|
|
number 16, true
|
|
}
|
|
field(:anon_11, 34) {
|
|
number 16, true
|
|
}
|
|
field(:anon_12, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_13, 40) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_D8, 228) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnkD8) {
|
|
sizeof 20
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 6) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 8) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 10) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 16) {
|
|
number 8, false
|
|
}
|
|
field(:anon_9, 18) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_E4, 240) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnkE4) {
|
|
sizeof 32
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 6) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 8) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_8, 20) {
|
|
number 16, true
|
|
}
|
|
field(:anon_9, 22) {
|
|
number 16, true
|
|
}
|
|
field(:anon_10, 24) {
|
|
number 16, true
|
|
}
|
|
field(:anon_11, 26) {
|
|
number 16, true
|
|
}
|
|
field(:anon_12, 28) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_F0, 252) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnkF0) {
|
|
sizeof 56
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 6) {
|
|
number 8, false
|
|
}
|
|
field(:anon_5, 8) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_6, 20) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_7, 32) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_8, 44) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_FC, 264) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnkFC) {
|
|
sizeof 10
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 6) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 8) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:effects, 276) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EffectInfo
|
|
}
|
|
}
|
|
}
|
|
field(:coin_batches, 288) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TCoinBatches) {
|
|
sizeof 36
|
|
|
|
field(:year, 0) {
|
|
number 32, true
|
|
}
|
|
field(:mat_type, 4) {
|
|
number 16, true
|
|
}
|
|
field(:mat_index, 8) {
|
|
number 32, true
|
|
}
|
|
field(:entity, 12) {
|
|
number 32, true
|
|
}
|
|
def entity_tg ; df.world.entities.all[entity] ; end
|
|
field(:ruler, 16) {
|
|
number 32, true
|
|
}
|
|
def ruler_tg ; df.world.history.figures[ruler] ; end
|
|
field(:image_front, 20) {
|
|
compound(:World_TCoinBatches_TImageFront) {
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
def id_tg ; df.world.art_images[id] ; end
|
|
field(:subid, 4) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:image_back, 28) {
|
|
compound(:World_TCoinBatches_TImageBack) {
|
|
field(:id, 0) {
|
|
number 32, true
|
|
}
|
|
def id_tg ; df.world.art_images[id] ; end
|
|
field(:subid, 4) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:populations, 300) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TPopulations) {
|
|
sizeof 48
|
|
|
|
field(:type, 0) {
|
|
number 8, false, nil, WorldPopulationType
|
|
}
|
|
field(:race, 2) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:plant, 2) {
|
|
number 16, true
|
|
}
|
|
def plant_tg ; df.world.raws.plants.all[plant] ; end
|
|
field(:quantity, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
number 8, false
|
|
}
|
|
field(:population, 12) {
|
|
global :WorldPopulationRef
|
|
}
|
|
field(:anon_1, 36) {
|
|
number 32, true, -1
|
|
}
|
|
field(:anon_2, 40) {
|
|
number 32, true, -1
|
|
}
|
|
field(:anon_3, 44) {
|
|
number 32, true, -1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:manager_orders, 312) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ManagerOrder
|
|
}
|
|
}
|
|
}
|
|
field(:mandates, 324) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Mandate
|
|
}
|
|
}
|
|
}
|
|
field(:entities, 336) {
|
|
compound(:World_TEntities) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistoricalEntity
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistoricalEntity
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_1, 360) {
|
|
}
|
|
field(:units, 80364) {
|
|
compound(:World_TUnits) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:active, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
field(:other, 24) {
|
|
static_array(3, 12, UnitsOtherId) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 60) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unit_chunks, 80436) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:art_images, 80448) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ArtImageCollection
|
|
}
|
|
}
|
|
}
|
|
field(:nemesis, 80460) {
|
|
compound(:World_TNemesis) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :NemesisRecord
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :NemesisRecord
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk4, 80484) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:items, 80488) {
|
|
compound(:World_TItems) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
field(:other, 12) {
|
|
static_array(129, 12, ItemsOtherId) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 1560) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
field(:bad_tag, 1572) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:artifacts, 82072) {
|
|
compound(:World_TArtifacts) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ArtifactRecord
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ArtifactRecord
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:job_list, 82096) {
|
|
df_linked_list {
|
|
global :JobListLink
|
|
}
|
|
}
|
|
field(:proj_list, 82108) {
|
|
df_linked_list {
|
|
global :ProjListLink
|
|
}
|
|
}
|
|
field(:buildings, 82120) {
|
|
compound(:World_TBuildings) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
}
|
|
field(:other, 12) {
|
|
static_array(87, 12, BuildingsOtherId) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 1056) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:check_bridge_collapse, 83188) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:check_machine_collapse, 83189) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:machines, 83192) {
|
|
compound(:World_TMachines) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Machine
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Machine
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:flow_guides, 83216) {
|
|
compound(:World_TFlowGuides) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_2, 83240) {
|
|
}
|
|
field(:unk_item_classifier, 83320) {
|
|
compound(:World_TUnkItemClassifier) {
|
|
field(:simple1, 0) {
|
|
compound(:World_TUnkItemClassifier_TSimple1) {
|
|
field(:anon_1, 0) {
|
|
number 8, false
|
|
}
|
|
field(:food, 1) {
|
|
number 8, false
|
|
}
|
|
field(:anon_2, 2) {
|
|
number 8, false
|
|
}
|
|
field(:anon_3, 3) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
field(:seeds, 4) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:plants, 16) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:cheese, 28) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:meat_fish, 40) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:eggs, 52) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:leaves, 64) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:plant_powder, 76) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:simple2, 88) {
|
|
compound(:World_TUnkItemClassifier_TSimple2) {
|
|
field(:seeds, 0) {
|
|
number 8, false
|
|
}
|
|
field(:plants, 1) {
|
|
number 8, false
|
|
}
|
|
field(:cheese, 2) {
|
|
number 8, false
|
|
}
|
|
field(:fish, 3) {
|
|
number 8, false
|
|
}
|
|
field(:meat, 4) {
|
|
number 8, false
|
|
}
|
|
field(:leaves, 5) {
|
|
number 8, false
|
|
}
|
|
field(:powder, 6) {
|
|
number 8, false
|
|
}
|
|
field(:eggs, 7) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
field(:liquid_plant, 96) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:liquid_animal, 108) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:liquid_builtin, 120) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:simple3, 132) {
|
|
compound(:World_TUnkItemClassifier_TSimple3) {
|
|
field(:glob_fat, 0) {
|
|
number 8, false
|
|
}
|
|
field(:glob_tallow, 1) {
|
|
number 8, false
|
|
}
|
|
field(:glob_paste, 2) {
|
|
number 8, false
|
|
}
|
|
field(:glob_pressed, 3) {
|
|
number 8, false
|
|
}
|
|
field(:weapons, 4) {
|
|
number 8, false
|
|
}
|
|
field(:shields, 5) {
|
|
number 8, false
|
|
}
|
|
field(:ammo, 6) {
|
|
number 8, false
|
|
}
|
|
field(:coins, 7) {
|
|
number 8, false
|
|
}
|
|
field(:bar_blocks, 8) {
|
|
number 8, false
|
|
}
|
|
field(:gems, 9) {
|
|
number 8, false
|
|
}
|
|
field(:finished_goods, 10) {
|
|
number 8, false
|
|
}
|
|
field(:tanned_skins, 11) {
|
|
number 8, false
|
|
}
|
|
field(:thread_cloth, 12) {
|
|
number 8, false
|
|
}
|
|
field(:anon_1, 13) {
|
|
number 8, false
|
|
}
|
|
field(:anon_2, 14) {
|
|
number 8, false
|
|
}
|
|
field(:anon_3, 15) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:plants, 83468) {
|
|
compound(:World_TPlants) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Plant
|
|
}
|
|
}
|
|
}
|
|
field(:shrub_dry, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Plant
|
|
}
|
|
}
|
|
}
|
|
field(:shrub_wet, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Plant
|
|
}
|
|
}
|
|
}
|
|
field(:tree_dry, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Plant
|
|
}
|
|
}
|
|
}
|
|
field(:tree_wet, 48) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Plant
|
|
}
|
|
}
|
|
}
|
|
field(:empty, 60) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Plant
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:quests, 83540) {
|
|
df_linked_list {
|
|
global :QuestListLink
|
|
}
|
|
}
|
|
field(:enemy_status_cache, 83552) {
|
|
compound(:World_TEnemyStatusCache) {
|
|
field(:slot_used, 0) {
|
|
static_array(500, 1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
field(:rel_map, 500) {
|
|
static_array(500, 500) {
|
|
static_array(500, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
field(:next_slot, 250500) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:schedules, 334056) {
|
|
compound(:World_TSchedules) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:squads, 334080) {
|
|
compound(:World_TSquads) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Squad
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_518dc, 334104) {
|
|
compound(:World_TUnk518dc) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:activities, 334128) {
|
|
compound(:World_TActivities) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ActivityEntry
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ActivityEntry
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:status, 334152) {
|
|
compound(:World_TStatus) {
|
|
field(:reports, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Report
|
|
}
|
|
}
|
|
}
|
|
field(:announcements, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Report
|
|
}
|
|
}
|
|
}
|
|
field(:popups, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :PopupMessage
|
|
}
|
|
}
|
|
}
|
|
field(:next_report_id, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 40) {
|
|
number 32, true
|
|
}
|
|
field(:display_timer, 44) {
|
|
number 32, true
|
|
}
|
|
field(:slots, 48) {
|
|
static_array(100, 48) {
|
|
compound(:World_TStatus_TSlots) {
|
|
field(:id, 0) {
|
|
number 16, true
|
|
}
|
|
field(:info, 4) {
|
|
}
|
|
field(:unk3a, 28) {
|
|
stl_string
|
|
}
|
|
field(:unk3b, 32) {
|
|
stl_string
|
|
}
|
|
field(:unk3c, 36) {
|
|
stl_string
|
|
}
|
|
field(:unk3d, 40) {
|
|
stl_string
|
|
}
|
|
field(:unk4, 44) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:slot_id_used, 4848) {
|
|
static_array(34, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:slot_id_idx1, 4916) {
|
|
static_array(34, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:slot_id_idx2, 4984) {
|
|
static_array(34, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:slots_used, 5052) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:interaction_instances, 339208) {
|
|
compound(:World_TInteractionInstances) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:written_contents, 339232) {
|
|
compound(:World_TWrittenContents) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:assumed_identities, 339256) {
|
|
compound(:World_TAssumedIdentities) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :AssumedIdentity
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :AssumedIdentity
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:deaths, 339280) {
|
|
compound(:World_TDeaths) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :DeathInfo
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :DeathInfo
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:criminal_cases, 339304) {
|
|
compound(:World_TCriminalCases) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CriminalCase
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CriminalCase
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:vehicles, 339328) {
|
|
compound(:World_TVehicles) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Vehicle
|
|
}
|
|
}
|
|
}
|
|
field(:active, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Vehicle
|
|
}
|
|
}
|
|
}
|
|
field(:bad, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Vehicle
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:selected_building, 339364) {
|
|
pointer {
|
|
global :Building
|
|
}
|
|
}
|
|
field(:selected_stockpile_type, 339368) {
|
|
number 16, true, nil, StockpileCategory
|
|
}
|
|
field(:update_selected_building, 339370) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:building_width, 339372) {
|
|
number 16, true
|
|
}
|
|
field(:building_height, 339374) {
|
|
number 16, true
|
|
}
|
|
field(:selected_direction, 339376) {
|
|
number 8, false, nil, ScrewPumpDirection
|
|
}
|
|
field(:map, 339380) {
|
|
compound(:World_TMap) {
|
|
field(:map_blocks, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :MapBlock
|
|
}
|
|
}
|
|
}
|
|
field(:block_index, 12) {
|
|
pointer_ary(4) {
|
|
pointer_ary(4) {
|
|
pointer_ary(4) {
|
|
pointer {
|
|
global :MapBlock
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:map_block_columns, 16) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :MapBlockColumn
|
|
}
|
|
}
|
|
}
|
|
field(:column_index, 28) {
|
|
pointer_ary(4) {
|
|
pointer_ary(4) {
|
|
pointer {
|
|
global :MapBlockColumn
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:x_count_block, 32) {
|
|
number 32, true
|
|
}
|
|
field(:y_count_block, 36) {
|
|
number 32, true
|
|
}
|
|
field(:z_count_block, 40) {
|
|
number 32, true
|
|
}
|
|
field(:x_count, 44) {
|
|
number 32, true
|
|
}
|
|
field(:y_count, 48) {
|
|
number 32, true
|
|
}
|
|
field(:z_count, 52) {
|
|
number 32, true
|
|
}
|
|
field(:region_x, 56) {
|
|
number 32, true
|
|
}
|
|
field(:region_y, 60) {
|
|
number 32, true
|
|
}
|
|
field(:region_z, 64) {
|
|
number 32, true
|
|
}
|
|
field(:unknown_52d20, 68) {
|
|
static_array(2810, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:z_level_flags, 5688) {
|
|
pointer_ary(4) {
|
|
global :ZLevelFlags
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:world_data, 345072) {
|
|
pointer {
|
|
global :WorldData
|
|
}
|
|
}
|
|
field(:anon_3, 345076) {
|
|
}
|
|
field(:unk_54318, 345080) {
|
|
compound(:World_TUnk54318) {
|
|
field(:anon_1, 0) {
|
|
}
|
|
field(:anon_2, 1188) {
|
|
stl_vector
|
|
}
|
|
field(:anon_3, 1200) {
|
|
stl_vector
|
|
}
|
|
field(:anon_4, 1212) {
|
|
}
|
|
field(:anon_5, 1220) {
|
|
stl_vector
|
|
}
|
|
field(:anon_6, 1232) {
|
|
stl_vector
|
|
}
|
|
field(:anon_7, 1244) {
|
|
}
|
|
field(:anon_8, 1252) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:anon_9, 1256) {
|
|
stl_string
|
|
}
|
|
field(:anon_10, 1260) {
|
|
stl_string
|
|
}
|
|
field(:anon_11, 1264) {
|
|
stl_string
|
|
}
|
|
field(:anon_12, 1268) {
|
|
stl_string
|
|
}
|
|
field(:anon_13, 1272) {
|
|
stl_string
|
|
}
|
|
field(:anon_14, 1276) {
|
|
}
|
|
field(:anon_15, 1284) {
|
|
stl_vector
|
|
}
|
|
field(:anon_16, 1296) {
|
|
stl_vector
|
|
}
|
|
field(:anon_17, 1308) {
|
|
}
|
|
field(:anon_18, 1316) {
|
|
stl_vector
|
|
}
|
|
field(:anon_19, 1328) {
|
|
stl_vector
|
|
}
|
|
field(:anon_20, 1340) {
|
|
}
|
|
field(:anon_21, 1348) {
|
|
static_array(10, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:anon_22, 1468) {
|
|
static_array(10, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:anon_23, 1588) {
|
|
static_array(10, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
field(:anon_24, 1708) {
|
|
stl_vector
|
|
}
|
|
field(:anon_25, 1720) {
|
|
stl_vector
|
|
}
|
|
field(:anon_26, 1732) {
|
|
stl_vector
|
|
}
|
|
field(:anon_27, 1744) {
|
|
stl_vector
|
|
}
|
|
field(:anon_28, 1756) {
|
|
stl_vector
|
|
}
|
|
field(:anon_29, 1768) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
field(:anon_4, 346860) {
|
|
}
|
|
field(:unk_54a0c, 346868) {
|
|
number 32, true
|
|
}
|
|
field(:unk_54a10, 346872) {
|
|
number 32, true
|
|
}
|
|
field(:raws, 346876) {
|
|
global :WorldRaws
|
|
}
|
|
field(:unk_59dc4, 368708) {
|
|
compound(:World_TUnk59dc4) {
|
|
field(:regions, 0) {
|
|
global :Coord2dPath
|
|
}
|
|
field(:unk1, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnk59dc4_TUnk1) {
|
|
sizeof 36
|
|
|
|
field(:ref, 0) {
|
|
global :WorldPopulationRef
|
|
}
|
|
field(:unk, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:flow_engine, 368744) {
|
|
compound(:World_TFlowEngine) {
|
|
field(:rnd_16, 0) {
|
|
number 8, false
|
|
}
|
|
field(:rnd_256, 2) {
|
|
number 16, true
|
|
}
|
|
field(:rnd_pos, 4) {
|
|
number 16, true
|
|
}
|
|
field(:rnd_x, 6) {
|
|
static_array(16, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:rnd_y, 38) {
|
|
static_array(16, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:block_idx, 72) {
|
|
number 32, true
|
|
}
|
|
field(:unk7a, 76) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk7b, 88) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk7c, 100) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk7_cntdn, 112) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk8, 124) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:flags, 136) {
|
|
df_flagarray
|
|
}
|
|
}
|
|
}
|
|
field(:unk_59e78, 368888) {
|
|
number 32, true
|
|
}
|
|
field(:worldgen, 368892) {
|
|
compound(:World_TWorldgen) {
|
|
field(:version, 0) {
|
|
stl_string
|
|
}
|
|
field(:next_unit_chunk_id, 4) {
|
|
number 32, true
|
|
}
|
|
field(:next_unit_chunk_offset, 8) {
|
|
number 16, true
|
|
}
|
|
field(:next_art_image_chunk_id, 12) {
|
|
number 32, true
|
|
}
|
|
field(:next_art_image_chunk_offset, 16) {
|
|
number 16, true
|
|
}
|
|
field(:worldgen_parms, 20) {
|
|
compound(:World_TWorldgen_TWorldgenParms) {
|
|
field(:title, 0) {
|
|
stl_string
|
|
}
|
|
field(:seed, 4) {
|
|
stl_string
|
|
}
|
|
field(:history_seed, 8) {
|
|
stl_string
|
|
}
|
|
field(:name_seed, 12) {
|
|
stl_string
|
|
}
|
|
field(:creature_seed, 16) {
|
|
stl_string
|
|
}
|
|
field(:dim_x, 20) {
|
|
number 32, true
|
|
}
|
|
field(:dim_y, 24) {
|
|
number 32, true
|
|
}
|
|
field(:custom_name, 28) {
|
|
stl_string
|
|
}
|
|
field(:has_seed, 32) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:has_history_seed, 33) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:has_name_seed, 34) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:has_creature_seed, 35) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:embark_points, 36) {
|
|
number 32, true
|
|
}
|
|
field(:peak_number_min, 40) {
|
|
number 32, true
|
|
}
|
|
field(:partial_ocean_edge_min, 44) {
|
|
number 32, true
|
|
}
|
|
field(:complete_ocean_edge_min, 48) {
|
|
number 32, true
|
|
}
|
|
field(:volcano_min, 52) {
|
|
number 32, true
|
|
}
|
|
field(:region_counts, 56) {
|
|
static_array(3, 40) {
|
|
static_array(10, 4, WorldgenRegionType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:river_mins, 176) {
|
|
static_array(2, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:subregion_max, 184) {
|
|
number 32, true
|
|
}
|
|
field(:cavern_layer_count, 188) {
|
|
number 32, true
|
|
}
|
|
field(:cavern_layer_openness_min, 192) {
|
|
number 32, true
|
|
}
|
|
field(:cavern_layer_openness_max, 196) {
|
|
number 32, true
|
|
}
|
|
field(:cavern_layer_passage_density_min, 200) {
|
|
number 32, true
|
|
}
|
|
field(:cavern_layer_passage_density_max, 204) {
|
|
number 32, true
|
|
}
|
|
field(:cavern_layer_water_min, 208) {
|
|
number 32, true
|
|
}
|
|
field(:cavern_layer_water_max, 212) {
|
|
number 32, true
|
|
}
|
|
field(:have_bottom_layer_1, 216) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:have_bottom_layer_2, 217) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:levels_above_ground, 220) {
|
|
number 32, true
|
|
}
|
|
field(:levels_above_layer_1, 224) {
|
|
number 32, true
|
|
}
|
|
field(:levels_above_layer_2, 228) {
|
|
number 32, true
|
|
}
|
|
field(:levels_above_layer_3, 232) {
|
|
number 32, true
|
|
}
|
|
field(:levels_above_layer_4, 236) {
|
|
number 32, true
|
|
}
|
|
field(:levels_above_layer_5, 240) {
|
|
number 32, true
|
|
}
|
|
field(:levels_at_bottom, 244) {
|
|
number 32, true
|
|
}
|
|
field(:cave_min_size, 248) {
|
|
number 32, true
|
|
}
|
|
field(:cave_max_size, 252) {
|
|
number 32, true
|
|
}
|
|
field(:mountain_cave_min, 256) {
|
|
number 32, true
|
|
}
|
|
field(:non_mountain_cave_min, 260) {
|
|
number 32, true
|
|
}
|
|
field(:total_civ_number, 264) {
|
|
number 32, true
|
|
}
|
|
field(:rain_ranges_1, 268) {
|
|
number 32, true
|
|
}
|
|
field(:rain_ranges_0, 272) {
|
|
number 32, true
|
|
}
|
|
field(:rain_ranges_2, 276) {
|
|
number 32, true
|
|
}
|
|
field(:drainage_ranges_1, 280) {
|
|
number 32, true
|
|
}
|
|
field(:drainage_ranges_0, 284) {
|
|
number 32, true
|
|
}
|
|
field(:drainage_ranges_2, 288) {
|
|
number 32, true
|
|
}
|
|
field(:savagery_ranges_1, 292) {
|
|
number 32, true
|
|
}
|
|
field(:savagery_ranges_0, 296) {
|
|
number 32, true
|
|
}
|
|
field(:savagery_ranges_2, 300) {
|
|
number 32, true
|
|
}
|
|
field(:volcanism_ranges_1, 304) {
|
|
number 32, true
|
|
}
|
|
field(:volcanism_ranges_0, 308) {
|
|
number 32, true
|
|
}
|
|
field(:volcanism_ranges_2, 312) {
|
|
number 32, true
|
|
}
|
|
field(:ranges, 316) {
|
|
static_array(4, 96) {
|
|
static_array(24, 4, WorldgenRangeType) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:beast_end_year, 700) {
|
|
number 32, true
|
|
}
|
|
field(:end_year, 704) {
|
|
number 32, true
|
|
}
|
|
field(:beast_end_year_percent, 708) {
|
|
number 32, true
|
|
}
|
|
field(:total_civ_population, 712) {
|
|
number 32, true
|
|
}
|
|
field(:site_cap, 716) {
|
|
number 32, true
|
|
}
|
|
field(:elevation_ranges_1, 720) {
|
|
number 32, true
|
|
}
|
|
field(:elevation_ranges_0, 724) {
|
|
number 32, true
|
|
}
|
|
field(:elevation_ranges_2, 728) {
|
|
number 32, true
|
|
}
|
|
field(:mineral_scarcity, 732) {
|
|
number 32, true
|
|
}
|
|
field(:megabeast_cap, 736) {
|
|
number 32, true
|
|
}
|
|
field(:semimegabeast_cap, 740) {
|
|
number 32, true
|
|
}
|
|
field(:titan_number, 744) {
|
|
number 32, true
|
|
}
|
|
field(:titan_attack_trigger, 748) {
|
|
static_array(3, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:demon_number, 760) {
|
|
number 32, true
|
|
}
|
|
field(:night_creature_number, 764) {
|
|
number 32, true
|
|
}
|
|
field(:good_sq_counts_0, 768) {
|
|
number 32, true
|
|
}
|
|
field(:evil_sq_counts_0, 772) {
|
|
number 32, true
|
|
}
|
|
field(:good_sq_counts_1, 776) {
|
|
number 32, true
|
|
}
|
|
field(:evil_sq_counts_1, 780) {
|
|
number 32, true
|
|
}
|
|
field(:good_sq_counts_2, 784) {
|
|
number 32, true
|
|
}
|
|
field(:evil_sq_counts_2, 788) {
|
|
number 32, true
|
|
}
|
|
field(:elevation_frequency, 792) {
|
|
static_array(6, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:rain_frequency, 816) {
|
|
static_array(6, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:drainage_frequency, 840) {
|
|
static_array(6, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:savagery_frequency, 864) {
|
|
static_array(6, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:temperature_frequency, 888) {
|
|
static_array(6, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:volcanism_frequency, 912) {
|
|
static_array(6, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:ps, 936) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:reveal_all_history, 940) {
|
|
number 32, true
|
|
}
|
|
field(:cull_historical_figures, 944) {
|
|
number 32, true
|
|
}
|
|
field(:erosion_cycle_count, 948) {
|
|
number 32, true
|
|
}
|
|
field(:periodically_erode_extremes, 952) {
|
|
number 32, true
|
|
}
|
|
field(:orographic_precipitation, 956) {
|
|
number 32, true
|
|
}
|
|
field(:playable_civilization_required, 960) {
|
|
number 32, true
|
|
}
|
|
field(:all_caves_visible, 964) {
|
|
number 32, true
|
|
}
|
|
field(:show_embark_tunnel, 968) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 972) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_5, 369888) {
|
|
}
|
|
field(:history, 369920) {
|
|
global :WorldHistory
|
|
}
|
|
field(:entity_populations, 370240) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityPopulation
|
|
}
|
|
}
|
|
}
|
|
field(:reindex_pathfinding, 370252) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:frame_counter, 370256) {
|
|
number 32, true
|
|
}
|
|
field(:unk_5a39c, 370260) {
|
|
compound(:World_TUnk5a39c) {
|
|
field(:orphaned_flows, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :FlowInfo
|
|
}
|
|
}
|
|
}
|
|
field(:unk, 12) {
|
|
static_array(80000, 16) {
|
|
compound(:World_TUnk5a39c_TUnk) {
|
|
field(:unk1a, 0) {
|
|
number 16, false
|
|
}
|
|
field(:tag, 2) {
|
|
number 16, false
|
|
}
|
|
field(:unk2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:x, 8) {
|
|
number 16, true
|
|
}
|
|
field(:y, 10) {
|
|
number 16, true
|
|
}
|
|
field(:z, 12) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_1, 1280012) {
|
|
number 32, true
|
|
}
|
|
field(:pos1, 1280016) {
|
|
global :Coord
|
|
}
|
|
field(:pos2, 1280022) {
|
|
global :Coord
|
|
}
|
|
field(:anon_2, 1280028) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 1280032) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 1280036) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 1280040) {
|
|
number 16, false
|
|
}
|
|
field(:tag, 1280042) {
|
|
number 16, false
|
|
}
|
|
field(:anon_6, 1280044) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:anon_7, 1280046) {
|
|
number 16, false
|
|
}
|
|
field(:anon_8, 1280048) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:anon_9, 1280050) {
|
|
number 16, true
|
|
}
|
|
field(:plant_update_step, 1280052) {
|
|
number 16, true
|
|
}
|
|
field(:anon_10, 1280054) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:anon_11, 1280056) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:cur_savegame, 1650320) {
|
|
compound(:World_TCurSavegame) {
|
|
field(:save_dir, 0) {
|
|
stl_string
|
|
}
|
|
field(:anon_1, 4) {
|
|
}
|
|
field(:map_features, 8) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :FeatureInit
|
|
}
|
|
}
|
|
}
|
|
field(:anon_2, 20) {
|
|
static_array(18, 12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_192cc4, 1650556) {
|
|
number 32, true
|
|
}
|
|
field(:arena_spawn, 1650560) {
|
|
compound(:World_TArenaSpawn) {
|
|
field(:race, 0) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
def race_tg ; race.map { |i| df.world.raws.creatures.all[i] } ; end
|
|
field(:caste, 12) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:type, 24) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 28) {
|
|
stl_string
|
|
}
|
|
field(:item_types, 32) {
|
|
static_array(105, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TArenaSpawn_TItemTypes) {
|
|
sizeof 16
|
|
|
|
field(:item_type, 0) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
field(:item_subtype, 2) {
|
|
number 16, true
|
|
}
|
|
field(:mattype, 4) {
|
|
number 16, true
|
|
}
|
|
field(:matindex, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 12) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_2, 1292) {
|
|
stl_vector
|
|
}
|
|
field(:anon_3, 1304) {
|
|
stl_vector
|
|
}
|
|
field(:anon_4, 1316) {
|
|
stl_vector
|
|
}
|
|
field(:equipment, 1328) {
|
|
compound(:World_TArenaSpawn_TEquipment) {
|
|
field(:skills, 0) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, JobSkill
|
|
}
|
|
}
|
|
field(:skill_levels, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:item_types, 24) {
|
|
stl_vector(2) {
|
|
number 16, true, nil, ItemType
|
|
}
|
|
}
|
|
field(:item_subtypes, 36) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:item_materials, 48) {
|
|
global :MaterialVecRef
|
|
}
|
|
field(:item_counts, 72) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:side, 1412) {
|
|
number 32, true
|
|
}
|
|
field(:interaction, 1416) {
|
|
number 32, true
|
|
}
|
|
field(:interactions, 1420) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:creature_cnt, 1432) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_19325c, 1652004) {
|
|
compound(:World_TUnk19325c) {
|
|
field(:anon_1, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnk19325c_TAnon1) {
|
|
sizeof 24
|
|
|
|
field(:anon_1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 8) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 20) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_2, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnk19325c_TAnon2) {
|
|
sizeof 8
|
|
|
|
field(:anon_1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_3, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:World_TUnk19325c_TAnon3) {
|
|
sizeof 16
|
|
|
|
field(:anon_1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 12) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_4, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 40) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 44) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class WorldData < MemHack::Compound
|
|
sizeof 564
|
|
|
|
field(:name, 0) {
|
|
global :LanguageName
|
|
}
|
|
field(:unk1, 60) {
|
|
static_array(15, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:next_site_id, 76) {
|
|
number 32, true
|
|
}
|
|
field(:next_site_unk136_id, 80) {
|
|
number 32, true
|
|
}
|
|
field(:next_unk_140_id, 84) {
|
|
number 32, true
|
|
}
|
|
field(:next_unk_150_id, 88) {
|
|
number 32, true
|
|
}
|
|
field(:anon_1, 92) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 96) {
|
|
number 32, true
|
|
}
|
|
field(:world_width, 100) {
|
|
number 32, true
|
|
}
|
|
field(:world_height, 104) {
|
|
number 32, true
|
|
}
|
|
field(:unk2, 108) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldData_TUnk2) {
|
|
sizeof 84
|
|
|
|
field(:unk_0, 0) {
|
|
number 16, true
|
|
}
|
|
field(:unk_2, 2) {
|
|
number 16, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 16, true
|
|
}
|
|
field(:unk_c, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unk_10, 12) {
|
|
number 32, true
|
|
}
|
|
field(:unk_14, 16) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk_24, 28) {
|
|
number 32, true
|
|
}
|
|
field(:flags, 32) {
|
|
df_flagarray
|
|
}
|
|
field(:unk_30, 40) {
|
|
stl_vector
|
|
}
|
|
field(:unk_40, 52) {
|
|
stl_vector
|
|
}
|
|
field(:unk_70, 64) {
|
|
number 16, true
|
|
}
|
|
field(:unk_72, 66) {
|
|
number 16, true
|
|
}
|
|
field(:unk_74, 68) {
|
|
number 16, true
|
|
}
|
|
field(:unk_7c, 72) {
|
|
number 32, true
|
|
}
|
|
field(:unk_80, 76) {
|
|
number 32, true
|
|
}
|
|
field(:unk_84, 80) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_3, 120) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 124) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 128) {
|
|
number 16, true
|
|
}
|
|
field(:anon_6, 130) {
|
|
number 16, true
|
|
}
|
|
field(:anon_7, 132) {
|
|
number 16, true
|
|
}
|
|
field(:anon_8, 134) {
|
|
number 16, true
|
|
}
|
|
field(:anon_9, 136) {
|
|
number 16, true
|
|
}
|
|
field(:anon_10, 138) {
|
|
number 16, true
|
|
}
|
|
field(:anon_11, 140) {
|
|
number 16, true
|
|
}
|
|
field(:anon_12, 142) {
|
|
number 16, true
|
|
}
|
|
field(:world_width2, 144) {
|
|
number 32, true
|
|
}
|
|
field(:world_height2, 148) {
|
|
number 32, true
|
|
}
|
|
field(:anon_13, 152) {
|
|
pointer_ary(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:anon_14, 156) {
|
|
pointer_ary(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:anon_15, 160) {
|
|
pointer_ary(4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:anon_16, 164) {
|
|
pointer_ary(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:region_details, 168) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldRegionDetails
|
|
}
|
|
}
|
|
}
|
|
field(:unk_dc, 180) {
|
|
number 32, true
|
|
}
|
|
field(:unk_e0, 184) {
|
|
number 32, true
|
|
}
|
|
field(:unk_e4, 188) {
|
|
number 32, true
|
|
}
|
|
field(:unk_e8, 192) {
|
|
number 32, true
|
|
}
|
|
field(:unk_ec, 196) {
|
|
number 32, true
|
|
}
|
|
field(:unk_f0, 200) {
|
|
number 32, true
|
|
}
|
|
field(:construction_squares, 204) {
|
|
compound(:WorldData_TConstructionSquares) {
|
|
field(:width, 0) {
|
|
number 16, true
|
|
}
|
|
field(:height, 2) {
|
|
number 16, true
|
|
}
|
|
field(:table, 4) {
|
|
pointer_ary(4) {
|
|
pointer_ary(12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:constructions, 212) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:next_construction_id, 224) {
|
|
number 32, true
|
|
}
|
|
field(:unk_110, 228) {
|
|
static_array(2, 8) {
|
|
compound(:WorldData_TUnk110) {
|
|
field(:table, 0) {
|
|
pointer_ary(4) {
|
|
pointer_ary(24) {
|
|
compound(:WorldData_TUnk110_TTable) {
|
|
sizeof 24
|
|
|
|
field(:unk1, 0) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk2, 12) {
|
|
stl_vector(4) {
|
|
pointer_ary(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:width, 4) {
|
|
number 16, true
|
|
}
|
|
field(:height, 6) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:sites, 244) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldSite
|
|
}
|
|
}
|
|
}
|
|
field(:site_unk130, 256) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldSiteUnk130
|
|
}
|
|
}
|
|
}
|
|
field(:unk_140, 268) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldData_TUnk140) {
|
|
sizeof 1232
|
|
|
|
field(:index, 0) {
|
|
number 32, true
|
|
}
|
|
field(:resource_allotments, 4) {
|
|
static_array(100, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ResourceAllotmentSpecifier
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk1, 1204) {
|
|
number 32, true
|
|
}
|
|
field(:unk2, 1208) {
|
|
number 32, true
|
|
}
|
|
field(:unk3, 1212) {
|
|
number 32, true
|
|
}
|
|
field(:unk_650, 1216) {
|
|
number 32, true
|
|
}
|
|
field(:unk_654, 1220) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_150, 280) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldData_TUnk150) {
|
|
sizeof 44
|
|
|
|
field(:index, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldData_TUnk150_TUnk8) {
|
|
sizeof 12
|
|
|
|
field(:index, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_18, 20) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldData_TUnk150_TUnk18) {
|
|
sizeof 12
|
|
|
|
field(:index, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_28, 32) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldData_TUnk150_TUnk28) {
|
|
sizeof 8
|
|
|
|
field(:unk_0, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_17, 292) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:anon_18, 304) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:building_data, 316) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:landmasses, 328) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldLandmass
|
|
}
|
|
}
|
|
}
|
|
field(:regions, 340) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldRegion
|
|
}
|
|
}
|
|
}
|
|
field(:underground_regions, 352) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldUndergroundRegion
|
|
}
|
|
}
|
|
}
|
|
field(:geo_biomes, 364) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldGeoBiome
|
|
}
|
|
}
|
|
}
|
|
field(:mountain_peaks, 376) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldData_TMountainPeaks) {
|
|
sizeof 76
|
|
|
|
field(:name, 0) {
|
|
global :LanguageName
|
|
}
|
|
field(:pos, 60) {
|
|
global :Coord2d
|
|
}
|
|
field(:flags, 64) {
|
|
df_flagarray
|
|
}
|
|
field(:unk_78, 72) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:rivers, 388) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldRiver
|
|
}
|
|
}
|
|
}
|
|
field(:region_map, 400) {
|
|
pointer_ary(4) {
|
|
pointer_ary(88) {
|
|
compound(:WorldData_TRegionMap) {
|
|
sizeof 88
|
|
|
|
field(:unk_0, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
}
|
|
field(:sites, 8) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldSite
|
|
}
|
|
}
|
|
}
|
|
field(:flags, 20) {
|
|
df_flagarray
|
|
}
|
|
field(:elevation, 28) {
|
|
number 16, true
|
|
}
|
|
field(:wetness, 30) {
|
|
number 16, true
|
|
}
|
|
field(:vegetation, 32) {
|
|
number 16, true
|
|
}
|
|
field(:temperature, 34) {
|
|
number 16, true
|
|
}
|
|
field(:evilness, 36) {
|
|
number 16, true
|
|
}
|
|
field(:hilliness, 38) {
|
|
number 16, true
|
|
}
|
|
field(:unk_2c, 40) {
|
|
number 16, true
|
|
}
|
|
field(:savagery, 42) {
|
|
number 16, true
|
|
}
|
|
field(:unk_30, 44) {
|
|
number 16, true
|
|
}
|
|
field(:unk_32, 46) {
|
|
number 16, true
|
|
}
|
|
field(:unk_34, 48) {
|
|
number 16, true
|
|
}
|
|
field(:unk_36, 50) {
|
|
number 16, true
|
|
}
|
|
field(:unk_38, 52) {
|
|
number 16, true
|
|
}
|
|
field(:unk_3a, 54) {
|
|
number 16, true
|
|
}
|
|
field(:saltiness, 56) {
|
|
number 16, true
|
|
}
|
|
field(:unk_3e, 58) {
|
|
global :Coord
|
|
}
|
|
field(:unk_44, 64) {
|
|
global :Coord
|
|
}
|
|
field(:unk_4a, 70) {
|
|
global :Coord
|
|
}
|
|
field(:region_id, 76) {
|
|
number 32, true
|
|
}
|
|
def region_tg ; df.world.world_data.regions[region_id] ; end
|
|
field(:landmass_id, 80) {
|
|
number 32, true
|
|
}
|
|
def landmass_tg ; df.world.world_data.landmasses[landmass_id] ; end
|
|
field(:geo_index, 84) {
|
|
number 16, true
|
|
}
|
|
def geo_index_tg ; df.world.world_data.geo_biomes[geo_index] ; end
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_1c4, 404) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:unk_1c8, 408) {
|
|
}
|
|
field(:unk_1cc, 412) {
|
|
stl_vector
|
|
}
|
|
field(:unk_1dc, 424) {
|
|
pointer_ary(4) {
|
|
pointer_ary(12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
field(:unk_1e0, 428) {
|
|
pointer_ary(4) {
|
|
pointer_ary(12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
field(:unk_1e4, 432) {
|
|
pointer_ary(4) {
|
|
pointer_ary(12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
field(:unk_1e8, 436) {
|
|
pointer_ary(4) {
|
|
pointer_ary(12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
field(:unk_1ec, 440) {
|
|
pointer_ary(4) {
|
|
pointer_ary(12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
field(:unk_1f0, 444) {
|
|
pointer_ary(4) {
|
|
pointer_ary(12) {
|
|
stl_vector
|
|
}
|
|
}
|
|
}
|
|
field(:active_site, 448) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldSite
|
|
}
|
|
}
|
|
}
|
|
field(:unk_204, 460) {
|
|
pointer_ary(4) {
|
|
pointer_ary(16) {
|
|
compound(:WorldData_TUnk204) {
|
|
sizeof 16
|
|
|
|
field(:x, 0) {
|
|
number 16, true
|
|
}
|
|
field(:y, 2) {
|
|
number 16, true
|
|
}
|
|
field(:features, 4) {
|
|
pointer {
|
|
compound(:WorldData_TUnk204_TFeatures) {
|
|
sizeof 33792
|
|
|
|
field(:feature_init, 0) {
|
|
static_array(16, 192) {
|
|
static_array(16, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :FeatureInit
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk, 3072) {
|
|
static_array(16, 1920) {
|
|
static_array(16, 120) {
|
|
static_array(30, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_8, 8) {
|
|
pointer_ary(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_c, 12) {
|
|
pointer_ary(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:flags, 464) {
|
|
df_flagarray
|
|
}
|
|
field(:old_sites, 472) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def old_sites_tg ; old_sites.map { |i| df.world.world_data.sites[i] } ; end
|
|
field(:old_site_x, 484) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:old_site_y, 496) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:land_rgns, 508) {
|
|
global :Coord2dPath
|
|
}
|
|
field(:unk_260, 532) {
|
|
number 32, true
|
|
}
|
|
field(:unk_264, 536) {
|
|
number 8, false
|
|
}
|
|
field(:unk_265, 537) {
|
|
}
|
|
field(:unk_268, 540) {
|
|
}
|
|
field(:unk_26c, 544) {
|
|
number 8, false
|
|
}
|
|
field(:unk_26d, 545) {
|
|
}
|
|
field(:unk_270, 548) {
|
|
number 32, true
|
|
}
|
|
field(:unk_274, 552) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldData_TUnk274) {
|
|
sizeof 44
|
|
|
|
field(:unk_0, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistoricalFigure
|
|
}
|
|
}
|
|
}
|
|
field(:unk_10, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldData_TUnk274_TUnk10) {
|
|
sizeof 12
|
|
|
|
field(:unk_0, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_20, 24) {
|
|
pointer {
|
|
global :HistoricalEntity
|
|
}
|
|
}
|
|
field(:unk_24, 28) {
|
|
number 32, true
|
|
}
|
|
field(:unk_28, 32) {
|
|
pointer {
|
|
global :LanguageName
|
|
}
|
|
}
|
|
field(:unk_2c, 36) {
|
|
number 32, true
|
|
}
|
|
field(:unk_30, 40) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class WorldGeoBiome < MemHack::Compound
|
|
sizeof 16
|
|
|
|
field(:unk1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:index, 2) {
|
|
number 16, true
|
|
}
|
|
field(:layers, 4) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldGeoLayer
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class WorldGeoLayer < MemHack::Compound
|
|
sizeof 60
|
|
|
|
field(:type, 0) {
|
|
number 16, true, nil, GeoLayerType
|
|
}
|
|
field(:mat_index, 4) {
|
|
number 32, true
|
|
}
|
|
def mat_index_tg ; df.world.raws.inorganics[mat_index] ; end
|
|
field(:vein_mat, 8) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def vein_mat_tg ; vein_mat.map { |i| df.world.raws.inorganics[i] } ; end
|
|
field(:vein_nested_in, 20) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:vein_type, 32) {
|
|
stl_vector(1) {
|
|
number 8, false, nil, InclusionType
|
|
}
|
|
}
|
|
field(:vein_unk_38, 44) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:top_height, 56) {
|
|
number 16, true
|
|
}
|
|
field(:bottom_height, 58) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class WorldHistory < MemHack::Compound
|
|
sizeof 320
|
|
|
|
field(:events, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistoryEvent
|
|
}
|
|
}
|
|
}
|
|
field(:events2, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistoryEvent
|
|
}
|
|
}
|
|
}
|
|
field(:figures, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistoricalFigure
|
|
}
|
|
}
|
|
}
|
|
field(:event_collections, 36) {
|
|
compound(:WorldHistory_TEventCollections) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistoryEventCollection
|
|
}
|
|
}
|
|
}
|
|
field(:other, 12) {
|
|
static_array(8, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :HistoryEventCollection
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:ages, 144) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:unk1, 156) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk2, 168) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:anon_1, 180) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 184) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 188) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 192) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 196) {
|
|
stl_vector
|
|
}
|
|
field(:anon_6, 208) {
|
|
stl_vector
|
|
}
|
|
field(:anon_7, 220) {
|
|
stl_vector
|
|
}
|
|
field(:anon_8, 232) {
|
|
stl_vector
|
|
}
|
|
field(:anon_9, 244) {
|
|
stl_vector
|
|
}
|
|
field(:anon_10, 256) {
|
|
stl_vector
|
|
}
|
|
field(:anon_11, 268) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
field(:anon_12, 272) {
|
|
stl_vector
|
|
}
|
|
field(:anon_13, 284) {
|
|
stl_vector
|
|
}
|
|
field(:anon_14, 296) {
|
|
stl_vector
|
|
}
|
|
field(:anon_15, 308) {
|
|
number 32, true
|
|
}
|
|
field(:anon_16, 312) {
|
|
number 32, true
|
|
}
|
|
field(:anon_17, 316) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class WorldLandmass < MemHack::Compound
|
|
sizeof 92
|
|
|
|
field(:name, 0) {
|
|
global :LanguageName
|
|
}
|
|
field(:index, 60) {
|
|
number 32, true
|
|
}
|
|
field(:area, 64) {
|
|
number 32, true
|
|
}
|
|
field(:unk_74, 68) {
|
|
stl_vector
|
|
}
|
|
field(:unk_84, 80) {
|
|
stl_vector
|
|
}
|
|
end
|
|
|
|
class WorldPopulation < MemHack::Compound
|
|
sizeof 32
|
|
|
|
field(:type, 0) {
|
|
number 16, true, nil, WorldPopulationType
|
|
}
|
|
field(:race, 2) {
|
|
number 16, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:plant, 2) {
|
|
number 16, true
|
|
}
|
|
def plant_tg ; df.world.raws.plants.all[plant] ; end
|
|
field(:count_min, 4) {
|
|
number 32, true, 10000001
|
|
}
|
|
field(:count_max, 8) {
|
|
number 32, true, 10000001
|
|
}
|
|
field(:owner, 12) {
|
|
number 32, true
|
|
}
|
|
def owner_tg ; df.world.entities.all[owner] ; end
|
|
field(:unk_10, 16) {
|
|
number 32, true, -1
|
|
}
|
|
field(:unk_14, 20) {
|
|
number 32, true, -1
|
|
}
|
|
field(:anon_1, 24) {
|
|
number 32, true, -1
|
|
}
|
|
field(:anon_2, 28) {
|
|
number 32, true, -1
|
|
}
|
|
end
|
|
|
|
class WorldPopulationRef < MemHack::Compound
|
|
sizeof 24
|
|
|
|
field(:region_x, 0) {
|
|
number 16, true
|
|
}
|
|
field(:region_y, 2) {
|
|
number 16, true
|
|
}
|
|
field(:feature_idx, 4) {
|
|
number 16, true, -1
|
|
}
|
|
field(:cave_id, 8) {
|
|
number 32, true
|
|
}
|
|
def cave_tg ; df.world.world_data.underground_regions[cave_id] ; end
|
|
field(:unk_28, 12) {
|
|
number 32, true
|
|
}
|
|
field(:population_idx, 16) {
|
|
number 32, true
|
|
}
|
|
field(:unk_30, 20) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class WorldRaws < MemHack::Compound
|
|
sizeof 21832
|
|
|
|
field(:material_templates, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :MaterialTemplate
|
|
}
|
|
}
|
|
}
|
|
field(:inorganics, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :InorganicRaw
|
|
}
|
|
}
|
|
}
|
|
field(:inorganics_subset, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :InorganicRaw
|
|
}
|
|
}
|
|
}
|
|
field(:plants, 36) {
|
|
compound(:WorldRaws_TPlants) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :PlantRaw
|
|
}
|
|
}
|
|
}
|
|
field(:bushes, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :PlantRaw
|
|
}
|
|
}
|
|
}
|
|
field(:bushes_idx, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def bushes_tgx ; bushes_idx.map { |i| df.world.raws.plants.all[i] } ; end
|
|
field(:trees, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :PlantRaw
|
|
}
|
|
}
|
|
}
|
|
field(:trees_idx, 48) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def trees_tgx ; trees_idx.map { |i| df.world.raws.plants.all[i] } ; end
|
|
field(:grasses, 60) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :PlantRaw
|
|
}
|
|
}
|
|
}
|
|
field(:grasses_idx, 72) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def grasses_tgx ; grasses_idx.map { |i| df.world.raws.plants.all[i] } ; end
|
|
}
|
|
}
|
|
field(:tissue_templates, 120) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :TissueTemplate
|
|
}
|
|
}
|
|
}
|
|
field(:body_detail_plans, 132) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BodyDetailPlan
|
|
}
|
|
}
|
|
}
|
|
field(:body_templates, 144) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BodyTemplate
|
|
}
|
|
}
|
|
}
|
|
field(:bodyglosses, 156) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldRaws_TBodyglosses) {
|
|
sizeof 20
|
|
|
|
field(:id, 0) {
|
|
stl_string
|
|
}
|
|
field(:old_singular, 4) {
|
|
stl_string
|
|
}
|
|
field(:new_singular, 8) {
|
|
stl_string
|
|
}
|
|
field(:old_plural, 12) {
|
|
stl_string
|
|
}
|
|
field(:new_plural, 16) {
|
|
stl_string
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:creature_variations, 168) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CreatureVariation
|
|
}
|
|
}
|
|
}
|
|
field(:creatures, 180) {
|
|
compound(:WorldRaws_TCreatures) {
|
|
field(:alphabetic, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CreatureRaw
|
|
}
|
|
}
|
|
}
|
|
field(:all, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CreatureRaw
|
|
}
|
|
}
|
|
}
|
|
field(:unk1, 24) {
|
|
number 32, true
|
|
}
|
|
field(:list_creature, 28) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:list_caste, 40) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:itemdefs, 232) {
|
|
compound(:WorldRaws_TItemdefs) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Itemdef
|
|
}
|
|
}
|
|
}
|
|
field(:weapons, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefWeaponst
|
|
}
|
|
}
|
|
}
|
|
field(:trapcomps, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefTrapcompst
|
|
}
|
|
}
|
|
}
|
|
field(:toys, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefToyst
|
|
}
|
|
}
|
|
}
|
|
field(:tools, 48) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefToolst
|
|
}
|
|
}
|
|
}
|
|
field(:tools_by_type, 60) {
|
|
static_array(17, 12, ToolUses) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefToolst
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:instruments, 264) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefInstrumentst
|
|
}
|
|
}
|
|
}
|
|
field(:armor, 276) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefArmorst
|
|
}
|
|
}
|
|
}
|
|
field(:ammo, 288) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefAmmost
|
|
}
|
|
}
|
|
}
|
|
field(:siege_ammo, 300) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefSiegeammost
|
|
}
|
|
}
|
|
}
|
|
field(:gloves, 312) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefGlovesst
|
|
}
|
|
}
|
|
}
|
|
field(:shoes, 324) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefShoesst
|
|
}
|
|
}
|
|
}
|
|
field(:shields, 336) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefShieldst
|
|
}
|
|
}
|
|
}
|
|
field(:helms, 348) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefHelmst
|
|
}
|
|
}
|
|
}
|
|
field(:pants, 360) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefPantsst
|
|
}
|
|
}
|
|
}
|
|
field(:food, 372) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :ItemdefFoodst
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:entities, 616) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :EntityRaw
|
|
}
|
|
}
|
|
}
|
|
field(:language, 628) {
|
|
compound(:WorldRaws_TLanguage) {
|
|
field(:words, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :LanguageWord
|
|
}
|
|
}
|
|
}
|
|
field(:symbols, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :LanguageSymbol
|
|
}
|
|
}
|
|
}
|
|
field(:translations, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :LanguageTranslation
|
|
}
|
|
}
|
|
}
|
|
field(:word_table, 36) {
|
|
static_array(2, 8496) {
|
|
static_array(59, 144) {
|
|
compound(:WorldRaws_TLanguage_TWordTable) {
|
|
field(:words, 0) {
|
|
static_array(6, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:parts, 72) {
|
|
static_array(6, 12) {
|
|
stl_vector(4) {
|
|
number 32, true, nil, PartOfSpeech
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:colors, 17028) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :DescriptorColor
|
|
}
|
|
}
|
|
}
|
|
field(:shapes, 17040) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :DescriptorShape
|
|
}
|
|
}
|
|
}
|
|
field(:patterns, 17052) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :DescriptorPattern
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:reactions, 17692) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Reaction
|
|
}
|
|
}
|
|
}
|
|
field(:buildings, 17704) {
|
|
compound(:WorldRaws_TBuildings) {
|
|
field(:all, 0) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingDef
|
|
}
|
|
}
|
|
}
|
|
field(:workshops, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingDefWorkshopst
|
|
}
|
|
}
|
|
}
|
|
field(:furnaces, 24) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :BuildingDefFurnacest
|
|
}
|
|
}
|
|
}
|
|
field(:next_id, 36) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
field(:interactions, 17744) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Interaction
|
|
}
|
|
}
|
|
}
|
|
field(:mat_table, 17756) {
|
|
global :SpecialMatTable
|
|
}
|
|
field(:syndromes, 21724) {
|
|
compound(:WorldRaws_TSyndromes) {
|
|
field(:mat_types, 0) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:mat_indexes, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:interactions, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def interactions_tg ; interactions.map { |i| df.world.raws.interactions[i] } ; end
|
|
field(:all, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Syndrome
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:effects, 21772) {
|
|
compound(:WorldRaws_TEffects) {
|
|
field(:mat_types, 0) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:mat_indexes, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:interactions, 24) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def interactions_tg ; interactions.map { |i| df.world.raws.interactions[i] } ; end
|
|
field(:all, 36) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :CreatureInteractionEffect
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_1, 21820) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 21824) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 21828) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class WorldRegion < MemHack::Compound
|
|
sizeof 448
|
|
|
|
field(:name, 0) {
|
|
global :LanguageName
|
|
}
|
|
field(:index, 60) {
|
|
number 32, true
|
|
}
|
|
field(:unk_70, 64) {
|
|
number 16, true
|
|
}
|
|
field(:region_coords, 68) {
|
|
global :Coord2dPath
|
|
}
|
|
field(:unk_94, 92) {
|
|
number 32, true
|
|
}
|
|
field(:unk_98, 96) {
|
|
number 32, true
|
|
}
|
|
field(:unk_9c, 100) {
|
|
number 32, true
|
|
}
|
|
field(:unk_a0, 104) {
|
|
number 32, true
|
|
}
|
|
field(:unk_a4, 108) {
|
|
number 32, true
|
|
}
|
|
field(:population, 112) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldPopulation
|
|
}
|
|
}
|
|
}
|
|
field(:unk_118, 124) {
|
|
static_array(51, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_184, 328) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_194, 340) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_1a4, 352) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_1b4, 364) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_1c4, 376) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_1d4, 388) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_1e4, 400) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1e8, 404) {
|
|
number 16, true
|
|
}
|
|
field(:unk_1ec, 406) {
|
|
number 16, true
|
|
}
|
|
field(:unk_1f0, 408) {
|
|
stl_vector
|
|
}
|
|
field(:unk_200, 420) {
|
|
}
|
|
field(:mid_x, 424) {
|
|
number 32, true
|
|
}
|
|
field(:mid_y, 428) {
|
|
number 32, true
|
|
}
|
|
field(:min_x, 432) {
|
|
number 32, true
|
|
}
|
|
field(:max_x, 436) {
|
|
number 32, true
|
|
}
|
|
field(:min_y, 440) {
|
|
number 32, true
|
|
}
|
|
field(:max_y, 444) {
|
|
number 32, true
|
|
}
|
|
end
|
|
|
|
class WorldRegionDetails < MemHack::Compound
|
|
sizeof 13528
|
|
|
|
field(:biome, 0) {
|
|
static_array(17, 17) {
|
|
static_array(17, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
field(:elevation, 290) {
|
|
static_array(17, 34) {
|
|
static_array(17, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:unk3, 868) {
|
|
static_array(256, 4) {
|
|
number 32, false
|
|
}
|
|
}
|
|
field(:unk4, 1892) {
|
|
static_array(1088, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk5, 4068) {
|
|
static_array(256, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:unk6, 4324) {
|
|
static_array(256, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:unk7, 4580) {
|
|
static_array(256, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:pos, 4836) {
|
|
global :Coord2d
|
|
}
|
|
field(:anon_1, 4840) {
|
|
number 16, true
|
|
}
|
|
field(:anon_2, 4842) {
|
|
number 16, true
|
|
}
|
|
field(:anon_3, 4844) {
|
|
number 16, true
|
|
}
|
|
field(:anon_4, 4846) {
|
|
number 16, true
|
|
}
|
|
field(:anon_5, 4848) {
|
|
number 16, true
|
|
}
|
|
field(:rivers_vertical, 4850) {
|
|
compound(:WorldRegionDetails_TRiversVertical) {
|
|
field(:x_min, 0) {
|
|
static_array(16, 34) {
|
|
static_array(17, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:x_max, 544) {
|
|
static_array(16, 34) {
|
|
static_array(17, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:active, 1088) {
|
|
static_array(16, 17) {
|
|
static_array(17, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
field(:local_id, 1360) {
|
|
static_array(16, 34) {
|
|
static_array(17, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:rivers_horizontal, 6754) {
|
|
compound(:WorldRegionDetails_TRiversHorizontal) {
|
|
field(:y_min, 0) {
|
|
static_array(17, 32) {
|
|
static_array(16, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:y_max, 544) {
|
|
static_array(17, 32) {
|
|
static_array(16, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:active, 1088) {
|
|
static_array(17, 16) {
|
|
static_array(16, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
}
|
|
field(:local_id, 1360) {
|
|
static_array(17, 32) {
|
|
static_array(16, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk11, 8658) {
|
|
static_array(256, 1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
field(:unk_objects, 8916) {
|
|
static_array(16, 192) {
|
|
static_array(16, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:lava_stone, 11988) {
|
|
number 16, true
|
|
}
|
|
def lava_stone_tg ; df.world.raws.inorganics[lava_stone] ; end
|
|
field(:elevation2, 11990) {
|
|
static_array(16, 32) {
|
|
static_array(16, 2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
}
|
|
field(:undef13, 12504) {
|
|
static_array(256, 4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
end
|
|
|
|
class WorldRiver < MemHack::Compound
|
|
sizeof 132
|
|
|
|
field(:name, 0) {
|
|
global :LanguageName
|
|
}
|
|
field(:path, 60) {
|
|
global :Coord2dPath
|
|
}
|
|
field(:unk_8c, 84) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_9c, 96) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:local_id, 108) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:end_pos, 120) {
|
|
global :Coord2d
|
|
}
|
|
field(:flags, 124) {
|
|
df_flagarray
|
|
}
|
|
end
|
|
|
|
class WorldSite < MemHack::Compound
|
|
sizeof 372
|
|
|
|
field(:name, 0) {
|
|
global :LanguageName
|
|
}
|
|
field(:civ_id, 60) {
|
|
number 32, true
|
|
}
|
|
def civ_tg ; df.world.entities.all[civ_id] ; end
|
|
field(:owner1, 64) {
|
|
number 32, true
|
|
}
|
|
def owner1_tg ; df.world.entities.all[owner1] ; end
|
|
field(:owner2, 68) {
|
|
number 32, true
|
|
}
|
|
def owner2_tg ; df.world.entities.all[owner2] ; end
|
|
field(:anon_1, 72) {
|
|
number 32, true
|
|
}
|
|
field(:type, 76) {
|
|
class ::DFHack::WorldSite_TType < MemHack::Enum
|
|
ENUM = Hash.new
|
|
NUME = Hash.new
|
|
ENUM[0] = :PlayerFortress ; NUME[:PlayerFortress] = 0
|
|
ENUM[1] = :DarkFortress ; NUME[:DarkFortress] = 1
|
|
ENUM[2] = :Cave ; NUME[:Cave] = 2
|
|
ENUM[3] = :MountainHalls ; NUME[:MountainHalls] = 3
|
|
ENUM[4] = :ForestRetreat ; NUME[:ForestRetreat] = 4
|
|
ENUM[5] = :Town ; NUME[:Town] = 5
|
|
ENUM[6] = :Unk6 ; NUME[:Unk6] = 6
|
|
ENUM[7] = :LairShrine ; NUME[:LairShrine] = 7
|
|
ENUM[8] = :Fortress ; NUME[:Fortress] = 8
|
|
ENUM[9] = :Camp ; NUME[:Camp] = 9
|
|
end
|
|
|
|
number 16, true, nil, WorldSite_TType
|
|
}
|
|
field(:pos, 78) {
|
|
global :Coord2d
|
|
}
|
|
field(:id, 84) {
|
|
number 32, true
|
|
}
|
|
field(:nemesis, 88) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
def nemesis_tg ; nemesis.map { |i| df.world.nemesis.all[i] } ; end
|
|
field(:unk_94, 100) {
|
|
stl_vector
|
|
}
|
|
field(:animals, 112) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :WorldPopulation
|
|
}
|
|
}
|
|
}
|
|
field(:inhabitants, 124) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldSite_TInhabitants) {
|
|
sizeof 20
|
|
|
|
field(:count, 0) {
|
|
number 32, true
|
|
}
|
|
field(:race, 4) {
|
|
number 32, true
|
|
}
|
|
def race_tg ; df.world.raws.creatures.all[race] ; end
|
|
field(:unk_8, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unk_c, 12) {
|
|
number 32, true
|
|
}
|
|
def unk_c_tg ; df.world.entities.all[unk_c] ; end
|
|
field(:unk_10, 16) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:unk_c4, 136) {
|
|
stl_vector
|
|
}
|
|
field(:unk_d4, 148) {
|
|
stl_vector
|
|
}
|
|
field(:index, 160) {
|
|
number 32, true
|
|
}
|
|
field(:unk_e8, 164) {
|
|
number 16, true
|
|
}
|
|
field(:unk_ea, 166) {
|
|
number 16, true
|
|
}
|
|
field(:unk_ec, 168) {
|
|
number 16, true
|
|
}
|
|
field(:unk_ee, 170) {
|
|
number 16, true
|
|
}
|
|
field(:unk_f0, 172) {
|
|
number 32, true
|
|
}
|
|
field(:unk_f4, 176) {
|
|
number 32, true
|
|
}
|
|
field(:unk_f8, 180) {
|
|
number 32, true
|
|
}
|
|
field(:unk_fc, 184) {
|
|
number 32, true
|
|
}
|
|
field(:unk_100, 188) {
|
|
number 32, true
|
|
}
|
|
field(:unk_104, 192) {
|
|
number 32, false
|
|
}
|
|
field(:unk_108, 196) {
|
|
number 32, false
|
|
}
|
|
field(:unk_10c, 200) {
|
|
number 32, true
|
|
}
|
|
field(:unk_110, 204) {
|
|
number 32, true
|
|
}
|
|
field(:unk_114, 208) {
|
|
number 32, true
|
|
}
|
|
field(:unk_118, 212) {
|
|
number 32, true
|
|
}
|
|
field(:unk_11c, 216) {
|
|
number 32, true
|
|
}
|
|
field(:unk_120, 220) {
|
|
number 32, true
|
|
}
|
|
field(:unk_124, 224) {
|
|
number 32, true
|
|
}
|
|
field(:unk_128, 228) {
|
|
number 32, true
|
|
}
|
|
field(:unk_12c, 232) {
|
|
number 32, true
|
|
}
|
|
field(:unk_130, 236) {
|
|
number 32, true
|
|
}
|
|
field(:unk_134, 240) {
|
|
number 32, true
|
|
}
|
|
field(:unk_138, 244) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 248) {
|
|
number 32, true
|
|
}
|
|
field(:unk_13c, 252) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldSite_TUnk13c) {
|
|
sizeof 16
|
|
|
|
field(:unk_0, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unk_c, 12) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:flags, 264) {
|
|
df_flagarray
|
|
}
|
|
field(:unk_154, 272) {
|
|
stl_vector
|
|
}
|
|
field(:unk_164, 284) {
|
|
number 32, true
|
|
}
|
|
field(:unk_168, 288) {
|
|
number 32, true
|
|
}
|
|
field(:unk_16c, 292) {
|
|
number 32, true
|
|
}
|
|
field(:unk_170, 296) {
|
|
number 32, true
|
|
}
|
|
field(:unk_174, 300) {
|
|
number 32, true
|
|
}
|
|
field(:unk_178, 304) {
|
|
global :Coord
|
|
}
|
|
field(:unk_180, 312) {
|
|
pointer {
|
|
}
|
|
}
|
|
field(:unk_184, 316) {
|
|
pointer {
|
|
compound(:WorldSite_TUnk184) {
|
|
sizeof 32
|
|
|
|
field(:unk_0, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
number 16, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
stl_vector
|
|
}
|
|
field(:unk_14, 20) {
|
|
number 32, true
|
|
}
|
|
field(:unk_18, 24) {
|
|
number 32, true
|
|
}
|
|
field(:unk_1c, 28) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_3, 320) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
}
|
|
}
|
|
}
|
|
field(:anon_4, 332) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:unk_188, 344) {
|
|
pointer {
|
|
global :WorldSiteUnk130
|
|
}
|
|
}
|
|
field(:unk_18c, 348) {
|
|
stl_vector
|
|
}
|
|
field(:unk_19c, 360) {
|
|
stl_vector
|
|
}
|
|
end
|
|
|
|
class WorldSiteUnk130 < MemHack::Compound
|
|
sizeof 52
|
|
|
|
field(:index, 0) {
|
|
number 32, true
|
|
}
|
|
field(:unk_4, 4) {
|
|
static_array(4, 12) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldSiteUnk130_TUnk4) {
|
|
sizeof 24
|
|
|
|
field(:unk_0, 0) {
|
|
number 32, true
|
|
}
|
|
field(:index, 4) {
|
|
number 32, true
|
|
}
|
|
field(:unk_8, 8) {
|
|
number 32, true
|
|
}
|
|
field(:unk_c, 12) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
class WorldUndergroundRegion < MemHack::Compound
|
|
sizeof 152
|
|
|
|
field(:unk1, 0) {
|
|
number 16, true
|
|
}
|
|
field(:name, 4) {
|
|
global :LanguageName
|
|
}
|
|
field(:index, 64) {
|
|
number 32, true
|
|
}
|
|
field(:unk_74, 68) {
|
|
number 16, true
|
|
}
|
|
field(:unk_76, 70) {
|
|
number 16, true
|
|
}
|
|
field(:unk_78, 72) {
|
|
number 16, true
|
|
}
|
|
field(:unk_7a, 74) {
|
|
number 16, true
|
|
}
|
|
field(:unk_7c, 76) {
|
|
number 32, true
|
|
}
|
|
field(:unk_80, 80) {
|
|
number 16, true
|
|
}
|
|
field(:unk_82, 82) {
|
|
number 16, true
|
|
}
|
|
field(:unk_84, 84) {
|
|
number 16, true
|
|
}
|
|
field(:region_coords, 88) {
|
|
global :Coord2dPath
|
|
}
|
|
field(:region_min_z, 112) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:region_max_z, 124) {
|
|
stl_vector(2) {
|
|
number 16, true
|
|
}
|
|
}
|
|
field(:unk_c8, 136) {
|
|
stl_vector
|
|
}
|
|
field(:feature_init, 148) {
|
|
pointer {
|
|
global :FeatureInit
|
|
}
|
|
}
|
|
end
|
|
|
|
class WorldUnk20 < MemHack::Compound
|
|
sizeof 60
|
|
|
|
field(:anon_1, 0) {
|
|
number 8, false
|
|
}
|
|
field(:anon_2, 4) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_3, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 20) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_5, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 40) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldUnk20_TAnon7) {
|
|
sizeof 24
|
|
|
|
field(:anon_1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 20) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_8, 52) {
|
|
number 16, true
|
|
}
|
|
field(:anon_9, 54) {
|
|
number 16, true
|
|
}
|
|
field(:anon_10, 56) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class WorldUnkC0 < MemHack::Compound
|
|
sizeof 60
|
|
|
|
field(:anon_1, 0) {
|
|
number 8, false
|
|
}
|
|
field(:anon_2, 4) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_3, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 20) {
|
|
stl_vector(4) {
|
|
number 32, true
|
|
}
|
|
}
|
|
field(:anon_5, 32) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 36) {
|
|
number 32, true
|
|
}
|
|
field(:anon_7, 40) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
compound(:WorldUnkC0_TAnon7) {
|
|
sizeof 24
|
|
|
|
field(:anon_1, 0) {
|
|
number 32, true
|
|
}
|
|
field(:anon_2, 4) {
|
|
number 32, true
|
|
}
|
|
field(:anon_3, 8) {
|
|
number 32, true
|
|
}
|
|
field(:anon_4, 12) {
|
|
number 32, true
|
|
}
|
|
field(:anon_5, 16) {
|
|
number 32, true
|
|
}
|
|
field(:anon_6, 20) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
field(:anon_8, 52) {
|
|
number 16, true
|
|
}
|
|
field(:anon_9, 54) {
|
|
number 16, true
|
|
}
|
|
field(:anon_10, 56) {
|
|
number 16, true
|
|
}
|
|
end
|
|
|
|
class ZLevelFlags < MemHack::Compound
|
|
field(:_whole, 0) {
|
|
number 32, true
|
|
}
|
|
field(:update, 0) { bit 0 }
|
|
field(:can_stop, 0) { bit 1 }
|
|
field(:update_twice, 0) { bit 2 }
|
|
end
|
|
|
|
class GlobalObjects < MemHack::Compound
|
|
addr = DFHack.get_global_address('cursor')
|
|
if addr != 0
|
|
field(:cursor, addr) {
|
|
compound(:Global_TCursor) {
|
|
field(:x, 0) {
|
|
number 32, true
|
|
}
|
|
field(:y, 4) {
|
|
number 32, true
|
|
}
|
|
field(:z, 8) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('selection_rect')
|
|
if addr != 0
|
|
field(:selection_rect, addr) {
|
|
compound(:Global_TSelectionRect) {
|
|
field(:start_x, 0) {
|
|
number 32, true
|
|
}
|
|
field(:start_y, 4) {
|
|
number 32, true
|
|
}
|
|
field(:start_z, 8) {
|
|
number 32, true
|
|
}
|
|
field(:end_x, 12) {
|
|
number 32, true
|
|
}
|
|
field(:end_y, 16) {
|
|
number 32, true
|
|
}
|
|
field(:end_z, 20) {
|
|
number 32, true
|
|
}
|
|
}
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('gamemode')
|
|
if addr != 0
|
|
field(:gamemode, addr) {
|
|
number 32, true, nil, GameMode
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('gametype')
|
|
if addr != 0
|
|
field(:gametype, addr) {
|
|
number 32, true, nil, GameType
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_area_map_width')
|
|
if addr != 0
|
|
field(:ui_area_map_width, addr) {
|
|
number 8, false
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_menu_width')
|
|
if addr != 0
|
|
field(:ui_menu_width, addr) {
|
|
number 8, false
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('cursor_unit_list')
|
|
if addr != 0
|
|
field(:cursor_unit_list, addr) {
|
|
compound(:Global_TCursorUnitList) {
|
|
field(:anon_1, 0) {
|
|
}
|
|
field(:units, 65536) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('d_init')
|
|
if addr != 0
|
|
field(:d_init, addr) {
|
|
global :DInit
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('enabler')
|
|
if addr != 0
|
|
field(:enabler, addr) {
|
|
global :Enabler
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('gps')
|
|
if addr != 0
|
|
field(:gps, addr) {
|
|
global :Graphic
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('gview')
|
|
if addr != 0
|
|
field(:gview, addr) {
|
|
global :Interfacest
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('init')
|
|
if addr != 0
|
|
field(:init, addr) {
|
|
global :Init
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('timed_events')
|
|
if addr != 0
|
|
field(:timed_events, addr) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :TimedEvent
|
|
}
|
|
}
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui')
|
|
if addr != 0
|
|
field(:ui, addr) {
|
|
global :Ui
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_advmode')
|
|
if addr != 0
|
|
field(:ui_advmode, addr) {
|
|
global :UiAdvmode
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_build_selector')
|
|
if addr != 0
|
|
field(:ui_build_selector, addr) {
|
|
global :UiBuildSelector
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_building_assign_type')
|
|
if addr != 0
|
|
field(:ui_building_assign_type, addr) {
|
|
stl_vector(1) {
|
|
number 8, false
|
|
}
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_building_assign_is_marked')
|
|
if addr != 0
|
|
field(:ui_building_assign_is_marked, addr) {
|
|
stl_vector(1) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_building_assign_units')
|
|
if addr != 0
|
|
field(:ui_building_assign_units, addr) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Unit
|
|
}
|
|
}
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_building_assign_items')
|
|
if addr != 0
|
|
field(:ui_building_assign_items, addr) {
|
|
stl_vector(4) {
|
|
pointer {
|
|
global :Item
|
|
}
|
|
}
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_look_list')
|
|
if addr != 0
|
|
field(:ui_look_list, addr) {
|
|
global :UiLookList
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_sidebar_menus')
|
|
if addr != 0
|
|
field(:ui_sidebar_menus, addr) {
|
|
global :UiSidebarMenus
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('world')
|
|
if addr != 0
|
|
field(:world, addr) {
|
|
global :World
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('activity_next_id')
|
|
if addr != 0
|
|
field(:activity_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('art_image_chunk_next_id')
|
|
if addr != 0
|
|
field(:art_image_chunk_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('artifact_next_id')
|
|
if addr != 0
|
|
field(:artifact_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('building_next_id')
|
|
if addr != 0
|
|
field(:building_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('crime_next_id')
|
|
if addr != 0
|
|
field(:crime_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('entity_next_id')
|
|
if addr != 0
|
|
field(:entity_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('flow_guide_next_id')
|
|
if addr != 0
|
|
field(:flow_guide_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('formation_next_id')
|
|
if addr != 0
|
|
field(:formation_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('hist_event_collection_next_id')
|
|
if addr != 0
|
|
field(:hist_event_collection_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('hist_event_next_id')
|
|
if addr != 0
|
|
field(:hist_event_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('hist_figure_next_id')
|
|
if addr != 0
|
|
field(:hist_figure_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('identity_next_id')
|
|
if addr != 0
|
|
field(:identity_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('incident_next_id')
|
|
if addr != 0
|
|
field(:incident_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('interaction_instance_next_id')
|
|
if addr != 0
|
|
field(:interaction_instance_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('item_next_id')
|
|
if addr != 0
|
|
field(:item_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('job_next_id')
|
|
if addr != 0
|
|
field(:job_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('machine_next_id')
|
|
if addr != 0
|
|
field(:machine_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('nemesis_next_id')
|
|
if addr != 0
|
|
field(:nemesis_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('proj_next_id')
|
|
if addr != 0
|
|
field(:proj_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('schedule_next_id')
|
|
if addr != 0
|
|
field(:schedule_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('squad_next_id')
|
|
if addr != 0
|
|
field(:squad_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('task_next_id')
|
|
if addr != 0
|
|
field(:task_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('unit_chunk_next_id')
|
|
if addr != 0
|
|
field(:unit_chunk_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('unit_next_id')
|
|
if addr != 0
|
|
field(:unit_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('vehicle_next_id')
|
|
if addr != 0
|
|
field(:vehicle_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('written_content_next_id')
|
|
if addr != 0
|
|
field(:written_content_next_id, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('announcements')
|
|
if addr != 0
|
|
field(:announcements, addr) {
|
|
global :Announcements
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('cur_year')
|
|
if addr != 0
|
|
field(:cur_year, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('cur_year_tick')
|
|
if addr != 0
|
|
field(:cur_year_tick, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('current_weather')
|
|
if addr != 0
|
|
field(:current_weather, addr) {
|
|
static_array(5, 5) {
|
|
static_array(5, 1) {
|
|
number 8, false, nil, WeatherType
|
|
}
|
|
}
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('pause_state')
|
|
if addr != 0
|
|
field(:pause_state, addr) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('process_dig')
|
|
if addr != 0
|
|
field(:process_dig, addr) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('process_jobs')
|
|
if addr != 0
|
|
field(:process_jobs, addr) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_building_in_assign')
|
|
if addr != 0
|
|
field(:ui_building_in_assign, addr) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_building_in_resize')
|
|
if addr != 0
|
|
field(:ui_building_in_resize, addr) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_building_item_cursor')
|
|
if addr != 0
|
|
field(:ui_building_item_cursor, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_look_cursor')
|
|
if addr != 0
|
|
field(:ui_look_cursor, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_selected_unit')
|
|
if addr != 0
|
|
field(:ui_selected_unit, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_unit_view_mode')
|
|
if addr != 0
|
|
field(:ui_unit_view_mode, addr) {
|
|
global :UiUnitViewMode
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_workshop_in_add')
|
|
if addr != 0
|
|
field(:ui_workshop_in_add, addr) {
|
|
number 8, true, nil, BooleanEnum
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('ui_workshop_job_cursor')
|
|
if addr != 0
|
|
field(:ui_workshop_job_cursor, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('window_x')
|
|
if addr != 0
|
|
field(:window_x, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('window_y')
|
|
if addr != 0
|
|
field(:window_y, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
addr = DFHack.get_global_address('window_z')
|
|
if addr != 0
|
|
field(:window_z, addr) {
|
|
number 32, true
|
|
}
|
|
end
|
|
end
|
|
Global = GlobalObjects.new._at(0)
|
|
def self.cursor ; Global.cursor ; end
|
|
def self.cursor=(v) ; Global.cursor = v ; end
|
|
def self.selection_rect ; Global.selection_rect ; end
|
|
def self.selection_rect=(v) ; Global.selection_rect = v ; end
|
|
def self.gamemode ; Global.gamemode ; end
|
|
def self.gamemode=(v) ; Global.gamemode = v ; end
|
|
def self.gametype ; Global.gametype ; end
|
|
def self.gametype=(v) ; Global.gametype = v ; end
|
|
def self.ui_area_map_width ; Global.ui_area_map_width ; end
|
|
def self.ui_area_map_width=(v) ; Global.ui_area_map_width = v ; end
|
|
def self.ui_menu_width ; Global.ui_menu_width ; end
|
|
def self.ui_menu_width=(v) ; Global.ui_menu_width = v ; end
|
|
def self.cursor_unit_list ; Global.cursor_unit_list ; end
|
|
def self.cursor_unit_list=(v) ; Global.cursor_unit_list = v ; end
|
|
def self.d_init ; Global.d_init ; end
|
|
def self.d_init=(v) ; Global.d_init = v ; end
|
|
def self.enabler ; Global.enabler ; end
|
|
def self.enabler=(v) ; Global.enabler = v ; end
|
|
def self.gps ; Global.gps ; end
|
|
def self.gps=(v) ; Global.gps = v ; end
|
|
def self.gview ; Global.gview ; end
|
|
def self.gview=(v) ; Global.gview = v ; end
|
|
def self.init ; Global.init ; end
|
|
def self.init=(v) ; Global.init = v ; end
|
|
def self.timed_events ; Global.timed_events ; end
|
|
def self.timed_events=(v) ; Global.timed_events = v ; end
|
|
def self.ui ; Global.ui ; end
|
|
def self.ui=(v) ; Global.ui = v ; end
|
|
def self.ui_advmode ; Global.ui_advmode ; end
|
|
def self.ui_advmode=(v) ; Global.ui_advmode = v ; end
|
|
def self.ui_build_selector ; Global.ui_build_selector ; end
|
|
def self.ui_build_selector=(v) ; Global.ui_build_selector = v ; end
|
|
def self.ui_building_assign_type ; Global.ui_building_assign_type ; end
|
|
def self.ui_building_assign_type=(v) ; Global.ui_building_assign_type = v ; end
|
|
def self.ui_building_assign_is_marked ; Global.ui_building_assign_is_marked ; end
|
|
def self.ui_building_assign_is_marked=(v) ; Global.ui_building_assign_is_marked = v ; end
|
|
def self.ui_building_assign_units ; Global.ui_building_assign_units ; end
|
|
def self.ui_building_assign_units=(v) ; Global.ui_building_assign_units = v ; end
|
|
def self.ui_building_assign_items ; Global.ui_building_assign_items ; end
|
|
def self.ui_building_assign_items=(v) ; Global.ui_building_assign_items = v ; end
|
|
def self.ui_look_list ; Global.ui_look_list ; end
|
|
def self.ui_look_list=(v) ; Global.ui_look_list = v ; end
|
|
def self.ui_sidebar_menus ; Global.ui_sidebar_menus ; end
|
|
def self.ui_sidebar_menus=(v) ; Global.ui_sidebar_menus = v ; end
|
|
def self.world ; Global.world ; end
|
|
def self.world=(v) ; Global.world = v ; end
|
|
def self.activity_next_id ; Global.activity_next_id ; end
|
|
def self.activity_next_id=(v) ; Global.activity_next_id = v ; end
|
|
def self.art_image_chunk_next_id ; Global.art_image_chunk_next_id ; end
|
|
def self.art_image_chunk_next_id=(v) ; Global.art_image_chunk_next_id = v ; end
|
|
def self.artifact_next_id ; Global.artifact_next_id ; end
|
|
def self.artifact_next_id=(v) ; Global.artifact_next_id = v ; end
|
|
def self.building_next_id ; Global.building_next_id ; end
|
|
def self.building_next_id=(v) ; Global.building_next_id = v ; end
|
|
def self.crime_next_id ; Global.crime_next_id ; end
|
|
def self.crime_next_id=(v) ; Global.crime_next_id = v ; end
|
|
def self.entity_next_id ; Global.entity_next_id ; end
|
|
def self.entity_next_id=(v) ; Global.entity_next_id = v ; end
|
|
def self.flow_guide_next_id ; Global.flow_guide_next_id ; end
|
|
def self.flow_guide_next_id=(v) ; Global.flow_guide_next_id = v ; end
|
|
def self.formation_next_id ; Global.formation_next_id ; end
|
|
def self.formation_next_id=(v) ; Global.formation_next_id = v ; end
|
|
def self.hist_event_collection_next_id ; Global.hist_event_collection_next_id ; end
|
|
def self.hist_event_collection_next_id=(v) ; Global.hist_event_collection_next_id = v ; end
|
|
def self.hist_event_next_id ; Global.hist_event_next_id ; end
|
|
def self.hist_event_next_id=(v) ; Global.hist_event_next_id = v ; end
|
|
def self.hist_figure_next_id ; Global.hist_figure_next_id ; end
|
|
def self.hist_figure_next_id=(v) ; Global.hist_figure_next_id = v ; end
|
|
def self.identity_next_id ; Global.identity_next_id ; end
|
|
def self.identity_next_id=(v) ; Global.identity_next_id = v ; end
|
|
def self.incident_next_id ; Global.incident_next_id ; end
|
|
def self.incident_next_id=(v) ; Global.incident_next_id = v ; end
|
|
def self.interaction_instance_next_id ; Global.interaction_instance_next_id ; end
|
|
def self.interaction_instance_next_id=(v) ; Global.interaction_instance_next_id = v ; end
|
|
def self.item_next_id ; Global.item_next_id ; end
|
|
def self.item_next_id=(v) ; Global.item_next_id = v ; end
|
|
def self.job_next_id ; Global.job_next_id ; end
|
|
def self.job_next_id=(v) ; Global.job_next_id = v ; end
|
|
def self.machine_next_id ; Global.machine_next_id ; end
|
|
def self.machine_next_id=(v) ; Global.machine_next_id = v ; end
|
|
def self.nemesis_next_id ; Global.nemesis_next_id ; end
|
|
def self.nemesis_next_id=(v) ; Global.nemesis_next_id = v ; end
|
|
def self.proj_next_id ; Global.proj_next_id ; end
|
|
def self.proj_next_id=(v) ; Global.proj_next_id = v ; end
|
|
def self.schedule_next_id ; Global.schedule_next_id ; end
|
|
def self.schedule_next_id=(v) ; Global.schedule_next_id = v ; end
|
|
def self.squad_next_id ; Global.squad_next_id ; end
|
|
def self.squad_next_id=(v) ; Global.squad_next_id = v ; end
|
|
def self.task_next_id ; Global.task_next_id ; end
|
|
def self.task_next_id=(v) ; Global.task_next_id = v ; end
|
|
def self.unit_chunk_next_id ; Global.unit_chunk_next_id ; end
|
|
def self.unit_chunk_next_id=(v) ; Global.unit_chunk_next_id = v ; end
|
|
def self.unit_next_id ; Global.unit_next_id ; end
|
|
def self.unit_next_id=(v) ; Global.unit_next_id = v ; end
|
|
def self.vehicle_next_id ; Global.vehicle_next_id ; end
|
|
def self.vehicle_next_id=(v) ; Global.vehicle_next_id = v ; end
|
|
def self.written_content_next_id ; Global.written_content_next_id ; end
|
|
def self.written_content_next_id=(v) ; Global.written_content_next_id = v ; end
|
|
def self.announcements ; Global.announcements ; end
|
|
def self.announcements=(v) ; Global.announcements = v ; end
|
|
def self.cur_year ; Global.cur_year ; end
|
|
def self.cur_year=(v) ; Global.cur_year = v ; end
|
|
def self.cur_year_tick ; Global.cur_year_tick ; end
|
|
def self.cur_year_tick=(v) ; Global.cur_year_tick = v ; end
|
|
def self.current_weather ; Global.current_weather ; end
|
|
def self.current_weather=(v) ; Global.current_weather = v ; end
|
|
def self.pause_state ; Global.pause_state ; end
|
|
def self.pause_state=(v) ; Global.pause_state = v ; end
|
|
def self.process_dig ; Global.process_dig ; end
|
|
def self.process_dig=(v) ; Global.process_dig = v ; end
|
|
def self.process_jobs ; Global.process_jobs ; end
|
|
def self.process_jobs=(v) ; Global.process_jobs = v ; end
|
|
def self.ui_building_in_assign ; Global.ui_building_in_assign ; end
|
|
def self.ui_building_in_assign=(v) ; Global.ui_building_in_assign = v ; end
|
|
def self.ui_building_in_resize ; Global.ui_building_in_resize ; end
|
|
def self.ui_building_in_resize=(v) ; Global.ui_building_in_resize = v ; end
|
|
def self.ui_building_item_cursor ; Global.ui_building_item_cursor ; end
|
|
def self.ui_building_item_cursor=(v) ; Global.ui_building_item_cursor = v ; end
|
|
def self.ui_look_cursor ; Global.ui_look_cursor ; end
|
|
def self.ui_look_cursor=(v) ; Global.ui_look_cursor = v ; end
|
|
def self.ui_selected_unit ; Global.ui_selected_unit ; end
|
|
def self.ui_selected_unit=(v) ; Global.ui_selected_unit = v ; end
|
|
def self.ui_unit_view_mode ; Global.ui_unit_view_mode ; end
|
|
def self.ui_unit_view_mode=(v) ; Global.ui_unit_view_mode = v ; end
|
|
def self.ui_workshop_in_add ; Global.ui_workshop_in_add ; end
|
|
def self.ui_workshop_in_add=(v) ; Global.ui_workshop_in_add = v ; end
|
|
def self.ui_workshop_job_cursor ; Global.ui_workshop_job_cursor ; end
|
|
def self.ui_workshop_job_cursor=(v) ; Global.ui_workshop_job_cursor = v ; end
|
|
def self.window_x ; Global.window_x ; end
|
|
def self.window_x=(v) ; Global.window_x = v ; end
|
|
def self.window_y ; Global.window_y ; end
|
|
def self.window_y=(v) ; Global.window_y = v ; end
|
|
def self.window_z ; Global.window_z ; end
|
|
def self.window_z=(v) ; Global.window_z = v ; end
|
|
end
|