| 1 | using System; | 
 
 
 
 
 | 2 | using System.Collections.Generic; | 
 
 
 
 
 | 3 | using Oni; | 
 
 
 
 
 | 4 | using Oni.Metadata; | 
 
 
 
 
 | 5 |  | 
 
 
 
 
 | 6 | namespace Oni.Metadata | 
 
 
 
 
 | 7 | { | 
 
 
 
 
 | 8 | internal class ObjectMetadata | 
 
 
 
 
 | 9 | { | 
 
 
 
 
 | 10 | internal enum TypeTag | 
 
 
 
 
 | 11 | { | 
 
 
 
 
 | 12 | CHAR = 0x43484152, | 
 
 
 
 
 | 13 | CMBT = 0x434d4254, | 
 
 
 
 
 | 14 | CONS = 0x434f4e53, | 
 
 
 
 
 | 15 | DOOR = 0x444f4f52, | 
 
 
 
 
 | 16 | FLAG = 0x464c4147, | 
 
 
 
 
 | 17 | FURN = 0x4655524e, | 
 
 
 
 
 | 18 | MELE = 0x4d454c45, | 
 
 
 
 
 | 19 | NEUT = 0x4e455554, | 
 
 
 
 
 | 20 | PART = 0x50415254, | 
 
 
 
 
 | 21 | PATR = 0x50415452, | 
 
 
 
 
 | 22 | PWRU = 0x50575255, | 
 
 
 
 
 | 23 | SNDG = 0x534e4447, | 
 
 
 
 
 | 24 | TRGV = 0x54524756, | 
 
 
 
 
 | 25 | TRIG = 0x54524947, | 
 
 
 
 
 | 26 | TURR = 0x54555252, | 
 
 
 
 
 | 27 | WEAP = 0x57454150 | 
 
 
 
 
 | 28 | } | 
 
 
 
 
 | 29 |  | 
 
 
 
 
 | 30 | [Flags] | 
 
 
 
 
 | 31 | public enum ObjectFlags : uint | 
 
 
 
 
 | 32 | { | 
 
 
 
 
 | 33 | None = 0x00, | 
 
 
 
 
 | 34 | Locked = 0x01, | 
 
 
 
 
 | 35 | PlacedInGame = 0x02, | 
 
 
 
 
 | 36 | Temporary = 0x04, | 
 
 
 
 
 | 37 | Gunk = 0x08 | 
 
 
 
 
 | 38 | } | 
 
 
 
 
 | 39 |  | 
 
 
 
 
 | 40 | public static readonly MetaStruct Header = new MetaStruct("Object", | 
 
 
 
 
 | 41 | new Field(MetaType.Enum<ObjectFlags>(), "Flags"), | 
 
 
 
 
 | 42 | new Field(MetaType.Vector3, "Position"), | 
 
 
 
 
 | 43 | new Field(MetaType.Vector3, "Rotation") | 
 
 
 
 
 | 44 | ); | 
 
 
 
 
 | 45 |  | 
 
 
 
 
 | 46 | // | 
 
 
 
 
 | 47 | // Character Object | 
 
 
 
 
 | 48 | // | 
 
 
 
 
 | 49 |  | 
 
 
 
 
 | 50 | [Flags] | 
 
 
 
 
 | 51 | internal enum CharacterFlags : uint | 
 
 
 
 
 | 52 | { | 
 
 
 
 
 | 53 | None = 0x00, | 
 
 
 
 
 | 54 | IsPlayer = 0x01, | 
 
 
 
 
 | 55 | RandomCostume = 0x02, | 
 
 
 
 
 | 56 | NotInitiallyPresent = 0x04, | 
 
 
 
 
 | 57 | NonCombatant = 0x08, | 
 
 
 
 
 | 58 | CanSpawnMultiple = 0x10, | 
 
 
 
 
 | 59 | Spawned = 0x20, | 
 
 
 
 
 | 60 | Unkillable = 0x40, | 
 
 
 
 
 | 61 | InfiniteAmmo = 0x80, | 
 
 
 
 
 | 62 | Omniscient = 0x0100, | 
 
 
 
 
 | 63 | HasLSI = 0x0200, | 
 
 
 
 
 | 64 | Boss = 0x0400, | 
 
 
 
 
 | 65 | UpgradeDifficulty = 0x0800, | 
 
 
 
 
 | 66 | NoAutoDrop = 0x1000 | 
 
 
 
 
 | 67 | } | 
 
 
 
 
 | 68 |  | 
 
 
 
 
 | 69 | internal enum CharacterTeam : uint | 
 
 
 
 
 | 70 | { | 
 
 
 
 
 | 71 | Konoko = 0, | 
 
 
 
 
 | 72 | TCTF = 1, | 
 
 
 
 
 | 73 | Syndicate = 2, | 
 
 
 
 
 | 74 | Neutral = 3, | 
 
 
 
 
 | 75 | SecurityGuard = 4, | 
 
 
 
 
 | 76 | RogueKonoko = 5, | 
 
 
 
 
 | 77 | Switzerland = 6, | 
 
 
 
 
 | 78 | SyndicateAccessory = 7 | 
 
 
 
 
 | 79 | } | 
 
 
 
 
 | 80 |  | 
 
 
 
 
 | 81 | internal enum CharacterJobType : uint | 
 
 
 
 
 | 82 | { | 
 
 
 
 
 | 83 | None = 0, | 
 
 
 
 
 | 84 | Idle = 1, | 
 
 
 
 
 | 85 | Guard = 2, | 
 
 
 
 
 | 86 | Patrol = 3, | 
 
 
 
 
 | 87 | TeamBatle = 4, | 
 
 
 
 
 | 88 | Combat = 5, | 
 
 
 
 
 | 89 | Melee = 6, | 
 
 
 
 
 | 90 | Alarm = 7, | 
 
 
 
 
 | 91 | Neutral = 8, | 
 
 
 
 
 | 92 | Panic = 9 | 
 
 
 
 
 | 93 | } | 
 
 
 
 
 | 94 |  | 
 
 
 
 
 | 95 | internal enum CharacterAlertStatus : uint | 
 
 
 
 
 | 96 | { | 
 
 
 
 
 | 97 | Lull = 0, | 
 
 
 
 
 | 98 | Low = 1, | 
 
 
 
 
 | 99 | Medium = 2, | 
 
 
 
 
 | 100 | High = 3, | 
 
 
 
 
 | 101 | Combat = 4 | 
 
 
 
 
 | 102 | } | 
 
 
 
 
 | 103 |  | 
 
 
 
 
 | 104 | internal enum CharacterPursuitMode : uint | 
 
 
 
 
 | 105 | { | 
 
 
 
 
 | 106 | None = 0, | 
 
 
 
 
 | 107 | Forget = 1, | 
 
 
 
 
 | 108 | GoTo = 2, | 
 
 
 
 
 | 109 | Wait = 3, | 
 
 
 
 
 | 110 | Look = 4, | 
 
 
 
 
 | 111 | Move = 5, | 
 
 
 
 
 | 112 | Hunt = 6, | 
 
 
 
 
 | 113 | Glanc = 7, | 
 
 
 
 
 | 114 | } | 
 
 
 
 
 | 115 |  | 
 
 
 
 
 | 116 | internal enum CharacterPursuitLostBehavior : uint | 
 
 
 
 
 | 117 | { | 
 
 
 
 
 | 118 | ReturnToJob = 0, | 
 
 
 
 
 | 119 | KeepLooking = 1, | 
 
 
 
 
 | 120 | FindAlarm = 2, | 
 
 
 
 
 | 121 | } | 
 
 
 
 
 | 122 |  | 
 
 
 
 
 | 123 | public static readonly MetaStruct Character = new MetaStruct("Character", | 
 
 
 
 
 | 124 | new Field(MetaType.Enum<CharacterFlags>(), "Flags"), | 
 
 
 
 
 | 125 | new Field(MetaType.String64, "Class"), | 
 
 
 
 
 | 126 | new Field(MetaType.String32, "Name"), | 
 
 
 
 
 | 127 | new Field(MetaType.String64, "Weapon"), | 
 
 
 
 
 | 128 | new Field(new MetaStruct("CharacterScripts", | 
 
 
 
 
 | 129 | new Field(MetaType.String32, "Spawn"), | 
 
 
 
 
 | 130 | new Field(MetaType.String32, "Die"), | 
 
 
 
 
 | 131 | new Field(MetaType.String32, "Combat"), | 
 
 
 
 
 | 132 | new Field(MetaType.String32, "Alarm"), | 
 
 
 
 
 | 133 | new Field(MetaType.String32, "Hurt"), | 
 
 
 
 
 | 134 | new Field(MetaType.String32, "Defeated"), | 
 
 
 
 
 | 135 | new Field(MetaType.String32, "OutOfAmmo"), | 
 
 
 
 
 | 136 | new Field(MetaType.String32, "NoPath")), "Scripts"), | 
 
 
 
 
 | 137 | new Field(MetaType.Int32, "AdditionalHealth"), | 
 
 
 
 
 | 138 | new Field(new MetaStruct("CharacterJob", | 
 
 
 
 
 | 139 | new Field(MetaType.Enum<CharacterJobType>(), "Type"), | 
 
 
 
 
 | 140 | new Field(MetaType.Int16, "PatrolPathId")), "Job"), | 
 
 
 
 
 | 141 | new Field(new MetaStruct("CharacterBehaviors", | 
 
 
 
 
 | 142 | new Field(MetaType.Int16, "CombatId"), | 
 
 
 
 
 | 143 | new Field(MetaType.Int16, "MeleeId"), | 
 
 
 
 
 | 144 | new Field(MetaType.Int16, "NeutralId")), "Behaviors"), | 
 
 
 
 
 | 145 | new Field(new MetaStruct("CharacterInventory", | 
 
 
 
 
 | 146 | new Field(new MetaStruct("Ammo", | 
 
 
 
 
 | 147 | new Field(MetaType.Int16, "Use"), | 
 
 
 
 
 | 148 | new Field(MetaType.Int16, "Drop")), "Ammo"), | 
 
 
 
 
 | 149 | new Field(new MetaStruct("EnergyCell", | 
 
 
 
 
 | 150 | new Field(MetaType.Int16, "Use"), | 
 
 
 
 
 | 151 | new Field(MetaType.Int16, "Drop")), "EnergyCell"), | 
 
 
 
 
 | 152 | new Field(new MetaStruct("Hypo", | 
 
 
 
 
 | 153 | new Field(MetaType.Int16, "Use"), | 
 
 
 
 
 | 154 | new Field(MetaType.Int16, "Drop")), "Hypo"), | 
 
 
 
 
 | 155 | new Field(new MetaStruct("Shield", | 
 
 
 
 
 | 156 | new Field(MetaType.Int16, "Use"), | 
 
 
 
 
 | 157 | new Field(MetaType.Int16, "Drop")), "Shield"), | 
 
 
 
 
 | 158 | new Field(new MetaStruct("Invisibility", | 
 
 
 
 
 | 159 | new Field(MetaType.Int16, "Use"), | 
 
 
 
 
 | 160 | new Field(MetaType.Int16, "Drop")), "Invisibility"), | 
 
 
 
 
 | 161 | new Field(MetaType.Padding(4))), "Inventory"), | 
 
 
 
 
 | 162 | new Field(MetaType.Enum<CharacterTeam>(), "Team"), | 
 
 
 
 
 | 163 | new Field(MetaType.Int32, "AmmoPercentage"), | 
 
 
 
 
 | 164 | new Field(new MetaStruct("CharacterAlert", | 
 
 
 
 
 | 165 | new Field(MetaType.Enum<CharacterAlertStatus>(), "Initial"), | 
 
 
 
 
 | 166 | new Field(MetaType.Enum<CharacterAlertStatus>(), "Minimal"), | 
 
 
 
 
 | 167 | new Field(MetaType.Enum<CharacterAlertStatus>(), "JobStart"), | 
 
 
 
 
 | 168 | new Field(MetaType.Enum<CharacterAlertStatus>(), "Investigate")), "Alert"), | 
 
 
 
 
 | 169 | new Field(MetaType.Int32, "AlarmGroups"), | 
 
 
 
 
 | 170 | new Field(new MetaStruct("CharacterPursuit", | 
 
 
 
 
 | 171 | new Field(MetaType.Enum<CharacterPursuitMode>(), "StrongUnseen"), | 
 
 
 
 
 | 172 | new Field(MetaType.Enum<CharacterPursuitMode>(), "WeakUnseen"), | 
 
 
 
 
 | 173 | new Field(MetaType.Enum<CharacterPursuitMode>(), "StrongSeen"), | 
 
 
 
 
 | 174 | new Field(MetaType.Enum<CharacterPursuitMode>(), "WeakSeen"), | 
 
 
 
 
 | 175 | new Field(MetaType.Enum<CharacterPursuitLostBehavior>(), "Lost")), "Pursuit") | 
 
 
 
 
 | 176 | ); | 
 
 
 
 
 | 177 |  | 
 
 
 
 
 | 178 | // | 
 
 
 
 
 | 179 | // Combat Behavior Object | 
 
 
 
 
 | 180 | // | 
 
 
 
 
 | 181 |  | 
 
 
 
 
 | 182 | internal enum CombatBehaviorType : uint | 
 
 
 
 
 | 183 | { | 
 
 
 
 
 | 184 | None = 0, | 
 
 
 
 
 | 185 | Stare = 1, | 
 
 
 
 
 | 186 | HoldAndFire = 2, | 
 
 
 
 
 | 187 | FiringCharge = 3, | 
 
 
 
 
 | 188 | Melee = 4, | 
 
 
 
 
 | 189 | BarabasShoot = 5, | 
 
 
 
 
 | 190 | BarabasAdvance = 6, | 
 
 
 
 
 | 191 | BarabasMelee = 7, | 
 
 
 
 
 | 192 | SuperNinjaFireball = 8, | 
 
 
 
 
 | 193 | SuperNinjaAdvance = 9, | 
 
 
 
 
 | 194 | SuperNinjaMelee = 10, | 
 
 
 
 
 | 195 | RunForAlarm = 11, | 
 
 
 
 
 | 196 | MutantMuroMelee = 12, | 
 
 
 
 
 | 197 | MuroThunderbolt = 13 | 
 
 
 
 
 | 198 | } | 
 
 
 
 
 | 199 |  | 
 
 
 
 
 | 200 | internal enum CombatMeleeOverride : uint | 
 
 
 
 
 | 201 | { | 
 
 
 
 
 | 202 | None = 0, | 
 
 
 
 
 | 203 | IfPunched = 1, | 
 
 
 
 
 | 204 | Cancelled = 2, | 
 
 
 
 
 | 205 | ShortRange = 3, | 
 
 
 
 
 | 206 | MediumRange = 4, | 
 
 
 
 
 | 207 | AlwaysMelee = 5 | 
 
 
 
 
 | 208 | } | 
 
 
 
 
 | 209 |  | 
 
 
 
 
 | 210 | internal enum CombatNoGunBehavior : uint | 
 
 
 
 
 | 211 | { | 
 
 
 
 
 | 212 | Melee = 0, | 
 
 
 
 
 | 213 | Retreat = 1, | 
 
 
 
 
 | 214 | RunForAlarm = 2 | 
 
 
 
 
 | 215 | } | 
 
 
 
 
 | 216 |  | 
 
 
 
 
 | 217 | public static readonly MetaStruct CombatProfile = new MetaStruct("CombatProfile", | 
 
 
 
 
 | 218 | new Field(MetaType.String64, "Name"), | 
 
 
 
 
 | 219 | new Field(MetaType.Int32, "CombatId"), | 
 
 
 
 
 | 220 | new Field(new MetaStruct("CMBTBehaviors", | 
 
 
 
 
 | 221 | new Field(MetaType.Enum<CombatBehaviorType>(), "LongRange"), | 
 
 
 
 
 | 222 | new Field(MetaType.Enum<CombatBehaviorType>(), "MediumRange"), | 
 
 
 
 
 | 223 | new Field(MetaType.Enum<CombatBehaviorType>(), "ShortRange"), | 
 
 
 
 
 | 224 | new Field(MetaType.Enum<CombatBehaviorType>(), "MediumRetreat"), | 
 
 
 
 
 | 225 | new Field(MetaType.Enum<CombatBehaviorType>(), "LongRetreat")), "Behaviors"), | 
 
 
 
 
 | 226 | new Field(new MetaStruct("CMBTCombat", | 
 
 
 
 
 | 227 | new Field(MetaType.Float, "MediumRange"), | 
 
 
 
 
 | 228 | new Field(MetaType.Enum<CombatMeleeOverride>(), "MeleeOverride"), | 
 
 
 
 
 | 229 | new Field(MetaType.Enum<CombatNoGunBehavior>(), "NoGunBehavior"), | 
 
 
 
 
 | 230 | new Field(MetaType.Float, "ShortRange"), | 
 
 
 
 
 | 231 | new Field(MetaType.Float, "PursuitDistance")), "Combat"), | 
 
 
 
 
 | 232 | new Field(new MetaStruct("CMBTPanic", | 
 
 
 
 
 | 233 | new Field(MetaType.Int32, "Hurt"), | 
 
 
 
 
 | 234 | new Field(MetaType.Int32, "GunFire"), | 
 
 
 
 
 | 235 | new Field(MetaType.Int32, "Melee"), | 
 
 
 
 
 | 236 | new Field(MetaType.Int32, "Sight")), "Panic"), | 
 
 
 
 
 | 237 | new Field(new MetaStruct("CMBTAlarm", | 
 
 
 
 
 | 238 | new Field(MetaType.Float, "SearchDistance"), | 
 
 
 
 
 | 239 | new Field(MetaType.Float, "EnemyIgnoreDistance"), | 
 
 
 
 
 | 240 | new Field(MetaType.Float, "EnemyAttackDistance"), | 
 
 
 
 
 | 241 | new Field(MetaType.Int32, "DamageThreshold"), | 
 
 
 
 
 | 242 | new Field(MetaType.Int32, "FightTimer")), "Alarm") | 
 
 
 
 
 | 243 | ); | 
 
 
 
 
 | 244 |  | 
 
 
 
 
 | 245 | // | 
 
 
 
 
 | 246 | // Console Object | 
 
 
 
 
 | 247 | // | 
 
 
 
 
 | 248 |  | 
 
 
 
 
 | 249 | [Flags] | 
 
 
 
 
 | 250 | internal enum ConsoleFlags : ushort | 
 
 
 
 
 | 251 | { | 
 
 
 
 
 | 252 | None = 0x00, | 
 
 
 
 
 | 253 | InitialActive = 0x08, | 
 
 
 
 
 | 254 | Punch = 0x20, | 
 
 
 
 
 | 255 | IsAlarm = 0x40 | 
 
 
 
 
 | 256 | } | 
 
 
 
 
 | 257 |  | 
 
 
 
 
 | 258 | public static readonly MetaStruct Console = new MetaStruct("Console", | 
 
 
 
 
 | 259 | new Field(MetaType.String63, "Class"), | 
 
 
 
 
 | 260 | new Field(MetaType.Int16, "ConsoleId"), | 
 
 
 
 
 | 261 | new Field(MetaType.Enum<ConsoleFlags>(), "Flags"), | 
 
 
 
 
 | 262 | new Field(MetaType.String63, "InactiveTexture"), | 
 
 
 
 
 | 263 | new Field(MetaType.String63, "ActiveTexture"), | 
 
 
 
 
 | 264 | new Field(MetaType.String63, "TriggeredTexture") | 
 
 
 
 
 | 265 | ); | 
 
 
 
 
 | 266 |  | 
 
 
 
 
 | 267 | // | 
 
 
 
 
 | 268 | // Door Object | 
 
 
 
 
 | 269 | // | 
 
 
 
 
 | 270 |  | 
 
 
 
 
 | 271 | [Flags] | 
 
 
 
 
 | 272 | internal enum DoorFlags : ushort | 
 
 
 
 
 | 273 | { | 
 
 
 
 
 | 274 | None = 0x00, | 
 
 
 
 
 | 275 | InitialLocked = 0x01, | 
 
 
 
 
 | 276 | InDoorFrame = 0x04, | 
 
 
 
 
 | 277 | Manual = 0x10, | 
 
 
 
 
 | 278 | DoubleDoor = 0x80, | 
 
 
 
 
 | 279 | Mirror = 0x0100, | 
 
 
 
 
 | 280 | OneWay = 0x0200, | 
 
 
 
 
 | 281 | Reverse = 0x0400, | 
 
 
 
 
 | 282 | Jammed = 0x800, | 
 
 
 
 
 | 283 | InitialOpen = 0x1000, | 
 
 
 
 
 | 284 | } | 
 
 
 
 
 | 285 |  | 
 
 
 
 
 | 286 | public static readonly MetaStruct Door = new MetaStruct("Door", | 
 
 
 
 
 | 287 | new Field(MetaType.String63, "Class"), | 
 
 
 
 
 | 288 | new Field(MetaType.Int16, "DoorId"), | 
 
 
 
 
 | 289 | new Field(MetaType.Int16, "KeyId"), | 
 
 
 
 
 | 290 | new Field(MetaType.Enum<DoorFlags>(), "Flags"), | 
 
 
 
 
 | 291 | new Field(MetaType.Vector3, "Center"), | 
 
 
 
 
 | 292 | new Field(MetaType.Float, "SquaredActivationRadius"), | 
 
 
 
 
 | 293 | new Field(MetaType.String63, "Texture1"), | 
 
 
 
 
 | 294 | new Field(MetaType.String63, "Texture2") | 
 
 
 
 
 | 295 | ); | 
 
 
 
 
 | 296 |  | 
 
 
 
 
 | 297 | // | 
 
 
 
 
 | 298 | // Flag Object | 
 
 
 
 
 | 299 | // | 
 
 
 
 
 | 300 |  | 
 
 
 
 
 | 301 | public static readonly MetaStruct Flag = new MetaStruct("Flag", | 
 
 
 
 
 | 302 | new Field(MetaType.Color, "Color"), | 
 
 
 
 
 | 303 | new Field(MetaType.Int16, "Prefix"), | 
 
 
 
 
 | 304 | new Field(MetaType.Int16, "FlagId"), | 
 
 
 
 
 | 305 | new Field(MetaType.String128, "Notes") | 
 
 
 
 
 | 306 | ); | 
 
 
 
 
 | 307 |  | 
 
 
 
 
 | 308 | // | 
 
 
 
 
 | 309 | // Furniture Object | 
 
 
 
 
 | 310 | // | 
 
 
 
 
 | 311 |  | 
 
 
 
 
 | 312 | public static readonly MetaStruct Furniture = new MetaStruct("Furniture", | 
 
 
 
 
 | 313 | new Field(MetaType.String32, "Class"), | 
 
 
 
 
 | 314 | new Field(MetaType.String48, "Particle") | 
 
 
 
 
 | 315 | ); | 
 
 
 
 
 | 316 |  | 
 
 
 
 
 | 317 | // | 
 
 
 
 
 | 318 | // Melee Object | 
 
 
 
 
 | 319 | // | 
 
 
 
 
 | 320 |  | 
 
 
 
 
 | 321 | public static readonly MetaStruct MeleeProfile = new MetaStruct("MeleeProfile", | 
 
 
 
 
 | 322 | new Field(MetaType.Int32, "MeleeId"), | 
 
 
 
 
 | 323 | new Field(MetaType.String64, "Name"), | 
 
 
 
 
 | 324 | new Field(MetaType.String64, "CharacterClass"), | 
 
 
 
 
 | 325 | new Field(MetaType.Int32, "Notice"), | 
 
 
 
 
 | 326 | new Field(new MetaStruct("MeleeDodge", | 
 
 
 
 
 | 327 | new Field(MetaType.Int32, "Base"), | 
 
 
 
 
 | 328 | new Field(MetaType.Int32, "Extra"), | 
 
 
 
 
 | 329 | new Field(MetaType.Int32, "ExtraDamageThreshold")), "Dodge"), | 
 
 
 
 
 | 330 | new Field(new MetaStruct("MeleeBlockSkill", | 
 
 
 
 
 | 331 | new Field(MetaType.Int32, "Single"), | 
 
 
 
 
 | 332 | new Field(MetaType.Int32, "Group")), "BlockSkill"), | 
 
 
 
 
 | 333 | new Field(MetaType.Float, "NotBlocked"), | 
 
 
 
 
 | 334 | new Field(MetaType.Float, "MustChangeStance"), | 
 
 
 
 
 | 335 | new Field(MetaType.Float, "BlockedButUnblockable"), | 
 
 
 
 
 | 336 | new Field(MetaType.Float, "BlockedButHasStagger"), | 
 
 
 
 
 | 337 | new Field(MetaType.Float, "BlockedButHasBlockstun"), | 
 
 
 
 
 | 338 | new Field(MetaType.Float, "Blocked"), | 
 
 
 
 
 | 339 | new Field(MetaType.Float, "ThrowDanger"), | 
 
 
 
 
 | 340 | new Field(MetaType.Int16, "DazedMinFrames"), | 
 
 
 
 
 | 341 | new Field(MetaType.Int16, "DazedMaxFrames") | 
 
 
 
 
 | 342 | ); | 
 
 
 
 
 | 343 |  | 
 
 
 
 
 | 344 | [Flags] | 
 
 
 
 
 | 345 | internal enum MeleeTechniqueFlags : uint | 
 
 
 
 
 | 346 | { | 
 
 
 
 
 | 347 | None = 0x00, | 
 
 
 
 
 | 348 | Interruptible = 0x01, | 
 
 
 
 
 | 349 | GenerousDir = 0x02, | 
 
 
 
 
 | 350 | Fearless = 0x04 | 
 
 
 
 
 | 351 | } | 
 
 
 
 
 | 352 |  | 
 
 
 
 
 | 353 | public static readonly MetaStruct MeleeTechnique = new MetaStruct("MeleeTechnique", | 
 
 
 
 
 | 354 | new Field(MetaType.String64, "Name"), | 
 
 
 
 
 | 355 | new Field(MetaType.Enum<MeleeTechniqueFlags>(), "Flags"), | 
 
 
 
 
 | 356 | new Field(MetaType.UInt32, "Weight"), | 
 
 
 
 
 | 357 | new Field(MetaType.UInt32, "Importance"), | 
 
 
 
 
 | 358 | new Field(MetaType.UInt32, "RepeatDelay") | 
 
 
 
 
 | 359 | ); | 
 
 
 
 
 | 360 |  | 
 
 
 
 
 | 361 | internal enum MeleeMoveCategory | 
 
 
 
 
 | 362 | { | 
 
 
 
 
 | 363 | Attack = 0, | 
 
 
 
 
 | 364 | Position = 16, | 
 
 
 
 
 | 365 | Maneuver = 32, | 
 
 
 
 
 | 366 | Evade = 48, | 
 
 
 
 
 | 367 | Throw = 64 | 
 
 
 
 
 | 368 | } | 
 
 
 
 
 | 369 |  | 
 
 
 
 
 | 370 | internal enum MeleeMoveAttackType | 
 
 
 
 
 | 371 | { | 
 
 
 
 
 | 372 | P, | 
 
 
 
 
 | 373 | PP, | 
 
 
 
 
 | 374 | PPP, | 
 
 
 
 
 | 375 | PPPP, | 
 
 
 
 
 | 376 | PF, | 
 
 
 
 
 | 377 | PL, | 
 
 
 
 
 | 378 | PR, | 
 
 
 
 
 | 379 | PB, | 
 
 
 
 
 | 380 | PD, | 
 
 
 
 
 | 381 | PF_PF, | 
 
 
 
 
 | 382 | PF_PF_PF, | 
 
 
 
 
 | 383 | PL_PL, | 
 
 
 
 
 | 384 | PL_PL_PL, | 
 
 
 
 
 | 385 | PR_PR, | 
 
 
 
 
 | 386 | PR_PR_PR, | 
 
 
 
 
 | 387 | PB_PB, | 
 
 
 
 
 | 388 | PB_PB_PB, | 
 
 
 
 
 | 389 | PD_PD, | 
 
 
 
 
 | 390 | PD_PD_PD, | 
 
 
 
 
 | 391 | K, | 
 
 
 
 
 | 392 | KK, | 
 
 
 
 
 | 393 | KKK, | 
 
 
 
 
 | 394 | KKKF, | 
 
 
 
 
 | 395 | KF, | 
 
 
 
 
 | 396 | KL, | 
 
 
 
 
 | 397 | KR, | 
 
 
 
 
 | 398 | KB, | 
 
 
 
 
 | 399 | KD, | 
 
 
 
 
 | 400 | KF_KF, | 
 
 
 
 
 | 401 | KF_KF_KF, | 
 
 
 
 
 | 402 | KL_KL, | 
 
 
 
 
 | 403 | KL_KL_KL, | 
 
 
 
 
 | 404 | KR_KR, | 
 
 
 
 
 | 405 | KR_KR_KR, | 
 
 
 
 
 | 406 | KB_KB, | 
 
 
 
 
 | 407 | KB_KB_KB, | 
 
 
 
 
 | 408 | KD_KD, | 
 
 
 
 
 | 409 | KD_KD_KD, | 
 
 
 
 
 | 410 | PPK, | 
 
 
 
 
 | 411 | PKK, | 
 
 
 
 
 | 412 | PKP, | 
 
 
 
 
 | 413 | KPK, | 
 
 
 
 
 | 414 | KPP, | 
 
 
 
 
 | 415 | KKP, | 
 
 
 
 
 | 416 | PK, | 
 
 
 
 
 | 417 | KP, | 
 
 
 
 
 | 418 | PPKK, | 
 
 
 
 
 | 419 | PPKKK, | 
 
 
 
 
 | 420 | PPKKKKK, | 
 
 
 
 
 | 421 | HP, | 
 
 
 
 
 | 422 | HPF, | 
 
 
 
 
 | 423 | HK, | 
 
 
 
 
 | 424 | HKF, | 
 
 
 
 
 | 425 | CS_P, | 
 
 
 
 
 | 426 | CS_K, | 
 
 
 
 
 | 427 | C_P1, | 
 
 
 
 
 | 428 | C_P2, | 
 
 
 
 
 | 429 | C_PF, | 
 
 
 
 
 | 430 | C_K1, | 
 
 
 
 
 | 431 | C_K2, | 
 
 
 
 
 | 432 | C_KF, | 
 
 
 
 
 | 433 | GETUP_KF, | 
 
 
 
 
 | 434 | GETUP_KB, | 
 
 
 
 
 | 435 | R_P, | 
 
 
 
 
 | 436 | R_K, | 
 
 
 
 
 | 437 | RB_P, | 
 
 
 
 
 | 438 | RB_K, | 
 
 
 
 
 | 439 | RL_P, | 
 
 
 
 
 | 440 | RL_K, | 
 
 
 
 
 | 441 | RR_P, | 
 
 
 
 
 | 442 | RR_K, | 
 
 
 
 
 | 443 | R_SLIDE, | 
 
 
 
 
 | 444 | J_P, | 
 
 
 
 
 | 445 | J_K, | 
 
 
 
 
 | 446 | JF_P, | 
 
 
 
 
 | 447 | JF_PB, | 
 
 
 
 
 | 448 | JF_K, | 
 
 
 
 
 | 449 | JF_KB, | 
 
 
 
 
 | 450 | JB_P, | 
 
 
 
 
 | 451 | JB_K, | 
 
 
 
 
 | 452 | JL_P, | 
 
 
 
 
 | 453 | JL_K, | 
 
 
 
 
 | 454 | JR_P, | 
 
 
 
 
 | 455 | JR_K | 
 
 
 
 
 | 456 | } | 
 
 
 
 
 | 457 |  | 
 
 
 
 
 | 458 | internal enum MeleeMovePositionType | 
 
 
 
 
 | 459 | { | 
 
 
 
 
 | 460 | RunForward, | 
 
 
 
 
 | 461 | RunLeft, | 
 
 
 
 
 | 462 | RunRight, | 
 
 
 
 
 | 463 | RunBack, | 
 
 
 
 
 | 464 |  | 
 
 
 
 
 | 465 | JumpUp, | 
 
 
 
 
 | 466 | JumpForward, | 
 
 
 
 
 | 467 | JumpLeft, | 
 
 
 
 
 | 468 | JumpRight, | 
 
 
 
 
 | 469 | JumpBack, | 
 
 
 
 
 | 470 | StartToCrouch, | 
 
 
 
 
 | 471 | Crouch, | 
 
 
 
 
 | 472 | Stand, | 
 
 
 
 
 | 473 |  | 
 
 
 
 
 | 474 | CloseForward, | 
 
 
 
 
 | 475 | CloseLeft, | 
 
 
 
 
 | 476 | CloseRight, | 
 
 
 
 
 | 477 | CloseBack, | 
 
 
 
 
 | 478 |  | 
 
 
 
 
 | 479 | RunJumpForward, | 
 
 
 
 
 | 480 | RunJumpLeft, | 
 
 
 
 
 | 481 | RunJumpRight, | 
 
 
 
 
 | 482 | RunJumpBack | 
 
 
 
 
 | 483 | } | 
 
 
 
 
 | 484 |  | 
 
 
 
 
 | 485 | internal enum MeleeMoveManeuverType | 
 
 
 
 
 | 486 | { | 
 
 
 
 
 | 487 | Advance,                    // Duration, MinRange, ThresholdRange | 
 
 
 
 
 | 488 | Retreat,                    // Duration, MaxRange, ThresholdRange | 
 
 
 
 
 | 489 | CircleLeft,                 // Duration, MinAngle, MaxAngle | 
 
 
 
 
 | 490 | CircleRight,                // Duration, MinAngle, MaxAngle | 
 
 
 
 
 | 491 | Pause,                              // Duration | 
 
 
 
 
 | 492 | Crouch,                             // Duration | 
 
 
 
 
 | 493 | Jump,                               // Duration | 
 
 
 
 
 | 494 | Taunt,                              // Duration | 
 
 
 
 
 | 495 | RandomStop,                 // Chance | 
 
 
 
 
 | 496 | GetUpForward,               // Duration | 
 
 
 
 
 | 497 | GetUpBackward,              // Duration | 
 
 
 
 
 | 498 | GetUpRollLeft,              // Duration | 
 
 
 
 
 | 499 | GetUpRollRight,             // Duration | 
 
 
 
 
 | 500 | BarabasWave                 // MaxRange | 
 
 
 
 
 | 501 | } | 
 
 
 
 
 | 502 |  | 
 
 
 
 
 | 503 | internal class MeleeMoveTypeInfo | 
 
 
 
 
 | 504 | { | 
 
 
 
 
 | 505 | public MeleeMoveManeuverType Type; | 
 
 
 
 
 | 506 | public string[] ParamNames; | 
 
 
 
 
 | 507 |  | 
 
 
 
 
 | 508 | public MeleeMoveTypeInfo(MeleeMoveManeuverType type, params string[] paramNames) | 
 
 
 
 
 | 509 | { | 
 
 
 
 
 | 510 | Type = type; | 
 
 
 
 
 | 511 | ParamNames = paramNames; | 
 
 
 
 
 | 512 | } | 
 
 
 
 
 | 513 | } | 
 
 
 
 
 | 514 |  | 
 
 
 
 
 | 515 | public static readonly MeleeMoveTypeInfo[] MeleeMoveManeuverTypeInfo = new MeleeMoveTypeInfo[] | 
 
 
 
 
 | 516 | { | 
 
 
 
 
 | 517 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.Advance, "Duration", "MinRange", "ThresholdRange"), | 
 
 
 
 
 | 518 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.Retreat, "Duration", "MaxRange", "ThresholdRange"), | 
 
 
 
 
 | 519 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.CircleLeft, "Duration", "MinAngle", "MaxAngle"), | 
 
 
 
 
 | 520 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.CircleRight, "Duration", "MinAngle", "MaxAngle"), | 
 
 
 
 
 | 521 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.Pause, "Duration"), | 
 
 
 
 
 | 522 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.Crouch, "Duration"), | 
 
 
 
 
 | 523 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.Jump, "Duration"), | 
 
 
 
 
 | 524 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.Taunt, "Duration"), | 
 
 
 
 
 | 525 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.RandomStop, "Chance"), | 
 
 
 
 
 | 526 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.GetUpForward, "Duration"), | 
 
 
 
 
 | 527 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.GetUpBackward, "Duration"), | 
 
 
 
 
 | 528 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.GetUpRollLeft, "Duration"), | 
 
 
 
 
 | 529 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.GetUpRollRight, "Duration"), | 
 
 
 
 
 | 530 | new MeleeMoveTypeInfo(MeleeMoveManeuverType.BarabasWave, "MaxRange") | 
 
 
 
 
 | 531 | }; | 
 
 
 
 
 | 532 |  | 
 
 
 
 
 | 533 | internal enum MeleeMoveEvadeType | 
 
 
 
 
 | 534 | { | 
 
 
 
 
 | 535 | JumpForward, | 
 
 
 
 
 | 536 | JumpForward2, | 
 
 
 
 
 | 537 | JumpBack, | 
 
 
 
 
 | 538 | JumpBack2, | 
 
 
 
 
 | 539 | JumpLeft, | 
 
 
 
 
 | 540 | JumpLeft2, | 
 
 
 
 
 | 541 | JumpRight, | 
 
 
 
 
 | 542 | JumpRight2, | 
 
 
 
 
 | 543 | RunJumpForward, | 
 
 
 
 
 | 544 | RunJumpForward2, | 
 
 
 
 
 | 545 | RunJumpBack, | 
 
 
 
 
 | 546 | RunJumpBack2, | 
 
 
 
 
 | 547 | RunJumpLeft, | 
 
 
 
 
 | 548 | RunJumpLeft2, | 
 
 
 
 
 | 549 | RunJumpRight, | 
 
 
 
 
 | 550 | RunJumpRight2, | 
 
 
 
 
 | 551 | RollForward, | 
 
 
 
 
 | 552 | RollBackward, | 
 
 
 
 
 | 553 | RollLeft, | 
 
 
 
 
 | 554 | RollRight, | 
 
 
 
 
 | 555 | SlideForward, | 
 
 
 
 
 | 556 | SlideBack, | 
 
 
 
 
 | 557 | SlideLeft, | 
 
 
 
 
 | 558 | SlideRight | 
 
 
 
 
 | 559 | } | 
 
 
 
 
 | 560 |  | 
 
 
 
 
 | 561 | internal enum MeleeMoveThrowType | 
 
 
 
 
 | 562 | { | 
 
 
 
 
 | 563 | P_Front, | 
 
 
 
 
 | 564 | K_Front, | 
 
 
 
 
 | 565 | P_Behind, | 
 
 
 
 
 | 566 | K_Behind, | 
 
 
 
 
 | 567 | RP_Front, | 
 
 
 
 
 | 568 | RK_Front, | 
 
 
 
 
 | 569 | RP_Behind, | 
 
 
 
 
 | 570 | RK_Behind, | 
 
 
 
 
 | 571 | P_FrontDisarm, | 
 
 
 
 
 | 572 | K_FrontDisarm, | 
 
 
 
 
 | 573 | P_BehindDisarm, | 
 
 
 
 
 | 574 | K_BehindDisarm, | 
 
 
 
 
 | 575 | RP_FrontDisarm, | 
 
 
 
 
 | 576 | RK_FrontDisarm, | 
 
 
 
 
 | 577 | RP_BehindDisarm, | 
 
 
 
 
 | 578 | RK_BehindDisarm, | 
 
 
 
 
 | 579 | P_FrontRifDisarm, | 
 
 
 
 
 | 580 | K_FrontRifDisarm, | 
 
 
 
 
 | 581 | P_BehindRifDisarm, | 
 
 
 
 
 | 582 | K_BehindRifDisarm, | 
 
 
 
 
 | 583 | RP_FrontRifDisarm, | 
 
 
 
 
 | 584 | RK_FrontRifDisarm, | 
 
 
 
 
 | 585 | RP_BehindRifDisarm, | 
 
 
 
 
 | 586 | RK_BehindRifDisarm, | 
 
 
 
 
 | 587 | Tackle | 
 
 
 
 
 | 588 | } | 
 
 
 
 
 | 589 |  | 
 
 
 
 
 | 590 | public static readonly MetaStruct MeleeMove = new MetaStruct("MeleeMove", | 
 
 
 
 
 | 591 | new Field(MetaType.Int32, "Type"), | 
 
 
 
 
 | 592 | new Field(MetaType.Float, "Param1"), | 
 
 
 
 
 | 593 | new Field(MetaType.Float, "Param2"), | 
 
 
 
 
 | 594 | new Field(MetaType.Float, "Param3") | 
 
 
 
 
 | 595 | ); | 
 
 
 
 
 | 596 |  | 
 
 
 
 
 | 597 | // | 
 
 
 
 
 | 598 | // Neutral Object | 
 
 
 
 
 | 599 | // | 
 
 
 
 
 | 600 |  | 
 
 
 
 
 | 601 | [Flags] | 
 
 
 
 
 | 602 | internal enum NeutralFlags : uint | 
 
 
 
 
 | 603 | { | 
 
 
 
 
 | 604 | None = 0x00, | 
 
 
 
 
 | 605 | NoResume = 0x01, | 
 
 
 
 
 | 606 | NoResumeAfterGive = 0x02, | 
 
 
 
 
 | 607 | Uninterruptible = 0x04 | 
 
 
 
 
 | 608 | } | 
 
 
 
 
 | 609 |  | 
 
 
 
 
 | 610 | [Flags] | 
 
 
 
 
 | 611 | public enum NeutralItems : byte | 
 
 
 
 
 | 612 | { | 
 
 
 
 
 | 613 | None = 0, | 
 
 
 
 
 | 614 | Shield = 1, | 
 
 
 
 
 | 615 | Invisibility = 2, | 
 
 
 
 
 | 616 | LSI = 4 | 
 
 
 
 
 | 617 | } | 
 
 
 
 
 | 618 |  | 
 
 
 
 
 | 619 | public static readonly MetaStruct NeutralBehavior = new MetaStruct("NeutralBehavior", | 
 
 
 
 
 | 620 | new Field(MetaType.String32, "Name"), | 
 
 
 
 
 | 621 | new Field(MetaType.Int16, "NeutralId") | 
 
 
 
 
 | 622 | ); | 
 
 
 
 
 | 623 |  | 
 
 
 
 
 | 624 | public static readonly MetaStruct NeutralBehaviorParams = new MetaStruct("NeutralBehaviorParams", | 
 
 
 
 
 | 625 | new Field(MetaType.Enum<NeutralFlags>(), "Flags"), | 
 
 
 
 
 | 626 | new Field(new MetaStruct("NeutralBehaviorRange", | 
 
 
 
 
 | 627 | new Field(MetaType.Float, "Trigger"), | 
 
 
 
 
 | 628 | new Field(MetaType.Float, "Talk"), | 
 
 
 
 
 | 629 | new Field(MetaType.Float, "Follow"), | 
 
 
 
 
 | 630 | new Field(MetaType.Float, "Enemy")), "Ranges"), | 
 
 
 
 
 | 631 | new Field(new MetaStruct("NeutralehaviorSpeech", | 
 
 
 
 
 | 632 | new Field(MetaType.String32, "Trigger"), | 
 
 
 
 
 | 633 | new Field(MetaType.String32, "Abort"), | 
 
 
 
 
 | 634 | new Field(MetaType.String32, "Enemy")), "Speech"), | 
 
 
 
 
 | 635 | new Field(new MetaStruct("NeutralBehaviorScript", | 
 
 
 
 
 | 636 | new Field(MetaType.String32, "AfterTalk")), "Script"), | 
 
 
 
 
 | 637 | new Field(new MetaStruct("NeutralBehaviorRewards", | 
 
 
 
 
 | 638 | new Field(MetaType.String32, "WeaponClass"), | 
 
 
 
 
 | 639 | new Field(MetaType.Byte, "Ammo"), | 
 
 
 
 
 | 640 | new Field(MetaType.Byte, "EnergyCell"), | 
 
 
 
 
 | 641 | new Field(MetaType.Byte, "Hypo"), | 
 
 
 
 
 | 642 | new Field(MetaType.Enum<NeutralItems>(), "Other")), "Rewards") | 
 
 
 
 
 | 643 | ); | 
 
 
 
 
 | 644 |  | 
 
 
 
 
 | 645 | [Flags] | 
 
 
 
 
 | 646 | public enum NeutralDialogLineFlags : ushort | 
 
 
 
 
 | 647 | { | 
 
 
 
 
 | 648 | None = 0x00, | 
 
 
 
 
 | 649 | IsPlayer = 0x01, | 
 
 
 
 
 | 650 | GiveItems = 0x02, | 
 
 
 
 
 | 651 | AnimOnce = 0x04, | 
 
 
 
 
 | 652 | OtherAnimOnce = 0x08 | 
 
 
 
 
 | 653 | } | 
 
 
 
 
 | 654 |  | 
 
 
 
 
 | 655 | public static readonly MetaStruct NeutralBehaviorDialogLine = new MetaStruct("DialogLine", | 
 
 
 
 
 | 656 | new Field(MetaType.Enum<NeutralDialogLineFlags>(), "Flags"), | 
 
 
 
 
 | 657 | new Field(MetaType.Padding(2)), | 
 
 
 
 
 | 658 | new Field(MetaType.Int16, "Anim"), | 
 
 
 
 
 | 659 | new Field(MetaType.Int16, "OtherAnim"), | 
 
 
 
 
 | 660 | new Field(MetaType.String32, "SpeechName") | 
 
 
 
 
 | 661 | ); | 
 
 
 
 
 | 662 |  | 
 
 
 
 
 | 663 | // | 
 
 
 
 
 | 664 | // Particle Object | 
 
 
 
 
 | 665 | // | 
 
 
 
 
 | 666 |  | 
 
 
 
 
 | 667 | [Flags] | 
 
 
 
 
 | 668 | internal enum ParticleFlags : ushort | 
 
 
 
 
 | 669 | { | 
 
 
 
 
 | 670 | None = 0x00, | 
 
 
 
 
 | 671 | NotInitiallyCreated = 0x02, | 
 
 
 
 
 | 672 | } | 
 
 
 
 
 | 673 |  | 
 
 
 
 
 | 674 | public static readonly MetaStruct Particle = new MetaStruct("Particle", | 
 
 
 
 
 | 675 | new Field(MetaType.String64, "Class"), | 
 
 
 
 
 | 676 | new Field(MetaType.String48, "Tag"), | 
 
 
 
 
 | 677 | new Field(MetaType.Enum<ParticleFlags>(), "Flags"), | 
 
 
 
 
 | 678 | new Field(MetaType.Vector2, "DecalScale") | 
 
 
 
 
 | 679 | ); | 
 
 
 
 
 | 680 |  | 
 
 
 
 
 | 681 | // | 
 
 
 
 
 | 682 | // Patrol Path Object | 
 
 
 
 
 | 683 | // | 
 
 
 
 
 | 684 |  | 
 
 
 
 
 | 685 | internal enum PatrolPathPointType | 
 
 
 
 
 | 686 | { | 
 
 
 
 
 | 687 | MoveToFlag = 0, | 
 
 
 
 
 | 688 | Stop = 1, | 
 
 
 
 
 | 689 | Pause = 2, | 
 
 
 
 
 | 690 | LookAtFlag = 3, | 
 
 
 
 
 | 691 | LookAtPoint = 4, | 
 
 
 
 
 | 692 | MoveAndFaceFlag = 5, | 
 
 
 
 
 | 693 | Loop = 6, | 
 
 
 
 
 | 694 | MovementMode = 7, | 
 
 
 
 
 | 695 | MoveToPoint = 8, | 
 
 
 
 
 | 696 | LockFacing = 9, | 
 
 
 
 
 | 697 | MoveThroughFlag = 10, | 
 
 
 
 
 | 698 | MoveThroughPoint = 11, | 
 
 
 
 
 | 699 | StopLooking = 12, | 
 
 
 
 
 | 700 | FreeFacing = 13, | 
 
 
 
 
 | 701 | GlanceAtFlagFor = 14, // unused ? | 
 
 
 
 
 | 702 | MoveNearFlag = 15, | 
 
 
 
 
 | 703 | LoopFrom = 16, | 
 
 
 
 
 | 704 | Scan = 17,            // unused ? | 
 
 
 
 
 | 705 | StopScanning = 18, | 
 
 
 
 
 | 706 | MoveToFlagLookAndWait = 19, | 
 
 
 
 
 | 707 | CallScript = 20, | 
 
 
 
 
 | 708 | ForkScript = 21, | 
 
 
 
 
 | 709 | IgnorePlayer = 22, | 
 
 
 
 
 | 710 | FaceToFlagAndFire = 23 | 
 
 
 
 
 | 711 | } | 
 
 
 
 
 | 712 |  | 
 
 
 
 
 | 713 | internal enum PatrolPathFacing | 
 
 
 
 
 | 714 | { | 
 
 
 
 
 | 715 | Forward = 0, | 
 
 
 
 
 | 716 | Backward = 1, | 
 
 
 
 
 | 717 | Left = 1, | 
 
 
 
 
 | 718 | Right = 2, | 
 
 
 
 
 | 719 | Stopped = 3 | 
 
 
 
 
 | 720 | } | 
 
 
 
 
 | 721 |  | 
 
 
 
 
 | 722 | internal enum PatrolPathMovementMode | 
 
 
 
 
 | 723 | { | 
 
 
 
 
 | 724 | ByAlertLevel = 0, | 
 
 
 
 
 | 725 | Stop = 1, | 
 
 
 
 
 | 726 | Crouch = 2, | 
 
 
 
 
 | 727 | Creep = 3, | 
 
 
 
 
 | 728 | WalkNoAim = 4, | 
 
 
 
 
 | 729 | Walk = 5, | 
 
 
 
 
 | 730 | RunNoAim = 6, | 
 
 
 
 
 | 731 | Run = 7 | 
 
 
 
 
 | 732 | } | 
 
 
 
 
 | 733 |  | 
 
 
 
 
 | 734 | public static readonly MetaStruct PatrolPath = new MetaStruct("PatrolPath", | 
 
 
 
 
 | 735 | new Field(MetaType.String32, "Name") | 
 
 
 
 
 | 736 | ); | 
 
 
 
 
 | 737 |  | 
 
 
 
 
 | 738 | public static readonly MetaStruct PatrolPathInfo = new MetaStruct("PatrolPathInfo", | 
 
 
 
 
 | 739 | new Field(MetaType.Int16, "PatrolId"), | 
 
 
 
 
 | 740 | new Field(MetaType.Int16, "ReturnToNearest") | 
 
 
 
 
 | 741 | ); | 
 
 
 
 
 | 742 |  | 
 
 
 
 
 | 743 | public static int GetPatrolPathPointSize(PatrolPathPointType pointType) | 
 
 
 
 
 | 744 | { | 
 
 
 
 
 | 745 | switch (pointType) | 
 
 
 
 
 | 746 | { | 
 
 
 
 
 | 747 | case PatrolPathPointType.IgnorePlayer: | 
 
 
 
 
 | 748 | return 1; | 
 
 
 
 
 | 749 | case PatrolPathPointType.MoveToFlag: | 
 
 
 
 
 | 750 | case PatrolPathPointType.LookAtFlag: | 
 
 
 
 
 | 751 | case PatrolPathPointType.MoveAndFaceFlag: | 
 
 
 
 
 | 752 | case PatrolPathPointType.ForkScript: | 
 
 
 
 
 | 753 | case PatrolPathPointType.CallScript: | 
 
 
 
 
 | 754 | return 2; | 
 
 
 
 
 | 755 | case PatrolPathPointType.Pause: | 
 
 
 
 
 | 756 | case PatrolPathPointType.MovementMode: | 
 
 
 
 
 | 757 | case PatrolPathPointType.LoopFrom: | 
 
 
 
 
 | 758 | case PatrolPathPointType.LockFacing: | 
 
 
 
 
 | 759 | return 4; | 
 
 
 
 
 | 760 | case PatrolPathPointType.MoveThroughFlag: | 
 
 
 
 
 | 761 | case PatrolPathPointType.MoveNearFlag: | 
 
 
 
 
 | 762 | case PatrolPathPointType.GlanceAtFlagFor: | 
 
 
 
 
 | 763 | case PatrolPathPointType.Scan: | 
 
 
 
 
 | 764 | return 6; | 
 
 
 
 
 | 765 | case PatrolPathPointType.MoveToFlagLookAndWait: | 
 
 
 
 
 | 766 | case PatrolPathPointType.FaceToFlagAndFire: | 
 
 
 
 
 | 767 | return 8; | 
 
 
 
 
 | 768 | case PatrolPathPointType.LookAtPoint: | 
 
 
 
 
 | 769 | case PatrolPathPointType.MoveToPoint: | 
 
 
 
 
 | 770 | return 12; | 
 
 
 
 
 | 771 | case PatrolPathPointType.MoveThroughPoint: | 
 
 
 
 
 | 772 | return 16; | 
 
 
 
 
 | 773 | default: | 
 
 
 
 
 | 774 | return 0; | 
 
 
 
 
 | 775 | } | 
 
 
 
 
 | 776 | } | 
 
 
 
 
 | 777 |  | 
 
 
 
 
 | 778 | // | 
 
 
 
 
 | 779 | // PowerUp Object | 
 
 
 
 
 | 780 | // | 
 
 
 
 
 | 781 |  | 
 
 
 
 
 | 782 | internal enum PowerUpClass : uint | 
 
 
 
 
 | 783 | { | 
 
 
 
 
 | 784 | Ammo = 0x424D4D41, | 
 
 
 
 
 | 785 | EnergyCell = 0x454D4D41, | 
 
 
 
 
 | 786 | Hypo = 0x4F505948, | 
 
 
 
 
 | 787 | Shield = 0x444C4853, | 
 
 
 
 
 | 788 | Invisibility = 0x49564E49, | 
 
 
 
 
 | 789 | LSI = 0x49534C41, | 
 
 
 
 
 | 790 | } | 
 
 
 
 
 | 791 |  | 
 
 
 
 
 | 792 | public static readonly MetaStruct PowerUp = new MetaStruct("PowerUp", | 
 
 
 
 
 | 793 | new Field(MetaType.Enum<PowerUpClass>(), "Class") | 
 
 
 
 
 | 794 | ); | 
 
 
 
 
 | 795 |  | 
 
 
 
 
 | 796 | // | 
 
 
 
 
 | 797 | // Sound Object | 
 
 
 
 
 | 798 | // | 
 
 
 
 
 | 799 |  | 
 
 
 
 
 | 800 | internal enum SoundVolumeType | 
 
 
 
 
 | 801 | { | 
 
 
 
 
 | 802 | Box = 0x564C4D45, | 
 
 
 
 
 | 803 | Sphere = 0x53504852 | 
 
 
 
 
 | 804 | } | 
 
 
 
 
 | 805 |  | 
 
 
 
 
 | 806 | public static readonly MetaStruct Sound = new MetaStruct("Sound", | 
 
 
 
 
 | 807 | new Field(MetaType.String32, "Class") | 
 
 
 
 
 | 808 | ); | 
 
 
 
 
 | 809 |  | 
 
 
 
 
 | 810 | public static readonly MetaStruct SoundSphere = new MetaStruct("SoundSphere", | 
 
 
 
 
 | 811 | new Field(MetaType.Float, "MinRadius"), | 
 
 
 
 
 | 812 | new Field(MetaType.Float, "MaxRadius") | 
 
 
 
 
 | 813 | ); | 
 
 
 
 
 | 814 |  | 
 
 
 
 
 | 815 | public static readonly MetaStruct SoundParams = new MetaStruct("SoundParams", | 
 
 
 
 
 | 816 | new Field(MetaType.Float, "Volume"), | 
 
 
 
 
 | 817 | new Field(MetaType.Float, "Pitch") | 
 
 
 
 
 | 818 | ); | 
 
 
 
 
 | 819 |  | 
 
 
 
 
 | 820 | // | 
 
 
 
 
 | 821 | // Trigger Volume Object | 
 
 
 
 
 | 822 | // | 
 
 
 
 
 | 823 |  | 
 
 
 
 
 | 824 | [Flags] | 
 
 
 
 
 | 825 | public enum TriggerVolumeFlags : uint | 
 
 
 
 
 | 826 | { | 
 
 
 
 
 | 827 | None = 0x00, | 
 
 
 
 
 | 828 | OneTimeEnter = 0x01, | 
 
 
 
 
 | 829 | OneTimeInside = 0x02, | 
 
 
 
 
 | 830 | OneTimeExit = 0x04, | 
 
 
 
 
 | 831 | EnterDisabled = 0x08, | 
 
 
 
 
 | 832 | InsideDisabled = 0x10, | 
 
 
 
 
 | 833 | ExitDisabled = 0x20, | 
 
 
 
 
 | 834 | Disabled = 0x40, | 
 
 
 
 
 | 835 | PlayerOnly = 0x80 | 
 
 
 
 
 | 836 | } | 
 
 
 
 
 | 837 |  | 
 
 
 
 
 | 838 | public static readonly MetaStruct TriggerVolume = new MetaStruct("TriggerVolume", | 
 
 
 
 
 | 839 | new Field(MetaType.String63, "Name"), | 
 
 
 
 
 | 840 | new Field(new MetaStruct("TriggerVolumeScripts", | 
 
 
 
 
 | 841 | new Field(MetaType.String32, "Entry"), | 
 
 
 
 
 | 842 | new Field(MetaType.String32, "Inside"), | 
 
 
 
 
 | 843 | new Field(MetaType.String32, "Exit")), "Scripts"), | 
 
 
 
 
 | 844 | new Field(MetaType.Byte, "Teams"), | 
 
 
 
 
 | 845 | new Field(MetaType.Padding(3)), | 
 
 
 
 
 | 846 | new Field(MetaType.Vector3, "Size"), | 
 
 
 
 
 | 847 | new Field(MetaType.Int32, "TriggerVolumeId"), | 
 
 
 
 
 | 848 | new Field(MetaType.Int32, "ParentId"), | 
 
 
 
 
 | 849 | new Field(MetaType.String128, "Notes"), | 
 
 
 
 
 | 850 | new Field(MetaType.Enum<TriggerVolumeFlags>(), "Flags") | 
 
 
 
 
 | 851 | ); | 
 
 
 
 
 | 852 |  | 
 
 
 
 
 | 853 | // | 
 
 
 
 
 | 854 | // Trigger Object | 
 
 
 
 
 | 855 | // | 
 
 
 
 
 | 856 |  | 
 
 
 
 
 | 857 | [Flags] | 
 
 
 
 
 | 858 | public enum TriggerFlags : ushort | 
 
 
 
 
 | 859 | { | 
 
 
 
 
 | 860 | None = 0, | 
 
 
 
 
 | 861 | InitialActive = 0x0008, | 
 
 
 
 
 | 862 | ReverseAnim = 0x0010, | 
 
 
 
 
 | 863 | PingPong = 0x0020, | 
 
 
 
 
 | 864 | } | 
 
 
 
 
 | 865 |  | 
 
 
 
 
 | 866 | public static readonly MetaStruct Trigger = new MetaStruct("Trigger", | 
 
 
 
 
 | 867 | new Field(MetaType.String63, "Class"), | 
 
 
 
 
 | 868 | new Field(MetaType.Int16, "TriggerId"), | 
 
 
 
 
 | 869 | new Field(MetaType.Enum<TriggerFlags>(), "Flags"), | 
 
 
 
 
 | 870 | new Field(MetaType.Color, "LaserColor"), | 
 
 
 
 
 | 871 | new Field(MetaType.Float, "StartPosition"), | 
 
 
 
 
 | 872 | new Field(MetaType.Float, "Speed"), | 
 
 
 
 
 | 873 | new Field(MetaType.Int16, "EmitterCount"), | 
 
 
 
 
 | 874 | new Field(MetaType.Int16, "TimeOn"), | 
 
 
 
 
 | 875 | new Field(MetaType.Int16, "TimeOff") | 
 
 
 
 
 | 876 | ); | 
 
 
 
 
 | 877 |  | 
 
 
 
 
 | 878 | // | 
 
 
 
 
 | 879 | // Turret Object | 
 
 
 
 
 | 880 | // | 
 
 
 
 
 | 881 |  | 
 
 
 
 
 | 882 | [Flags] | 
 
 
 
 
 | 883 | internal enum TurretTargetTeams : uint | 
 
 
 
 
 | 884 | { | 
 
 
 
 
 | 885 | None = 0x00, | 
 
 
 
 
 | 886 | Konoko = 0x01, | 
 
 
 
 
 | 887 | TCTF = 0x02, | 
 
 
 
 
 | 888 | Syndicate = 0x04, | 
 
 
 
 
 | 889 | Neutral = 0x08, | 
 
 
 
 
 | 890 | SecurityGuard = 0x10, | 
 
 
 
 
 | 891 | RogueKonoko = 0x20, | 
 
 
 
 
 | 892 | Switzerland = 0x40, | 
 
 
 
 
 | 893 | SyndicateAccessory = 0x80 | 
 
 
 
 
 | 894 | } | 
 
 
 
 
 | 895 |  | 
 
 
 
 
 | 896 | [Flags] | 
 
 
 
 
 | 897 | internal enum TurretFlags : ushort | 
 
 
 
 
 | 898 | { | 
 
 
 
 
 | 899 | None = 0, | 
 
 
 
 
 | 900 | InitialActive = 0x0002, | 
 
 
 
 
 | 901 | } | 
 
 
 
 
 | 902 |  | 
 
 
 
 
 | 903 | public static readonly MetaStruct Turret = new MetaStruct("Turret", | 
 
 
 
 
 | 904 | new Field(MetaType.String63, "Class"), | 
 
 
 
 
 | 905 | new Field(MetaType.Int16, "TurretId"), | 
 
 
 
 
 | 906 | new Field(MetaType.Enum<TurretFlags>(), "Flags"), | 
 
 
 
 
 | 907 | new Field(MetaType.Padding(36)), | 
 
 
 
 
 | 908 | new Field(MetaType.Enum<TurretTargetTeams>(), "TargetedTeams") | 
 
 
 
 
 | 909 | ); | 
 
 
 
 
 | 910 |  | 
 
 
 
 
 | 911 | // | 
 
 
 
 
 | 912 | // Weapon Object | 
 
 
 
 
 | 913 | // | 
 
 
 
 
 | 914 |  | 
 
 
 
 
 | 915 | public static readonly MetaStruct Weapon = new MetaStruct("Weapon", | 
 
 
 
 
 | 916 | new Field(MetaType.String32, "Class") | 
 
 
 
 
 | 917 | ); | 
 
 
 
 
 | 918 |  | 
 
 
 
 
 | 919 | internal enum EventType | 
 
 
 
 
 | 920 | { | 
 
 
 
 
 | 921 | None, | 
 
 
 
 
 | 922 | Script, | 
 
 
 
 
 | 923 | ActivateTurret, | 
 
 
 
 
 | 924 | DeactivateTurret, | 
 
 
 
 
 | 925 | ActivateConsole, | 
 
 
 
 
 | 926 | DeactivateConsole, | 
 
 
 
 
 | 927 | ActivateAlarm, | 
 
 
 
 
 | 928 | DeactivateAlaram, | 
 
 
 
 
 | 929 | ActivateTrigger, | 
 
 
 
 
 | 930 | DeactivateTrigger, | 
 
 
 
 
 | 931 | LockDoor, | 
 
 
 
 
 | 932 | UnlockDoor | 
 
 
 
 
 | 933 | } | 
 
 
 
 
 | 934 | } | 
 
 
 
 
 | 935 | } |