// // Deep Sea // #include "stagesetup.h" // Characters #define CHR_ELVIS 0x00 #define CHR_BLONDE1 0x22 #define CHR_BLONDE2 0x23 #define CHR_DRCAROLL 0x24 // Objects #define OBJ_POWERNODE1 0x00 #define OBJ_POWERNODE2 0x01 #define OBJ_POWERNODE3 0x02 #define OBJ_BACKUPDISK 0x74 #define OBJ_PROXYMINES 0xb0 // Stage flags #define STAGEFLAG_DRCAROLL_RESTORED 0x00000001 #define STAGEFLAG_ELVIS_SAID_SABOTAGE 0x00000002 #define STAGEFLAG_DONE_FIRST_TELEPORT 0x00000004 #define STAGEFLAG_PURPLE_GUARD_SHOT_JO_OR_ELVIS 0x00000010 #define STAGEFLAG_TELEPORT_DONE 0x00000020 #define STAGEFLAG_ELVIS_FOLLOWING_COOP 0x00000080 #define STAGEFLAG_TELEPORTALS_ACTIVATED 0x00000100 #define STAGEFLAG_MIDCUTSCENE_FINISHED 0x00000200 #define STAGEFLAG_ESCAPED 0x00000400 #define STAGEFLAG_ALLY_DEAD 0x00000800 #define STAGEFLAG_FARSIGHT_AMMO_WASTED 0x00001000 #define STAGEFLAG_TIMER_EXPIRED 0x00002000 #define STAGEFLAG_AGENT_MEGAWEAPON_DISABLED 0x00004000 #define STAGEFLAG_BLONDES_DEAD 0x00008000 #define STAGEFLAG_SA_EXIT_TELEPORT_DISABLED 0x00010000 #define STAGEFLAG_MEGAWEAPON_DISABLED 0x00020000 #define STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING 0x00040000 #define STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON 0x00080000 #define STAGEFLAG_PA_EARLYDOORCYLINDER1_DESTROYED 0x00100000 #define STAGEFLAG_PA_EARLYDOORCYLINDER2_DESTROYED 0x00200000 #define STAGEFLAG_PA_EARLYDOORCYLINDER3_DESTROYED 0x00400000 #define STAGEFLAG_PA_EARLYDOORCYLINDER4_DESTROYED 0x00800000 #define STAGEFLAG_PA_EARLYDOORCYLINDER5_DESTROYED 0x01000000 #define STAGEFLAG_PA_LATEDOORCYLINDER1_DESTROYED 0x02000000 #define STAGEFLAG_PA_LATEDOORCYLINDER2_DESTROYED 0x04000000 #define STAGEFLAG_PA_LATEDOORCYLINDER3_DESTROYED 0x08000000 #define STAGEFLAG_PA_LATEDOORCYLINDER4_DESTROYED 0x10000000 #define STAGEFLAG_PA_CANISTER1_DESTROYED 0x20000000 #define STAGEFLAG_PA_CANISDER2_DESTROYED 0x40000000 #define STAGEFLAG_PA_MIDDOORCYLINDER_DESTROYED 0x80000000 // AI Lists #define AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS 0x0402 #define AILIST_ELVIS_GIVE_FARSIGHT 0x0403 #define AILIST_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON 0x0404 #define AILIST_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON 0x0406 #define AILIST_ELVIS_GO_TO_SA_TELEPORT 0x0407 #define AILIST_INIT_ELVIS 0x040b #define AILIST_BLONDE 0x040c #define AILIST_MINISKEDAR_SEND_CLONES 0x040d #define AILIST_INIT_MINISKEDAR 0x040e #define AILIST_MINISKEDAR 0x040f #define AILIST_OUTRO 0x0410 #define AILIST_HIDE 0x0411 #define AILIST_CLOAK_AND_HIDE 0x0413 #define AILIST_TELEPORT_BOND_TO_SAPA 0x0414 #define AILIST_TELEPORT_BOND_TO_DRCAROLL 0x0415 #define AILIST_TELEPORT_BOND_TO_A_PA_DRCAROLL 0x0416 #define AILIST_TELEPORT_COOP_TO_SAPA 0x0417 #define AILIST_TELEPORT_COOP_TO_DRCAROLL 0x0418 #define AILIST_TELEPORT_COOP_TO_A_PA_DRCAROLL 0x0419 #define AILIST_INIT_SNIPER 0x041a #define AILIST_SNIPER_WAIT_FOR_DETECTION 0x041b #define AILIST_TELEPORT_ACTIVATION_RESPONDER 0x041c #define AILIST_SNIPER 0x041d #define AILIST_INIT_SA_MEGAWEAPON_MINISKEDAR 0x041e #define AILIST_INIT_PA_CIRCLEROOM_MINISKEDAR 0x041f #define AILIST_INIT_PA_DEADENDROOM_MINISKEDAR 0x0420 #define AILIST_MIDCUTSCENE 0x042a #define AILIST_RUN_TO_EXIT 0x042b #define AILIST_ELVIS_STOP 0x042c #define AILIST_ELVIS_WARP_TO_OUTSIDE_DRCAROLL 0x042d #define AILIST_ELVIS_RUN_TO_EXIT 0x042e #define AILIST_INIT_PELAGIC_GUARD 0x042f #define AILIST_MINISKEDAR_UNALERTED 0x0431 #define AILIST_DEAD_SKEDAR 0x0432 // Pads #define PAD_STARTAREA_TELEPORT 0x0116 #define PAD_AGENTAREA_ENTRY 0x01a2 #define PAD_AGENTAREA_TELEPORT 0x01fd #define PAD_SAPAAREA_ENTRY 0x01b6 #define PAD_SAPAAREA_TELEPORT 0x01f9 #define PAD_PAAREA_ENTRY 0x01a5 #define PAD_PAAREA_TELEPORT 0x0200 #define PAD_DRCAROLLROOM_ENTRY 0x01cb s32 intro[]; u32 props[]; struct path paths[]; struct ailist ailists[]; struct stagesetup setup = { NULL, NULL, NULL, intro, props, paths, ailists, NULL, }; u32 props[] = { briefing(0, 0x3001) briefing(1, 0x3000) briefing(2, 0x3002) briefing(3, 0x3003) beginobjective(0, 0x3005, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Reactivate teleportals" complete_flags(STAGEFLAG_TELEPORTALS_ACTIVATED) endobjective beginobjective(1, 0x3006, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable Cetan megaweapon" complete_flags(STAGEFLAG_MEGAWEAPON_DISABLED) fail_flags(STAGEFLAG_FARSIGHT_AMMO_WASTED) endobjective beginobjective(2, 0x3007, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Secure control room" complete_flags(STAGEFLAG_BLONDES_DEAD) endobjective beginobjective(3, 0x3008, (DIFFBIT_PA | DIFFBIT_PD)) // "Restore Dr. Caroll's personality" complete_flags(STAGEFLAG_DRCAROLL_RESTORED) endobjective beginobjective(4, 0x3009, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Escape from Cetan ship" complete_flags(STAGEFLAG_ESCAPED) fail_flags(STAGEFLAG_ALLY_DEAD) fail_flags(STAGEFLAG_TIMER_EXPIRED) endobjective chr(0x00000400, 0x40, 0x01b3, BODY_DDSNIPER, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 200, 0x00002000, 0xc0300000, TEAM_ALLY, SQUADRON_01, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSHOTGUN, 0x0040, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) chr(0x00010000, 0x00, 0x002e, BODY_THEKING, HEAD_ELVIS, GAILIST_IDLE, -1, -1, 1000, 200, 0x00002000, 0xc0300000, TEAM_ALLY, SQUADRON_01, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRZ2020, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FARSIGHTXR20, 0x00ffffff, 0x00000000) tag(0x73, -1) chr(0x00000200, 0x01, 0x018d, BODY_DDSNIPER, HEAD_RANDOM, AILIST_INIT_SNIPER, -1, -1, 100, 30, 0x48080000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSHOTGUN, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) chr(0x00000200, 0x02, 0x019a, BODY_DDSNIPER, HEAD_RANDOM, AILIST_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSHOTGUN, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) chr(0x00000200, 0x03, 0x019b, BODY_DDSNIPER, HEAD_RANDOM, AILIST_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSHOTGUN, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) chr(0x00000200, 0x04, 0x0006, BODY_DDSNIPER, HEAD_RANDOM, AILIST_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, TEAM_ENEMY, SQUADRON_02, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSHOTGUN, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) chr(0x00000200, 0x05, 0x019c, BODY_DDSNIPER, HEAD_RANDOM, AILIST_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, TEAM_ENEMY, SQUADRON_02, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSHOTGUN, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) chr(0x00000200, 0x06, 0x0190, BODY_DDSNIPER, HEAD_RANDOM, AILIST_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, TEAM_ENEMY, SQUADRON_03, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSHOTGUN, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) chr(0x00000200, 0x07, 0x0191, BODY_DDSNIPER, HEAD_RANDOM, AILIST_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, TEAM_ENEMY, SQUADRON_03, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSHOTGUN, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) chr(0x00000200, 0x08, 0x0008, BODY_DDSNIPER, HEAD_RANDOM, AILIST_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, TEAM_ENEMY, SQUADRON_03, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSHOTGUN, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) chr(0x00000200, 0x09, 0x000a, BODY_DDSNIPER, HEAD_RANDOM, AILIST_INIT_SNIPER, -1, -1, 100, 100, 0x48080000, 0x00000000, TEAM_ENEMY, SQUADRON_03, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSHOTGUN, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) chr(0x00000200, 0x0a, 0x019d, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0421, -1, -1, 1000, 100, 0xc0008601, 0x00000000, TEAM_ENEMY, SQUADRON_04, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x0b, 0x019e, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_INIT_PELAGIC_GUARD, -1, -1, 1000, 100, 0xc8080000, 0x00000000, TEAM_ENEMY, SQUADRON_04, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x0c, 0x009a, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_INIT_PELAGIC_GUARD, -1, -1, 1000, 100, 0xc8080000, 0x00000000, TEAM_ENEMY, SQUADRON_04, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x0d, 0x001e, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0422, -1, -1, 1000, 100, 0xe8080000, 0x00000000, TEAM_ENEMY, SQUADRON_05, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x0e, 0x001b, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0423, -1, -1, 1000, 100, 0xe8080000, 0x00000000, TEAM_ENEMY, SQUADRON_05, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x0f, 0x0022, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0425, -1, -1, 1000, 100, 0xe8080000, 0x00000000, TEAM_ENEMY, SQUADRON_05, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x10, 0x0021, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0424, -1, -1, 1000, 100, 0xe8080000, 0x00000000, TEAM_ENEMY, SQUADRON_05, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x11, 0x002c, BODY_MRBLONDE, HEAD_MRBLONDE, GAILIST_UNALERTED, 0x0027, -1, 3000, 10, 0x80028004, 0x00000000, TEAM_ENEMY, SQUADRON_06, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x12, 0x0029, BODY_PELAGIC_GUARD, HEAD_RANDOM, GAILIST_UNALERTED, 0x0024, -1, 3000, 100, 0x80028204, 0x00000000, TEAM_ENEMY, SQUADRON_06, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x13, 0x002b, BODY_PELAGIC_GUARD, HEAD_RANDOM, GAILIST_UNALERTED, 0x0026, -1, 3000, 100, 0x80028204, 0x00000000, TEAM_ENEMY, SQUADRON_06, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x14, 0x01b3, BODY_DDSNIPER, HEAD_RANDOM, AILIST_CLOAK_AND_HIDE, 0x01b3, -1, 1000, 100, 0x80028004, 0x00000000, TEAM_ENEMY, SQUADRON_06, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x15, 0x01b4, BODY_DDSNIPER, HEAD_RANDOM, AILIST_CLOAK_AND_HIDE, 0x01b4, -1, 1000, 100, 0x80028004, 0x00000000, TEAM_ENEMY, SQUADRON_06, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x16, 0x01b5, BODY_DDSNIPER, HEAD_RANDOM, AILIST_CLOAK_AND_HIDE, 0x01b5, -1, 1000, 100, 0x80028004, 0x00000000, TEAM_ENEMY, SQUADRON_06, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000000, 0x25, 0x0064, BODY_MINISKEDAR, 0x00, AILIST_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x26, 0x0079, BODY_MINISKEDAR, 0x00, AILIST_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x27, 0x0067, BODY_MINISKEDAR, 0x00, AILIST_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x28, 0x0075, BODY_MINISKEDAR, 0x00, AILIST_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x29, 0x0080, BODY_MINISKEDAR, 0x00, AILIST_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x2a, 0x0085, BODY_MINISKEDAR, 0x00, AILIST_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x2b, 0x007c, BODY_MINISKEDAR, 0x00, AILIST_HIDE, -1, -1, 1000, 9, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x000002c0, 0x17, 0x00c5, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0426, -1, -1, 100, 100, 0xc8090000, 0x00000000, TEAM_ENEMY, SQUADRON_07, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x000002c0, 0x18, 0x00c7, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0427, -1, -1, 100, 100, 0xc8090000, 0x00000000, TEAM_ENEMY, SQUADRON_07, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x000002c0, 0x19, 0x00cb, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0428, -1, -1, 100, 100, 0xc8090000, 0x00000000, TEAM_ENEMY, SQUADRON_07, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x000002c0, 0x1a, 0x01b8, BODY_PELAGIC_GUARD, HEAD_RANDOM, GAILIST_UNALERTED, -1, -1, 100, 100, 0xc8090000, 0x00000000, TEAM_ENEMY, SQUADRON_08, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x000002c0, 0x1b, 0x01b7, BODY_PELAGIC_GUARD, HEAD_RANDOM, GAILIST_UNALERTED, -1, -1, 100, 100, 0xc8090000, 0x00000000, TEAM_ENEMY, SQUADRON_08, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x000002c0, 0x1c, 0x00be, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0429, -1, -1, 100, 100, 0xc8090000, 0x00000000, TEAM_ENEMY, SQUADRON_08, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x000002c0, 0x1d, 0x01b9, BODY_PELAGIC_GUARD, HEAD_RANDOM, GAILIST_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, TEAM_ENEMY, SQUADRON_09, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x000002c0, 0x1e, 0x01ba, BODY_PELAGIC_GUARD, HEAD_RANDOM, GAILIST_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, TEAM_ENEMY, SQUADRON_09, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x000002c0, 0x1f, 0x01bb, BODY_PELAGIC_GUARD, HEAD_RANDOM, GAILIST_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, TEAM_ENEMY, SQUADRON_09, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x000002c0, 0x20, 0x01bc, BODY_PELAGIC_GUARD, HEAD_RANDOM, GAILIST_UNALERTED, -1, -1, 100, 100, 0xc0012000, 0x00000000, TEAM_ENEMY, SQUADRON_09, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000100, 0x22, 0x0192, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_BLONDE, -1, -1, 100, 100, 0xc8082000, 0x00000000, TEAM_ALLY, SQUADRON_0F, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRAVENGER, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) chr(0x00010500, 0x24, 0x0193, BODY_DRCAROLL, 0x00, GAILIST_IDLE, -1, -1, 100, 100, 0xc8080000, 0x00000000, TEAM_ALLY, SQUADRON_05, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRAVENGER, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) chr(0x00000100, 0x23, 0x0194, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_BLONDE, -1, -1, 100, 100, 0xc8082000, 0x00000000, TEAM_ALLY, SQUADRON_0F, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRAVENGER, 0x0023, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000) chr(0x00000000, 0x2f, 0x01a6, BODY_MINISKEDAR, 0x00, AILIST_MINISKEDAR_UNALERTED, -1, -1, 1000, 12, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000100, 0x30, 0x01a7, BODY_MINISKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000100, 0x31, 0x01a8, BODY_MINISKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000100, 0x32, 0x01a9, BODY_MINISKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000100, 0x33, 0x01aa, BODY_MINISKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000100, 0x34, 0x01ab, BODY_MINISKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000100, 0x35, 0x01ac, BODY_MINISKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 12, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x36, 0x01ad, BODY_MINISKEDAR, 0x00, AILIST_MINISKEDAR_UNALERTED, -1, -1, 1000, 12, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x37, 0x01ae, BODY_MINISKEDAR, 0x00, AILIST_MINISKEDAR_UNALERTED, -1, -1, 1000, 12, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x38, 0x01af, BODY_MINISKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x39, 0x01b0, BODY_MINISKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x3a, 0x01b1, BODY_MINISKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000000, 0x3b, 0x01b2, BODY_MINISKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 11, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00000200, 0x3c, 0x01c0, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 5, 0xe8080000, 0x00000000, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x003c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x3d, 0x01c1, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 5, 0xe8080000, 0x00000000, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x003d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000200, 0x3e, 0x01c2, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 5, 0xe8080000, 0x00000000, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x003e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) chr(0x00000000, 0x3f, 0x0012, BODY_PELAGIC_GUARD, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 100, 30, 0x48080000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSHOTGUN, 0x003f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SHOTGUN, 0x00ffffff, 0x00000000) chr(0x00004400, 0x21, 0x0117, BODY_SKEDAR, HEAD_RANDOM, AILIST_DEAD_SKEDAR, -1, -1, 100, 100, 0xc8090000, 0x00000000, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0x00000000) tag(0x75, 1) door(0x0100, MODEL_CETANDOOR, 0x0157, 0x10000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0xae, 1) door(0x0100, MODEL_CETANDOOR, 0x0156, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0xab, 1) door(0x0100, MODEL_CETANDOOR, 0x015c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x0158, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00007333, 0x00006666, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0xb3, 2) tag(0xb4, 2) door(0x0100, MODEL_AL_AIRLOCK, 0x014b, 0x10000000, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_AL_AIRLOCK, 0x014c, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0xb5, 2) tag(0xb6, 2) door(0x0100, MODEL_AL_AIRLOCK, 0x014d, 0x10000000, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_AL_AIRLOCK, 0x014e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00006666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_AL_AIRLOCK, 0x014f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000570a, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_AL_AIRLOCK, 0x0150, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000570a, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_AL_AIRLOCK, 0x0151, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00005c28, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_AL_AIRLOCK, 0x0152, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00005c28, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0x03, 3) tag(0x04, 3) tag(0x05, 3) door(0x0100, MODEL_CETANSMALLDOOR, 0x0153, 0x02000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000001, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANSMALLDOOR, 0x0155, 0x02000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000001, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANSMALLDOOR, 0x0154, 0x02000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000001, 0x00004650, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x016f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x016e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOORSIDE, 0x0174, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOORSIDE, 0x0175, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0xb7, 2) tag(0xb8, 2) door(0x0100, MODEL_CETANDOORSIDE, 0x0177, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOORSIDE, 0x0176, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOORSIDE, 0x0179, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOORSIDE, 0x0178, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000b333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x000c0000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x0169, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x016a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x016b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0xb1, 1) door(0x0100, MODEL_CETANDOOR, 0x016c, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x016d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0x09, 1) door(0x0100, MODEL_CETANDOOR, 0x0159, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x015a, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x015d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x015b, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00009999, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0x0b, 1) door(0x0100, MODEL_CETANDOOR, 0x015e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x015f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x0160, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x0161, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x0162, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x0163, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x0164, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x0165, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0x0d, 1) door(0x0100, MODEL_CETANDOOR, 0x0166, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_CETANDOOR, 0x0167, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0x0f, 1) door(0x0100, MODEL_CETANDOOR, 0x0168, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000c000, 0x00035555, 0x00035555, 0x00000222, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001700, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0x07, 1) lift(0x0100, MODEL_AL_DOCKLIFT, 0x0185, 0x03520508, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0185, 0x0186, 0x01870186, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x00085555, 0x15000000, 0x00000000, 0x00000000, 0x00000000) tag(0x00, 3) tag(0x01, 3) tag(0x02, 3) stdobject(0x00e6, MODEL_POWERNODE, 0x028d, 0x004005e1, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x00e6, MODEL_POWERNODE, 0x028e, 0x004005e1, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x00e6, MODEL_POWERNODE, 0x028f, 0x004005e1, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x08, 1) weapon(0x0180, MODEL_CHRBUG, 0xffff, 0x00000001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FARSIGHTXR20, 0x00ffffff, 0x00000000) tag(0x11, 4) tag(0x12, 4) tag(0x13, 4) tag(0x9c, 4) glass(0x0100, MODEL_CETANWINDOW1, 0x0203, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW1, 0x0204, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW1, 0x0205, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0291, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x14, 4) tag(0x15, 4) tag(0x16, 4) tag(0x9d, 4) glass(0x0100, MODEL_CETANWINDOW1, 0x0206, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW1, 0x0207, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW1, 0x0208, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0290, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x17, 4) tag(0x18, 4) tag(0x19, 4) tag(0x9e, 4) glass(0x0100, MODEL_CETANWINDOW1, 0x0209, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW1, 0x020a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW1, 0x020b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0292, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x1a, 4) tag(0x1b, 4) tag(0x1c, 4) tag(0x9f, 4) glass(0x0100, MODEL_CETANWINDOW1, 0x020c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW1, 0x020d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW1, 0x020e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0293, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x1d, 4) tag(0x1e, 4) tag(0x1f, 4) tag(0xa0, 4) glass(0x0100, MODEL_CETANWINDOW1, 0x020f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW1, 0x0210, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW1, 0x0211, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0294, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x20, 12) tag(0x21, 12) tag(0x22, 12) tag(0x23, 12) tag(0x24, 12) tag(0x25, 12) tag(0x26, 12) tag(0x27, 12) tag(0x28, 12) tag(0x29, 12) tag(0x2a, 12) tag(0x2b, 12) glass(0x0100, MODEL_CETANWINDOW2, 0x0212, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0213, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0214, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0215, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0216, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0217, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0218, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0219, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x021a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x021b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x021c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x021d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0295, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0xa1, -1) tag(0x2c, 12) tag(0x2d, 12) tag(0x2e, 12) tag(0x2f, 12) tag(0x30, 12) tag(0x31, 12) tag(0x32, 12) tag(0x33, 12) tag(0x34, 12) tag(0x35, 12) tag(0x36, 12) tag(0x37, 12) glass(0x0100, MODEL_CETANWINDOW2, 0x021e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x021f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0220, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0221, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0222, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0223, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0224, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0225, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0226, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0227, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0228, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0229, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0296, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0xa2, -1) tag(0x38, 12) tag(0x39, 12) tag(0x3a, 12) tag(0x3b, 12) tag(0x3c, 12) tag(0x3d, 12) tag(0x3e, 12) tag(0x3f, 12) tag(0x40, 12) tag(0x41, 12) tag(0x42, 12) tag(0x43, 12) glass(0x0100, MODEL_CETANWINDOW2, 0x022a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x022b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x022c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x022d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x022e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x022f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0230, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0231, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0232, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0233, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0234, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0235, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0297, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0xa3, -1) tag(0x44, 12) tag(0x45, 12) tag(0x46, 12) tag(0x47, 12) tag(0x48, 12) tag(0x49, 12) tag(0x4a, 12) tag(0x4b, 12) tag(0x4c, 12) tag(0x4d, 12) tag(0x4e, 12) tag(0x4f, 12) glass(0x0100, MODEL_CETANWINDOW2, 0x0236, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0237, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0238, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0239, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x023a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x023b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x023c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x023d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x023e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x023f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0240, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0241, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0298, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0xa4, -1) tag(0x50, 12) tag(0x51, 12) tag(0x52, 12) tag(0x52, 12) tag(0x53, 12) tag(0x54, 12) tag(0x55, 12) tag(0x56, 12) tag(0x57, 12) tag(0x58, 12) tag(0x59, 12) tag(0x5a, 12) glass(0x0100, MODEL_CETANWINDOW2, 0x0242, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0243, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0244, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0245, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0246, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0247, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0248, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0249, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x024a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x024b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x024c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x024d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x0299, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0xa5, -1) chr(0x00000100, 0x41, 0x024e, BODY_MINISKEDAR, HEAD_MRBLONDE, GAILIST_IDLE, -1, -1, 100, 100, 0xc8082000, 0x00000000, TEAM_NONCOMBAT, SQUADRON_0F, -1, 0, 0x00000000) chr(0x00000100, 0x42, 0x025a, BODY_MINISKEDAR, HEAD_MRBLONDE, GAILIST_IDLE, -1, -1, 100, 100, 0xc8082000, 0x00000000, TEAM_NONCOMBAT, SQUADRON_0F, -1, 0, 0x00000000) tag(0x5b, 12) tag(0x5c, 12) tag(0x5d, 12) tag(0x5e, 12) tag(0x5f, 12) tag(0x60, 12) tag(0x61, 12) tag(0x62, 12) tag(0x63, 12) tag(0x64, 12) tag(0x65, 12) tag(0x66, 12) glass(0x0100, MODEL_CETANWINDOW2, 0x024e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x024f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0250, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0251, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0252, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0253, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0254, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0255, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0256, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0257, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0258, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0259, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x029a, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0xa6, -1) tag(0x67, 12) tag(0x68, 12) tag(0x69, 12) tag(0x6a, 12) tag(0x6b, 12) tag(0x6c, 12) tag(0x6d, 12) tag(0x6e, 12) tag(0x6f, 12) tag(0x70, 12) tag(0x71, 12) tag(0x72, 12) glass(0x0100, MODEL_CETANWINDOW2, 0x025a, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x025b, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x025c, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x025d, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x025e, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x025f, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0260, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0261, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0262, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0263, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW2, 0x0264, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) glass(0x0100, MODEL_CETANWINDOW3, 0x0265, 0x14000b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0x029b, 0x012404e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0xa7, -1) tag(0xa8, 1) autogun(0x0100, MODEL_CETROOFGUN, 0x0188, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00e40000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00640000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) tag(0xa9, 1) autogun(0x0100, MODEL_CETROOFGUN, 0x0189, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00f80000, 0x00000000, 0x00004000, 0xffffc000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00640000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) tag(0xaa, 1) autogun(0x0100, MODEL_CETROOFGUN, 0x018a, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00e40000, 0x00000000, 0x00008000, 0xffff8000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000da, 0x00640000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) glass(0x0100, MODEL_DD_WINDOW, 0x0266, 0x14020b62, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000) tag(0xbb, 1) stdobject(0x0040, MODEL_ZIGGYCARD, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x74, 1) weapon(0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_BACKUPDISK, 0x00ffffff, 0x00000000) rename_object(-1, 0x44, 0x3017, 0x3018, 0x3019, 0x301a, 0x301b, 0x0000, 0x0000) // "" tag(0x76, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x77, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x78, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x79, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x7a, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x7b, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x7c, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x7d, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x7e, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x7f, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x80, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x81, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x82, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x83, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x84, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x85, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x86, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x87, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x88, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x89, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x8a, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x8b, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x8c, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x8d, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x8e, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x8f, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x90, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x91, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x92, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x93, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x94, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x95, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x96, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x97, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x98, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x99, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x9a, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x9b, 1) stdobject(0x0100, MODEL_CHRREMOTEMINE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0xac, 1) shield(0x0100, MODEL_CHRSHIELD, 0x0012, 0x00000001, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) tag(0xad, 1) shield(0x0100, MODEL_CHRSHIELD, 0x001a, 0x00004001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) tag(0xb0, 1) weapon(0x0080, MODEL_MULTI_AMMO_CRATE, 0x0008, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PROXIMITYMINE, 0x00ffffff, 0x00000000) endprops }; s32 intro[] = { intro_weapon(WEAPON_FALCON2_SCOPE, -1) ammo(AMMOTYPE_PISTOL, 50) ammo(AMMOTYPE_PROXY_MINE, 2) intro_weapon(WEAPON_SHOTGUN, -1) ammo(AMMOTYPE_SHOTGUN, 100) ammo(AMMOTYPE_FARSIGHT, 50) intro_weapon(WEAPON_IRSCANNER, -1) spawn(0x018b) outfit(OUTFIT_DEEPSEA) endintro }; s32 path02[] = { 0x0099, 0x0098, 0x000e, 0x000d, 0x000c, -1, }; s32 path03[] = { 0x001e, 0x0096, 0x0095, -1, }; s32 path04[] = { 0x001b, 0x001a, 0x001c, 0x001d, -1, }; s32 path05[] = { 0x0021, 0x0020, 0x001f, -1, }; s32 path06[] = { 0x0022, 0x001a, 0x001c, -1, }; s32 path07[] = { 0x00c4, 0x00c5, 0x00c6, 0x00c7, -1, }; s32 path08[] = { 0x00c7, 0x00c8, -1, }; s32 path09[] = { 0x00cb, 0x00cc, -1, }; s32 path10[] = { 0x00be, 0x00bf, 0x00c1, -1, }; u8 func0401_unused[] = { dprint 'h','o','v','\n',0, begin_hovercar_path(0x00) set_vehicle_speed(384, 120) beginloop(0x04) endloop(0x04) endlist }; u8 func1001_objectives_failed_msg[] = { yield set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG) endlist }; u8 func1400_setup_counterop[] = { yield set_chr_team(CHR_ANTI, TEAM_ENEMY) set_ailist(CHR_SELF, GAILIST_REBUILD_GROUPS) endlist }; u8 func040b_init_elvis[] = { set_self_chrflag(CHRCFLAG_00080000) set_self_chrflag(CHRCFLAG_00040000) set_self_chrflag(CHRCFLAG_01000000) set_accuracy(100) set_reaction_speed(100) set_alertness(100) set_chr_maxdamage(CHR_SELF, 1) add_health_or_armor(900) set_ailist(CHR_SELF, AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) endlist }; u8 func0402_elvis_follow_and_reactive_teleportals[] = { dprint 'B','A','C','K',' ','T','O',' ','E','L','V','I','S','\n',0, set_returnlist(CHR_SELF, AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) set_shotlist(AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) set_target_chr(CHR_PRESET) if_chr_dying(CHR_SELF, /*goto*/ 0x2e) if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Dying label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x06) if_just_injured(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Injured label(0x2e) if_sound_finished(CHANNEL_6, /*goto*/ 0x2f) goto_next(0x12) label(0x2f) say_quip(CHR_BOND, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) beginloop(0x12) if_chr_stopped(/*goto*/ 0x06) endloop(0x12) // Not injured label(0x06) if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x2e) if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) goto_next(0x06) // Has flag label(0x2e) if_enemy_distance_lt_and_los(100, /*goto*/ 0x08) // No enemy nearby label(0x06) set_target_chr(CHR_PRESET) if_distance_to_target_lt(200, /*goto*/ 0x06) // Jo distance >= 200 label(0x03) dprint 'G','O','T','O','W','\n',0, set_target_chr(CHR_PRESET) restart_timer if_distance_to_target_gt(300, /*goto*/ 0x06) try_jog_to_target(/*goto*/ 0x04) // Jo distance < 200 or distance > 300 label(0x06) try_run_to_target(/*goto*/ 0x04) beginloop(0x04) if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x2e) if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) goto_next(0x06) label(0x2e) if_enemy_distance_lt_and_los(100, /*goto*/ 0x08) label(0x06) if_stage_flag_eq(STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x2e) if_chr_in_room(CHR_ELVIS, 0x00, 0x003c, /*goto*/ 0x5f) label(0x2e) set_target_chr(CHR_PRESET) if_distance_to_target_lt(200, /*goto*/ 0x06) if_timer_gt(60, /*goto*/ 0x2e) endloop(0x04) label(0x2e) goto_first(0x03) // Waiting next to Jo? label(0x06) stop_chr beginloop(0x09) if_self_flag_bankx_eq(CHRFLAG1_00000001, TRUE, BANK_1, /*goto*/ 0x2e) if_enemy_distance_lt_and_los(2540, /*goto*/ 0x08) goto_next(0x06) label(0x2e) if_enemy_distance_lt_and_los(100, /*goto*/ 0x08) label(0x06) if_stage_flag_eq(STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x2e) if_chr_in_room(CHR_ELVIS, 0x00, 0x003c, /*goto*/ 0x5f) label(0x2e) set_target_chr(CHR_PRESET) if_distance_to_target_gt(300, /*goto*/ 0x06) endloop(0x09) label(0x06) goto_first(0x03) // Enemy detected label(0x08) yield if_sound_finished(CHANNEL_6, /*goto*/ 0x06) goto_next(0x2e) label(0x06) call_rng if_rand_lt(85, /*goto*/ 0x63) if_rand_lt(170, /*goto*/ 0x64) say_quip(CHR_BOND, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) goto_next(0x2e) label(0x63) say_quip(CHR_BOND, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) goto_next(0x2e) label(0x64) say_quip(CHR_BOND, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) label(0x2e) set_shotlist(AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) set_returnlist(CHR_SELF, AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) set_ailist(CHR_SELF, GAILIST_COMBAT_WITH_TARGET) // In teleport control room label(0x5f) stop_chr speak(CHR_TARGET, 0x301d, 0x14eb, CHANNEL_6, COLOR_04_ORANGE) // "Time to reactivate those teleportals." jog_to_pad(0x01c3) beginloop(0x0f) if_chr_stopped(/*goto*/ 0x2e) endloop(0x0f) label(0x6f) label(0x2e) unset_self_chrflag(CHRCFLAG_01000000) chr_do_animation(ANIM_OPERATE_0204, -1, -1, 0x02, 0x10, CHR_SELF, 2) beginloop(0x10) if_chr_stopped(/*goto*/ 0x06) endloop(0x10) label(0x06) say_quip(CHR_BOND, 0x2c, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) message(CHR_BOND, 0x301e) // "Teleportals have been reactivated." set_stage_flag(STAGEFLAG_TELEPORTALS_ACTIVATED) set_self_chrflag(CHRCFLAG_01000000) play_sound(0x8148, -1) set_lights_state(0x003c, 0x04, 0x00, 0xff, 0xb4) set_chr_chrflag(0x14, CHRCFLAG_00040000) set_chr_chrflag(0x15, CHRCFLAG_00040000) set_chr_chrflag(0x16, CHRCFLAG_00040000) unset_chr_chrflag(0x14, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) unset_chr_chrflag(0x15, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) unset_chr_chrflag(0x16, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) set_ailist(0x14, AILIST_TELEPORT_ACTIVATION_RESPONDER) set_ailist(0x15, AILIST_TELEPORT_ACTIVATION_RESPONDER) set_ailist(0x16, AILIST_TELEPORT_ACTIVATION_RESPONDER) goto_first(0x03) label(0x60) set_ailist(CHR_SELF, AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) endlist }; u8 func0433_unused[] = { beginloop(0x04) set_target_chr(CHR_BOND) if_within_units_of_sight(30, /*goto*/ 0x06) set_target_chr(CHR_COOP) if_within_units_of_sight(30, /*goto*/ 0x06) set_target_chr(CHR_ANTI) if_within_units_of_sight(30, /*goto*/ 0x06) goto_next(0x2e) label(0x06) endloop(0x04) label(0x2e) unset_self_flag_bankx(CHRFLAG0_UNSURPRISABLE, BANK_0) set_ailist(CHR_SELF, GAILIST_ALERTED) endlist }; /** * This is also assigned to Elvis on PA, but in that case it's a general follow * function because he can't enter the agent megaweapon room on PA. */ u8 func0404_elvis_follow_and_do_agent_megaweapon[] = { set_self_chrflag(CHRCFLAG_00080000) unset_self_flag_bankx(CHRFLAG1_00200000, BANK_1) set_shotlist(AILIST_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) set_target_chr(CHR_PRESET) if_chr_dying(CHR_SELF, /*goto*/ 0x2e) if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Dying label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x06) if_just_injured(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Injured label(0x2e) say_quip(CHR_BOND, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) beginloop(0x12) if_chr_stopped(/*goto*/ 0x06) endloop(0x12) // Healthy label(0x06) if_stage_flag_eq(STAGEFLAG_AGENT_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e) if_stage_flag_eq(STAGEFLAG_ELVIS_SAID_SABOTAGE, TRUE, /*goto*/ 0x5f) label(0x2e) if_enemy_distance_lt_and_los(2000, /*goto*/ 0x08) set_target_chr(CHR_PRESET) if_distance_to_target_lt(200, /*goto*/ 0x06) label(0x03) set_target_chr(CHR_PRESET) restart_timer if_distance_to_target_gt(300, /*goto*/ 0x06) try_jog_to_target(/*goto*/ 0x04) label(0x06) try_run_to_target(/*goto*/ 0x04) beginloop(0x04) if_stage_flag_eq(STAGEFLAG_AGENT_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e) if_chr_in_room(CHR_ELVIS, 0x00, 0x006c, /*goto*/ 0x1d) label(0x2e) dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, if_enemy_distance_lt_and_los(2000, /*goto*/ 0x08) set_target_chr(CHR_PRESET) if_distance_to_target_lt(200, /*goto*/ 0x06) if_timer_gt(60, /*goto*/ 0x2e) endloop(0x04) label(0x2e) goto_first(0x03) label(0x06) stop_chr beginloop(0x09) dprint 'B','4',' ','P','A','D','\n',0, if_stage_flag_eq(STAGEFLAG_AGENT_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e) if_chr_in_room(CHR_ELVIS, 0x00, 0x006c, /*goto*/ 0x1d) label(0x2e) dprint 'A','T',' ','P','A','D','\n',0, if_enemy_distance_lt_and_los(2000, /*goto*/ 0x08) set_target_chr(CHR_PRESET) if_distance_to_target_gt(300, /*goto*/ 0x06) endloop(0x09) label(0x06) goto_first(0x03) label(0x08) dprint 'D','E','T','E','C','T','E','D','\n',0, call_rng if_rand_lt(85, /*goto*/ 0x63) if_rand_lt(170, /*goto*/ 0x64) say_quip(CHR_BOND, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) goto_next(0x2e) label(0x63) say_quip(CHR_BOND, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) goto_next(0x2e) label(0x64) say_quip(CHR_BOND, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) label(0x2e) set_shotlist(AILIST_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) set_returnlist(CHR_SELF, AILIST_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) set_ailist(CHR_SELF, GAILIST_COMBAT_WITH_TARGET) // In Agent megaweapon room label(0x1d) speak(CHR_TARGET, 0x301c, 0x14ec, CHANNEL_6, COLOR_04_ORANGE) // "It looks like this could benefit from a little bit..." label(0x5f) set_stage_flag(STAGEFLAG_ELVIS_SAID_SABOTAGE) stop_chr jog_to_pad(0x005f) beginloop(0x0f) if_chr_stopped(/*goto*/ 0x2e) endloop(0x0f) label(0x6f) label(0x2e) unset_self_chrflag(CHRCFLAG_01000000) restart_timer chr_do_animation(ANIM_OPERATE_0205, -1, -1, 0x00, 0x10, CHR_SELF, 2) beginloop(0x10) if_chr_stopped(/*goto*/ 0x06) endloop(0x10) label(0x06) say_quip(CHR_BOND, 0x2c, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) set_self_chrflag(CHRCFLAG_01000000) message(CHR_BOND, 0x3014) // "Cetan megaweapon has been disabled." set_stage_flag(STAGEFLAG_AGENT_MEGAWEAPON_DISABLED) set_stage_flag(STAGEFLAG_MEGAWEAPON_DISABLED) set_lights_state(0x006c, 0x03, 0x64, 0xff, 0x78) assign_sound(0x8148, CHANNEL_7) play_sound_from_entity(CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01) unlock_door(0xb7, 0x02) unlock_door(0xb8, 0x02) goto_first(0x03) label(0x60) set_ailist(CHR_SELF, AILIST_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) endlist }; /** * Seems to be a general follow function for Elvis. * He does not engage in combat. * * @unused */ u8 func0405_elvis_follow_nocombat[] = { set_self_chrflag(CHRCFLAG_00080000) unset_self_flag_bankx(CHRFLAG1_00200000, BANK_1) set_shotlist(0x0405) set_target_chr(CHR_PRESET) if_chr_dying(CHR_SELF, /*goto*/ 0x2e) if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Dying label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x06) if_just_injured(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Injured label(0x2e) say_quip(CHR_BOND, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) beginloop(0x12) if_chr_stopped(/*goto*/ 0x06) endloop(0x12) label(0x06) if_enemy_distance_lt_and_los(300, /*goto*/ 0x08) set_target_chr(CHR_PRESET) if_distance_to_target_lt(200, /*goto*/ 0x06) label(0x03) set_target_chr(CHR_PRESET) restart_timer if_distance_to_target_gt(300, /*goto*/ 0x06) try_jog_to_target(/*goto*/ 0x04) label(0x06) try_run_to_target(/*goto*/ 0x04) beginloop(0x04) label(0x2e) dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, if_enemy_distance_lt_and_los(300, /*goto*/ 0x08) set_target_chr(CHR_PRESET) if_distance_to_target_lt(200, /*goto*/ 0x06) if_timer_gt(60, /*goto*/ 0x2e) endloop(0x04) label(0x2e) goto_first(0x03) label(0x06) stop_chr beginloop(0x09) dprint 'B','4',' ','P','A','D','\n',0, label(0x2e) dprint 'A','T',' ','P','A','D','\n',0, if_enemy_distance_lt_and_los(2000, /*goto*/ 0x08) set_target_chr(CHR_PRESET) if_distance_to_target_gt(300, /*goto*/ 0x06) endloop(0x09) label(0x06) goto_first(0x03) // Detected enemy label(0x08) restart_timer say_quip(CHR_BOND, 0x29, 0xff, 0x14, 0xff, BANK_1, 0x00, 0x00) retreat(SPEED_RUN, 1) beginloop(0x09) if_timer_gt(120, /*goto*/ 0x2e) endloop(0x09) label(0x2e) goto_first(0x03) endlist }; u8 func0406_elvis_follow_and_do_sa_megaweapon[] = { set_shotlist(AILIST_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON) set_target_chr(CHR_PRESET) if_chr_dying(CHR_SELF, /*goto*/ 0x2e) if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Dying label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x06) if_just_injured(CHR_SELF, /*goto*/ 0x2e) goto_next(0x5f) // Injured label(0x2e) say_quip(CHR_BOND, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) beginloop(0x12) if_chr_stopped(/*goto*/ 0x5f) endloop(0x12) label(0x5f) if_stage_flag_eq(STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON, TRUE, /*goto*/ 0x1b) restart_timer if_distance_to_target_lt(400, /*goto*/ 0x2e) jog_to_pad(0x00b4) goto_next(0x0f) label(0x2e) label(0x1c) run_to_pad(0x00b4) beginloop(0x0f) if_timer_gt(300, /*goto*/ 0x06) if_chr_stopped(/*goto*/ 0x2e) endloop(0x0f) label(0x06) goto_first(0x5f) label(0x2e) restart_timer try_face_entity(0x0008, 0x0115, /*goto*/ 0x97) beginloop(0x97) if_timer_gt(60, /*goto*/ 0x06) if_chr_stopped(/*goto*/ 0x06) endloop(0x97) label(0x06) restart_timer label(0x1b) set_stage_flag(STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON) unset_self_chrflag(CHRCFLAG_01000000) call_rng if_rand_lt(86, /*goto*/ 0x63) if_rand_lt(172, /*goto*/ 0x64) chr_do_animation(ANIM_OPERATE_0204, -1, -1, 0x02, 0x10, CHR_SELF, 2) goto_next(0x11) label(0x63) chr_do_animation(ANIM_OPERATE_0205, -1, -1, 0x02, 0x10, CHR_SELF, 2) goto_next(0x11) label(0x64) chr_do_animation(ANIM_OPERATE_0206, -1, -1, 0x02, 0x10, CHR_SELF, 2) goto_next(0x11) beginloop(0x11) if_chr_idle(/*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_timer_gt(3600, /*goto*/ 0x2e) endloop(0x11) label(0x06) goto_first(0x1b) label(0x2e) say_quip(CHR_BOND, 0x2c, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) set_self_chrflag(CHRCFLAG_01000000) message(CHR_BOND, 0x3014) // "Cetan megaweapon has been disabled." set_stage_flag(STAGEFLAG_MEGAWEAPON_DISABLED) try_equip_weapon(MODEL_CHRMAIANPISTOL, WEAPON_PHOENIX, 0x00000000, /*goto*/ 0x04) label(0x04) set_ailist(CHR_SELF, AILIST_ELVIS_GO_TO_SA_TELEPORT) goto_first(0x03) label(0x60) set_ailist(CHR_SELF, AILIST_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON) endlist }; u8 func0407_elvis_go_to_sa_teleport[] = { set_shotlist(AILIST_ELVIS_GO_TO_SA_TELEPORT) set_target_chr(CHR_PRESET) if_chr_dying(CHR_SELF, /*goto*/ 0x2e) if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Dying label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x06) if_just_injured(CHR_SELF, /*goto*/ 0x2e) goto_next(0x5f) // Injured label(0x2e) say_quip(CHR_BOND, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) beginloop(0x12) if_chr_stopped(/*goto*/ 0x06) endloop(0x12) label(0x06) set_target_chr(CHR_PRESET) label(0x5f) restart_timer if_distance_to_target_lt(1400, /*goto*/ 0x2e) jog_to_pad(0x00c0) goto_next(0x0f) label(0x2e) run_to_pad(0x00c0) beginloop(0x0f) if_enemy_distance_lt_and_los(800, /*goto*/ 0x08) if_timer_gt(300, /*goto*/ 0x06) if_chr_stopped(/*goto*/ 0x2e) endloop(0x0f) label(0x06) goto_first(0x5f) label(0x2e) stop_chr beginloop(0x10) if_enemy_distance_lt_and_los(800, /*goto*/ 0x08) endloop(0x10) label(0x06) restart_timer label(0x08) dprint 'D','E','T','E','C','T','E','D','\n',0, call_rng if_rand_lt(85, /*goto*/ 0x63) if_rand_lt(170, /*goto*/ 0x64) say_quip(CHR_BOND, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) goto_next(0x2e) label(0x63) say_quip(CHR_BOND, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) goto_next(0x2e) label(0x64) say_quip(CHR_BOND, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) label(0x2e) set_shotlist(AILIST_ELVIS_GO_TO_SA_TELEPORT) set_returnlist(CHR_SELF, AILIST_ELVIS_GO_TO_SA_TELEPORT) set_ailist(CHR_SELF, GAILIST_COMBAT_WITH_TARGET) endlist }; u8 func0403_elvis_give_farsight[] = { set_shotlist(AILIST_ELVIS_GIVE_FARSIGHT) set_target_chr(CHR_PRESET) if_chr_dying(CHR_SELF, /*goto*/ 0x2e) if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Dying label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x06) if_just_injured(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Injured label(0x2e) say_quip(CHR_BOND, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) beginloop(0x12) if_chr_stopped(/*goto*/ 0x06) endloop(0x12) // Healthy label(0x06) set_target_chr(CHR_PRESET) if_distance_to_target_lt(200, /*goto*/ 0x06) label(0x03) set_target_chr(CHR_PRESET) restart_timer if_distance_to_target_gt(300, /*goto*/ 0x06) try_jog_to_target(/*goto*/ 0x04) label(0x06) try_run_to_target(/*goto*/ 0x04) beginloop(0x04) dprint 'G','O',' ','T','O',' ','P','A','D','\n',0, set_target_chr(CHR_PRESET) if_distance_to_target_lt(200, /*goto*/ 0x06) if_timer_gt(60, /*goto*/ 0x2e) endloop(0x04) label(0x2e) goto_first(0x03) label(0x06) stop_chr label(0x09) do_preset_animation(5) speak(CHR_TARGET, 0x3012, 0x12ea, CHANNEL_6, COLOR_04_ORANGE) // "Here, take this gun and keep those Skedar off my b..." give_object_to_chr(0x73, CHR_TARGET) yield set_stage_flag(STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING) beginloop(0x0a) if_sound_finished(CHANNEL_6, /*goto*/ 0x2e) endloop(0x0a) label(0x2e) if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) if_difficulty_lt(DIFF_PA, /*goto*/ 0x06) // PA unset_self_flag_bankx(CHRFLAG1_00200000, BANK_1) yield try_equip_weapon(MODEL_CHRMAIANPISTOL, WEAPON_PHOENIX, 0x00000000, /*goto*/ 0x2f) label(0x2f) set_ailist(CHR_SELF, AILIST_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) // SA label(0x06) set_ailist(CHR_SELF, AILIST_ELVIS_FOLLOW_AND_DO_SA_MEGAWEAPON) // Agent label(0x2e) yield try_equip_weapon(MODEL_CHRMAIANPISTOL, WEAPON_PHOENIX, 0x00000000, /*goto*/ 0x2e) label(0x2e) set_ailist(CHR_SELF, AILIST_ELVIS_FOLLOW_AND_DO_AGENT_MEGAWEAPON) endlist }; u8 func1003_powernode1[] = { beginloop(0x04) if_object_in_good_condition(OBJ_POWERNODE1, /*goto*/ 0x2e) if_door_state(0x03, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) open_door(0x03) endloop(0x04) label(0x2e) if_object_health_lt(OBJ_POWERNODE1, 250, /*goto*/ 0x2e) set_object_health(OBJ_POWERNODE1, 0) set_object_flag(OBJ_POWERNODE1, OBJFLAG_INVINCIBLE) open_door(0x03) set_object_flag(0x03, OBJFLAG_40000000) goto_first(0x04) label(0x2e) goto_first(0x04) endlist }; u8 func1004_powernode2[] = { beginloop(0x04) if_object_in_good_condition(OBJ_POWERNODE2, /*goto*/ 0x2e) if_door_state(0x04, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) open_door(0x04) endloop(0x04) label(0x2e) if_object_health_lt(OBJ_POWERNODE2, 250, /*goto*/ 0x2e) set_object_health(OBJ_POWERNODE2, 0) set_object_flag(OBJ_POWERNODE2, OBJFLAG_INVINCIBLE) open_door(0x04) set_object_flag(0x04, OBJFLAG_40000000) goto_first(0x04) label(0x2e) goto_first(0x04) endlist }; u8 func1005_powernode3[] = { beginloop(0x04) if_object_in_good_condition(OBJ_POWERNODE3, /*goto*/ 0x2e) if_door_state(0x05, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) open_door(0x05) endloop(0x04) label(0x2e) if_object_health_lt(OBJ_POWERNODE3, 250, /*goto*/ 0x2e) set_object_flag(OBJ_POWERNODE3, OBJFLAG_INVINCIBLE) set_object_health(OBJ_POWERNODE3, 0) open_door(0x05) set_object_flag(0x05, OBJFLAG_40000000) goto_first(0x04) label(0x2e) goto_first(0x04) endlist }; u8 func0c01_midcutscene[] = { remove_weapon_from_inventory(WEAPON_BACKUPDISK) fade_to_color(0x000000ff, 0) fade_to_color(0x00000000, 15) set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_ailist(CHR_ELVIS, GAILIST_IDLE) set_music_track(MUSIC_DEEPSEA_MIDCUTSCENE) camera_movement(0x01d4) set_chr_chrflag(CHR_P1P2, CHRCFLAG_UNPLAYABLE) unset_chr_chrflag(CHR_P1P2, CHRCFLAG_HIDDEN) set_chr_hiddenflag(CHR_P1P2, CHRHFLAG_00020000) chr_do_animation(0x01d5, -1, -1, 0x06, 0x00, CHR_P1P2, 4) set_chr_chrflag(CHR_ELVIS, CHRCFLAG_UNPLAYABLE) unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_HIDDEN) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) chr_do_animation(0x01d6, -1, -1, 0x06, 0x00, CHR_ELVIS, 4) set_chr_chrflag(CHR_DRCAROLL, CHRCFLAG_UNPLAYABLE) unset_chr_chrflag(CHR_DRCAROLL, CHRCFLAG_HIDDEN) set_chr_hiddenflag(CHR_DRCAROLL, CHRHFLAG_00020000) chr_do_animation(0x01d7, -1, -1, 0x06, 0x00, CHR_DRCAROLL, 4) show_object(0xbb) set_object_flag2(0xbb, OBJFLAG2_04000000) set_object_flag3(0xbb, OBJFLAG3_00000010) object_do_animation(0x01d8, 0xbb, 0x04, 0xffff) restart_timer set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) yield set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE) set_cutscene_weapon(CHR_ELVIS, WEAPON_NONE, WEAPON_NONE) yield set_cutscene_weapon(CHR_ELVIS, WEAPON_NONE, WEAPON_NONE) show_nonessential_chrs(FALSE) #define wait_until(time, loopid) \ beginloop(loopid) \ if_controller_button_pressed(/*goto*/ 0x57) \ if_timer_gt(time, /*goto*/ 0x06) \ endloop(loopid) \ label(0x06) #define wait_until_with_images(time, loopid, image1, image2) \ beginloop(loopid) \ set_drcaroll_images(CHR_DRCAROLL, image1, image2) \ if_controller_button_pressed(/*goto*/ 0x57) \ if_timer_gt(time, /*goto*/ 0x06) \ endloop(loopid) \ label(0x06) wait_until(114, 0x63) speak(CHR_BOND, 0x3023, 0x746d, CHANNEL_10, COLOR_09_BLUE) // "Here goes. I just hope dataDyne haven't done anyth..." wait_until(300, 0x64) play_sound(0x0171, CHANNEL_2) wait_until(378, 0x65) play_sound(0x04fc, CHANNEL_3) wait_until(408, 0x6a) play_sound(0x0423, CHANNEL_5) wait_until(440, 0x1a) play_sound(0x04f7, CHANNEL_10) wait_until(490, 0x6b) speak(CHR_BOND, 0x3024, 0x746e, CHANNEL_10, COLOR_04_ORANGE) // "Virus detected." wait_until(570, 0x69) label(0x6c) set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESFROWNING, DRCAROLLIMAGE_X) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_X, DRCAROLLIMAGE_EYESFROWNING) yield if_controller_button_pressed(/*goto*/ 0x57) if_timer_gt(600, /*goto*/ 0x06) goto_first(0x6c) label(0x06) set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESFROWNING, DRCAROLLIMAGE_EYESFROWNING) speak(CHR_BOND, 0x3025, 0x746f, CHANNEL_10, COLOR_09_BLUE) // "Me and my big mouth." wait_until(700, 0x6d) play_sound(0x0172, CHANNEL_6) wait_until(712, 0x6f) play_sound(0x04f8, CHANNEL_2) wait_until(716, 0x70) play_sound(0x0127, CHANNEL_3) label(0x71) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_RANDOM25, DRCAROLLIMAGE_RANDOM25) if_controller_button_pressed(/*goto*/ 0x57) if_timer_gt(742, /*goto*/ 0x06) goto_first(0x71) label(0x06) speak(CHR_BOND, 0x3026, 0x7470, CHANNEL_10, COLOR_04_ORANGE) // "Commencing countermeasures. Commenc..... *** ooOOo..." wait_until_with_images(746, 0x73, DRCAROLLIMAGE_EYESFROWNING, DRCAROLLIMAGE_RANDOM) play_sound(0x0128, CHANNEL_5) wait_until_with_images(760, 0x75, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM) emit_sparks(CHR_DRCAROLL) wait_until_with_images(764, 0x76, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESFROWNING) play_sound(0x0173, CHANNEL_2) wait_until_with_images(784, 0x79, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM) play_sound(0x0174, CHANNEL_5) wait_until_with_images(808, 0x7c, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESFROWNING) emit_sparks(CHR_DRCAROLL) wait_until_with_images(872, 0x81, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM) play_sound(0x04fa, CHANNEL_7) wait_until_with_images(886, 0x83, 0x00, DRCAROLLIMAGE_RANDOM) play_sound(0x0129, CHANNEL_3) wait_until_with_images(894, 0x85, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESFROWNING) play_sound(0x012a, CHANNEL_5) label(0x86) wait_until_with_images(914, 0x87, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM) emit_sparks(CHR_DRCAROLL) wait_until_with_images(980, 0x8b, 0x00, DRCAROLLIMAGE_RANDOM) emit_sparks(CHR_DRCAROLL) wait_until_with_images(992, 0x8e, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT) play_sound(0x04f9, CHANNEL_2) wait_until_with_images(1012, 0x90, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM) play_sound(0x012b, CHANNEL_4) wait_until_with_images(1018, 0x91, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) emit_sparks(CHR_DRCAROLL) wait_until_with_images(1026, 0x93, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM) play_sound(0x0129, CHANNEL_7) wait_until_with_images(1034, 0x94, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT) play_sound(0x0176, CHANNEL_2) set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT) wait_until_with_images(1036, 0x95, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM) emit_sparks(CHR_DRCAROLL) wait_until_with_images(1068, 0x98, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT) play_sound(0x0177, CHANNEL_6) emit_sparks(CHR_DRCAROLL) wait_until_with_images(1074, 0x99, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM) emit_sparks(CHR_DRCAROLL) wait_until_with_images(1090, 0xfc, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) emit_sparks(CHR_DRCAROLL) wait_until_with_images(1112, 0x9e, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM) play_sound(0x0127, CHANNEL_6) wait_until_with_images(1124, 0xa0, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT) play_sound(0x04f7, CHANNEL_2) emit_sparks(CHR_DRCAROLL) wait_until_with_images(1130, 0xa1, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) play_sound(0x04ff, CHANNEL_3) emit_sparks(CHR_DRCAROLL) wait_until_with_images(1188, 0xa7, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM) emit_sparks(CHR_DRCAROLL) wait_until_with_images(1238, 0xaa, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT) play_sound(0x04f7, CHANNEL_6) emit_sparks(CHR_DRCAROLL) wait_until_with_images(1304, 0xb2, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) play_sound(0x0129, CHANNEL_2) wait_until_with_images(1308, 0xb3, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM) play_sound(0x0178, CHANNEL_3) wait_until_with_images(1354, 0xba, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT) play_sound(0x04f7, CHANNEL_4) wait_until_with_images(1406, 0xc5, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) emit_sparks(CHR_DRCAROLL) wait_until_with_images(1468, 0xcd, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) play_sound(0x012b, CHANNEL_5) wait_until_with_images(1480, 0xcf, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) play_sound(0x0173, CHANNEL_6) wait_until_with_images(1487, 0xd0, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT) play_sound(0x04f9, CHANNEL_2) emit_sparks(CHR_DRCAROLL) wait_until_with_images(1494, 0xd1, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT) play_sound(0x0171, CHANNEL_3) wait_until_with_images(1500, 0xd4, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT) speak(CHR_BOND, 0x3027, 0x7471, CHANNEL_10, COLOR_09_BLUE) // "Dr. Caroll? Are you in control again? Can you stop..." set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT) wait_until(1534, 0xd6) play_sound(0x04f9, CHANNEL_6) wait_until(1564, 0xda) play_sound(0x0178, CHANNEL_5) wait_until(1630, 0xe0) play_sound(0x0175, CHANNEL_5) wait_until(1810, 0xe3) speak(CHR_BOND, 0x3028, 0x7472, CHANNEL_10, COLOR_04_ORANGE) // "Yes, I'm back again, my dear. But the program has ..." wait_until(1810, 0xe5) play_sound(0x0177, CHANNEL_3) wait_until(1886, 0xe7) play_sound(0x0175, CHANNEL_5) wait_until(2378, 0xe9) mute_channel(CHANNEL_7) speak(CHR_BOND, 0x3029, 0x7473, CHANNEL_10, COLOR_09_BLUE) // "What do you mean?" wait_until(2510, 0xea) speak(CHR_BOND, 0x302a, 0x7474, CHANNEL_10, COLOR_04_ORANGE) // "When the program has run, I will have control of a..." wait_until(3126, 0xf5) play_sound(0x012b, CHANNEL_5) wait_until(3156, 0xf6) emit_sparks(CHR_DRCAROLL) set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT) wait_until(3266, 0xf7) emit_sparks(CHR_DRCAROLL) set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT) wait_until(3556, 0xf8) set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT) emit_sparks(CHR_DRCAROLL) wait_until(3606, 0xf9) emit_sparks(CHR_DRCAROLL) set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT) wait_until(3985, 0x10) play_sound(0x0424, CHANNEL_1) wait_until(4046, 0xfa) emit_sparks(CHR_DRCAROLL) set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM) yield set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT) wait_until(4106, 0xfb) emit_sparks(CHR_DRCAROLL) label(0x11) yield if_controller_button_pressed(/*goto*/ 0x57) if_timer_gt(4250, /*goto*/ 0x06) mute_channel(CHANNEL_1) goto_first(0x11) label(0x06) fade_to_color(0x000000ff, 250) wait_until(4500, 0x12) play_sound(0x012b, CHANNEL_5) beginloop(0x08) if_camera_animating(/*goto*/ 0x2e) goto_next(0x57) label(0x2e) if_controller_button_pressed(/*goto*/ 0x57) label(0x2e) endloop(0x08) label(0x57) mute_channel(CHANNEL_10) mute_channel(CHANNEL_7) mute_channel(CHANNEL_6) mute_channel(CHANNEL_5) mute_channel(CHANNEL_4) mute_channel(CHANNEL_3) mute_channel(CHANNEL_2) mute_channel(CHANNEL_1) mute_channel(CHANNEL_0) fade_to_color(0xffffffff, 0) fade_to_color(0x00000000, 15) hide_object(0xbb) unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_P1P2, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_P1P2, CHRHFLAG_00020000) chr_do_animation(0x01d5, -2, -1, 0x06, 0x00, CHR_P1P2, 2) unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) chr_do_animation(0x01d6, -2, -1, 0x06, 0x00, CHR_ELVIS, 2) unset_chr_chrflag(CHR_DRCAROLL, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_DRCAROLL, CHRHFLAG_00020000) chr_do_animation(0x01d7, -2, -1, 0x06, 0x00, CHR_DRCAROLL, 2) set_cutscene_weapon(CHR_ELVIS, WEAPON_NONE, WEAPON_NONE) yield set_cutscene_weapon(CHR_ELVIS, WEAPON_PHOENIX, WEAPON_NONE) set_ailist(CHR_ELVIS, GAILIST_IDLE) yield chr_move_to_pad(CHR_ELVIS, 0x0013, 0x01, /*goto*/ 0x2e) label(0x2e) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) chr_move_to_pad(CHR_BOND, 0x019f, 0x01, /*goto*/ 0x2e) label(0x2e) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) restart_default_music reset_ambience play_x_music(CHANNEL_10, 60) set_ailist(CHR_ELVIS, GAILIST_IDLE) chr_move_to_pad(CHR_ELVIS, 0x0017, 0x01, /*goto*/ 0x2e) label(0x2e) remove_weapon_from_inventory(WEAPON_BACKUPDISK) set_ailist(CHR_ELVIS, AILIST_ELVIS_WARP_TO_OUTSIDE_DRCAROLL) show_nonessential_chrs(TRUE) set_stage_flag(STAGEFLAG_MIDCUTSCENE_FINISHED) set_ailist(CHR_SELF, GAILIST_END_CINEMA) endlist }; u8 func042d_elvis_warp_to_outside_drcaroll[] = { stop_chr beginloop(0x04) dprint 'T','E','L','E','P','O','R','T',' ','F','A','I','L','E','D','\n',0, chr_move_to_pad(CHR_ELVIS, 0x0017, 0x01, /*goto*/ 0x2e) endloop(0x04) label(0x2e) dprint 'T','E','L','E','P','O','R','T',' ','G','O','O','D','\n',0, set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) stop_chr set_ailist(CHR_SELF, AILIST_ELVIS_RUN_TO_EXIT) endlist }; u8 func0c02_outro[] = { show_nonessential_chrs(FALSE) hide_countdown_timer set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_music_track(MUSIC_DEEPSEA_OUTRO) camera_movement(0x02d7) set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) set_chr_chrflag(CHR_ELVIS, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) restart_timer // @bug: Missing button checks makes the outro unskippable until a certain // point. #define blow_mine1(time, loopid, msg, mine, pad) \ beginloop(loopid) \ if_timer_gt(time, /*goto*/ 0x2e) \ endloop(loopid) \ label(0x2e) \ dprint msg, '\n', 0, \ show_object(mine) \ yield \ move_object_to_pad(mine, pad) \ yield \ destroy_object(mine) #define blow_mine2(time, loopid, msg1, msg2, mine, pad) \ beginloop(loopid) \ if_timer_gt(time, /*goto*/ 0x2e) \ endloop(loopid) \ label(0x2e) \ dprint msg1, msg2, '\n', 0, \ show_object(mine) \ yield \ move_object_to_pad(mine, pad) \ yield \ destroy_object(mine) blow_mine1(40, 0x63, '1', 0x76, 0x028c) blow_mine1(72, 0x64, '2', 0x77, 0x028b) blow_mine1(155, 0x65, '3', 0x78, 0x028a) blow_mine1(176, 0x66, '4', 0x79, 0x0289) blow_mine1(194, 0x6a, '5', 0x7a, 0x0288) blow_mine1(252, 0x6b, '6', 0x7b, 0x0287) blow_mine1(300, 0x6c, '7', 0x7c, 0x0286) blow_mine1(331, 0x6d, '8', 0x7d, 0x0285) blow_mine1(355, 0x6e, '9', 0x7e, 0x0284) blow_mine2(411, 0x6f, '1','0', 0x7f, 0x0283) blow_mine2(441, 0x70, '1','1', 0x80, 0x0282) blow_mine2(485, 0x71, '1','2', 0x81, 0x0281) blow_mine2(543, 0x72, '1','3', 0x82, 0x0280) blow_mine2(594, 0x73, '1','4', 0x83, 0x027f) blow_mine2(607, 0x74, '1','5', 0x84, 0x027e) blow_mine2(629, 0x75, '1','6', 0x85, 0x027d) blow_mine2(671, 0x76, '1','7', 0x86, 0x027c) blow_mine2(720, 0x77, '1','8', 0x87, 0x027b) blow_mine2(776, 0x78, '1','9', 0x88, 0x027a) blow_mine2(865, 0x79, '2','0', 0x89, 0x0279) blow_mine2(914, 0x7a, '2','1', 0x8a, 0x0278) blow_mine2(991, 0x7b, '2','2', 0x8b, 0x0277) beginloop(0x7c) if_timer_gt(1011, /*goto*/ 0x2e) endloop(0x7c) label(0x2e) dprint '2','3','\n',0, blow_mine2(1038, 0x7d, '2','4', 0x8d, 0x0275) blow_mine2(1071, 0x7e, '2','5', 0x8e, 0x0274) blow_mine2(1090, 0x7f, '2','6', 0x8f, 0x0273) blow_mine2(1110, 0x80, '2','7', 0x90, 0x0272) blow_mine2(1137, 0x81, '2','8', 0x91, 0x0271) wait_until(1150, 0x8e) open_door(0xb3) open_door(0xb4) open_door(0xb5) open_door(0xb6) blow_mine2(1191, 0x82, '2','9', 0x92, 0x0270) blow_mine2(1214, 0x83, '3','0', 0x93, 0x026f) blow_mine2(1266, 0x84, '3','1', 0x94, 0x026e) blow_mine2(1285, 0x85, '3','2', 0x95, 0x026d) blow_mine2(1296, 0x86, '3','3', 0x96, 0x026c) blow_mine2(1320, 0x87, '3','4', 0x97, 0x026b) wait_until(1355, 0x8f) close_door(0xb5) close_door(0xb6) blow_mine2(1360, 0x88, '3','5', 0x98, 0x026a) blow_mine2(1390, 0x89, '3','6', 0x99, 0x0269) blow_mine2(1412, 0x8a, '3','7', 0x9a, 0x0268) wait_until(1416, 0x90) close_door(0xb3) close_door(0xb4) blow_mine2(1424, 0x8b, '3','8', 0x9b, 0x0267) beginloop(0x08) if_camera_animating(/*goto*/ 0x2e) goto_next(0x57) label(0x2e) if_controller_button_pressed(/*goto*/ 0x57) label(0x2e) endloop(0x08) label(0x57) if_all_objectives_complete(/*goto*/ 0x06) unset_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) unset_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) unset_chr_chrflag(CHR_ANTI, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) explosions_around_chr(CHR_BOND) label(0x2e) unset_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) unset_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) enter_firstperson grant_control(CHR_BOND) restart_timer beginloop(0x0d) if_timer_gt(120, /*goto*/ 0x2f) endloop(0x0d) label(0x2f) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x2e) explosions_around_chr(CHR_COOP) label(0x2e) beginloop(0x0e) if_timer_gt(240, /*goto*/ 0x06) endloop(0x0e) label(0x06) end_level set_ailist(CHR_SELF, GAILIST_IDLE) label(0x2e) end_level set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1002_intro[] = { set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESFROWNING, DRCAROLLIMAGE_EYESFROWNING) chr_draw_weapon_in_cutscene(CHR_BOND, WEAPON_FALCON2_SCOPE) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_music_track(MUSIC_DEEPSEA_INTRO) camera_movement(0x01ef) cmd0175(60) set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) chr_do_animation(0x01f0, -1, -1, 0x06, 0x00, CHR_BOND, 4) set_chr_chrflag(CHR_ELVIS, CHRCFLAG_UNPLAYABLE) unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_HIDDEN) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) chr_do_animation(0x01f1, -1, -1, 0x06, 0x00, CHR_ELVIS, 4) set_object_flag(0x07, OBJFLAG_DEACTIVATED) set_object_flag2(0x07, OBJFLAG2_04000000) set_object_flag3(0x07, OBJFLAG3_00000010) object_do_animation(0x01f2, 0x07, 0x04, 0xffff) set_chr_chrflag(0x40, CHRCFLAG_UNPLAYABLE) unset_chr_chrflag(0x40, CHRCFLAG_HIDDEN) set_chr_hiddenflag(0x40, CHRHFLAG_00020000) chr_do_animation(0x0471, -1, -1, 0x06, 0x00, 0x40, 4) restart_timer set_cutscene_weapon(CHR_BOND, WEAPON_NONE, WEAPON_NONE) yield set_cutscene_weapon(CHR_BOND, WEAPON_FALCON2_SCOPE, WEAPON_NONE) wait_until(0, 0x63) play_sound_from_object2(CHANNEL_5, 0x07, 0x81aa, 0x00, 0x00) wait_until(260, 0x8a) play_sound(0x80d5, CHANNEL_10) wait_until(280, 0x8b) play_sound(0x80d4, CHANNEL_10) wait_until(300, 0x89) play_sound(0x005b, CHANNEL_7) set_chr_hiddenflag(0x40, CHRHFLAG_CLOAKED) play_sound(0x80d7, CHANNEL_10) wait_until(320, 0x8c) play_sound(0x80d6, CHANNEL_10) wait_until(852, 0x64) play_sound(0x0171, CHANNEL_7) wait_until(1210, 0x65) speak(CHR_BOND, 0x301f, 0x7469, CHANNEL_10, COLOR_04_ORANGE) // "This doesn't seem normal. No one's around." wait_until(1266, 0x66) play_sound(0x0172, CHANNEL_7) wait_until(1300, 0x6a) play_sound(0x0171, CHANNEL_7) wait_until(1430, 0x6b) mute_channel(CHANNEL_5) play_sound_from_object2(CHANNEL_5, 0x07, 0x81a9, 0x00, 0x00) wait_until(1522, 0x6c) speak(CHR_BOND, 0x3020, 0x746a, CHANNEL_10, COLOR_09_BLUE) // "No signs of conflict. No spent ammo cases or bulle..." wait_until(1548, 0x6d) play_sound(0x0174, CHANNEL_7) wait_until(1594, 0x6e) play_sound(0x0175, CHANNEL_7) wait_until(1662, 0x6f) play_sound(0x0176, CHANNEL_7) wait_until(1762, 0x70) play_sound(0x0177, CHANNEL_7) wait_until(1945, 0x71) speak(CHR_BOND, 0x3021, 0x746b, CHANNEL_10, COLOR_04_ORANGE) // "But there ought to be a rear guard at least. It ma..." wait_until(1958, 0x72) play_sound(0x0178, CHANNEL_7) wait_until(2066, 0x73) play_sound(0x0171, CHANNEL_7) wait_until(2118, 0x74) play_sound(0x0172, CHANNEL_7) wait_until(2167, 0x75) play_sound(0x0173, CHANNEL_7) wait_until(2213, 0x76) play_sound(0x0174, CHANNEL_7) wait_until(2346, 0x77) play_sound(0x0175, CHANNEL_7) wait_until(2362, 0x78) play_sound(0x0176, CHANNEL_7) wait_until(2376, 0x79) play_sound(0x0177, CHANNEL_7) wait_until(2390, 0x7a) play_sound(0x0178, CHANNEL_7) wait_until(2420, 0x7b) speak(CHR_BOND, 0x3022, 0x746c, CHANNEL_10, COLOR_09_BLUE) // "There has to be someone farther inside. Cover me." wait_until(2426, 0x7c) play_sound(0x0171, CHANNEL_7) wait_until(2470, 0x7d) play_sound(0x0172, CHANNEL_7) wait_until(2485, 0x7e) play_sound(0x0173, CHANNEL_7) wait_until(2520, 0x7f) play_sound(0x0174, CHANNEL_7) wait_until(2545, 0x80) play_sound(0x0175, CHANNEL_7) wait_until(2582, 0x81) play_sound(0x0171, CHANNEL_7) wait_until(2585, 0x82) play_sound(0x0176, CHANNEL_6) wait_until(2720, 0x83) play_sound(0x0172, CHANNEL_7) wait_until(2842, 0x84) play_sound(0x0173, CHANNEL_7) wait_until(2880, 0x85) play_sound(0x0174, CHANNEL_7) wait_until(2898, 0x86) play_sound(0x0175, CHANNEL_7) wait_until(3040, 0x87) play_sound(0x0176, CHANNEL_7) wait_until(3042, 0x88) play_sound(0x0177, CHANNEL_6) beginloop(0x08) if_camera_animating(/*goto*/ 0x2e) goto_next(0x57) label(0x2e) if_controller_button_pressed(/*goto*/ 0x57) label(0x2e) endloop(0x08) label(0x57) mute_channel(CHANNEL_7) mute_channel(CHANNEL_6) mute_channel(CHANNEL_5) mute_channel(CHANNEL_4) mute_channel(CHANNEL_10) remove_chr(0x40) unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) chr_do_animation(0x01f0, -2, -1, 0x06, 0x00, CHR_BOND, 2) unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) chr_do_animation(0x01f1, -2, -1, 0x06, 0x00, CHR_ELVIS, 2) if_coop_mode(/*goto*/ 0x45) unset_object_flag(0x07, OBJFLAG_DEACTIVATED) unset_object_flag2(0x07, OBJFLAG2_04000000) set_object_flag3(0x07, OBJFLAG3_00000010) object_do_animation(0x01f2, 0x07, 0x01, 0xfffe) goto_next(0x46) label(0x45) hide_object(0x07) label(0x46) restart_default_music reset_ambience label(0x0d) enter_firstperson yield set_ailist(CHR_ELVIS, AILIST_INIT_ELVIS) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func042f_init_pelagic_guard[] = { set_chr_dodge_rating(2, 0x0a) set_accuracy(20) set_reaction_speed(65) set_chr_maxdamage(CHR_SELF, 70) add_health_or_armor(0) set_recovery_speed(0) set_shield(0) set_ailist(CHR_SELF, GAILIST_UNALERTED) endlist }; u8 func0430_unused[] = { set_accuracy(20) set_reaction_speed(65) set_chr_maxdamage(CHR_SELF, 10) add_health_or_armor(70) set_recovery_speed(0) set_shield(0) set_ailist(CHR_SELF, GAILIST_UNALERTED) endlist }; u8 func1006_msg_thiswillhelpus[] = { beginloop(0x04) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) if_objective_complete(0, /*goto*/ 0x2e) endloop(0x04) label(0x2e) restart_timer beginloop(0x08) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) if_timer_gt(180, /*goto*/ 0x2e) endloop(0x08) label(0x2e) speak(CHR_P1P2, 0x300a, 0x73d4, CHANNEL_6, COLOR_04_ORANGE) // "This will help us to get round the ship quicker." label(0x0d) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1007_msg_antibodymasking[] = { restart_timer beginloop(0x04) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) endloop(0x04) // Unreachable label(0x2e) speak(CHR_BOND, 0x300b, 0x73d5, CHANNEL_6, COLOR_09_BLUE) // "This antibody masking will protect us from the aut..." label(0x0d) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1008_msg_theresdrcaroll[] = { beginloop(0x04) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) if_chr_death_animation_finished(CHR_DRCAROLL, /*goto*/ 0x0d) if_chr_dying(CHR_DRCAROLL, /*goto*/ 0x0d) if_chr_unloaded(CHR_DRCAROLL, /*goto*/ 0x0d) if_door_state(0xae, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2e) reloop(0x04) label(0x2e) if_chr_in_room(CHR_ELVIS, 0x00, 0x004c, /*goto*/ 0x2e) goto_next(0x0d) label(0x2e) if_chr_propsoundcount_zero(CHR_ELVIS, /*goto*/ 0x2e) endloop(0x04) label(0x2e) speak(CHR_BOND, 0x300c, 0x73d6, CHANNEL_6, COLOR_04_ORANGE) // "There's Dr. Caroll. Let's see if we can reverse wh..." // Elvis dead, Dr Caroll dead, or Elvis didn't get teleported label(0x0d) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1009_msg_getoutofhere[] = { beginloop(0x04) if_stage_flag_eq(STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x2e) endloop(0x04) label(0x2e) restart_timer beginloop(0x08) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) if_timer_gt(120, /*goto*/ 0x2e) endloop(0x08) label(0x2e) speak(CHR_BOND, 0x300d, 0x73d7, CHANNEL_6, COLOR_04_ORANGE) // "We have to get out of here!" label(0x0d) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * Entry point for all of Joanna's teleports. * * Map of how these ailists call each other: * * 100a func100a_bond_teleports * - calls 0414 teleport_bond_to_sapa * - calls 0416 teleport_bond_to_a_pa_drcaroll * - calls 0415 teleport_bond_to_drcaroll * - calls 0415 teleport_bond_to_drcaroll */ u8 func100a_bond_teleports[] = { beginloop(0x1f) if_stage_flag_eq(STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x04) endloop(0x1f) beginloop(0x04) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_STARTAREA_TELEPORT, /*goto*/ 0x59) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x09) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x08) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x08) if_stage_flag_eq(STAGEFLAG_DONE_FIRST_TELEPORT, TRUE, /*goto*/ 0x2e) endloop(0x04) // Done first teleport label(0x2e) if_difficulty_gt(DIFF_A, /*goto*/ 0x2e) goto_first(0x04) label(0x2e) if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) goto_first(0x04) // Done first teleport and difficulty is SA label(0x2e) set_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) if_objective_complete(1, /*goto*/ 0x2e) goto_first(0x04) // Done first teleport, difficult is SA and megaweapon is disabled label(0x2e) unset_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) goto_first(0x04) // // At start area teleport // label(0x59) set_stage_flag(STAGEFLAG_DONE_FIRST_TELEPORT) revoke_control(CHR_BOND, 0) teleport_to_pad(PAD_STARTAREA_TELEPORT, CHR_BOND) label(0x5b) if_teleport_full_white(/*goto*/ 0x5e, CHR_BOND) yield goto_first(0x5b) label(0x5e) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) label(0x2e) if_difficulty_lt(DIFF_SA, /*goto*/ 0x64) set_ailist(CHR_BOND, AILIST_TELEPORT_BOND_TO_SAPA) unset_stage_flag(STAGEFLAG_TELEPORT_DONE) beginloop(0x31) if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) endloop(0x31) label(0x2e) grant_control(CHR_BOND) teleport_to_pad(0x0000, CHR_BOND) goto_first(0x04) // // At SA/PA area teleport // beginloop(0x09) if_difficulty_gt(DIFF_SA, /*goto*/ 0x2e) set_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) if_objective_complete(1, /*goto*/ 0x2e) reloop(0x09) // Teleport is active label(0x2e) unset_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x59) endloop(0x09) label(0x59) teleport_to_pad(0x00c0, CHR_BOND) revoke_control(CHR_BOND, 0) label(0x5c) if_teleport_full_white(/*goto*/ 0x5e, CHR_BOND) yield goto_first(0x5c) label(0x5e) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) if_difficulty_lt(DIFF_PA, /*goto*/ 0x64) goto_next(0x2e) // // At start area teleport on Agent, or SA/PA area teleport on SA // label(0x64) goto_next(0x2e) label(0x2e) set_ailist(CHR_BOND, AILIST_TELEPORT_BOND_TO_A_PA_DRCAROLL) unset_stage_flag(STAGEFLAG_TELEPORT_DONE) beginloop(0x32) if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) endloop(0x32) label(0x2e) grant_control(CHR_BOND) teleport_to_pad(0x0000, CHR_BOND) if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) label(0x06) goto_first(0x04) label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) // // At Agent or PA teleport // beginloop(0x08) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x59) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x5a) endloop(0x08) // Agent teleport label(0x59) revoke_control(CHR_BOND, 0) teleport_to_pad(0x0054, CHR_BOND) goto_next(0x5d) // PA teleport label(0x5a) revoke_control(CHR_BOND, 0) teleport_to_pad(0x0111, CHR_BOND) label(0x5d) if_teleport_full_white(/*goto*/ 0x5e, CHR_BOND) yield goto_first(0x5d) label(0x5e) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) set_ailist(CHR_BOND, AILIST_TELEPORT_BOND_TO_DRCAROLL) unset_stage_flag(STAGEFLAG_TELEPORT_DONE) beginloop(0x33) if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) endloop(0x33) label(0x2e) grant_control(CHR_BOND) teleport_to_pad(0x0000, CHR_BOND) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0414_teleport_bond_to_sapa[] = { set_chr_hiddenflag(CHR_BOND, CHRHFLAG_TRIGGER_BUDDY_WARP) if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, FALSE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x61) if_chr_dying(CHR_COOP, /*goto*/ 0x61) if_chr_unloaded(CHR_COOP, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) label(0x08) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x06) if_chr_dying(CHR_ELVIS, /*goto*/ 0x06) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x06) beginloop(0x63) chr_move_to_pad(CHR_ELVIS, 0x01c6, 0x01, /*goto*/ 0x06) endloop(0x63) label(0x06) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) label(0x62) beginloop(0x64) chr_move_to_pad(CHR_SELF, PAD_SAPAAREA_ENTRY, 0x01, /*goto*/ 0x06) endloop(0x64) label(0x06) yield stop_chr set_stage_flag(STAGEFLAG_TELEPORT_DONE) if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, FALSE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x61) if_chr_dying(CHR_COOP, /*goto*/ 0x61) if_chr_unloaded(CHR_COOP, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_GIVE_FARSIGHT) label(0x62) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0415_teleport_bond_to_drcaroll[] = { set_chr_hiddenflag(CHR_BOND, CHRHFLAG_TRIGGER_BUDDY_WARP) if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, FALSE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x61) if_chr_dying(CHR_COOP, /*goto*/ 0x61) if_chr_unloaded(CHR_COOP, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) beginloop(0x65) chr_move_to_pad(CHR_ELVIS, 0x01bf, 0x01, /*goto*/ 0x06) endloop(0x65) label(0x06) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) goto_next(0x63) label(0x07) message(CHR_BOND, 0x300e) // "Elvis has been killed." label(0x62) beginloop(0x63) chr_move_to_pad(CHR_SELF, PAD_DRCAROLLROOM_ENTRY, 0x01, /*goto*/ 0x06) endloop(0x63) label(0x06) stop_chr yield set_stage_flag(STAGEFLAG_TELEPORT_DONE) if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, FALSE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x61) if_chr_dying(CHR_COOP, /*goto*/ 0x61) if_chr_unloaded(CHR_COOP, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) label(0x62) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * If Agent: Warp to Agent area * If SA: Warp to Dr Caroll Area * If PA: Warp to PA area */ u8 func0416_teleport_bond_to_a_pa_drcaroll[] = { set_chr_hiddenflag(CHR_BOND, CHRHFLAG_TRIGGER_BUDDY_WARP) if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, FALSE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x61) if_chr_dying(CHR_COOP, /*goto*/ 0x61) if_chr_unloaded(CHR_COOP, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) label(0x62) if_difficulty_lt(DIFF_SA, /*goto*/ 0x09) if_difficulty_lt(DIFF_PA, /*goto*/ 0x08) // PA if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, FALSE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x61) if_chr_dying(CHR_COOP, /*goto*/ 0x61) if_chr_unloaded(CHR_COOP, /*goto*/ 0x61) goto_next(0x62) label(0x61) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) beginloop(0x66) chr_move_to_pad(CHR_ELVIS, 0x01be, 0x01, /*goto*/ 0x06) endloop(0x66) label(0x06) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) label(0x62) label(0x07) beginloop(0x67) chr_move_to_pad(CHR_SELF, PAD_PAAREA_ENTRY, 0x01, /*goto*/ 0x06) endloop(0x67) label(0x06) label(0x2e) stop_chr yield if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, FALSE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x61) if_chr_dying(CHR_COOP, /*goto*/ 0x61) if_chr_unloaded(CHR_COOP, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) label(0x62) set_stage_flag(STAGEFLAG_TELEPORT_DONE) set_ailist(CHR_SELF, GAILIST_IDLE) // SA label(0x08) set_ailist(CHR_SELF, AILIST_TELEPORT_BOND_TO_DRCAROLL) // Agent label(0x09) if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, FALSE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x61) if_chr_dying(CHR_COOP, /*goto*/ 0x61) if_chr_unloaded(CHR_COOP, /*goto*/ 0x61) goto_next(0x62) label(0x61) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) beginloop(0x6b) chr_move_to_pad(CHR_ELVIS, 0x0040, 0x01, /*goto*/ 0x06) endloop(0x6b) label(0x06) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) label(0x62) label(0x07) beginloop(0x68) chr_move_to_pad(CHR_SELF, PAD_AGENTAREA_ENTRY, 0x01, /*goto*/ 0x06) endloop(0x68) label(0x06) label(0x2e) stop_chr yield set_stage_flag(STAGEFLAG_TELEPORT_DONE) if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, FALSE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x61) if_chr_dying(CHR_COOP, /*goto*/ 0x61) if_chr_unloaded(CHR_COOP, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_GIVE_FARSIGHT) label(0x62) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * Entry point for all of Velvet's teleports. * * Map of how these ailists call each other: * * 100b func100b_coop_teleports * - calls 0417 teleport_coop_to_sapa * - calls 0419 teleport_coop_to_a_pa_drcaroll * - calls 0418 teleport_coop_to_drcaroll * - calls 0418 teleport_coop_to_drcaroll */ u8 func100b_coop_teleports[] = { if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x2e) goto_next(0x1f) label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) beginloop(0x1f) if_stage_flag_eq(STAGEFLAG_TELEPORTALS_ACTIVATED, TRUE, /*goto*/ 0x04) endloop(0x1f) beginloop(0x04) if_chr_distance_to_pad_lt(CHR_COOP, 250, PAD_STARTAREA_TELEPORT, /*goto*/ 0x59) if_chr_distance_to_pad_lt(CHR_COOP, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x09) if_chr_distance_to_pad_lt(CHR_COOP, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x08) if_chr_distance_to_pad_lt(CHR_COOP, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x08) endloop(0x04) // // At start area teleport // label(0x59) revoke_control(CHR_COOP, 0) teleport_to_pad(PAD_STARTAREA_TELEPORT, CHR_COOP) label(0x5b) if_teleport_full_white(/*goto*/ 0x5e, CHR_COOP) yield goto_first(0x5b) label(0x5e) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) label(0x62) label(0x2e) if_difficulty_lt(DIFF_SA, /*goto*/ 0x64) set_ailist(CHR_COOP, AILIST_TELEPORT_COOP_TO_SAPA) unset_stage_flag(STAGEFLAG_TELEPORT_DONE) beginloop(0x31) if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) endloop(0x31) label(0x2e) grant_control(CHR_COOP) teleport_to_pad(0x0000, CHR_COOP) goto_first(0x04) // // At SA/PA area teleport // beginloop(0x09) if_difficulty_gt(DIFF_SA, /*goto*/ 0x2e) set_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) if_objective_complete(1, /*goto*/ 0x2e) reloop(0x09) label(0x2e) unset_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) if_chr_distance_to_pad_lt(CHR_COOP, 250, PAD_SAPAAREA_TELEPORT, /*goto*/ 0x59) endloop(0x09) label(0x59) teleport_to_pad(0x00c0, CHR_COOP) revoke_control(CHR_COOP, 0) label(0x5c) if_teleport_full_white(/*goto*/ 0x5e, CHR_COOP) yield goto_first(0x5c) label(0x5e) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) label(0x62) if_difficulty_lt(DIFF_PA, /*goto*/ 0x64) goto_next(0x2e) label(0x64) goto_next(0x2e) label(0x2e) set_ailist(CHR_COOP, AILIST_TELEPORT_COOP_TO_A_PA_DRCAROLL) unset_stage_flag(STAGEFLAG_TELEPORT_DONE) beginloop(0x32) if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) endloop(0x32) label(0x2e) grant_control(CHR_COOP) teleport_to_pad(0x0000, CHR_COOP) if_difficulty_lt(DIFF_SA, /*goto*/ 0x06) if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) label(0x06) goto_first(0x04) label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) // // At Agent or PA area teleport // beginloop(0x08) if_chr_distance_to_pad_lt(CHR_COOP, 250, PAD_AGENTAREA_TELEPORT, /*goto*/ 0x59) if_chr_distance_to_pad_lt(CHR_COOP, 250, PAD_PAAREA_TELEPORT, /*goto*/ 0x5a) endloop(0x08) // Agent teleport label(0x59) revoke_control(CHR_COOP, 0) teleport_to_pad(0x0054, CHR_COOP) goto_next(0x5d) // PA teleport label(0x5a) revoke_control(CHR_COOP, 0) teleport_to_pad(0x0111, CHR_COOP) label(0x5d) if_teleport_full_white(/*goto*/ 0x5e, CHR_COOP) yield goto_first(0x5d) label(0x5e) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) label(0x62) set_ailist(CHR_COOP, AILIST_TELEPORT_COOP_TO_DRCAROLL) unset_stage_flag(STAGEFLAG_TELEPORT_DONE) beginloop(0x33) if_stage_flag_eq(STAGEFLAG_TELEPORT_DONE, TRUE, /*goto*/ 0x2e) endloop(0x33) label(0x2e) grant_control(CHR_COOP) teleport_to_pad(0x0000, CHR_COOP) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0417_teleport_coop_to_sapa[] = { if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, TRUE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) label(0x08) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x06) if_chr_dying(CHR_ELVIS, /*goto*/ 0x06) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x06) beginloop(0x63) chr_move_to_pad(CHR_ELVIS, 0x01c6, 0x01, /*goto*/ 0x06) endloop(0x63) label(0x06) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) label(0x62) beginloop(0x64) chr_move_to_pad(CHR_SELF, PAD_SAPAAREA_ENTRY, 0x01, /*goto*/ 0x06) endloop(0x64) label(0x06) yield stop_chr set_stage_flag(STAGEFLAG_TELEPORT_DONE) if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, TRUE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_GIVE_FARSIGHT) label(0x62) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0418_teleport_coop_to_drcaroll[] = { if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, TRUE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) beginloop(0x65) chr_move_to_pad(CHR_ELVIS, 0x01bf, 0x01, /*goto*/ 0x06) endloop(0x65) label(0x06) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) goto_next(0x63) label(0x07) message(CHR_BOND, 0x300e) // "Elvis has been killed." label(0x62) beginloop(0x63) chr_move_to_pad(CHR_SELF, PAD_DRCAROLLROOM_ENTRY, 0x01, /*goto*/ 0x06) endloop(0x63) label(0x06) stop_chr yield set_stage_flag(STAGEFLAG_TELEPORT_DONE) if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, TRUE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) label(0x62) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * If Agent: Warp to Agent area * If SA: Warp to Dr Caroll Area * If PA: Warp to PA area */ u8 func0419_teleport_coop_to_a_pa_drcaroll[] = { if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, TRUE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_STOP) label(0x62) if_difficulty_lt(DIFF_SA, /*goto*/ 0x09) if_difficulty_lt(DIFF_PA, /*goto*/ 0x08) // PA if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, TRUE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) beginloop(0x66) chr_move_to_pad(CHR_ELVIS, 0x01be, 0x01, /*goto*/ 0x06) endloop(0x66) label(0x06) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) label(0x62) label(0x07) beginloop(0x67) chr_move_to_pad(CHR_SELF, PAD_PAAREA_ENTRY, 0x01, /*goto*/ 0x06) endloop(0x67) label(0x06) label(0x2e) stop_chr yield if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, TRUE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) label(0x62) set_stage_flag(STAGEFLAG_TELEPORT_DONE) set_ailist(CHR_SELF, GAILIST_IDLE) // SA label(0x08) set_ailist(CHR_SELF, AILIST_TELEPORT_COOP_TO_DRCAROLL) // Agent label(0x09) if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, TRUE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x07) if_chr_dying(CHR_ELVIS, /*goto*/ 0x07) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x07) beginloop(0x6b) chr_move_to_pad(CHR_ELVIS, 0x0040, 0x01, /*goto*/ 0x06) endloop(0x6b) label(0x06) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) label(0x62) label(0x07) beginloop(0x68) chr_move_to_pad(CHR_SELF, PAD_AGENTAREA_ENTRY, 0x01, /*goto*/ 0x06) endloop(0x68) label(0x06) label(0x2e) stop_chr yield set_stage_flag(STAGEFLAG_TELEPORT_DONE) if_stage_flag_eq(STAGEFLAG_ELVIS_FOLLOWING_COOP, TRUE, /*goto*/ 0x61) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x61) if_chr_dying(CHR_BOND, /*goto*/ 0x61) if_chr_unloaded(CHR_BOND, /*goto*/ 0x61) goto_next(0x62) label(0x61) set_ailist(CHR_ELVIS, AILIST_ELVIS_GIVE_FARSIGHT) label(0x62) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * Wait until not in sight of player (usually immediately), then unhide. * * Once the teleportals are activated, this is assigned to 3 guards at the * entrance to the grotto thing. */ u8 func041c_teleport_activation_responder[] = { beginloop(0x04) set_target_chr(CHR_BOND) if_chr_sees_player(/*goto*/ 0x2e) set_target_chr(CHR_COOP) if_chr_sees_player(/*goto*/ 0x2e) unset_self_chrflag(CHRCFLAG_HIDDEN) set_ailist(CHR_SELF, AILIST_INIT_SNIPER) label(0x2e) endloop(0x04) endlist }; u8 func041a_init_sniper[] = { if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) // SA and PA set_accuracy(30) set_reaction_speed(65) set_chr_maxdamage(CHR_SELF, 10) add_health_or_armor(70) set_recovery_speed(0) set_shield(0) set_ailist(CHR_SELF, AILIST_SNIPER_WAIT_FOR_DETECTION) // Agent label(0x2e) set_accuracy(20) set_reaction_speed(65) set_chr_maxdamage(CHR_SELF, 10) add_health_or_armor(70) set_recovery_speed(0) set_shield(0) set_ailist(CHR_SELF, AILIST_SNIPER_WAIT_FOR_DETECTION) endlist }; u8 func041b_sniper_wait_for_detection[] = { unset_self_chrflag(CHRCFLAG_UNEXPLODABLE) yield set_shotlist(AILIST_SNIPER) label(0x06) set_reaction_speed(100) set_shotlist(AILIST_SNIPER) restart_timer beginloop(0x04) chr_toggle_p1p2(CHR_SELF) set_target_chr(CHR_P1P2) if_chr_sees_player(/*goto*/ 0x2e) if_enemy_distance_lt_and_los(1000, /*goto*/ 0x2e) if_saw_death(0x00, /*goto*/ 0x2e) reloop(0x04) label(0x2e) if_distance_to_target_lt(400, /*goto*/ 0x06) if_jo_front_direction_lt(30, /*goto*/ 0x06) if_chr_in_view(/*goto*/ 0x06) if_saw_death(0x00, /*goto*/ 0x06) if_alertness(100, OPERATOR_GREATER_THAN, /*goto*/ 0x06) if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) if_timer_gt(180, /*goto*/ 0x06) label(0x2e) endloop(0x04) label(0x06) increase_squadron_alertness(100) set_self_chrflag(CHRCFLAG_00040000) set_chr_cloaked(CHR_SELF, TRUE, TRUE) set_ailist(CHR_SELF, AILIST_SNIPER) endlist }; u8 func041d_sniper[] = { set_self_chrflag(CHRCFLAG_00000040) set_shotlist(AILIST_SNIPER) set_chr_cloaked(CHR_SELF, TRUE, FALSE) if_chr_dying(CHR_SELF, /*goto*/ 0x06) if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x06) if_chr_unloaded(CHR_SELF, /*goto*/ 0x06) goto_next(0x03) // Dying label(0x06) goto_next(0x10) // Alive label(0x03) restart_timer cmd0139(70, 0x02, TRUE) beginloop(0x63) chr_toggle_p1p2(CHR_SELF) if_chr_sees_player(/*goto*/ 0x2e) dprint 'N','O',' ','P','L','A','Y','E','R',' ','T','A','R','G','E','T','\n',0, if_enemy_distance_lt_and_los(1000, /*goto*/ 0x2f) dprint 'N','O',' ','O','P','P','\n',0, goto_next(0x2f) label(0x2e) set_target_chr(CHR_P1P2) label(0x2f) if_target_is_player(/*goto*/ 0x2f) goto_next(0x2e) label(0x2f) dprint 'T','H','E',' ','P','L','A','Y','E','R',' ','i','s',' ','i','t','\n',0, if_timer_gt(180, /*goto*/ 0x06) if_chr_stopped(/*goto*/ 0x06) endloop(0x63) label(0x06) dprint '1','\n',0, stop_chr call_rng if_rand_gt(128, /*goto*/ 0x06) restart_timer beginloop(0x0e) if_timer_gt(120, /*goto*/ 0x06) endloop(0x0e) label(0x06) dprint '2','\n',0, set_chrpreset(CHR_TARGET) goto_next(0x06) // Unreachable if_target_is_player(/*goto*/ 0x2e) goto_next(0x06) label(0x2e) dprint 'C','H','E','C','K',' ','P','L','A','Y','E','R',' ','D','I','R','\n',0, if_player_looking_at_something_maybe(0x14, 0x01, 0x00, /*goto*/ 0x0d) dprint '3','\n',0, label(0x06) if_chr_sees_player(/*goto*/ 0x2e) dprint '4','\n',0, goto_next(0x0d) label(0x2e) restart_timer dprint '5','\n',0, set_chr_cloaked(CHR_SELF, FALSE, TRUE) label(0x0a) label(0x2e) try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x2e) label(0x2e) try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0b) beginloop(0x0b) if_chr_stopped(/*goto*/ 0x0c) endloop(0x0b) label(0x0c) if_target_is_player(/*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_chr_injured_target(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) set_stage_flag(STAGEFLAG_PURPLE_GUARD_SHOT_JO_OR_ELVIS) label(0x06) set_chr_cloaked(CHR_SELF, TRUE, TRUE) label(0x0d) set_target_chr(CHR_PRESET) goto_first(0x03) label(0x10) if_chr_has_hiddenflag(CHR_SELF, CHRHFLAG_CLOAKED, /*goto*/ 0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x2e) set_chr_cloaked(CHR_SELF, FALSE, TRUE) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func040c_blonde[] = { beginloop(0x04) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x06) endloop(0x04) label(0x06) unset_self_chrflag(CHRCFLAG_UNEXPLODABLE) set_chr_team(CHR_SELF, TEAM_ENEMY) rebuild_teams rebuild_squadrons set_shotlist(GAILIST_ALERTED) beginloop(0x08) if_saw_injury(0x00, /*goto*/ 0x06) if_saw_death(0x00, /*goto*/ 0x06) if_chr_sees_player(/*goto*/ 0x06) endloop(0x08) label(0x06) set_returnlist(CHR_SELF, GAILIST_ALERTED) set_ailist(CHR_SELF, GAILIST_ALERTED) endlist }; u8 func100c_countdown_timer[] = { beginloop(0x03) if_stage_flag_eq(STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x2e) endloop(0x03) label(0x2e) set_countdown_timer(60) show_countdown_timer start_countdown_timer beginloop(0x04) chr_toggle_p1p2(CHR_SELF) if_countdown_timer_lt(1, /*goto*/ 0x06) if_chr_in_room(CHR_P1P2, 0x00, 0x000c, /*goto*/ 0x2e) endloop(0x04) // Timer expired label(0x06) set_stage_flag(STAGEFLAG_TIMER_EXPIRED) yield set_ailist(CHR_SELF, AILIST_OUTRO) set_ailist(CHR_SELF, GAILIST_IDLE) // Player escaped label(0x2e) message(CHR_P1P2, 0x3010) // "Cetan ship evacuation successful." set_stage_flag(STAGEFLAG_ESCAPED) restart_timer stop_countdown_timer hide_countdown_timer label(0x09) yield label(0x2e) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x2e) if_chr_dying(CHR_BOND, /*goto*/ 0x2e) if_chr_unloaded(CHR_BOND, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x2e) if_chr_dying(CHR_COOP, /*goto*/ 0x2e) if_chr_unloaded(CHR_COOP, /*goto*/ 0x2e) goto_next(0x06) // Both players dead label(0x2e) end_level set_ailist(CHR_SELF, GAILIST_IDLE) // Mission complete label(0x06) set_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) set_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) set_ailist(CHR_SELF, AILIST_OUTRO) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func100e_check_elvis_dead[] = { beginloop(0x04) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x2e) if_chr_dying(CHR_ELVIS, /*goto*/ 0x2e) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x2e) endloop(0x04) label(0x2e) message(CHR_BOND, 0x300e) // "Elvis has been killed." set_stage_flag(STAGEFLAG_ALLY_DEAD) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func100f_check_drcaroll_dead[] = { beginloop(0x04) if_chr_death_animation_finished(CHR_DRCAROLL, /*goto*/ 0x2e) if_chr_dying(CHR_DRCAROLL, /*goto*/ 0x2e) if_chr_unloaded(CHR_DRCAROLL, /*goto*/ 0x2e) endloop(0x04) label(0x2e) message(CHR_BOND, 0x300f) // "Dr. Caroll has been killed." set_stage_flag(STAGEFLAG_ALLY_DEAD) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func040f_miniskedar_send_clones[] = { dprint 'D','E','T','E','C','T','E','D','\n',0, set_self_chrflag(CHRCFLAG_00000002) set_self_chrflag(CHRCFLAG_HIDDEN) set_self_chrflag(CHRCFLAG_00040000) beginloop(0x04) goto_next(0x52) reloop(0x04) label(0x52) if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x52) reloop(0x04) label(0x52) try_spawn_clone2(CHR_SELF, AILIST_INIT_MINISKEDAR, 0x00000010, /*goto*/ 0x2e) reloop(0x04) label(0x2e) yield endloop(0x04) endlist }; u8 func040e_init_miniskedar[] = { set_self_chrflag(CHRCFLAG_00080000) set_self_chrflag(CHRCFLAG_00020000) set_accuracy(0) set_reaction_speed(65) set_chr_maxdamage(CHR_SELF, 20) add_health_or_armor(0) set_recovery_speed(0) set_shield(0) set_self_chrflag(CHRCFLAG_00080000) set_chr_team(CHR_SELF, TEAM_ENEMY) rebuild_teams rebuild_squadrons set_ailist(CHR_SELF, AILIST_MINISKEDAR) endlist }; u8 func040f_miniskedar[] = { set_shotlist(AILIST_MINISKEDAR) if_chr_dying(CHR_SELF, /*goto*/ 0x2e) if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Dying label(0x2e) yield restart_timer beginloop(0x10) if_timer_gt(30, /*goto*/ 0x2e) endloop(0x10) label(0x2e) say_quip(CHR_BOND, 0x05, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x06) beginloop(0x03) if_enemy_distance_lt_and_los(2540, /*goto*/ 0x2e) label(0x2e) if_chr_sees_player(/*goto*/ 0x2e) goto_next(0x1e) label(0x2e) if_distance_to_target_lt(400, /*goto*/ 0x30) label(0x1e) restart_timer label(0x09) restart_timer if_enemy_distance_lt_and_los(2540, /*goto*/ 0x06) label(0x06) try_run_to_target(/*goto*/ 0x0a) beginloop(0x0a) if_chr_sees_player(/*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_distance_to_target_lt(400, /*goto*/ 0x30) label(0x06) if_timer_gt(60, /*goto*/ 0x06) endloop(0x0a) label(0x06) goto_first(0x09) label(0x30) restart_timer dprint 'F','A','C','E',' ','T','A','R','G','E','T','\n',0, stop_chr try_face_entity(0x0200, 0x0000, /*goto*/ 0x0b) beginloop(0x0b) if_timer_gt(30, /*goto*/ 0x06) reloop(0x0b) label(0x2e) if_jo_ccw_direction_lt(10, /*goto*/ 0x06) if_jo_ccw_direction_gt(246, /*goto*/ 0x06) endloop(0x0b) label(0x06) say_quip(CHR_BOND, 0x04, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00) if_distance_to_target_lt(200, /*goto*/ 0x2f) miniskedar_try_pounce(0x04, 0x000e, /*goto*/ 0x34) reloop(0x03) beginloop(0x34) if_chr_stopped(/*goto*/ 0x2e) endloop(0x34) label(0x2e) restart_timer if_chr_injured_target(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) label(0x2f) retreat(SPEED_RUN, 1) beginloop(0x0c) if_timer_gt(120, /*goto*/ 0x06) endloop(0x0c) label(0x06) endloop(0x03) endlist }; u8 func1010_agent_hallway_spawner[] = { // This flag is also set when Elvis gives you the Farsight, so perhaps that // used to be the trigger for miniskedar spawning but was changed so they // spawn immediately. set_stage_flag(STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING) beginloop(0x03) if_stage_flag_eq(STAGEFLAG_TRIGGER_MINISKEDAR_SPAWNING, TRUE, /*goto*/ 0x2e) endloop(0x03) label(0x2e) set_ailist(0x25, AILIST_MINISKEDAR_SEND_CLONES) set_ailist(0x26, AILIST_MINISKEDAR_SEND_CLONES) // Wait until player in a certain room beginloop(0x04) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x0054, /*goto*/ 0x2e) endloop(0x04) // Activate a different set of miniskedar label(0x2e) remove_chr(0x25) remove_chr(0x26) set_ailist(0x27, AILIST_MINISKEDAR_SEND_CLONES) set_ailist(0x28, AILIST_MINISKEDAR_SEND_CLONES) // Wait until player in a certain room beginloop(0x08) chr_toggle_p1p2(CHR_P1P2) if_chr_in_room(CHR_P1P2, 0x00, 0x005a, /*goto*/ 0x2e) endloop(0x08) // Activate a different set of miniskedar label(0x2e) remove_chr(0x27) remove_chr(0x28) set_ailist(0x2b, AILIST_MINISKEDAR_SEND_CLONES) set_ailist(0x2a, AILIST_MINISKEDAR_SEND_CLONES) // Wait until player in a certain room beginloop(0x09) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x0067, /*goto*/ 0x2e) endloop(0x09) label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0411_hide[] = { set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE) set_self_chrflag(CHRCFLAG_00040000) set_self_chrflag(CHRCFLAG_HIDDEN) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0412_unused[] = { set_chr_hiddenflag(CHR_SELF, CHRHFLAG_CLOAKED) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * Assigned to 3 guards who appear after teleports activated. */ u8 func0413_cloak_and_hide[] = { set_chr_cloaked(CHR_SELF, TRUE, FALSE) stop_chr yield set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE) set_self_chrflag(CHRCFLAG_00040000) set_self_chrflag(CHRCFLAG_HIDDEN) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1012_sa_megaweapon_spawner[] = { beginloop(0x04) if_stage_flag_eq(STAGEFLAG_ELVIS_STARTED_SA_MEGAWEAPON, TRUE, /*goto*/ 0x1f) endloop(0x04) label(0x1f) restart_timer beginloop(0x20) dprint 'T','I','M','E','\n',0, if_stage_flag_eq(STAGEFLAG_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x06) // Megaweapon not disabled yet - spawn every 8 seconds if_timer_lt(480, /*goto*/ 0x21) goto_next(0x2e) // Megaweapon disabled - spawn every 48 seconds label(0x06) if_timer_lt(2880, /*goto*/ 0x21) // Consider spawn label(0x2e) dprint 'S','Q','U','A','D','\n',0, if_num_chrs_in_squadron_gt(5, 0x0e, /*goto*/ 0x21) call_rng if_rand_gt(86, /*goto*/ 0x63) if_rand_gt(172, /*goto*/ 0x64) try_spawn_chr_at_pad(BODY_MINISKEDAR, HEAD_RANDOM, 0x01f4, AILIST_INIT_SA_MEGAWEAPON_MINISKEDAR, 0x00000010, /*goto*/ 0x22) goto_next(0x21) label(0x63) try_spawn_chr_at_pad(BODY_MINISKEDAR, HEAD_RANDOM, 0x01f5, AILIST_INIT_SA_MEGAWEAPON_MINISKEDAR, 0x00000010, /*goto*/ 0x22) goto_next(0x21) label(0x64) try_spawn_chr_at_pad(BODY_MINISKEDAR, HEAD_RANDOM, 0x01f6, AILIST_INIT_SA_MEGAWEAPON_MINISKEDAR, 0x00000010, /*goto*/ 0x22) goto_next(0x21) label(0x21) endloop(0x20) label(0x22) yield rebuild_teams rebuild_squadrons goto_first(0x1f) endlist }; // SA megaweapon miniskedar u8 func041e_init_sa_megaweapon_miniskedar[] = { set_squadron(SQUADRON_0E) rebuild_teams rebuild_squadrons set_ailist(CHR_SELF, AILIST_INIT_MINISKEDAR) endlist }; /** * On PA, in the room with 5 cylinders that must be destroyed to open the door. */ #define doorcylinder_logic(glass1, glass2, glass3, mine, stageflag) \ beginloop(0x04) \ if_object_in_good_condition(glass1, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass2, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass3, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ endloop(0x04) \ \ label(0x06) \ assign_sound(0x8147, CHANNEL_7) \ control_sound_from_object(CHANNEL_7, mine, TRUE) \ yield \ destroy_object(mine) \ destroy_object(glass1) \ destroy_object(glass2) \ destroy_object(glass3) \ set_stage_flag(stageflag) \ set_ailist(CHR_SELF, 0x0408) u8 func1013_pa_doorcylinder1[] = { set_lights_state(0x00a1, 0x04, 0x00, 0xff, 0xb4) set_lights_state(0x00a9, 0x04, 0x00, 0xff, 0xb4) set_lights_state(0x00ac, 0x04, 0x00, 0xff, 0xb4) set_lights_state(0x00b4, 0x04, 0x00, 0xff, 0xb4) set_lights_state(0x00b7, 0x04, 0x00, 0xff, 0xb4) set_lights_state(0x00bf, 0x04, 0x00, 0xff, 0xb4) set_lights_state(0x00c0, 0x04, 0x00, 0xff, 0xb4) set_lights_state(0x00c1, 0x04, 0x00, 0xff, 0xb4) set_lights_state(0x00c2, 0x04, 0x00, 0xff, 0xb4) set_lights_state(0x00c3, 0x04, 0x00, 0xff, 0xb4) set_lights_state(0x006c, 0x04, 0x00, 0xff, 0xf0) doorcylinder_logic(0x11, 0x12, 0x13, 0x9c, STAGEFLAG_PA_EARLYDOORCYLINDER1_DESTROYED) endlist }; u8 func1014_pa_doorcylinder2[] = { doorcylinder_logic(0x14, 0x15, 0x16, 0x9d, STAGEFLAG_PA_EARLYDOORCYLINDER2_DESTROYED) endlist }; u8 func1015_pa_doorcylinder3[] = { doorcylinder_logic(0x17, 0x18, 0x19, 0x9e, STAGEFLAG_PA_EARLYDOORCYLINDER3_DESTROYED) endlist }; u8 func1016_pa_doorcylinder4[] = { doorcylinder_logic(0x1a, 0x1b, 0x1c, 0x9f, STAGEFLAG_PA_EARLYDOORCYLINDER4_DESTROYED) endlist }; u8 func1017_pa_doorcylinder5[] = { doorcylinder_logic(0x1d, 0x1e, 0x1f, 0xa0, STAGEFLAG_PA_EARLYDOORCYLINDER5_DESTROYED) endlist }; u8 func0408_check_pa_earlydoorcylinders_destroyed[] = { label(0x04) yield if_stage_flag_eq(STAGEFLAG_PA_EARLYDOORCYLINDER1_DESTROYED, TRUE, /*goto*/ 0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x2e) if_stage_flag_eq(STAGEFLAG_PA_EARLYDOORCYLINDER2_DESTROYED, TRUE, /*goto*/ 0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x2e) if_stage_flag_eq(STAGEFLAG_PA_EARLYDOORCYLINDER3_DESTROYED, TRUE, /*goto*/ 0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x2e) if_stage_flag_eq(STAGEFLAG_PA_EARLYDOORCYLINDER4_DESTROYED, TRUE, /*goto*/ 0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x2e) if_stage_flag_eq(STAGEFLAG_PA_EARLYDOORCYLINDER5_DESTROYED, TRUE, /*goto*/ 0x08) set_ailist(CHR_SELF, GAILIST_IDLE) beginloop(0x08) if_door_state(0x09, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) endloop(0x08) label(0x06) set_lights_state(0x008b, 0x03, 0xff, 0x0a, 0x78) set_lights_state(0x00bf, 0x03, 0xff, 0x0a, 0x78) set_lights_state(0x00c0, 0x03, 0xff, 0x0a, 0x78) set_lights_state(0x00c1, 0x03, 0xff, 0x0a, 0x78) set_lights_state(0x00c2, 0x03, 0xff, 0x0a, 0x78) set_lights_state(0x00c3, 0x03, 0xff, 0x0a, 0x78) open_door(0x09) open_door(0x0a) goto_first(0x08) endlist }; #define pa_cylinder(glass, mine) \ /* Wait until any object destroyed */ \ beginloop(0x04) \ if_object_in_good_condition(glass, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass + 1, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass + 2, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass + 3, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass + 4, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass + 5, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass + 6, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass + 7, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass + 8, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass + 9, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass + 10, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ if_object_in_good_condition(glass + 11, /*goto*/ 0x2e) \ goto_next(0x06) \ label(0x2e) \ endloop(0x04) \ \ label(0x06) \ destroy_object(mine) \ destroy_object(glass) \ destroy_object(glass + 1) \ destroy_object(glass + 2) \ destroy_object(glass + 3) \ destroy_object(glass + 4) \ destroy_object(glass + 5) \ destroy_object(glass + 6) \ destroy_object(glass + 7) \ destroy_object(glass + 8) \ destroy_object(glass + 9) \ destroy_object(glass + 10) \ destroy_object(glass + 11) u8 func1018_pa_door1[] = { pa_cylinder(0x20, 0xa1) set_stage_flag(STAGEFLAG_PA_MIDDOORCYLINDER_DESTROYED) set_lights_state(0x00a1, 0x03, 0xff, 0x0a, 0x78) beginloop(0x08) if_door_state(0x0b, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) reloop(0x08) label(0x06) open_door(0x0b) open_door(0x0c) endloop(0x08) endlist }; /** * The 4 cylinders in the tunnels that must be destroyed before the door to the * final room opens. */ u8 func0409_check_pa_latedoorcylinders_destroyed[] = { label(0x04) yield if_stage_flag_eq(STAGEFLAG_PA_LATEDOORCYLINDER1_DESTROYED, TRUE, /*goto*/ 0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x2e) if_stage_flag_eq(STAGEFLAG_PA_LATEDOORCYLINDER2_DESTROYED, TRUE, /*goto*/ 0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x2e) if_stage_flag_eq(STAGEFLAG_PA_LATEDOORCYLINDER3_DESTROYED, TRUE, /*goto*/ 0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x2e) if_stage_flag_eq(STAGEFLAG_PA_LATEDOORCYLINDER4_DESTROYED, TRUE, /*goto*/ 0x08) set_ailist(CHR_SELF, GAILIST_IDLE) beginloop(0x08) if_door_state(0x0d, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) endloop(0x08) label(0x06) open_door(0x0d) open_door(0x0e) goto_first(0x08) endlist }; u8 func1019_pa_door2[] = { pa_cylinder(0x2c, 0xa2) set_lights_state(0x00a9, 0x03, 0xff, 0x0a, 0x78) label(0x08) set_stage_flag(STAGEFLAG_PA_LATEDOORCYLINDER1_DESTROYED) set_ailist(CHR_SELF, 0x0409) endlist }; u8 func101a_pa_door3[] = { pa_cylinder(0x38, 0xa3) set_lights_state(0x00ac, 0x03, 0xff, 0x0a, 0x78) label(0x08) set_stage_flag(STAGEFLAG_PA_LATEDOORCYLINDER2_DESTROYED) set_ailist(CHR_SELF, 0x0409) endlist }; u8 func101b_pa_door4[] = { pa_cylinder(0x44, 0xa4) set_lights_state(0x00b4, 0x03, 0xff, 0x0a, 0x78) label(0x08) set_stage_flag(STAGEFLAG_PA_LATEDOORCYLINDER3_DESTROYED) set_ailist(CHR_SELF, 0x0409) endlist }; u8 func101c_pa_door5[] = { // @bug: One of the PA door glasses is checked twice, and one is not // checked at all, hence why this doesn't use the pa_cylindar macro. // Wait until any object destroyed beginloop(0x04) if_object_in_good_condition(0x50, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_object_in_good_condition(0x51, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_object_in_good_condition(0x52, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_object_in_good_condition(0x52, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_object_in_good_condition(0x53, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_object_in_good_condition(0x54, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_object_in_good_condition(0x55, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_object_in_good_condition(0x56, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_object_in_good_condition(0x57, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_object_in_good_condition(0x58, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_object_in_good_condition(0x59, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) if_object_in_good_condition(0x5a, /*goto*/ 0x2e) goto_next(0x06) label(0x2e) endloop(0x04) label(0x06) destroy_object(0xa5) destroy_object(0x50) destroy_object(0x51) destroy_object(0x52) destroy_object(0x52) destroy_object(0x53) destroy_object(0x54) destroy_object(0x55) destroy_object(0x56) destroy_object(0x57) destroy_object(0x58) destroy_object(0x59) destroy_object(0x5a) set_lights_state(0x00b7, 0x03, 0xff, 0x0a, 0x78) label(0x08) set_stage_flag(STAGEFLAG_PA_LATEDOORCYLINDER4_DESTROYED) set_ailist(CHR_SELF, 0x0409) endlist }; u8 func101d_pa_canister1[] = { pa_cylinder(0x5b, 0xa6) label(0x08) set_stage_flag(STAGEFLAG_PA_CANISTER1_DESTROYED) set_ailist(CHR_SELF, 0x040a) endlist }; u8 func101e_pa_canister2[] = { pa_cylinder(0x67, 0xa7) label(0x08) set_stage_flag(STAGEFLAG_PA_CANISDER2_DESTROYED) set_ailist(CHR_SELF, 0x040a) endlist }; u8 func040a_check_pa_canisters_destroyed[] = { label(0x04) yield if_stage_flag_eq(STAGEFLAG_PA_CANISTER1_DESTROYED, TRUE, /*goto*/ 0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x2e) if_stage_flag_eq(STAGEFLAG_PA_CANISDER2_DESTROYED, TRUE, /*goto*/ 0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) // Both canisters destroyed label(0x2e) set_object_flag(0x0f, OBJFLAG_40000000) set_lights_state(0x00bc, 0x03, 0xff, 0x0a, 0x78) beginloop(0x08) if_door_state(0x0f, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ 0x06) endloop(0x08) label(0x06) if_stage_flag_eq(STAGEFLAG_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e) message(CHR_BOND, 0x302b) // "Cetan megaweapon has been disabled." set_stage_flag(STAGEFLAG_MEGAWEAPON_DISABLED) label(0x2e) open_door(0x0f) open_door(0x10) goto_first(0x08) endlist }; /** * The room with 5 cylinders that open a door. */ u8 func101f_pa_circleroom_spawner[] = { beginloop(0x04) chr_toggle_p1p2(CHR_SELF) if_door_state(0x09, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x2e) if_chr_in_room(CHR_P1P2, 0x00, 0x008b, /*goto*/ 0x2e) endloop(0x04) label(0x2e) restart_timer beginloop(0x0d) if_door_state(0x09, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x1f) if_timer_gt(300, /*goto*/ 0x1f) endloop(0x0d) label(0x1f) restart_timer beginloop(0x20) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x008c, /*goto*/ 0x58) dprint 'T','I','M','E','\n',0, if_timer_lt(300, /*goto*/ 0x21) label(0x2e) dprint 'S','Q','U','A','D','\n',0, if_num_chrs_in_squadron_gt(3, 0x0d, /*goto*/ 0x21) call_rng if_rand_gt(128, /*goto*/ 0x63) try_spawn_chr_at_pad(BODY_MINISKEDAR, HEAD_RANDOM, 0x00dd, AILIST_INIT_PA_CIRCLEROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) goto_next(0x21) label(0x63) try_spawn_chr_at_pad(BODY_MINISKEDAR, HEAD_RANDOM, 0x00dd, AILIST_INIT_PA_CIRCLEROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) goto_next(0x21) label(0x21) endloop(0x20) label(0x22) yield rebuild_teams rebuild_squadrons goto_first(0x1f) label(0x58) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func041f_init_pa_circleroom_miniskedar[] = { set_squadron(SQUADRON_0D) rebuild_teams rebuild_squadrons set_ailist(CHR_SELF, AILIST_INIT_MINISKEDAR) endlist }; u8 func1020_pa_deadendroom_spawner[] = { beginloop(0x04) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x00b4, /*goto*/ 0x2e) if_chr_in_room(CHR_P1P2, 0x00, 0x00b8, /*goto*/ 0x2e) endloop(0x04) label(0x2e) set_ailist(0x38, AILIST_INIT_PA_DEADENDROOM_MINISKEDAR) set_ailist(0x39, AILIST_INIT_PA_DEADENDROOM_MINISKEDAR) set_ailist(0x3a, AILIST_INIT_PA_DEADENDROOM_MINISKEDAR) set_ailist(0x3b, AILIST_INIT_PA_DEADENDROOM_MINISKEDAR) label(0x1f) restart_timer beginloop(0x20) dprint 'T','I','M','E','\n',0, if_timer_lt(300, /*goto*/ 0x21) label(0x2e) dprint 'S','Q','U','A','D','\n',0, if_num_chrs_in_squadron_gt(3, 0x0b, /*goto*/ 0x21) call_rng if_rand_gt(64, /*goto*/ 0x63) if_rand_gt(128, /*goto*/ 0x64) if_rand_gt(196, /*goto*/ 0x65) try_spawn_chr_at_pad(BODY_MINISKEDAR, HEAD_RANDOM, 0x01af, AILIST_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) goto_next(0x21) label(0x63) try_spawn_chr_at_pad(BODY_MINISKEDAR, HEAD_RANDOM, 0x01b0, AILIST_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) goto_next(0x21) label(0x64) try_spawn_chr_at_pad(BODY_MINISKEDAR, HEAD_RANDOM, 0x01b1, AILIST_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) goto_next(0x21) label(0x65) try_spawn_chr_at_pad(BODY_MINISKEDAR, HEAD_RANDOM, 0x01b2, AILIST_INIT_PA_DEADENDROOM_MINISKEDAR, 0x00000000, /*goto*/ 0x22) goto_next(0x21) label(0x21) endloop(0x20) label(0x22) yield rebuild_teams rebuild_squadrons goto_first(0x1f) endlist }; u8 func0420_init_pa_deadendroom_miniskedar[] = { set_squadron(SQUADRON_0B) rebuild_teams rebuild_squadrons set_ailist(CHR_SELF, AILIST_INIT_MINISKEDAR) endlist }; u8 func1021_c6c4[] = { beginloop(0x04) if_stage_flag_eq(STAGEFLAG_PA_MIDDOORCYLINDER_DESTROYED, TRUE, /*goto*/ 0x2e) if_chr_dying(0x30, /*goto*/ 0x2e) if_chr_dying(0x31, /*goto*/ 0x2e) if_chr_dying(0x32, /*goto*/ 0x2e) if_chr_dying(0x33, /*goto*/ 0x2e) if_chr_dying(0x34, /*goto*/ 0x2e) if_chr_dying(0x35, /*goto*/ 0x2e) endloop(0x04) label(0x2e) set_ailist(0x30, AILIST_INIT_MINISKEDAR) set_ailist(0x31, AILIST_INIT_MINISKEDAR) set_ailist(0x32, AILIST_INIT_MINISKEDAR) set_ailist(0x33, AILIST_INIT_MINISKEDAR) set_ailist(0x34, AILIST_INIT_MINISKEDAR) set_ailist(0x35, AILIST_INIT_MINISKEDAR) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; #define init_path(pathid, function) \ set_chr_dodge_rating(2, 0x0a) \ set_accuracy(20) \ set_reaction_speed(65) \ set_chr_maxdamage(CHR_SELF, 70) \ add_health_or_armor(0) \ set_recovery_speed(0) \ set_shield(0) \ set_returnlist(CHR_SELF, function) \ assign_path(pathid) \ start_path \ set_ailist(CHR_SELF, GAILIST_UNALERTED_0004) u8 func0421_start_path02[] = { init_path(2, 0x0421) endlist }; u8 func0422_start_path03[] = { init_path(3, 0x0422) endlist }; u8 func0423_start_path04[] = { init_path(4, 0x0423) endlist }; u8 func0424_start_path05[] = { init_path(5, 0x0424) endlist }; u8 func0425_start_path06[] = { init_path(6, 0x0425) endlist }; u8 func0426_start_path07[] = { init_path(7, 0x0426) endlist }; u8 func0427_start_path08[] = { init_path(8, 0x0427) endlist }; u8 func0428_start_path09[] = { init_path(9, 0x0428) endlist }; u8 func0429_start_path10[] = { init_path(10, 0x0429) endlist }; u8 func1022_control_room[] = { if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e) goto_next(0x04) // Agent label(0x2e) remove_chr(CHR_BLONDE1) remove_chr(CHR_BLONDE2) set_ailist(CHR_SELF, GAILIST_IDLE) // SA and PA beginloop(0x04) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e) endloop(0x04) label(0x2e) if_chr_dying(CHR_BLONDE1, /*goto*/ 0x2e) if_chr_death_animation_finished(CHR_BLONDE1, /*goto*/ 0x2e) if_chr_unloaded(CHR_BLONDE1, /*goto*/ 0x2e) goto_first(0x04) label(0x2e) if_chr_dying(CHR_BLONDE2, /*goto*/ 0x2e) if_chr_death_animation_finished(CHR_BLONDE2, /*goto*/ 0x2e) if_chr_unloaded(CHR_BLONDE2, /*goto*/ 0x2e) goto_first(0x04) label(0x2e) message(CHR_P1P2, 0x3015) // "Control Room has been secured." set_stage_flag(STAGEFLAG_BLONDES_DEAD) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1023_check_drcaroll_restored[] = { if_difficulty_lt(DIFF_PA, /*goto*/ 0x04) yield give_object_to_chr(OBJ_BACKUPDISK, CHR_BOND) beginloop(0x04) if_chr_death_animation_finished(CHR_DRCAROLL, /*goto*/ 0x0d) if_chr_dying(CHR_DRCAROLL, /*goto*/ 0x0d) if_chr_unloaded(CHR_DRCAROLL, /*goto*/ 0x0d) if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d) if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d) if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d) chr_toggle_p1p2(CHR_SELF) if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x0193, /*goto*/ 0x2e) reloop(0x04) label(0x2e) if_difficulty_lt(DIFF_SA, /*goto*/ 0x08) if_stage_flag_eq(STAGEFLAG_BLONDES_DEAD, TRUE, /*goto*/ 0x2e) reloop(0x04) label(0x2e) if_difficulty_lt(DIFF_PA, /*goto*/ 0x08) if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x0193, /*goto*/ 0x2e) reloop(0x04) label(0x2e) if_chr_weapon_equipped(CHR_P1P2, WEAPON_BACKUPDISK, /*goto*/ 0x2e) endloop(0x04) label(0x2e) set_stage_flag(STAGEFLAG_DRCAROLL_RESTORED) label(0x08) set_ailist(CHR_SELF, AILIST_MIDCUTSCENE) label(0x0d) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1024_update_elvis_target_chr[] = { beginloop(0x04) if_chr_dying(CHR_BOND, /*goto*/ 0x08) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x08) if_chr_unloaded(CHR_BOND, /*goto*/ 0x08) set_chr_target_chr(CHR_ELVIS, CHR_BOND) unset_stage_flag(STAGEFLAG_ELVIS_FOLLOWING_COOP) endloop(0x04) beginloop(0x08) if_chr_dying(CHR_COOP, /*goto*/ 0x2e) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x2e) if_chr_unloaded(CHR_COOP, /*goto*/ 0x2e) set_chr_target_chr(CHR_ELVIS, CHR_COOP) set_stage_flag(STAGEFLAG_ELVIS_FOLLOWING_COOP) endloop(0x08) label(0x2e) goto_first(0x04) endlist }; u8 unregistered_function1[] = { label(0x04) chr_move_to_pad(CHR_ELVIS, 0x01bf, 0x01, /*goto*/ 0x06) label(0x06) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) set_ailist(CHR_ELVIS, AILIST_ELVIS_FOLLOW_AND_REACTIVATE_TELEPORTALS) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1026_setup_autoguns[] = { yield set_autoturret_type(0xa8, 0x12) set_autoturret_type(0xa9, 0x12) set_autoturret_type(0xaa, 0x12) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func042e_elvis_run_to_exit[] = { set_self_chrflag(CHRCFLAG_00080000) set_shotlist(AILIST_ELVIS_RUN_TO_EXIT) set_returnlist(CHR_SELF, AILIST_ELVIS_RUN_TO_EXIT) set_target_chr(CHR_PRESET) if_chr_dying(CHR_SELF, /*goto*/ 0x2e) if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2e) if_chr_unloaded(CHR_SELF, /*goto*/ 0x2e) goto_next(0x06) // Dying label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x06) if_just_injured(CHR_SELF, /*goto*/ 0x2e) goto_next(0x5f) // Injured label(0x2e) say_quip(CHR_BOND, 0x29, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) beginloop(0x12) if_chr_stopped(/*goto*/ 0x06) endloop(0x12) // Healthy label(0x1f) label(0x06) set_target_chr(CHR_PRESET) label(0x5f) restart_timer if_distance_to_target_lt(1400, /*goto*/ 0x2e) jog_to_pad(0x0004) goto_next(0x0f) label(0x2e) run_to_pad(0x0004) beginloop(0x0f) if_enemy_distance_lt_and_los(800, /*goto*/ 0x08) if_timer_gt(300, /*goto*/ 0x06) if_chr_stopped(/*goto*/ 0x2e) endloop(0x0f) label(0x06) goto_first(0x5f) label(0x2e) stop_chr goto_first(0x1f) label(0x06) restart_timer label(0x08) if_target_is_player(/*goto*/ 0x06) goto_next(0x2e) label(0x06) goto_first(0x1f) label(0x2e) dprint 'D','E','T','E','C','T','E','D','\n',0, call_rng if_rand_lt(85, /*goto*/ 0x63) if_rand_lt(170, /*goto*/ 0x64) say_quip(CHR_BOND, 0x26, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) goto_next(0x2e) label(0x63) say_quip(CHR_BOND, 0x27, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) goto_next(0x2e) label(0x64) say_quip(CHR_BOND, 0x28, 0xff, 0x0f, 0xff, BANK_1, 0x00, 0x00) label(0x2e) set_shotlist(AILIST_ELVIS_RUN_TO_EXIT) set_returnlist(CHR_SELF, AILIST_ELVIS_RUN_TO_EXIT) set_ailist(CHR_SELF, GAILIST_COMBAT_WITH_TARGET) endlist }; u8 func1027_powernode_illumination[] = { beginloop(0x04) if_door_state(0x03, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) unset_object_flag(OBJ_POWERNODE1, OBJFLAG_ILLUMINATED) goto_next(0x06) label(0x2e) set_object_flag(OBJ_POWERNODE1, OBJFLAG_ILLUMINATED) label(0x06) if_door_state(0x04, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) unset_object_flag(OBJ_POWERNODE2, OBJFLAG_ILLUMINATED) goto_next(0x06) label(0x2e) set_object_flag(OBJ_POWERNODE2, OBJFLAG_ILLUMINATED) label(0x06) if_door_state(0x05, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) unset_object_flag(OBJ_POWERNODE3, OBJFLAG_ILLUMINATED) goto_next(0x06) label(0x2e) set_object_flag(OBJ_POWERNODE3, OBJFLAG_ILLUMINATED) label(0x06) endloop(0x04) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * Enables 3 guards near the grotto entrace during the escape timer. */ u8 func1028_enable_last_3_guards[] = { beginloop(0x04) if_stage_flag_eq(STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x2e) reloop(0x04) label(0x2e) if_door_state(0xab, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x2e) endloop(0x04) label(0x2e) unset_chr_chrflag(0x3c, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x3d, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x3e, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x3c, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) unset_chr_chrflag(0x3d, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) unset_chr_chrflag(0x3e, CHRCFLAG_INVINCIBLE_TO_GUNFIRE) set_ailist(0x3c, AILIST_RUN_TO_EXIT) set_ailist(0x3d, AILIST_RUN_TO_EXIT) set_ailist(0x3e, AILIST_RUN_TO_EXIT) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func042b_run_to_exit[] = { set_chr_dodge_rating(2, 0x0a) set_accuracy(40) set_reaction_speed(65) set_chr_maxdamage(CHR_SELF, 10) add_health_or_armor(70) set_recovery_speed(0) set_shield(0) label(0x04) run_to_pad(0x0000) set_ailist(CHR_SELF, GAILIST_UNALERTED) endlist }; u8 func1429_start_lift[] = { if_coop_mode(/*goto*/ 0x45) activate_lift(1, 0x07) label(0x45) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func102a_kill_pelagic_guard[] = { yield damage_chr(0x3f, 18) yield damage_chr(0x3f, 18) yield damage_chr(0x3f, 18) yield damage_chr(0x3f, 18) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func102b_proxymines[] = { beginloop(0x04) if_chr_death_animation_finished(0x08, /*goto*/ 0x06) if_chr_dying(0x08, /*goto*/ 0x06) if_chr_unloaded(0x08, /*goto*/ 0x06) if_stage_flag_eq(STAGEFLAG_PURPLE_GUARD_SHOT_JO_OR_ELVIS, TRUE, /*goto*/ 0x2e) endloop(0x04) label(0x2e) set_object_flag(OBJ_PROXYMINES, OBJFLAG_UNCOLLECTABLE) set_object_flag2(OBJ_PROXYMINES, OBJFLAG2_INVISIBLE) label(0x06) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func102c_lock_doors[] = { label(0x04) yield if_difficulty_lt(DIFF_PA, /*goto*/ 0x2e) // PA lock_door(0xb1, 0x80) lock_door(0xb2, 0x80) set_object_flag2(0xb1, OBJFLAG2_AICANNOTUSE) set_object_flag2(0xb2, OBJFLAG2_AICANNOTUSE) // A and SA label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func040f_miniskedar_unalerted[] = { set_shotlist(AILIST_MINISKEDAR) set_self_chrflag(CHRCFLAG_00080000) set_self_chrflag(CHRCFLAG_00020000) set_accuracy(0) set_reaction_speed(65) set_chr_maxdamage(CHR_SELF, 20) add_health_or_armor(0) set_recovery_speed(0) set_shield(0) set_self_chrflag(CHRCFLAG_00080000) set_chr_team(CHR_SELF, TEAM_ENEMY) rebuild_teams rebuild_squadrons beginloop(0x04) chr_toggle_p1p2(CHR_SELF) set_target_chr(CHR_P1P2) if_chr_sees_player(/*goto*/ 0x2e) endloop(0x04) label(0x2e) set_ailist(CHR_SELF, AILIST_MINISKEDAR) endlist }; u8 func0432_dead_skedar[] = { set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE) label(0x08) yield chr_do_animation(ANIM_SKEDAR_COLLAPSE, -1, -1, 0x06, 0x00, 0x21, 2) label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 unregistered_function2[] = { set_lights_state(0x0009, 0x04, 0x00, 0xff, 0xfa) beginloop(0x08) endloop(0x08) label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func102e_open_powernode_doors_on_agent[] = { if_difficulty_lt(DIFF_SA, /*goto*/ 0x08) set_ailist(CHR_SELF, GAILIST_IDLE) // Agent label(0x08) open_door(0x03) set_object_flag(0x03, OBJFLAG_40000000) open_door(0x04) set_object_flag(0x04, OBJFLAG_40000000) open_door(0x05) set_object_flag(0x05, OBJFLAG_40000000) label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * Stop whatever Elvis is doing in preparation for teleporting. */ u8 func042c_elvis_stop[] = { label(0x08) stop_chr // @bug: This needs to set the onshot function to GAILIST_IDLE too, otherwise // his function will be reassigned if he takes damage between here and the // teleport. This causes him to not teleport. label(0x2e) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func102f_unlock_drcaroll_door[] = { // Wait until player in Dr Caroll room beginloop(0x08) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e) endloop(0x08) // Unlock exit door label(0x2e) unlock_door(0x75, 0x02) unlock_door(0x76, 0x02) unset_object_flag2(0x75, OBJFLAG2_AICANNOTUSE) unset_object_flag2(0x76, OBJFLAG2_AICANNOTUSE) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1030_unlock_agent_teleport_door[] = { beginloop(0x08) if_stage_flag_eq(STAGEFLAG_MEGAWEAPON_DISABLED, TRUE, /*goto*/ 0x2e) endloop(0x08) // Agent area, near megaweapon. Door that leads to exit teleport. label(0x2e) unlock_door(0xb7, 0x02) unlock_door(0xb8, 0x02) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * Wait until Jo has the trigger buddy warp flag set, then unset it 30 seconds * later. */ u8 func1031_unset_trigger_buddy_warp[] = { beginloop(0x08) if_chr_has_hiddenflag(CHR_BOND, CHRHFLAG_TRIGGER_BUDDY_WARP, /*goto*/ 0x2e) reloop(0x08) label(0x2e) restart_timer beginloop(0x09) if_timer_gt(1800, /*goto*/ 0x2e) endloop(0x09) label(0x2e) unset_chr_hiddenflag(CHR_BOND, CHRHFLAG_TRIGGER_BUDDY_WARP) endloop(0x08) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * Toggle a stage flag every 5 seconds. * * There's a good chance that this flag had a different meaning back when this * was working. */ u8 unregistered_function3[] = { label(0x1f) restart_timer beginloop(0x08) if_timer_gt(300, /*goto*/ 0x2e) endloop(0x08) label(0x2e) unset_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) restart_timer beginloop(0x09) if_timer_gt(300, /*goto*/ 0x2e) endloop(0x09) label(0x2e) set_stage_flag(STAGEFLAG_SA_EXIT_TELEPORT_DISABLED) goto_first(0x1f) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1032_setup_rtracker[] = { yield set_object_flag3(OBJ_PROXYMINES, OBJFLAG3_RTRACKED_BLUE) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1433_setup_lighting[] = { yield misc_command(0x0000, 0x09, 0x01) misc_command(0x0002, 0x05, 0x00) misc_command(0x0003, 0x05, 0x00) misc_command(0x0004, 0x05, 0x00) misc_command(0x0006, 0x05, 0x00) misc_command(0x0007, 0x05, 0x00) misc_command(0x0008, 0x05, 0x00) misc_command(0x000c, 0x05, 0x00) misc_command(0x000d, 0x05, 0x00) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1034_enable_blondes[] = { if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d) yield hide_chr(CHR_BLONDE1) hide_chr(CHR_BLONDE2) beginloop(0x04) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e) endloop(0x04) label(0x2e) show_chr(CHR_BLONDE1) show_chr(CHR_BLONDE2) set_ailist(CHR_BLONDE1, AILIST_BLONDE) set_ailist(CHR_BLONDE2, AILIST_BLONDE) label(0x0d) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func102d_check_farsight_ammo_wasted[] = { if_difficulty_lt(DIFF_PA, /*goto*/ 0x0d) // Probable @bug: Looks like the objective will fail if one buddy uses all // their ammo but the other is still stocked. beginloop(0x1f) if_chr_weapon_equipped(CHR_BOND, WEAPON_FARSIGHTXR20, /*goto*/ 0x2e) if_chr_weapon_equipped(CHR_COOP, WEAPON_FARSIGHTXR20, /*goto*/ 0x2f) endloop(0x1f) label(0x2e) set_target_chr(CHR_BOND) goto_next(0x63) label(0x2f) set_target_chr(CHR_COOP) beginloop(0x63) if_objective_complete(1, /*goto*/ 0x0d) if_ammo_quantity_lt(CHR_TARGET, AMMOTYPE_FARSIGHT, 1, /*goto*/ 0x2e) endloop(0x63) label(0x2e) message(CHR_BOND, 0x302c) // "Ammo wasted - unable to disable megaweapon." set_stage_flag(STAGEFLAG_FARSIGHT_AMMO_WASTED) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x0d) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 unregistered_function4[] = { mp_init_simulants rebuild_teams rebuild_squadrons set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; struct ailist ailists[] = { { func0401_unused, 0x0401 }, { func1400_setup_counterop, 0x1400 }, { func1001_objectives_failed_msg, 0x1001 }, { func1002_intro, 0x1002 }, { func1003_powernode1, 0x1003 }, { func1004_powernode2, 0x1004 }, { func1005_powernode3, 0x1005 }, { func1006_msg_thiswillhelpus, 0x1006 }, { func1007_msg_antibodymasking, 0x1007 }, { func1008_msg_theresdrcaroll, 0x1008 }, { func1009_msg_getoutofhere, 0x1009 }, { func100a_bond_teleports, 0x100a }, { func100b_coop_teleports, 0x100b }, { func100c_countdown_timer, 0x100c }, { func100e_check_elvis_dead, 0x100e }, { func100f_check_drcaroll_dead, 0x100f }, { func1010_agent_hallway_spawner, 0x1010 }, { func1012_sa_megaweapon_spawner, 0x1012 }, { func1013_pa_doorcylinder1, 0x1013 }, { func1014_pa_doorcylinder2, 0x1014 }, { func1015_pa_doorcylinder3, 0x1015 }, { func1016_pa_doorcylinder4, 0x1016 }, { func1017_pa_doorcylinder5, 0x1017 }, { func1018_pa_door1, 0x1018 }, { func1019_pa_door2, 0x1019 }, { func101a_pa_door3, 0x101a }, { func101b_pa_door4, 0x101b }, { func101c_pa_door5, 0x101c }, { func101d_pa_canister1, 0x101d }, { func101e_pa_canister2, 0x101e }, { func101f_pa_circleroom_spawner, 0x101f }, { func1020_pa_deadendroom_spawner, 0x1020 }, { func1021_c6c4, 0x1021 }, { func1022_control_room, 0x1022 }, { func1023_check_drcaroll_restored, 0x1023 }, { func1024_update_elvis_target_chr, 0x1024 }, { func1026_setup_autoguns, 0x1026 }, { func1027_powernode_illumination, 0x1027 }, { func1028_enable_last_3_guards, 0x1028 }, { func1429_start_lift, 0x1429 }, { func102a_kill_pelagic_guard, 0x102a }, { func102b_proxymines, 0x102b }, { func102c_lock_doors, 0x102c }, { func102d_check_farsight_ammo_wasted, 0x102d }, { func102e_open_powernode_doors_on_agent, 0x102e }, { func102f_unlock_drcaroll_door, 0x102f }, { func1030_unlock_agent_teleport_door, 0x1030 }, { func1031_unset_trigger_buddy_warp, 0x1031 }, { func1032_setup_rtracker, 0x1032 }, { func1433_setup_lighting, 0x1433 }, { func1034_enable_blondes, 0x1034 }, { func1002_intro, 0x0c00 }, { func0c01_midcutscene, 0x0c01 }, { func0c02_outro, 0x0c02 }, { func0411_hide, 0x0411 }, { func0412_unused, 0x0412 }, { func040e_init_miniskedar, 0x040e }, { func040f_miniskedar, 0x040f }, { func0c02_outro, 0x0410 }, { func040f_miniskedar_send_clones, 0x040d }, { func040c_blonde, 0x040c }, { func040b_init_elvis, 0x040b }, { func0402_elvis_follow_and_reactive_teleportals, 0x0402 }, { func0403_elvis_give_farsight, 0x0403 }, { func0404_elvis_follow_and_do_agent_megaweapon, 0x0404 }, { func0405_elvis_follow_nocombat, 0x0405 }, { func0406_elvis_follow_and_do_sa_megaweapon, 0x0406 }, { func0407_elvis_go_to_sa_teleport, 0x0407 }, { func0408_check_pa_earlydoorcylinders_destroyed, 0x0408 }, { func0409_check_pa_latedoorcylinders_destroyed, 0x0409 }, { func040a_check_pa_canisters_destroyed, 0x040a }, { func0414_teleport_bond_to_sapa, 0x0414 }, { func0415_teleport_bond_to_drcaroll, 0x0415 }, { func0416_teleport_bond_to_a_pa_drcaroll, 0x0416 }, { func0417_teleport_coop_to_sapa, 0x0417 }, { func0418_teleport_coop_to_drcaroll, 0x0418 }, { func0419_teleport_coop_to_a_pa_drcaroll, 0x0419 }, { func041a_init_sniper, 0x041a }, { func041b_sniper_wait_for_detection, 0x041b }, { func041c_teleport_activation_responder, 0x041c }, { func041d_sniper, 0x041d }, { func041e_init_sa_megaweapon_miniskedar, 0x041e }, { func041f_init_pa_circleroom_miniskedar, 0x041f }, { func0420_init_pa_deadendroom_miniskedar, 0x0420 }, { func0421_start_path02, 0x0421 }, { func0422_start_path03, 0x0422 }, { func0423_start_path04, 0x0423 }, { func0424_start_path05, 0x0424 }, { func0425_start_path06, 0x0425 }, { func0426_start_path07, 0x0426 }, { func0427_start_path08, 0x0427 }, { func0428_start_path09, 0x0428 }, { func0429_start_path10, 0x0429 }, { func042b_run_to_exit, 0x042b }, { func042d_elvis_warp_to_outside_drcaroll, 0x042d }, { func042e_elvis_run_to_exit, 0x042e }, { func0c01_midcutscene, 0x042a }, { func0413_cloak_and_hide, 0x0413 }, { func042f_init_pelagic_guard, 0x042f }, { func0430_unused, 0x0430 }, { func040f_miniskedar_unalerted, 0x0431 }, { func0432_dead_skedar, 0x0432 }, { func0433_unused, 0x0433 }, { func042c_elvis_stop, 0x042c }, { NULL, 0 }, }; struct path paths[] = { { path02, 2, PATHTYPE_BACKANDFORTH }, { path03, 3, PATHTYPE_BACKANDFORTH }, { path04, 4, PATHTYPE_BACKANDFORTH }, { path05, 5, PATHTYPE_BACKANDFORTH }, { path06, 6, PATHTYPE_BACKANDFORTH }, { path07, 7, PATHTYPE_BACKANDFORTH }, { path08, 8, PATHTYPE_BACKANDFORTH }, { path09, 9, PATHTYPE_BACKANDFORTH }, { path10, 10, PATHTYPE_BACKANDFORTH }, { NULL, 0, 0 }, };