perfect_dark/src/ailists/setuplip.c

5042 lines
210 KiB
C

//
// Rescue
//
#include "stagesetup.h"
// Characters
#define CHR_ALIEN 0x38
#define CHR_DOORMAN 0x39
#define CHR_LABTECH_RECORDS 0x3a
#define CHR_LABTECH_LIGHTS 0x3b
#define CHR_LABTECH_DOORS1 0x3c
#define CHR_LABTECH_SHOWERS 0x3d
#define CHR_LABTECH_HARRYSMATE 0x3e
#define CHR_LABTECH_KEYCARDGUY 0x3f
#define CHR_BIOTECH1 0x40
#define CHR_BIOTECH2 0x41
#define CHR_LABTECH_DOORS2 0x42
#define CHR_MECHANIC 0x43
#define CHR_JONATHAN 0x48
#define CHR_INTRO_DEAD_GUARD 0x49
// Objects
#define OBJ_LABCOAT1 0x00
#define OBJ_DOOR_TERMINAL 0x02
#define OBJ_DATAUPLINK_BOND 0x05
#define OBJ_KEYCARD 0x06
#define OBJ_CRATE 0x17
#define OBJ_WALL 0x18
#define OBJ_AUTOGUN 0x19
#define OBJ_CHAMBER1 0x1a
#define OBJ_CHAMBER2 0x1b
#define OBJ_CHAMBER3 0x1c
#define OBJ_CHAMBER4 0x1d
#define OBJ_CHAMBER5 0x1e
#define OBJ_CHAMBER6 0x1f
#define OBJ_CHAMBER7 0x20
#define OBJ_CHAMBER8 0x21
#define OBJ_CHAMBER1_SWITCH 0x22
#define OBJ_CHAMBER2_SWITCH 0x23
#define OBJ_CHAMBER3_SWITCH 0x24
#define OBJ_CHAMBER4_SWITCH 0x25
#define OBJ_CHAMBER5_SWITCH 0x26
#define OBJ_CHAMBER6_SWITCH 0x27
#define OBJ_CHAMBER7_SWITCH 0x28
#define OBJ_CHAMBER8_SWITCH 0x29
#define OBJ_DATAUPLINK_COOP 0x3a
#define OBJ_LABCOAT2 0x3e
#define OBJ_LABCOAT3 0x3f
#define OBJ_LABCOAT4 0x40
#define OBJ_LABCOAT5 0x41
#define OBJ_FALCON2SILENCED1 0x4c
#define OBJ_FALCON2SILENCED2 0x4d
#define OBJ_PHOENIX 0x4e
// Stage flags
#define STAGEFLAG_CHAMBER4_RAISED 0x00000001
#define STAGEFLAG_CHAMBER5_RAISED 0x00000002
#define STAGEFLAG_CHAMBER6_RAISED 0x00000004
#define STAGEFLAG_CHAMBER7_RAISED 0x00000008
#define STAGEFLAG_CHAMBER8_RAISED 0x00000010
#define STAGEFLAG_LOOKING_AT_CHAMBER 0x00000020
#define STAGEFLAG_ONE_KEYCARD_GUARD_REMAINING 0x00000040
#define STAGEFLAG_UPLINK_TERMINAL_DESTROYED 0x00000080
#define STAGEFLAG_USED_DISGUISE 0x00000100
#define STAGEFLAG_RECORDS_DESTROYED 0x00000200
#define STAGEFLAG_DOOR_VIRUS_DOWNLOADED 0x00000400
#define STAGEFLAG_LIGHT_VIRUS_DONE 0x00000800
#define STAGEFLAG_AUTOGUN_VIRUS_DONE 0x00001000
#define STAGEFLAG_ENTERED_LAB 0x00002000
#define STAGEFLAG_DISGUISE_UNCOVERED 0x00010000
#define STAGEFLAG_LABTECH_DEAD 0x00020000
#define STAGEFLAG_DOORMAN_REJECTED 0x00040000
#define STAGEFLAG_DOORMAN_DEAD 0x00080000
#define STAGEFLAG_KEYCARDGUY_ANGRY 0x00100000
#define STAGEFLAG_ENTERED_ELVIS_AREA 0x00200000
#define STAGEFLAG_RESCUED_ELVIS 0x00400000
#define STAGEFLAG_ELVIS_DEAD 0x00800000
#define STAGEFLAG_XRAY_DONE 0x01000000
#define STAGEFLAG_CHAMBER_SWITCH_DESTROYED 0x02000000
#define STAGEFLAG_CRATE_DESTROYED 0x08000000
#define STAGEFLAG_AUTOGUN_ACTIVATED 0x10000000
#define STAGEFLAG_CHAMBER1_RAISED 0x20000000
#define STAGEFLAG_CHAMBER2_RAISED 0x40000000
#define STAGEFLAG_CHAMBER3_RAISED 0x80000000
// AI Lists
#define AILIST_LABTECH_SA_PA 0x0410
#define AILIST_LABTECH_AGENT 0x0411
#define AILIST_INIT_LABTECH 0x0412
#define AILIST_MECHANIC 0x0413
#define AILIST_INIT_MECHANIC 0x0414
#define AILIST_WAREHOUSE_SPAWNER 0x0415
#define AILIST_BECOME_UNAWARE 0x0416
#define AILIST_WAREHOUSE_CLONE 0x0417
#define AILIST_DOORMAN 0x0418
#define AILIST_INIT_DOORMAN 0x0419
#define AILIST_LABTECH_HARRYSMATE 0x041a
#define AILIST_LABTECH_KEYCARDGUY 0x041b
#define AILIST_LABTECH_LIGHTS 0x041f
#define AILIST_LABTECH_DOORS 0x0420
#define AILIST_INIT_LABTECH_DOORS 0x0421
#define AILIST_LABTECH_RECORDS 0x0422
#define AILIST_INIT_LABTECH_RECORDS 0x0423
#define AILIST_ALIEN 0x0424
#define AILIST_HIDDENGUY 0x0425
#define AILIST_CHECK_LOOKING_AT_ALIEN 0x0426
#define AILIST_SHOCK_CLONE 0x0427
#define AILIST_OUTRO 0x0428
#define AILIST_DRAGON_GUARD 0x042c
#define AILIST_SUPERDRAGON_GUARD 0x042d
#define AILIST_BIOTECH_GUARD 0x042e
#define AILIST_BIOTECH_GUARD_ALERTED 0x042f
#define AILIST_BIOTECH2 0x0430
#define AILIST_BIOTECH1 0x0431
#define AILIST_INIT_BIOTECH1 0x0432
#define AILIST_INIT_BIOTECH2 0x0433
enum labelnum {
LABEL_2D = (VERSION >= VERSION_NTSC_1_0 ? 0x2d : 0x2c),
LABEL_2E,
LABEL_2F,
LABEL_30,
LABEL_31,
LABEL_32,
LABEL_33,
LABEL_34,
LABEL_35,
LABEL_36,
LABEL_37,
LABEL_38,
LABEL_39,
LABEL_3A,
LABEL_3B,
LABEL_3C,
LABEL_3D,
LABEL_3E,
LABEL_3F,
LABEL_40,
LABEL_41,
LABEL_42,
LABEL_43,
LABEL_44,
LABEL_45,
LABEL_46,
LABEL_47,
LABEL_48,
LABEL_49,
LABEL_4A,
LABEL_4B,
LABEL_4C,
LABEL_4D,
LABEL_4E,
LABEL_4F,
LABEL_50,
LABEL_51,
LABEL_52,
LABEL_53,
LABEL_54,
LABEL_55,
LABEL_56,
LABEL_57,
LABEL_58,
LABEL_59,
LABEL_5A,
LABEL_5B,
LABEL_5C,
LABEL_5D,
LABEL_5E,
LABEL_5F,
LABEL_60,
LABEL_61,
LABEL_62,
LABEL_63,
LABEL_64,
LABEL_65,
LABEL_66,
LABEL_67,
LABEL_68,
LABEL_69,
LABEL_6A,
LABEL_6B,
LABEL_6C,
LABEL_6D,
LABEL_6E,
LABEL_6F,
LABEL_70,
LABEL_71,
LABEL_72,
LABEL_73,
LABEL_74,
LABEL_75,
LABEL_76,
LABEL_77,
LABEL_78,
LABEL_79,
LABEL_7A,
LABEL_7B,
LABEL_7C,
LABEL_7D,
LABEL_7E,
LABEL_7F,
LABEL_80,
LABEL_81,
LABEL_82,
LABEL_83,
LABEL_84,
LABEL_85,
LABEL_86,
LABEL_87,
LABEL_88,
LABEL_89,
LABEL_8A,
LABEL_8B,
LABEL_8C,
LABEL_8D,
LABEL_8E,
LABEL_8F,
LABEL_90,
LABEL_91,
LABEL_92,
LABEL_93,
LABEL_94,
LABEL_95,
LABEL_96,
LABEL_97,
LABEL_98,
LABEL_99,
LABEL_9A,
LABEL_9B,
LABEL_9C,
LABEL_9D,
LABEL_9E,
LABEL_9F,
LABEL_A0,
LABEL_A1,
LABEL_A2,
LABEL_A3,
LABEL_A4,
LABEL_A5,
LABEL_A6,
LABEL_A7,
LABEL_A8,
LABEL_A9,
LABEL_AA,
LABEL_AB,
LABEL_AC,
LABEL_AD,
LABEL_AE,
LABEL_AF,
LABEL_B0,
LABEL_B1,
LABEL_B2,
LABEL_B3,
LABEL_B4,
LABEL_B5,
LABEL_B6,
LABEL_B7,
LABEL_B8,
LABEL_B9,
LABEL_BA,
LABEL_BB,
LABEL_BC,
LABEL_BD,
LABEL_BE,
LABEL_BF,
LABEL_C0,
LABEL_C1,
LABEL_C2,
LABEL_C3,
LABEL_C4,
LABEL_C5,
LABEL_C6,
LABEL_C7,
LABEL_C8,
LABEL_C9,
LABEL_CA,
LABEL_CB,
LABEL_CC,
LABEL_CD,
LABEL_CE,
LABEL_CF,
LABEL_D0,
LABEL_D1,
LABEL_D2,
LABEL_D3,
LABEL_D4,
LABEL_D5,
LABEL_D6,
LABEL_D7,
LABEL_D8,
LABEL_D9,
LABEL_DA,
LABEL_DB,
LABEL_DC,
LABEL_DD,
LABEL_DE,
LABEL_DF,
LABEL_E0,
LABEL_E1,
LABEL_E2,
LABEL_E3,
LABEL_E4,
LABEL_E5,
LABEL_E6,
LABEL_E7,
LABEL_E8,
LABEL_E9,
LABEL_EA,
LABEL_EB,
LABEL_EC,
LABEL_ED,
LABEL_EE,
LABEL_EF,
LABEL_F0,
LABEL_F1,
LABEL_F2,
LABEL_F3,
LABEL_F4,
LABEL_F5,
LABEL_F6
};
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_LIP_001)
briefing(BRIEFINGTYPE_TEXT_PA, L_LIP_000)
briefing(BRIEFINGTYPE_TEXT_SA, L_LIP_002)
briefing(BRIEFINGTYPE_TEXT_A, L_LIP_003)
beginobjective(0, L_LIP_010, (DIFFBIT_PA | DIFFBIT_PD)) // "Destroy computer records"
complete_flags(STAGEFLAG_RECORDS_DESTROYED)
fail_flags(STAGEFLAG_UPLINK_TERMINAL_DESTROYED)
endobjective
beginobjective(1, L_LIP_011, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Locate conspiracy evidence"
complete_flags(STAGEFLAG_XRAY_DONE)
fail_flags(STAGEFLAG_CHAMBER_SWITCH_DESTROYED)
endobjective
beginobjective(2, L_LIP_009, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Obtain and use lab technician disguise"
complete_flags(STAGEFLAG_USED_DISGUISE)
fail_flags(STAGEFLAG_DISGUISE_UNCOVERED)
endobjective
beginobjective(3, L_LIP_012, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Gain access to autopsy lab"
complete_flags(STAGEFLAG_ENTERED_LAB)
require_object_collected(OBJ_KEYCARD)
fail_flags(STAGEFLAG_DOORMAN_REJECTED)
fail_flags(STAGEFLAG_DOORMAN_DEAD)
endobjective
beginobjective(4, L_LIP_013, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Rescue the crash Survivor"
complete_flags(STAGEFLAG_RESCUED_ELVIS)
fail_flags(STAGEFLAG_ELVIS_DEAD)
fail_flags(STAGEFLAG_CRATE_DESTROYED)
endobjective
chr(SPAWNFLAG_00000200, 0x00, PAD_LIP_039F, BODY_A51AIRMAN, HEAD_RANDOM, 0x0401, -1, -1, 1000, 20, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00008000 | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0000, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x01, PAD_LIP_03A2, BODY_A51AIRMAN, HEAD_RANDOM, 0x0402, -1, -1, 1000, 20, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00008000 | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0001, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x02, PAD_LIP_03A3, BODY_A51AIRMAN, HEAD_RANDOM, 0x0403, -1, -1, 1000, 20, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00008000 | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0002, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x03, PAD_LIP_03A4, BODY_A51AIRMAN, HEAD_RANDOM, 0x0404, -1, -1, 1000, 20, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00008000 | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0003, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x04, PAD_LIP_03A5, BODY_A51AIRMAN, HEAD_RANDOM, 0x0405, -1, -1, 1000, 20, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00008000 | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0004, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x05, PAD_LIP_0386, BODY_A51AIRMAN, HEAD_RANDOM, AILIST_DRAGON_GUARD, -1, -1, 2000, 20, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00008000 | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0005, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x06, PAD_LIP_0387, BODY_A51AIRMAN, HEAD_RANDOM, AILIST_DRAGON_GUARD, -1, -1, 2000, 20, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00008000 | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0006, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x07, PAD_LIP_03A7, BODY_A51AIRMAN, HEAD_RANDOM, AILIST_DRAGON_GUARD, -1, -1, 1000, 20, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0007, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x08, PAD_LIP_03A6, BODY_A51AIRMAN, HEAD_RANDOM, AILIST_DRAGON_GUARD, -1, -1, 1000, 20, CHRFLAG0_CAN_RETREAT | CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00008000 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0008, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x09, PAD_LIP_03A8, BODY_A51AIRMAN, HEAD_RANDOM, AILIST_DRAGON_GUARD, -1, -1, 1000, 20, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0009, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x0a, PAD_LIP_03CB, BODY_A51AIRMAN, HEAD_RANDOM, AILIST_DRAGON_GUARD, -1, -1, 1000, 20, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x000a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x0b, PAD_LIP_03A9, BODY_A51AIRMAN, HEAD_RANDOM, AILIST_DRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x000b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x0c, PAD_LIP_03AA, BODY_A51AIRMAN, HEAD_RANDOM, 0x0406, -1, -1, 1000, 100, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x000c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x0d, PAD_LIP_01BB, BODY_A51AIRMAN, HEAD_RANDOM, 0x0406, -1, -1, 1000, 100, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x000d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x0e, PAD_LIP_01BC, BODY_A51AIRMAN, HEAD_RANDOM, 0x0406, -1, -1, 1000, 100, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x000e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_00000200, 0x0f, PAD_LIP_03AB, BODY_AREA51GUARD, HEAD_RANDOM, 0x0407, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x000f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x10, PAD_LIP_03AC, BODY_AREA51GUARD, HEAD_RANDOM, 0x0408, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0010, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x11, PAD_LIP_03AE, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0011, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_BLUESIGHT, 0x3a, PAD_LIP_03AF, BODY_LABTECH, HEAD_RANDOM, AILIST_INIT_LABTECH_RECORDS, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0)
chr(SPAWNFLAG_00000200, 0x27, PAD_LIP_03BF, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 100, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0027, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x28, PAD_LIP_03C0, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 100, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0028, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x12, PAD_LIP_03B1, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0012, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_FIXEDHEIGHT | SPAWNFLAG_BLUESIGHT, 0x3b, PAD_LIP_03D8, BODY_LABTECH, HEAD_RANDOM, AILIST_LABTECH_LIGHTS, -1, -1, 1000, 6, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_06, 0x3b, 0, 0, 1, 0, 0)
chr(SPAWNFLAG_00000200, 0x13, PAD_LIP_03B2, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0013, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_BLUESIGHT, 0x3c, PAD_LIP_03C9, BODY_LABTECH, HEAD_RANDOM, AILIST_INIT_LABTECH_DOORS, 0x03c8, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_20, SQUADRON_07, -1, 0, 0, 0, 0, 0)
chr(SPAWNFLAG_BLUESIGHT, 0x42, PAD_LIP_03B3, BODY_LABTECH, HEAD_RANDOM, AILIST_INIT_LABTECH_DOORS, 0x03c9, -1, 1000, 100, CHRFLAG0_GP1 | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_20, SQUADRON_07, -1, 0, 0, 0, 0, 0)
chr(SPAWNFLAG_00000200, 0x14, PAD_LIP_00F7, BODY_AREA51GUARD, HEAD_RANDOM, 0x0409, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0014, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x15, PAD_LIP_00F0, BODY_AREA51GUARD, HEAD_RANDOM, 0x040a, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0015, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_BLUESIGHT, 0x3d, PAD_LIP_03B4, BODY_LABTECH, HEAD_RANDOM, AILIST_INIT_LABTECH, -1, -1, 1000, 100, 0, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
chr(SPAWNFLAG_00000200, 0x18, PAD_LIP_00C7, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_09, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0018, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x1e, PAD_LIP_0130, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, 0x0132, -1, 1000, 100, CHRFLAG0_GP1 | CHRFLAG0_CAN_RETREAT | CHRFLAG0_00008000 | CHRFLAG0_CAN_TRAP | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x19, PAD_LIP_0131, BODY_BIOTECH, HEAD_BIOTECH, AILIST_BIOTECH_GUARD, 0x0136, -1, 1000, 100, CHRFLAG0_GP1 | CHRFLAG0_CAN_RETREAT | CHRFLAG0_00008000 | CHRFLAG0_CAN_TRAP | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRUGGUN, 0x0019, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_TRANQUILIZER)
chr(SPAWNFLAG_00000200, 0x1a, PAD_LIP_013B, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, 0x013c, -1, 1000, 100, CHRFLAG0_GP1 | CHRFLAG0_CAN_RETREAT | CHRFLAG0_00008000 | CHRFLAG0_CAN_TRAP | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x1d, PAD_LIP_0137, BODY_BIOTECH, HEAD_BIOTECH, AILIST_BIOTECH_GUARD, 0x013a, -1, 1000, 100, CHRFLAG0_GP1 | CHRFLAG0_CAN_RETREAT | CHRFLAG0_00008000 | CHRFLAG0_CAN_TRAP | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRUGGUN, 0x001d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_TRANQUILIZER)
chr(SPAWNFLAG_00000200, 0x1b, PAD_LIP_0123, BODY_AREA51GUARD, HEAD_RANDOM, 0x040b, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0C, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x1c, PAD_LIP_0124, BODY_AREA51GUARD, HEAD_RANDOM, 0x040c, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0C, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(0, 0x3e, PAD_LIP_03C1, BODY_LABTECH, HEAD_RANDOM, AILIST_LABTECH_HARRYSMATE, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST, 0, TEAM_ENEMY, SQUADRON_0C, -1, 0, 0, 0, 0, 0)
chr(0, 0x3f, PAD_LIP_03C2, BODY_LABTECH, HEAD_RANDOM, AILIST_LABTECH_KEYCARDGUY, -1, -1, 1000, 15, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST, 0, TEAM_ENEMY, SQUADRON_0C, -1, 0, 0, 0, 0, 0)
chr(SPAWNFLAG_ANTINONINTERACTABLE, 0x39, PAD_LIP_0121, BODY_AREA51GUARD, HEAD_BEAU1, AILIST_INIT_DOORMAN, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0C, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0039, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x33, PAD_LIP_03CC, BODY_BIOTECH, HEAD_BIOTECH, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRUGGUN, 0x0033, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_TRANQUILIZER)
chr(SPAWNFLAG_00000200, 0x34, PAD_LIP_03CD, BODY_BIOTECH, HEAD_BIOTECH, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRUGGUN, 0x0034, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_TRANQUILIZER)
chr(SPAWNFLAG_00000200, 0x37, PAD_LIP_03D0, BODY_AREA51GUARD, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0037, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x2c, PAD_LIP_03D1, BODY_AREA51GUARD, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x002c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x2d, PAD_LIP_03D2, BODY_AREA51GUARD, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x002d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x2e, PAD_LIP_03D3, BODY_AREA51GUARD, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x002e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x2f, PAD_LIP_03D4, BODY_BIOTECH, HEAD_BIOTECH, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0F, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRUGGUN, 0x002f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_TRANQUILIZER)
chr(SPAWNFLAG_00000200, 0x30, PAD_LIP_03D5, BODY_AREA51GUARD, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0F, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0030, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x31, PAD_LIP_03D6, BODY_AREA51GUARD, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0F, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0031, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x32, PAD_LIP_03D7, BODY_AREA51GUARD, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0F, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0032, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x1f, PAD_LIP_03B5, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_HOLD_POSITION | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_ENEMY, SQUADRON_0D, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x001f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x20, PAD_LIP_03B6, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_HOLD_POSITION | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_ENEMY, SQUADRON_0D, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0020, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x21, PAD_LIP_03B7, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_HOLD_POSITION | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_ENEMY, SQUADRON_0D, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0021, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_00000200, 0x22, PAD_LIP_03B8, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_HOLD_POSITION | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ALLOWSOFTCOVER, TEAM_ENEMY, SQUADRON_0D, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0022, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
#if VERSION >= VERSION_NTSC_1_0
chr(0, 0x23, PAD_LIP_03B9, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
#else
chr(SPAWNFLAG_00000200, 0x23, PAD_LIP_03B9, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
#endif
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0023, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
#if VERSION >= VERSION_NTSC_1_0
chr(0, 0x24, PAD_LIP_03BA, BODY_BIOTECH, HEAD_BIOTECH, AILIST_BIOTECH_GUARD, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
#else
chr(SPAWNFLAG_00000200, 0x24, PAD_LIP_03BA, BODY_BIOTECH, HEAD_BIOTECH, AILIST_BIOTECH_GUARD, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
#endif
weapon(0x0100, MODEL_CHRDRUGGUN, 0x0024, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_TRANQUILIZER)
#if VERSION >= VERSION_NTSC_1_0
chr(0, 0x25, PAD_LIP_03BB, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
#else
chr(SPAWNFLAG_00000200, 0x25, PAD_LIP_03BB, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
#endif
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0025, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
#if VERSION >= VERSION_NTSC_1_0
chr(0, 0x26, PAD_LIP_03BC, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
#else
chr(SPAWNFLAG_00000200, 0x26, PAD_LIP_03BC, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_SUPERDRAGON_GUARD, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
#endif
weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0026, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON)
chr(SPAWNFLAG_ANTINONINTERACTABLE, 0x40, PAD_LIP_03BE, BODY_BIOTECH, HEAD_BIOTECH, AILIST_INIT_BIOTECH1, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000, 0, TEAM_NONCOMBAT, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSONICSCREWER, 0x0040, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_UNCOLLECTABLE, 0, 0, WEAPON_SCREWDRIVER)
chr(SPAWNFLAG_ANTINONINTERACTABLE, 0x41, PAD_LIP_03DC, BODY_BIOTECH, HEAD_BIOTECH, AILIST_INIT_BIOTECH2, -1, -1, 1000, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000, 0, TEAM_NONCOMBAT, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRSONICSCREWER, 0x0041, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_UNCOLLECTABLE, 0, 0, WEAPON_SCREWDRIVER)
chr(SPAWNFLAG_BLUESIGHT, 0x43, PAD_LIP_01DE, BODY_OVERALL, HEAD_RANDOM, AILIST_INIT_MECHANIC, -1, -1, 1000, 5, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
tag(0x2f, 1)
hover_prop(0x0100, MODEL_HOVERBED, PAD_LIP_03BD, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_01000000 | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, OBJFLAG3_PUSHABLE | OBJFLAG3_GRABBABLE | OBJFLAG3_HOVERBEDSHIELD, 1000, 0x00010000)
chr(0, 0x44, PAD_LIP_0196, BODY_A51AIRMAN, HEAD_RANDOM, AILIST_HIDDENGUY, -1, -1, 1000, 100, CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0044, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(0, 0x47, PAD_LIP_0119, BODY_AREA51GUARD, HEAD_RANDOM, 0x0429, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDRAGON, 0x0047, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
chr(SPAWNFLAG_ANTINONINTERACTABLE, 0x48, PAD_LIP_020A, BODY_A51AIRMAN, HEAD_JONATHAN, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDY357, 0x0048, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DY357MAGNUM)
chr(SPAWNFLAG_ANTINONINTERACTABLE, 0x49, PAD_LIP_0197, BODY_A51AIRMAN, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0)
chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_FIXEDHEIGHT, 0x38, PAD_LIP_0134, BODY_ELVIS1, HEAD_ELVIS, AILIST_ALIEN, -1, -1, 2000, 100, CHRFLAG0_SURPRISABLE | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_NONCOMBAT, SQUADRON_09, 0x1a, 0, 0, 1, 0, 0)
door_scale(0x00008000)
tag(0x35, 1)
lift(0x0100, MODEL_A51_LIFT_STORE, PAD_LIP_0334, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x0334, 0x0335, -1, -1, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000)
door(0x0100, MODEL_A51LIFTDOOR, PAD_LIP_02E2, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, OBJFLAG3_80000000, 1000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000300)
door(0x0100, MODEL_A51LIFTDOOR, PAD_LIP_02E1, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, OBJFLAG3_80000000, 1000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000300)
lift_door(-2, -3, 0)
lift_door(-2, -4, 1)
tag(0x39, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_LIP_0336, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x0336, 0x0337, -1, -1, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000)
door(0x0100, MODEL_A51LIFTDOOR, PAD_LIP_02E4, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, OBJFLAG3_80000000, 1000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, DOORFLAG_FLIP, DOORTYPE_SLIDING, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000300)
door(0x0100, MODEL_A51LIFTDOOR, PAD_LIP_02E3, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, OBJFLAG3_80000000, 1000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, DOORFLAG_FLIP, DOORTYPE_SLIDING, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000300)
lift_door(-2, -3, 0)
lift_door(-2, -4, 1)
door_scale(0x00010000)
tag(0x00, 1)
weapon(0x0180, MODEL_LABCOAT, PAD_LIP_042B, OBJFLAG_00000001, 0, 0, WEAPON_DISGUISE40)
rename_object(-1, WEAPON_DISGUISE40, L_LIP_015, L_LIP_016, L_LIP_017, L_LIP_018, L_LIP_019) // "Obtain lab clothes."
tag(0x3e, 1)
weapon(0x0180, MODEL_LABCOAT, PAD_LIP_042C, OBJFLAG_00000001, 0, 0, WEAPON_DISGUISE40)
rename_object(-1, WEAPON_DISGUISE40, L_LIP_015, L_LIP_016, L_LIP_017, L_LIP_018, L_LIP_019) // "Obtain lab clothes."
tag(0x3f, 1)
weapon(0x0180, MODEL_LABCOAT, PAD_LIP_042D, OBJFLAG_00000001, 0, 0, WEAPON_DISGUISE40)
rename_object(-1, WEAPON_DISGUISE40, L_LIP_015, L_LIP_016, L_LIP_017, L_LIP_018, L_LIP_019) // "Obtain lab clothes."
tag(0x40, 1)
weapon(0x0180, MODEL_LABCOAT, PAD_LIP_042E, OBJFLAG_00000001, 0, 0, WEAPON_DISGUISE40)
rename_object(-1, WEAPON_DISGUISE40, L_LIP_015, L_LIP_016, L_LIP_017, L_LIP_018, L_LIP_019) // "Obtain lab clothes."
tag(0x41, 1)
weapon(0x0180, MODEL_LABCOAT, PAD_LIP_042F, OBJFLAG_00000001, 0, 0, WEAPON_DISGUISE40)
rename_object(-1, WEAPON_DISGUISE40, L_LIP_015, L_LIP_016, L_LIP_017, L_LIP_018, L_LIP_019) // "Obtain lab clothes."
tag(0x03, 1)
singlemonitor(0x0033, MODEL_SINISTERSTATION, PAD_LIP_0428, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3)
tag(0x02, 1)
singlemonitor(0x0033, MODEL_SINISTERSTATION, PAD_LIP_0427, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3)
tag(0x01, 1)
singlemonitor(0x0033, MODEL_SINISTERSTATION, PAD_LIP_0429, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3)
tag(0x04, 1)
singlemonitor(0x0033, MODEL_SINISTERSTATION, PAD_LIP_0426, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3)
tag(0x05, 1)
weapon(0x0180, MODEL_CHRDATATHIEF, PAD_LIP_00DA, OBJFLAG_00000001 | OBJFLAG_UNCOLLECTABLE, OBJFLAG2_INVISIBLE, 0, WEAPON_DATAUPLINK)
rename_object(-1, WEAPON_DATAUPLINK, L_LIP_024, L_LIP_025, L_LIP_026, L_LIP_027, L_LIP_028) // "Obtain Data Uplink."
tag(0x3a, 1)
weapon(0x0180, MODEL_CHRDATATHIEF, PAD_LIP_00DA, OBJFLAG_00000001 | OBJFLAG_UNCOLLECTABLE, OBJFLAG2_INVISIBLE, 0, WEAPON_DATAUPLINK)
rename_object(-1, WEAPON_DATAUPLINK, L_LIP_024, L_LIP_025, L_LIP_026, L_LIP_027, L_LIP_028) // "Obtain Data Uplink."
tag(0x3c, 2)
tag(0x3d, 2)
singlemonitor(0x0033, MODEL_SINISTERSTATION, PAD_LIP_03C6, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
singlemonitor(0x0033, MODEL_SINISTERSTATION, PAD_LIP_03C7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_027F, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_027E, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_027D, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_027C, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_027A, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_027B, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0278, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_0279, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0277, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_0276, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0274, OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000002, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_0275, OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000002, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0273, OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000002, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_0272, OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000002, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0270, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_0271, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_026F, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_026E, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_026C, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_026D, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_026B, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_026A, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0268, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_0269, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
tag(0x44, 2)
tag(0x45, 2)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0266, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_0267, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
tag(0x2b, 4)
tag(0x2c, 4)
tag(0x2d, 4)
tag(0x2e, 4)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_02AA, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000080, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02AB, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDBACK, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000080, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_02AC, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000080, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02AD, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDBACK, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000080, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
tag(0x07, 2)
tag(0x08, 2)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0280, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000040, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_0281, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDBACK, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000040, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
tag(0x09, 2)
tag(0x0a, 2)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_02B7, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02B8, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
tag(0x0b, 2)
tag(0x0c, 2)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_02B9, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02BA, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
tag(0x0d, 2)
tag(0x0e, 2)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_02BB, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02BC, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0283, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_0282, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0284, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_0285, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_028B, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_028A, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_GL, PAD_LIP_0286, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_WINDOWED, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x01f407d0, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0287, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_GL, PAD_LIP_0289, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_WINDOWED, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x01f407d0, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_0288, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02A4, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02A5, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000020, 0x0000003c, 0x00000000, 0x00000000, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02A6, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_SECRET, PAD_LIP_028E, OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0000d555, 0x0000d555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000001, 0x0000003c, 0x00000000, 0x00000000, 0x00000100)
door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, PAD_LIP_0292, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_LEFT, PAD_LIP_0293, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, PAD_LIP_0294, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_LEFT, PAD_LIP_0295, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51GATE_L, PAD_LIP_02B5, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00008000, 0, DOORTYPE_SLIDING, 0x00000008, 0x00000384, 0x00000000, 0x00000001, 0x00000f00)
door(0x0100, MODEL_A51GATE_R, PAD_LIP_02B6, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00004000, 0, DOORTYPE_SLIDING, 0x00000008, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, PAD_LIP_0299, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_LEFT, PAD_LIP_0298, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
tag(0x4a, 2)
tag(0x4b, 2)
door(0x0100, MODEL_A51_HORIZ_DOOR_GL, PAD_LIP_02A8, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_WINDOWED, DOORTYPE_VERTICAL, 0x00000040, 0x00000258, 0x01f407d0, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_02A7, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDBACK | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000040, 0x00000258, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, PAD_LIP_029A, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_LEFT, PAD_LIP_029B, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, PAD_LIP_029C, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_LEFT, PAD_LIP_029D, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
tag(0x13, 1)
door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, PAD_LIP_029E, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_LEFT, PAD_LIP_029F, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000c000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
tag(0x30, 3)
tag(0x31, 3)
tag(0x11, 1)
door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, PAD_LIP_02A1, OBJFLAG_00000010 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_DEACTIVATED, 0, OBJFLAG3_AUTOCUTSCENESOUNDS, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_LEFT, PAD_LIP_02A0, OBJFLAG_00000010 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_028C, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_FLIP, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_028D, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02AE, OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_FLIP, DOORTYPE_SLIDING, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_028F, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000300)
tag(0x12, 1)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_0290, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000080, 0x00000384, 0x00000000, 0x00000000, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_0291, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02A2, OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000004, 0x00000384, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02A3, OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000a666, 0x0000a666, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000004, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
stdobject(0x00e6, MODEL_LAB_CONTAINER, PAD_LIP_031C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100, OBJFLAG2_REMOVEWHENDESTROYED, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE1, PAD_LIP_02E5, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_LIP_02E6, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE3, PAD_LIP_02E7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE1, PAD_LIP_02E8, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_LIP_02E9, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE3, PAD_LIP_02EA, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE1, PAD_LIP_02EB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_LIP_02EC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE3, PAD_LIP_02ED, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE1, PAD_LIP_02EE, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_LIP_02EF, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE3, PAD_LIP_02F0, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE1, PAD_LIP_02F1, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_LIP_02F2, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE3, PAD_LIP_02F3, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE1, PAD_LIP_02F4, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_LIP_02F5, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE3, PAD_LIP_02F6, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE1, PAD_LIP_02F7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
blocked_path(2, 0x0111, 0x01bb)
conditional_scenery(1, 0, 2)
door(0x0100, MODEL_A51_UNEXP1, PAD_LIP_0422, OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_PATHBLOCKER | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_DEACTIVATED, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000 | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0, DOORTYPE_SLIDING, 0x00000080, 0x00000001, 0x00010000, 0x00000000, 0x00000000)
#if VERSION >= VERSION_NTSC_1_0
stdobject(0x0100, MODEL_A51_EXP1, PAD_LIP_0421, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000)
#else
stdobject(0x0100, MODEL_A51_EXP1, PAD_LIP_0421, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000)
#endif
tag(0x18, -2)
tag(0x46, 6)
tag(0x47, 6)
tag(0x48, 8)
tag(0x49, 8)
tag(0x38, 1)
lift(0x0100, MODEL_A51_LIFT_CONTROL, PAD_LIP_032A, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x032a, 0x032b, -1, -1, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_0330, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_0331, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, VERSION >= VERSION_NTSC_1_0 ? 0x00000000 : 0x00000300)
lift_door(-2, -3, 0)
lift_door(-2, -4, 0)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_0332, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_0333, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, VERSION >= VERSION_NTSC_1_0 ? 0x00000000 : 0x00000300)
lift_door(-2, -7, 1)
lift_door(-2, -8, 1)
tag(0x14, 2)
tag(0x15, 2)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02B3, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_FLIP, DOORTYPE_SLIDING, 0x00000010, 0x00000384, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02B4, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000010, 0x00000384, 0x00000000, 0xffffffff, VERSION >= VERSION_NTSC_1_0 ? 0x00000000 : 0x00000300)
tag(0x33, 2)
tag(0x34, 2)
door(0x0100, MODEL_A51_VERT_DOOR_RIGHT, PAD_LIP_02AF, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDBACK | OBJFLAG2_AICANNOTUSE, OBJFLAG3_AUTOCUTSCENESOUNDS, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000010, 0x00000384, 0x00000000, 0x00000001, 0x00000300)
door(0x0100, MODEL_A51_VERT_DOOR_LEFT, PAD_LIP_02B0, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000cccc, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000010, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
#if VERSION >= VERSION_NTSC_1_0
door(0x0100, MODEL_DOOR_ROLLERTRAIN, PAD_LIP_0321, OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000)
door(0x0100, MODEL_DOOR_ROLLERTRAIN, PAD_LIP_0327, OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000)
#else
door(0x0100, MODEL_DOOR_ROLLERTRAIN, PAD_LIP_0321, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000)
door(0x0100, MODEL_DOOR_ROLLERTRAIN, PAD_LIP_0327, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000)
#endif
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_02B2, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02B1, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
tag(0x17, 1)
hover_prop(0x00eb, MODEL_HOVERCRATE1, PAD_LIP_01C7, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_UNCOLLECTABLE | OBJFLAG_01000000 | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_REMOVEWHENDESTROYED | OBJFLAG2_BULLETPROOF | OBJFLAG2_80000000, OBJFLAG3_PUSHABLE | OBJFLAG3_GRABBABLE, 1000, 0x02010000)
tag(0x06, 1)
key(0x0080, MODEL_KEYCARD, 0x003f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, 32)
rename_object(-1, WEAPON_KEYCARD47, L_LIP_032, L_LIP_033, L_LIP_034, L_LIP_035, L_LIP_036) // "Obtain medlab 2 key card."
// @bug: This keycard is given to guard 0x26 rather than being left
// unassigned. This breaks the keycard hot potato which is supposed to
// happen in the last room, because the keycard is not given to anyone until
// there's one guard left, and you can just kill guard 0x26 for it.
tag(0x10, 1)
key(0x0080, MODEL_KEYCARD, 0x0026, OBJFLAG_ASSIGNEDTOCHR, 0, 0, 128)
rename_object(-1, WEAPON_KEYCARD48, L_LIP_059, L_LIP_060, L_LIP_061, L_LIP_062, L_LIP_063) // "Obtain op room key card."
stdobject(0x0100, MODEL_A51BOARD, PAD_LIP_03C4, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_01000000 | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_02BD, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02BE, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_02BF, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02C0, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_02C1, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02C2, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_LIP_02C3, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02C4, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
glass(0x0100, MODEL_MEDLABWIN1, PAD_LIP_0436, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_MEDLABWIN2, PAD_LIP_0437, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_MEDLABWIN2, PAD_LIP_0438, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_MEDLABWIN1, PAD_LIP_0439, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_BULLETPROOF, 0, 1000)
glass(0x0100, MODEL_MEDLABWIN2, PAD_LIP_043A, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_BULLETPROOF, 0, 1000)
glass(0x0100, MODEL_MEDLABWIN2, PAD_LIP_043B, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_BULLETPROOF, 0, 1000)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_LIP_0446, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000, 0x0096012c)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_LIP_0445, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000, 0x0096012c)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_LIP_043D, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000200 | OBJFLAG_INVINCIBLE | OBJFLAG_00400000, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_LIP_043E, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000200 | OBJFLAG_INVINCIBLE | OBJFLAG_00400000, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_LIP_043F, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000200 | OBJFLAG_INVINCIBLE | OBJFLAG_00400000, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_LIP_0440, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000200 | OBJFLAG_INVINCIBLE | OBJFLAG_00400000, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_LIP_0441, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000200 | OBJFLAG_INVINCIBLE | OBJFLAG_00400000, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_LIP_0442, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000200 | OBJFLAG_INVINCIBLE | OBJFLAG_00400000, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x04b007d0)
tag(0x19, 1)
autogun(0x00c0, MODEL_A51_ROOFGUN, PAD_LIP_0405, OBJFLAG_00000004, OBJFLAG2_REMOVEWHENDESTROYED, 0, 1000, 0x0108, 0x00004000, 0xffffc000, 0x000000da, 0x00140000)
tag(0x1a, 2)
tag(0x22, 2)
lift(0x0100, MODEL_CHAMBER, PAD_LIP_033C, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x033c, 0x033d, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000)
singlemonitor(0x0100, MODEL_MODEMBOX, PAD_LIP_045C, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 18)
tag(0x1c, 2)
tag(0x24, 2)
lift(0x0100, MODEL_CHAMBER, PAD_LIP_0340, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x0340, 0x0341, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000)
singlemonitor(0x0100, MODEL_MODEMBOX, PAD_LIP_0459, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 18)
tag(0x1e, 2)
tag(0x26, 2)
lift(0x0100, MODEL_CHAMBER, PAD_LIP_0344, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x0344, 0x0345, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000)
singlemonitor(0x0100, MODEL_MODEMBOX, PAD_LIP_045A, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 18)
tag(0x20, 2)
tag(0x28, 2)
lift(0x0100, MODEL_CHAMBER, PAD_LIP_0348, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x0348, 0x0349, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000)
singlemonitor(0x0100, MODEL_MODEMBOX, PAD_LIP_045B, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 18)
tag(0x1b, 2)
tag(0x23, 2)
lift(0x0100, MODEL_CHAMBER, PAD_LIP_033F, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x033f, 0x033e, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000)
singlemonitor(0x0100, MODEL_MODEMBOX, PAD_LIP_045E, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 18)
tag(0x1d, 2)
tag(0x25, 2)
lift(0x0100, MODEL_CHAMBER, PAD_LIP_0343, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x0343, 0x0342, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000)
singlemonitor(0x0100, MODEL_MODEMBOX, PAD_LIP_045F, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 18)
tag(0x1f, 2)
tag(0x27, 2)
lift(0x0100, MODEL_CHAMBER, PAD_LIP_0347, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x0347, 0x0346, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000)
singlemonitor(0x0100, MODEL_MODEMBOX, PAD_LIP_0460, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 18)
tag(0x21, 2)
tag(0x29, 2)
lift(0x0100, MODEL_CHAMBER, PAD_LIP_034B, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x034b, 0x034a, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000)
singlemonitor(0x0100, MODEL_MODEMBOX, PAD_LIP_045D, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 18)
tag(0x32, 1)
stdobject(0x0100, MODEL_A51_CRATE1, -1, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0461, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0462, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0463, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0464, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0465, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0466, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0467, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0468, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0469, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_046A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_046B, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_046C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_046D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_046E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_046F, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0470, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0471, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0472, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0473, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_0474, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0476, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0477, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0479, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_047A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_047B, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_047C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_047D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_047E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_047F, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0480, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0481, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0482, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0483, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0484, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0485, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
tag(0x3b, 1)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0486, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0487, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0488, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_DD_CHAIR, PAD_LIP_0489, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_0491, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_0492, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_0493, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_0494, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_0495, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_0496, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_0497, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_0498, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_0499, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_049A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_049B, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_049C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_049D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_049E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_049F, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_04A0, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_04A1, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_04A2, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51WASTEBIN, PAD_LIP_04A3, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51DIVIDE, PAD_LIP_04A4, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51DIVIDE, PAD_LIP_04A5, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51DIVIDE, PAD_LIP_04A6, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51DIVIDE, PAD_LIP_04A7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51DIVIDE, PAD_LIP_04A8, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51DIVIDE, PAD_LIP_04A9, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51DIVIDE, PAD_LIP_04AA, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51DIVIDE, PAD_LIP_04AB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51DIVIDE, PAD_LIP_04AC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE3, PAD_LIP_031A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE1, PAD_LIP_031B, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_BARREL, PAD_LIP_04B7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_BARREL, PAD_LIP_04B8, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_BARREL, PAD_LIP_04B9, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_BARREL, PAD_LIP_04BA, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_BARREL, PAD_LIP_04BB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_BARREL, PAD_LIP_04BC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_BARREL, PAD_LIP_04BD, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_BARREL, PAD_LIP_04BE, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02C7, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02C8, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02C9, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02CA, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02CB, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02CC, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02CD, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02CE, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02CF, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_LIP_02D0, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02D1, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02D2, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02D3, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02D4, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02D5, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02D6, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02D7, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02D8, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02D9, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02DA, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
door(0x0100, MODEL_A51_VERT_DOOR_ST, PAD_LIP_02DB, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
stdobject(0x0100, MODEL_A51TABLE, PAD_LIP_04D4, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000)
stdobject(0x0100, MODEL_A51GRATE, PAD_LIP_0443, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
tag(0x4c, 2)
tag(0x4d, 2)
weapon(0x0100, MODEL_CHRFALCON2SIL, PAD_LIP_03DB, OBJFLAG_00000001, 0, 0, WEAPON_FALCON2_SILENCER)
weapon(0x0100, MODEL_CHRFALCON2SIL, PAD_LIP_03DB, OBJFLAG_00000001, 0, 0, WEAPON_FALCON2_SILENCER)
link_guns(-1, -2)
tag(0x4e, 1)
weapon(0x0100, MODEL_CHRMAIANPISTOL, PAD_LIP_0389, OBJFLAG_00000001 | OBJFLAG_INVINCIBLE | OBJFLAG_00400000, 0, 0, WEAPON_PHOENIX)
tag(0x42, 1)
shield(0x0100, MODEL_CHRSHIELD, 0x0004, OBJFLAG_00000001 | OBJFLAG_ASSIGNEDTOCHR, OBJFLAG2_EXCLUDE_SA | OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD, 0, 1000)
tag(0x43, 1)
shield(0x0100, MODEL_CHRSHIELD, PAD_LIP_0474, OBJFLAG_00000001, OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD, 0, 1000)
endprops
};
s32 intro[] = {
spawn(PAD_LIP_03A1)
intro_weapon(WEAPON_FALCON2_SILENCER, -1)
ammo(AMMOTYPE_PISTOL, 100)
intro_weapon(WEAPON_XRAYSCANNER, -1)
outfit(OUTFIT_DEFAULT)
endintro
};
s32 path00[] = {
PAD_LIP_0194,
PAD_LIP_0193,
PAD_LIP_0196,
PAD_LIP_0195,
-1,
};
s32 path01[] = {
PAD_LIP_019A,
PAD_LIP_019C,
PAD_LIP_018B,
PAD_LIP_018A,
PAD_LIP_018F,
PAD_LIP_01A0,
PAD_LIP_0190,
PAD_LIP_019E,
PAD_LIP_0199,
-1,
};
s32 path02[] = {
PAD_LIP_0190,
PAD_LIP_019E,
PAD_LIP_0199,
PAD_LIP_019A,
PAD_LIP_019C,
PAD_LIP_018B,
PAD_LIP_018A,
PAD_LIP_018F,
PAD_LIP_01A0,
-1,
};
s32 path03[] = {
PAD_LIP_018D,
PAD_LIP_0189,
PAD_LIP_0191,
PAD_LIP_018F,
PAD_LIP_018E,
-1,
};
s32 path04[] = {
PAD_LIP_0185,
PAD_LIP_0186,
PAD_LIP_0187,
PAD_LIP_0182,
PAD_LIP_0188,
-1,
};
s32 path05[] = {
PAD_LIP_01BD,
PAD_LIP_01BC,
PAD_LIP_01BB,
PAD_LIP_01BC,
PAD_LIP_01BD,
-1,
};
s32 path06[] = {
PAD_LIP_0111,
PAD_LIP_010F,
PAD_LIP_011A,
PAD_LIP_0118,
PAD_LIP_011A,
PAD_LIP_010F,
PAD_LIP_0111,
-1,
};
s32 path07[] = {
PAD_LIP_0112,
PAD_LIP_0113,
PAD_LIP_0100,
PAD_LIP_0102,
PAD_LIP_0104,
PAD_LIP_0102,
PAD_LIP_0100,
PAD_LIP_0113,
-1,
};
s32 path08[] = {
PAD_LIP_00F7,
PAD_LIP_00FA,
PAD_LIP_00FB,
PAD_LIP_00FC,
PAD_LIP_00FB,
PAD_LIP_00FA,
PAD_LIP_00F7,
PAD_LIP_00F8,
PAD_LIP_00F9,
PAD_LIP_00FA,
-1,
};
s32 path09[] = {
PAD_LIP_00F0,
PAD_LIP_00F2,
PAD_LIP_00F3,
PAD_LIP_00F4,
PAD_LIP_00F3,
PAD_LIP_00F2,
PAD_LIP_00F0,
PAD_LIP_00EF,
PAD_LIP_00F3,
PAD_LIP_00F2,
-1,
};
s32 path10[] = {
PAD_LIP_0123,
PAD_LIP_0124,
-1,
};
s32 path11[] = {
PAD_LIP_0124,
PAD_LIP_0123,
-1,
};
s32 path12[] = {
PAD_LIP_0118,
PAD_LIP_0119,
PAD_LIP_011A,
PAD_LIP_010D,
PAD_LIP_010E,
PAD_LIP_010F,
PAD_LIP_0110,
PAD_LIP_0111,
PAD_LIP_0112,
PAD_LIP_0113,
PAD_LIP_0114,
PAD_LIP_0100,
PAD_LIP_0114,
PAD_LIP_0113,
PAD_LIP_0112,
PAD_LIP_0111,
PAD_LIP_0110,
PAD_LIP_010F,
PAD_LIP_010E,
PAD_LIP_010D,
PAD_LIP_011A,
PAD_LIP_0119,
-1,
};
s32 path13[] = {
PAD_LIP_00ED,
PAD_LIP_0100,
PAD_LIP_00ED,
-1,
};
s32 path14[] = {
PAD_LIP_0100,
PAD_LIP_0118,
PAD_LIP_0100,
PAD_LIP_00ED,
-1,
};
u8 func1400_give_datauplinks[] = {
yield
set_chr_team(CHR_ANTI, TEAM_22)
give_object_to_chr(OBJ_DATAUPLINK_BOND, CHR_BOND)
give_object_to_chr(OBJ_DATAUPLINK_COOP, CHR_COOP)
set_ailist(CHR_SELF, GAILIST_REBUILD_GROUPS)
endlist
};
u8 func1007_check_disguise_collected[] = {
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_has_object(CHR_P1P2, OBJ_LABCOAT1, /*goto*/ 0x06)
if_chr_has_object(CHR_P1P2, OBJ_LABCOAT2, /*goto*/ 0x06)
if_chr_has_object(CHR_P1P2, OBJ_LABCOAT3, /*goto*/ 0x06)
if_chr_has_object(CHR_P1P2, OBJ_LABCOAT4, /*goto*/ 0x06)
if_chr_has_object(CHR_P1P2, OBJ_LABCOAT5, /*goto*/ 0x06)
endloop(0x04)
label(0x06)
beginloop(0x08)
if_chr_has_hiddenflag(CHR_P1P2, CHRHFLAG_DISGUISED, /*goto*/ LABEL_2D)
endloop(0x08)
label(LABEL_2D)
set_stage_flag(STAGEFLAG_USED_DISGUISE)
terminate
endlist
};
u8 func1026_check_records_destroyed[] = {
beginloop(0x04)
if_object_in_good_condition(0x04, /*goto*/ 0x06)
show_hudmsg(CHR_BOND, L_LIP_014) // "Research records destroyed."
set_stage_flag(STAGEFLAG_RECORDS_DESTROYED)
terminate
label(0x06)
endloop(0x04)
endlist
};
u8 func1003_uplink_doors[] = {
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_activated_object(CHR_P1P2, 0x02, /*goto*/ LABEL_2D)
reloop(0x04)
label(LABEL_2D)
if_stage_flag_eq(STAGEFLAG_DOOR_VIRUS_DOWNLOADED, FALSE, /*goto*/ 0x06)
play_sound(SFX_8116, -1)
show_hudmsg(CHR_P1P2, L_LIP_048) // "Virus has already been downloaded."
reloop(0x04)
label(0x06)
if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ LABEL_2D)
play_sound(SFX_8116, -1)
show_hudmsg(CHR_P1P2, L_LIP_020) // "Access to door control systems denied."
reloop(0x04)
label(LABEL_2D)
show_hudmsg(CHR_P1P2, L_LIP_030) // "Data Uplink connected."
restart_timer
beginloop(0x08)
if_timer_gt(60, /*goto*/ 0x06)
if_chr_distance_to_pad_gt(CHR_P1P2, 300, PAD_LIP_0427, /*goto*/ 0x09)
if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ LABEL_2D)
goto_next(0x09)
label(LABEL_2D)
endloop(0x08)
label(0x06)
show_hudmsg(CHR_P1P2, L_LIP_049) // "Initiating virus download."
restart_timer
assign_sound(SFX_01BF, CHANNEL_5)
control_sound_from_object(CHANNEL_5, 0x02, TRUE)
beginloop(0x11)
if_timer_gt(400, /*goto*/ 0x06)
if_chr_distance_to_pad_gt(CHR_P1P2, 300, PAD_LIP_0427, /*goto*/ 0x09)
if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ LABEL_2D)
goto_next(0x09)
label(LABEL_2D)
endloop(0x11)
label(0x06)
mute_channel(CHANNEL_5)
if_object_in_good_condition(0x02, /*goto*/ LABEL_2D)
terminate
label(LABEL_2D)
assign_sound(SFX_01C1, CHANNEL_5)
control_sound_from_object(CHANNEL_5, 0x02, TRUE)
show_hudmsg(CHR_P1P2, L_LIP_023) // "Virus downloaded to console."
yield
set_stage_flag(STAGEFLAG_DOOR_VIRUS_DOWNLOADED)
reloop(0x04)
label(0x09)
show_hudmsg(CHR_P1P2, L_LIP_031) // "Data Uplink connection broken."
mute_channel(CHANNEL_5)
assign_sound(SFX_01C0, CHANNEL_6)
control_sound_from_object(CHANNEL_6, 0x02, TRUE)
restart_timer
beginloop(0x13)
if_timer_gt(120, /*goto*/ 0x06)
endloop(0x13)
label(0x06)
mute_channel(CHANNEL_6)
endloop(0x04)
endlist
};
u8 func1004_uplink_lights[] = {
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_activated_object(CHR_P1P2, 0x01, /*goto*/ LABEL_2D)
reloop(0x04)
label(LABEL_2D)
if_stage_flag_eq(STAGEFLAG_LIGHT_VIRUS_DONE, FALSE, /*goto*/ 0x06)
play_sound(SFX_8116, -1)
show_hudmsg(CHR_P1P2, L_LIP_048) // "Virus has already been downloaded."
reloop(0x04)
label(0x06)
if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ LABEL_2D)
play_sound(SFX_8116, -1)
show_hudmsg(CHR_P1P2, L_LIP_021) // "Access to light control systems denied."
reloop(0x04)
label(LABEL_2D)
show_hudmsg(CHR_P1P2, L_LIP_030) // "Data Uplink connected."
restart_timer
beginloop(0x08)
if_timer_gt(60, /*goto*/ 0x06)
if_chr_distance_to_pad_gt(CHR_P1P2, 300, PAD_LIP_0429, /*goto*/ 0x09)
if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ LABEL_2D)
goto_next(0x09)
label(LABEL_2D)
endloop(0x08)
label(0x06)
show_hudmsg(CHR_P1P2, L_LIP_049) // "Initiating virus download."
restart_timer
assign_sound(SFX_01BF, CHANNEL_5)
control_sound_from_object(CHANNEL_5, 0x01, TRUE)
beginloop(0x11)
if_timer_gt(400, /*goto*/ 0x06)
if_chr_distance_to_pad_gt(CHR_P1P2, 300, PAD_LIP_0429, /*goto*/ 0x09)
if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ LABEL_2D)
goto_next(0x09)
label(LABEL_2D)
endloop(0x11)
label(0x06)
mute_channel(CHANNEL_5)
if_object_in_good_condition(0x01, /*goto*/ LABEL_2D)
terminate
label(LABEL_2D)
assign_sound(SFX_01C1, CHANNEL_5)
control_sound_from_object(CHANNEL_5, 0x01, TRUE)
show_hudmsg(CHR_P1P2, L_LIP_023) // "Virus downloaded to console."
yield
show_hudmsg(CHR_P1P2, L_LIP_088) // "Lighting systems overloaded."
configure_environment(0x00c4, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00c3, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00c8, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00c9, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00ca, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00c7, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00c2, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00c1, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00c0, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00bf, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00c6, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00c5, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
configure_environment(0x00a6, AIENVCMD_ROOM_SETFAULTYLIGHTS, 110)
set_stage_flag(STAGEFLAG_LIGHT_VIRUS_DONE)
reloop(0x04)
label(0x09)
show_hudmsg(CHR_P1P2, L_LIP_031) // "Data Uplink connection broken."
mute_channel(CHANNEL_5)
assign_sound(SFX_01C0, CHANNEL_6)
control_sound_from_object(CHANNEL_6, 0x01, TRUE)
restart_timer
beginloop(0x13)
if_timer_gt(120, /*goto*/ 0x06)
endloop(0x13)
label(0x06)
mute_channel(CHANNEL_6)
endloop(0x04)
endlist
};
u8 func1005_uplink_autoguns[] = {
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_activated_object(CHR_P1P2, 0x03, /*goto*/ LABEL_2D)
reloop(0x04)
label(LABEL_2D)
if_stage_flag_eq(STAGEFLAG_LIGHT_VIRUS_DONE, FALSE, /*goto*/ 0x06)
play_sound(SFX_8116, -1)
show_hudmsg(CHR_P1P2, L_LIP_048) // "Virus has already been downloaded."
reloop(0x04)
label(0x06)
if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ LABEL_2D)
play_sound(SFX_8116, -1)
show_hudmsg(CHR_P1P2, L_LIP_022) // "Access to security control systems denied."
reloop(0x04)
label(LABEL_2D)
show_hudmsg(CHR_P1P2, L_LIP_030) // "Data Uplink connected."
restart_timer
beginloop(0x08)
if_timer_gt(60, /*goto*/ 0x06)
if_chr_distance_to_pad_gt(CHR_P1P2, 300, PAD_LIP_0428, /*goto*/ 0x09)
if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ LABEL_2D)
goto_next(0x09)
label(LABEL_2D)
endloop(0x08)
label(0x06)
show_hudmsg(CHR_P1P2, L_LIP_049) // "Initiating virus download."
restart_timer
assign_sound(SFX_01BF, CHANNEL_5)
control_sound_from_object(CHANNEL_5, 0x03, TRUE)
beginloop(0x11)
if_timer_gt(400, /*goto*/ 0x06)
if_chr_distance_to_pad_gt(CHR_P1P2, 300, PAD_LIP_0428, /*goto*/ 0x09)
if_chr_weapon_equipped(CHR_P1P2, WEAPON_DATAUPLINK, /*goto*/ LABEL_2D)
goto_next(0x09)
label(LABEL_2D)
endloop(0x11)
label(0x06)
mute_channel(CHANNEL_5)
if_object_in_good_condition(0x03, /*goto*/ LABEL_2D)
terminate
label(LABEL_2D)
assign_sound(SFX_01C1, CHANNEL_5)
control_sound_from_object(CHANNEL_5, 0x00, TRUE)
show_hudmsg(CHR_P1P2, L_LIP_023) // "Virus downloaded to console."
yield
show_hudmsg(CHR_P1P2, L_LIP_105) // "Automatic Defenses Disabled."
set_stage_flag(STAGEFLAG_AUTOGUN_VIRUS_DONE)
reloop(0x04)
label(0x09)
show_hudmsg(CHR_P1P2, L_LIP_031) // "Data Uplink connection broken."
mute_channel(CHANNEL_5)
assign_sound(SFX_01C0, CHANNEL_6)
control_sound_from_object(CHANNEL_6, 0x03, TRUE)
restart_timer
beginloop(0x13)
if_timer_gt(120, /*goto*/ 0x06)
endloop(0x13)
label(0x06)
mute_channel(CHANNEL_6)
reloop(0x04)
show_hudmsg(CHR_P1P2, L_LIP_023) // "Virus downloaded to console."
set_stage_flag(STAGEFLAG_AUTOGUN_VIRUS_DONE)
endloop(0x04)
endlist
};
u8 func1006_check_lab_accessed[] = {
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_in_room(CHR_P1P2, 0x00, 0x008f, /*goto*/ 0x06)
endloop(0x04)
label(0x06)
show_hudmsg(CHR_P1P2, L_LIP_029) // "Laboratory accessed successfully."
set_stage_flag(STAGEFLAG_ENTERED_LAB)
terminate
endlist
};
#define init_path(accuracy, health, recovery, pathid) \
set_chr_dodge_rating(2, 10) \
set_accuracy(accuracy) \
set_reaction_speed(35) \
set_chr_maxdamage(CHR_SELF, health) \
add_health_or_armor(0) \
set_recovery_speed(recovery) \
set_shield(0) \
assign_path(pathid) \
start_patrol \
set_ailist(CHR_SELF, GAILIST_UNALERTED)
u8 func0401_start_path00[] = {
init_path(8, 50, 35, 0x00)
endlist
};
u8 func0402_start_path01[] = {
init_path(8, 50, 35, 0x01)
endlist
};
u8 func0403_start_path02[] = {
init_path(8, 50, 35, 0x02)
endlist
};
u8 func0404_start_path03[] = {
init_path(8, 50, 35, 0x03)
endlist
};
u8 func0405_start_path04[] = {
init_path(8, 50, 35, 0x04)
endlist
};
u8 func0406_start_path05[] = {
init_path(8, 50, 35, 0x05)
endlist
};
u8 func0407_start_path06[] = {
init_path(10, 80, 0, 0x06)
endlist
};
u8 func0408_start_path07[] = {
init_path(10, 80, 0, 0x07)
endlist
};
u8 func0409_start_path08[] = {
init_path(10, 80, 0, 0x08)
endlist
};
u8 func040a_start_path09[] = {
init_path(10, 80, 0, 0x09)
endlist
};
u8 func040b_start_path10[] = {
init_path(10, 80, 0, 0x0a)
endlist
};
u8 func040c_start_path11[] = {
init_path(10, 80, 0, 0x0b)
endlist
};
u8 func040d_start_path12[] = {
init_path(10, 80, 0, 0x0c)
endlist
};
u8 func040e_start_path13[] = {
init_path(10, 80, 0, 0x0d)
endlist
};
u8 func040f_start_path14[] = {
init_path(10, 80, 0, 0x0e)
endlist
};
u8 func1001_objectives_failed_msg[] = {
yield
set_chr_chrflag(CHR_LABTECH_RECORDS, CHRCFLAG_KEEPCORPSEKO)
set_chr_chrflag(CHR_LABTECH_LIGHTS, CHRCFLAG_KEEPCORPSEKO)
set_chr_chrflag(CHR_LABTECH_DOORS1, CHRCFLAG_KEEPCORPSEKO)
set_chr_chrflag(CHR_LABTECH_SHOWERS, CHRCFLAG_KEEPCORPSEKO)
set_chr_chrflag(CHR_LABTECH_HARRYSMATE, CHRCFLAG_KEEPCORPSEKO)
set_chr_chrflag(CHR_LABTECH_KEYCARDGUY, CHRCFLAG_KEEPCORPSEKO)
set_chr_chrflag(CHR_BIOTECH1, CHRCFLAG_KEEPCORPSEKO)
set_chr_chrflag(CHR_BIOTECH2, CHRCFLAG_KEEPCORPSEKO)
set_chr_chrflag(CHR_LABTECH_DOORS2, CHRCFLAG_KEEPCORPSEKO)
set_chr_chrflag(CHR_MECHANIC, CHRCFLAG_KEEPCORPSEKO)
set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG)
endlist
};
u8 func0411_labtech_showers_agent[] = {
beginloop(0x04)
if_object_in_good_condition(OBJ_WALL, /*goto*/ LABEL_2D)
goto_next(LABEL_64)
label(LABEL_2D)
endloop(0x04)
beginloop(LABEL_64)
damage_chr(CHR_SELF, WEAPON_SUPERDRAGON)
if_chr_dead(CHR_SELF, /*goto*/ LABEL_2D)
endloop(LABEL_64)
label(LABEL_2D)
terminate
endlist
};
u8 func0412_init_labtech_showers[] = {
if_difficulty_lt(DIFF_SA, /*goto*/ LABEL_2D)
goto_next(0x06)
// Agent
label(LABEL_2D)
run_to_pad(PAD_LIP_03AB)
beginloop(0x08)
if_chr_stopped(/*goto*/ LABEL_2E)
endloop(0x08)
label(LABEL_2E)
set_ailist(CHR_SELF, AILIST_LABTECH_AGENT)
// SA and PA
label(0x06)
set_ailist(CHR_SELF, AILIST_LABTECH_SA_PA)
endlist
};
u8 func0410_labtech_showers_sa_pa[] = {
set_shotlist(AILIST_LABTECH_SA_PA)
if_chr_deadish(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_2D)
label(0x06)
set_shotlist(GAILIST_IDLE)
set_stage_flag(STAGEFLAG_LABTECH_DEAD)
restart_timer
beginloop(LABEL_54)
if_timer_gt(15, /*goto*/ 0x06)
endloop(LABEL_54)
label(0x06)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
terminate
label(LABEL_2D)
if_just_injured(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_2D)
// Injured
label(0x06)
restart_timer
beginloop(LABEL_55)
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ LABEL_58)
endloop(LABEL_55)
// Not injured, or recovered
label(LABEL_2D)
stop_chr
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
if_target_in_sight(/*goto*/ LABEL_2D)
if_distance_to_target_lt(500, /*goto*/ 0x03)
endloop(0x04)
// Detected Jo
label(LABEL_2D)
label(0x03)
if_self_flag_bankx_eq(CHRFLAG0_SKIPSAFETYCHECKS, TRUE, BANK_0, /*goto*/ LABEL_56)
restart_timer
label(0x08)
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09)
beginloop(0x09)
if_target_in_fov_left(10, /*goto*/ 0x06)
if_timer_gt(60, /*goto*/ 0x06)
endloop(0x09)
label(0x06)
speak(CHR_TARGET, L_LIP_037, MP3_032D, CHANNEL_4, COLOR_08_RED) // "Who are you?"
restart_timer
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ LABEL_64)
// Wait until seeing Jo with a gun, or Jo has clothes
beginloop(LABEL_64)
if_timer_lt(120, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2D)
if_chr_in_view(/*goto*/ LABEL_53)
label(LABEL_2D)
if_chr_has_object(CHR_TARGET, OBJ_LABCOAT1, /*goto*/ 0x0d)
if_chr_has_object(CHR_TARGET, OBJ_LABCOAT2, /*goto*/ 0x0d)
if_chr_has_object(CHR_TARGET, OBJ_LABCOAT3, /*goto*/ 0x0d)
if_chr_has_object(CHR_TARGET, OBJ_LABCOAT4, /*goto*/ 0x0d)
if_chr_has_object(CHR_TARGET, OBJ_LABCOAT5, /*goto*/ 0x0d)
endloop(LABEL_64)
// Jo has clothes
label(0x0d)
speak(CHR_TARGET, L_LIP_038, MP3_032E, CHANNEL_4, COLOR_08_RED) // "Hey - you've got my clothes."
restart_timer
beginloop(0x0e)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2D)
goto_next(LABEL_53)
label(LABEL_2D)
if_timer_gt(180, /*goto*/ 0x06)
endloop(0x0e)
label(0x06)
speak(CHR_TARGET, L_LIP_043, MP3_0332, CHANNEL_4, COLOR_08_RED) // "Give me back my clothes - or else!"
restart_timer
beginloop(0x0f)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2D)
goto_next(LABEL_53)
label(LABEL_2D)
if_timer_gt(200, /*goto*/ LABEL_56)
endloop(0x0f)
label(LABEL_56)
if_chr_in_room(CHR_P1P2, 0x00, 0x00aa, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00a9, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00b4, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00b5, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00b6, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00be, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00b7, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00b8, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00b3, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x009b, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00ae, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00af, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00b0, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00b1, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00b2, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00bc, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00ab, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00bb, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00ba, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00b9, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00ac, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_P1P2, 0x00, 0x00ad, /*goto*/ LABEL_2D)
goto_next(LABEL_58)
// Jo is in one of many rooms
label(LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2D)
goto_next(LABEL_53)
// Jo is in one of many rooms with nothing equipped - attack her
label(LABEL_2D)
if_self_flag_bankx_eq(CHRFLAG0_SKIPSAFETYCHECKS, TRUE, BANK_0, /*goto*/ LABEL_2D)
speak(CHR_TARGET, L_LIP_044, MP3_0333, CHANNEL_4, COLOR_08_RED) // "Right - you've asked for it!"
set_self_flag_bankx(CHRFLAG0_SKIPSAFETYCHECKS, BANK_0)
goto_next(0x06)
label(LABEL_2D)
call_rng
if_rand_gt(25, /*goto*/ 0x06)
speak(CHR_TARGET, L_LIP_045, MP3_0334, CHANNEL_4, COLOR_08_RED) // "Give me my clothes."
label(0x06)
try_run_to_target(/*goto*/ LABEL_6F)
restart_timer
beginloop(LABEL_6F)
if_distance_to_target_lt(400, /*goto*/ LABEL_2D)
if_timer_gt(600, /*goto*/ 0x06)
if_chr_stopped(/*goto*/ 0x06)
endloop(LABEL_6F)
label(LABEL_2D)
set_returnlist(CHR_SELF, AILIST_LABTECH_SA_PA)
set_ailist(CHR_SELF, GAILIST_HAND_COMBAT)
// Chasing Jo for over 10 seconds - do room check again
label(0x06)
goto_first(LABEL_56)
// Jo in an unknown room
label(LABEL_58)
goto_next(0x06)
// Tech saw weapon
label(LABEL_53)
chr_do_animation(ANIM_SURPRISED_0202, 0, -1, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
speak(CHR_TARGET, L_LIP_041, SFX_8156, CHANNEL_4, COLOR_08_RED) // "Oh, my God - a gun!"
restart_timer
beginloop(0x0a)
if_timer_gt(120, /*goto*/ 0x06)
endloop(0x0a)
// Jo in an unknown room, or follow through from seeing weapon
label(0x06)
restart_timer
speak(CHR_TARGET, L_LIP_039, MP3_032F, CHANNEL_4, COLOR_08_RED) // "Help - help!"
try_set_chrpreset_to_unalerted_teammate(0, /*goto*/ 0x06)
// No chr in same group - run to pad instead
run_to_pad(PAD_LIP_0121)
beginloop(0x10)
if_chr_stopped(/*goto*/ LABEL_61)
endloop(0x10)
label(0x06)
try_run_to_chr(CHR_PRESET, /*goto*/ 0x0b)
beginloop(0x0b)
if_detected_chr(CHR_PRESET, /*goto*/ LABEL_61)
endloop(0x0b)
label(LABEL_61)
speak(CHR_TARGET, L_LIP_042, MP3_0331, CHANNEL_4, COLOR_08_RED) // "There's an intruder in the complex."
set_stage_flag(STAGEFLAG_DISGUISE_UNCOVERED)
increase_squadron_alertness(100)
stop_chr
terminate
endlist
};
u8 func1009_disguise_timer[] = {
beginloop(0x04)
// Pointless check
if_stage_flag_eq(STAGEFLAG_LABTECH_DEAD, TRUE, /*goto*/ LABEL_2D)
label(LABEL_2D)
if_chr_has_object(CHR_BOND, OBJ_LABCOAT1, /*goto*/ LABEL_2D)
if_chr_has_object(CHR_BOND, OBJ_LABCOAT2, /*goto*/ LABEL_2D)
if_chr_has_object(CHR_BOND, OBJ_LABCOAT3, /*goto*/ LABEL_2D)
if_chr_has_object(CHR_BOND, OBJ_LABCOAT4, /*goto*/ LABEL_2D)
if_chr_has_object(CHR_BOND, OBJ_LABCOAT5, /*goto*/ LABEL_2D)
if_chr_has_object(CHR_COOP, OBJ_LABCOAT1, /*goto*/ LABEL_2D)
if_chr_has_object(CHR_COOP, OBJ_LABCOAT2, /*goto*/ LABEL_2D)
if_chr_has_object(CHR_COOP, OBJ_LABCOAT3, /*goto*/ LABEL_2D)
if_chr_has_object(CHR_COOP, OBJ_LABCOAT4, /*goto*/ LABEL_2D)
if_chr_has_object(CHR_COOP, OBJ_LABCOAT5, /*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
restart_timer
beginloop(0x09)
if_timer_gt(180, /*goto*/ 0x06)
endloop(0x09)
label(0x06)
speak(CHR_BOND, L_LIP_046, MP3_02AB, CHANNEL_4, COLOR_09_BLUE) // "I don't have much time!!!"
if_difficulty_lt(DIFF_SA, /*goto*/ LABEL_5D)
if_difficulty_lt(DIFF_PA, /*goto*/ LABEL_5F)
set_countdown_timer(90)
goto_next(LABEL_2D)
label(LABEL_5D)
set_countdown_timer(180)
goto_next(LABEL_2D)
label(LABEL_5F)
set_countdown_timer(135)
label(LABEL_2D)
show_countdown_timer
start_countdown_timer
beginloop(0x08)
if_stage_flag_eq(STAGEFLAG_ENTERED_LAB, TRUE, /*goto*/ LABEL_2D)
if_countdown_timer_lt(1, /*goto*/ 0x06)
#if VERSION >= VERSION_NTSC_1_0
if_door_locked(0x4a, 0x40, /*goto*/ LABEL_2E)
goto_next(0x0d)
label(LABEL_2E)
#endif
endloop(0x08)
#if VERSION >= VERSION_NTSC_1_0
// Door unlocked
label(0x0d)
#endif
// Entered lab
label(LABEL_2D)
stop_countdown_timer
hide_countdown_timer
terminate
// Timer expired
label(0x06)
#if VERSION >= VERSION_NTSC_1_0
stop_countdown_timer
hide_countdown_timer
restart_timer
label(LABEL_66)
activate_alarm
yield
label(LABEL_2D)
#else
activate_alarm
#endif
show_hudmsg(CHR_BOND, L_LIP_047) // "The enemy has discovered the disguise."
set_stage_flag(STAGEFLAG_DISGUISE_UNCOVERED)
hide_countdown_timer
terminate
endlist
};
u8 func100a_random_doors[] = {
beginloop(0x04)
if_stage_flag_eq(STAGEFLAG_DOOR_VIRUS_DOWNLOADED, TRUE, /*goto*/ 0x06)
endloop(0x04)
label(0x06)
set_object_flag(0x07, OBJFLAG_CANNOT_ACTIVATE)
set_object_flag(0x09, OBJFLAG_CANNOT_ACTIVATE)
set_object_flag(0x0b, OBJFLAG_CANNOT_ACTIVATE)
set_object_flag(0x0d, OBJFLAG_CANNOT_ACTIVATE)
set_object_flag(0x08, OBJFLAG_CANNOT_ACTIVATE)
set_object_flag(0x0a, OBJFLAG_CANNOT_ACTIVATE)
set_object_flag(0x0c, OBJFLAG_CANNOT_ACTIVATE)
set_object_flag(0x0e, OBJFLAG_CANNOT_ACTIVATE)
beginloop(0x03)
// 55 in 256 chance of doing anything on a given frame
call_rng
if_rand_gt(200, /*goto*/ 0x06)
reloop(0x03)
label(0x06)
call_rng
if_rand_lt(64, /*goto*/ 0x0a)
if_rand_lt(128, /*goto*/ 0x0c)
if_rand_lt(196, /*goto*/ 0x0e)
// 25% chance //1
label(0x08)
if_door_state(0x07, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x09)
open_door(0x07)
open_door(0x08)
reloop(0x03)
label(0x09)
close_door(0x07)
close_door(0x08)
reloop(0x03)
// 25% chance //2
label(0x0a)
if_door_state(0x09, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x0b)
open_door(0x09)
open_door(0x0a)
reloop(0x03)
label(0x0b)
close_door(0x09)
close_door(0x0a)
reloop(0x03)
// 25% chance //3
label(0x0c)
if_door_state(0x0b, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x0d)
open_door(0x0b)
open_door(0x0c)
reloop(0x03)
label(0x0d)
close_door(0x0b)
close_door(0x0c)
reloop(0x03)
// 25% chance //4
label(0x0e)
if_door_state(0x0d, (DOORSTATE_OPEN | DOORSTATE_OPENING), /*goto*/ 0x0f)
open_door(0x0d)
open_door(0x0e)
reloop(0x03)
label(0x0f)
close_door(0x0d)
close_door(0x0e)
endloop(0x03)
endlist
};
u8 func0419_init_doorman[] = {
set_accuracy(10)
set_reaction_speed(35)
set_chr_maxdamage(CHR_SELF, 1)
add_health_or_armor(0)
set_recovery_speed(0)
set_shield(0)
set_ailist(CHR_SELF, AILIST_DOORMAN)
endlist
};
u8 func0418_doorman[] = {
set_shotlist(GAILIST_ALERTED)
if_chr_deadish(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_2D)
label(0x06)
set_shotlist(GAILIST_IDLE)
restart_timer
beginloop(LABEL_54)
if_timer_gt(15, /*goto*/ 0x06)
endloop(LABEL_54)
label(0x06)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
terminate
// Alive
label(LABEL_2D)
if_just_injured(CHR_SELF, /*goto*/ 0x06)
if_has_gun(CHR_SELF, /*goto*/ LABEL_2D)
// Gun shot out of hand
label(0x06)
increase_squadron_alertness(100)
#if VERSION >= VERSION_NTSC_1_0
set_target_chr(CHR_BOND)
#endif
set_ailist(CHR_SELF, GAILIST_ALERTED)
// Waiting for Jo to arrive
label(LABEL_2D)
stop_chr
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
if_target_in_sight(/*goto*/ 0x03)
if_distance_to_target_lt(500, /*goto*/ 0x03)
endloop(0x04)
label(0x03)
restart_timer
label(0x08)
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09)
beginloop(0x09)
if_target_in_fov_left(10, /*goto*/ 0x06)
if_timer_gt(60, /*goto*/ 0x06)
endloop(0x09)
label(0x06)
speak(CHR_TARGET, L_LIP_050, SFX_8157, CHANNEL_4, COLOR_08_RED) // "So, you got here at last."
beginloop(0x0a)
if_timer_gt(240, /*goto*/ 0x06)
endloop(0x0a)
label(0x06)
if_stage_flag_eq(STAGEFLAG_DISGUISE_UNCOVERED, TRUE, /*goto*/ LABEL_2D)
if_stage_flag_eq(STAGEFLAG_USED_DISGUISE, TRUE, /*goto*/ 0x06)
// Disguise not used, or uncovered
label(LABEL_2D)
speak(CHR_TARGET, L_LIP_051, SFX_8158, CHANNEL_4, COLOR_08_RED) // "Hey, you're not... SECURITY ALERT!"
restart_timer
stop_chr
beginloop(0x0b)
if_timer_lt(120, /*goto*/ LABEL_2D)
endloop(0x0b)
label(LABEL_2D)
set_stage_flag(STAGEFLAG_DOORMAN_REJECTED)
show_hudmsg(CHR_TARGET, L_LIP_057) // "Cannot gain access to autopsy lab."
goto_next(LABEL_64)
// Disguised
label(0x06)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_59)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_59)
// Jo has gun equipped
label(LABEL_2D)
speak(CHR_TARGET, L_LIP_052, SFX_8159, CHANNEL_4, COLOR_08_RED) // "No guns allowed in here - put your weapon away."
restart_timer
beginloop(0x0c)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_59)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_59)
if_timer_gt(300, /*goto*/ 0x06)
endloop(0x0c)
label(0x06)
speak(CHR_TARGET, L_LIP_053, SFX_815A, CHANNEL_4, COLOR_08_RED) // "I won't tell you again - lose the weapon."
restart_timer
beginloop(0x0d)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_59)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_59)
if_timer_gt(600, /*goto*/ 0x06)
endloop(0x0d)
#if VERSION >= VERSION_NTSC_1_0
label(0x1b)
#endif
label(0x06)
speak(CHR_TARGET, L_LIP_054, SFX_815B, CHANNEL_4, COLOR_08_RED) // "Right - I'm calling security."
restart_timer
label(0x10)
set_stage_flag(STAGEFLAG_DOORMAN_REJECTED)
show_hudmsg(CHR_TARGET, L_LIP_057) // "Cannot gain access to autopsy lab."
goto_next(LABEL_64)
// Jo disguised and unarmed
label(LABEL_59)
speak(CHR_TARGET, L_LIP_055, SFX_815C, CHANNEL_4, COLOR_08_RED) // "Everyone's been waiting for you..."
restart_timer
beginloop(0x0e)
if_timer_gt(120, /*goto*/ 0x06)
endloop(0x0e)
#if VERSION >= VERSION_NTSC_1_0
label(0x06)
if_alarm_active(/*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
goto_first(0x1b)
#endif
// Unlocking
label(0x06)
unset_object_flag2(0x4a, OBJFLAG2_AICANNOTUSE)
unset_object_flag2(0x4b, OBJFLAG2_AICANNOTUSE)
unlock_door(0x4a, 0x40)
unlock_door(0x4b, 0x40)
open_door(0x4a)
open_door(0x4b)
beginloop(0x0f)
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x06)
if_saw_injury(0x00, /*goto*/ 0x06)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
if_door_state(0x4a, (DOORSTATE_CLOSED | DOORSTATE_CLOSING), /*goto*/ LABEL_2D)
reloop(0x0f)
label(LABEL_2D)
open_door(0x4a)
open_door(0x4b)
endloop(0x0f)
label(0x06)
increase_squadron_alertness(100)
#if VERSION >= VERSION_NTSC_1_0
set_target_chr(CHR_BOND)
#endif
set_ailist(CHR_SELF, GAILIST_ALERTED)
label(LABEL_64)
yield
goto_first(LABEL_64)
terminate
endlist
};
u8 func100b_check_doorman_dead[] = {
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_deadish(CHR_DOORMAN, /*goto*/ LABEL_2D)
reloop(0x04)
label(LABEL_2D)
if_chr_has_object(CHR_BOND, 0x06, /*goto*/ 0x0d)
if_chr_has_object(CHR_COOP, 0x06, /*goto*/ 0x0d)
if_door_locked(0x4a, 0x40, /*goto*/ LABEL_2D)
goto_next(0x0d)
label(LABEL_2D)
if_chr_in_room(CHR_BOND, 0x00, 0x0083, /*goto*/ 0x06)
if_chr_in_room(CHR_BOND, 0x00, 0x0084, /*goto*/ 0x06)
if_chr_in_room(CHR_BOND, 0x00, 0x0085, /*goto*/ 0x06)
if_chr_in_room(CHR_BOND, 0x00, 0x0086, /*goto*/ 0x06)
if_chr_in_room(CHR_BOND, 0x00, 0x0087, /*goto*/ 0x06)
if_chr_in_room(CHR_BOND, 0x00, 0x0088, /*goto*/ 0x06)
if_chr_in_room(CHR_BOND, 0x00, 0x0089, /*goto*/ 0x06)
if_chr_in_room(CHR_BOND, 0x00, 0x008a, /*goto*/ 0x06)
show_hudmsg(CHR_P1P2, L_LIP_056) // "Critical mission personnel killed."
restart_timer
beginloop(0x08)
if_timer_gt(120, /*goto*/ LABEL_2D)
endloop(0x08)
label(LABEL_2D)
show_hudmsg(CHR_P1P2, L_LIP_057) // "Cannot gain access to autopsy lab."
restart_timer
set_stage_flag(STAGEFLAG_DOORMAN_DEAD)
beginloop(0x09)
if_timer_gt(120, /*goto*/ LABEL_2D)
endloop(0x09)
label(LABEL_2D)
label(0x0d)
terminate
label(0x06)
endloop(0x04)
endlist
};
/**
* The lab guy who stands in the room behind the doorman.
*/
u8 func041a_labtech_harrysmate[] = {
set_shotlist(AILIST_LABTECH_HARRYSMATE)
if_chr_deadish(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_2D)
label(0x06)
set_shotlist(GAILIST_IDLE)
restart_timer
beginloop(LABEL_54)
if_timer_gt(15, /*goto*/ 0x06)
endloop(LABEL_54)
label(0x06)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
terminate
label(LABEL_2D)
if_just_injured(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_2D)
label(0x06)
restart_timer
beginloop(LABEL_55)
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ LABEL_58)
endloop(LABEL_55)
label(LABEL_58)
goto_next(LABEL_5A)
label(LABEL_2D)
stop_chr
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
if_chr_in_room(CHR_P1P2, 0x00, 0x0083, /*goto*/ 0x08)
endloop(0x04)
beginloop(0x08)
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_2D)
if_target_in_sight(/*goto*/ LABEL_2D)
if_distance_to_target_lt(500, /*goto*/ LABEL_2D)
endloop(0x08)
label(LABEL_2D)
restart_timer
label(0x08)
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09)
beginloop(0x09)
if_target_in_fov_left(10, /*goto*/ 0x06)
if_timer_gt(60, /*goto*/ 0x06)
endloop(0x09)
label(0x06)
speak(CHR_TARGET, L_LIP_058, MP3_02BB, CHANNEL_4, COLOR_08_RED) // "Hey, that's not Harry. It's an intruder."
increase_squadron_alertness(120)
restart_timer
chr_do_animation(ANIM_SURRENDER_002E, 0, -1, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
beginloop(0x0a)
if_timer_gt(120, /*goto*/ 0x06)
endloop(0x0a)
label(0x06)
run_to_pad(PAD_LIP_011E)
beginloop(0x0b)
if_chr_stopped(/*goto*/ LABEL_5A)
endloop(0x0b)
label(LABEL_5A)
chr_do_animation(ANIM_DRAW_PISTOL_0288, 0, -1, 0, 16, CHR_SELF, 2)
beginloop(0x0c)
if_chr_stopped(/*goto*/ 0x06)
endloop(0x0c)
label(0x06)
try_equip_weapon(MODEL_CHRDRUGGUN, WEAPON_TRANQUILIZER, 0x10000000, /*goto*/ 0x06)
label(0x06)
#if VERSION >= VERSION_NTSC_1_0
set_target_chr(CHR_BOND)
#endif
set_ailist(CHR_SELF, GAILIST_ALERTED)
endlist
};
u8 func041b_labtech_keycardguy[] = {
set_shotlist(AILIST_LABTECH_KEYCARDGUY)
if_chr_deadish(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_2D)
// Dying
label(0x06)
set_shotlist(GAILIST_IDLE)
restart_timer
beginloop(LABEL_54)
if_timer_gt(15, /*goto*/ 0x06)
endloop(LABEL_54)
label(0x06)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
terminate
// Alive
label(LABEL_2D)
if_just_injured(CHR_SELF, /*goto*/ 0x06)
goto_next(0x08)
// Injured
label(0x06)
restart_timer
beginloop(LABEL_55)
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ LABEL_58)
endloop(LABEL_55)
label(LABEL_58)
goto_next(LABEL_5A)
// Not injured, or recovered
// Waiting to detect Jo
beginloop(0x08)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
if_target_in_sight(/*goto*/ LABEL_2D)
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_2D)
endloop(0x08)
// Detected
label(LABEL_2D)
jog_to_pad(PAD_LIP_011B)
beginloop(0x08)
if_chr_distance_to_pad_lt(CHR_SELF, 100, PAD_LIP_011B, /*goto*/ LABEL_2D)
endloop(0x08)
label(LABEL_2D)
restart_timer
chr_do_animation(ANIM_SURRENDER_002E, 0, 190, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
beginloop(0x09)
if_timer_gt(60, /*goto*/ 0x06)
reloop(0x09)
label(0x06)
set_stage_flag(STAGEFLAG_KEYCARDGUY_ANGRY)
if_chr_stopped(/*goto*/ LABEL_5A)
endloop(0x09)
label(LABEL_5A)
chr_do_animation(ANIM_DRAW_PISTOL_0288, 0, -1, 0, 16, CHR_SELF, 2)
beginloop(0x0a)
if_chr_stopped(/*goto*/ 0x06)
endloop(0x0a)
label(0x06)
try_equip_weapon(MODEL_CHRDRUGGUN, WEAPON_TRANQUILIZER, 0x10000000, /*goto*/ 0x06)
label(0x06)
#if VERSION >= VERSION_NTSC_1_0
set_target_chr(CHR_BOND)
#endif
set_ailist(CHR_SELF, GAILIST_ALERTED)
endlist
};
u8 func100c_keycardguy_lights[] = {
set_lights_state(0x0088, LIGHTOP_1, 0x00, 0x00, 0x00)
beginloop(0x04)
if_stage_flag_eq(STAGEFLAG_KEYCARDGUY_ANGRY, TRUE, /*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
set_lights_state(0x0088, LIGHTOP_1, 0x64, 0x00, 0x00)
terminate
endlist
};
u8 func100d_check_entered_lab[] = {
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_in_room(CHR_P1P2, 0x00, 0x0083, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0084, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0085, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0086, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0087, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0088, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0089, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x008a, /*goto*/ 0x06)
endloop(0x04)
label(0x06)
set_stage_flag(STAGEFLAG_ENTERED_LAB)
terminate
endlist
};
u8 func100e_elvis_timer[] = {
beginloop(0x04)
if_door_state(0x13, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x06)
endloop(0x04)
label(0x06)
set_stage_flag(STAGEFLAG_ENTERED_ELVIS_AREA)
play_x_track(XREASON_DEFAULT, 10, 60)
set_countdown_timer(60)
show_countdown_timer
start_countdown_timer
beginloop(0x08)
if_stage_flag_eq(STAGEFLAG_RESCUED_ELVIS, TRUE, /*goto*/ LABEL_2D)
if_countdown_timer_lt(1, /*goto*/ 0x06)
endloop(0x08)
label(0x06)
stop_countdown_timer
hide_countdown_timer
set_stage_flag(STAGEFLAG_ELVIS_DEAD)
show_hudmsg(CHR_BOND, L_LIP_064) // "Elvis has been killed."
terminate
label(LABEL_2D)
stop_countdown_timer
hide_countdown_timer
terminate
endlist
};
u8 func100f_check_end_level[] = {
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_distance_to_pad_lt(CHR_P1P2, 300, PAD_LIP_02A1, /*goto*/ 0x06)
reloop(0x04)
label(0x06)
set_stage_flag(STAGEFLAG_RESCUED_ELVIS)
yield
yield
if_all_objectives_complete(/*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
set_invincible(CHR_BOND)
revoke_control(CHR_BOND, 4)
hide_countdown_timer
stop_countdown_timer
restart_timer
beginloop(LABEL_5C)
if_chr_deadish(CHR_BOND, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
if_chr_deadish(CHR_COOP, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
end_level
terminate
label(0x06)
set_ailist(CHR_SELF, AILIST_OUTRO)
if_timer_gt(280, /*goto*/ LABEL_5B)
endloop(LABEL_5C)
label(LABEL_5B)
end_level
terminate
endlist
};
u8 func1010_give_keycard[] = {
set_chr_chrflag(0x23, CHRCFLAG_KILLCOUNTABLE)
set_chr_chrflag(0x24, CHRCFLAG_KILLCOUNTABLE)
set_chr_chrflag(0x25, CHRCFLAG_KILLCOUNTABLE)
set_chr_chrflag(0x26, CHRCFLAG_KILLCOUNTABLE)
beginloop(0x04)
if_stage_flag_eq(STAGEFLAG_ONE_KEYCARD_GUARD_REMAINING, TRUE, /*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
label(LABEL_2D)
if_chr_deadish(0x23, /*goto*/ 0x06)
give_object_to_chr(0x10, 0x23)
goto_next(LABEL_2D)
label(0x06)
if_chr_deadish(0x24, /*goto*/ 0x06)
give_object_to_chr(0x10, 0x24)
goto_next(LABEL_2D)
label(0x06)
if_chr_deadish(0x25, /*goto*/ 0x06)
give_object_to_chr(0x10, 0x25)
goto_next(LABEL_2D)
label(0x06)
if_chr_deadish(0x26, /*goto*/ LABEL_2D)
label(LABEL_2D)
unset_object_flag2(0x10, OBJFLAG2_INVISIBLE)
terminate
endlist
};
u8 func0414_init_mechanic[] = {
set_chr_maxdamage(CHR_SELF, 1)
set_ailist(CHR_SELF, AILIST_MECHANIC)
endlist
};
u8 func0413_mechanic[] = {
set_shotlist(AILIST_MECHANIC)
if_chr_deadish(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_2D)
label(0x06)
set_shotlist(GAILIST_IDLE)
terminate
restart_timer
beginloop(LABEL_54)
if_timer_gt(15, /*goto*/ 0x06)
endloop(LABEL_54)
label(0x06)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
terminate
label(LABEL_2D)
if_just_injured(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_2D)
// Injured
label(0x06)
restart_timer
beginloop(LABEL_55)
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ LABEL_58)
endloop(LABEL_55)
// Main logic
label(LABEL_2D)
stop_chr
// Wait for player to attempt to open door
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
if_can_see_target(/*goto*/ 0x0a)
if_chr_activated_object(CHR_P1P2, 0x14, /*goto*/ LABEL_2D)
if_chr_activated_object(CHR_P1P2, 0x15, /*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
restart_timer
beginloop(0x0d)
if_timer_gt(180, /*goto*/ 0x06)
endloop(0x0d)
label(0x06)
unlock_door(0x14, 0x10)
unlock_door(0x15, 0x10)
open_door(0x14)
open_door(0x15)
beginloop(0x0a)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
if_can_see_target(/*goto*/ 0x06)
endloop(0x0a)
label(0x06)
restart_timer
label(0x08)
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09)
beginloop(0x09)
if_target_in_fov_left(10, /*goto*/ 0x06)
if_timer_gt(60, /*goto*/ 0x06)
endloop(0x09)
label(0x06)
speak(CHR_BOND, L_LIP_065, SFX_M0_GET_THE_HELL_OUT_OF_HERE, CHANNEL_4, COLOR_08_RED) // "Get the hell out of here!"
restart_timer
chr_do_animation(ANIM_SURRENDER_002E, 0, -1, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
beginloop(LABEL_64)
if_timer_gt(120, /*goto*/ LABEL_2D)
endloop(LABEL_64)
label(LABEL_58)
label(LABEL_2D)
run_to_pad(PAD_LIP_01BA)
beginloop(0x0e)
if_chr_stopped(/*goto*/ 0x06)
endloop(0x0e)
label(0x06)
label(0x0f)
chr_do_animation(ANIM_COWER_0229, -1, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
beginloop(LABEL_8A)
if_chr_stopped(/*goto*/ LABEL_2D)
endloop(LABEL_8A)
label(LABEL_2D)
goto_first(0x0f)
endlist
};
u8 func1011_unhide_warehouse_spawner[] = {
// Wait until player near second elevator
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_in_room(CHR_P1P2, 0x00, 0x00f8, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00f7, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00f6, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00f4, /*goto*/ 0x06)
endloop(0x04)
// Unhide a guy at the top of the ramp near the start
label(0x06)
unset_chr_chrflag(0x44, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x44, CHRCFLAG_INVINCIBLE)
set_ailist(0x44, AILIST_WAREHOUSE_SPAWNER)
terminate
endlist
};
u8 func0415_warehouse_spawner[] = {
set_self_chrflag(CHRCFLAG_CLONEABLE)
restart_timer
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
if_can_see_target(/*goto*/ 0x08)
if_chr_in_room(CHR_TARGET, 0x00, 0x00f8, /*goto*/ 0x08)
if_chr_in_room(CHR_TARGET, 0x00, 0x00f7, /*goto*/ 0x08)
if_chr_in_room(CHR_TARGET, 0x00, 0x00f6, /*goto*/ 0x08)
if_chr_in_room(CHR_TARGET, 0x00, 0x00f4, /*goto*/ 0x08)
reloop(0x04)
label(0x08)
label(LABEL_2D)
if_never_been_onscreen(/*goto*/ LABEL_4E)
if_can_see_target(/*goto*/ 0x08)
reloop(0x04)
label(0x08)
#if VERSION >= VERSION_NTSC_1_0
set_target_chr(CHR_BOND)
#endif
set_ailist(CHR_SELF, GAILIST_ALERTED)
label(LABEL_4E)
if_chr_death_animation_finished(CHR_CLONE, /*goto*/ LABEL_4E)
reloop(0x04)
label(LABEL_4E)
try_spawn_clone2(CHR_SELF, AILIST_WAREHOUSE_CLONE, 0, /*goto*/ LABEL_2D)
reloop(0x04)
label(LABEL_2D)
restart_timer
yield
endloop(0x04)
terminate
endlist
};
u8 func0417_warehouse_clone[] = {
set_target_chr(CHR_BOND)
set_alertness(100)
try_run_to_target(/*goto*/ LABEL_2D)
label(LABEL_2D)
set_returnlist(CHR_SELF, GAILIST_UNALERTED)
set_ailist(CHR_SELF, GAILIST_UNALERTED)
endlist
};
u8 func1013_check_chamber_switch_destroyed[] = {
if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d)
beginloop(0x04)
if_object_in_good_condition(OBJ_CHAMBER1_SWITCH, /*goto*/ 0x06)
if_stage_flag_eq(STAGEFLAG_CHAMBER1_RAISED, TRUE, /*goto*/ LABEL_2D)
show_hudmsg(CHR_BOND, L_LIP_068) // "Mission critical equipment destroyed."
set_stage_flag(STAGEFLAG_CHAMBER_SWITCH_DESTROYED)
terminate
label(LABEL_2D)
reloop(0x04)
label(0x06)
endloop(0x04)
label(0x0d)
terminate
endlist
};
u8 func1014_check_crate_destroyed[] = {
// The unsetting of the wall's IMMUNE_TO_EXPLOSIVES flag suggests that the
// wall was originally intended to only be blown up via the crate. This must
// have been changed at some point, but the unsetting of the flag remains.
beginloop(0x04)
if_object_in_good_condition(OBJ_CRATE, /*goto*/ 0x06)
unset_object_flag(OBJ_WALL, OBJFLAG_INVINCIBLE)
yield
yield
yield
yield
yield
yield
yield
yield
yield
yield
if_object_in_good_condition(OBJ_WALL, /*goto*/ LABEL_2D)
terminate
label(LABEL_2D)
show_hudmsg(CHR_BOND, L_LIP_068) // "Mission critical equipment destroyed."
set_stage_flag(STAGEFLAG_CRATE_DESTROYED)
beginloop(0x08)
if_object_in_good_condition(OBJ_WALL, /*goto*/ LABEL_2D)
goto_next(LABEL_2E)
label(LABEL_2D)
endloop(0x08)
label(LABEL_2E)
unset_stage_flag(STAGEFLAG_CRATE_DESTROYED)
show_hudmsg(CHR_BOND, L_LIP_089) // "Alternative entrance to medlabs created."
terminate
label(0x06)
endloop(0x04)
endlist
};
/**
* @unused
*/
u8 func041c_unused_041c[] = {
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
terminate
endlist
};
/**
* @unused
*/
u8 func041d_unused_041d[] = {
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
terminate
endlist
};
/**
* @unused
*/
u8 func041e_unused_041e[] = {
set_chr_dodge_rating(2, 10)
set_accuracy(10)
set_reaction_speed(35)
set_chr_maxdamage(CHR_SELF, 80)
add_health_or_armor(0)
set_recovery_speed(0)
set_shield(0)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
terminate
endlist
};
u8 func1016_check_undisguised[] = {
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_stage_flag_eq(STAGEFLAG_DISGUISE_UNCOVERED, TRUE, /*goto*/ 0x06)
if_chr_dead(CHR_LABTECH_HARRYSMATE, /*goto*/ 0x06)
if_chr_dead(CHR_LABTECH_KEYCARDGUY, /*goto*/ 0x06)
if_chr_dead(CHR_DOORMAN, /*goto*/ 0x06)
if_chr_has_object(CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x06)
endloop(0x04)
label(0x06)
unset_chr_hiddenflag(CHR_BOND, CHRHFLAG_DISGUISED)
unset_chr_hiddenflag(CHR_COOP, CHRHFLAG_DISGUISED)
terminate
endlist
};
u8 func041f_labtech_lights[] = {
set_shotlist(AILIST_LABTECH_LIGHTS)
if_chr_deadish(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_2D)
label(0x06)
restart_timer
beginloop(LABEL_54)
if_timer_gt(15, /*goto*/ 0x06)
endloop(LABEL_54)
label(0x06)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
terminate
label(LABEL_2D)
if_just_injured(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_5E)
label(0x06)
set_self_flag_bankx(CHRFLAG0_SKIPSAFETYCHECKS, BANK_0)
restart_timer
beginloop(LABEL_55)
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ LABEL_5E)
endloop(LABEL_55)
label(LABEL_5E)
if_self_flag_bankx_eq(CHRFLAG0_SKIPSAFETYCHECKS, TRUE, BANK_0, /*goto*/ LABEL_53)
call_rng
if_rand_lt(86, /*goto*/ LABEL_69)
if_rand_lt(172, /*goto*/ LABEL_6A)
chr_do_animation(ANIM_SITTING_DORMANT, -1, -1, CHRANIMFLAG_PAUSEATEND | CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_69)
chr_do_animation(ANIM_SITTING_DORMANT, -1, -1, CHRANIMFLAG_PAUSEATEND | CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_6A)
chr_do_animation(ANIM_SITTING_DORMANT, -1, -1, CHRANIMFLAG_PAUSEATEND | CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(0x04)
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
if_self_flag_bankx_eq(CHRFLAG0_SKIPSAFETYCHECKS, TRUE, BANK_0, /*goto*/ LABEL_53)
if_target_in_sight(/*goto*/ 0x03)
if_chr_idle(/*goto*/ 0x06)
goto_first(LABEL_5E)
label(0x06)
endloop(0x04)
// Jo in sight
label(0x03)
object_do_animation(ANIM_025A, 0xff, 0x02, 0xffff)
if_self_flag_bankx_eq(CHRFLAG0_SKIPSAFETYCHECKS, TRUE, BANK_0, /*goto*/ LABEL_53)
restart_timer
label(0x08)
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09)
beginloop(0x09)
if_target_in_fov_left(10, /*goto*/ 0x06)
if_timer_gt(60, /*goto*/ 0x06)
endloop(0x09)
label(0x06)
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_DISGUISE_UNCOVERED, /*goto*/ 0x06)
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_DISGUISED, /*goto*/ LABEL_2D)
label(0x06)
object_do_animation(ANIM_025A, 0xff, 0x02, 0xffff)
speak(CHR_TARGET, L_LIP_037, SFX_SCI_WHO_THE_HELL_ARE_YOU, CHANNEL_4, COLOR_08_RED) // "Who are you?"
#if VERSION >= VERSION_JPN_FINAL
label(LABEL_68)
if_sound_finished(CHANNEL_4, /*goto*/ 0x06)
yield
goto_first(LABEL_68)
label(0x06)
#endif
goto_next(0x06)
label(LABEL_2D)
speak(CHR_TARGET, L_LIP_083, MP3_027F, CHANNEL_4, COLOR_08_RED) // "Should you be in here?"
restart_timer
do_preset_animation(PRESETANIM_TALKRANDOM)
beginloop(LABEL_64)
if_sound_finished(CHANNEL_4, /*goto*/ 0x06)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2D)
label(LABEL_2D)
endloop(LABEL_64)
label(0x06)
stop_chr
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_DISGUISE_UNCOVERED, /*goto*/ 0x06)
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_DISGUISED, /*goto*/ 0x0c)
label(0x06)
speak(CHR_TARGET, L_LIP_082, MP3_SCI_LEAVE_THIS_AREA, CHANNEL_4, COLOR_08_RED) // "Leave this area now."
restart_timer
do_preset_animation(PRESETANIM_TALKRANDOM)
beginloop(LABEL_66)
if_sound_finished(CHANNEL_4, /*goto*/ LABEL_53)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2D)
label(LABEL_2D)
endloop(LABEL_66)
label(LABEL_53)
set_self_flag_bankx(CHRFLAG0_SKIPSAFETYCHECKS, BANK_0)
label(0x0a)
set_target_chr(CHR_BOND)
restart_timer
try_run_to_target(/*goto*/ 0x0b)
beginloop(0x0b)
if_timer_gt(60, /*goto*/ 0x06)
if_distance_to_target_lt(400, /*goto*/ LABEL_2D)
endloop(0x0b)
label(0x06)
goto_first(0x0a)
label(LABEL_2D)
set_self_flag_bankx(CHRFLAG0_GP1, BANK_0)
set_returnlist(CHR_SELF, AILIST_LABTECH_LIGHTS)
set_ailist(CHR_SELF, GAILIST_HAND_COMBAT)
label(0x0c)
walk_to_pad(PAD_LIP_020D)
beginloop(0x0d)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
if_target_in_sight(/*goto*/ LABEL_2D)
if_saw_injury(0x00, /*goto*/ 0x0f)
label(LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2D)
goto_next(0x0f)
label(LABEL_2D)
if_chr_stopped(/*goto*/ 0x06)
endloop(0x0d)
label(0x06)
set_self_chrflag(CHRCFLAG_CANFACEWALL)
restart_timer
try_face_entity(ATTACKFLAG_AIMATPAD, PAD_LIP_0428, /*goto*/ LABEL_6E)
beginloop(LABEL_6E)
if_timer_gt(120, /*goto*/ LABEL_6F)
if_chr_stopped(/*goto*/ LABEL_6F)
endloop(LABEL_6E)
label(LABEL_6F)
call_rng
if_rand_lt(86, /*goto*/ LABEL_64)
if_rand_lt(172, /*goto*/ LABEL_66)
chr_do_animation(ANIM_OPERATE_0221, -1, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
goto_next(0x0e)
label(LABEL_64)
chr_do_animation(ANIM_OPERATE_0221, -1, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
goto_next(0x0e)
label(LABEL_66)
chr_do_animation(ANIM_OPERATE_0223, -1, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
beginloop(0x0e)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
if_target_in_sight(/*goto*/ LABEL_2D)
if_saw_injury(0x00, /*goto*/ 0x0f)
label(LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2D)
goto_next(0x0f)
label(LABEL_2D)
if_chr_idle(/*goto*/ LABEL_2E)
goto_first(LABEL_6F)
label(LABEL_2E)
endloop(0x0e)
label(0x0f)
speak(CHR_TARGET, L_LIP_084, SFX_M1_HOLY, CHANNEL_4, COLOR_08_RED) // "Holy..."
set_self_flag_bankx(CHRFLAG0_SKIPSAFETYCHECKS, BANK_0)
chr_do_animation(ANIM_SURPRISED_0202, -1, -1, CHRANIMFLAG_PAUSEATEND | CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
restart_timer
beginloop(0x10)
if_timer_gt(60, /*goto*/ LABEL_2D)
endloop(0x10)
label(LABEL_2D)
set_self_flag_bankx(CHRFLAG0_SKIPSAFETYCHECKS, BANK_0)
goto_first(LABEL_53)
endlist
};
u8 func0421_init_labtech_doors[] = {
set_chr_maxdamage(CHR_SELF, 1)
set_ailist(CHR_SELF, AILIST_LABTECH_DOORS)
endlist
};
u8 func0420_labtech_doors[] = {
set_self_chrflag(CHRCFLAG_CANFACEWALL)
set_shotlist(AILIST_LABTECH_DOORS)
if_chr_deadish(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_2D)
label(0x06)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
terminate
label(LABEL_2D)
if_just_injured(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_5E)
label(0x06)
restart_timer
beginloop(LABEL_55)
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ LABEL_5E)
endloop(LABEL_55)
label(LABEL_5E)
chr_do_animation(ANIM_OPERATE_0221, -1, -1, CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(LABEL_6F)
label(LABEL_64)
chr_do_animation(ANIM_OPERATE_0221, -1, -1, CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(LABEL_6F)
label(LABEL_66)
chr_do_animation(ANIM_OPERATE_0223, -1, -1, CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
label(LABEL_6F)
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
set_target_chr(CHR_BOND)
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_DISGUISE_UNCOVERED, /*goto*/ 0x06)
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_DISGUISED, /*goto*/ LABEL_2D)
label(0x06)
goto_next(LABEL_2E)
label(LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2E)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2E)
if_self_flag_bankx_eq(CHRFLAG0_COVER_TYPE2, TRUE, BANK_0, /*goto*/ 0x06)
label(LABEL_2E)
if_can_see_target(/*goto*/ 0x03)
label(0x06)
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x03)
if_saw_injury(0x00, /*goto*/ 0x03)
if_saw_death(0x00, /*goto*/ 0x03)
if_chr_idle(/*goto*/ LABEL_2D)
goto_first(LABEL_5E)
label(LABEL_2D)
endloop(0x04)
label(0x03)
restart_timer
label(0x08)
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09)
beginloop(0x09)
if_saw_injury(0x00, /*goto*/ LABEL_89)
if_saw_death(0x00, /*goto*/ LABEL_89)
if_target_in_fov_left(10, /*goto*/ 0x06)
if_timer_gt(60, /*goto*/ 0x06)
endloop(0x09)
label(0x06)
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_DISGUISE_UNCOVERED, /*goto*/ 0x06)
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_DISGUISED, /*goto*/ LABEL_2D)
label(0x06)
goto_next(0x06)
label(LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
do_preset_animation(PRESETANIM_TALK3)
say_quip(CHR_BOND, QUIP_GREETING, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_COVER_TYPE2, BANK_0)
beginloop(LABEL_7B)
if_saw_injury(0x00, /*goto*/ LABEL_89)
if_saw_death(0x00, /*goto*/ LABEL_89)
if_chr_not_talking(CHR_SELF, /*goto*/ LABEL_2D)
endloop(LABEL_7B)
label(LABEL_2D)
stop_chr
goto_first(LABEL_5E)
label(LABEL_89)
label(0x06)
increase_squadron_alertness(100)
beginloop(LABEL_83)
if_sound_finished(CHANNEL_4, /*goto*/ LABEL_2D)
endloop(LABEL_83)
label(LABEL_2D)
if_self_flag_bankx_eq(CHRFLAG0_GP1, TRUE, BANK_0, /*goto*/ LABEL_2E)
speak(CHR_BOND, L_LIP_085, MP3_M0_ITS_A_SPY, CHANNEL_4, COLOR_08_RED) // "It's a spy!"
goto_next(LABEL_2D)
label(LABEL_2E)
speak(CHR_BOND, L_LIP_087, MP3_M0_IMPOSTER, CHANNEL_4, COLOR_08_RED) // "Imposter!"
label(LABEL_2D)
label(0x06)
go_to_target_pad(GOPOSFLAG_JOG)
beginloop(0x0a)
if_chr_stopped(/*goto*/ 0x06)
endloop(0x0a)
label(0x06)
restart_timer
if_self_flag_bankx_eq(CHRFLAG0_GP1, TRUE, BANK_0, /*goto*/ LABEL_2D)
try_face_entity(ATTACKFLAG_AIMATPAD, PAD_LIP_03C6, /*goto*/ LABEL_70)
label(LABEL_2D)
try_face_entity(ATTACKFLAG_AIMATPAD, PAD_LIP_03C7, /*goto*/ LABEL_70)
beginloop(LABEL_70)
if_timer_gt(30, /*goto*/ LABEL_2D)
endloop(LABEL_70)
label(LABEL_2D)
chr_do_animation(ANIM_OPERATE_0221, -1, 120, CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
restart_timer
beginloop(LABEL_71)
if_timer_gt(120, /*goto*/ LABEL_2D)
if_timer_lt(60, /*goto*/ LABEL_2D)
if_stage_flag_eq(STAGEFLAG_AUTOGUN_ACTIVATED, TRUE, /*goto*/ 0x06)
if_stage_flag_eq(STAGEFLAG_AUTOGUN_VIRUS_DONE, TRUE, /*goto*/ LABEL_2D)
set_stage_flag(STAGEFLAG_AUTOGUN_ACTIVATED)
if_self_flag_bankx_eq(CHRFLAG0_GP1, TRUE, BANK_0, /*goto*/ LABEL_75)
assign_sound(SFX_043A, CHANNEL_7)
control_sound_from_object(CHANNEL_7, 0x3c, TRUE)
goto_next(LABEL_2D)
label(LABEL_75)
assign_sound(SFX_043A, CHANNEL_7)
control_sound_from_object(CHANNEL_7, 0x3d, TRUE)
label(LABEL_2D)
endloop(LABEL_71)
label(0x06)
restart_timer
try_face_entity(ATTACKFLAG_AIMATPAD, PAD_LIP_0107, /*goto*/ LABEL_73)
beginloop(LABEL_73)
if_timer_gt(30, /*goto*/ 0x06)
endloop(LABEL_73)
label(0x06)
label(0x10)
chr_do_animation(ANIM_COWER_0229, -1, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
beginloop(LABEL_77)
if_chr_stopped(/*goto*/ LABEL_2D)
endloop(LABEL_77)
label(LABEL_2D)
goto_first(0x10)
endlist
};
u8 func1017_activate_autogun[] = {
set_object_flag(OBJ_AUTOGUN, OBJFLAG_DEACTIVATED)
beginloop(0x04)
if_stage_flag_eq(STAGEFLAG_AUTOGUN_ACTIVATED, TRUE, /*goto*/ 0x06)
endloop(0x04)
label(0x06)
if_object_in_good_condition(OBJ_AUTOGUN, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
unset_object_flag(OBJ_AUTOGUN, OBJFLAG_DEACTIVATED)
label(0x06)
terminate
endlist
};
u8 func0423_init_labtech_records[] = {
set_chr_maxdamage(CHR_SELF, 1)
set_ailist(CHR_SELF, AILIST_LABTECH_RECORDS)
endlist
};
u8 func0422_labtech_records[] = {
set_shotlist(AILIST_LABTECH_RECORDS)
if_chr_deadish(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_2D)
label(0x06)
set_shotlist(GAILIST_IDLE)
restart_timer
label(LABEL_54)
yield
if_timer_gt(15, /*goto*/ 0x06)
goto_first(LABEL_54)
label(0x06)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
terminate
label(LABEL_2D)
if_just_injured(CHR_SELF, /*goto*/ 0x06)
goto_next(LABEL_5E)
label(0x06)
restart_timer
label(LABEL_55)
yield
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ LABEL_5E)
goto_first(LABEL_55)
label(LABEL_5E)
call_rng
if_rand_lt(32, /*goto*/ LABEL_64)
if_rand_lt(64, /*goto*/ LABEL_66)
if_rand_lt(96, /*goto*/ LABEL_68)
if_rand_lt(128, /*goto*/ LABEL_69)
if_rand_lt(160, /*goto*/ LABEL_6A)
if_rand_lt(192, /*goto*/ LABEL_6B)
if_rand_lt(224, /*goto*/ LABEL_6C)
chr_do_animation(ANIM_OPERATE_0221, -1, -1, CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_64)
chr_do_animation(ANIM_OPERATE_0221, -1, -1, CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_66)
chr_do_animation(ANIM_OPERATE_0223, -1, -1, CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_68)
chr_do_animation(ANIM_OPERATE_0221, -1, -1, CHRANIMFLAG_FLIP | CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_69)
chr_do_animation(ANIM_OPERATE_0221, -1, -1, CHRANIMFLAG_FLIP | CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_6A)
chr_do_animation(ANIM_OPERATE_0223, -1, -1, CHRANIMFLAG_FLIP | CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_6B)
chr_do_animation(ANIM_023A, -1, -1, CHRANIMFLAG_FLIP | CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_6C)
chr_do_animation(ANIM_HEAD_ROLL, -1, -1, CHRANIMFLAG_FLIP | CHRANIMFLAG_SLOWUPDATE, 1, CHR_SELF, 2)
beginloop(0x04)
if_chr_idle(/*goto*/ LABEL_2D)
goto_first(LABEL_5E)
label(LABEL_2D)
chr_toggle_p1p2(CHR_SELF)
set_target_chr(CHR_P1P2)
if_target_in_sight(/*goto*/ 0x03)
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x03)
if_distance_to_target_lt(500, /*goto*/ 0x03)
reloop(0x04)
label(0x03)
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_DISGUISE_UNCOVERED, /*goto*/ 0x06)
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_DISGUISED, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ LABEL_2D)
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
endloop(0x04)
label(LABEL_2D)
restart_timer
label(0x08)
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09)
beginloop(0x09)
if_target_in_fov_left(10, /*goto*/ 0x06)
if_timer_gt(60, /*goto*/ 0x06)
endloop(0x09)
label(0x06)
label(0x06)
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ LABEL_2D)
increase_squadron_alertness(100)
speak(CHR_TARGET, L_LIP_087, MP3_M0_IMPOSTER, CHANNEL_4, COLOR_08_RED) // "Imposter!"
chr_do_animation(ANIM_SURPRISED_0202, -1, -1, CHRANIMFLAG_PAUSEATEND | CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
restart_timer
beginloop(LABEL_79)
if_timer_gt(90, /*goto*/ LABEL_2D)
endloop(LABEL_79)
label(LABEL_2D)
speak(CHR_TARGET, L_LIP_086, SFX_M1_WARN_THE_OTHERS, CHANNEL_4, COLOR_08_RED) // "Warn the others..."
label(LABEL_2D)
label(0x06)
run_to_pad(PAD_LIP_0108)
beginloop(0x0a)
if_chr_stopped(/*goto*/ 0x06)
endloop(0x0a)
label(0x06)
label(0x10)
chr_do_animation(ANIM_COWER_0229, -1, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
beginloop(0x0e)
if_chr_stopped(/*goto*/ LABEL_2D)
endloop(0x0e)
label(LABEL_2D)
goto_first(0x10)
endlist
};
/**
* Chambers are actually lifts. They must be disabled so they don't continuously
* go up and down.
*/
u8 func1018_disable_chambers[] = {
set_object_flag(OBJ_CHAMBER1, OBJFLAG_DEACTIVATED)
set_object_flag(OBJ_CHAMBER2, OBJFLAG_DEACTIVATED)
set_object_flag(OBJ_CHAMBER3, OBJFLAG_DEACTIVATED)
set_object_flag(OBJ_CHAMBER4, OBJFLAG_DEACTIVATED)
set_object_flag(OBJ_CHAMBER5, OBJFLAG_DEACTIVATED)
set_object_flag(OBJ_CHAMBER6, OBJFLAG_DEACTIVATED)
set_object_flag(OBJ_CHAMBER7, OBJFLAG_DEACTIVATED)
set_object_flag(OBJ_CHAMBER8, OBJFLAG_DEACTIVATED)
terminate
endlist
};
// This macro is here is reduce the amount of duplicate code. However, each
// chamber's code is not entirely consistant, hence why it's not used by all
// chambers.
#define chamber_logic(switch, chamber, stageflag) \
/* Wait for player to activate chamber switch */ \
beginloop(0x04) \
chr_toggle_p1p2(CHR_SELF) \
if_chr_activated_object(CHR_P1P2, switch, /*goto*/ 0x06) \
reloop(0x04) \
\
label(0x06) \
if_stage_flag_eq(stageflag, TRUE, /*goto*/ LABEL_2D) \
mute_channel(CHANNEL_0) \
\
/* Raising chamber */ \
assign_sound(SFX_DOOR_042B, CHANNEL_0) \
control_sound_from_object(CHANNEL_0, chamber, TRUE) \
assign_sound(SFX_043A, CHANNEL_7) \
control_sound_from_object(CHANNEL_7, switch, TRUE) \
show_hudmsg(CHR_P1P2, 0x2a42) /* "Containment unit raised up." */ \
set_object_image(switch, 0, TVCMDLIST_13) \
unset_object_flag(chamber, OBJFLAG_DEACTIVATED) \
set_stage_flag(stageflag) \
restart_timer \
\
beginloop(0x08) \
if_timer_gt(200, /*goto*/ 0x06) \
endloop(0x08) \
\
label(0x06) \
mute_channel(CHANNEL_0) \
assign_sound(SFX_DOOR_042C, CHANNEL_0) \
control_sound_from_object(CHANNEL_0, chamber, TRUE) \
set_object_flag(chamber, OBJFLAG_DEACTIVATED) \
reloop(0x04) \
\
/* Lowering chamber */ \
label(LABEL_2D) \
mute_channel(CHANNEL_0) \
assign_sound(SFX_DOOR_042B, CHANNEL_0) \
control_sound_from_object(CHANNEL_0, chamber, TRUE) \
assign_sound(SFX_043A, CHANNEL_7) \
control_sound_from_object(CHANNEL_7, switch, TRUE) \
show_hudmsg(CHR_P1P2, 0x2a43) /* "Containment unit lowered down." */ \
set_object_image(switch, 0, TVCMDLIST_12) \
unset_object_flag(chamber, OBJFLAG_DEACTIVATED) \
unset_stage_flag(stageflag) \
restart_timer \
\
beginloop(0x09) \
if_timer_gt(200, /*goto*/ 0x06) \
endloop(0x09) \
\
label(0x06) \
mute_channel(CHANNEL_0) \
assign_sound(SFX_DOOR_042C, CHANNEL_0) \
control_sound_from_object(CHANNEL_0, chamber, TRUE) \
set_object_flag(chamber, OBJFLAG_DEACTIVATED) \
endloop(0x04)
/**
* This chamber has the alien in it.
*/
u8 func1019_chamber1[] = {
// Wait for player to activate chamber switch
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_activated_object(CHR_P1P2, OBJ_CHAMBER1_SWITCH, /*goto*/ 0x06)
reloop(0x04)
label(0x06)
if_stage_flag_eq(STAGEFLAG_CHAMBER1_RAISED, TRUE, /*goto*/ LABEL_2D)
mute_channel(CHANNEL_0)
// Raising chamber
assign_sound(SFX_DOOR_042B, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER1, TRUE)
assign_sound(SFX_043A, CHANNEL_7)
control_sound_from_object(CHANNEL_7, OBJ_CHAMBER1_SWITCH, TRUE)
set_object_image(OBJ_CHAMBER1_SWITCH, 0, TVCMDLIST_13)
show_hudmsg(CHR_P1P2, L_LIP_066) // "Containment unit raised up."
unset_object_flag(OBJ_CHAMBER1, OBJFLAG_DEACTIVATED)
set_stage_flag(STAGEFLAG_CHAMBER1_RAISED)
restart_timer
beginloop(0x08)
if_timer_gt(200, /*goto*/ 0x06)
endloop(0x08)
label(0x06)
mute_channel(CHANNEL_0)
assign_sound(SFX_DOOR_042C, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER1, TRUE)
set_chr_hiddenflag(CHR_ALIEN, CHRHFLAG_00100000)
beginloop(LABEL_64)
chr_move_to_pad(CHR_ALIEN, PAD_LIP_03CA, 0x01, /*goto*/ 0x06)
endloop(LABEL_64)
label(0x06)
yield
unset_chr_chrflag(CHR_ALIEN, CHRCFLAG_HIDDEN)
set_ailist(CHR_ALIEN, AILIST_CHECK_LOOKING_AT_ALIEN)
label(0x06)
set_object_flag(OBJ_CHAMBER1, OBJFLAG_DEACTIVATED)
reloop(0x04)
// Lowering chamber
label(LABEL_2D)
mute_channel(CHANNEL_0)
assign_sound(SFX_DOOR_042B, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER1, TRUE)
set_chr_chrflag(CHR_ALIEN, CHRCFLAG_HIDDEN)
assign_sound(SFX_043A, CHANNEL_7)
control_sound_from_object(CHANNEL_7, OBJ_CHAMBER1_SWITCH, TRUE)
set_object_image(OBJ_CHAMBER1_SWITCH, 0, TVCMDLIST_12)
show_hudmsg(CHR_P1P2, L_LIP_067) // "Containment unit lowered down."
unset_object_flag(OBJ_CHAMBER1, OBJFLAG_DEACTIVATED)
unset_stage_flag(STAGEFLAG_CHAMBER1_RAISED)
restart_timer
beginloop(0x09)
if_timer_gt(200, /*goto*/ 0x06)
endloop(0x09)
label(0x06)
mute_channel(CHANNEL_0)
assign_sound(SFX_DOOR_042C, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER1, TRUE)
set_object_flag(OBJ_CHAMBER1, OBJFLAG_DEACTIVATED)
endloop(0x04)
endlist
};
u8 func101a_chamber2[] = {
// Wait for player to activate chamber switch
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_activated_object(CHR_P1P2, OBJ_CHAMBER2_SWITCH, /*goto*/ 0x06)
reloop(0x04)
label(0x06)
mute_channel(CHANNEL_0)
if_stage_flag_eq(STAGEFLAG_CHAMBER2_RAISED, TRUE, /*goto*/ LABEL_2D)
// Raising chamber
assign_sound(SFX_DOOR_042B, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER2, TRUE)
assign_sound(SFX_043A, CHANNEL_7)
control_sound_from_object(CHANNEL_7, OBJ_CHAMBER2_SWITCH, TRUE)
set_object_image(OBJ_CHAMBER2_SWITCH, 0, TVCMDLIST_13)
show_hudmsg(CHR_P1P2, L_LIP_066) // "Containment unit raised up."
unset_object_flag(OBJ_CHAMBER2, OBJFLAG_DEACTIVATED)
set_stage_flag(STAGEFLAG_CHAMBER2_RAISED)
restart_timer
beginloop(0x08)
if_timer_gt(200, /*goto*/ 0x06)
endloop(0x08)
label(0x06)
mute_channel(CHANNEL_0)
assign_sound(SFX_DOOR_042C, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER2, TRUE)
set_object_flag(OBJ_CHAMBER2, OBJFLAG_DEACTIVATED)
reloop(0x04)
// Lowering chamber
label(LABEL_2D)
mute_channel(CHANNEL_0)
assign_sound(SFX_DOOR_042B, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER2, TRUE)
assign_sound(SFX_043A, CHANNEL_7)
control_sound_from_object(CHANNEL_7, OBJ_CHAMBER2_SWITCH, TRUE)
set_object_image(OBJ_CHAMBER2_SWITCH, 0, TVCMDLIST_12)
show_hudmsg(CHR_P1P2, L_LIP_067) // "Containment unit lowered down."
unset_object_flag(OBJ_CHAMBER2, OBJFLAG_DEACTIVATED)
unset_stage_flag(STAGEFLAG_CHAMBER2_RAISED)
restart_timer
beginloop(0x09)
if_timer_gt(200, /*goto*/ 0x06)
endloop(0x09)
label(0x06)
mute_channel(CHANNEL_0)
assign_sound(SFX_DOOR_042C, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER2, TRUE)
set_object_flag(OBJ_CHAMBER2, OBJFLAG_DEACTIVATED)
endloop(0x04)
endlist
};
u8 func101b_chamber3[] = {
chamber_logic(OBJ_CHAMBER3_SWITCH, OBJ_CHAMBER3, STAGEFLAG_CHAMBER3_RAISED)
endlist
};
u8 func101c_chamber4[] = {
chamber_logic(OBJ_CHAMBER4_SWITCH, OBJ_CHAMBER4, STAGEFLAG_CHAMBER4_RAISED)
endlist
};
u8 func101d_chamber5[] = {
chamber_logic(OBJ_CHAMBER5_SWITCH, OBJ_CHAMBER5, STAGEFLAG_CHAMBER5_RAISED)
endlist
};
u8 func101e_chamber6[] = {
chamber_logic(OBJ_CHAMBER6_SWITCH, OBJ_CHAMBER6, STAGEFLAG_CHAMBER6_RAISED)
endlist
};
u8 func101f_chamber7[] = {
chamber_logic(OBJ_CHAMBER7_SWITCH, OBJ_CHAMBER7, STAGEFLAG_CHAMBER7_RAISED)
endlist
};
u8 func1020_chamber8[] = {
// Wait for player to activate chamber switch
beginloop(0x04)
// Likely @bug: Chamber 8 is the only chamber that doesn't call
// chr_toggle_p1p2 here.
// Co-op player might not be able to activate chamber 8.
if_chr_activated_object(CHR_P1P2, OBJ_CHAMBER8_SWITCH, /*goto*/ 0x06)
reloop(0x04)
label(0x06)
if_stage_flag_eq(STAGEFLAG_CHAMBER8_RAISED, TRUE, /*goto*/ LABEL_2D)
mute_channel(CHANNEL_0)
// Raising chamber
assign_sound(SFX_DOOR_042B, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER8, TRUE)
assign_sound(SFX_043A, CHANNEL_7)
control_sound_from_object(CHANNEL_7, OBJ_CHAMBER8_SWITCH, TRUE)
show_hudmsg(CHR_P1P2, L_LIP_066) // "Containment unit raised up."
set_object_image(OBJ_CHAMBER8_SWITCH, 0, TVCMDLIST_13)
unset_object_flag(OBJ_CHAMBER8, OBJFLAG_DEACTIVATED)
set_stage_flag(STAGEFLAG_CHAMBER8_RAISED)
restart_timer
beginloop(0x08)
if_timer_gt(200, /*goto*/ 0x06)
endloop(0x08)
label(0x06)
mute_channel(CHANNEL_0)
assign_sound(SFX_DOOR_042C, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER8, TRUE)
set_object_flag(OBJ_CHAMBER8, OBJFLAG_DEACTIVATED)
reloop(0x04)
// Lowering chamber
label(LABEL_2D)
mute_channel(CHANNEL_0)
assign_sound(SFX_DOOR_042B, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER8, TRUE)
assign_sound(SFX_043A, CHANNEL_7)
control_sound_from_object(CHANNEL_7, OBJ_CHAMBER8_SWITCH, TRUE)
show_hudmsg(CHR_P1P2, L_LIP_067) // "Containment unit lowered down."
set_object_image(OBJ_CHAMBER8_SWITCH, 0, TVCMDLIST_12)
unset_object_flag(OBJ_CHAMBER8, OBJFLAG_DEACTIVATED)
unset_stage_flag(STAGEFLAG_CHAMBER8_RAISED)
restart_timer
beginloop(0x09)
if_timer_gt(200, /*goto*/ 0x06)
endloop(0x09)
label(0x06)
mute_channel(CHANNEL_0)
assign_sound(SFX_DOOR_042C, CHANNEL_0)
control_sound_from_object(CHANNEL_0, OBJ_CHAMBER8, TRUE)
set_object_flag(OBJ_CHAMBER8, OBJFLAG_DEACTIVATED)
endloop(0x04)
endlist
};
u8 func0424_alien[] = {
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, AILIST_CHECK_LOOKING_AT_ALIEN)
endlist
};
/**
* Guy that's hidden near the start. He starts sending out clones once you reach
* the second elevator.
*/
u8 func0425_hiddenguy[] = {
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
terminate
endlist
};
u8 func0426_check_looking_at_alien[] = {
beginloop(0x04)
set_target_chr(CHR_BOND)
if_self_has_chrflag(CHRCFLAG_HIDDEN, /*goto*/ LABEL_61)
if_distance_to_target_lt(300, /*goto*/ LABEL_64)
goto_next(LABEL_66)
// Jo is in range
label(LABEL_64)
if_within_targets_fovx_by_angle(10, /*goto*/ LABEL_2D)
// Jo is too far away or not looking at alien
label(LABEL_66)
set_target_chr(CHR_COOP)
if_distance_to_target_lt(300, /*goto*/ LABEL_68)
goto_next(LABEL_69)
// Velvet is in range
label(LABEL_68)
if_within_targets_fovx_by_angle(10, /*goto*/ LABEL_2D)
// Both players are too far away
label(LABEL_69)
// Alien is lowered/hidden
label(LABEL_61)
unset_stage_flag(STAGEFLAG_LOOKING_AT_CHAMBER)
reloop(0x04)
label(LABEL_2D)
set_stage_flag(STAGEFLAG_LOOKING_AT_CHAMBER)
endloop(0x04)
endlist
};
u8 func1021_xray_scanning[] = {
beginloop(0x04)
// @bug? In co-op, the player wearing the xray may be the player who is
// not looking at the alien.
chr_toggle_p1p2(CHR_SELF)
if_player_using_device(CHR_P1P2, WEAPON_XRAYSCANNER, /*goto*/ 0x06)
reloop(0x04)
label(0x06)
if_stage_flag_eq(STAGEFLAG_LOOKING_AT_CHAMBER, TRUE, /*goto*/ 0x06)
reloop(0x04)
label(0x06)
show_hudmsg(CHR_P1P2, L_LIP_074) // "Scanner target acquired."
restart_timer
beginloop(0x08)
if_timer_gt(240, /*goto*/ 0x06)
if_stage_flag_eq(STAGEFLAG_LOOKING_AT_CHAMBER, FALSE, /*goto*/ LABEL_2D)
endloop(0x08)
label(0x06)
show_hudmsg(CHR_P1P2, L_LIP_075) // "Target ID confirmed - XT origin."
set_stage_flag(STAGEFLAG_XRAY_DONE)
terminate
label(LABEL_2D)
show_hudmsg(CHR_P1P2, L_LIP_076) // "Scanner lock lost."
endloop(0x04)
endlist
};
/**
* Waits until the player has been in the xray area for over 10 seconds, then
* spawns a dataDyne shock trooper.
*
* Rare may have decided that it was too challenging to have a guard attack you
* while xraying, hence removed the guard but left this function.
*/
u8 unregistered_function1[] = {
restart_timer
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_timer_gt(600, /*goto*/ 0x08)
pause_timer
if_chr_in_room(CHR_P1P2, 0x00, 0x010d, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0102, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0103, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0104, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0105, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0106, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0107, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0108, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0109, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x010c, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00fa, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00fb, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00fc, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00fd, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00fe, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00ff, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0100, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0101, /*goto*/ 0x06)
reloop(0x04)
label(0x06)
resume_timer
reloop(0x04)
// 10 seconds passed
label(0x08)
if_chr_death_animation_finished(0x46, /*goto*/ LABEL_2D)
reloop(0x04)
label(LABEL_2D)
try_spawn_chr_at_pad(BODY_DDSHOCK, HEAD_DDSHOCK, PAD_LIP_0101, 0x0427, SPAWNFLAG_00000200, /*goto*/ 0x06)
goto_next(LABEL_2D)
label(0x06)
restart_timer
reloop(0x04)
label(LABEL_2D)
endloop(0x04)
endlist
};
/**
* Assigned by the above, which is an unregistered function.
*
* Makes the shock trooper run to one of two xray rooms, depending on which one
* you're in.
*
* @unused
*/
u8 func0427_shock_clone[] = {
stop_chr
set_chr_id(0x46)
set_self_flag_bankx(CHRFLAG0_SKIPSAFETYCHECKS, BANK_0)
set_self_flag_bankx(CHRFLAG1_NOIDLEANIMS, BANK_1)
try_equip_weapon(MODEL_CHRSUPERDRAGON, WEAPON_SUPERDRAGON, 0x10000000, /*goto*/ 0x04)
label(0x04)
yield
chr_toggle_p1p2(CHR_SELF)
if_chr_in_room(CHR_P1P2, 0x00, 0x010d, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0102, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0103, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0104, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0105, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0106, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0107, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0108, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0109, /*goto*/ 0x06)
run_to_pad(PAD_LIP_0184)
set_ailist(CHR_SELF, GAILIST_UNALERTED)
label(0x06)
run_to_pad(PAD_LIP_013B)
set_ailist(CHR_SELF, GAILIST_UNALERTED)
endlist
};
u8 func1023_setup_door_locks[] = {
if_difficulty_lt(DIFF_SA, /*goto*/ 0x06)
if_difficulty_lt(DIFF_PA, /*goto*/ 0x09)
// PA
terminate
// Agent - lock big door at bottom of ramp near showers
label(0x06)
lock_door(0x44, 0x80)
lock_door(0x45, 0x80)
terminate
// SA - unlock the small shower doors
label(0x09)
unlock_door(0x2b, 0x80)
unlock_door(0x2c, 0x80)
unlock_door(0x2d, 0x80)
unlock_door(0x2e, 0x80)
terminate
endlist
};
u8 func0c01_outro[] = {
set_invincible(CHR_BOND)
camera_movement(ANIM_CUT_LIP_OUTRO_CAM)
play_cutscene_track(MUSIC_RESCUE_OUTRO)
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_P1P2_OPPOSITE, CHRCFLAG_HIDDEN)
set_ailist(CHR_P1P2, GAILIST_IDLE)
set_ailist(CHR_BIOTECH1, GAILIST_IDLE)
set_ailist(CHR_BIOTECH2, GAILIST_IDLE)
set_invincible(CHR_BOND)
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_LIP_OUTRO_JO, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 4)
set_chr_chrflag(CHR_BIOTECH1, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(CHR_BIOTECH1, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(CHR_BIOTECH1, CHRHFLAG_00020000)
chr_do_animation(ANIM_CUT_LIP_OUTRO_BIO1, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BIOTECH1, 4)
set_chr_chrflag(CHR_BIOTECH2, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(CHR_BIOTECH2, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(CHR_BIOTECH2, CHRHFLAG_00020000)
chr_do_animation(ANIM_CUT_LIP_OUTRO_BIO2, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BIOTECH2, 4)
set_object_flag2(0x2f, OBJFLAG2_04000000)
set_object_flag3(0x2f, OBJFLAG3_00000010)
object_do_animation(ANIM_CUT_LIP_OUTRO_BED, 0x2f, 0x04, 0xffff)
show_nonessential_chrs(FALSE)
restart_timer
set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE)
yield
set_cutscene_weapon(CHR_P1P2, WEAPON_FALCON2_SCOPE, WEAPON_NONE)
#define wait_until(time, loopid) \
beginloop(loopid) \
if_controller_button_pressed(/*goto*/ LABEL_8B) \
if_timer_gt(time, /*goto*/ 0x06) \
endloop(loopid) \
label(0x06)
wait_until(315, LABEL_73)
open_door(0x30)
open_door(0x31)
wait_until(344, LABEL_64)
play_sound(SFX_0161, CHANNEL_10)
wait_until(380, LABEL_66)
speak(CHR_P1P2, L_LIP_100, MP3_0433, CHANNEL_7, COLOR_09_BLUE) // "Put your hands up and step away from the alien."
wait_until(390, LABEL_68)
play_sound(SFX_0162, CHANNEL_10)
wait_until(460, LABEL_69)
play_sound(SFX_0163, CHANNEL_10)
wait_until(500, LABEL_74)
wait_until(514, LABEL_6A)
play_sound(SFX_0164, CHANNEL_10)
wait_until(580, LABEL_6C)
speak(CHR_P1P2, L_LIP_102, MP3_0435, CHANNEL_7, COLOR_09_BLUE) // "Don't make me tell you again, Doctor. And turn tha..."
wait_until(588, LABEL_6B)
play_sound(SFX_0161, CHANNEL_10)
wait_until(606, LABEL_6D)
play_sound(SFX_0163, CHANNEL_10)
wait_until(612, LABEL_6E)
play_sound(SFX_0164, CHANNEL_10)
wait_until(618, LABEL_6F)
play_sound(SFX_0162, CHANNEL_10)
wait_until(656, LABEL_70)
play_sound(SFX_0163, CHANNEL_10)
wait_until(720, LABEL_71)
play_sound(SFX_0164, CHANNEL_10)
wait_until(786, LABEL_72)
play_sound(SFX_0163, CHANNEL_10)
beginloop(0x08)
if_camera_animating(/*goto*/ LABEL_2D)
goto_next(LABEL_8B)
label(LABEL_2D)
if_controller_button_pressed(/*goto*/ LABEL_8B)
label(LABEL_2D)
endloop(0x08)
label(LABEL_8B)
mute_channel(CHANNEL_10)
stop_cutscene_track
stop_ambient_track
end_level
terminate
endlist
};
u8 func1002_intro[] = {
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
play_cutscene_track(MUSIC_RESCUE_INTRO)
camera_movement(ANIM_CUT_LIP_INTRO_CAM)
cmd0175(60)
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
chr_do_animation(ANIM_CUT_LIP_INTRO_JO, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 4)
set_chr_chrflag(CHR_JONATHAN, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(CHR_JONATHAN, CHRHFLAG_00020000)
chr_do_animation(ANIM_CUT_LIP_INTRO_JON, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_JONATHAN, 4)
set_chr_chrflag(CHR_INTRO_DEAD_GUARD, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(CHR_INTRO_DEAD_GUARD, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(CHR_INTRO_DEAD_GUARD, CHRHFLAG_00020000)
chr_do_animation(ANIM_CUT_LIP_INTRO_GUARD, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_INTRO_DEAD_GUARD, 4)
set_object_flag2(OBJ_CRATE, OBJFLAG2_04000000)
set_object_flag3(OBJ_CRATE, OBJFLAG3_00000010)
object_do_animation(ANIM_CUT_LIP_INTRO_CRATE, OBJ_CRATE, 0x04, 0xffff)
restart_timer
fade_to_color(0x000000ff, 0)
fade_to_color(0x00000000, 90)
set_cutscene_weapon(CHR_BOND, WEAPON_NONE, WEAPON_NONE)
yield
set_cutscene_weapon(CHR_BOND, WEAPON_FALCON2_SILENCER, WEAPON_NONE)
wait_until(62, LABEL_67)
play_sound(SFX_0161, CHANNEL_10)
wait_until(90, LABEL_64)
speak(CHR_BOND, L_LIP_090, MP3_0429, CHANNEL_5, COLOR_03_RED) // "The problem you have is that there is no way to sn..."
wait_until(108, LABEL_66)
play_sound(SFX_0162, CHANNEL_10)
wait_until(686, LABEL_68)
play_sound(SFX_0163, CHANNEL_10)
wait_until(738, LABEL_69)
play_sound(SFX_0164, CHANNEL_10)
wait_until(782, LABEL_6A)
play_sound(SFX_0161, CHANNEL_10)
wait_until(810, LABEL_6B)
speak(CHR_BOND, L_LIP_091, MP3_042A, CHANNEL_5, COLOR_09_BLUE) // "Doesn't sound like a problem to me. Where are thes..."
wait_until(1104, LABEL_6C)
speak(CHR_BOND, L_LIP_092, MP3_042B, CHANNEL_5, COLOR_03_RED) // "In that crate."
wait_until(1186, LABEL_6D)
play_sound(SFX_0162, CHANNEL_10)
wait_until(1222, LABEL_6E)
play_sound(SFX_0163, CHANNEL_10)
wait_until(1246, LABEL_6F)
play_sound(SFX_0163, CHANNEL_10)
wait_until(1316, LABEL_70)
play_sound(SFX_01DC, CHANNEL_10)
wait_until(1346, LABEL_71)
assign_sound(SFX_8169, CHANNEL_1)
control_sound_from_object(CHANNEL_1, OBJ_CRATE, TRUE)
wait_until(1390, LABEL_72)
speak(CHR_BOND, L_LIP_093, MP3_042C, CHANNEL_5, COLOR_09_BLUE) // "Cute. Very cute."
wait_until(1440, LABEL_73)
play_sound(SFX_0161, CHANNEL_10)
wait_until(1492, LABEL_74)
play_sound(SFX_0162, CHANNEL_10)
wait_until(1584, LABEL_75)
play_sound(SFX_0163, CHANNEL_10)
wait_until(1597, LABEL_76)
speak(CHR_BOND, L_LIP_094, MP3_042D, CHANNEL_5, COLOR_03_RED) // "By the way, the stores are crawling with guards. I..."
wait_until(1628, LABEL_77)
play_sound(SFX_0161, CHANNEL_10)
wait_until(1658, LABEL_78)
play_sound(SFX_0162, CHANNEL_10)
wait_until(1724, LABEL_79)
play_sound(SFX_0163, CHANNEL_10)
wait_until(1792, LABEL_7A)
play_sound(SFX_0164, CHANNEL_10)
wait_until(1866, LABEL_7B)
play_sound(SFX_0163, CHANNEL_10)
wait_until(1906, LABEL_7C)
play_sound(SFX_0161, CHANNEL_10)
wait_until(2024, LABEL_7D)
play_sound(SFX_0162, CHANNEL_10)
wait_until(2017, LABEL_7E)
speak(CHR_BOND, L_LIP_095, MP3_042E, CHANNEL_5, COLOR_09_BLUE) // "Certainly. Any other pearls of wisdom?"
wait_until(2275, LABEL_7F)
speak(CHR_BOND, L_LIP_096, MP3_042F, CHANNEL_5, COLOR_03_RED) // "That crate..."
wait_until(2338, LABEL_80)
speak(CHR_BOND, L_LIP_097, MP3_0430, CHANNEL_5, COLOR_09_BLUE) // "Yes?"
wait_until(2409, LABEL_81)
speak(CHR_BOND, L_LIP_098, MP3_0431, CHANNEL_5, COLOR_03_RED) // "It really doesn't like being shot."
wait_until(2440, LABEL_65)
open_door(0x33)
open_door(0x34)
wait_until(2648, LABEL_82)
play_sound(SFX_0172, CHANNEL_10)
wait_until(2680, LABEL_83)
speak(CHR_BOND, L_LIP_099, MP3_0432, CHANNEL_5, COLOR_09_BLUE) // "Great. Now, if I can just fight the urge to report..."
wait_until(2690, LABEL_84)
play_sound(SFX_0173, CHANNEL_10)
wait_until(2986, LABEL_85)
play_sound(SFX_0161, CHANNEL_10)
wait_until(3048, LABEL_86)
play_sound(SFX_0162, CHANNEL_10)
wait_until(3104, LABEL_87)
play_sound(SFX_0163, CHANNEL_10)
wait_until(3152, LABEL_88)
play_sound(SFX_0164, CHANNEL_10)
beginloop(0x08)
if_camera_animating(/*goto*/ LABEL_2D)
goto_next(LABEL_8B)
label(LABEL_2D)
if_controller_button_pressed(/*goto*/ LABEL_8B)
label(LABEL_2D)
endloop(0x08)
label(LABEL_8B)
mute_channel(CHANNEL_10)
mute_channel(CHANNEL_5)
mute_channel(CHANNEL_1)
assign_sound(SFX_8169, CHANNEL_1)
control_sound_from_object(CHANNEL_1, OBJ_CRATE, TRUE)
unset_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
chr_do_animation(ANIM_CUT_LIP_INTRO_JO, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 2)
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_UNPLAYABLE)
remove_chr(CHR_JONATHAN)
unset_chr_chrflag(CHR_INTRO_DEAD_GUARD, CHRCFLAG_UNPLAYABLE)
set_chr_chrflag(CHR_INTRO_DEAD_GUARD, CHRCFLAG_INVINCIBLE)
set_chr_hiddenflag(CHR_INTRO_DEAD_GUARD, CHRHFLAG_00020000)
chr_do_animation(ANIM_CUT_LIP_INTRO_GUARD, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_INTRO_DEAD_GUARD, 2)
mute_channel(CHANNEL_10)
unset_object_flag2(OBJ_CRATE, OBJFLAG2_04000000)
set_object_flag3(OBJ_CRATE, OBJFLAG3_00000010)
object_do_animation(ANIM_CUT_LIP_INTRO_CRATE, OBJ_CRATE, 0x01, 0xfffe)
close_door(0x33)
close_door(0x34)
stop_cutscene_track
stop_ambient_track
enter_firstperson
yield
set_chr_chrflag(CHR_INTRO_DEAD_GUARD, CHRCFLAG_PERIMDISABLEDTMP)
chr_do_animation(ANIM_CUT_LIP_INTRO_GUARD, 2, 3, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_INTRO_DEAD_GUARD, 2)
set_ailist(CHR_INTRO_DEAD_GUARD, GAILIST_IDLE)
yield
kill(CHR_INTRO_DEAD_GUARD)
terminate
endlist
};
u8 func1024_noop[] = {
beginloop(0x04)
if_stage_flag_eq(STAGEFLAG_LIGHT_VIRUS_DONE, TRUE, /*goto*/ 0x03)
endloop(0x04)
label(0x03)
terminate
endlist
};
/**
* Disable chrs, wait until player has keycard, then activate them.
* Most likely guards in the final corridor.
*/
u8 func1025_toggle_guards[] = {
set_chr_chrflag(0x33, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x34, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x33, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x34, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x37, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x2c, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x2d, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x2e, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x37, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x2c, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x2d, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x2e, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x2f, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x30, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x31, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x32, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x2f, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x30, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x31, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x32, CHRCFLAG_INVINCIBLE)
beginloop(0x08)
chr_toggle_p1p2(CHR_SELF)
if_chr_has_object(CHR_P1P2, OBJ_KEYCARD, /*goto*/ LABEL_2D)
endloop(0x08)
label(LABEL_2D)
unset_chr_hiddenflag(CHR_BOND, CHRHFLAG_DISGUISED)
unset_chr_chrflag(0x33, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x34, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x33, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x34, CHRCFLAG_INVINCIBLE)
set_ailist(0x33, AILIST_BIOTECH_GUARD_ALERTED)
set_ailist(0x34, AILIST_BIOTECH_GUARD_ALERTED)
unset_chr_chrflag(0x37, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x2c, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x2d, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x2e, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x37, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x2c, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x2d, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x2e, CHRCFLAG_INVINCIBLE)
set_ailist(0x37, AILIST_SUPERDRAGON_GUARD)
set_ailist(0x2c, AILIST_SUPERDRAGON_GUARD)
set_ailist(0x2d, AILIST_SUPERDRAGON_GUARD)
set_ailist(0x2e, AILIST_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x2f, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x30, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x31, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x32, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x2f, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x30, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x31, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x32, CHRCFLAG_INVINCIBLE)
set_ailist(0x2f, AILIST_BIOTECH_GUARD)
set_ailist(0x30, AILIST_SUPERDRAGON_GUARD)
set_ailist(0x31, AILIST_SUPERDRAGON_GUARD)
set_ailist(0x32, AILIST_SUPERDRAGON_GUARD)
terminate
endlist
};
u8 func0429_spawn_while_xraying[] = {
set_chr_dodge_rating(2, 10)
set_accuracy(8)
set_reaction_speed(35)
set_chr_maxdamage(CHR_SELF, 50)
add_health_or_armor(0)
set_recovery_speed(35)
set_shield(0)
set_self_chrflag(CHRCFLAG_CLONEABLE)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_00040000)
restart_timer
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_has_hiddenflag(CHR_P1P2, CHRHFLAG_DISGUISED, /*goto*/ 0x0d)
if_timer_gt(1800, /*goto*/ LABEL_2D)
reloop(0x04)
// 30 seconds passed and not disguised
label(LABEL_2D)
chr_toggle_p1p2(CHR_SELF)
if_chr_has_hiddenflag(CHR_P1P2, CHRHFLAG_DISGUISED, /*goto*/ 0x0d)
// Xray area
if_chr_in_room(CHR_P1P2, 0x00, 0x010d, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0102, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0103, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0104, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0105, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0106, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0107, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0108, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0109, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x010c, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00fa, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00fb, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00fc, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00fd, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00fe, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x00ff, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0100, /*goto*/ 0x06)
if_chr_in_room(CHR_P1P2, 0x00, 0x0101, /*goto*/ 0x06)
reloop(0x04)
label(0x06)
label(LABEL_4E)
if_chr_death_animation_finished(CHR_CLONE, /*goto*/ LABEL_4E)
reloop(0x04)
label(LABEL_4E)
try_spawn_clone2(CHR_SELF, 0x042a, 0, /*goto*/ LABEL_2D)
label(LABEL_2D)
restart_timer
yield
endloop(0x04)
label(0x0d)
terminate
endlist
};
u8 func042a_init_xray_clone[] = {
set_self_flag_bankx(CHRFLAG1_NOIDLEANIMS, BANK_1)
label(0x04)
rebuild_teams
rebuild_squadrons
try_inherit_properties(0x47, /*goto*/ 0x06)
label(0x06)
set_ailist(CHR_SELF, 0x042b)
endlist
};
u8 func042b_xray_clone[] = {
#if VERSION >= VERSION_NTSC_1_0
set_target_chr(CHR_BOND)
#endif
set_ailist(CHR_SELF, GAILIST_ALERTED)
endlist
};
u8 func042c_dragon_guard[] = {
set_chr_dodge_rating(2, 10)
set_accuracy(8)
set_reaction_speed(35)
set_chr_maxdamage(CHR_SELF, 50)
add_health_or_armor(0)
set_recovery_speed(35)
set_shield(0)
set_ailist(CHR_SELF, GAILIST_UNALERTED)
endlist
};
u8 func042d_superdragon_guard[] = {
set_chr_dodge_rating(2, 10)
set_accuracy(10)
set_reaction_speed(35)
set_chr_maxdamage(CHR_SELF, 80)
add_health_or_armor(0)
set_recovery_speed(0)
set_shield(0)
set_ailist(CHR_SELF, GAILIST_UNALERTED)
endlist
};
u8 func042e_biotech_guard[] = {
set_chr_dodge_rating(2, 10)
set_accuracy(18)
set_reaction_speed(35)
set_chr_maxdamage(CHR_SELF, 80)
add_health_or_armor(0)
set_recovery_speed(0)
set_shield(0)
set_ailist(CHR_SELF, GAILIST_UNALERTED)
endlist
};
u8 func042e_biotech_guard_alerted[] = {
set_chr_dodge_rating(2, 10)
set_accuracy(18)
set_reaction_speed(35)
set_chr_maxdamage(CHR_SELF, 80)
add_health_or_armor(0)
set_recovery_speed(0)
set_shield(0)
#if VERSION >= VERSION_NTSC_1_0
set_target_chr(CHR_BOND)
#endif
set_ailist(CHR_SELF, GAILIST_ALERTED)
endlist
};
u8 func142d_start_lifts[] = {
activate_lift(1, 0x35)
activate_lift(2, 0x1a)
activate_lift(3, 0x1b)
activate_lift(4, 0x38)
activate_lift(5, 0x39)
activate_lift(6, 0x1c)
activate_lift(7, 0x1d)
activate_lift(8, 0x1e)
activate_lift(9, 0x1f)
activate_lift(10, 0x20)
activate_lift(11, 0x21)
terminate
endlist
};
u8 func1027_check_disguise_worn[] = {
beginloop(0x04)
if_chr_has_hiddenflag(CHR_BOND, CHRHFLAG_DISGUISED, /*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
show_hudmsg(CHR_BOND, L_LIP_077) // "Disguise has been worn."
set_returnlist(0x00, 0x0401)
set_returnlist(0x01, 0x0402)
set_returnlist(0x02, 0x0403)
set_returnlist(0x03, 0x0404)
set_returnlist(0x04, 0x0405)
set_returnlist(0x05, AILIST_DRAGON_GUARD)
set_returnlist(0x06, AILIST_DRAGON_GUARD)
set_returnlist(0x07, AILIST_DRAGON_GUARD)
set_returnlist(0x08, AILIST_DRAGON_GUARD)
set_returnlist(0x09, AILIST_DRAGON_GUARD)
set_returnlist(0x0a, AILIST_DRAGON_GUARD)
set_returnlist(0x0b, AILIST_DRAGON_GUARD)
set_returnlist(0x0c, 0x0406)
set_returnlist(0x0d, 0x0406)
set_returnlist(0x0e, 0x0406)
set_returnlist(0x0f, 0x0407)
set_returnlist(0x10, 0x0408)
set_returnlist(0x11, AILIST_DRAGON_GUARD)
set_returnlist(0x27, AILIST_DRAGON_GUARD)
set_returnlist(0x28, AILIST_DRAGON_GUARD)
set_returnlist(0x12, AILIST_DRAGON_GUARD)
set_returnlist(0x13, AILIST_DRAGON_GUARD)
set_returnlist(0x14, 0x0409)
set_returnlist(0x15, 0x040a)
set_returnlist(0x16, AILIST_DRAGON_GUARD)
set_returnlist(0x17, AILIST_DRAGON_GUARD)
set_returnlist(0x18, AILIST_DRAGON_GUARD)
set_returnlist(0x1e, AILIST_DRAGON_GUARD)
set_returnlist(0x19, AILIST_DRAGON_GUARD)
set_returnlist(0x1a, AILIST_DRAGON_GUARD)
set_returnlist(0x1d, AILIST_DRAGON_GUARD)
set_returnlist(0x1b, 0x040b)
set_returnlist(0x1c, 0x040c)
set_returnlist(0x1f, AILIST_DRAGON_GUARD)
set_returnlist(0x20, AILIST_DRAGON_GUARD)
set_returnlist(0x21, AILIST_DRAGON_GUARD)
set_returnlist(0x22, AILIST_DRAGON_GUARD)
set_ailist(0x00, AILIST_BECOME_UNAWARE)
set_ailist(0x01, AILIST_BECOME_UNAWARE)
set_ailist(0x02, AILIST_BECOME_UNAWARE)
set_ailist(0x03, AILIST_BECOME_UNAWARE)
set_ailist(0x04, AILIST_BECOME_UNAWARE)
set_ailist(0x05, AILIST_BECOME_UNAWARE)
set_ailist(0x06, AILIST_BECOME_UNAWARE)
set_ailist(0x07, AILIST_BECOME_UNAWARE)
set_ailist(0x08, AILIST_BECOME_UNAWARE)
set_ailist(0x09, AILIST_BECOME_UNAWARE)
set_ailist(0x0a, AILIST_BECOME_UNAWARE)
set_ailist(0x0b, AILIST_BECOME_UNAWARE)
set_ailist(0x0c, AILIST_BECOME_UNAWARE)
set_ailist(0x0d, AILIST_BECOME_UNAWARE)
set_ailist(0x0e, AILIST_BECOME_UNAWARE)
set_ailist(0x0f, AILIST_BECOME_UNAWARE)
set_ailist(0x10, AILIST_BECOME_UNAWARE)
set_ailist(0x11, AILIST_BECOME_UNAWARE)
set_ailist(0x27, AILIST_BECOME_UNAWARE)
set_ailist(0x28, AILIST_BECOME_UNAWARE)
set_ailist(0x12, AILIST_BECOME_UNAWARE)
set_ailist(0x13, AILIST_BECOME_UNAWARE)
set_ailist(0x14, AILIST_BECOME_UNAWARE)
set_ailist(0x15, AILIST_BECOME_UNAWARE)
set_ailist(0x16, AILIST_BECOME_UNAWARE)
set_ailist(0x17, AILIST_BECOME_UNAWARE)
set_ailist(0x18, AILIST_BECOME_UNAWARE)
set_ailist(0x1e, AILIST_BECOME_UNAWARE)
set_ailist(0x19, AILIST_BECOME_UNAWARE)
set_ailist(0x1a, AILIST_BECOME_UNAWARE)
set_ailist(0x1d, AILIST_BECOME_UNAWARE)
set_ailist(0x1b, AILIST_BECOME_UNAWARE)
set_ailist(0x1c, AILIST_BECOME_UNAWARE)
set_ailist(0x1f, AILIST_BECOME_UNAWARE)
set_ailist(0x20, AILIST_BECOME_UNAWARE)
set_ailist(0x21, AILIST_BECOME_UNAWARE)
set_ailist(0x22, AILIST_BECOME_UNAWARE)
terminate
endlist
};
u8 func1028_toggle_mechanic[] = {
if_savefile_flag_is_set(GAMEFILEFLAG_RESCUE_MECHANIC_DEAD, /*goto*/ 0x06)
terminate
label(0x06)
disable_chr(CHR_MECHANIC)
terminate
endlist
};
u8 func1029_msg_showers[] = {
beginloop(0x04)
if_chr_in_room(CHR_BOND, 0x00, 0x00a9, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_BOND, 0x00, 0x00aa, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_BOND, 0x00, 0x00a9, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_BOND, 0x00, 0x00bc, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_BOND, 0x00, 0x009b, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_BOND, 0x00, 0x00b5, /*goto*/ LABEL_2D)
if_chr_in_room(CHR_BOND, 0x00, 0x00ad, /*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
speak(CHR_BOND, L_LIP_078, MP3_03BC, CHANNEL_6, COLOR_09_BLUE) // "The showers... Now, if I can convince someone to p..."
terminate
endlist
};
u8 func102a_msg_temperaturedropping[] = {
restart_timer
beginloop(0x04)
if_chr_in_room(CHR_BOND, 0x00, 0x010a, /*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
speak(CHR_BOND, L_LIP_079, SFX_8180, CHANNEL_6, COLOR_09_BLUE) // "The temperature's dropping... You must be close to..."
terminate
endlist
};
u8 func102b_msg_airrecycled[] = {
beginloop(0x04)
if_chr_in_room(CHR_BOND, 0x00, 0x007f, /*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
speak(CHR_BOND, L_LIP_080, MP3_03BE, CHANNEL_6, COLOR_09_BLUE) // "The air's heavily recycled around here - must be n..."
terminate
endlist
};
u8 func102c_msg_hurry[] = {
beginloop(0x04)
if_chr_in_room(CHR_BOND, 0x00, 0x0093, /*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
speak(CHR_BOND, L_LIP_081, SFX_8181, CHANNEL_6, COLOR_09_BLUE) // "There he is, Jo! Hurry or you'll be too late!"
terminate
endlist
};
/**
* This function is run on many guards when Jo puts on the disguise.
*/
u8 func0416_become_unaware[] = {
set_chr_hiddenflag(CHR_SELF, CHRHFLAG_00002000)
if_chr_deadish(CHR_SELF, /*goto*/ 0x0f)
if_can_see_target(/*goto*/ LABEL_2D)
set_alertness(0)
return
label(LABEL_2D)
#if VERSION >= VERSION_NTSC_1_0
set_target_chr(CHR_BOND)
#endif
set_ailist(CHR_SELF, GAILIST_ALERTED)
// Dying/dead
label(0x0f)
terminate
endlist
};
u8 unregistered_function2[] = {
set_object_flag(OBJ_WALL, OBJFLAG_INVINCIBLE)
beginloop(0x04)
if_object_in_good_condition(OBJ_CRATE, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
endloop(0x04)
// Crate destroyed
label(0x06)
unset_object_flag(OBJ_WALL, OBJFLAG_INVINCIBLE)
terminate
endlist
};
u8 func102f_shuffle_disguise[] = {
yield
yield
if_difficulty_lt(DIFF_PA, /*goto*/ 0x0c)
call_rng
if_rand_lt(51, /*goto*/ 0x08)
if_rand_lt(102, /*goto*/ 0x09)
if_rand_lt(153, /*goto*/ 0x0a)
if_rand_lt(204, /*goto*/ 0x0b)
// Rand >= 204 (52 out of 256 chance)
disable_object(OBJ_LABCOAT1)
disable_object(OBJ_LABCOAT2)
disable_object(OBJ_LABCOAT3)
disable_object(OBJ_LABCOAT4)
terminate
// Rand < 51 (51 out of 256 chance)
label(0x08)
disable_object(OBJ_LABCOAT2)
disable_object(OBJ_LABCOAT3)
disable_object(OBJ_LABCOAT4)
disable_object(OBJ_LABCOAT5)
terminate
// Rand >= 51 and < 102 (51 out of 256 chance)
label(0x09)
disable_object(OBJ_LABCOAT1)
disable_object(OBJ_LABCOAT3)
disable_object(OBJ_LABCOAT4)
disable_object(OBJ_LABCOAT5)
terminate
// Rand >= 102 and < 153 (51 out of 256 chance)
label(0x0a)
disable_object(OBJ_LABCOAT1)
disable_object(OBJ_LABCOAT2)
disable_object(OBJ_LABCOAT4)
disable_object(OBJ_LABCOAT5)
terminate
// Rand >= 153 and < 204 (51 out of 256 chance)
label(0x0b)
disable_object(OBJ_LABCOAT1)
disable_object(OBJ_LABCOAT2)
disable_object(OBJ_LABCOAT3)
disable_object(OBJ_LABCOAT5)
terminate
// A and SA
label(0x0c)
give_object_to_chr(OBJ_LABCOAT1, CHR_LABTECH_SHOWERS)
disable_object(OBJ_LABCOAT2)
disable_object(OBJ_LABCOAT3)
disable_object(OBJ_LABCOAT4)
disable_object(OBJ_LABCOAT5)
terminate
// Unreachable
label(0x0d)
disable_object(OBJ_LABCOAT1)
disable_object(OBJ_LABCOAT2)
disable_object(OBJ_LABCOAT4)
disable_object(OBJ_LABCOAT5)
terminate
endlist
};
u8 func1030_lift_door_sounds[] = {
beginloop(LABEL_5E)
chr_toggle_p1p2(CHR_SELF)
if_chr_activated_object(CHR_P1P2, 0x46, /*goto*/ LABEL_2D)
if_chr_activated_object(CHR_P1P2, 0x47, /*goto*/ LABEL_2D)
if_chr_activated_object(CHR_P1P2, 0x48, /*goto*/ LABEL_2D)
if_chr_activated_object(CHR_P1P2, 0x49, /*goto*/ LABEL_2D)
reloop(LABEL_5E)
label(LABEL_2D)
play_sound(SFX_DOOR_81B0, -1)
restart_timer
beginloop(0x08)
if_timer_gt(120, /*goto*/ 0x06)
endloop(0x08)
label(0x06)
endloop(LABEL_5E)
endlist
};
u8 func1031_toggle_doorman[] = {
yield
set_chr_chrflag(CHR_DOORMAN, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_DOORMAN, CHRCFLAG_INVINCIBLE)
beginloop(LABEL_5E)
label(LABEL_2D)
if_difficulty_lt(DIFF_PA, /*goto*/ LABEL_2D)
if_objective_complete(0, /*goto*/ LABEL_2D)
goto_first(LABEL_5E)
label(LABEL_2D)
if_difficulty_lt(DIFF_SA, /*goto*/ LABEL_2D)
if_objective_complete(1, /*goto*/ LABEL_2D)
endloop(LABEL_5E)
label(LABEL_2D)
unset_chr_chrflag(CHR_DOORMAN, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_DOORMAN, CHRCFLAG_INVINCIBLE)
terminate
endlist
};
u8 func1032_count_last_room_guards[] = {
beginloop(0x04)
set_morale(0)
if_chr_deadish(0x23, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
add_morale(1)
label(0x06)
if_chr_deadish(0x24, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
add_morale(1)
label(0x06)
if_chr_deadish(0x25, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
add_morale(1)
label(0x06)
if_chr_deadish(0x26, /*goto*/ LABEL_2D)
goto_next(0x06)
label(LABEL_2D)
add_morale(1)
label(0x06)
if_morale_lt(3, /*goto*/ LABEL_2D)
set_stage_flag(STAGEFLAG_ONE_KEYCARD_GUARD_REMAINING)
terminate
label(LABEL_2D)
endloop(0x04)
endlist
};
/**
* When the player uses the disguise the game sets CHRHFLAG_UNTARGETABLE on
* them. Guards check their targets for this flag periodically and unset their
* targets if found.
*
* This ailist disables the flag after 10 seconds. This causes guards to
* disengage combat and gives the player an opportunity to leave a combat
* situation before the guards can become savvy again and foil the disguise.
*/
u8 func1033_unset_untargetable_flag[] = {
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
if_chr_has_hiddenflag(CHR_P1P2, CHRHFLAG_UNTARGETABLE, /*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
restart_timer
beginloop(LABEL_64)
if_timer_gt(600, /*goto*/ LABEL_2D)
endloop(LABEL_64)
label(LABEL_2D)
unset_chr_hiddenflag(CHR_P1P2, CHRHFLAG_UNTARGETABLE)
terminate
endlist
};
u8 func1034_setup_rtracker[] = {
yield
set_object_flag3(OBJ_FALCON2SILENCED1, OBJFLAG3_RTRACKED_BLUE)
set_object_flag3(OBJ_FALCON2SILENCED2, OBJFLAG3_RTRACKED_BLUE)
set_object_flag3(OBJ_PHOENIX, OBJFLAG3_RTRACKED_BLUE)
terminate
endlist
};
u8 func1435_setup_environment[] = {
yield
configure_environment(0x007c, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x007d, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x007e, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x007f, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0080, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0081, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0082, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0083, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0084, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0085, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0086, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0087, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0088, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0089, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x008a, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x008b, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x008c, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x008d, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x008e, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x008f, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0090, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0091, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0092, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0093, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0094, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0095, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0096, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0097, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0098, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0099, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x009a, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x009b, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00a5, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00a6, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00a7, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00a8, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00a9, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00aa, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00ab, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00ac, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00ad, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00ae, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00af, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00b0, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00b1, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00b3, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00b4, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00b5, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00b6, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00b7, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00b8, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00b9, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00ba, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00bb, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00bc, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00be, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00bf, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00c0, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00c1, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00c2, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00c3, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00c4, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00c5, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00c6, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00c7, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00c8, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00c9, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00ca, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00cb, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00f2, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00fa, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00fb, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00fc, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00fd, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00fe, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x00ff, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0100, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0101, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0102, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0103, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0104, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0105, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0106, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0107, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0108, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x0109, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x010a, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x010b, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x010c, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x010d, AIENVCMD_ROOM_SETAMBIENT, TRUE)
configure_environment(0x010e, AIENVCMD_ROOM_SETAMBIENT, TRUE)
terminate
endlist
};
u8 func0432_init_biotech1[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, AILIST_BIOTECH1)
endlist
};
u8 func0433_init_biotech2[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, AILIST_BIOTECH2)
endlist
};
u8 func0430_biotech2[] = {
label(0x0b)
call_rng
if_rand_gt(85, /*goto*/ LABEL_62)
if_rand_gt(170, /*goto*/ LABEL_63)
chr_do_animation(ANIM_OPERATE_0221, 0, -1, CHRANIMFLAG_SLOWUPDATE, 0, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_62)
chr_do_animation(ANIM_OPERATE_0222, 0, -1, CHRANIMFLAG_SLOWUPDATE, 0, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_63)
chr_do_animation(ANIM_OPERATE_0223, 0, -1, CHRANIMFLAG_SLOWUPDATE, 0, CHR_SELF, 2)
goto_next(0x04)
beginloop(0x04)
if_chr_stopped(/*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
goto_first(0x0b)
endlist
};
u8 func0431_biotech1[] = {
label(0x0b)
call_rng
if_rand_gt(85, /*goto*/ LABEL_62)
if_rand_gt(170, /*goto*/ LABEL_63)
chr_do_animation(ANIM_OPERATE_0204, 0, -1, CHRANIMFLAG_SLOWUPDATE, 0, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_62)
chr_do_animation(ANIM_OPERATE_0205, 0, -1, CHRANIMFLAG_SLOWUPDATE, 0, CHR_SELF, 2)
goto_next(0x04)
label(LABEL_63)
chr_do_animation(ANIM_OPERATE_0206, 0, -1, CHRANIMFLAG_SLOWUPDATE, 0, CHR_SELF, 2)
goto_next(0x04)
beginloop(0x04)
if_chr_stopped(/*goto*/ LABEL_2D)
endloop(0x04)
label(LABEL_2D)
goto_first(0x0b)
endlist
};
u8 func1036_check_door_terminal_destroyed[] = {
if_difficulty_lt(DIFF_PA, /*goto*/ LABEL_2E)
beginloop(0x0b)
if_object_in_good_condition(OBJ_DOOR_TERMINAL, /*goto*/ LABEL_2D)
if_stage_flag_eq(STAGEFLAG_DOOR_VIRUS_DOWNLOADED, TRUE, /*goto*/ LABEL_2E)
show_hudmsg(CHR_BOND, L_LIP_068) // "Mission critical equipment destroyed."
set_stage_flag(STAGEFLAG_UPLINK_TERMINAL_DESTROYED)
label(LABEL_2E)
terminate
label(LABEL_2D)
endloop(0x0b)
endlist
};
struct ailist ailists[] = {
{ func1400_give_datauplinks, 0x1400 },
{ func1001_objectives_failed_msg, 0x1001 },
{ func1002_intro, 0x1002 },
{ func1003_uplink_doors, 0x1003 },
{ func1004_uplink_lights, 0x1004 },
{ func1005_uplink_autoguns, 0x1005 },
{ func1006_check_lab_accessed, 0x1006 },
{ func1007_check_disguise_collected, 0x1007 },
{ func1009_disguise_timer, 0x1009 },
{ func100a_random_doors, 0x100a },
{ func100b_check_doorman_dead, 0x100b },
{ func100c_keycardguy_lights, 0x100c },
{ func100d_check_entered_lab, 0x100d },
{ func100e_elvis_timer, 0x100e },
{ func100f_check_end_level, 0x100f },
{ func1010_give_keycard, 0x1010 },
{ func1011_unhide_warehouse_spawner, 0x1011 },
{ func1013_check_chamber_switch_destroyed, 0x1013 },
{ func1014_check_crate_destroyed, 0x1014 },
{ func1016_check_undisguised, 0x1016 },
{ func1017_activate_autogun, 0x1017 },
{ func1018_disable_chambers, 0x1018 },
{ func1019_chamber1, 0x1019 },
{ func101a_chamber2, 0x101a },
{ func101b_chamber3, 0x101b },
{ func101c_chamber4, 0x101c },
{ func101d_chamber5, 0x101d },
{ func101e_chamber6, 0x101e },
{ func101f_chamber7, 0x101f },
{ func1020_chamber8, 0x1020 },
{ func1021_xray_scanning, 0x1021 },
{ func1023_setup_door_locks, 0x1023 },
{ func1024_noop, 0x1024 },
{ func1025_toggle_guards, 0x1025 },
{ func1026_check_records_destroyed, 0x1026 },
{ func1027_check_disguise_worn, 0x1027 },
{ func1028_toggle_mechanic, 0x1028 },
{ func1029_msg_showers, 0x1029 },
{ func102a_msg_temperaturedropping, 0x102a },
{ func102b_msg_airrecycled, 0x102b },
{ func102c_msg_hurry, 0x102c },
{ func142d_start_lifts, 0x142d },
{ func102f_shuffle_disguise, 0x102f },
{ func1030_lift_door_sounds, 0x1030 },
{ func1031_toggle_doorman, 0x1031 },
{ func1032_count_last_room_guards, 0x1032 },
{ func1033_unset_untargetable_flag, 0x1033 },
{ func1034_setup_rtracker, 0x1034 },
{ func1435_setup_environment, 0x1435 },
{ func1036_check_door_terminal_destroyed, 0x1036 },
{ func1002_intro, 0x0c00 },
{ func0c01_outro, 0x0c01 },
{ func0401_start_path00, 0x0401 },
{ func0402_start_path01, 0x0402 },
{ func0403_start_path02, 0x0403 },
{ func0404_start_path03, 0x0404 },
{ func0405_start_path04, 0x0405 },
{ func0406_start_path05, 0x0406 },
{ func0407_start_path06, 0x0407 },
{ func0408_start_path07, 0x0408 },
{ func0409_start_path08, 0x0409 },
{ func040a_start_path09, 0x040a },
{ func040b_start_path10, 0x040b },
{ func040c_start_path11, 0x040c },
{ func040d_start_path12, 0x040d },
{ func040e_start_path13, 0x040e },
{ func040f_start_path14, 0x040f },
{ func0410_labtech_showers_sa_pa, 0x0410 },
{ func0411_labtech_showers_agent, 0x0411 },
{ func0412_init_labtech_showers, 0x0412 },
{ func0413_mechanic, 0x0413 },
{ func0414_init_mechanic, 0x0414 },
{ func0415_warehouse_spawner, 0x0415 },
{ func0416_become_unaware, 0x0416 },
{ func0429_spawn_while_xraying, 0x0429 },
{ func042a_init_xray_clone, 0x042a },
{ func042b_xray_clone, 0x042b },
{ func0417_warehouse_clone, 0x0417 },
{ func0418_doorman, 0x0418 },
{ func0419_init_doorman, 0x0419 },
{ func041a_labtech_harrysmate, 0x041a },
{ func041b_labtech_keycardguy, 0x041b },
{ func041c_unused_041c, 0x041c },
{ func041d_unused_041d, 0x041d },
{ func041e_unused_041e, 0x041e },
{ func041f_labtech_lights, 0x041f },
{ func0420_labtech_doors, 0x0420 },
{ func0421_init_labtech_doors, 0x0421 },
{ func0422_labtech_records, 0x0422 },
{ func0423_init_labtech_records, 0x0423 },
{ func0424_alien, 0x0424 },
{ func0425_hiddenguy, 0x0425 },
{ func0426_check_looking_at_alien, 0x0426 },
{ func0427_shock_clone, 0x0427 },
{ func0c01_outro, 0x0428 },
{ func042c_dragon_guard, 0x042c },
{ func042d_superdragon_guard, 0x042d },
{ func042e_biotech_guard, 0x042e },
{ func042e_biotech_guard_alerted, 0x042f },
{ func0432_init_biotech1, 0x0432 },
{ func0433_init_biotech2, 0x0433 },
{ func0430_biotech2, 0x0430 },
{ func0431_biotech1, 0x0431 },
{ NULL, 0 },
};
struct path paths[] = {
{ path00, 0, 0 },
{ path01, 1, 0 },
{ path02, 2, 0 },
{ path03, 3, 0 },
{ path04, 4, 0 },
{ path05, 5, 0 },
{ path06, 6, 0 },
{ path07, 7, 0 },
{ path08, 8, 0 },
{ path09, 9, 0 },
{ path10, 10, 0 },
{ path11, 11, 0 },
{ path12, 12, 0 },
{ path13, 13, 0 },
{ path14, 14, 0 },
{ NULL, 0, 0 },
};