// // Pelagic II // #include "stagesetup.h" // Characters #define CHR_ELVIS 0x00 #define CHR_INTRO_GUARD 0x02 #define CHR_PILOT1 0x3c #define CHR_PILOT2 0x3e #define CHR_PILOT3 0x3f #define CHR_LABTECH1 0x4e #define CHR_LABTECH3 0x4f #define CHR_LABTECH2 0x50 #define CHR_ANGRY_PILOT 0x60 // Objects #define OBJ_BADHATCHSWITCH1 0x08 #define OBJ_BADHATCHSWITCH2 0x09 #define OBJ_BADHATCHSWITCH3 0x0a #define OBJ_BADHATCHSWITCH4 0x0b #define OBJ_HATCHSWITCH1 0x0c #define OBJ_HATCHSWITCH2 0x0d #define OBJ_HATCHSWITCH3 0x0e #define OBJ_HATCHSWITCH4 0x0f #define OBJ_REACTOR_SWITCH 0x13 #define OBJ_RESEARCHDATA1 0x14 #define OBJ_RESEARCHDATA2 0x15 #define OBJ_RESEARCHDATA3 0x16 #define OBJ_LIFT_SWITCH 0x17 #define OBJ_MOONPOOL_SWITCH 0x1a #define OBJ_OUTRO_SUBMARINE 0x1b #define OBJ_OUTRO_GRATE 0x1c #define OBJ_OUTRO_CRATE1 0x1d #define OBJ_OUTRO_CRATE2 0x1e #define OBJ_REACTOR_HATCH 0x26 // Stage flags #define STAGEFLAG_ELVIS_WARPED_FROM_START 0x00000001 #define STAGEFLAG_TRIGGER_ANGRY_PILOT 0x00000002 #define STAGEFLAG_MOONPOOL_SWITCH_DESTROYED 0x00000004 #define STAGEFLAG_GPS_DISABLED 0x00000100 #define STAGEFLAG_AUTOPILOT_DISABLED 0x00000200 #define STAGEFLAG_00000400 0x00000400 #define STAGEFLAG_REACTOR_HATCH_OPEN 0x00000800 #define STAGEFLAG_REACTOR_SHUT_DOWN 0x00001000 #define STAGEFLAG_LOCATED_DIVING_AREA 0x00002000 #define STAGEFLAG_COLLECTED_RESEARCH_DATA 0x00004000 #define STAGEFLAG_LABTECH_DEAD 0x00008000 #define STAGEFLAG_SAID_PULLTHEPLUG 0x00010000 #define STAGEFLAG_SAID_SWITCHTHINGOFF 0x00020000 #define STAGEFLAG_PILOT_DEAD 0x00040000 #define STAGEFLAG_00080000 0x00080000 #define STAGEFLAG_MOONPOOL_ACTIVATED 0x00100000 #define STAGEFLAG_LIFT_UNLOCKED 0x00200000 #define STAGEFLAG_HATCHSWITCH1_ACTIVATED 0x00400000 #define STAGEFLAG_HATCHSWITCH2_ACTIVATED 0x00800000 #define STAGEFLAG_HATCHSWITCH3_ACTIVATED 0x01000000 #define STAGEFLAG_HATCHSWITCH4_ACTIVATED 0x02000000 #define STAGEFLAG_HATCHSWITCHES_RESETTING 0x04000000 #define STAGEFLAG_MET_ELVIS 0x08000000 #define STAGEFLAG_ELVIS_APPEARED_AT_MOONPOOL 0x10000000 #define STAGEFLAG_ELVIS_DEAD 0x20000000 #define STAGEFLAG_JO_KILLED_A_PILOT 0x40000000 #define STAGEFLAG_REACTOR_SWITCH_DESTROYED 0x80000000 // AI Lists #define AILIST_PILOT 0x0401 #define AILIST_INIT_PILOT 0x0402 #define AILIST_PILOT_DYING 0x0403 #define AILIST_ANGRY_PILOT 0x0404 #define AILIST_GUARD_UNALERTED 0x0408 #define AILIST_LABTECH1 0x040b #define AILIST_LABTECH2 0x040c #define AILIST_LABTECH3 0x040d #define AILIST_INIT_LABTECH1 0x040e #define AILIST_INIT_LABTECH2 0x040f #define AILIST_INIT_LABTECH3 0x0410 #define AILIST_LABTECH_ALERTED 0x0411 #define AILIST_HIDE 0x0412 #define AILIST_GUARD_ALERTED 0x0413 #define AILIST_OUTRO 0x0414 #define AILIST_ELVIS_AT_START 0x0415 #define AILIST_ELVIS_LEADING 0x0416 #define AILIST_ELVIS_PREPARE_LEADING 0x0417 #define AILIST_ELVIS_AT_MOONPOOL 0x0418 extern s32 intro[]; extern u32 props[]; extern struct path paths[]; extern struct ailist ailists[]; struct stagesetup setup = { NULL, NULL, NULL, intro, props, paths, ailists, NULL, }; u32 props[] = { briefing(BRIEFINGTYPE_LOCATION, L_DAM_001) briefing(BRIEFINGTYPE_TEXT_PA, L_DAM_000) briefing(BRIEFINGTYPE_TEXT_SA, L_DAM_002) briefing(BRIEFINGTYPE_TEXT_A, L_DAM_003) beginobjective(0, L_DAM_006, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable primary power source" complete_flags(STAGEFLAG_REACTOR_SHUT_DOWN) fail_flags(STAGEFLAG_REACTOR_SWITCH_DESTROYED) endobjective beginobjective(1, L_DAM_007, (DIFFBIT_PA | DIFFBIT_PD)) // "Secure laboratories and research data" complete_flags(STAGEFLAG_COLLECTED_RESEARCH_DATA) fail_flags(STAGEFLAG_LABTECH_DEAD) endobjective beginobjective(2, L_DAM_005, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Deactivate GPS and autopilot" complete_flags(STAGEFLAG_GPS_DISABLED) complete_flags(STAGEFLAG_AUTOPILOT_DISABLED) fail_flags(STAGEFLAG_00000400) fail_flags(STAGEFLAG_PILOT_DEAD) fail_flags(STAGEFLAG_JO_KILLED_A_PILOT) endobjective beginobjective(3, L_DAM_008, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Activate Moon Pool lift" complete_flags(STAGEFLAG_MOONPOOL_ACTIVATED) fail_flags(STAGEFLAG_MOONPOOL_SWITCH_DESTROYED) endobjective beginobjective(4, L_DAM_009, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Rendezvous and escape with Elvis" complete_flags(STAGEFLAG_LOCATED_DIVING_AREA) fail_flags(STAGEFLAG_ELVIS_DEAD) endobjective chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x00, PAD_DAM_0024, BODY_THEKING, HEAD_ELVIS_GOGS, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_SKIPSAFETYCHECKS, CHRFLAG1_AIVSAI_ADVANTAGED | CHRFLAG1_NOOP_00200000 | CHRFLAG1_IGNORECOVER | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0000, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_PHOENIX) chr(0, 0x02, PAD_DAM_0027, BODY_PELAGIC_GUARD, HEAD_MOTO, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_SKIPSAFETYCHECKS, CHRFLAG1_AIVSAI_ADVANTAGED | CHRFLAG1_NOOP_00200000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0002, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_FARSIGHT) chr(SPAWNFLAG_00000200, 0x2e, PAD_DAM_014E, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_CANT_ALERT_GROUP | CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x002e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x2d, PAD_DAM_014D, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0214, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x002d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x2f, PAD_DAM_014F, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0215, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x002f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x30, PAD_DAM_0150, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0215, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0030, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x31, PAD_DAM_0151, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0215, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0031, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x32, PAD_DAM_0152, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0215, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0032, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x33, PAD_DAM_0153, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0216, -1, 1000, 100, CHRFLAG0_SURPRISABLE | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0033, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x34, PAD_DAM_0154, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0216, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0034, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x35, PAD_DAM_0155, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0216, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0035, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x38, PAD_DAM_0158, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0217, -1, 1000, 7, CHRFLAG0_SURPRISABLE | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0038, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x39, PAD_DAM_0159, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0217, -1, 1000, 7, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0039, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x3a, PAD_DAM_015A, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0217, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x003a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x3b, PAD_DAM_015B, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0217, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x003b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x36, PAD_DAM_0156, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0218, -1, 1000, 100, CHRFLAG0_CANT_ALERT_GROUP | CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_00008000 | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0036, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x37, PAD_DAM_0157, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, 0x0218, -1, 1000, 100, CHRFLAG0_CANT_ALERT_GROUP | CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_00008000 | CHRFLAG0_ACTIVATEALARM | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0037, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x51, PAD_DAM_0002, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0051, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x52, PAD_DAM_0027, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0052, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x53, PAD_DAM_0028, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 1000, 100, CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0053, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(0, 0x57, PAD_DAM_00DF, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0057, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(0, 0x58, PAD_DAM_00DC, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0058, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(0, 0x59, PAD_DAM_00EB, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0059, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(0, 0x5a, PAD_DAM_00E8, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x005a, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(0, 0x5b, PAD_DAM_0142, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, 0x0213, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_NOACCURACYAFTERJAM | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_NONCOMBAT, SQUADRON_08, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x005b, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(0, 0x5c, PAD_DAM_0143, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, 0x0213, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_NOACCURACYAFTERJAM | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_NONCOMBAT, SQUADRON_08, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x005c, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(0, 0x5d, PAD_DAM_0144, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, 0x0213, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_NOACCURACYAFTERJAM | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_NONCOMBAT, SQUADRON_08, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x005d, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(0, 0x5e, PAD_DAM_0145, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, 0x0213, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_NOACCURACYAFTERJAM | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_NONCOMBAT, SQUADRON_08, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x005e, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x03, PAD_DAM_011F, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SURPRISABLE | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_09, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0003, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x04, PAD_DAM_0120, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_09, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0004, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x24, PAD_DAM_0140, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0024, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x25, PAD_DAM_0141, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0025, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x05, PAD_DAM_0121, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0005, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x06, PAD_DAM_0122, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0006, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x07, PAD_DAM_0123, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0007, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x08, PAD_DAM_0124, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0008, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x09, PAD_DAM_0125, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0009, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x0a, PAD_DAM_0126, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x000a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x0b, PAD_DAM_0127, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x000b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x0c, PAD_DAM_0128, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x000c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x0d, PAD_DAM_0129, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x000d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x0e, PAD_DAM_012A, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x000e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x0f, PAD_DAM_012B, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x000f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x10, PAD_DAM_012C, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0010, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x11, PAD_DAM_012D, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0011, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x12, PAD_DAM_012E, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0012, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x13, PAD_DAM_012F, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0013, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x14, PAD_DAM_0130, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0014, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x15, PAD_DAM_0131, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0015, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x16, PAD_DAM_0132, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0B, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0016, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x17, PAD_DAM_0133, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0B, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0017, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x18, PAD_DAM_0134, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0B, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0018, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x19, PAD_DAM_0135, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0B, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0019, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x1a, PAD_DAM_0136, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x001a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x1b, PAD_DAM_0137, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x001b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x1c, PAD_DAM_0138, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x001c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x1d, PAD_DAM_0139, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x001d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x1e, PAD_DAM_013A, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x001e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x1f, PAD_DAM_013B, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x001f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x20, PAD_DAM_013C, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0020, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x21, PAD_DAM_013D, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0021, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(0, 0x22, PAD_DAM_013E, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_HIDE, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_NONCOMBAT, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0022, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x23, PAD_DAM_013F, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAMP | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0023, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x2c, PAD_DAM_014C, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED, TEAM_ENEMY, SQUADRON_0C, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x002c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x2b, PAD_DAM_014B, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x002b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x2a, PAD_DAM_014A, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0D, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x002a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x29, PAD_DAM_0149, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0D, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0029, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x54, PAD_DAM_0004, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 100, 100, CHRFLAG0_00008000 | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0054, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x28, PAD_DAM_0148, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0028, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x27, PAD_DAM_0147, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0027, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x26, PAD_DAM_0146, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0026, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x45, PAD_DAM_0165, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0045, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x46, PAD_DAM_0166, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0046, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x3c, PAD_DAM_015C, BODY_PILOTAF1, HEAD_RANDOM, AILIST_INIT_PILOT, -1, -1, 1000, 10, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR, 0, TEAM_04, SQUADRON_02, -1, 0, 0, 0, 0, 0) chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x3e, PAD_DAM_015E, BODY_PILOTAF1, HEAD_RANDOM, AILIST_INIT_PILOT, -1, -1, 1000, 10, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR, 0, TEAM_04, SQUADRON_02, -1, 0, 0, 0, 0, 0) chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x3f, PAD_DAM_015F, BODY_PILOTAF1, HEAD_RANDOM, AILIST_INIT_PILOT, -1, -1, 1000, 10, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR, 0, TEAM_04, SQUADRON_02, -1, 0, 0, 0, 0, 0) chr(SPAWNFLAG_00000200, 0x41, PAD_DAM_0161, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_03, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0041, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x42, PAD_DAM_0162, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_04, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0042, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x43, PAD_DAM_0163, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_05, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0043, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x44, PAD_DAM_0164, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_06, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0044, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x47, PAD_DAM_0167, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_07, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0047, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x48, PAD_DAM_0168, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_07, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0048, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x49, PAD_DAM_0169, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_08, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0049, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x4a, PAD_DAM_016A, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_08, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x004a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x4b, PAD_DAM_016B, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_09, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x004b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x4c, PAD_DAM_016C, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_09, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x004c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) #if VERSION >= VERSION_NTSC_1_0 chr(SPAWNFLAG_00000200, 0x4d, PAD_DAM_016D, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED, TEAM_04, SQUADRON_09, -1, 0, 0, 0, 0, 0) #else chr(SPAWNFLAG_00000200, 0x4d, PAD_DAM_016D, BODY_PELAGIC_GUARD, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED, TEAM_04, SQUADRON_09, -1, 0, 0, 0, 0, 0) #endif weapon(0x0100, MODEL_CHRCMP150, 0x004d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x55, PAD_DAM_0012, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0407, -1, -1, 100, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_04, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0055, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x56, PAD_DAM_0014, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0407, -1, -1, 100, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_04, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0056, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x4e, PAD_DAM_0209, BODY_DD_LABTECH, HEAD_RANDOM, AILIST_INIT_LABTECH1, 0x00d8, -1, 1000, 100, CHRFLAG0_CANT_ALERT_GROUP | CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0F, -1, 0, 0, 0, 0, 0) chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x50, PAD_DAM_0055, BODY_DD_LABTECH, HEAD_RANDOM, AILIST_INIT_LABTECH2, 0x0089, -1, 1000, 100, CHRFLAG0_CANT_ALERT_GROUP | CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0F, -1, 0, 1, 0, 0, 0) chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x4f, PAD_DAM_0057, BODY_DD_LABTECH, HEAD_RANDOM, AILIST_INIT_LABTECH3, 0x008b, -1, 1000, 100, CHRFLAG0_CANT_ALERT_GROUP | CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0F, -1, 0, 2, 0, 0, 0) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00F0, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00F1, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00F2, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00F3, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00F4, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR2, PAD_DAM_00F5, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00F6, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00F7, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00F8, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00F9, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00FA, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) tag(0x29, 1) door(0x0100, MODEL_PELAGICDOOR2, PAD_DAM_00FB, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDBACK, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000080, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) tag(0x2a, 1) door(0x0100, MODEL_PELAGICDOOR2, PAD_DAM_00FC, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000080, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) tag(0x2b, 1) door(0x0100, MODEL_PELAGICDOOR2, PAD_DAM_010A, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000080, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) tag(0x2c, 1) door(0x0100, MODEL_PELAGICDOOR2, PAD_DAM_0112, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDBACK, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000080, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) tag(0x2d, 1) door(0x0100, MODEL_PELAGICDOOR2, PAD_DAM_0101, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000080, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00FD, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00FE, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_00FF, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0100, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) tag(0x18, 2) tag(0x19, 2) door(0x0100, MODEL_BIGPELAGICDOOR, PAD_DAM_0103, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000002, 0x00000384, 0x00000000, 0x00000001, 0x00000300) door(0x0100, MODEL_BIGPELAGICDOOR, PAD_DAM_0102, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000002, 0x00000384, 0x00000000, 0xffffffff, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0104, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0105, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0106, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0107, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0108, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0109, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_010B, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_010C, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_010D, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_010E, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_010F, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0110, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0111, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0113, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0114, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0115, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0116, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0117, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0118, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_0119, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_011A, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_011C, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) door(0x0100, MODEL_PELAGICDOOR, PAD_DAM_011B, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x012c0320, 0x00000000, 0x00000300) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0180, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_017F, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_017E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_017D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_017C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_017B, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_017A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0179, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0178, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0177, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0176, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0175, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0174, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0173, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0172, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0171, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0170, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_016F, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_016E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0181, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0182, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0186, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0187, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0185, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0183, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0189, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0188, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_018B, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0184, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_018A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_018C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_018D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_018E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_018F, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0191, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0192, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0193, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0194, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0195, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0196, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0197, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0198, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_0199, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_019A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_019B, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_019C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_019D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_019E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_019F, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01A0, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01A1, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01A2, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01A3, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01A4, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01A5, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01A6, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01A7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01A8, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01AB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01AC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01AD, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01AE, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01AF, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01B0, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01B1, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01B2, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01B3, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01B4, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01B6, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01B7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01B8, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01B9, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01BA, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01BB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01BC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01BD, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01BE, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01C1, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01C2, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01C3, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01C4, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01C5, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01C6, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01C7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01C8, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01D4, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01D5, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01D6, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01D7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01D8, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01D9, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01DA, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01DB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01DC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01DD, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01DE, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01DF, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01E0, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01E1, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01E2, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_A51_CRATE2, PAD_DAM_01E3, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_00400000, OBJFLAG2_00000200, 0, 1500) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01E6, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01E7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01E8, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01E9, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01EA, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01EB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01EC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01F1, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01ED, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01EE, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01EF, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) stdobject(0x0100, MODEL_BLASTSHIELD, PAD_DAM_01F0, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) tag(0x00, 8) tag(0x01, 8) tag(0x02, 8) tag(0x03, 8) tag(0x04, 8) tag(0x05, 8) tag(0x06, 8) tag(0x07, 8) multimonitor(0x0099, MODEL_COMHUB, PAD_DAM_01F2, OBJFLAG_00000002 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_INTERACTABLE, 1000, 19, 19, 19, 0) multimonitor(0x0099, MODEL_COMHUB, PAD_DAM_01F3, OBJFLAG_00000002 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_INTERACTABLE, 1000, 19, 19, 19, 0) multimonitor(0x0099, MODEL_COMHUB, PAD_DAM_01F4, OBJFLAG_00000002 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_INTERACTABLE, 1000, 19, 19, 19, 0) multimonitor(0x0099, MODEL_COMHUB, PAD_DAM_01F5, OBJFLAG_00000002 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_INTERACTABLE, 1000, 19, 19, 19, 0) multimonitor(0x0099, MODEL_COMHUB, PAD_DAM_01F6, OBJFLAG_00000002 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_INTERACTABLE, 1000, 19, 19, 19, 0) multimonitor(0x0099, MODEL_COMHUB, PAD_DAM_01F7, OBJFLAG_00000002 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_INTERACTABLE, 1000, 19, 19, 19, 0) multimonitor(0x0099, MODEL_COMHUB, PAD_DAM_01F8, OBJFLAG_00000002 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_INTERACTABLE, 1000, 19, 19, 19, 0) multimonitor(0x0099, MODEL_COMHUB, PAD_DAM_01F9, OBJFLAG_00000002 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_INTERACTABLE, 1000, 19, 19, 19, 0) tag(0x08, 1) tag(0x09, 1) tag(0x0a, 1) tag(0x0b, 1) tag(0x0c, 1) tag(0x0d, 1) tag(0x0e, 1) tag(0x0f, 1) tag(0x13, 1) multimonitor(0x0099, MODEL_COMHUB, PAD_DAM_01FA, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 19, 19, 19, 0) tag(0x14, 1) key(0x0080, MODEL_CHRBRIEFCASE, 0x004e, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_COLLECTABLE | OBJFLAG_BOUNCEIFSHOT | OBJFLAG_01000000, 0, 0, 0) rename_object(-1, WEAPON_RESEARCHTAPE, L_DAM_022, L_DAM_023, L_DAM_024, L_DAM_025, L_DAM_026) // "" tag(0x15, 1) key(0x0080, MODEL_CHRBRIEFCASE, 0x0050, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_COLLECTABLE | OBJFLAG_BOUNCEIFSHOT | OBJFLAG_01000000, 0, 0, 0) rename_object(-1, WEAPON_RESEARCHTAPE, L_DAM_022, L_DAM_023, L_DAM_024, L_DAM_025, L_DAM_026) // "" tag(0x16, 1) key(0x0080, MODEL_CHRBRIEFCASE, 0x004f, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_COLLECTABLE | OBJFLAG_BOUNCEIFSHOT | OBJFLAG_01000000, 0, 0, 0) rename_object(-1, WEAPON_RESEARCHTAPE, L_DAM_022, L_DAM_023, L_DAM_024, L_DAM_025, L_DAM_026) // "" tag(0x21, 5) tag(0x22, 5) tag(0x23, 5) tag(0x24, 5) tag(0x25, 5) singlemonitor(0x0100, MODEL_MODEMBOX, PAD_DAM_01FB, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00200000, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 20) singlemonitor(0x0100, MODEL_MODEMBOX, PAD_DAM_01FC, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00200000, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 20) singlemonitor(0x0100, MODEL_MODEMBOX, PAD_DAM_01FD, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00200000, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 20) singlemonitor(0x0100, MODEL_MODEMBOX, PAD_DAM_01FE, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00200000, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 20) singlemonitor(0x0100, MODEL_MODEMBOX, PAD_DAM_01FF, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00200000, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 20) tag(0x17, 1) #if VERSION >= VERSION_PAL_BETA singlemonitor(0x0100, MODEL_MODEMBOX, PAD_DAM_0200, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3) #else singlemonitor(0x0100, MODEL_MODEMBOX, PAD_DAM_0200, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, 0, OBJFLAG3_INTERACTABLE, 1000, 3) #endif tag(0x1a, 1) #if VERSION >= VERSION_PAL_BETA singlemonitor(0x0100, MODEL_MODEMBOX, PAD_DAM_0201, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3) #else singlemonitor(0x0100, MODEL_MODEMBOX, PAD_DAM_0201, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, 0, OBJFLAG3_INTERACTABLE, 1000, 3) #endif camera(0x00c0, MODEL_CCTV_PD, PAD_DAM_0219, OBJFLAG_00000002 | OBJFLAG_00000008, 0, 0, 400, 0x01f7, 0x00004000, 0x0000001e, 0x000002bc) camera(0x00c0, MODEL_CCTV_PD, PAD_DAM_021A, OBJFLAG_00000002 | OBJFLAG_00000008, 0, 0, 400, 0x00dd, 0x00004000, 0x0000001e, 0x000002bc) camera(0x00c0, MODEL_CCTV_PD, PAD_DAM_021B, OBJFLAG_00000002 | OBJFLAG_00000008, 0, 0, 400, 0x000a, 0x0000238e, 0x0000001e, 0x000002bc) camera(0x00c0, MODEL_CCTV_PD, PAD_DAM_021C, OBJFLAG_00000002 | OBJFLAG_00000008, 0, 0, 400, 0x0112, 0x00000000, 0x00000000, 0x000002bc) tag(0x1b, 1) stdobject(0x0100, MODEL_SUBMARINE, -1, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000) tag(0x1c, 1) stdobject(0x0100, MODEL_DD_GRATE, -1, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000) tag(0x1d, 1) stdobject(0x0065, MODEL_A51_CRATE1, -1, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000) tag(0x1e, 1) stdobject(0x0065, MODEL_A51_CRATE1, -1, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000) tag(0x26, 1) stdobject(0x0100, MODEL_COREHATCH, PAD_DAM_011E, OBJFLAG_00000001 | OBJFLAG_00000010 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_00400000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000) singlemonitor(0x0100, MODEL_TVSCREEN, PAD_DAM_021F, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_REMOVEWHENDESTROYED, 0, 1000, 3) singlemonitor(0x0100, MODEL_TVSCREEN, PAD_DAM_0220, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_REMOVEWHENDESTROYED, 0, 1000, 3) singlemonitor(0x0100, MODEL_TVSCREEN, PAD_DAM_0221, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_REMOVEWHENDESTROYED, 0, 1000, 3) singlemonitor(0x0100, MODEL_TVSCREEN, PAD_DAM_0222, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_REMOVEWHENDESTROYED, 0, 1000, 3) singlemonitor(0x0100, MODEL_TVSCREEN, PAD_DAM_0223, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_REMOVEWHENDESTROYED, 0, 1000, 3) singlemonitor(0x0100, MODEL_TVSCREEN, PAD_DAM_0224, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_REMOVEWHENDESTROYED, 0, 1000, 3) tag(0x1f, 1) shield(0x0100, MODEL_CHRSHIELD, PAD_DAM_021D, OBJFLAG_00000001, OBJFLAG2_EXCLUDE_SA | OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD, 0, 1000) tag(0x20, 1) shield(0x0100, MODEL_CHRSHIELD, PAD_DAM_021E, OBJFLAG_00000001, OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD, 0, 1000) tag(0x27, 2) tag(0x28, 2) weapon(0x0100, MODEL_CHRFALCON2SCOPE, 0x0034, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_20000000, 0, 0, WEAPON_FALCON2_SILENCER) weapon(0x0100, MODEL_CHRFALCON2SCOPE, 0x0034, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_20000000, 0, 0, WEAPON_FALCON2_SILENCER) link_guns(-1, -2) endprops }; s32 intro[] = { outfit(OUTFIT_WETSUIT) intro_weapon(WEAPON_FALCON2_SILENCER, -1) ammo(AMMOTYPE_PISTOL, 100) intro_weapon(WEAPON_LAPTOPGUN, -1) ammo(AMMOTYPE_SMG, 100) ammo(AMMOTYPE_NBOMB, 3) intro_weapon(WEAPON_XRAYSCANNER, -1) intro_weapon(WEAPON_NBOMB, -1) spawn(PAD_DAM_0046) endintro }; s32 path00[] = { PAD_DAM_0002, PAD_DAM_0001, PAD_DAM_0024, PAD_DAM_0027, PAD_DAM_002B, PAD_DAM_0028, PAD_DAM_002D, PAD_DAM_002E, PAD_DAM_002C, -1, }; s32 path01[] = { PAD_DAM_0004, PAD_DAM_0008, PAD_DAM_000A, PAD_DAM_0006, PAD_DAM_0007, PAD_DAM_000B, -1, }; s32 path02[] = { PAD_DAM_0012, PAD_DAM_0010, PAD_DAM_0011, PAD_DAM_0014, PAD_DAM_0015, PAD_DAM_0016, PAD_DAM_0017, PAD_DAM_0013, -1, }; s32 path03[] = { PAD_DAM_00DD, PAD_DAM_00DE, PAD_DAM_00DF, PAD_DAM_00E0, PAD_DAM_00D9, PAD_DAM_00DB, PAD_DAM_00DC, -1, }; s32 path04[] = { PAD_DAM_00E8, PAD_DAM_00E7, PAD_DAM_00E6, PAD_DAM_00E5, PAD_DAM_00EB, PAD_DAM_00EA, PAD_DAM_00E9, -1, }; struct path paths[] = { { path00, 0, PATHFLAG_CIRCULAR }, { path01, 1, 0 }, { path02, 2, PATHFLAG_CIRCULAR }, { path03, 3, PATHFLAG_CIRCULAR }, { path04, 4, PATHFLAG_CIRCULAR }, { NULL, 0, 0 }, }; u8 func1001_objectives_failed_msg[] = { yield set_chr_chrflag(CHR_ELVIS, CHRCFLAG_KEEPCORPSEKO) set_chr_chrflag(CHR_ELVIS, CHRCFLAG_PUSHABLE) set_chr_chrflag(CHR_LABTECH1, CHRCFLAG_KEEPCORPSEKO) set_chr_chrflag(CHR_LABTECH2, CHRCFLAG_KEEPCORPSEKO) set_chr_chrflag(CHR_LABTECH3, CHRCFLAG_KEEPCORPSEKO) set_chr_chrflag(CHR_PILOT1, CHRCFLAG_KEEPCORPSEKO) set_chr_chrflag(CHR_PILOT2, CHRCFLAG_KEEPCORPSEKO) set_chr_chrflag(CHR_PILOT3, CHRCFLAG_KEEPCORPSEKO) 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 func0408_guard_unalerted[] = { set_chr_cloaked(CHR_SELF, FALSE, TRUE) set_chr_dodge_rating(2, 10) set_accuracy(18) set_reaction_speed(60) 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 func1002_intro[] = { play_cutscene_track(MUSIC_PELAGIC_INTRO) set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) camera_movement(ANIM_CUT_DAM_INTRO_CAM) cmd0175(60) set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) chr_do_animation(ANIM_CUT_DAM_INTRO_JO, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, 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(ANIM_CUT_DAM_INTRO_ELVIS, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_ELVIS, 4) set_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_UNPLAYABLE) unset_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_HIDDEN) set_chr_hiddenflag(CHR_INTRO_GUARD, CHRHFLAG_00020000) chr_do_animation(ANIM_CUT_DAM_INTRO_GUARD, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_INTRO_GUARD, 4) restart_timer set_cutscene_weapon(CHR_BOND, WEAPON_NONE, WEAPON_NONE) yield set_cutscene_weapon(CHR_BOND, WEAPON_FALCON2_SILENCER, WEAPON_NONE) #define wait_until(time, loopid) \ beginloop(loopid) \ if_controller_button_pressed(/*goto*/ 0x39) \ if_timer_gt(time, /*goto*/ 0x04) \ endloop(loopid) \ label(0x04) wait_until(342, 0x3b) play_sound(SFX_0171, CHANNEL_7) wait_until(390, 0x3c) play_sound(SFX_0172, CHANNEL_6) wait_until(438, 0x3d) play_sound(SFX_0173, CHANNEL_5) wait_until(484, 0x48) play_sound(SFX_0174, CHANNEL_7) wait_until(532, 0x4a) play_sound(SFX_0175, CHANNEL_5) wait_until(574, 0x4b) play_sound(SFX_0176, CHANNEL_7) wait_until(616, 0x49) play_sound(SFX_0177, CHANNEL_6) wait_until(660, 0x4c) play_sound(SFX_0178, CHANNEL_6) wait_until(712, 0x4d) play_sound(SFX_0171, CHANNEL_5) wait_until(760, 0x4e) play_sound(SFX_0172, CHANNEL_7) wait_until(812, 0x4f) play_sound(SFX_0173, CHANNEL_6) wait_until(1386, 0x50) play_sound(SFX_0171, CHANNEL_5) wait_until(1482, 0x51) play_sound(SFX_0172, CHANNEL_7) wait_until(1628, 0x52) play_sound(SFX_0173, CHANNEL_6) wait_until(1698, 0x53) play_sound(SFX_0174, CHANNEL_5) wait_until(1860, 0x54) play_sound(SFX_05A8, CHANNEL_7) wait_until(2180, 0x55) play_sound(SFX_05A9, CHANNEL_6) wait_until(2260, 0x57) play_sound(SFX_05AA, CHANNEL_7) wait_until(2274, 0x58) play_sound(SFX_0175, CHANNEL_6) wait_until(2280, 0x59) play_sound(SFX_0176, CHANNEL_5) wait_until(2294, 0x56) play_sound(SFX_0177, CHANNEL_5) wait_until(2298, 0x5a) play_sound(SFX_0171, CHANNEL_7) wait_until(2316, 0x5b) play_sound(SFX_0178, CHANNEL_6) wait_until(2474, 0x5c) play_sound(SFX_0172, CHANNEL_5) wait_until(2489, 0x5d) play_sound(SFX_01DB, CHANNEL_7) wait_until(2572, 0x5e) play_sound(SFX_0171, CHANNEL_6) wait_until(2616, 0x5f) play_sound(SFX_0173, CHANNEL_5) wait_until(2644, 0x60) play_sound(SFX_0172, CHANNEL_5) beginloop(0x0b) if_camera_animating(/*goto*/ 0x07) goto_next(0x39) label(0x07) if_controller_button_pressed(/*goto*/ 0x39) label(0x07) endloop(0x0b) label(0x39) mute_channel(CHANNEL_10) 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(ANIM_CUT_DAM_INTRO_JO, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 2) unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) chr_do_animation(ANIM_CUT_DAM_INTRO_ELVIS, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_ELVIS, 2) unset_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_UNPLAYABLE) disable_chr(CHR_INTRO_GUARD) enter_firstperson yield set_ailist(CHR_ELVIS, AILIST_ELVIS_AT_START) restart_timer beginloop(0x0c) if_timer_gt(60, /*goto*/ 0x04) endloop(0x0c) label(0x04) stop_cutscene_track stop_ambient_track set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0c01_outro[] = { camera_movement(ANIM_CUT_DAM_OUTRO_CAM) play_cutscene_track(MUSIC_PELAGIC_OUTRO) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_P1P2_OPPOSITE, CHRCFLAG_HIDDEN) set_ailist(CHR_P1P2, GAILIST_IDLE) set_chr_chrflag(CHR_P1P2, CHRCFLAG_UNPLAYABLE) #if VERSION >= VERSION_NTSC_1_0 unset_chr_chrflag(CHR_P1P2, CHRCFLAG_HIDDEN) #endif set_chr_hiddenflag(CHR_P1P2, CHRHFLAG_00020000) chr_do_animation(ANIM_CUT_DAM_OUTRO_JO, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 4) set_ailist(CHR_ELVIS, GAILIST_IDLE) set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE) set_chr_chrflag(CHR_ELVIS, CHRCFLAG_UNPLAYABLE) unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_HIDDEN) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) chr_do_animation(ANIM_CUT_DAM_OUTRO_ELVIS, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_ELVIS, 4) enable_object(OBJ_OUTRO_SUBMARINE) set_object_flag2(OBJ_OUTRO_SUBMARINE, OBJFLAG2_04000000) set_object_flag3(OBJ_OUTRO_SUBMARINE, OBJFLAG3_00000010) object_do_animation(ANIM_CUT_DAM_OUTRO_SUBMARINE, OBJ_OUTRO_SUBMARINE, 0x04, 0xffff) enable_object(OBJ_OUTRO_GRATE) set_object_flag2(OBJ_OUTRO_GRATE, OBJFLAG2_04000000) set_object_flag3(OBJ_OUTRO_GRATE, OBJFLAG3_00000010) object_do_animation(ANIM_CUT_DAM_OUTRO_GRATE, OBJ_OUTRO_GRATE, 0x04, 0xffff) enable_object(OBJ_OUTRO_CRATE1) set_object_flag2(OBJ_OUTRO_CRATE1, OBJFLAG2_04000000) set_object_flag3(OBJ_OUTRO_CRATE1, OBJFLAG3_00000010) object_do_animation(ANIM_CUT_DAM_OUTRO_CRATE1, OBJ_OUTRO_CRATE1, 0x04, 0xffff) enable_object(OBJ_OUTRO_CRATE2) set_object_flag2(OBJ_OUTRO_CRATE2, OBJFLAG2_04000000) set_object_flag3(OBJ_OUTRO_CRATE2, OBJFLAG3_00000010) object_do_animation(ANIM_CUT_DAM_OUTRO_CRATE2, OBJ_OUTRO_CRATE2, 0x04, 0xffff) 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) restart_timer wait_until(46, 0x3c) play_sound(SFX_0171, CHANNEL_10) wait_until(160, 0x3d) play_sound(SFX_0172, CHANNEL_10) play_sound_from_object2(0x0a, OBJ_OUTRO_SUBMARINE, SFX_042D, 0x00, 0x00) wait_until(180, 0x3b) speak(CHR_BOND, L_DAM_039, MP3_0465, CHANNEL_10, COLOR_06_WHITE) // "Right. The diving operation has been disrupted on ..." wait_until(200, 0x48) play_sound(SFX_0173, CHANNEL_10) wait_until(232, 0x49) play_sound(SFX_0174, CHANNEL_10) wait_until(254, 0x4a) play_sound(SFX_0172, CHANNEL_10) wait_until(272, 0x66) wait_until(374, 0x4b) play_sound(SFX_0172, CHANNEL_10) wait_until(415, 0x4c) play_sound(SFX_0173, CHANNEL_10) wait_until(454, 0x4d) play_sound(SFX_0174, CHANNEL_10) wait_until(532, 0x4e) play_sound(SFX_0171, CHANNEL_10) wait_until(570, 0x4f) speak(CHR_BOND, L_DAM_040, MP3_0466, CHANNEL_10, COLOR_09_BLUE) // "I hope the government don't want to use this ship ..." wait_until(582, 0x50) play_sound(SFX_0171, CHANNEL_10) wait_until(666, 0x51) play_sound(SFX_0172, CHANNEL_10) wait_until(706, 0x52) play_sound(SFX_0173, CHANNEL_10) wait_until(736, 0x64) play_sound(SFX_05A8, CHANNEL_10) wait_until(806, 0x53) play_sound(SFX_809F, CHANNEL_10) wait_until(854, 0x54) play_sound(SFX_0174, CHANNEL_10) wait_until(876, 0x55) play_sound(SFX_0173, CHANNEL_10) wait_until(906, 0x56) play_sound(SFX_0172, CHANNEL_10) wait_until(926, 0x57) play_sound(SFX_80A2, CHANNEL_10) wait_until(950, 0x58) speak(CHR_BOND, L_DAM_041, MP3_0467, CHANNEL_10, COLOR_06_WHITE) // "Do you think we were a little heavy-handed?" wait_until(1088, 0x59) play_sound(SFX_80A3, CHANNEL_10) wait_until(1152, 0x5a) play_sound(SFX_0176, CHANNEL_10) wait_until(1190, 0x5b) speak(CHR_BOND, L_DAM_042, MP3_0468, CHANNEL_10, COLOR_09_BLUE) // "Naaahhhh." wait_until(1228, 0x5c) play_sound(SFX_0174, CHANNEL_10) wait_until(1258, 0x5d) play_sound(SFX_0172, CHANNEL_10) wait_until(1260, 0x5e) play_sound(SFX_05B4, CHANNEL_10) wait_until(1300, 0x5f) play_sound(SFX_JO_LANDING_05B6, CHANNEL_10) play_sound(SFX_0171, CHANNEL_10) wait_until(1309, 0x65) play_sound(SFX_0172, CHANNEL_10) wait_until(1358, 0x60) play_sound(SFX_0171, CHANNEL_10) wait_until(1382, 0x61) play_sound(SFX_EXPLOSION_8098, CHANNEL_10) wait_until(1480, 0x62) play_sound(SFX_80A3, CHANNEL_10) wait_until(1480, 0x63) play_sound_from_object2(0x0a, OBJ_OUTRO_GRATE, SFX_00C1, 0x00, 0x00) wait_until(1500, 0x67) play_sound_from_object2(0x0a, OBJ_OUTRO_SUBMARINE, SFX_042D, 0x00, 0x00) wait_until(1590, 0x68) play_sound_from_object2(0x0a, OBJ_OUTRO_SUBMARINE, SFX_0434, 0x00, 0x00) beginloop(0x0b) if_camera_animating(/*goto*/ 0x07) goto_next(0x39) label(0x07) if_controller_button_pressed(/*goto*/ 0x39) label(0x07) endloop(0x0b) label(0x39) unset_chr_chrflag(CHR_P1P2, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_P1P2, CHRHFLAG_00020000) chr_do_animation(ANIM_CUT_DAM_INTRO_JO, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 2) unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000) chr_do_animation(ANIM_CUT_DAM_INTRO_ELVIS, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_ELVIS, 2) end_level set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 unregistered_function1[] = { label(0x00) yield set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1004_msg_controlledfrom[] = { restart_timer beginloop(0x00) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x0027, /*goto*/ 0x07) endloop(0x00) label(0x07) speak(CHR_P1P2, L_DAM_011, MP3_03D1, CHANNEL_6, COLOR_09_BLUE) // "This must be where the sub's controlled from." set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1005_msg_withoutautopilot[] = { beginloop(0x00) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x007e, /*goto*/ 0x07) endloop(0x00) label(0x07) speak(CHR_P1P2, L_DAM_012, MP3_03D2, CHANNEL_6, COLOR_09_BLUE) // "Without the autopilot and the GPS, the ship will w..." set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1006_msg_conductoperations[] = { beginloop(0x00) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x007f, /*goto*/ 0x07) endloop(0x00) label(0x07) speak(CHR_P1P2, L_DAM_013, MP3_03D3, CHANNEL_6, COLOR_09_BLUE) // "They'll be unable to conduct any operations withou..." set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 unregistered_function2[] = { // These are invalid object IDs beginloop(0x00) if_object_in_good_condition(0x11, /*goto*/ 0x07) goto_next(0x04) label(0x07) if_object_in_good_condition(0x10, /*goto*/ 0x07) goto_next(0x04) label(0x07) endloop(0x00) label(0x04) show_hudmsg(CHR_BOND, L_DAM_016) // "Critical mission object has been destroyed." set_stage_flag(STAGEFLAG_00000400) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1009_open_reactor_hatch[] = { // Wait for all switches active beginloop(0x00) chr_toggle_p1p2(CHR_SELF) if_stage_flag_eq(STAGEFLAG_HATCHSWITCH1_ACTIVATED, TRUE, /*goto*/ 0x07) reloop(0x00) label(0x07) if_stage_flag_eq(STAGEFLAG_HATCHSWITCH2_ACTIVATED, TRUE, /*goto*/ 0x07) reloop(0x00) label(0x07) if_stage_flag_eq(STAGEFLAG_HATCHSWITCH3_ACTIVATED, TRUE, /*goto*/ 0x07) reloop(0x00) label(0x07) if_stage_flag_eq(STAGEFLAG_HATCHSWITCH4_ACTIVATED, TRUE, /*goto*/ 0x07) endloop(0x00) label(0x07) disable_object(OBJ_REACTOR_HATCH) set_object_flag2(OBJ_REACTOR_HATCH, OBJFLAG2_INVISIBLE) show_hudmsg(CHR_P1P2, L_DAM_017) // "Reactor shutdown control hatch opened." set_stage_flag(STAGEFLAG_REACTOR_HATCH_OPEN) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func100a_reactor_switch[] = { beginloop(0x00) chr_toggle_p1p2(CHR_SELF) if_object_in_good_condition(OBJ_REACTOR_SWITCH, /*goto*/ 0x07) show_hudmsg(CHR_BOND, L_DAM_036) // "Critical mission object has been destroyed." set_stage_flag(STAGEFLAG_REACTOR_SWITCH_DESTROYED) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x07) if_chr_activated_object(CHR_P1P2, OBJ_REACTOR_SWITCH, /*goto*/ 0x07) reloop(0x00) label(0x07) if_stage_flag_eq(STAGEFLAG_REACTOR_HATCH_OPEN, TRUE, /*goto*/ 0x07) endloop(0x00) label(0x07) mute_channel(CHANNEL_0) mute_channel(CHANNEL_1) assign_sound(SFX_8147, CHANNEL_0) control_sound_from_object(CHANNEL_0, OBJ_REACTOR_SWITCH, TRUE) set_lights_state(0x007f, LIGHTOP_3, 0xff, 0x06, 0x78) set_object_image(OBJ_REACTOR_SWITCH, 0, TVCMDLIST_12) set_object_image(OBJ_REACTOR_SWITCH, 1, TVCMDLIST_12) set_object_image(OBJ_REACTOR_SWITCH, 2, TVCMDLIST_12) show_hudmsg(CHR_P1P2, L_DAM_018) // "Reactor has been shut down." set_stage_flag(STAGEFLAG_REACTOR_SHUT_DOWN) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func100b_check_diving_area_located[] = { beginloop(0x00) chr_toggle_p1p2(CHR_SELF) if_stage_flag_eq(STAGEFLAG_MET_ELVIS, TRUE, /*goto*/ 0x07) reloop(0x00) label(0x07) if_chr_in_room(CHR_P1P2, 0x00, 0x0064, /*goto*/ 0x07) reloop(0x00) label(0x07) if_chr_distance_to_pad_lt(CHR_P1P2, 600, PAD_DAM_0095, /*goto*/ 0x07) if_chr_distance_to_pad_lt(CHR_P1P2, 600, PAD_DAM_0096, /*goto*/ 0x07) endloop(0x00) label(0x07) show_hudmsg(CHR_P1P2, L_DAM_019) // "Diving control center has been located." set_stage_flag(STAGEFLAG_LOCATED_DIVING_AREA) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func100c_check_end_level[] = { beginloop(0x6f) if_objective_complete(0, /*goto*/ 0x07) reloop(0x6f) label(0x07) if_difficulty_lt(DIFF_PA, /*goto*/ 0x07) if_objective_complete(1, /*goto*/ 0x07) reloop(0x6f) label(0x07) if_objective_complete(2, /*goto*/ 0x07) reloop(0x6f) label(0x07) if_difficulty_lt(DIFF_SA, /*goto*/ 0x07) if_objective_complete(3, /*goto*/ 0x07) endloop(0x6f) label(0x07) beginloop(0x3b) if_stage_flag_eq(STAGEFLAG_ELVIS_WARPED_FROM_START, TRUE, /*goto*/ 0x07) endloop(0x3b) label(0x07) if_stage_flag_eq(STAGEFLAG_ELVIS_APPEARED_AT_MOONPOOL, TRUE, /*goto*/ 0x00) set_stage_flag(STAGEFLAG_ELVIS_APPEARED_AT_MOONPOOL) unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE) set_ailist(CHR_ELVIS, AILIST_ELVIS_AT_MOONPOOL) beginloop(0x00) chr_toggle_p1p2(CHR_SELF) if_chr_in_room(CHR_P1P2, 0x00, 0x0064, /*goto*/ 0x07) reloop(0x00) label(0x07) if_chr_distance_to_pad_lt(CHR_P1P2, 600, PAD_DAM_0095, /*goto*/ 0x07) if_chr_distance_to_pad_lt(CHR_P1P2, 600, PAD_DAM_0096, /*goto*/ 0x07) reloop(0x00) label(0x07) if_all_objectives_complete(/*goto*/ 0x07) endloop(0x00) label(0x07) restart_timer beginloop(0x0b) if_timer_gt(120, /*goto*/ 0x07) endloop(0x0b) label(0x07) if_chr_deadish(CHR_BOND, /*goto*/ 0x07) goto_next(0x08) label(0x07) if_chr_deadish(CHR_COOP, /*goto*/ 0x07) // Jo or Velvet alive label(0x08) if_chr_deadish(CHR_ELVIS, /*goto*/ 0x08) if_chr_deadish(CHR_BOND, /*goto*/ 0x07) goto_next(0x04) // Both players dead - this check is redundant label(0x07) if_chr_deadish(CHR_COOP, /*goto*/ 0x07) goto_next(0x04) // Both players dead label(0x07) end_level set_ailist(CHR_SELF, GAILIST_IDLE) // Mission complete label(0x04) set_invincible(CHR_BOND) set_ailist(CHR_SELF, AILIST_OUTRO) // Elvis dead label(0x08) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func100e_check_labtech_dead[] = { if_difficulty_lt(DIFF_PA, /*goto*/ 0x0b) beginloop(0x00) if_chr_death_animation_finished(CHR_LABTECH1, /*goto*/ 0x07) if_chr_dead(CHR_LABTECH1, /*goto*/ 0x07) if_chr_death_animation_finished(CHR_LABTECH2, /*goto*/ 0x07) if_chr_dead(CHR_LABTECH2, /*goto*/ 0x07) if_chr_death_animation_finished(CHR_LABTECH3, /*goto*/ 0x07) if_chr_dead(CHR_LABTECH3, /*goto*/ 0x07) endloop(0x00) label(0x07) show_hudmsg(CHR_BOND, L_DAM_020) // "Critical mission personnel killed." set_stage_flag(STAGEFLAG_LABTECH_DEAD) label(0x0b) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func100f_check_researchdata_collected[] = { beginloop(0x00) if_chr_has_object(CHR_BOND, OBJ_RESEARCHDATA1, /*goto*/ 0x07) if_chr_has_object(CHR_COOP, OBJ_RESEARCHDATA1, /*goto*/ 0x07) reloop(0x00) label(0x07) if_chr_has_object(CHR_BOND, OBJ_RESEARCHDATA2, /*goto*/ 0x07) if_chr_has_object(CHR_COOP, OBJ_RESEARCHDATA2, /*goto*/ 0x07) reloop(0x00) label(0x07) if_chr_has_object(CHR_BOND, OBJ_RESEARCHDATA3, /*goto*/ 0x07) if_chr_has_object(CHR_COOP, OBJ_RESEARCHDATA3, /*goto*/ 0x07) endloop(0x00) label(0x07) show_hudmsg(CHR_BOND, L_DAM_021) // "Research data has been secured." set_stage_flag(STAGEFLAG_COLLECTED_RESEARCH_DATA) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; #define init_path(pathid) \ set_chr_dodge_rating(2, 10) \ set_accuracy(18) \ set_reaction_speed(60) \ set_chr_maxdamage(CHR_SELF, 70) \ add_health_or_armor(0) \ set_recovery_speed(0) \ set_shield(0) \ assign_path(pathid) \ start_patrol \ set_ailist(CHR_SELF, GAILIST_UNALERTED_0004) u8 func0405_start_path00[] = { init_path(0) endlist }; u8 func0409_start_path03[] = { set_chr_cloaked(CHR_SELF, FALSE, TRUE) init_path(3) endlist }; u8 func040a_start_path04[] = { set_chr_cloaked(CHR_SELF, FALSE, TRUE) init_path(4) endlist }; u8 func0406_start_path01[] = { init_path(1) endlist }; u8 func0407_start_path02[] = { init_path(2) endlist }; u8 func040e_init_labtech1[] = { set_self_chrflag(CHRCFLAG_KEEPCORPSEKO) set_chr_maxdamage(CHR_SELF, 1) set_ailist(CHR_SELF, AILIST_LABTECH1) endlist }; u8 func040b_labtech1[] = { set_shotlist(AILIST_LABTECH1) if_chr_deadish(CHR_SELF, /*goto*/ 0x07) goto_next(0x04) // Dying label(0x07) set_shotlist(GAILIST_IDLE) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x04) beginloop(0x00) chr_toggle_p1p2(CHR_SELF) set_target_chr(CHR_P1P2) if_can_see_target(/*goto*/ 0x0f) if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0f) if_chr_stopped(/*goto*/ 0x04) goto_next(0x07) label(0x04) if_chr_idle(/*goto*/ 0x07) call_rng if_rand_lt(128, /*goto*/ 0x27) call_rng if_rand_lt(86, /*goto*/ 0x3b) if_rand_lt(172, /*goto*/ 0x3c) chr_do_animation(ANIM_OPERATE_0206, -1, -1, CHRANIMFLAG_MOVEWHENINVIS, 16, CHR_SELF, 2) goto_next(0x07) label(0x3b) chr_do_animation(ANIM_OPERATE_0204, -1, -1, CHRANIMFLAG_MOVEWHENINVIS, 16, CHR_SELF, 2) goto_next(0x07) label(0x3c) chr_do_animation(ANIM_OPERATE_0205, -1, -1, CHRANIMFLAG_MOVEWHENINVIS, 16, CHR_SELF, 2) goto_next(0x07) label(0x27) call_rng if_rand_lt(86, /*goto*/ 0x3b) if_rand_lt(172, /*goto*/ 0x3c) if_chr_distance_to_pad_lt(CHR_SELF, 200, PAD_DAM_0209, /*goto*/ 0x3b) walk_to_pad(PAD_DAM_0209) goto_next(0x07) label(0x3b) if_chr_distance_to_pad_lt(CHR_SELF, 200, PAD_DAM_020A, /*goto*/ 0x3c) walk_to_pad(PAD_DAM_020A) goto_next(0x07) label(0x3c) if_chr_distance_to_pad_lt(CHR_SELF, 200, PAD_DAM_020B, /*goto*/ 0x07) walk_to_pad(PAD_DAM_020B) goto_next(0x07) label(0x07) endloop(0x00) label(0x0f) set_ailist(CHR_SELF, AILIST_LABTECH_ALERTED) endlist }; u8 func040f_init_labtech2[] = { set_self_chrflag(CHRCFLAG_KEEPCORPSEKO) set_chr_maxdamage(CHR_SELF, 1) set_ailist(CHR_SELF, AILIST_LABTECH2) endlist }; u8 func040c_labtech2[] = { set_shotlist(AILIST_LABTECH2) if_chr_deadish(CHR_SELF, /*goto*/ 0x07) goto_next(0x04) // Dying label(0x07) set_shotlist(GAILIST_IDLE) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x04) beginloop(0x00) chr_toggle_p1p2(CHR_SELF) set_target_chr(CHR_P1P2) if_can_see_target(/*goto*/ 0x0f) if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0f) if_chr_stopped(/*goto*/ 0x04) goto_next(0x07) label(0x04) if_chr_idle(/*goto*/ 0x07) call_rng if_rand_lt(128, /*goto*/ 0x27) call_rng if_rand_lt(86, /*goto*/ 0x3b) if_rand_lt(172, /*goto*/ 0x3c) chr_do_animation(ANIM_OPERATE_0206, -1, -1, CHRANIMFLAG_MOVEWHENINVIS, 16, CHR_SELF, 2) goto_next(0x07) label(0x3b) chr_do_animation(ANIM_OPERATE_0204, -1, -1, CHRANIMFLAG_MOVEWHENINVIS, 16, CHR_SELF, 2) goto_next(0x07) label(0x3c) chr_do_animation(ANIM_OPERATE_0205, -1, -1, CHRANIMFLAG_MOVEWHENINVIS, 16, CHR_SELF, 2) goto_next(0x07) label(0x27) call_rng if_rand_lt(86, /*goto*/ 0x3b) if_rand_lt(172, /*goto*/ 0x3c) if_chr_distance_to_pad_lt(CHR_SELF, 200, PAD_DAM_020C, /*goto*/ 0x3b) walk_to_pad(PAD_DAM_020C) goto_next(0x07) label(0x3b) if_chr_distance_to_pad_lt(CHR_SELF, 200, PAD_DAM_020D, /*goto*/ 0x3c) walk_to_pad(PAD_DAM_020D) goto_next(0x07) label(0x3c) if_chr_distance_to_pad_lt(CHR_SELF, 200, PAD_DAM_020E, /*goto*/ 0x07) walk_to_pad(PAD_DAM_020E) goto_next(0x07) label(0x07) endloop(0x00) label(0x0f) set_ailist(CHR_SELF, AILIST_LABTECH_ALERTED) endlist }; u8 func0410_init_labtech3[] = { set_self_chrflag(CHRCFLAG_KEEPCORPSEKO) set_chr_maxdamage(CHR_SELF, 1) set_ailist(CHR_SELF, AILIST_LABTECH3) endlist }; u8 func040d_labtech3[] = { // @bug: Wrong onshot function. Under normal gameplay this labtech has 1HP // anyway and will die in one shot. Theoretically, if you use PD mode with // max health and shoot him with a weak weapon then he will start running to // lab tech 1's pads. set_shotlist(AILIST_LABTECH1) if_chr_deadish(CHR_SELF, /*goto*/ 0x07) goto_next(0x04) // Dying label(0x07) set_shotlist(GAILIST_IDLE) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x04) beginloop(0x00) chr_toggle_p1p2(CHR_SELF) set_target_chr(CHR_P1P2) if_can_see_target(/*goto*/ 0x0f) if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x10) if_chr_stopped(/*goto*/ 0x04) goto_next(0x07) label(0x04) if_chr_idle(/*goto*/ 0x07) call_rng if_rand_lt(128, /*goto*/ 0x27) call_rng if_rand_lt(86, /*goto*/ 0x3b) if_rand_lt(172, /*goto*/ 0x3c) chr_do_animation(ANIM_OPERATE_0206, -1, -1, CHRANIMFLAG_MOVEWHENINVIS, 16, CHR_SELF, 2) goto_next(0x07) label(0x3b) chr_do_animation(ANIM_OPERATE_0204, -1, -1, CHRANIMFLAG_MOVEWHENINVIS, 16, CHR_SELF, 2) goto_next(0x07) label(0x3c) chr_do_animation(ANIM_OPERATE_0205, -1, -1, CHRANIMFLAG_MOVEWHENINVIS, 16, CHR_SELF, 2) goto_next(0x07) label(0x27) call_rng if_rand_lt(86, /*goto*/ 0x3b) if_rand_lt(172, /*goto*/ 0x3c) if_chr_distance_to_pad_lt(CHR_SELF, 200, PAD_DAM_020F, /*goto*/ 0x3b) walk_to_pad(PAD_DAM_020F) goto_next(0x07) label(0x3b) if_chr_distance_to_pad_lt(CHR_SELF, 200, PAD_DAM_0210, /*goto*/ 0x3c) walk_to_pad(PAD_DAM_0210) goto_next(0x07) label(0x3c) if_chr_distance_to_pad_lt(CHR_SELF, 200, PAD_DAM_0211, /*goto*/ 0x07) walk_to_pad(PAD_DAM_0211) goto_next(0x07) label(0x07) endloop(0x00) label(0x10) set_alertness(100) label(0x0f) set_ailist(CHR_SELF, AILIST_LABTECH_ALERTED) endlist }; u8 func0411_labtech_alerted[] = { restart_timer label(0x0b) try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0c) beginloop(0x0c) if_target_in_fov_left(10, /*goto*/ 0x04) if_timer_gt(60, /*goto*/ 0x04) endloop(0x0c) label(0x04) if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04) set_alertness(100) say_quip(CHR_BOND, 0x2a, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00) chr_do_animation(ANIM_SURRENDER_002E, 0, -1, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2) beginloop(0x3e) if_timer_gt(90, /*goto*/ 0x04) endloop(0x3e) // Already alert (eg. by gunfire) label(0x04) try_set_chrpreset_to_unalerted_teammate(0, /*goto*/ 0x3f) goto_next(0x42) label(0x3f) try_run_to_chr(CHR_PRESET, /*goto*/ 0x40) goto_next(0x42) beginloop(0x40) if_detected_chr(CHR_PRESET, /*goto*/ 0x41) if_chr_stopped(/*goto*/ 0x41) endloop(0x40) label(0x41) increase_squadron_alertness(100) say_quip(CHR_BOND, QUIP_WARNFRIENDS, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) label(0x42) go_to_target_pad(GOPOSFLAG_RUN) beginloop(0x10) if_chr_stopped(/*goto*/ 0x13) endloop(0x10) label(0x13) restart_timer if_can_see_target(/*goto*/ 0x07) goto_next(0x00) label(0x07) set_target_chr(CHR_P1P2) if_distance_to_target_lt(300, /*goto*/ 0x04) label(0x00) chr_do_animation(ANIM_COWER_0229, -1, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2) beginloop(0x11) chr_toggle_p1p2(CHR_SELF) set_target_chr(CHR_P1P2) if_timer_gt(1200, /*goto*/ 0x0d) if_can_see_target(/*goto*/ 0x07) goto_next(0x00) label(0x07) if_distance_to_target_lt(300, /*goto*/ 0x04) label(0x00) if_chr_stopped(/*goto*/ 0x07) endloop(0x11) label(0x07) goto_first(0x13) label(0x0d) goto_first(0x42) label(0x04) retreat(GOPOSFLAG_RUN, 2) restart_timer beginloop(0x14) if_timer_gt(600, /*goto*/ 0x07) endloop(0x14) label(0x07) goto_first(0x13) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0412_hide[] = { set_self_chrflag(CHRCFLAG_HIDDEN) set_self_chrflag(CHRCFLAG_INVINCIBLE) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1010_alarm_responders[] = { yield yield set_chr_hiddenflag(0x57, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x58, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x59, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x5a, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x5b, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x5c, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x5d, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x5e, CHRHFLAG_CLOAKED) disable_chr(0x57) disable_chr(0x58) disable_chr(0x59) disable_chr(0x5a) disable_chr(0x5b) disable_chr(0x5c) disable_chr(0x5d) disable_chr(0x5e) set_chr_hiddenflag(0x04, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x25, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x06, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x08, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x0a, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x0c, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x0e, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x10, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x12, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x14, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x16, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x18, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x1a, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x1c, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x1e, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x20, CHRHFLAG_CLOAKED) set_chr_hiddenflag(0x22, CHRHFLAG_CLOAKED) disable_chr(0x04) disable_chr(0x25) disable_chr(0x06) disable_chr(0x08) disable_chr(0x0a) disable_chr(0x0c) disable_chr(0x0e) disable_chr(0x10) disable_chr(0x12) disable_chr(0x14) disable_chr(0x16) disable_chr(0x18) disable_chr(0x1a) disable_chr(0x1c) disable_chr(0x1e) disable_chr(0x20) disable_chr(0x22) beginloop(0x00) if_alarm_active(/*goto*/ 0x07) endloop(0x00) label(0x07) enable_chr(0x57) enable_chr(0x58) enable_chr(0x59) enable_chr(0x5a) enable_chr(0x5b) enable_chr(0x5c) enable_chr(0x5d) enable_chr(0x5e) set_chr_team(0x57, TEAM_ENEMY) set_chr_team(0x58, TEAM_ENEMY) set_chr_team(0x59, TEAM_ENEMY) set_chr_team(0x5a, TEAM_ENEMY) set_chr_team(0x5b, TEAM_ENEMY) set_chr_team(0x5c, TEAM_ENEMY) set_chr_team(0x5d, TEAM_ENEMY) set_chr_team(0x5e, TEAM_ENEMY) rebuild_teams rebuild_squadrons yield enable_chr(0x04) enable_chr(0x25) enable_chr(0x06) enable_chr(0x08) enable_chr(0x0a) enable_chr(0x0c) enable_chr(0x0e) enable_chr(0x10) enable_chr(0x12) enable_chr(0x14) enable_chr(0x16) enable_chr(0x18) enable_chr(0x1a) enable_chr(0x1c) enable_chr(0x1e) enable_chr(0x20) enable_chr(0x22) set_chr_team(0x04, TEAM_ENEMY) set_chr_team(0x25, TEAM_ENEMY) set_chr_team(0x06, TEAM_ENEMY) set_chr_team(0x08, TEAM_ENEMY) set_chr_team(0x0a, TEAM_ENEMY) set_chr_team(0x0c, TEAM_ENEMY) set_chr_team(0x0e, TEAM_ENEMY) set_chr_team(0x10, TEAM_ENEMY) set_chr_team(0x12, TEAM_ENEMY) set_chr_team(0x14, TEAM_ENEMY) set_chr_team(0x16, TEAM_ENEMY) set_chr_team(0x18, TEAM_ENEMY) set_chr_team(0x1a, TEAM_ENEMY) set_chr_team(0x1c, TEAM_ENEMY) set_chr_team(0x1e, TEAM_ENEMY) set_chr_team(0x20, TEAM_ENEMY) set_chr_team(0x22, TEAM_ENEMY) rebuild_teams rebuild_squadrons yield set_ailist(0x57, 0x0409) set_ailist(0x58, 0x0409) set_ailist(0x59, 0x040a) set_ailist(0x5a, 0x040a) set_ailist(0x5b, AILIST_GUARD_ALERTED) set_ailist(0x5c, AILIST_GUARD_ALERTED) set_ailist(0x5d, AILIST_GUARD_ALERTED) set_ailist(0x5e, AILIST_GUARD_ALERTED) set_ailist(0x04, AILIST_GUARD_UNALERTED) set_ailist(0x25, AILIST_GUARD_UNALERTED) set_ailist(0x06, AILIST_GUARD_UNALERTED) set_ailist(0x08, AILIST_GUARD_UNALERTED) set_ailist(0x0a, AILIST_GUARD_UNALERTED) set_ailist(0x0c, AILIST_GUARD_UNALERTED) set_ailist(0x0e, AILIST_GUARD_UNALERTED) set_ailist(0x10, AILIST_GUARD_UNALERTED) set_ailist(0x12, AILIST_GUARD_UNALERTED) set_ailist(0x14, AILIST_GUARD_UNALERTED) set_ailist(0x16, AILIST_GUARD_UNALERTED) set_ailist(0x18, AILIST_GUARD_UNALERTED) set_ailist(0x1a, AILIST_GUARD_UNALERTED) set_ailist(0x1c, AILIST_GUARD_UNALERTED) set_ailist(0x1e, AILIST_GUARD_UNALERTED) set_ailist(0x20, AILIST_GUARD_UNALERTED) set_ailist(0x22, AILIST_GUARD_UNALERTED) yield unset_chr_chrflag(0x57, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x58, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x59, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x5a, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x5b, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x5c, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x5d, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x5e, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x57, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x58, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x59, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x5a, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x5b, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x5c, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x5d, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x5e, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x04, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x25, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x06, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x08, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x0a, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x0c, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x0e, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x10, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x12, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x14, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x16, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x18, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x1a, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x1c, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x1e, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x20, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x22, CHRCFLAG_INVINCIBLE) unset_chr_chrflag(0x04, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x25, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x06, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x08, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x0a, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x0c, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x0e, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x10, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x12, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x14, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x16, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x18, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x1a, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x1c, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x1e, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x20, CHRCFLAG_HIDDEN) unset_chr_chrflag(0x22, CHRCFLAG_HIDDEN) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0402_init_pilot[] = { set_chr_maxdamage(CHR_SELF, 1) set_ailist(CHR_SELF, AILIST_PILOT) endlist }; u8 func0401_pilot_dying[] = { unset_stage_flag(STAGEFLAG_SAID_PULLTHEPLUG) unset_stage_flag(STAGEFLAG_SAID_SWITCHTHINGOFF) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0401_pilot[] = { set_shotlist(AILIST_PILOT) if_chr_deadish(CHR_SELF, /*goto*/ 0x07) goto_next(0x00) // Dying label(0x07) set_ailist(CHR_SELF, AILIST_PILOT_DYING) // Alive - wait for player to arrive beginloop(0x00) chr_toggle_p1p2(CHR_SELF) set_target_chr(CHR_P1P2) if_target_in_sight(/*goto*/ 0x07) if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04) endloop(0x00) // Seen player label(0x07) say_quip(CHR_BOND, QUIP_SURRENDER, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00) label(0x04) increase_squadron_alertness(100) surrender beginloop(0x0b) // Wait for Jo nearby chr_toggle_p1p2(CHR_SELF) set_target_chr(CHR_P1P2) if_distance_to_target_lt(200, /*goto*/ 0x07) reloop(0x0b) // and for Jo's room entry speech to finish label(0x07) if_sound_finished(CHANNEL_6, /*goto*/ 0x07) reloop(0x0b) // and for Jo to be in view label(0x07) if_chr_in_view(/*goto*/ 0x07) endloop(0x0b) label(0x07) if_stage_flag_eq(STAGEFLAG_AUTOPILOT_DISABLED, TRUE, /*goto*/ 0x08) if_stage_flag_eq(STAGEFLAG_SAID_PULLTHEPLUG, FALSE, /*goto*/ 0x07) goto_next(0x04) label(0x08) if_chr_deadish(CHR_ANGRY_PILOT, /*goto*/ 0x09) goto_first(0x0b) // Angry pilot dead or hasn't been chosen yet label(0x09) if_stage_flag_eq(STAGEFLAG_GPS_DISABLED, TRUE, /*goto*/ 0x04) if_stage_flag_eq(STAGEFLAG_SAID_SWITCHTHINGOFF, FALSE, /*goto*/ 0x08) // GPS disabled label(0x04) say_quip(CHR_BOND, QUIP_SURRENDER, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00) goto_first(0x0b) label(0x07) speak(CHR_TARGET, L_DAM_043, MP3_JO_PULL_THE_PLUG, CHANNEL_7, COLOR_09_BLUE) // "Pull the plug on that now." set_stage_flag(STAGEFLAG_SAID_PULLTHEPLUG) goto_next(0x0c) label(0x08) speak(CHR_TARGET, L_DAM_044, MP3_JO_SWITCH_THIS_THING_OFF, CHANNEL_7, COLOR_09_BLUE) // "Switch this thing off." set_stage_flag(STAGEFLAG_SAID_SWITCHTHINGOFF) goto_next(0x0c) beginloop(0x0c) if_sound_finished(CHANNEL_7, /*goto*/ 0x07) endloop(0x0c) label(0x07) set_self_flag_bankx(CHRFLAG0_COVER_TYPE2, BANK_0) if_stage_flag_eq(STAGEFLAG_SAID_SWITCHTHINGOFF, FALSE, /*goto*/ 0x07) speak(CHR_TARGET, L_DAM_045, MP3_SCI_ILL_SHUT_IT_DOWN, CHANNEL_6, COLOR_04_ORANGE) // "I'll shut it down." goto_next(0x08) label(0x07) speak(CHR_TARGET, L_DAM_046, MP3_SCI_PLEASE_DONT_HURT_ME, CHANNEL_6, COLOR_04_ORANGE) // "Please don't hurt me." label(0x08) do_preset_animation(PRESETANIM_TALKRANDOM) beginloop(0x0f) if_sound_finished(CHANNEL_6, /*goto*/ 0x08) endloop(0x0f) // Choose which pad to walk to label(0x08) if_stage_flag_eq(STAGEFLAG_SAID_SWITCHTHINGOFF, TRUE, /*goto*/ 0x07) walk_to_pad(PAD_DAM_015D) goto_next(0x0d) label(0x07) walk_to_pad(PAD_DAM_0160) // Walking to pad beginloop(0x0d) if_chr_stopped(/*goto*/ 0x07) endloop(0x0d) // Push button label(0x07) chr_do_animation(ANIM_PUSH_BUTTON, 0, -1, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2) #if VERSION >= VERSION_NTSC_1_0 restart_timer beginloop(0x0e) if_chr_stopped(/*goto*/ 0x07) if_timer_gt(60, /*goto*/ 0x08) endloop(0x0e) label(0x08) speak(CHR_SELF, -1, SFX_TYPING_8118, CHANNEL_9, COLOR_00_GREEN) beginloop(0x10) if_chr_stopped(/*goto*/ 0x07) endloop(0x10) #else beginloop(0x0e) if_chr_stopped(/*goto*/ 0x07) endloop(0x0e) #endif label(0x07) if_stage_flag_eq(STAGEFLAG_AUTOPILOT_DISABLED, TRUE, /*goto*/ 0x07) show_hudmsg(CHR_TARGET, L_DAM_014) // "Autopilot system has been deactivated." set_stage_flag(STAGEFLAG_TRIGGER_ANGRY_PILOT) yield yield yield yield yield yield yield yield yield yield set_stage_flag(STAGEFLAG_AUTOPILOT_DISABLED) surrender goto_first(0x0b) label(0x07) show_hudmsg(CHR_TARGET, L_DAM_015) // "GPS system has been deactivated." set_stage_flag(STAGEFLAG_GPS_DISABLED) surrender goto_first(0x0b) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1011_check_pilots_dead[] = { beginloop(0x00) if_stage_flag_eq(STAGEFLAG_00080000, TRUE, /*goto*/ 0x08) if_chr_deadish(CHR_PILOT1, /*goto*/ 0x07) reloop(0x00) label(0x07) if_chr_deadish(CHR_PILOT2, /*goto*/ 0x07) reloop(0x00) label(0x07) if_chr_deadish(CHR_PILOT3, /*goto*/ 0x07) endloop(0x00) // All pilots dead label(0x07) // Flag is set label(0x08) if_stage_flag_eq(STAGEFLAG_AUTOPILOT_DISABLED, FALSE, /*goto*/ 0x07) if_stage_flag_eq(STAGEFLAG_GPS_DISABLED, FALSE, /*goto*/ 0x07) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x07) show_hudmsg(CHR_BOND, L_DAM_027) // "Critical mission personnel have been killed." set_stage_flag(STAGEFLAG_PILOT_DEAD) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * Choose a pilot to become angry. One of the three is selected at random. If * the selected pilot is dead, try the next one and so on in order 1, 2, 3. */ u8 func1012_choose_angry_pilot[] = { set_chr_chrflag(CHR_PILOT1, CHRCFLAG_KILLCOUNTABLE) set_chr_chrflag(CHR_PILOT2, CHRCFLAG_KILLCOUNTABLE) set_chr_chrflag(CHR_PILOT3, CHRCFLAG_KILLCOUNTABLE) beginloop(0x00) if_kill_count_gt(0, /*goto*/ 0x08) if_stage_flag_eq(STAGEFLAG_TRIGGER_ANGRY_PILOT, TRUE, /*goto*/ 0x07) endloop(0x00) // Triggered label(0x07) call_rng if_rand_lt(86, /*goto*/ 0x3b) if_rand_lt(172, /*goto*/ 0x3c) beginloop(0x03) if_kill_count_gt(0, /*goto*/ 0x08) if_chr_deadish(CHR_PILOT1, /*goto*/ 0x3b) if_chr_has_flag_bankx(CHR_PILOT1, CHRFLAG0_COVER_TYPE2, BANK_0, /*goto*/ 0x3b) set_ailist(CHR_PILOT1, AILIST_ANGRY_PILOT) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x3b) if_chr_deadish(CHR_PILOT2, /*goto*/ 0x3c) if_chr_has_flag_bankx(CHR_PILOT2, CHRFLAG0_COVER_TYPE2, BANK_0, /*goto*/ 0x3c) set_ailist(CHR_PILOT2, AILIST_ANGRY_PILOT) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x3c) if_chr_deadish(CHR_PILOT3, /*goto*/ 0x04) if_chr_has_flag_bankx(CHR_PILOT3, CHRFLAG0_COVER_TYPE2, BANK_0, /*goto*/ 0x04) set_ailist(CHR_PILOT3, AILIST_ANGRY_PILOT) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x04) endloop(0x03) // Killed a pilot label(0x08) show_hudmsg(CHR_BOND, L_DAM_035) // "Civilians have been killed." set_stage_flag(STAGEFLAG_JO_KILLED_A_PILOT) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0404_angry_pilot[] = { set_chr_id(CHR_ANGRY_PILOT) set_accuracy(90) set_reaction_speed(100) set_chr_team(CHR_SELF, TEAM_ENEMY) rebuild_teams rebuild_squadrons unset_self_flag_bankx(CHRFLAG0_ALERT_ON_HEARSPAWN, BANK_0) set_self_chrflag(CHRCFLAG_00000040) set_shotlist(AILIST_ANGRY_PILOT) if_chr_deadish(CHR_SELF, /*goto*/ 0x07) goto_next(0x04) // Dying label(0x07) set_shotlist(GAILIST_IDLE) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x04) set_self_flag_bankx(CHRFLAG0_GP1, BANK_0) speak(CHR_TARGET, L_DAM_047, MP3_04DD, CHANNEL_7, COLOR_04_ORANGE) // "Die, you traitors." chr_do_animation(ANIM_DRAW_PISTOL_0245, -1, 120, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_SELF, 3) try_equip_weapon(MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x00000000, /*goto*/ 0x6c) beginloop(0x6c) if_chr_stopped(/*goto*/ 0x03) endloop(0x6c) label(0x03) if_kill_count_gt(1, /*goto*/ 0x08) goto_next(0x04) // Jo killed a pilot label(0x08) set_stage_flag(STAGEFLAG_00080000) // Select another pilot as target label(0x04) if_chr_deadish(CHR_PILOT1, /*goto*/ 0x3b) if_chr_has_flag_bankx(CHR_PILOT1, CHRFLAG0_GP1, BANK_0, /*goto*/ 0x3b) set_target_chr(CHR_PILOT1) goto_next(0x00) label(0x3b) if_chr_deadish(CHR_PILOT2, /*goto*/ 0x3c) if_chr_has_flag_bankx(CHR_PILOT2, CHRFLAG0_GP1, BANK_0, /*goto*/ 0x3c) set_target_chr(CHR_PILOT2) goto_next(0x00) label(0x3c) if_chr_deadish(CHR_PILOT3, /*goto*/ 0x04) if_chr_has_flag_bankx(CHR_PILOT3, CHRFLAG0_GP1, BANK_0, /*goto*/ 0x04) set_target_chr(CHR_PILOT3) goto_next(0x00) // No other pilots label(0x04) call_rng if_rand_lt(128, /*goto*/ 0x3b) set_target_chr(CHR_COOP) if_chr_death_animation_finished(CHR_TARGET, /*goto*/ 0x3b) goto_next(0x00) label(0x3b) set_target_chr(CHR_BOND) // Got target (other pilot or Jo) label(0x00) if_target_is_player(/*goto*/ 0x07) goto_next(0x04) label(0x07) set_shotlist(GAILIST_ALERTED) set_ailist(CHR_SELF, GAILIST_ALERTED) label(0x04) restart_timer try_run_to_target(/*goto*/ 0x6d) beginloop(0x6d) if_can_see_attack_target(/*goto*/ 0x07) if_timer_gt(120, /*goto*/ 0x04) endloop(0x6d) label(0x04) goto_first(0x00) label(0x07) try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x04) label(0x04) try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x6e) beginloop(0x6e) if_chr_stopped(/*goto*/ 0x07) endloop(0x6e) label(0x07) goto_first(0x03) endlist }; u8 func1013_lift_switch[] = { beginloop(0x00) chr_toggle_p1p2(CHR_SELF) if_chr_activated_object(CHR_P1P2, OBJ_LIFT_SWITCH, /*goto*/ 0x07) endloop(0x00) label(0x07) show_hudmsg(CHR_P1P2, L_DAM_028) // "Lift door has been unlocked." unlock_door(0x18, 0x02) unlock_door(0x19, 0x02) open_door(0x18) open_door(0x19) set_stage_flag(STAGEFLAG_LIFT_UNLOCKED) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1014_moonpool_switch[] = { beginloop(0x00) chr_toggle_p1p2(CHR_SELF) if_object_in_good_condition(OBJ_MOONPOOL_SWITCH, /*goto*/ 0x08) if_difficulty_lt(DIFF_SA, /*goto*/ 0x10) show_hudmsg(CHR_P1P2, L_DAM_036) // "Critical mission object has been destroyed." set_stage_flag(STAGEFLAG_MOONPOOL_SWITCH_DESTROYED) label(0x10) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x08) if_chr_activated_object(CHR_P1P2, OBJ_MOONPOOL_SWITCH, /*goto*/ 0x07) endloop(0x00) label(0x07) label(0x07) show_hudmsg(CHR_P1P2, L_DAM_029) // "Lift has been activated." set_stage_flag(STAGEFLAG_MOONPOOL_ACTIVATED) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0413_guard_alerted[] = { set_chr_cloaked(CHR_SELF, FALSE, TRUE) set_chr_dodge_rating(2, 10) set_accuracy(18) set_reaction_speed(60) set_chr_maxdamage(CHR_SELF, 70) add_health_or_armor(0) set_recovery_speed(0) set_shield(0) set_ailist(CHR_SELF, GAILIST_ALERTED) endlist }; u8 func1015_shuffle_hatchswitches[] = { yield shuffle_pelagic_switches yield yield set_object_image(OBJ_BADHATCHSWITCH1, 0, TVCMDLIST_12) yield set_object_image(OBJ_BADHATCHSWITCH2, 0, TVCMDLIST_12) yield set_object_image(OBJ_BADHATCHSWITCH3, 0, TVCMDLIST_12) yield set_object_image(OBJ_BADHATCHSWITCH4, 0, TVCMDLIST_12) yield set_object_image(OBJ_HATCHSWITCH1, 0, TVCMDLIST_13) yield set_object_image(OBJ_HATCHSWITCH2, 0, TVCMDLIST_13) yield set_object_image(OBJ_HATCHSWITCH3, 0, TVCMDLIST_13) yield set_object_image(OBJ_HATCHSWITCH4, 0, TVCMDLIST_13) yield set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; #define hatchswitch_logic(switch, flag) \ yield \ yield \ \ beginloop(0x00) \ chr_toggle_p1p2(CHR_SELF) \ if_chr_activated_object(CHR_P1P2, switch, /*goto*/ 0x07) \ endloop(0x00) \ \ label(0x07) \ assign_sound(SFX_043A, CHANNEL_7) \ control_sound_from_object(CHANNEL_7, switch, TRUE) \ set_object_image(switch, 0, TVCMDLIST_14) \ set_stage_flag(flag) \ \ beginloop(0x0b) \ if_stage_flag_eq(STAGEFLAG_HATCHSWITCHES_RESETTING, TRUE, /*goto*/ 0x07) \ endloop(0x0b) \ \ label(0x07) \ set_object_image(switch, 0, TVCMDLIST_13) \ yield \ yield \ yield \ yield \ yield \ unset_stage_flag(STAGEFLAG_HATCHSWITCH1_ACTIVATED) \ unset_stage_flag(STAGEFLAG_HATCHSWITCH2_ACTIVATED) \ unset_stage_flag(STAGEFLAG_HATCHSWITCH3_ACTIVATED) \ unset_stage_flag(STAGEFLAG_HATCHSWITCH4_ACTIVATED) \ goto_first(0x00) u8 func1016_hatchswitch1[] = { hatchswitch_logic(OBJ_HATCHSWITCH1, STAGEFLAG_HATCHSWITCH1_ACTIVATED) endlist }; u8 func1017_hatchswitch2[] = { hatchswitch_logic(OBJ_HATCHSWITCH2, STAGEFLAG_HATCHSWITCH2_ACTIVATED) endlist }; u8 func1018_hatchswitch3[] = { hatchswitch_logic(OBJ_HATCHSWITCH3, STAGEFLAG_HATCHSWITCH3_ACTIVATED) endlist }; u8 func1019_hatchswitch4[] = { hatchswitch_logic(OBJ_HATCHSWITCH4, STAGEFLAG_HATCHSWITCH4_ACTIVATED) endlist }; u8 func101a_badhatchswitches[] = { yield yield beginloop(0x00) if_chr_activated_object(CHR_P1P2, OBJ_BADHATCHSWITCH1, /*goto*/ 0x0b) if_chr_activated_object(CHR_P1P2, OBJ_BADHATCHSWITCH2, /*goto*/ 0x0c) if_chr_activated_object(CHR_P1P2, OBJ_BADHATCHSWITCH3, /*goto*/ 0x0d) if_chr_activated_object(CHR_P1P2, OBJ_BADHATCHSWITCH4, /*goto*/ 0x0e) endloop(0x00) // 1 label(0x0b) assign_sound(SFX_043A, CHANNEL_7) control_sound_from_object(CHANNEL_7, OBJ_BADHATCHSWITCH1, TRUE) yield assign_sound(SFX_01C0, CHANNEL_6) control_sound_from_object(CHANNEL_6, OBJ_BADHATCHSWITCH1, FALSE) set_object_image(OBJ_BADHATCHSWITCH1, 0, TVCMDLIST_0F) goto_next(0x04) // 2 label(0x0c) assign_sound(SFX_043A, CHANNEL_7) control_sound_from_object(CHANNEL_7, OBJ_BADHATCHSWITCH2, TRUE) yield assign_sound(SFX_01C0, CHANNEL_6) control_sound_from_object(CHANNEL_6, OBJ_BADHATCHSWITCH2, FALSE) set_object_image(OBJ_BADHATCHSWITCH2, 0, TVCMDLIST_0F) goto_next(0x04) // 3 label(0x0d) assign_sound(SFX_043A, CHANNEL_7) control_sound_from_object(CHANNEL_7, OBJ_BADHATCHSWITCH3, TRUE) yield assign_sound(SFX_01C0, CHANNEL_6) control_sound_from_object(CHANNEL_6, OBJ_BADHATCHSWITCH3, FALSE) set_object_image(OBJ_BADHATCHSWITCH3, 0, TVCMDLIST_0F) goto_next(0x04) // 4 label(0x0e) assign_sound(SFX_043A, CHANNEL_7) control_sound_from_object(CHANNEL_7, OBJ_BADHATCHSWITCH4, TRUE) yield assign_sound(SFX_01C0, CHANNEL_6) control_sound_from_object(CHANNEL_6, OBJ_BADHATCHSWITCH4, FALSE) set_object_image(OBJ_BADHATCHSWITCH4, 0, TVCMDLIST_0F) goto_next(0x04) label(0x04) show_hudmsg(CHR_P1P2, L_DAM_031) // "Unlocking sequence has been reset." set_stage_flag(STAGEFLAG_HATCHSWITCHES_RESETTING) restart_timer beginloop(0x10) if_timer_gt(120, /*goto*/ 0x04) endloop(0x10) label(0x04) mute_channel(CHANNEL_6) unset_stage_flag(STAGEFLAG_HATCHSWITCHES_RESETTING) set_object_image(OBJ_BADHATCHSWITCH1, 0, TVCMDLIST_12) set_object_image(OBJ_BADHATCHSWITCH2, 0, TVCMDLIST_12) set_object_image(OBJ_BADHATCHSWITCH3, 0, TVCMDLIST_12) set_object_image(OBJ_BADHATCHSWITCH4, 0, TVCMDLIST_12) goto_first(0x00) endlist }; u8 func101b_reactor_hum[] = { yield assign_sound(SFX_8146, CHANNEL_1) play_sound_from_object(CHANNEL_1, OBJ_REACTOR_SWITCH, 1, 2000, 3000) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0415_elvis_at_start[] = { set_shotlist(AILIST_ELVIS_AT_START) if_chr_deadish(CHR_SELF, /*goto*/ 0x07) goto_next(0x04) // Dying label(0x07) if_sound_finished(CHANNEL_6, /*goto*/ 0x08) mute_channel(CHANNEL_6) label(0x08) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x04) stop_chr set_chr_maxdamage(CHR_SELF, 1) restart_timer beginloop(0x0b) if_timer_gt(120, /*goto*/ 0x07) endloop(0x0b) label(0x07) do_preset_animation(PRESETANIM_TALKRANDOM) speak(CHR_TARGET, L_DAM_032, MP3_04DC, CHANNEL_6, COLOR_06_WHITE) // "You go on ahead, Jo. I'll secure the perimeter. We..." beginloop(0x0c) if_sound_finished(CHANNEL_6, /*goto*/ 0x07) endloop(0x0c) label(0x07) jog_to_pad(PAD_DAM_0040) beginloop(0x0d) if_chr_stopped(/*goto*/ 0x07) endloop(0x0d) label(0x3b) restart_timer label(0x0e) stop_chr if_self_flag_bankx_eq(CHRFLAG1_DONE_SEARCH_ANIM, TRUE, BANK_1, /*goto*/ 0x07) call_rng if_rand_gt(128, /*goto*/ 0x07) // 50% chance of doing an idle animation call_rng if_rand_lt(64, /*goto*/ 0x44) if_rand_lt(128, /*goto*/ 0x45) if_rand_lt(196, /*goto*/ 0x46) set_self_flag_bankx(CHRFLAG1_DONE_SEARCH_ANIM, BANK_1) chr_do_animation(ANIM_SMOKE_CIGARETTE, 0, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2) goto_next(0x4c) label(0x44) chr_do_animation(ANIM_SCRATCH_HEAD, 0, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2) goto_next(0x4c) label(0x45) chr_do_animation(ANIM_YAWN, 0, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2) goto_next(0x4c) label(0x46) chr_do_animation(ANIM_GRAB_CROTCH, 0, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2) goto_next(0x4c) label(0x47) chr_do_animation(ANIM_TWO_GUN_HOLD, 0, 100, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2) goto_next(0x4c) // 50% chance label(0x07) unset_self_flag_bankx(CHRFLAG1_DONE_SEARCH_ANIM, BANK_1) if_chr_in_room(CHR_SELF, 0x00, 0x0029, /*goto*/ 0x04) set_padpreset(PAD_DAM_0040) goto_next(0x07) label(0x04) call_rng if_rand_lt(64, /*goto*/ 0x44) if_rand_lt(128, /*goto*/ 0x45) if_rand_lt(196, /*goto*/ 0x46) try_set_target_pad_to_something(0x08, /*goto*/ 0x07) label(0x44) try_set_target_pad_to_something(0x02, /*goto*/ 0x07) label(0x45) try_set_target_pad_to_something(0x04, /*goto*/ 0x07) label(0x46) try_set_target_pad_to_something(0x08, /*goto*/ 0x07) goto_next(0x4c) label(0x07) go_to_target_pad(GOPOSFLAG_WALK) beginloop(0x4c) if_chr_in_room(CHR_BOND, 0x00, 0x0029, /*goto*/ 0x04) if_chr_in_room(CHR_BOND, 0x00, 0x002a, /*goto*/ 0x04) if_chr_in_room(CHR_BOND, 0x00, 0x002b, /*goto*/ 0x04) if_chr_in_room(CHR_BOND, 0x00, 0x0030, /*goto*/ 0x04) if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x07) if_chr_in_room(CHR_COOP, 0x00, 0x0029, /*goto*/ 0x04) if_chr_in_room(CHR_COOP, 0x00, 0x002a, /*goto*/ 0x04) if_chr_in_room(CHR_COOP, 0x00, 0x002b, /*goto*/ 0x04) if_chr_in_room(CHR_COOP, 0x00, 0x0030, /*goto*/ 0x04) label(0x07) goto_next(0x10) label(0x04) if_chr_stopped(/*goto*/ 0x4b) endloop(0x4c) label(0x4b) goto_first(0x3b) label(0x04) label(0x10) yield if_difficulty_lt(DIFF_SA, /*goto*/ 0x07) // SA and PA chr_move_to_pad(CHR_ELVIS, PAD_DAM_0020, 0x01, /*goto*/ 0x04) goto_first(0x10) // Agent label(0x07) chr_move_to_pad(CHR_ELVIS, PAD_DAM_0096, 0x01, /*goto*/ 0x04) goto_first(0x10) label(0x04) stop_chr set_stage_flag(STAGEFLAG_ELVIS_WARPED_FROM_START) set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN) set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE) add_health_or_armor(2000) set_chr_maxdamage(CHR_SELF, 1) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; /** * Elvis leading the way from the moon pool to the diving area. */ u8 func0416_elvis_leading[] = { set_shotlist(AILIST_ELVIS_LEADING) if_chr_deadish(CHR_SELF, /*goto*/ 0x07) goto_next(0x04) // Dying label(0x07) set_shotlist(GAILIST_IDLE) set_ailist(CHR_SELF, GAILIST_IDLE) // Alive label(0x04) if_just_injured(CHR_SELF, /*goto*/ 0x07) goto_next(0x04) // Injured label(0x07) say_quip(CHR_BOND, 0x29, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) beginloop(0x3a) if_chr_stopped(/*goto*/ 0x04) endloop(0x3a) label(0x04) if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0b) set_padpreset(PAD_DAM_0096) label(0x12) label(0x04) run_to_pad(PAD_DAM_0096) restart_timer beginloop(0x00) if_timer_gt(1200, /*goto*/ 0x08) if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0b) label(0x07) if_chr_stopped(/*goto*/ 0x04) endloop(0x00) label(0x08) goto_first(0x12) label(0x07) goto_first(0x03) label(0x04) stop_chr beginloop(0x0c) if_enemy_distance_lt_and_los(2540, /*goto*/ 0x0b) label(0x07) endloop(0x0c) label(0x0b) call_rng if_rand_lt(85, /*goto*/ 0x3b) if_rand_lt(170, /*goto*/ 0x3c) say_quip(CHR_BOND, 0x26, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) goto_next(0x07) label(0x3b) say_quip(CHR_BOND, 0x27, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) goto_next(0x07) label(0x3c) say_quip(CHR_BOND, 0x28, 0xff, 0x03, 0xff, BANK_1, 0x00, 0x00) label(0x07) set_shotlist(AILIST_ELVIS_LEADING) set_returnlist(CHR_SELF, AILIST_ELVIS_LEADING) set_ailist(CHR_SELF, GAILIST_COMBAT_WITH_TARGET) endlist }; u8 func101c_check_elvis_dead[] = { beginloop(0x00) if_chr_deadish(CHR_ELVIS, /*goto*/ 0x07) endloop(0x00) label(0x07) show_hudmsg(CHR_BOND, L_DAM_033) // "Elvis has been killed." set_stage_flag(STAGEFLAG_ELVIS_DEAD) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func0418_elvis_at_moonpool[] = { // @bug? If Elvis has enough health, and you can shoot him before he talks, // he'll jump straight to leading the way without enabling AIVSAI on // everyone. This may allow him to run past guards without engaging in // combat. set_shotlist(AILIST_ELVIS_LEADING) beginloop(0x00) chr_toggle_p1p2(CHR_SELF) set_target_chr(CHR_P1P2) if_can_see_target(/*goto*/ 0x07) endloop(0x00) label(0x07) if_chr_deadish(CHR_SELF, /*goto*/ 0x07) do_preset_animation(PRESETANIM_TALKRANDOM) set_stage_flag(STAGEFLAG_MET_ELVIS) speak(CHR_P1P2, L_DAM_034, SFX_81A4, CHANNEL_6, COLOR_06_WHITE) // "Joanna... What took you so long? Follow me - let's..." beginloop(0x0b) if_sound_finished(CHANNEL_6, /*goto*/ 0x07) endloop(0x0b) label(0x07) set_ailist(CHR_SELF, AILIST_ELVIS_PREPARE_LEADING) endlist }; u8 func0417_elvis_prepare_leading[] = { // Allow all other chrs to engage in combat with Elvis set_chr_flag_bankx(0x03, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x04, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x05, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x06, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x07, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x08, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x09, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x0a, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x0b, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x0c, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x0d, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x0e, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x0f, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x10, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x11, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x12, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x13, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x14, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x15, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x16, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x17, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x18, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x19, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x1a, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x1b, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x1c, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x1d, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x1e, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x1f, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x20, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x21, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x22, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x23, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x24, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x25, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x26, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x27, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x28, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x29, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x2a, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x2b, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x2c, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x2d, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x2e, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x2f, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x30, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x31, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x32, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x33, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x34, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x35, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x36, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x37, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x38, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x39, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x3a, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x3b, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(CHR_PILOT1, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x3d, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(CHR_PILOT2, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(CHR_PILOT3, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x40, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x41, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x42, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x43, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x44, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x45, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x46, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x47, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x48, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x49, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x4a, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x4b, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x4c, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x4d, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x51, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x52, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x53, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x54, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x55, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x56, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x57, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x58, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x59, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x5a, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x5b, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x5c, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x5d, CHRFLAG0_AIVSAI, BANK_0) set_chr_flag_bankx(0x5e, CHRFLAG0_AIVSAI, BANK_0) set_ailist(CHR_SELF, AILIST_ELVIS_LEADING) endlist }; u8 func101d_alarm_switches[] = { beginloop(0x00) chr_toggle_p1p2(CHR_SELF) if_chr_activated_object(CHR_P1P2, 0x21, /*goto*/ 0x07) if_chr_activated_object(CHR_P1P2, 0x22, /*goto*/ 0x07) if_chr_activated_object(CHR_P1P2, 0x23, /*goto*/ 0x07) if_chr_activated_object(CHR_P1P2, 0x24, /*goto*/ 0x07) if_chr_activated_object(CHR_P1P2, 0x25, /*goto*/ 0x07) endloop(0x00) label(0x07) if_alarm_active(/*goto*/ 0x07) activate_alarm show_hudmsg(CHR_P1P2, L_DAM_037) // "Alarm has been activated." goto_next(0x0c) label(0x07) deactivate_alarm show_hudmsg(CHR_BOND, L_DAM_038) // "Alarm has been deactivated." goto_next(0x0c) label(0x0c) restart_timer beginloop(0x0d) if_timer_gt(120, /*goto*/ 0x07) endloop(0x0d) label(0x07) goto_first(0x00) // Unreachable set_ailist(CHR_SELF, AILIST_ELVIS_LEADING) endlist }; u8 func101e_alarm_images[] = { beginloop(0x00) if_alarm_active(/*goto*/ 0x07) endloop(0x00) label(0x07) set_object_flag(0x27, OBJFLAG_UNCOLLECTABLE) set_object_flag(0x28, OBJFLAG_UNCOLLECTABLE) set_object_flag2(0x27, OBJFLAG2_INVISIBLE) set_object_flag2(0x28, OBJFLAG2_INVISIBLE) set_object_image(0x21, 0, TVCMDLIST_0F) set_object_image(0x22, 0, TVCMDLIST_0F) set_object_image(0x23, 0, TVCMDLIST_0F) set_object_image(0x24, 0, TVCMDLIST_0F) set_object_image(0x25, 0, TVCMDLIST_0F) beginloop(0x0b) if_alarm_active(/*goto*/ 0x07) goto_next(0x04) label(0x07) endloop(0x0b) label(0x04) set_object_image(0x21, 0, TVCMDLIST_14) set_object_image(0x22, 0, TVCMDLIST_14) set_object_image(0x23, 0, TVCMDLIST_14) set_object_image(0x24, 0, TVCMDLIST_14) set_object_image(0x25, 0, TVCMDLIST_14) goto_first(0x00) endlist }; u8 func101f_unlock_doors[] = { if_difficulty_lt(DIFF_SA, /*goto*/ 0x0b) if_difficulty_lt(DIFF_PA, /*goto*/ 0x0c) // PA unlock_door(0x2c, 0x80) unlock_door(0x2d, 0x80) // SA + PA label(0x0c) unlock_door(0x29, 0x80) unlock_door(0x2a, 0x80) unlock_door(0x2b, 0x80) // A + SA + PA label(0x0b) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1020_setup_rtracker[] = { yield set_object_flag3(0x27, OBJFLAG3_RTRACKED_BLUE) set_object_flag3(0x28, OBJFLAG3_RTRACKED_BLUE) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; u8 func1421_setup_environment[] = { yield configure_environment(0x0060, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x0061, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x0063, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x0064, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x0064, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x0065, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x0067, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x0067, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x0068, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x0068, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x0069, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x0069, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x006a, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x006a, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x006b, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x006b, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x006d, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x006d, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x006e, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x006e, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x006f, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x006f, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x0070, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x0070, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x0071, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x0071, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x0072, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x0072, AIENVCMD_ROOM_SETOUTDOORS, TRUE) configure_environment(0x0073, AIENVCMD_ROOM_SETAMBIENT, TRUE) configure_environment(0x0077, AIENVCMD_ROOM_SETAMBIENT, TRUE) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; struct ailist ailists[] = { { func1400_setup_counterop, 0x1400 }, { func1001_objectives_failed_msg, 0x1001 }, { func1002_intro, 0x1002 }, { func1004_msg_controlledfrom, 0x1004 }, { func1005_msg_withoutautopilot, 0x1005 }, { func1006_msg_conductoperations, 0x1006 }, { func1009_open_reactor_hatch, 0x1009 }, { func100a_reactor_switch, 0x100a }, { func100b_check_diving_area_located, 0x100b }, { func100c_check_end_level, 0x100c }, { func100e_check_labtech_dead, 0x100e }, { func100f_check_researchdata_collected, 0x100f }, { func1010_alarm_responders, 0x1010 }, { func1011_check_pilots_dead, 0x1011 }, { func1012_choose_angry_pilot, 0x1012 }, { func1013_lift_switch, 0x1013 }, { func1014_moonpool_switch, 0x1014 }, { func1015_shuffle_hatchswitches, 0x1015 }, { func1016_hatchswitch1, 0x1016 }, { func1017_hatchswitch2, 0x1017 }, { func1018_hatchswitch3, 0x1018 }, { func1019_hatchswitch4, 0x1019 }, { func101a_badhatchswitches, 0x101a }, { func101b_reactor_hum, 0x101b }, { func101c_check_elvis_dead, 0x101c }, { func101d_alarm_switches, 0x101d }, { func101e_alarm_images, 0x101e }, { func101f_unlock_doors, 0x101f }, { func1020_setup_rtracker, 0x1020 }, { func1421_setup_environment, 0x1421 }, { func1002_intro, 0x0c00 }, { func0c01_outro, 0x0c01 }, { func0408_guard_unalerted, 0x0408 }, { func0405_start_path00, 0x0405 }, { func0401_pilot, 0x0401 }, { func0402_init_pilot, 0x0402 }, { func0401_pilot_dying, 0x0403 }, { func0404_angry_pilot, 0x0404 }, { func0c01_outro, 0x0414 }, { func0415_elvis_at_start, 0x0415 }, { func0416_elvis_leading, 0x0416 }, { func0417_elvis_prepare_leading, 0x0417 }, { func0418_elvis_at_moonpool, 0x0418 }, { func0406_start_path01, 0x0406 }, { func0407_start_path02, 0x0407 }, { func0409_start_path03, 0x0409 }, { func040a_start_path04, 0x040a }, { func040b_labtech1, 0x040b }, { func040c_labtech2, 0x040c }, { func040d_labtech3, 0x040d }, { func040e_init_labtech1, 0x040e }, { func040f_init_labtech2, 0x040f }, { func0410_init_labtech3, 0x0410 }, { func0411_labtech_alerted, 0x0411 }, { func0412_hide, 0x0412 }, { func0413_guard_alerted, 0x0413 }, { NULL, 0 }, };