perfect_dark/src/files/setup/setuppam.c

4870 lines
219 KiB
C

//
// 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 },
};