Files
perfect-dark/asm/setup/setuprit.s
T
2019-09-06 22:31:19 +10:00

3983 lines
194 KiB
ArmAsm

#
# Air Force One
#
.set HEADERLEN, 0x20
.include "asm/include/setup.inc"
// Characters
.set CHR_ELVIS, 0x00
.set CHR_PRESIDENT, 0x18
.set CHR_PILOT1, 0x19
.set CHR_PILOT2, 0x1a
.set CHR_STEWARDESS, 0x1b
.set CHR_STEWARD, 0x1c
.set CHR_TAKER1, 0x2a
.set CHR_TAKER2, 0x2b
.set CHR_TRENT, 0x32
.set CHR_BLONDE1, 0x33
.set CHR_BLONDE2, 0x34
// Objects
.set OBJ_EQUIPMENT, 0x00
.set OBJ_DATAUPLINK_JOANNA, 0x01
.set OBJ_COMMSHUB1, 0x02
.set OBJ_AUTOPILOT_SWITCH, 0x03
.set OBJ_REMOTEMINE_JOANNA, 0x04
.set OBJ_DUMBWAITER1, 0x05
.set OBJ_DUMBWAITER2, 0x06
.set OBJ_DUMBWAITER1_SWITCH, 0x07
.set OBJ_DUMBWAITER2_SWITCH, 0x08
.set OBJ_FLOORHATCH, 0x0b
.set OBJ_COCKPITDOOR, 0x0e
.set OBJ_DATAUPLINK_VELVET, 0x16
.set OBJ_REMOTEMINE_VELVET, 0x17
.set OBJ_EQUIPMENT_SWITCH, 0x1e
.set OBJ_HOVERBIKE_SWITCH, 0x21
.set OBJ_KEYCARD, 0x22
.set OBJ_ESCAPE_POD, 0x24
.set OBJ_EXTERIOR_DOOR, 0x25
.set OBJ_EXTERIOR_DOOR_DETACHED, 0x26
.set OBJ_COMMSHUB2, 0x27
.set OBJ_COMMSHUB3, 0x28
.set OBJ_COMMSHUB4, 0x29
.set OBJ_COMMSHUB5, 0x2a
.set OBJ_FLOOR_HATCH_DETACHED, 0x2e
.set OBJ_EQUIPMENT_VELVET, 0x3a
// Stage flags
.set STAGEFLAG_POD_DESTROYED, 0x00000004
.set STAGEFLAG_ALL_OBJECTIVES_COMPLETE, 0x00000008
.set STAGEFLAG_PLANE_NOSEDIVING, 0x00000010
.set STAGEFLAG_JOANNA_MINE_WASTED, 0x00000020
.set STAGEFLAG_VELVET_MINE_WASTED, 0x00000040
.set STAGEFLAG_AI_BUDDY_EXISTS, 0x00000080
.set STAGEFLAG_PRESIDENT_STARTED_RUNNING, 0x00000100
.set STAGEFLAG_PRESIDENT_AT_POD, 0x00000200
.set STAGEFLAG_UFO_ATTACHMENT_DAMAGED, 0x00000800
.set STAGEFLAG_KILLED_NEUTRALS, 0x00001000
.set STAGEFLAG_PILOTS_DEAD, 0x00002000
.set STAGEFLAG_PLANE_STABILIZED, 0x00004000
.set STAGEFLAG_AUTOPILOT_DESTROYED, 0x00008000
.set STAGEFLAG_PRESIDENT_DEAD, 0x00010000
.set STAGEFLAG_BOTH_BLONDES_DEAD, 0x00020000
.set STAGEFLAG_ONE_BLONDE_DEAD, 0x00040000
.set STAGEFLAG_PRESIDENT_CALLED_SECURITY, 0x00080000
.set STAGEFLAG_00100000, 0x00100000
.set STAGEFLAG_INTRO_FINISHED, 0x00200000
.set STAGEFLAG_TRIGGER_MIDCUTSCENE, 0x00400000
.set STAGEFLAG_MIDCUTSCENE_FINISHED, 0x00800000
.set STAGEFLAG_EQUIPMENT_RAISED, 0x01000000
.set STAGEFLAG_EQUIPMENT_SWITCH_DESTROYED, 0x02000000
.set STAGEFLAG_BOTH_MINES_WASTED, 0x04000000
.set STAGEFLAG_PRESIDENT_INJURED, 0x08000000
.set STAGEFLAG_PLANE_CRASHED, 0x10000000
.set STAGEFLAG_MIDCUTSCENE_STARTED, 0x20000000
// Functions
.set FUNC_INIT_STRIPES, 0x0401
.set FUNC_INIT_ELVIS, 0x0402
.set FUNC_STRIPES, 0x0403
.set FUNC_PRESIDENT_RUNNING, 0x0404
.set FUNC_PRESIDENT_IN_ROOM, 0x0405
.set FUNC_INIT_PRESIDENT, 0x0406
.set FUNC_STEWARD, 0x0407
.set FUNC_STEWARDESS, 0x0408
.set FUNC_DEFEND_PAD, 0x040a
.set FUNC_DEFEND_PRESIDENT, 0x040b
.set FUNC_INIT_DEFEND_PAD, 0x040c
.set FUNC_TAKER1, 0x040f
.set FUNC_TAKER2, 0x0410
.set FUNC_TYPING_GUY, 0x0411
.set FUNC_SITTING_GUY, 0x0412
.set FUNC_TAKER, 0x0413
.set FUNC_COCKPIT_STRIPES, 0x0414
.set FUNC_CLONER1, 0x0415
.set FUNC_INIT_CLONE1, 0x0416
.set FUNC_CLONE1, 0x0417
.set FUNC_CLONER2, 0x0418
.set FUNC_INIT_CLONE2, 0x0419
.set FUNC_CLONE2, 0x041a
.set FUNC_CLONER3, 0x041b
.set FUNC_INIT_CLONE3, 0x041c
.set FUNC_CLONE3, 0x041d
.set FUNC_BLONDE, 0x041e
.set FUNC_INIT_BLONDE, 0x041f
.set FUNC_TRENT_ATTACKING, 0x0420
.set FUNC_TRENT_WAITING, 0x0421
.set FUNC_TRENT_RUNNING, 0x0422
.set FUNC_OUTRO, 0x0423
.set FUNC_MIDCUTSCENE, 0x0424
.set FUNC_STEWARD_SHOT, 0x0425
.set FUNC_BE_UNALERT, 0x0429
.set FUNC_INIT_NEUTRAL, 0x042a
.set FUNC_REINIT_STRIPES, 0x042b
.set FUNC_REMOVE_IF_OFFSCREEN, 0x042c
props:
briefing 0, 0x3601
briefing 1, 0x3600
briefing 2, 0x3602
briefing 3, 0x3603
beginobjective 0, 0x3605, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Locate and retrieve equipment"
require_object_collected OBJ_EQUIPMENT
fail_flags STAGEFLAG_EQUIPMENT_SWITCH_DESTROYED
endobjective
beginobjective 1, 0x3606, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Locate President"
complete_flags STAGEFLAG_PRESIDENT_STARTED_RUNNING
fail_flags STAGEFLAG_PRESIDENT_CALLED_SECURITY
endobjective
beginobjective 2, 0x3607, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Get President to escape capsule"
complete_flags STAGEFLAG_PRESIDENT_AT_POD
fail_flags STAGEFLAG_PRESIDENT_DEAD
fail_flags STAGEFLAG_KILLED_NEUTRALS
fail_flags STAGEFLAG_POD_DESTROYED
endobjective
beginobjective 3, 0x3608, DIFFBIT_PA | DIFFBIT_PD // "Secure Air Force One flight path"
complete_flags STAGEFLAG_PLANE_STABILIZED
fail_flags STAGEFLAG_AUTOPILOT_DESTROYED
endobjective
beginobjective 4, 0x3609, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Detach UFO from Air Force One"
complete_flags STAGEFLAG_UFO_ATTACHMENT_DAMAGED
fail_flags STAGEFLAG_BOTH_MINES_WASTED
fail_flags STAGEFLAG_PLANE_CRASHED
endobjective
chr 0x00000400, 0x32, 0x00be, BODY_TRENT, HEAD_TRENT, GFUNC_IDLE, -1, -1, 200, 8, 0x40018000, 0x00101a00, 0x80, 0x0f, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRDY357TRENT, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000
chr 0x00000400, 0x33, 0x00bc, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x80, 0x0f, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000400, 0x34, 0x00bd, BODY_MRBLONDE, HEAD_MRBLONDE, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x80, 0x0f, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000400, 0x01, 0x008b, BODY_OVERALL, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x008b, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x02, -1, 0, 0x00000000
chr 0x000044c0, 0x1b, 0x008c, BODY_STEWARDESS, HEAD_RANDOM, FUNC_STEWARDESS, 0x00b2, -1, 2000, 5, 0x40002000, 0x00000101, 0x02, 0x02, -1, 0, 0x00010000
chr 0x000044c0, 0x1c, 0x00c1, BODY_STEWARD, HEAD_RANDOM, FUNC_STEWARD, 0x001f, -1, 2000, 5, 0x40002000, 0x00000101, 0x02, 0x02, -1, 0, 0x00010000
chr 0x00000600, 0x04, 0x008e, BODY_OVERALL, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x008e, -1, 1000, 100, 0xc0002000, 0x20000001, 0x02, 0x03, -1, 0, 0x00000000
chr 0x00000600, 0x05, 0x008f, BODY_OVERALL, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x008f, -1, 1000, 100, 0xc0002000, 0x20000001, 0x02, 0x03, -1, 0, 0x00000000
chr 0x00000600, 0x06, 0x0090, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0090, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x04, -1, 0, 0x00000000
chr 0x00000600, 0x07, 0x0091, BODY_PRES_SECURITY, HEAD_RANDOM, 0x0426, 0x0091, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x04, -1, 0, 0x00000000
chr 0x00000600, 0x08, 0x0092, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0092, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x05, -1, 0, 0x00000000
chr 0x00000600, 0x09, 0x0093, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0093, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x05, -1, 0, 0x00000000
chr 0x00000600, 0x0a, 0x0094, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0094, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x05, -1, 0, 0x00000000
chr 0x00000600, 0x0b, 0x0095, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x06, -1, 0, 0x00000000
chr 0x00000600, 0x0c, 0x0096, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x06, -1, 0, 0x00000000
chr 0x00000600, 0x0d, 0x0097, BODY_PRES_SECURITY, HEAD_RANDOM, GFUNC_IDLE, 0x0097, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x06, -1, 0, 0x00000000
chr 0x00000400, 0x0e, 0x0098, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0003, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x07, -1, 0, 0x00000000
chr 0x00000400, 0x0f, 0x0099, BODY_PRES_SECURITY, HEAD_RANDOM, 0x0427, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x07, -1, 0, 0x00000000
chr 0x00000600, 0x10, 0x009a, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x009a, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x07, -1, 0, 0x00000000
chr 0x00000600, 0x11, 0x009b, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0004, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x08, -1, 0, 0x00000000
chr 0x00010400, 0x18, 0x00a0, BODY_PRESIDENT, HEAD_PRESIDENT, GFUNC_IDLE, 0x00a0, -1, 1000, 100, 0x80082000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000
chr 0x00000600, 0x12, 0x009c, BODY_PRES_SECURITY, HEAD_RANDOM, 0x0428, 0x0003, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x08, -1, 0, 0x00000000
chr 0x00000600, 0x13, 0x009d, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0002, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x09, -1, 0, 0x00000000
chr 0x00000600, 0x14, 0x009e, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x0020, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x09, -1, 0, 0x00000000
chr 0x00000600, 0x15, 0x009f, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_INIT_NEUTRAL, 0x00bb, -1, 1000, 100, 0xc0002000, 0x20001000, 0x02, 0x09, -1, 0, 0x00000000
chr 0x00004400, 0x16, 0x00ca, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_TYPING_GUY, 0x00b2, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0a, 0x11, 0, 0x00000000
chr 0x00004400, 0x17, 0x00c9, BODY_PRES_SECURITY, HEAD_RANDOM, FUNC_SITTING_GUY, 0x001f, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0a, 0x10, 0, 0x00000000
chr 0x00014401, 0x19, 0x00c7, BODY_PILOTAF1, HEAD_ROSS, FUNC_TYPING_GUY, -1, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0b, 0x12, 0, 0x00000000
chr 0x00014401, 0x1a, 0x00c8, BODY_PILOTAF1, HEAD_WONG, FUNC_SITTING_GUY, -1, -1, 1000, 100, 0x40002000, 0x00000000, 0x02, 0x0b, 0x13, 0, 0x00000000
chr 0x00000000, 0x1d, 0x00a5, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x01, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x1e, 0x00a6, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x02, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x1f, 0x00a7, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x03, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x20, 0x00a8, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x04, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x21, 0x00a9, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x04, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x22, 0x00aa, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x04, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x24, 0x00ac, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x06, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0024, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x25, 0x00ad, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x06, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0025, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x26, 0x0006, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x07, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0026, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x27, 0x0089, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x08, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0027, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x28, 0x000d, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0x80092000, 0x00101a00, 0x02, 0x08, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0028, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x29, 0x00ae, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0029, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000100, 0x2a, 0x00af, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0092000, 0x00101a00, 0x02, 0x05, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000100, 0x2b, 0x00b0, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 200, 100, 0xc0092000, 0x00101a00, 0x02, 0x05, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x30, 0x006a, BODY_STRIPES, HEAD_RANDOM, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000
weapon 0x0100, MODEL_CHRAVENGER, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
chr 0x00000000, 0x31, 0x0069, BODY_TRENT, HEAD_TRENT, GFUNC_IDLE, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000
chr 0x00000000, 0x00, 0x008a, BODY_THEKING, HEAD_ELVIS, FUNC_INIT_ELVIS, -1, -1, 200, 100, 0x40018201, 0x00101a00, 0x02, 0x0f, -1, 0, 0x00000000
chr 0x00000000, 0x35, 0x0088, BODY_STRIPES, HEAD_RANDOM, FUNC_CLONER1, -1, -1, 200, 100, 0x80092000, 0x00381000, 0x02, 0x00, -1, 0, 0x00000000
chr 0x00000000, 0x36, 0x00b5, BODY_STRIPES, HEAD_RANDOM, FUNC_CLONER2, -1, -1, 200, 100, 0x80092000, 0x00381000, 0x02, 0x00, -1, 0, 0x00000000
chr 0x00000000, 0x37, 0x00b6, BODY_STRIPES, HEAD_RANDOM, FUNC_CLONER3, -1, -1, 200, 100, 0x80092000, 0x00381000, 0x02, 0x00, -1, 0, 0x00000000
tag 0x1b, 1
lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x010b, 0x835204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x010b, 0x010a, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x15000000, 0x00000000, 0x00000000, 0x00000000
tag 0x1f, 1
lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x0110, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0110, 0x0111, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x15000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00d2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00d3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00d4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00d5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00d6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00d7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00d8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00d9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00da, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00db, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00dc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_AF1_DOORBIG2, 0x00dd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_AF1_DOORBIG2, 0x00de, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00df, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00e0, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00e1, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00e2, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_AF1_DOORBIG2, 0x0100, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_AF1_DOORBIG2, 0x0101, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_AF1_DOORBIG2, 0x0102, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000020, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_AF1_DOORBIG2, 0x0103, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000020, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
key 0x0080, MODEL_KEYCARD, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000004
rename_object -1, 0x49, 0x3637, 0x3638, 0x3639, 0x363a, 0x363b, 0x0000, 0x0000 // ""
key 0x0080, MODEL_KEYCARD, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000020
rename_object -1, 0x49, 0x3637, 0x3638, 0x3639, 0x363a, 0x363b, 0x0000, 0x0000 // ""
tag 0x22, 1
key 0x0080, MODEL_KEYCARD, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000
rename_object -1, 0x49, 0x3637, 0x3638, 0x3639, 0x363a, 0x363b, 0x0000, 0x0000 // ""
door 0x0100, MODEL_DD_DR_NONREF, 0x00f5, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00f6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00f7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00f8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00f9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00fa, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00fb, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00fc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00fd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
tag 0x0c, 1
door 0x0100, MODEL_DD_DR_NONREF, 0x00e3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00e4, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
tag 0x0e, 1
door 0x0100, MODEL_DD_DR_NONREF, 0x00e5, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000040, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00e6, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00e7, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00e8, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00e9, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
tag 0x15, 1
door 0x0100, MODEL_DD_DR_NONREF, 0x00ea, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00eb, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00ec, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00ed, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00ee, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00ef, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00fe, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
tag 0x25, 1
door 0x0100, MODEL_AF1ESCAPEDOOR, 0x0105, 0x12000410, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
tag 0x26, 1
door 0x0100, MODEL_AF1ESCAPEDOOR, 0x0106, 0x12000410, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
tag 0x20, 1
door 0x0100, MODEL_DD_GRATE, 0x00f1, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x0000ffff, 0x00014000, 0x00000ccc, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
tag 0x0b, 1
door 0x0100, MODEL_DD_GRATE, 0x00f2, 0x00000400, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x08040000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
tag 0x2e, 1
object 0x0100, MODEL_DD_GRATE, 0x0108, 0x000200e1, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
door 0x0100, MODEL_DD_GRATE, 0x0109, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
object 0x00e6, MODEL_A51_CRATE2, 0x011b, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x00a6, MODEL_A51_CRATE2, 0x011c, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_A51_CRATE2, 0x011e, 0x000201e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
tag 0x01, 1
weapon 0x0180, MODEL_CHRDATATHIEF, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000
tag 0x16, 1
weapon 0x0180, MODEL_CHRDATATHIEF, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_LAPTOPGUN, 0x00ffffff, 0x00000000
tag 0x04, 1
weapon 0x0180, MODEL_CHRREMOTEMINE, 0x003f, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TIMEDMINE, 0x00ffffff, 0x00000000
tag 0x17, 1
weapon 0x0180, MODEL_CHRREMOTEMINE, 0xffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_TIMEDMINE, 0x00ffffff, 0x00000000
tag 0x02, 1
multimonitor 0x0099, MODEL_COMHUB, 0x0116, 0x0202000a, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03030300
tag 0x27, 1
multimonitor 0x0099, MODEL_COMHUB, 0x0117, 0x0202000a, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03030300
tag 0x28, 1
multimonitor 0x0099, MODEL_COMHUB, 0x0118, 0x0202000a, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03030300
tag 0x29, 1
multimonitor 0x0099, MODEL_COMHUB, 0x0119, 0x0202000a, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03030300
tag 0x2a, 1
multimonitor 0x0099, MODEL_COMHUB, 0x011a, 0x0202000a, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03030300
tag 0x03, 1
singlemonitor 0x0100, MODEL_MODEMBOX, 0x0112, 0x100000e2, 0x00000001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffff12
tag 0x0f, 3
tag 0x05, 1
lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x010c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x010c, 0x010d, 0xffffffff, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x1b000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00ff, 0x12000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
link_objects -1, -2, 0, 0
tag 0x2b, 1
door 0x0100, MODEL_DD_DR_NONREF, 0x00f4, 0x10000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
door 0x0100, MODEL_DD_DR_NONREF, 0x00f3, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
tag 0x06, 1
lift 0x0100, MODEL_A51_LIFT_THINWALL, 0x010f, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x010f, 0x010e, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x1b000000, 0x00000000, 0x00000000, 0x00000000
tag 0x07, 1
multimonitor 0x0099, MODEL_COMHUB, 0x0113, 0x00000002, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03030300
tag 0x08, 1
multimonitor 0x0099, MODEL_COMHUB, 0x0114, 0x00000002, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03030300
tag 0x12, 1
object 0x0100, MODEL_AF1_PILOTCHAIR, 0x013a, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PILOTCHAIR, 0x013b, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
tag 0x13, 1
object 0x0100, MODEL_AF1_PILOTCHAIR, 0x013c, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
tag 0x10, 1
object 0x0100, MODEL_AF1_PILOTCHAIR, 0x013d, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
tag 0x11, 1
object 0x0100, MODEL_AF1_PILOTCHAIR, 0x013e, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x011f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0120, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0121, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0122, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0123, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0124, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0125, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0126, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0127, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0128, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0129, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x012a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x012b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x012d, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x012e, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x012f, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0130, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0131, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0132, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0133, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0134, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0135, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0136, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0137, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0138, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x0139, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x016a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_DD_DESK, 0x0160, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_DD_DESK, 0x0161, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_DD_DESK, 0x0162, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_DD_DESK, 0x0163, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_DD_DESK, 0x0164, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_DD_DESK, 0x0165, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_DD_DESK, 0x0166, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x013f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0140, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0141, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0142, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0143, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0144, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0145, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0146, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0147, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0148, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0149, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x014a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x014b, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x014c, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x014d, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x014e, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x014f, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0150, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0151, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0152, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TABLE, 0x0169, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TOILET, 0x0153, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_TOILET, 0x0154, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_LAMP, 0x0156, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_LAMP, 0x0157, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_LAMP, 0x0158, 0x000005e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_LAMP, 0x0159, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_LAMP, 0x015a, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_LAMP, 0x015b, 0x000005e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_AF1_PASSCHAIR, 0x015e, 0x000005e1, 0x00004100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
tag 0x19, 1
object 0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
tag 0x37, 1
object 0x0100, MODEL_AIRFORCE1, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
tag 0x1a, 1
object 0x0100, MODEL_ELVIS_SAUCER, 0xffff, 0x00001401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
tag 0x23, 1
object 0x0019, MODEL_SAUCERINSIDE, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
object 0x0100, MODEL_HOVBIKE, 0x00c0, 0x05120101, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
door 0x0100, MODEL_DOOR2A_G5, 0x0104, 0x10000400, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
tag 0x1c, 1
door 0x0100, MODEL_DD_GRATE, 0x00f0, 0x00000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
tag 0x1e, 1
singlemonitor 0x0100, MODEL_GOODSTATION, 0x0168, 0x000004e1, 0x00000001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffff03
tag 0x21, 1
singlemonitor 0x0100, MODEL_GOODSTATION, 0x0167, 0x000004e1, 0x00000001, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffff03
tag 0x00, 1
weapon 0x0180, MODEL_CHRBRIEFCASE, 0x00b3, 0x00000101, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUITCASE, 0x00ffffff, 0x00000000
rename_object -1, 0x4d, 0x360a, 0x360b, 0x360c, 0x360d, 0x360e, 0x0000, 0x0000 // "Obtain Suitcase."
tag 0x3a, 1
weapon 0x0180, MODEL_CHRBRIEFCASE, 0xffff, 0x00000101, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SUITCASE, 0x00ffffff, 0x00000000
rename_object -1, 0x4d, 0x360a, 0x360b, 0x360c, 0x360d, 0x360e, 0x0000, 0x0000 // "Obtain Suitcase."
tag 0x24, 1
object 0x0100, MODEL_PRESCAPSULE, 0x0171, 0x000001e1, 0x00004101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00007d00, 0x00000000, 0x00000000, 0x0fff0000
glass 0x0100, MODEL_WINDOW, 0x016d, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000
glass 0x0100, MODEL_WINDOW, 0x016e, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000
glass 0x0100, MODEL_WINDOW, 0x016f, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000
glass 0x0100, MODEL_WINDOW, 0x0170, 0x04000262, 0x00304000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000
tag 0x2f, 5
tag 0x30, 6
tag 0x31, 7
tag 0x32, 8
link_scenery 1, 0, 0
debris 0x0019, MODEL_AF1RUBBLE, 0x00ce, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000
link_scenery 1, 0, 0
debris 0x0019, MODEL_AF1RUBBLE, 0x00cf, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000
link_scenery 1, 0, 0
debris 0x0019, MODEL_AF1RUBBLE, 0x00d0, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000
link_scenery 1, 0, 0
debris 0x0019, MODEL_AF1RUBBLE, 0x00d1, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000
tag 0x33, 4
tag 0x34, 4
tag 0x35, 4
tag 0x36, 4
weapon 0x0100, MODEL_CHRREMOTEMINE, 0x00ce, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000
weapon 0x0100, MODEL_CHRREMOTEMINE, 0x00cf, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000
weapon 0x0100, MODEL_CHRREMOTEMINE, 0x00d0, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000
weapon 0x0100, MODEL_CHRREMOTEMINE, 0x00d1, 0x01320401, 0x000a6000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000
tag 0x2c, 1
shield 0x0100, MODEL_CHRSHIELD, 0x016c, 0x00420101, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000
tag 0x2d, 1
shield 0x0100, MODEL_CHRSHIELD, 0x016b, 0x00420101, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000
tag 0x38, 2
tag 0x39, 2
weapon 0x0180, MODEL_CHRCYCLONE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CYCLONE, 0x00ffffff, 0x00000000
weapon 0x0180, MODEL_CHRCYCLONE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CYCLONE, 0x00ffffff, 0x00000000
link_collectibles -1, -2
endprops
intro:
outfit OUTFIT_STEWARDESS
ammo AMMOTYPE_CROSSBOW, 10
ammo AMMOTYPE_SMG, 100
intro_weapon WEAPON_UNARMED, -1
intro_weapon WEAPON_COMBATBOOST, -1
ammo AMMOTYPE_BOOST, 2
spawn 0x008a
endintro
path00:
pad 0x0034
pad 0x0033
pad 0x0031
pad 0x0030
pad 0x0031
pad 0x0033
pad 0x0034
endpath
path01:
pad 0x000d
pad 0x000e
pad 0x000b
pad 0x0012
pad 0x0007
pad 0x0006
pad 0x0010
pad 0x000c
endpath
path02:
pad 0x003e
pad 0x0044
pad 0x0042
pad 0x0040
pad 0x003f
pad 0x003d
pad 0x003e
pad 0x004d
endpath
func1001_objectives_failed_msg:
yield
set_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_04000000
set_chr_flag_bank3 CHR_STEWARDESS, CHRFLAG3_04000000
set_chr_flag_bank3 CHR_STEWARD, CHRFLAG3_04000000
set_chr_flag_bank3 CHR_PILOT1, CHRFLAG3_04000000
set_chr_flag_bank3 CHR_PILOT2, CHRFLAG3_04000000
set_chr_flag_bank3 0x01, CHRFLAG3_04000000
set_chr_flag_bank3 0x02, CHRFLAG3_04000000
set_chr_flag_bank3 0x03, CHRFLAG3_04000000
set_chr_flag_bank3 0x04, CHRFLAG3_04000000
set_chr_flag_bank3 0x05, CHRFLAG3_04000000
set_chr_flag_bank3 0x06, CHRFLAG3_04000000
set_chr_flag_bank3 0x07, CHRFLAG3_04000000
set_chr_flag_bank3 0x08, CHRFLAG3_04000000
set_chr_flag_bank3 0x09, CHRFLAG3_04000000
set_chr_flag_bank3 0x0a, CHRFLAG3_04000000
set_chr_flag_bank3 0x0b, CHRFLAG3_04000000
set_chr_flag_bank3 0x0c, CHRFLAG3_04000000
set_chr_flag_bank3 0x0d, CHRFLAG3_04000000
set_chr_flag_bank3 0x0e, CHRFLAG3_04000000
set_chr_flag_bank3 0x0f, CHRFLAG3_04000000
set_chr_flag_bank3 0x10, CHRFLAG3_04000000
set_chr_flag_bank3 0x11, CHRFLAG3_04000000
set_chr_flag_bank3 0x12, CHRFLAG3_04000000
set_chr_flag_bank3 0x13, CHRFLAG3_04000000
set_chr_flag_bank3 0x14, CHRFLAG3_04000000
set_chr_flag_bank3 0x15, CHRFLAG3_04000000
set_chr_flag_bank3 0x16, CHRFLAG3_04000000
set_chr_flag_bank3 0x17, CHRFLAG3_04000000
set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG
endfunction
func1400_setup_counterop:
yield
yield
yield
set_chr_alliance CHR_COUNTEROP, 0x04
chr_draw_weapon CHR_JOANNA, WEAPON_UNARMED
chr_draw_weapon CHR_VELVET, WEAPON_UNARMED
set_function CHR_SELF, GFUNC_REBUILD_GROUPS
endfunction
func1003_rebuild_groups:
set_function CHR_SELF, GFUNC_REBUILD_GROUPS
endfunction
func1024_give_objects:
if_difficulty_gt DIFF_A, /*goto*/ 0x2d
give_object_to_chr OBJ_EQUIPMENT, CHR_JOANNA
give_object_to_chr OBJ_EQUIPMENT_VELVET, CHR_VELVET
label 0x2d
set_object_flag_bank1 OBJ_DATAUPLINK_JOANNA, OBJECTFLAG1_INVISIBLE
set_object_flag_bank0 OBJ_DATAUPLINK_JOANNA, OBJECTFLAG0_00100000
set_object_flag_bank1 OBJ_REMOTEMINE_JOANNA, OBJECTFLAG1_INVISIBLE
set_object_flag_bank0 OBJ_REMOTEMINE_JOANNA, OBJECTFLAG0_00100000
set_object_flag_bank1 OBJ_DATAUPLINK_VELVET, OBJECTFLAG1_INVISIBLE
set_object_flag_bank0 OBJ_DATAUPLINK_VELVET, OBJECTFLAG0_00100000
set_object_flag_bank1 OBJ_REMOTEMINE_VELVET, OBJECTFLAG1_INVISIBLE
set_object_flag_bank0 OBJ_REMOTEMINE_VELVET, OBJECTFLAG0_00100000
beginloop 0x04
consider_coop_for_p1p2_chr CHR_SELF
if_chr_has_object CHR_P1P2, OBJ_EQUIPMENT, /*goto*/ 0x06
endloop 0x04
label 0x06
give_object_to_chr OBJ_DATAUPLINK_JOANNA, CHR_JOANNA
give_object_to_chr OBJ_REMOTEMINE_JOANNA, CHR_JOANNA
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
give_object_to_chr OBJ_DATAUPLINK_VELVET, CHR_VELVET
give_object_to_chr OBJ_REMOTEMINE_VELVET, CHR_VELVET
label 0x2d
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1004_reassign_functions_during_conversation:
// Wait until player in president's room
beginloop 0x04
consider_coop_for_p1p2_chr CHR_SELF
if_chr_in_room CHR_P1P2, 0x00, 0x0055, /*goto*/ 0x06
if_chr_in_room CHR_P1P2, 0x00, 0x0056, /*goto*/ 0x06
if_chr_in_room CHR_P1P2, 0x00, 0x0057, /*goto*/ 0x06
endloop 0x04
label 0x06
dprint "b4 shield check\n"
set_stage_flag STAGEFLAG_00100000
set_chr_target_chr CHR_PRESIDENT, CHR_P1P2
set_function 0x01, FUNC_BE_UNALERT
set_function CHR_STEWARDESS, FUNC_BE_UNALERT
set_function CHR_STEWARD, FUNC_BE_UNALERT
set_function 0x04, FUNC_BE_UNALERT
set_function 0x05, FUNC_BE_UNALERT
set_function 0x06, FUNC_BE_UNALERT
set_function 0x07, FUNC_BE_UNALERT
set_function 0x08, FUNC_BE_UNALERT
set_function 0x09, FUNC_BE_UNALERT
set_function 0x0a, FUNC_BE_UNALERT
set_function 0x0b, FUNC_BE_UNALERT
set_function 0x0c, FUNC_BE_UNALERT
set_function 0x0d, FUNC_BE_UNALERT
set_function 0x0e, FUNC_BE_UNALERT
set_function 0x0f, FUNC_BE_UNALERT
set_function 0x10, FUNC_BE_UNALERT
set_function 0x11, FUNC_BE_UNALERT
set_function 0x12, FUNC_BE_UNALERT
set_function 0x13, FUNC_BE_UNALERT
set_function 0x14, FUNC_BE_UNALERT
set_function 0x15, FUNC_BE_UNALERT
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1005_check_neutrals_killed:
set_chr_flag_bank3 0x01, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x04, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x05, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x06, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x07, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x08, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x09, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x0a, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x0b, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x0c, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x0d, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x0e, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x0f, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x10, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x11, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x12, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x13, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x14, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x15, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x16, CHRFLAG3_KILLCOUNTABLE
set_chr_flag_bank3 0x17, CHRFLAG3_KILLCOUNTABLE
beginloop 0x04
if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06
if_kill_count_gt 0, /*goto*/ 0x2d
endloop 0x04
label 0x2d
message CHR_JOANNA, 0x3614 // "Too many neutral casualties inflicted."
set_stage_flag STAGEFLAG_KILLED_NEUTRALS
label 0x06
set_function CHR_SELF, GFUNC_IDLE
endfunction
func0401_init_stripes:
set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN
set_function CHR_SELF, GFUNC_IDLE
endfunction
func0402_init_elvis:
set_chr_flag_bank3 CHR_SELF, CHRFLAG3_HIDDEN
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1006_hijack:
yield
hide_chr 0x1d
hide_chr 0x1e
hide_chr 0x1f
hide_chr 0x20
hide_chr 0x21
hide_chr 0x22
hide_chr 0x23
hide_chr 0x24
hide_chr 0x25
hide_chr 0x26
hide_chr 0x27
hide_chr 0x28
hide_chr 0x29
hide_chr CHR_TAKER1
hide_chr CHR_TAKER2
beginloop 0x04
if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06
endloop 0x04
label 0x06
cmd01da 0x35
set_chr_health 0x01, 10
set_chr_health 0x04, 10
set_chr_health 0x05, 10
set_chr_health 0x06, 10
set_chr_health 0x07, 10
set_chr_health 0x08, 10
set_chr_health 0x09, 10
set_chr_health 0x0a, 10
set_chr_health 0x0b, 10
set_chr_health 0x0c, 10
set_chr_health 0x0d, 10
set_chr_health 0x0e, 10
set_chr_health 0x0f, 10
set_chr_health 0x10, 10
set_chr_health 0x16, 10
set_chr_health 0x17, 10
set_chr_health CHR_PILOT1, 10
set_chr_health CHR_PILOT2, 10
set_function 0x01, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function CHR_STEWARDESS, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function CHR_STEWARD, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x04, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x05, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x06, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x07, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x08, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x09, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x0a, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x0b, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x0c, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x0d, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x10, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x12, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x13, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x15, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x16, FUNC_REMOVE_IF_OFFSCREEN
yield
set_function 0x17, FUNC_REMOVE_IF_OFFSCREEN
set_function 0x0e, FUNC_INIT_DEFEND_PAD
set_function 0x0f, FUNC_INIT_DEFEND_PAD
set_function 0x11, FUNC_INIT_DEFEND_PAD
set_function 0x14, FUNC_INIT_DEFEND_PAD
yield
.macro enable_stripes_chr chr function
show_chr \chr
set_function \chr, \function
unset_chr_flag_bank3 \chr, CHRFLAG3_HIDDEN
set_chr_flag_bank2 \chr, CHRFLAG2_00400000
yield
.endm
enable_stripes_chr 0x1d, FUNC_REINIT_STRIPES
enable_stripes_chr 0x1e, FUNC_REINIT_STRIPES
enable_stripes_chr 0x1f, FUNC_REINIT_STRIPES
enable_stripes_chr 0x20, FUNC_REINIT_STRIPES
enable_stripes_chr 0x21, FUNC_REINIT_STRIPES
enable_stripes_chr 0x22, FUNC_REINIT_STRIPES
enable_stripes_chr 0x23, FUNC_REINIT_STRIPES
enable_stripes_chr 0x24, FUNC_REINIT_STRIPES
enable_stripes_chr 0x25, FUNC_REINIT_STRIPES
enable_stripes_chr 0x26, FUNC_REINIT_STRIPES
enable_stripes_chr 0x27, FUNC_REINIT_STRIPES
enable_stripes_chr 0x28, FUNC_REINIT_STRIPES
enable_stripes_chr 0x29, FUNC_COCKPIT_STRIPES
enable_stripes_chr CHR_TAKER1, FUNC_TAKER2
enable_stripes_chr CHR_TAKER2, FUNC_TAKER1
set_chr_flag_bankx 0x01, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx CHR_STEWARDESS, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx CHR_STEWARD, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x04, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x05, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x06, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x07, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x08, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x09, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x0a, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x0b, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x0c, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x0d, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x0e, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x0f, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x10, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x11, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x12, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x13, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x14, CHRFLAG0_AIVSAI, BANK_0
set_chr_flag_bankx 0x15, CHRFLAG0_AIVSAI, BANK_0
set_chr_alliance CHR_TRENT, 0x04
set_chr_alliance CHR_BLONDE1, 0x04
set_chr_alliance CHR_BLONDE2, 0x04
unset_chr_flag_bank2 CHR_TRENT, CHRFLAG2_40000000
unset_chr_flag_bank2 CHR_BLONDE1, CHRFLAG2_40000000
unset_chr_flag_bank2 CHR_BLONDE2, CHRFLAG2_40000000
unlock_door OBJ_COCKPITDOOR, 0x40
cmd0145_rebuild_groups
cmd0146_rebuild_groups
unset_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED
unset_chr_flag_bank2 CHR_VELVET, CHRFLAG2_DISGUISED
set_function CHR_SELF, GFUNC_IDLE
endfunction
func0403_stripes:
set_return_function CHR_SELF, FUNC_STRIPES
set_self_flag_bank3 CHRFLAG3_00000040
beginloop 0x04
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x06
// No target nearby
yield
unset_self_flag_bankx CHRFLAG1_00001000, BANK_1
stop_chr
set_function CHR_SELF, GFUNC_UNALERTED
// Got target
label 0x06
if_chr_lost_track_of_target_maybe /*goto*/ 0x06
if_chr_dying TARGET_CHR, /*goto*/ 0x2d
if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2d
if_chr_unloaded TARGET_CHR, /*goto*/ 0x2d
set_return_function CHR_SELF, FUNC_STRIPES
set_onshot_function FUNC_STRIPES
set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR
label 0x06
unset_self_flag_bankx CHRFLAG1_00001000, BANK_1
set_function CHR_SELF, GFUNC_UNALERTED
set_return_function CHR_SELF, GFUNC_UNALERTED
label 0x2d
set_target_chr -1
stop_chr
endloop 0x04
endfunction
unregistered_function1:
set_function CHR_SELF, GFUNC_IDLE
endfunction
.macro check_mine_wasted chr1 chr2 myflag buddyflag
set_object_flag_bank0 OBJ_COMMSHUB1, OBJECTFLAG0_00002000
set_object_flag_bank0 OBJ_COMMSHUB2, OBJECTFLAG0_00002000
set_object_flag_bank0 OBJ_COMMSHUB3, OBJECTFLAG0_00002000
set_object_flag_bank0 OBJ_COMMSHUB4, OBJECTFLAG0_00002000
set_object_flag_bank0 OBJ_COMMSHUB5, OBJECTFLAG0_00002000
yield
yield
if_difficulty_lt DIFF_SA, /*goto*/ 0x06
// Wait until equipment collected
beginloop 0x93
if_objective_complete 0, /*goto*/ 0x06
endloop 0x93
label 0x06
yield
yield
yield
yield
yield
label 0x08
set_target_chr \chr1
// Wait until mine thrown
beginloop 0x09
if_ammo_quantity_lt \chr2, AMMOTYPE_TIMED_MINE, 1, /*goto*/ 0x2d
endloop 0x09
label 0x2d
if_stage_flag_eq STAGEFLAG_MIDCUTSCENE_FINISHED, FALSE, /*goto*/ 0x0a
label 0x2d
unset_object_flag_bank0 OBJ_COMMSHUB1, OBJECTFLAG0_INVINCIBLE
unset_object_flag_bank0 OBJ_COMMSHUB2, OBJECTFLAG0_INVINCIBLE
unset_object_flag_bank0 OBJ_COMMSHUB3, OBJECTFLAG0_INVINCIBLE
unset_object_flag_bank0 OBJ_COMMSHUB4, OBJECTFLAG0_INVINCIBLE
unset_object_flag_bank0 OBJ_COMMSHUB5, OBJECTFLAG0_INVINCIBLE
restart_timer
// Wait 8.3 seconds or until commshub destroyed
beginloop 0x04
if_timer_gt 500, /*goto*/ 0x0a
if_object_in_good_condition OBJ_COMMSHUB1, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
if_object_in_good_condition OBJ_COMMSHUB2, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
if_object_in_good_condition OBJ_COMMSHUB3, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
if_object_in_good_condition OBJ_COMMSHUB4, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
if_object_in_good_condition OBJ_COMMSHUB5, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
endloop 0x04
// Commshub damaged
label 0x06
message CHR_JOANNA, 0x3615 // "UFO attachment damaged."
set_stage_flag STAGEFLAG_UFO_ATTACHMENT_DAMAGED
unset_stage_flag STAGEFLAG_BOTH_MINES_WASTED
set_function CHR_SELF, GFUNC_IDLE
// Mine wasted
label 0x0a
set_stage_flag \myflag
if_stage_flag_eq \buddyflag, TRUE, /*goto*/ 0x2d
set_function CHR_SELF, GFUNC_IDLE
label 0x2d
message CHR_JOANNA, 0x3645 // "Timed mine has been wasted."
set_stage_flag STAGEFLAG_BOTH_MINES_WASTED
set_function CHR_SELF, GFUNC_IDLE
.endm
func1008_check_mine_wasted_joanna:
check_mine_wasted CHR_JOANNA, TARGET_CHR, STAGEFLAG_JOANNA_MINE_WASTED, STAGEFLAG_VELVET_MINE_WASTED
endfunction
func1021_check_mine_wasted_velvet:
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
set_stage_flag STAGEFLAG_VELVET_MINE_WASTED
set_function CHR_SELF, GFUNC_IDLE
label 0x06
check_mine_wasted CHR_VELVET, CHR_VELVET, STAGEFLAG_VELVET_MINE_WASTED, STAGEFLAG_JOANNA_MINE_WASTED
endfunction
func101e_blow_mines:
// Wait for any commshub destroyed
beginloop 0x04
if_object_in_good_condition OBJ_COMMSHUB1, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
if_object_in_good_condition OBJ_COMMSHUB2, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
if_object_in_good_condition OBJ_COMMSHUB3, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
if_object_in_good_condition OBJ_COMMSHUB4, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
if_object_in_good_condition OBJ_COMMSHUB5, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
endloop 0x04
label 0x06
// 1
unset_object_flag_bank0 0x2f, OBJECTFLAG0_INVINCIBLE
unset_object_flag_bank1 0x33, OBJECTFLAG1_INVISIBLE
unset_object_flag_bank0 0x33, OBJECTFLAG0_INVINCIBLE
destroy_object 0x33
restart_timer
beginloop 0x60
if_timer_gt 60, /*goto*/ 0x2d
endloop 0x60
label 0x2d
unset_object_flag_bank1 0x2f, OBJECTFLAG1_INVISIBLE
destroy_object 0x2f
// 2
unset_object_flag_bank0 0x30, OBJECTFLAG0_INVINCIBLE
unset_object_flag_bank1 0x34, OBJECTFLAG1_INVISIBLE
unset_object_flag_bank0 0x34, OBJECTFLAG0_INVINCIBLE
destroy_object 0x34
restart_timer
beginloop 0x77
if_timer_gt 60, /*goto*/ 0x2d
endloop 0x77
label 0x2d
unset_object_flag_bank1 0x30, OBJECTFLAG1_INVISIBLE
destroy_object 0x30
// 3
unset_object_flag_bank0 0x31, OBJECTFLAG0_INVINCIBLE
unset_object_flag_bank1 0x35, OBJECTFLAG1_INVISIBLE
unset_object_flag_bank0 0x35, OBJECTFLAG0_INVINCIBLE
destroy_object 0x35
restart_timer
beginloop 0x78
if_timer_gt 60, /*goto*/ 0x2d
endloop 0x78
label 0x2d
unset_object_flag_bank1 0x31, OBJECTFLAG1_INVISIBLE
destroy_object 0x31
// 4
unset_object_flag_bank0 0x32, OBJECTFLAG0_INVINCIBLE
unset_object_flag_bank1 0x36, OBJECTFLAG1_INVISIBLE
unset_object_flag_bank0 0x36, OBJECTFLAG0_INVINCIBLE
destroy_object 0x36
restart_timer
beginloop 0x79
if_timer_gt 60, /*goto*/ 0x2d
endloop 0x79
label 0x2d
unset_object_flag_bank1 0x32, OBJECTFLAG1_INVISIBLE
destroy_object 0x32
yield
hide_object 0x2f
hide_object 0x30
hide_object 0x31
hide_object 0x32
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1009_check_end_level:
beginloop 0x04
if_all_objectives_complete /*goto*/ 0x06
endloop 0x04
label 0x06
set_stage_flag STAGEFLAG_ALL_OBJECTIVES_COMPLETE
restart_timer
label 0x08
yield
label 0x06
if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2d
if_chr_dying CHR_JOANNA, /*goto*/ 0x2d
if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
if_chr_dying CHR_VELVET, /*goto*/ 0x2d
if_chr_unloaded CHR_VELVET, /*goto*/ 0x2d
goto_next 0x06
// Both players dead
label 0x2d
set_function CHR_SELF, GFUNC_IDLE
// Redundant check
label 0x06
if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2d
if_chr_dying CHR_JOANNA, /*goto*/ 0x2d
if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
if_chr_dying CHR_VELVET, /*goto*/ 0x2d
if_chr_unloaded CHR_VELVET, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
end_level
set_function CHR_SELF, GFUNC_IDLE
// Mission complete
label 0x06
set_invincible CHR_JOANNA
set_function CHR_SELF, FUNC_OUTRO
endfunction
func100a_autopilot_switch:
beginloop 0x04
consider_coop_for_p1p2_chr CHR_SELF
if_object_in_good_condition OBJ_AUTOPILOT_SWITCH, /*goto*/ 0x2d
goto_next 0x08
label 0x2d
if_chr_activated_object CHR_P1P2, OBJ_AUTOPILOT_SWITCH, /*goto*/ 0x2d
if_stage_flag_eq STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x2d
reloop 0x04
label 0x2d
label 0x06
if_stage_flag_eq STAGEFLAG_PLANE_NOSEDIVING, TRUE, /*goto*/ 0x06
endloop 0x04
// Switch pressed
label 0x06
assign_sound 0x043a, CHANNEL_7
control_sound_from_object CHANNEL_7, OBJ_AUTOPILOT_SWITCH, TRUE
set_object_image OBJ_AUTOPILOT_SWITCH, 0x00, 0x13
set_stage_flag STAGEFLAG_PLANE_STABILIZED
yield
message CHR_P1P2, 0x3618 // "Air Force One has been stabilized."
message CHR_P1P2, 0x3617 // "Autopilot has been activated."
restart_timer
beginloop 0x0e
if_timer_gt 120, /*goto*/ 0x06
endloop 0x0e
label 0x06
set_lighting 0x0000, 0x0d, 0x00
set_function CHR_SELF, GFUNC_IDLE
// Switch destroyed
label 0x08
message CHR_P1P2, 0x3619 // "Autopilot systems have been destroyed."
set_stage_flag STAGEFLAG_AUTOPILOT_DESTROYED
set_function CHR_SELF, GFUNC_IDLE
endfunction
func0406_init_president:
set_chr_health CHR_SELF, 0
set_function CHR_SELF, FUNC_PRESIDENT_IN_ROOM
endfunction
func0405_president_in_room:
set_onshot_function FUNC_PRESIDENT_IN_ROOM
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2d
if_chr_dying CHR_SELF, /*goto*/ 0x2d
if_chr_unloaded CHR_SELF, /*goto*/ 0x2d
goto_next 0x06
// Dying
label 0x2d
set_onshot_function GFUNC_IDLE
set_function CHR_SELF, GFUNC_IDLE
// Alive
label 0x06
stop_chr
yield
beginloop 0x04
if_stage_flag_eq STAGEFLAG_00100000, TRUE, /*goto*/ 0x03
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2d
if_chr_dying CHR_SELF, /*goto*/ 0x2d
if_chr_unloaded CHR_SELF, /*goto*/ 0x2d
endloop 0x04
// Dying
label 0x2d
set_onshot_function GFUNC_IDLE
set_function CHR_SELF, GFUNC_IDLE
label 0x03
set_target_chr FOLLOW_CHR
restart_timer
label 0x08
try_face_entity 0x0200, 0x0000, /*goto*/ 0x09
beginloop 0x09
// Wait for Carrington's "on this level" message to finish
if_sound_finished CHANNEL_6, /*goto*/ 0x2d
reloop 0x09
label 0x2d
if_angle_to_target_chr_lt 10, /*goto*/ 0x06
if_timer_gt 60, /*goto*/ 0x06
endloop 0x09
label 0x06
do_special_animation 0
speak TARGET_CHR, 0x3623, 0x12c5, CHANNEL_6, COLOR_08_RED // "Who are you, young lady?"
restart_timer
beginloop 0x60
if_chr_in_room TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d
if_chr_sees_player /*goto*/ 0x2d
goto_next 0x86
label 0x2d
if_shot_near_chr 0x00, /*goto*/ 0x86
if_hears_gunfire /*goto*/ 0x86
if_timer_lt 120, /*goto*/ 0x2d
if_chr_in_view /*goto*/ 0x06
label 0x2d
endloop 0x60
label 0x06
speak TARGET_CHR, 0x3625, 0x72bc, CHANNEL_7, COLOR_09_BLUE // "Mr. President, you're in danger. Trent is trying t..."
restart_timer
stop_chr
try_face_entity 0x0200, 0x0000, /*goto*/ 0x78
// In this loop the president will continue to turn to face the player
// because it lacks an if_angle_to_target_chr_lt check.
beginloop 0x78
if_chr_in_room TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d
if_chr_sees_player /*goto*/ 0x2d
goto_next 0x86
label 0x2d
if_shot_near_chr 0x00, /*goto*/ 0x86
if_hears_gunfire /*goto*/ 0x86
if_timer_lt 240, /*goto*/ 0x2d
if_chr_in_view /*goto*/ 0x06
label 0x2d
endloop 0x78
label 0x06
do_special_animation 1
speak TARGET_CHR, 0x3628, 0x12c6, CHANNEL_6, COLOR_08_RED // "You can't make accusations like that without evide..."
restart_timer
beginloop 0x79
if_chr_in_room TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d
if_chr_sees_player /*goto*/ 0x2d
goto_next 0x86
label 0x2d
if_shot_near_chr 0x00, /*goto*/ 0x86
if_hears_gunfire /*goto*/ 0x86
if_timer_lt 400, /*goto*/ 0x2d
goto_next 0x84
label 0x2d
endloop 0x79
label 0x84
if_chr_has_object TARGET_CHR, OBJ_EQUIPMENT, /*goto*/ 0x10
if_chr_has_object TARGET_CHR, OBJ_EQUIPMENT_VELVET, /*goto*/ 0x10
// No equipment
label 0x85
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED
set_chr_flag_bank2 CHR_VELVET, CHRFLAG2_DISGUISE_UNCOVERED
speak TARGET_CHR, 0x3624, 0x12c4, CHANNEL_6, COLOR_08_RED // "Security, SECURITY!!"
restart_timer
animation 0x0231, 0, 193, 0x1810, CHR_SELF, 2
beginloop 0x77
if_timer_gt 120, /*goto*/ 0x06
endloop 0x77
label 0x06
set_function 0x01, GFUNC_UNALERTED
set_function CHR_STEWARDESS, GFUNC_UNALERTED
set_function CHR_STEWARD, GFUNC_UNALERTED
set_function 0x04, GFUNC_UNALERTED
set_function 0x05, GFUNC_UNALERTED
set_function 0x06, GFUNC_UNALERTED
set_function 0x07, GFUNC_UNALERTED
set_function 0x08, GFUNC_UNALERTED
set_function 0x09, GFUNC_UNALERTED
set_function 0x0a, GFUNC_UNALERTED
set_function 0x0b, GFUNC_UNALERTED
set_function 0x0c, GFUNC_UNALERTED
set_function 0x0d, GFUNC_UNALERTED
set_function 0x0e, GFUNC_UNALERTED
set_function 0x0f, GFUNC_UNALERTED
set_function 0x10, GFUNC_UNALERTED
set_function 0x11, GFUNC_UNALERTED
set_function 0x12, GFUNC_UNALERTED
set_function 0x13, GFUNC_UNALERTED
set_function 0x14, GFUNC_UNALERTED
set_function 0x15, GFUNC_UNALERTED
set_stage_flag STAGEFLAG_PRESIDENT_CALLED_SECURITY
yield
set_group_alertness 100
try_face_entity 0x0200, 0x0000, /*goto*/ 0x0a
beginloop 0x0a
endloop 0x0a
label 0x06
// Has equipment
label 0x10
stop_chr
speak TARGET_CHR, 0x3629, 0x72bd, CHANNEL_6, COLOR_09_BLUE // "This is a recording of a meeting between Trent and..."
restart_timer
try_face_entity 0x0200, 0x0000, /*goto*/ 0x0b
// This loop uses an if_sound_finished check rather than a timer check,
// which allows the speech to be skipped.
beginloop 0x0b
if_chr_in_room TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d
if_chr_sees_player /*goto*/ 0x2d
goto_next 0x86
label 0x2d
if_shot_near_chr 0x00, /*goto*/ 0x86
if_hears_gunfire /*goto*/ 0x86
if_sound_finished CHANNEL_6, /*goto*/ 0x06
goto_first 0x0b
label 0x06
do_special_animation 2
speak TARGET_CHR, 0x362a, 0x12c7, CHANNEL_6, COLOR_08_RED // "Seems overwhelming... I'm in your hands. What do w..."
restart_timer
beginloop 0x7a
if_chr_in_room TARGET_CHR, 0x00, 0x0055, /*goto*/ 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0056, /*goto*/ 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0057, /*goto*/ 0x2d
if_chr_sees_player /*goto*/ 0x2d
goto_next 0x86
label 0x2d
if_shot_near_chr 0x00, /*goto*/ 0x86
if_hears_gunfire /*goto*/ 0x86
if_timer_gt 400, /*goto*/ 0x06
endloop 0x7a
label 0x33
label 0x06
set_stage_flag STAGEFLAG_TRIGGER_MIDCUTSCENE
beginloop 0x0d
if_stage_flag_eq STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x06
endloop 0x0d
label 0x06
set_chr_alliance CHR_SELF, ALLIANCE_ALLY
cmd0145_rebuild_groups
cmd0146_rebuild_groups
hide_object OBJ_EXTERIOR_DOOR
hide_object OBJ_FLOORHATCH
set_object_flag_bank0 OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG0_00000100
unset_object_flag_bank1 OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG1_INVISIBLE
unset_object_flag_bank1 OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG1_INVISIBLE
set_object_flag_bank0 OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG0_00000100
play_sound 0x8098, -1
restart_timer
beginloop 0x7b
if_timer_gt 60, /*goto*/ 0x06
endloop 0x7b
label 0x06
do_special_animation -1
speak TARGET_CHR, 0x3626, 0x816e, CHANNEL_6, COLOR_08_RED // "What the hell was that!"
restart_timer
beginloop 0x0c
if_timer_gt 180, /*goto*/ 0x06
endloop 0x0c
label 0x06
stop_chr
set_stage_flag STAGEFLAG_PRESIDENT_STARTED_RUNNING
speak TARGET_CHR, 0x3627, 0x72be, CHANNEL_6, COLOR_09_BLUE // "We have to get you to the escape pod. Follow me."
restart_timer
try_face_entity 0x0200, 0x0000, /*goto*/ 0x0e
beginloop 0x0e
if_timer_gt 120, /*goto*/ 0x06
endloop 0x0e
label 0x06
set_follow_chr TARGET_CHR
set_chr_health CHR_SELF, 500
set_onshot_function FUNC_PRESIDENT_RUNNING
set_function CHR_SELF, FUNC_PRESIDENT_RUNNING
label 0x86
goto_first 0x85
endfunction
func0404_president_running:
set_self_flag_bank3 CHRFLAG3_01000000
set_onshot_function FUNC_PRESIDENT_RUNNING
set_target_chr FOLLOW_CHR
if_chr_dying CHR_SELF, /*goto*/ 0x06
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x06
if_chr_unloaded CHR_SELF, /*goto*/ 0x06
goto_next 0x2d
// Dying
label 0x06
set_onshot_function GFUNC_IDLE
restart_timer
beginloop 0x54
if_timer_gt 15, /*goto*/ 0x06
endloop 0x54
label 0x06
assign_sound 0x1abf, CHANNEL_6
play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01
set_onshot_function GFUNC_IDLE
set_function CHR_SELF, GFUNC_IDLE
// Alive
label 0x2d
dprint "b4 shield check\n"
if_just_injured CHR_SELF, /*goto*/ 0x06
goto_next 0x55
// Injured
label 0x06
restart_timer
assign_sound 0x1ac2, CHANNEL_6
play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01
if_stage_flag_eq STAGEFLAG_PRESIDENT_INJURED, TRUE, /*goto*/ 0x56
set_stage_flag STAGEFLAG_PRESIDENT_INJURED
message CHR_JOANNA, 0x3648 // "The President is under attack."
beginloop 0x56
if_num_times_shot_lt 1, /*goto*/ 0x06
if_timer_lt 20, /*goto*/ 0x06
label 0x06
if_chr_stopped /*goto*/ 0x55
endloop 0x56
// Not injured, or injury animation finished
label 0x55
stop_chr
restart_timer
beginloop 0x57
// @bug: This FALSE should be TRUE instead. This causes the president
// to behave weirdly when you've killed both blondes and stand in the
// entrace to Trent's room.
if_stage_flag_eq STAGEFLAG_BOTH_BLONDES_DEAD, FALSE, /*goto*/ 0x2d
// Both blondes dead
// This room is the entrace to Trent's room
if_chr_in_room TARGET_CHR, 0x00, 0x000d, /*goto*/ 0x10
// At least one Blonde is alive, or follow through
// These rooms are the escape pod area
label 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0030, /*goto*/ 0x11
if_chr_in_room TARGET_CHR, 0x00, 0x0031, /*goto*/ 0x11
if_chr_in_room TARGET_CHR, 0x00, 0x0032, /*goto*/ 0x11
dprint "target\n"
if_chr_sees_player /*goto*/ 0x06
goto_next 0x58
label 0x06
if_timer_gt 1250, /*goto*/ 0x2d
if_chr_distance_gt 200, /*goto*/ 0x58
endloop 0x57
// Been in sight for almost 21 seconds - say quip
label 0x2d
call_rng
if_rand_lt 64, /*goto*/ 0x2d
say_quip CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00
goto_first 0x55
label 0x2d
say_quip CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00
goto_first 0x55
// Unreachable
label 0x06
say_quip CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00
goto_first 0x55
// Distance to player > 200 or line of sight broken, so start following
label 0x58
restart_timer
label 0x2d
try_run_to_target_chr_with_hand_up /*goto*/ 0x59
beginloop 0x59
// @bug: This FALSE should be TRUE instead. This causes the president
// to behave weirdly when you've killed both blondes and stand in the
// entrace to Trent's room.
if_stage_flag_eq STAGEFLAG_BOTH_BLONDES_DEAD, FALSE, /*goto*/ 0x2d
// Both blondes dead
// This room is the entrace to Trent's room
if_chr_in_room TARGET_CHR, 0x00, 0x000d, /*goto*/ 0x10
// At least one Blonde is alive, or follow through
// These rooms are the escape pod area
label 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0030, /*goto*/ 0x11
if_chr_in_room TARGET_CHR, 0x00, 0x0031, /*goto*/ 0x11
if_chr_in_room TARGET_CHR, 0x00, 0x0032, /*goto*/ 0x11
if_chr_distance_lt 100, /*goto*/ 0x5b
if_chr_stopped /*goto*/ 0x5b
if_timer_gt 360, /*goto*/ 0x2d
endloop 0x59
label 0x2d
say_quip CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00
goto_first 0x58
label 0x06
say_quip CHR_JOANNA, 0x21, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00
goto_first 0x58
// Stopped because president is close to player's sampled position
label 0x5b
goto_first 0x55
// Unreachable
label 0x5c
try_run_to_target_chr /*goto*/ 0x5d
beginloop 0x5d
if_stage_flag_eq STAGEFLAG_BOTH_BLONDES_DEAD, FALSE, /*goto*/ 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x000d, /*goto*/ 0x10
label 0x2d
if_chr_in_room TARGET_CHR, 0x00, 0x0030, /*goto*/ 0x11
if_chr_in_room TARGET_CHR, 0x00, 0x0031, /*goto*/ 0x11
if_chr_in_room TARGET_CHR, 0x00, 0x0032, /*goto*/ 0x11
endloop 0x5d
label 0x5e
goto_first 0x55
// Player in pod room while a Blonde is alive
// This pad is at the escape pod
label 0x11
jog_to_pad 0x0083
beginloop 0x09
if_chr_stopped /*goto*/ 0x06
endloop 0x09
label 0x06
stop_chr
set_stage_flag STAGEFLAG_PRESIDENT_AT_POD
set_chr_alliance CHR_SELF, 0x80
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_function CHR_SELF, GFUNC_IDLE
// Player is in the entrace to Trent's room and both blondes are dead.
// The intention behind this code is to make the president cower until the
// Blondes are dead, then resume following. However, due to a logic bug
// described earlier this code is jumped to only after the blondes are dead.
label 0x10
run_to_pad 0x0019
// This loop will never iterate because the blondes are already dead
beginloop 0x0a
if_chr_stopped /*goto*/ 0x0b
if_stage_flag_eq STAGEFLAG_BOTH_BLONDES_DEAD, TRUE, /*goto*/ 0x06
endloop 0x0a
// Unreachable under real conditions
label 0x0b
animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2
beginloop 0x83
if_stage_flag_eq STAGEFLAG_BOTH_BLONDES_DEAD, TRUE, /*goto*/ 0x06
if_chr_stopped /*goto*/ 0x2d
endloop 0x83
label 0x2d
goto_first 0x0b
// Both blondes dead - resume running
label 0x06
goto_first 0x55
set_function CHR_SELF, GFUNC_IDLE
endfunction
func100b_check_president_dead:
beginloop 0x04
if_chr_dying CHR_PRESIDENT, /*goto*/ 0x06
if_chr_death_animation_finished CHR_PRESIDENT, /*goto*/ 0x06
if_chr_unloaded CHR_PRESIDENT, /*goto*/ 0x06
endloop 0x04
label 0x06
set_stage_flag STAGEFLAG_PRESIDENT_DEAD
message CHR_JOANNA, 0x361a // "The President has been incapacitated."
set_function CHR_SELF, GFUNC_IDLE
endfunction
func0409_unused:
set_self_flag_bank3 CHRFLAG3_00000040
beginloop 0x04
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x06
reloop 0x04
label 0x06
if_chr_lost_track_of_target_maybe /*goto*/ 0x06
if_chr_dying TARGET_CHR, /*goto*/ 0x2d
if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2d
if_chr_unloaded TARGET_CHR, /*goto*/ 0x2d
set_return_function CHR_SELF, 0x0409
set_onshot_function 0x0409
set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR
label 0x2d
endloop 0x04
label 0x06
unset_self_flag_bankx CHRFLAG1_00001000, BANK_1
set_function CHR_SELF, GFUNC_UNALERTED
set_return_function CHR_SELF, GFUNC_UNALERTED
endfunction
/**
* This stripes guard is in one of the cockpit rooms.
*/
func100c_cockpit_stripes:
set_onshot_function GFUNC_ALERTED
set_chr_alliance CHR_SELF, 0x04
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_chr_dodge_rating 2, 0x00
set_accuracy 14
set_reaction_speed 50
set_chr_health CHR_SELF, 60
set_armor 0
set_recovery_speed 30
set_shield 0
set_self_flag_bank3 CHRFLAG3_00000040
beginloop 0x04
consider_coop_for_p1p2_chr CHR_SELF
set_target_chr CHR_P1P2
if_chr_sees_player /*goto*/ 0x06
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x06
reloop 0x04
label 0x06
if_chr_lost_track_of_target_maybe /*goto*/ 0x06
if_chr_dying TARGET_CHR, /*goto*/ 0x2d
if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2d
if_chr_unloaded TARGET_CHR, /*goto*/ 0x2d
set_return_function CHR_SELF, FUNC_COCKPIT_STRIPES
set_onshot_function GFUNC_COMBAT_WITH_TARGET_CHR
set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR
label 0x2d
endloop 0x04
label 0x06
unset_self_flag_bankx CHRFLAG1_00001000, BANK_1
set_function CHR_SELF, GFUNC_UNALERTED
set_return_function CHR_SELF, GFUNC_UNALERTED
endfunction
func0413_taker1:
set_chr_alliance CHR_SELF, 0x04
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_self_flag_bank3 CHRFLAG3_00000020
set_chr_dodge_rating 2, 0x00
set_reaction_speed 50
set_chr_health CHR_SELF, 60
set_armor 0
set_recovery_speed 30
set_shield 0
set_target_chr CHR_PILOT1
set_function CHR_SELF, FUNC_TAKER
endfunction
func0413_taker2:
set_chr_alliance CHR_SELF, 0x04
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_self_flag_bank3 CHRFLAG3_00000020
set_chr_dodge_rating 2, 0x00
set_reaction_speed 50
set_chr_health CHR_SELF, 60
set_armor 0
set_recovery_speed 30
set_shield 0
set_target_chr CHR_PILOT2
set_function CHR_SELF, FUNC_TAKER
endfunction
func0413_taker:
set_onshot_function GFUNC_ALERTED
unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
set_chr_alliance CHR_SELF, 0x04
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_accuracy 50
set_self_flag_bank3 CHRFLAG3_00000040
restart_timer
// Wait for condition
beginloop 0x04
if_door_state 0x0c, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x0a
if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, FALSE, /*goto*/ 0x2d
if_timer_gt 7200, /*goto*/ 0x0a
if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0a
label 0x2d
endloop 0x04
// Wait another 1.5 seconds
label 0x0a
restart_timer
beginloop 0x0c
if_timer_gt 90, /*goto*/ 0x06
endloop 0x0c
label 0x06
if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x11
if_chr_dying TARGET_CHR, /*goto*/ 0x11
if_chr_unloaded TARGET_CHR, /*goto*/ 0x11
try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x06
label 0x06
try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x08
label 0x08
say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00
say_quip CHR_JOANNA, 0x01, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00
restart_timer
beginloop 0x09
if_chr_stopped /*goto*/ 0x06
if_timer_gt 60, /*goto*/ 0x2d
endloop 0x09
label 0x2d
if_chr_lost_track_of_target_maybe /*goto*/ 0x11
if_target_chrs_field_0x17e_is_different /*goto*/ 0x2d
goto_next 0x11
label 0x2d
damage_chr TARGET_CHR, 18
beginloop 0x0b
if_chr_stopped /*goto*/ 0x06
endloop 0x0b
label 0x06
if_chr_dying TARGET_CHR, /*goto*/ 0x06
goto_first 0x0a
label 0x11
label 0x06
unset_self_flag_bankx CHRFLAG1_00001000, BANK_1
set_function CHR_SELF, GFUNC_UNALERTED
endfunction
func100c_cockpit:
label 0x2d
label 0x2e
set_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_HIDDEN
set_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_HIDDEN
beginloop 0x60
if_all_objectives_complete /*goto*/ 0x2d
if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x2e
endloop 0x60
// All objectives complete
label 0x2d
set_function CHR_SELF, GFUNC_IDLE
// UFO attachment damaged
label 0x2e
yield
if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11
unset_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_HIDDEN
unset_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_HIDDEN
unset_chr_flag_bank3 CHR_TAKER1, CHRFLAG3_INVINCIBLE_TO_GUNFIRE
unset_chr_flag_bank3 CHR_TAKER2, CHRFLAG3_INVINCIBLE_TO_GUNFIRE
label 0x06
// This loop will surely never iterate because
// the UFO attachment is already damaged
beginloop 0x04
if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11
if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x2d
endloop 0x04
label 0x2d
if_chr_dying CHR_TAKER1, /*goto*/ 0x2d
if_chr_death_animation_finished CHR_TAKER1, /*goto*/ 0x2d
if_chr_unloaded CHR_TAKER1, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
if_chr_dying CHR_TAKER2, /*goto*/ 0x2d
if_chr_death_animation_finished CHR_TAKER2, /*goto*/ 0x2d
if_chr_unloaded CHR_TAKER2, /*goto*/ 0x2d
goto_next 0x06
// Both takers dead
label 0x2d
goto_next 0x2e
// At least one taker alive
label 0x06
damage_chr CHR_PILOT1, 18
damage_chr CHR_PILOT2, 18
yield
damage_chr CHR_PILOT1, 18
damage_chr CHR_PILOT2, 18
yield
damage_chr CHR_PILOT1, 18
damage_chr CHR_PILOT2, 18
yield
set_stage_flag STAGEFLAG_PILOTS_DEAD
message CHR_JOANNA, 0x361b // "Pilots have been killed."
goto_next 0x06
// Both takers dead
label 0x2e
// Pilots killed
label 0x06
label 0x10
set_stage_flag STAGEFLAG_PLANE_NOSEDIVING
set_object_image OBJ_AUTOPILOT_SWITCH, 0x00, 0x0f
// Wait 10 seconds
label 0x09
restart_timer
beginloop 0x0f
if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11
if_timer_gt 600, /*goto*/ 0x2d
endloop 0x0f
label 0x2d
set_lighting 0x0000, 0x0a, 0x3c
// Wait 40 seconds or for autopilot
restart_timer
beginloop 0x0a
if_stage_flag_eq STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x11
if_timer_gt 2400, /*goto*/ 0x0b
endloop 0x0a
label 0x0b
if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11
message CHR_JOANNA, 0x361d // "Air Force One is about to crash."
// Wait until the 50 second mark
beginloop 0x0c
if_all_objectives_complete /*goto*/ 0x11
if_stage_flag_eq STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x11
if_timer_gt 3000, /*goto*/ 0x0e
endloop 0x0c
// Crash
label 0x0e
set_stage_flag STAGEFLAG_PLANE_CRASHED
explosions_around_chr CHR_JOANNA
restart_timer
beginloop 0x65
if_timer_gt 180, /*goto*/ 0x2d
endloop 0x65
label 0x2d
end_level
set_function CHR_SELF, GFUNC_IDLE
// Unreachable
label 0x7c
label 0x2d
set_object_image 0x03, 0x00, 0x13
set_stage_flag STAGEFLAG_PLANE_STABILIZED
message CHR_JOANNA, 0x361c // "Pilots have been saved."
reset_ambience
set_function CHR_SELF, GFUNC_IDLE
// Unreachable
label 0x08
goto_first 0x04
// Plane stabilized or all objectives complete
label 0x11
set_function CHR_SELF, GFUNC_IDLE
endfunction
/**
* Assigned to a pilot and a cyclone guard.
*/
func0411_typing_guy:
set_onshot_function FUNC_TYPING_GUY
label 0x04
animation ANIM_SITTING_TYPING, 0, -1, 0x0410, CHR_SELF, 2
beginloop 0x03
if_chr_idle /*goto*/ 0x06
goto_first 0x04
label 0x06
endloop 0x03
endfunction
/**
* Assigned to a pilot and a cyclone guard.
*/
func0412_sitting_guy:
set_onshot_function FUNC_SITTING_GUY
label 0x04
animation ANIM_SITTING_DORMANT, 0, -1, 0x0410, CHR_SELF, 2
beginloop 0x03
if_chr_idle /*goto*/ 0x06
goto_first 0x04
label 0x06
endloop 0x03
endfunction
func0426_start_path00:
set_chr_dodge_rating 2, 0x00
set_accuracy 14
set_reaction_speed 70
set_chr_health CHR_SELF, 40
set_armor 0
set_recovery_speed 0
set_shield 0
assign_path 0
start_path
set_function CHR_SELF, GFUNC_UNALERTED
endfunction
func0427_start_path01:
set_chr_dodge_rating 2, 0x00
set_accuracy 14
set_reaction_speed 70
set_chr_health CHR_SELF, 40
set_armor 0
set_recovery_speed 0
set_shield 0
assign_path 1
start_path
set_function CHR_SELF, GFUNC_UNALERTED
endfunction
func0428_start_path02:
assign_path 2
start_path
set_function CHR_SELF, GFUNC_UNALERTED
endfunction
func1002_intro:
set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN
set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
set_music_track MUSIC_AIRFORCEONE_INTRO
camera_movement 0x018c
set_chr_flag_bank3 0x30, CHRFLAG3_UNPLAYABLE
unset_chr_flag_bank3 0x30, CHRFLAG3_HIDDEN
set_chr_flag_bank2 0x30, CHRFLAG2_00020000
animation 0x018f, -1, -1, 0x0600, 0x30, 4
set_chr_flag_bank3 0x31, CHRFLAG3_UNPLAYABLE
unset_chr_flag_bank3 0x31, CHRFLAG3_HIDDEN
set_chr_flag_bank2 0x31, CHRFLAG2_00020000
animation 0x018d, -1, -1, 0x0600, 0x31, 4
set_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_UNPLAYABLE
unset_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_HIDDEN
set_chr_flag_bank2 CHR_PRESIDENT, CHRFLAG2_00020000
animation 0x018e, -1, -1, 0x0600, CHR_PRESIDENT, 4
set_chr_flag_bank3 0x13, CHRFLAG3_HIDDEN
set_chr_flag_bank3 0x14, CHRFLAG3_HIDDEN
restart_timer
fade_to_color 0x000000ff, 0
fade_to_color 0x00000000, 90
set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE
yield
set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE
.macro wait_until time loopid
beginloop \loopid
if_controller_button_pressed /*goto*/ 0x7d
if_timer_gt \time, /*goto*/ 0x06
endloop \loopid
label 0x06
.endm
wait_until 140, 0x94
wait_until 180, 0x60
speak CHR_JOANNA, 0x3649, 0x744c, CHANNEL_7, COLOR_05_GREEN // "Have you thought any more about that proposal I ga..."
wait_until 330, 0x95
wait_until 360, 0x96
wait_until 438, 0x77
speak CHR_JOANNA, 0x364a, 0x744d, CHANNEL_7, COLOR_08_RED // "My answer remains the same... I'm sorry Trent, but..."
wait_until 486, 0x97
wait_until 532, 0x98
wait_until 850, 0x99
wait_until 1020, 0x78
speak CHR_JOANNA, 0x364b, 0x744e, CHANNEL_7, COLOR_05_GREEN // "But this is a golden opportunity to show that Amer..."
wait_until 1402, 0x79
speak CHR_JOANNA, 0x364c, 0x81bb, CHANNEL_7, COLOR_08_RED // "Damn it, man! I say no and I mean no! I'm not gonn..."
wait_until 2348, 0x7a
speak CHR_JOANNA, 0x364d, 0x7450, CHANNEL_7, COLOR_05_GREEN // "As you wish, sir."
wait_until 2406, 0x9a
wait_until 2410, 0x62
open_door 0x15
wait_until 2465, 0x9b
wait_until 2498, 0x9c
wait_until 2560, 0x9d
wait_until 2616, 0x9e
wait_until 2654, 0x7b
speak CHR_JOANNA, 0x364e, 0x7451, CHANNEL_7, COLOR_05_GREEN // "My last chance? Ha! You fool. That was yours."
close_door 0x15
play_sound 0x8008, CHANNEL_10
wait_until 2680, 0x9f
wait_until 2710, 0xa0
wait_until 2790, 0xa5
wait_until 3140, 0xa1
wait_until 3180, 0xa2
wait_until 3190, 0xa3
wait_until 3210, 0xa4
beginloop 0x08
if_camera_animating /*goto*/ 0x2d
goto_next 0x7d
label 0x2d
if_controller_button_pressed /*goto*/ 0x7d
label 0x2d
endloop 0x08
label 0x7d
mute_channel CHANNEL_10
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
set_chr_flag_bank2 CHR_VELVET, CHRFLAG2_DISGUISED
label 0x2d
if_eeprom_flag_is_set EEPROMFLAG_AF1_ENTRY, /*goto*/ 0x06
goto_next 0x7e
label 0x06
camera_movement 0x01d0
cmd0175 60
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
chr_move_to_pad CHR_VELVET, 0x008a, 0x01, /*goto*/ 0x2d
label 0x2d
if_controller_button_pressed /*goto*/ 0x5f
set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000
animation 0x01d1, -1, -1, 0x0600, CHR_JOANNA, 4
beginloop 0x09
if_camera_animating /*goto*/ 0x2d
goto_next 0x5f
label 0x2d
if_controller_button_pressed /*goto*/ 0x5f
label 0x2d
endloop 0x09
label 0x7e
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISED
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
set_chr_flag_bank2 CHR_VELVET, CHRFLAG2_DISGUISED
label 0x2d
dprint "DISGUISED\n"
camera_movement 0x01d2
cmd0175 60
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
chr_move_to_pad CHR_VELVET, 0x00b2, 0x01, /*goto*/ 0x2d
label 0x2d
if_controller_button_pressed /*goto*/ 0x5f
set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000
animation 0x01d3, -1, -1, 0x0600, CHR_JOANNA, 4
beginloop 0x0a
if_camera_animating /*goto*/ 0x2d
goto_next 0x5f
label 0x2d
if_controller_button_pressed /*goto*/ 0x5f
label 0x2d
endloop 0x0a
label 0x5f
mute_channel CHANNEL_7
unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN
unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000
if_eeprom_flag_is_set EEPROMFLAG_AF1_ENTRY, /*goto*/ 0x06
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP
animation 0x01d3, -2, -1, 0x0600, CHR_JOANNA, 2
goto_next 0x2d
label 0x06
animation 0x01d1, -2, -1, 0x0600, CHR_JOANNA, 2
label 0x2d
restart_default_music
reset_ambience
unset_chr_flag_bank3 0x13, CHRFLAG3_HIDDEN
unset_chr_flag_bank3 0x14, CHRFLAG3_HIDDEN
set_function CHR_PRESIDENT, FUNC_INIT_PRESIDENT
set_function 0x09, FUNC_INIT_NEUTRAL
set_function 0x0a, FUNC_INIT_NEUTRAL
set_function 0x0c, FUNC_INIT_NEUTRAL
set_function 0x0d, FUNC_INIT_NEUTRAL
remove_chr 0x30
remove_chr 0x31
unset_chr_flag_bank3 0x30, CHRFLAG3_UNPLAYABLE
unset_chr_flag_bank3 0x31, CHRFLAG3_UNPLAYABLE
unset_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_UNPLAYABLE
set_stage_flag STAGEFLAG_INTRO_FINISHED
enter_firstperson
set_function CHR_SELF, GFUNC_IDLE
endfunction
/**
* The dumbwaiter near the middle of the plane.
*/
func1010_dumbwaiter1:
label 0x03
set_object_flag_bank0 OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED
set_object_image OBJ_DUMBWAITER1_SWITCH, 0x00, 0x12
beginloop 0x04
consider_coop_for_p1p2_chr CHR_SELF
if_chr_activated_object CHR_P1P2, OBJ_DUMBWAITER1_SWITCH, /*goto*/ 0x2d
endloop 0x04
label 0x2d
play_sound 0x043a, CHANNEL_7
set_object_image OBJ_DUMBWAITER1_SWITCH, 0x00, 0x13
unset_object_flag_bank0 OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED
yield
yield
yield
beginloop 0x08
if_lift_stationary OBJ_DUMBWAITER1, /*goto*/ 0x06
endloop 0x08
label 0x06
set_object_flag_bank0 OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED
restart_timer
beginloop 0x09
if_timer_gt 180, /*goto*/ 0x2d
endloop 0x09
label 0x2d
unset_object_flag_bank0 OBJ_DUMBWAITER1, OBJECTFLAG0_DEACTIVATED
yield
yield
yield
beginloop 0x0a
if_lift_stationary OBJ_DUMBWAITER1, /*goto*/ 0x06
goto_next 0x2d
label 0x06
endloop 0x0a
label 0x2d
yield
yield
yield
beginloop 0x0b
if_lift_stationary OBJ_DUMBWAITER1, /*goto*/ 0x06
endloop 0x0b
label 0x06
open_door 0x2b
if_chr_activated_object CHR_P1P2, OBJ_DUMBWAITER1_SWITCH, /*goto*/ 0x2d
label 0x2d
goto_first 0x03
endfunction
func1011_dumbwaiter2:
label 0x03
set_object_flag_bank0 OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED
set_object_image OBJ_DUMBWAITER2_SWITCH, 0x00, 0x12
beginloop 0x04
consider_coop_for_p1p2_chr CHR_SELF
if_chr_activated_object CHR_P1P2, OBJ_DUMBWAITER2_SWITCH, /*goto*/ 0x2d
endloop 0x04
label 0x2d
play_sound 0x043a, CHANNEL_7
set_object_image OBJ_DUMBWAITER2_SWITCH, 0x00, 0x13
unset_object_flag_bank0 OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED
yield
yield
yield
beginloop 0x08
if_lift_stationary OBJ_DUMBWAITER2, /*goto*/ 0x06
endloop 0x08
label 0x06
set_object_flag_bank0 OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED
restart_timer
beginloop 0x09
if_timer_gt 180, /*goto*/ 0x2d
endloop 0x09
label 0x2d
unset_object_flag_bank0 OBJ_DUMBWAITER2, OBJECTFLAG0_DEACTIVATED
yield
yield
yield
beginloop 0x0a
if_lift_stationary OBJ_DUMBWAITER2, /*goto*/ 0x06
endloop 0x0a
label 0x06
// @bug: Wrong object, but this is a no-op anyway.
if_chr_activated_object CHR_P1P2, OBJ_DUMBWAITER1_SWITCH, /*goto*/ 0x2d
label 0x2d
goto_first 0x03
endfunction
func040a_defend_pad:
set_onshot_function FUNC_DEFEND_PAD
set_return_function CHR_SELF, FUNC_DEFEND_PAD
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2d
if_chr_dying CHR_SELF, /*goto*/ 0x2d
if_chr_unloaded CHR_SELF, /*goto*/ 0x2d
goto_next 0x06
// Dying
label 0x2d
set_onshot_function GFUNC_IDLE
set_function CHR_SELF, GFUNC_IDLE
// Alive
label 0x06
if_just_injured CHR_SELF, /*goto*/ 0x2d
goto_next 0x06
// Injured
label 0x2d
beginloop 0x0a
if_chr_stopped /*goto*/ 0x06
endloop 0x0a
// Not injured
label 0x06
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08
if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06
label 0x03
jog_to_pad TARGET_PAD
beginloop 0x04
dprint "GO TO PAD\n"
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08
if_chr_distance_to_pad_lt CHR_SELF, 200, TARGET_PAD, /*goto*/ 0x06
endloop 0x04
label 0x06
stop_chr
beginloop 0x09
dprint "AT PAD\n"
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08
if_chr_distance_to_pad_gt CHR_SELF, 300, TARGET_PAD, /*goto*/ 0x06
endloop 0x09
label 0x06
goto_first 0x03
// Detected enemy
label 0x08
dprint "DETECTED\n"
set_return_function CHR_SELF, FUNC_DEFEND_PAD
set_onshot_function FUNC_DEFEND_PAD
set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR
endfunction
/**
* Unused, but would have been assigned to a cyclone guard.
*/
func040b_defend_president:
set_onshot_function FUNC_DEFEND_PRESIDENT
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08
if_self_distance_to_chr_lt 200, CHR_PRESIDENT, /*goto*/ 0x06
label 0x03
chr_try_run_to_target_chr_with_hand_up CHR_PRESIDENT, /*goto*/ 0x04
beginloop 0x04
dprint "GO TO PAD\n"
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08
if_detected_chr CHR_PRESIDENT, /*goto*/ 0x60
endloop 0x04
// Near president
label 0x60
if_self_distance_to_chr_lt 200, CHR_PRESIDENT, /*goto*/ 0x06
goto_first 0x04
label 0x06
stop_chr
beginloop 0x09
dprint "AT PAD\n"
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x08
if_detected_chr CHR_PRESIDENT, /*goto*/ 0x60
goto_first 0x04
label 0x60
if_chr_distance_to_target_chr_gt 300, CHR_PRESIDENT, /*goto*/ 0x06
endloop 0x09
label 0x06
goto_first 0x03
// Detected enemy
label 0x08
dprint "DETECTED\n"
set_return_function CHR_SELF, FUNC_DEFEND_PRESIDENT
set_onshot_function FUNC_DEFEND_PRESIDENT
set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR
endfunction
func0415_cloner1:
set_self_flag_bank3 CHRFLAG3_00000002
set_self_flag_bank3 CHRFLAG3_HIDDEN
set_self_flag_bank3 CHRFLAG3_00040000
beginloop 0x03
if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06
reloop 0x03
label 0x06
if_stage_flag_eq STAGEFLAG_PRESIDENT_AT_POD, TRUE, /*goto*/ 0x06
endloop 0x03
label 0x06
set_chr_alliance CHR_SELF, 0x04
try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04
beginloop 0x04
if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e
// These rooms are the attachment area
consider_coop_for_p1p2_chr CHR_SELF
if_chr_in_room CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d
if_chr_in_room CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d
if_chr_in_room CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d
if_never_been_onscreen /*goto*/ 0x4f
if_chr_sees_player /*goto*/ 0x08
label 0x2d
reloop 0x04
// Line of sight to player
label 0x08
set_function CHR_SELF, FUNC_CLONE1
// Chr flag is unset
label 0x4f
if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f
reloop 0x04
// @bug? This may have intended to be a bank 1 check because the bank 1
// flag is unset further below, and cloner3 uses bank 1.
label 0x4f
if_self_flag_bankx_eq CHRFLAG0_00080000, TRUE, BANK_0, /*goto*/ 0x2d
restart_timer
beginloop 0x0b
if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e
if_timer_gt 2400, /*goto*/ 0x2d
endloop 0x0b
// Player is in UFO area, or interval has passed
label 0x2d
unset_self_flag_bankx CHRFLAG1_00080000, BANK_1
try_spawn_clone2 CHR_SELF, FUNC_INIT_CLONE1, 0x00000000, /*goto*/ 0x2d
label 0x2d
yield
endloop 0x04
// UFO attachment damaged
label 0x0e
set_function CHR_SELF, GFUNC_IDLE
endfunction
func0416_init_clone1:
set_chr_dodge_rating 2, 0x00
set_accuracy 14
set_reaction_speed 50
set_chr_health CHR_SELF, 60
set_armor 0
set_recovery_speed 30
set_shield 0
set_self_flag_bankx CHRFLAG1_00080000, BANK_1
try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04
label 0x04
cmd0145_rebuild_groups
cmd0146_rebuild_groups
try_inherit_properties 0x35, /*goto*/ 0x06
label 0x06
set_function CHR_SELF, FUNC_CLONE1
endfunction
func0417_clone1:
// Pad is at the cockpit door
run_to_pad 0x0042
set_return_function CHR_SELF, FUNC_CLONE1
set_function CHR_SELF, GFUNC_UNALERTED
endfunction
func0418_cloner2:
set_self_flag_bank3 CHRFLAG3_00000002
set_self_flag_bank3 CHRFLAG3_HIDDEN
set_self_flag_bank3 CHRFLAG3_00040000
beginloop 0x03
if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06
reloop 0x03
label 0x06
if_stage_flag_eq STAGEFLAG_PRESIDENT_AT_POD, TRUE, /*goto*/ 0x06
endloop 0x03
label 0x06
set_chr_alliance CHR_SELF, 0x04
try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04
yield
yield
yield
yield
yield
beginloop 0x04
if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e
// These rooms are the attachment area
consider_coop_for_p1p2_chr CHR_SELF
if_chr_in_room CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d
if_chr_in_room CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d
if_chr_in_room CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d
if_never_been_onscreen /*goto*/ 0x4f
if_chr_sees_player /*goto*/ 0x08
label 0x2d
reloop 0x04
// Line of sight to player
label 0x08
set_function CHR_SELF, FUNC_CLONE2
// Chr flag is unset
label 0x4f
if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f
reloop 0x04
// @bug? This may have intended to be a bank 1 check because the bank 1
// flag is unset further below, and cloner3 uses bank 1.
label 0x4f
if_self_flag_bankx_eq CHRFLAG0_00080000, TRUE, BANK_0, /*goto*/ 0x2d
restart_timer
beginloop 0x0b
if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e
if_timer_gt 3600, /*goto*/ 0x2d
endloop 0x0b
// Player is in UFO area, or interval has passed
label 0x2d
unset_self_flag_bankx CHRFLAG1_00080000, BANK_1
try_spawn_clone2 CHR_SELF, FUNC_INIT_CLONE2, 0x00000000, /*goto*/ 0x2d
label 0x2d
yield
endloop 0x04
// UFO attachment damaged
label 0x0e
set_function CHR_SELF, GFUNC_IDLE
endfunction
func0419_init_clone2:
set_chr_dodge_rating 2, 0x00
set_accuracy 14
set_reaction_speed 50
set_chr_health CHR_SELF, 60
set_armor 0
set_recovery_speed 30
set_shield 0
set_self_flag_bankx CHRFLAG1_00080000, BANK_1
try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04
label 0x04
cmd0145_rebuild_groups
cmd0146_rebuild_groups
try_inherit_properties 0x36, /*goto*/ 0x06
label 0x06
set_function CHR_SELF, FUNC_CLONE2
endfunction
func041a_clone2:
// Pad is at back of the plane, top floor
run_to_pad 0x005c
set_return_function CHR_SELF, FUNC_CLONE2
set_function CHR_SELF, GFUNC_UNALERTED
endfunction
/**
* Unlike the other two cloners, this one does not stop once the president has
* reached the escape pod.
*/
func041b_cloner3:
set_self_flag_bank3 CHRFLAG3_00000002
set_self_flag_bank3 CHRFLAG3_HIDDEN
set_self_flag_bank3 CHRFLAG3_00040000
beginloop 0x03
if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x06
endloop 0x03
label 0x06
yield
yield
yield
yield
yield
yield
yield
yield
yield
yield
set_chr_alliance CHR_SELF, 0x04
try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04
beginloop 0x04
if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e
consider_coop_for_p1p2_chr CHR_SELF
if_chr_in_room CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d
if_chr_in_room CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d
if_chr_in_room CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d
if_never_been_onscreen /*goto*/ 0x4f
if_chr_sees_player /*goto*/ 0x08
label 0x2d
reloop 0x04
label 0x08
set_function CHR_SELF, FUNC_CLONE3
label 0x4f
if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f
reloop 0x04
label 0x4f
if_self_flag_bankx_eq CHRFLAG1_00080000, TRUE, BANK_1, /*goto*/ 0x2d
restart_timer
beginloop 0x0b
if_stage_flag_eq STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e
if_timer_gt 3600, /*goto*/ 0x2d
endloop 0x0b
label 0x2d
unset_self_flag_bankx CHRFLAG1_00080000, BANK_1
try_spawn_clone2 CHR_SELF, FUNC_INIT_CLONE3, 0x00000000, /*goto*/ 0x2d
label 0x2d
yield
endloop 0x04
label 0x0e
set_function CHR_SELF, GFUNC_IDLE
endfunction
func041c_init_clone3:
set_chr_dodge_rating 2, 0x00
set_accuracy 14
set_reaction_speed 50
set_chr_health CHR_SELF, 60
set_armor 0
set_recovery_speed 30
set_shield 0
set_self_flag_bankx CHRFLAG1_00080000, BANK_1
try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x10000000, /*goto*/ 0x04
label 0x04
cmd0145_rebuild_groups
cmd0146_rebuild_groups
try_inherit_properties 0x37, /*goto*/ 0x06
label 0x06
set_function CHR_SELF, FUNC_CLONE3
endfunction
func041d_clone3:
set_target_chr CHR_JOANNA
try_run_to_target_chr /*goto*/ 0x04
label 0x04
yield
set_return_function CHR_SELF, FUNC_CLONE3
set_function CHR_SELF, GFUNC_ALERTED
endfunction
func041f_init_blonde:
set_chr_alliance CHR_SELF, 0x04
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_chr_dodge_rating 2, 0x00
set_accuracy 24
set_reaction_speed 50
set_chr_health CHR_SELF, 60
set_armor 100
set_recovery_speed 100
set_shield 0
set_function CHR_SELF, FUNC_BLONDE
endfunction
func041e_blonde:
set_chr_alliance CHR_SELF, 0x04
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_accuracy 30
set_onshot_function FUNC_BLONDE
if_chr_dying CHR_SELF, /*goto*/ 0x06
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x06
if_chr_unloaded CHR_SELF, /*goto*/ 0x06
goto_next 0x2d
// Dying
label 0x06
set_onshot_function GFUNC_IDLE
restart_timer
beginloop 0x54
if_timer_gt 15, /*goto*/ 0x06
endloop 0x54
label 0x06
say_quip CHR_JOANNA, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00
set_onshot_function GFUNC_IDLE
set_function CHR_SELF, GFUNC_IDLE
// Alive
// This injured check is pointless
label 0x2d
if_just_injured CHR_SELF, /*goto*/ 0x06
goto_next 0x08
label 0x06
label 0x08
set_self_flag_bank3 CHRFLAG3_00000040
label 0x68
if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06
try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x75
label 0x06
kneel
beginloop 0x75
label 0x2d
consider_coop_for_p1p2_chr CHR_P1P2
set_target_chr CHR_JOANNA
if_target_chr_in_sight /*goto*/ 0x6a
if_near_miss /*goto*/ 0x6b
label 0x2d
reloop 0x75
label 0x06
if_target_chr_in_sight /*goto*/ 0x6a
label 0x2d
endloop 0x75
label 0x6a
if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2d
set_self_flag_bankx CHRFLAG0_00000004, BANK_0
say_quip CHR_JOANNA, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00
label 0x2d
goto_next 0x6c
// Unreachable
try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x6d
goto_next 0x6e
// Reachable from below
beginloop 0x6d
if_chr_stopped /*goto*/ 0x6e
endloop 0x6d
label 0x6e
restart_timer
animation ANIM_RELOAD_0209, 0, -1, 0x1010, CHR_SELF, 2
beginloop 0x66
if_self_flag_bankx_eq CHRFLAG1_00000020, FALSE, BANK_1, /*goto*/ 0x06
if_timer_lt 120, /*goto*/ 0x06
assign_sound 0x80f6, CHANNEL_7
play_sound_from_entity CHANNEL_7, CHR_SELF, 0x0bb8, 0x1770, 0x01
unset_self_flag_bankx CHRFLAG1_00000020, BANK_1
label 0x06
if_chr_stopped /*goto*/ 0x2d
endloop 0x66
label 0x2d
label 0x06
goto_first 0x68
label 0x6b
restart_timer
if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x6f
set_self_flag_bankx CHRFLAG0_00000004, BANK_0
label 0x6f
call_rng
if_target_chr_in_sight /*goto*/ 0x70
if_timer_gt 60, /*goto*/ 0x71
if_rand_lt 4, /*goto*/ 0x71
goto_first 0x6f
label 0x71
if_chr_sees_player /*goto*/ 0x70
goto_first 0x68
label 0x70
goto_first 0x6a
label 0x72
restart_timer
beginloop 0x73
if_chr_sees_player /*goto*/ 0x70
if_timer_gt 300, /*goto*/ 0x06
endloop 0x73
label 0x06
goto_first 0x68
label 0x70
goto_first 0x6a
label 0x6c
say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00
try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x06
label 0x06
goto_first 0x6d
label 0x2d
goto_first 0x6e
label 0x76
try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x74
label 0x74
say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00
try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x06
goto_next 0x2d
label 0x06
goto_first 0x6d
label 0x2d
goto_first 0x6e
endfunction
func0421_trent_waiting:
set_chr_alliance CHR_SELF, 0x04
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_self_flag_bank3 CHRFLAG3_00000040
set_shield 500
set_chr_flag_bank3 CHR_TRENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE
beginloop 0x04
consider_coop_for_p1p2_chr CHR_SELF
set_target_chr CHR_P1P2
if_chr_sees_player /*goto*/ 0x06
endloop 0x04
label 0x06
restart_timer
speak TARGET_CHR, 0x362d, 0x816f, CHANNEL_6, COLOR_05_GREEN // "How the hell did you get on board?"
animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2
beginloop 0x08
if_timer_gt 120, /*goto*/ 0x06
endloop 0x08
label 0x06
set_function CHR_SELF, FUNC_TRENT_ATTACKING
endfunction
func0420_trent_attacking:
label 0x03
stop_chr
beginloop 0x04
consider_coop_for_p1p2_chr CHR_SELF
set_target_chr CHR_P1P2
try_unset_chr_flag_bank3_02000000 CHR_SELF, /*goto*/ 0x2d
set_target_chr CHR_PRESIDENT
if_target_chr_in_sight /*goto*/ 0x06
if_stage_flag_eq STAGEFLAG_ONE_BLONDE_DEAD, TRUE, /*goto*/ 0x2d
endloop 0x04
// One Blonde dead or player in sight
label 0x2d
set_shield 500
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_10000000
speak CHR_P1P2, 0x3646, 0x12cb, CHANNEL_6, COLOR_05_GREEN // "Ha, Ha, Ha, Ha, Ha."
set_function CHR_SELF, FUNC_TRENT_RUNNING
// President in sight
label 0x06
label 0x76
try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x74
label 0x74
say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00
try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x08
goto_next 0x2d
beginloop 0x08
if_chr_stopped /*goto*/ 0x06
endloop 0x08
label 0x06
if_chr_dying TARGET_CHR, /*goto*/ 0x09
if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x09
if_chr_unloaded TARGET_CHR, /*goto*/ 0x09
goto_first 0x03
label 0x2d
goto_first 0x03
label 0x09
restart_timer
animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2
speak CHR_P1P2, 0x3647, 0x12ca, CHANNEL_6, COLOR_05_GREEN // "You'll never save him now."
beginloop 0x0a
if_timer_gt 120, /*goto*/ 0x06
endloop 0x0a
label 0x06
set_function CHR_SELF, FUNC_TRENT_RUNNING
endfunction
func0422_trent_running:
run_to_pad 0x0034
beginloop 0x08
if_chr_stopped /*goto*/ 0x06
endloop 0x08
label 0x06
set_target_chr CHR_JOANNA
if_chr_sees_player /*goto*/ 0x06
set_target_chr CHR_VELVET
if_chr_sees_player /*goto*/ 0x06
set_self_flag_bank3 CHRFLAG3_HIDDEN
remove_chr CHR_SELF
set_function CHR_SELF, GFUNC_IDLE
label 0x06
set_alertness 100
set_return_function CHR_SELF, GFUNC_UNALERTED
set_function CHR_SELF, GFUNC_UNALERTED
endfunction
func1012_check_blondes_dead:
beginloop 0x04
if_chr_dying CHR_BLONDE1, /*goto*/ 0x2d
if_chr_death_animation_finished CHR_BLONDE1, /*goto*/ 0x2d
if_chr_unloaded CHR_BLONDE1, /*goto*/ 0x2d
if_chr_dying CHR_BLONDE2, /*goto*/ 0x06
if_chr_death_animation_finished CHR_BLONDE2, /*goto*/ 0x06
if_chr_unloaded CHR_BLONDE2, /*goto*/ 0x06
reloop 0x04
// Blonde 2 dead
label 0x06
set_stage_flag STAGEFLAG_ONE_BLONDE_DEAD
reloop 0x04
// Blonde 1 dead
label 0x2d
set_stage_flag STAGEFLAG_ONE_BLONDE_DEAD
if_chr_dying CHR_BLONDE2, /*goto*/ 0x2d
if_chr_death_animation_finished CHR_BLONDE2, /*goto*/ 0x2d
if_chr_unloaded CHR_BLONDE2, /*goto*/ 0x2d
endloop 0x04
// Both blondes dead
label 0x2d
set_stage_flag STAGEFLAG_BOTH_BLONDES_DEAD
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1013_unhide_trent_and_blondes:
yield
hide_chr CHR_TRENT
hide_chr CHR_BLONDE1
hide_chr CHR_BLONDE2
beginloop 0x04
consider_coop_for_p1p2_chr CHR_SELF
if_stage_flag_eq STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x2d
reloop 0x04
label 0x2d
if_chr_y CHR_P1P2, 190, OPERATOR_LESS_THAN, /*goto*/ 0x2d
endloop 0x04
label 0x2d
show_chr CHR_TRENT
set_function CHR_TRENT, FUNC_TRENT_WAITING
show_chr CHR_BLONDE1
set_function CHR_BLONDE1, FUNC_INIT_BLONDE
show_chr CHR_BLONDE2
set_function CHR_BLONDE2, FUNC_INIT_BLONDE
yield
unset_chr_flag_bank3 CHR_TRENT, CHRFLAG3_HIDDEN
unset_chr_flag_bank3 CHR_BLONDE1, CHRFLAG3_HIDDEN
unset_chr_flag_bank3 CHR_BLONDE2, CHRFLAG3_HIDDEN
set_function CHR_SELF, GFUNC_IDLE
endfunction
/**
* Assigned to basically everyone during president conversation.
*/
func0429_be_unalert:
set_onshot_function GFUNC_ALERTED
set_target_chr CHR_JOANNA
set_alertness 0
label 0x03
try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x04
beginloop 0x04
if_chr_stopped /*goto*/ 0x06
if_chr_dying CHR_PRESIDENT, /*goto*/ 0x2d
if_chr_death_animation_finished CHR_PRESIDENT, /*goto*/ 0x2d
if_chr_unloaded CHR_PRESIDENT, /*goto*/ 0x2d
endloop 0x04
label 0x06
goto_first 0x03
label 0x2d
set_function CHR_SELF, GFUNC_UNALERTED
endfunction
/**
* Would have given the player one minute before the diguise was uncovered.
* The set_function at the start has effectively disabled this function.
*/
func1014_uncover_disguise:
set_function CHR_SELF, GFUNC_IDLE
restart_timer
beginloop 0x04
if_timer_gt 3600, /*goto*/ 0x06
endloop 0x04
label 0x06
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED
set_function CHR_SELF, GFUNC_IDLE
endfunction
/**
* Assigned to presidential security as well as the two mechanics.
*/
func042a_init_neutral:
yield
beginloop 0x60
if_camera_animating /*goto*/ 0x77
goto_next 0x06
label 0x77
endloop 0x60
label 0x06
yield
yield
yield
yield
yield
yield
yield
yield
yield
yield
yield
yield
yield
yield
set_chr_dodge_rating 2, 0x00
set_accuracy 14
set_reaction_speed 70
set_chr_health CHR_SELF, 40
set_armor 0
set_recovery_speed 0
set_shield 0
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_function CHR_SELF, GFUNC_UNALERTED
endfunction
func042b_reinit_stripes:
set_chr_dodge_rating 2, 0x00
set_accuracy 14
set_reaction_speed 50
set_chr_health CHR_SELF, 60
set_armor 0
set_recovery_speed 30
set_shield 0
set_chr_alliance CHR_SELF, 0x04
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_function CHR_SELF, FUNC_STRIPES
endfunction
func0407_steward:
set_onshot_function FUNC_STEWARD_SHOT
beginloop 0x03
consider_coop_for_p1p2_chr CHR_SELF
set_target_chr CHR_P1P2
if_chr_idle /*goto*/ 0x2d
call_rng
if_rand_lt 32, /*goto*/ 0x0f
call_rng
if_rand_lt 32, /*goto*/ 0x8a
if_rand_lt 64, /*goto*/ 0x8b
if_rand_lt 96, /*goto*/ 0x8c
if_rand_lt 128, /*goto*/ 0x8d
if_rand_lt 160, /*goto*/ 0x8e
if_rand_lt 192, /*goto*/ 0x8f
if_rand_lt 224, /*goto*/ 0x90
animation ANIM_OPERATE_0221, -1, -1, 0x1001, CHR_SELF, 2
goto_next 0x2d
label 0x8a
animation ANIM_OPERATE_0221, -1, -1, 0x1001, CHR_SELF, 2
goto_next 0x2d
label 0x8b
animation ANIM_OPERATE_0223, -1, -1, 0x1001, CHR_SELF, 2
goto_next 0x2d
label 0x8c
animation ANIM_OPERATE_0221, -1, -1, 0x1101, CHR_SELF, 2
goto_next 0x2d
label 0x8d
animation ANIM_OPERATE_0221, -1, -1, 0x1101, CHR_SELF, 2
goto_next 0x2d
label 0x8e
animation ANIM_OPERATE_0223, -1, -1, 0x1101, CHR_SELF, 2
goto_next 0x2d
label 0x8f
animation 0x023a, -1, -1, 0x1101, CHR_SELF, 2
goto_next 0x2d
label 0x90
animation 0x023b, -1, -1, 0x1101, CHR_SELF, 2
goto_next 0x2d
label 0x0f
call_rng
if_rand_lt 86, /*goto*/ 0x60
if_rand_lt 172, /*goto*/ 0x77
if_chr_distance_to_pad_lt CHR_SELF, 50, 0x00c1, /*goto*/ 0x60
label 0x79
walk_to_pad 0x00c1
set_var_a 1
set_target_pad 0x00c2
goto_next 0x87
label 0x60
if_chr_distance_to_pad_lt CHR_SELF, 50, 0x00c3, /*goto*/ 0x77
walk_to_pad 0x00c3
set_var_a 2
set_target_pad 0x00c4
goto_next 0x87
label 0x77
if_chr_distance_to_pad_lt CHR_SELF, 50, 0x00c1, /*goto*/ 0x78
set_var_a 3
set_target_pad 0x00c6
walk_to_pad 0x00c5
goto_next 0x87
label 0x78
goto_first 0x79
beginloop 0x87
consider_coop_for_p1p2_chr CHR_SELF
set_target_chr CHR_P1P2
if_target_chr_in_sight /*goto*/ 0x89
if_shot_near_chr 0x00, /*goto*/ 0x89
if_chr_stopped /*goto*/ 0x06
endloop 0x87
label 0x06
try_face_entity ENTITYTYPE_PAD, TARGET_PAD, /*goto*/ 0x88
beginloop 0x88
if_chr_stopped /*goto*/ 0x06
endloop 0x88
label 0x06
reloop 0x03
animation ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2
label 0x2d
if_target_chr_in_sight /*goto*/ 0x89
if_shot_near_chr 0x00, /*goto*/ 0x89
endloop 0x03
// Detected player
label 0x89
set_alertness 100
restart_timer
try_face_entity 0x0200, 0x0000, /*goto*/ 0x09
beginloop 0x09
if_angle_to_target_chr_lt 10, /*goto*/ 0x06
if_timer_gt 60, /*goto*/ 0x06
endloop 0x09
label 0x06
set_group_alertness 100
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED
do_special_animation -1
restart_timer
speak CHR_P1P2, 0x362b, 0x1abb, CHANNEL_4, COLOR_04_ORANGE // "Hey, that's not..."
beginloop 0x08
if_timer_gt 35, /*goto*/ 0x2d
endloop 0x08
label 0x2d
mute_channel CHANNEL_4
set_function CHR_SELF, GFUNC_ALERTED
set_function CHR_SELF, GFUNC_IDLE
endfunction
func0407_steward_shot:
mute_channel CHANNEL_4
set_function CHR_SELF, GFUNC_ALERTED
endfunction
func0407_stewardess:
set_chr_health CHR_SELF, 0
set_onshot_function FUNC_STEWARDESS
if_chr_dying CHR_SELF, /*goto*/ 0x06
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x06
if_chr_unloaded CHR_SELF, /*goto*/ 0x06
goto_next 0x03
label 0x06
set_function CHR_SELF, GFUNC_IDLE
// Wait until alerted
beginloop 0x03
if_chr_idle /*goto*/ 0x2d
animation ANIM_OPERATE_0204, 0, -1, 0x1010, CHR_SELF, 2
label 0x2d
if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x2d
if_shot_near_chr 0x00, /*goto*/ 0x2d
if_chr_dying CHR_STEWARD, /*goto*/ 0x2d
if_chr_death_animation_finished CHR_STEWARD, /*goto*/ 0x2d
if_chr_unloaded CHR_STEWARD, /*goto*/ 0x2d
endloop 0x03
// Alerted
label 0x2d
try_face_entity 0x0200, 0x0000, /*goto*/ 0x09
beginloop 0x09
if_angle_to_target_chr_lt 10, /*goto*/ 0x06
if_timer_gt 60, /*goto*/ 0x06
endloop 0x09
label 0x06
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_DISGUISE_UNCOVERED
animation ANIM_WALK_BACKWARDS, -1, -1, 0x1010, CHR_SELF, 2
restart_timer
beginloop 0x08
if_timer_gt 120, /*goto*/ 0x06
endloop 0x08
label 0x06
try_target_chr_in_same_group /*goto*/ 0x2d
goto_next 0x0a
label 0x2d
try_run_to_chr FOLLOW_CHR, /*goto*/ 0x7f
beginloop 0x7f
if_detected_chr FOLLOW_CHR, /*goto*/ 0x80
if_chr_stopped /*goto*/ 0x80
endloop 0x7f
label 0x80
play_sound 0x1adc, CHANNEL_7
set_group_alertness 100
label 0x0a
set_self_flag_bank3 CHRFLAG3_01000000
animation ANIM_COWER_0229, -1, 190, 0x100a, CHR_SELF, 2
beginloop 0x83
if_chr_stopped /*goto*/ 0x2d
endloop 0x83
label 0x2d
goto_first 0x0a
endfunction
func1015_msg_retrievetheevidence:
if_difficulty_lt DIFF_SA, /*goto*/ 0x0e
beginloop 0x04
if_stage_flag_eq STAGEFLAG_INTRO_FINISHED, TRUE, /*goto*/ 0x2d
endloop 0x04
label 0x2d
restart_timer
beginloop 0x08
if_timer_gt 180, /*goto*/ 0x2d
endloop 0x08
label 0x2d
speak CHR_JOANNA, 0x362e, 0x73c8, CHANNEL_6, COLOR_09_BLUE // "Now, let's retrieve the evidence."
label 0x0e
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1016_msg_onthislevel:
restart_timer
beginloop 0x04
consider_coop_for_p1p2_chr CHR_SELF
if_chr_y CHR_P1P2, 440, OPERATOR_LESS_THAN, /*goto*/ 0x06
goto_next 0x2d
label 0x06
endloop 0x04
label 0x2d
set_target_chr FOLLOW_CHR
speak TARGET_CHR, 0x362f, 0x8185, CHANNEL_6, COLOR_09_BLUE // "The President's room is on this level, Joanna."
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1017_msg_gettothecockpit:
beginloop 0x04
if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x0e
if_stage_flag_eq STAGEFLAG_PILOTS_DEAD, TRUE, /*goto*/ 0x2d
reloop 0x04
label 0x2d
if_stage_flag_eq STAGEFLAG_PLANE_NOSEDIVING, TRUE, /*goto*/ 0x2d
endloop 0x04
label 0x2d
restart_timer
beginloop 0x08
if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x0e
if_timer_gt 180, /*goto*/ 0x2d
endloop 0x08
label 0x2d
speak CHR_JOANNA, 0x3630, 0x8186, CHANNEL_5, COLOR_09_BLUE // "Something's wrong... You have to get to the cockpi..."
label 0x0e
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1018_msg_maybeamine:
beginloop 0x04
if_stage_flag_eq STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x0e
consider_coop_for_p1p2_chr CHR_SELF
if_objective_complete 2, /*goto*/ 0x2d
reloop 0x04
label 0x2d
if_chr_in_room CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d
endloop 0x04
label 0x2d
speak CHR_P1P2, 0x3631, 0x73cb, CHANNEL_6, COLOR_09_BLUE // "Maybe a mine will detach the UFO."
label 0x0e
set_function CHR_SELF, GFUNC_IDLE
endfunction
func0c02_outro_from_menu:
set_function CHR_ELVIS, GFUNC_IDLE
set_function CHR_SELF, FUNC_OUTRO
endfunction
func0423_outro:
set_lighting 0x0000, 0x0d, 0x00
if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2d
set_target_chr CHR_JOANNA
goto_next 0x06
label 0x2d
set_target_chr CHR_VELVET
label 0x06
camera_movement 0x02d8
set_music_track MUSIC_AIRFORCEONE_OUTRO
set_lighting 0x0000, 0x0d, 0x00
set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN
set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN
set_function TARGET_CHR, GFUNC_IDLE
set_chr_flag_bank3 TARGET_CHR, CHRFLAG3_UNPLAYABLE
unset_chr_flag_bank3 TARGET_CHR, CHRFLAG3_HIDDEN
set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_00020000
animation 0x02da, -1, -1, 0x0600, TARGET_CHR, 4
set_chr_hud_visible TARGET_CHR, TRUE
set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNPLAYABLE
unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_HIDDEN
set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000
animation 0x02d9, -1, -1, 0x0600, CHR_ELVIS, 4
show_object 0x19
set_object_flag_bank1 0x19, OBJECTFLAG1_04000000
set_object_flag_bank2 0x19, OBJECTFLAG2_00000010
object_do_animation 0x02db, 0x19, 0x04ff, 0xff
show_object 0x1a
set_object_flag_bank1 0x1a, OBJECTFLAG1_04000000
set_object_flag_bank2 0x1a, OBJECTFLAG2_00000010
object_do_animation 0x02dc, 0x1a, 0x04ff, 0xff
show_object 0x23
set_object_flag_bank1 0x23, OBJECTFLAG1_04000000
set_object_flag_bank2 0x23, OBJECTFLAG2_00000010
object_do_animation 0x02dd, 0x23, 0x04ff, 0xff
show_object 0x37
set_object_flag_bank1 0x37, OBJECTFLAG1_04000000
set_object_flag_bank2 0x37, OBJECTFLAG2_00000010
object_do_animation 0x02de, 0x37, 0x04ff, 0xff
restart_timer
set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE
yield
set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE
show_nonessential_chrs FALSE
label 0x60
yield
if_controller_button_pressed /*goto*/ 0x5f
if_timer_gt 20, /*goto*/ 0x06
goto_first 0x60
label 0x06
speak CHR_JOANNA, 0x364f, 0x7452, CHANNEL_7, COLOR_09_BLUE // "Elvis! Elvis! I can't detach that tube from the fu..."
.macro outro_wait_until time loopid
beginloop \loopid
if_controller_button_pressed /*goto*/ 0x5f
if_timer_gt \time, /*goto*/ 0x06
endloop \loopid
label 0x06
.endm
outro_wait_until 426, 0x77
speak CHR_JOANNA, 0x3650, 0x7453, CHANNEL_7, COLOR_06_WHITE // "Piece of cake, Joanna. Watch this!"
outro_wait_until 1045, 0x65
play_sound 0x0063, CHANNEL_10
outro_wait_until 1050, 0x78
speak CHR_JOANNA, 0x3651, 0x7454, CHANNEL_7, COLOR_06_WHITE // "Uh-oh."
emit_sparks 0x23
outro_wait_until 1112, 0x79
speak CHR_JOANNA, 0x3652, 0x7455, CHANNEL_7, COLOR_09_BLUE // "Watch what? Will you stop playing around and shoot..."
outro_wait_until 1380, 0x7a
speak CHR_JOANNA, 0x3653, 0x7456, CHANNEL_7, COLOR_06_WHITE // "Out of options... Joanna, brace yourself for impac..."
outro_wait_until 1950, 0x7b
outro_wait_until 1951, 0x62
destroy_object 0x1a
outro_wait_until 1958, 0x63
destroy_object 0x1a
outro_wait_until 1970, 0x64
destroy_object 0x1a
destroy_object 0x19
outro_wait_until 1985, 0x8e
destroy_object 0x1a
outro_wait_until 2000, 0x8a
destroy_object 0x1a
outro_wait_until 2015, 0x8b
destroy_object 0x1a
outro_wait_until 2030, 0x8c
destroy_object 0x1a
outro_wait_until 2045, 0x8d
destroy_object 0x1a
outro_wait_until 2060, 0x8f
destroy_object 0x1a
beginloop 0x08
if_camera_animating /*goto*/ 0x2d
goto_next 0x5f
label 0x2d
if_controller_button_pressed /*goto*/ 0x5f
label 0x2d
endloop 0x08
label 0x5f
mute_channel CHANNEL_10
label 0x06
restart_default_music
set_lighting 0x0000, 0x0d, 0x00
hide_object 0x19
hide_object 0x1a
set_chr_hud_visible TARGET_CHR, FALSE
end_level
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1019_midcutscene:
beginloop 0x08
if_stage_flag_eq STAGEFLAG_TRIGGER_MIDCUTSCENE, TRUE, /*goto*/ 0x2d
endloop 0x08
label 0x2d
set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN
set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
if_stage_flag_eq STAGEFLAG_MIDCUTSCENE_STARTED, TRUE, /*goto*/ 0x2d
set_stage_flag STAGEFLAG_MIDCUTSCENE_STARTED
dprint "mid cutscene\n"
set_music_track MUSIC_AIRFORCEONE_MIDCUTSCENE
label 0x2d
camera_movement 0x02df
show_object 0x19
set_object_flag_bank1 0x19, OBJECTFLAG1_04000000
set_object_flag_bank2 0x19, OBJECTFLAG2_00000010
object_do_animation 0x02e0, 0x19, 0x04ff, 0xff
set_object_part_visible 0x19, TRUE
show_object 0x37
set_object_flag_bank1 0x37, OBJECTFLAG1_04000000
set_object_flag_bank2 0x37, OBJECTFLAG2_00000010
object_do_animation 0x02e1, 0x37, 0x04ff, 0xff
restart_timer
outro_wait_until 1086, 0x61
play_sound 0x042c, -1
beginloop 0x09
if_camera_animating /*goto*/ 0x2d
goto_next 0x5f
label 0x2d
if_controller_button_pressed /*goto*/ 0x5f
label 0x2d
endloop 0x09
label 0x5f
hide_object 0x37
hide_object 0x19
label 0x06
set_stage_flag STAGEFLAG_MIDCUTSCENE_FINISHED
restart_default_music
reset_ambience
unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN
unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
set_function CHR_SELF, GFUNC_END_CINEMA
endfunction
func1019_midcutscene_from_menu:
set_stage_flag STAGEFLAG_TRIGGER_MIDCUTSCENE
set_function CHR_SELF, FUNC_MIDCUTSCENE
endfunction
func101a_equipment_switch:
set_object_flag_bank0 0x1b, OBJECTFLAG0_DEACTIVATED
set_object_image OBJ_EQUIPMENT_SWITCH, 0x00, 0x12
beginloop 0x04
consider_coop_for_p1p2_chr CHR_SELF
if_chr_activated_object CHR_P1P2, OBJ_EQUIPMENT_SWITCH, /*goto*/ 0x2d
reloop 0x04
label 0x2d
if_chr_has_object CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x2d
restart_timer
message CHR_P1P2, 0x363f // "Access denied - lift key card required."
beginloop 0x77
if_timer_gt 120, /*goto*/ 0x06
endloop 0x77
label 0x06
endloop 0x04
// Switch activated with keycard
label 0x2d
set_object_image OBJ_EQUIPMENT_SWITCH, 0x00, 0x13
set_stage_flag STAGEFLAG_EQUIPMENT_RAISED
open_door 0x1c
message CHR_P1P2, 0x363d // "Cargo bay has been raised."
assign_sound 0x043a, CHANNEL_7
control_sound_from_object CHANNEL_7, OBJ_EQUIPMENT_SWITCH, TRUE
unset_object_flag_bank0 0x1b, OBJECTFLAG0_DEACTIVATED
yield
yield
yield
yield
yield
yield
restart_timer
beginloop 0x08
if_lift_stationary 0x1b, /*goto*/ 0x06
endloop 0x08
label 0x06
set_object_flag_bank0 0x1b, OBJECTFLAG0_DEACTIVATED
set_object_image OBJ_EQUIPMENT_SWITCH, 0x00, 0x12
beginloop 0x09
if_door_state 0x1c, DOORSTATE_CLOSING, /*goto*/ 0x2d
reloop 0x09
label 0x2d
open_door 0x1c
endloop 0x09
endfunction
func101b_hoverbike_switch:
unset_eeprom_flag EEPROMFLAG_CRASHSITE_BIKE
set_object_flag_bank0 0x1f, OBJECTFLAG0_DEACTIVATED
set_object_image OBJ_HOVERBIKE_SWITCH, 0x00, 0x12
label 0x08
open_door 0x20
beginloop 0x09
consider_coop_for_p1p2_chr CHR_SELF
if_door_state 0x20, DOORSTATE_CLOSING, /*goto*/ 0x2d
if_chr_activated_object CHR_P1P2, OBJ_HOVERBIKE_SWITCH, /*goto*/ 0x0a
reloop 0x09
label 0x2d
open_door 0x20
reloop 0x09
label 0x0a
if_chr_has_object CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x2d
restart_timer
message CHR_P1P2, 0x363f // "Access denied - lift key card required."
beginloop 0x77
if_timer_gt 120, /*goto*/ 0x06
endloop 0x77
label 0x06
endloop 0x09
// Activated with keycard
label 0x2d
set_object_image OBJ_HOVERBIKE_SWITCH, 0x00, 0x13
message CHR_P1P2, 0x363c // "Cargo bay has been lowered."
set_eeprom_flag EEPROMFLAG_CRASHSITE_BIKE
assign_sound 0x043a, CHANNEL_7
control_sound_from_object CHANNEL_7, OBJ_HOVERBIKE_SWITCH, TRUE
unset_object_flag_bank0 0x1f, OBJECTFLAG0_DEACTIVATED
restart_timer
beginloop 0x0c
if_timer_gt 2, /*goto*/ 0x2d
endloop 0x0c
label 0x2d
close_door 0x20
beginloop 0x0b
if_lift_stationary 0x1f, /*goto*/ 0x06
endloop 0x0b
label 0x06
set_object_flag_bank0 0x1f, OBJECTFLAG0_DEACTIVATED
set_object_image OBJ_HOVERBIKE_SWITCH, 0x00, 0x12
set_function CHR_SELF, GFUNC_IDLE
endfunction
func101c_check_equipment_switch_destroyed:
beginloop 0x04
if_object_in_good_condition OBJ_EQUIPMENT_SWITCH, /*goto*/ 0x2d
goto_next 0x06
label 0x2d
endloop 0x04
label 0x06
if_stage_flag_eq STAGEFLAG_EQUIPMENT_RAISED, TRUE, /*goto*/ 0x2d
set_stage_flag STAGEFLAG_EQUIPMENT_SWITCH_DESTROYED
message CHR_JOANNA, 0x363e // "Mission critical object has been destroyed."
label 0x2d
set_function CHR_SELF, GFUNC_IDLE
endfunction
func040c_init_defend_pad:
unset_chr_flag_bank2 CHR_SELF, CHRFLAG2_40000000
set_chr_alliance CHR_SELF, ALLIANCE_ALLY
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_target_chr -1
label 0x04
try_draw_weapon MODEL_CHRCYCLONE, WEAPON_CYCLONE, 0x00000000, /*goto*/ 0x2d
label 0x2d
set_function CHR_SELF, FUNC_DEFEND_PAD
endfunction
func040e_unused:
label 0x04
try_draw_weapon MODEL_CHRCYCLONE, WEAPON_CYCLONE, 0x00000000, /*goto*/ 0x2d
label 0x2d
set_function CHR_SELF, GFUNC_UNALERTED
endfunction
/**
* Unused.
*/
func040d_init_defend_president:
label 0x04
try_draw_weapon MODEL_CHRCYCLONE, WEAPON_CYCLONE, 0x00000000, /*goto*/ 0x2d
label 0x2d
set_function CHR_SELF, FUNC_DEFEND_PRESIDENT
endfunction
func042c_remove_if_offscreen:
unset_chr_flag_bank2 CHR_SELF, CHRFLAG2_40000000
set_chr_alliance CHR_SELF, ALLIANCE_ALLY
cmd0145_rebuild_groups
cmd0146_rebuild_groups
set_chr_health CHR_SELF, 0
label 0x04
yield
set_target_chr CHR_JOANNA
if_chr_sees_player /*goto*/ 0x06
set_target_chr CHR_VELVET
if_chr_sees_player /*goto*/ 0x06
label 0x08
chr_drop_weapon CHR_SELF
remove_chr CHR_SELF
yield
set_function CHR_SELF, GFUNC_IDLE
label 0x06
set_function CHR_SELF, FUNC_INIT_DEFEND_PAD
endfunction
/**
* If president dies between mid cutscene and Jo's "we have to get you to the
* escape pod" line, set the flag that causes things to happen.
*
* This was most likely added after QA, hence why the original function wasn't
* changed instead.
*/
func101d_handle_early_president_death:
beginloop 0x04
if_stage_flag_eq STAGEFLAG_MIDCUTSCENE_FINISHED, TRUE, /*goto*/ 0x06
endloop 0x04
label 0x06
hide_object OBJ_EXTERIOR_DOOR
unset_object_flag_bank1 OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG1_INVISIBLE
set_object_flag_bank0 OBJ_EXTERIOR_DOOR_DETACHED, OBJECTFLAG0_00000100
beginloop 0x08
if_chr_death_animation_finished CHR_PRESIDENT, /*goto*/ 0x2d
if_chr_dying CHR_PRESIDENT, /*goto*/ 0x2d
if_chr_unloaded CHR_PRESIDENT, /*goto*/ 0x2d
endloop 0x08
label 0x2d
set_stage_flag STAGEFLAG_PRESIDENT_STARTED_RUNNING
unlock_door OBJ_COCKPITDOOR, 0x40
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1007_check_pod_destroyed:
beginloop 0x04
if_object_in_good_condition OBJ_ESCAPE_POD, /*goto*/ 0x2d
message CHR_JOANNA, 0x363e // "Mission critical object has been destroyed."
set_stage_flag STAGEFLAG_POD_DESTROYED
set_function CHR_SELF, GFUNC_IDLE
label 0x2d
endloop 0x04
endfunction
func101f_setup_rtracker:
yield
set_object_flag_bank2 0x38, OBJECTFLAG2_RTRACKED_BLUE
set_object_flag_bank2 0x39, OBJECTFLAG2_RTRACKED_BLUE
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1420_setup_lighting:
yield
set_lighting 0x001a, 0x05, 0x01
set_lighting 0x001b, 0x05, 0x01
set_lighting 0x002b, 0x05, 0x01
set_lighting 0x002d, 0x05, 0x01
set_lighting 0x002e, 0x05, 0x01
set_lighting 0x002f, 0x05, 0x01
set_lighting 0x0030, 0x05, 0x01
set_lighting 0x0031, 0x05, 0x01
set_lighting 0x0032, 0x05, 0x01
set_lighting 0x0033, 0x05, 0x01
set_lighting 0x0034, 0x05, 0x01
set_lighting 0x0035, 0x05, 0x01
set_lighting 0x0036, 0x05, 0x01
set_lighting 0x0037, 0x05, 0x01
set_lighting 0x0038, 0x05, 0x01
set_lighting 0x0039, 0x05, 0x01
set_lighting 0x003b, 0x05, 0x01
set_lighting 0x003c, 0x05, 0x01
set_lighting 0x003e, 0x05, 0x01
set_lighting 0x003f, 0x05, 0x01
set_lighting 0x0040, 0x05, 0x01
set_lighting 0x0041, 0x05, 0x01
set_lighting 0x0042, 0x05, 0x01
set_lighting 0x0043, 0x05, 0x01
set_lighting 0x0059, 0x05, 0x01
set_function CHR_SELF, GFUNC_IDLE
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1022_pilots_stabilizing:
beginloop 0x04
if_stage_flag_eq STAGEFLAG_PLANE_NOSEDIVING, TRUE, /*goto*/ 0x2d
endloop 0x04
label 0x2d
restart_timer
beginloop 0x93
if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2e
if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2e
if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2e
goto_next 0x06
label 0x2e
if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x0e
if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x0e
if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x0e
// Pilots stabilizing
label 0x06
if_stage_flag_eq STAGEFLAG_PLANE_STABILIZED, TRUE, /*goto*/ 0x0e
if_timer_gt 1200, /*goto*/ 0x06
endloop 0x93
label 0x06
message CHR_JOANNA, 0x3654 // "The pilots have stabilized Air Force One."
set_stage_flag STAGEFLAG_PLANE_STABILIZED
label 0x0e
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1023_check_pilots_dead:
beginloop 0x04
if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2d
if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2d
if_chr_death_animation_finished CHR_PILOT1, /*goto*/ 0x2d
reloop 0x04
label 0x2d
if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x2d
if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x2d
if_chr_death_animation_finished CHR_PILOT2, /*goto*/ 0x2d
endloop 0x04
label 0x2d
set_stage_flag STAGEFLAG_PILOTS_DEAD
set_function CHR_SELF, GFUNC_IDLE
endfunction
/**
* Wait until intro finished, then wait several frames before unsetting a flag
* on Joanna.
*
* When the flag is set, the co-op buddy will attempt to warp to Jo. This is
* needed because Jo can start in two locations in this level, but the buddy
* only starts in one location.
*
* The flag must be unset so the buddy stops attempting to warp.
*/
func1025_disable_buddy_warp:
yield
beginloop 0x04
if_camera_animating /*goto*/ 0x2d
goto_next 0x06
label 0x2d
endloop 0x04
label 0x06
yield
yield
yield
yield
yield
yield
yield
unset_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_TRIGGER_BUDDY_WARP
set_function CHR_SELF, GFUNC_IDLE
endfunction
func1026_buddy_floor_hatch:
yield
beginloop 0x93
if_camera_animating /*goto*/ 0x2d
goto_next 0x04
label 0x2d
endloop 0x93
// This flag is set by a global function
beginloop 0x04
if_stage_flag_eq STAGEFLAG_AI_BUDDY_EXISTS, TRUE, /*goto*/ 0x2d
endloop 0x04
// Maybe the AI has difficulty opening the floor hatch so they removed it?
label 0x2d
hide_object OBJ_FLOORHATCH
set_object_flag_bank0 OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG0_00000100
unset_object_flag_bank1 OBJ_FLOOR_HATCH_DETACHED, OBJECTFLAG1_INVISIBLE
set_function CHR_SELF, GFUNC_IDLE
endfunction
functions:
register_function func1400_setup_counterop 0x1400
register_function func1001_objectives_failed_msg 0x1001
register_function func1002_intro 0x1002
register_function func1003_rebuild_groups 0x1003
register_function func1004_reassign_functions_during_conversation 0x1004
register_function func1005_check_neutrals_killed 0x1005
register_function func1006_hijack 0x1006
register_function func1007_check_pod_destroyed 0x1007
register_function func1008_check_mine_wasted_joanna 0x1008
register_function func1009_check_end_level 0x1009
register_function func100a_autopilot_switch 0x100a
register_function func100b_check_president_dead 0x100b
register_function func100c_cockpit 0x100c
register_function func1010_dumbwaiter1 0x1010
register_function func1011_dumbwaiter2 0x1011
register_function func1012_check_blondes_dead 0x1012
register_function func1013_unhide_trent_and_blondes 0x1013
register_function func1014_uncover_disguise 0x1014
register_function func1015_msg_retrievetheevidence 0x1015
register_function func1016_msg_onthislevel 0x1016
register_function func1017_msg_gettothecockpit 0x1017
register_function func1018_msg_maybeamine 0x1018
register_function func1019_midcutscene 0x1019
register_function func101a_equipment_switch 0x101a
register_function func101b_hoverbike_switch 0x101b
register_function func101c_check_equipment_switch_destroyed 0x101c
register_function func101d_handle_early_president_death 0x101d
register_function func101e_blow_mines 0x101e
register_function func101f_setup_rtracker 0x101f
register_function func1420_setup_lighting 0x1420
register_function func1021_check_mine_wasted_velvet 0x1021
register_function func1022_pilots_stabilizing 0x1022
register_function func1023_check_pilots_dead 0x1023
register_function func1024_give_objects 0x1024
register_function func1025_disable_buddy_warp 0x1025
register_function func1026_buddy_floor_hatch 0x1026
register_function func1002_intro 0x0c00
register_function func1019_midcutscene_from_menu 0x0c01
register_function func0c02_outro_from_menu 0x0c02
register_function func0401_init_stripes 0x0401
register_function func0402_init_elvis 0x0402
register_function func0403_stripes 0x0403
register_function func0404_president_running 0x0404
register_function func0405_president_in_room 0x0405
register_function func0406_init_president 0x0406
register_function func0407_steward 0x0407
register_function func0407_stewardess 0x0408
register_function func1019_midcutscene 0x0424
register_function func0409_unused 0x0409
register_function func040a_defend_pad 0x040a
register_function func040b_defend_president 0x040b
register_function func040c_init_defend_pad 0x040c
register_function func040d_init_defend_president 0x040d
register_function func040e_unused 0x040e
register_function func0413_taker 0x0413
register_function func100c_cockpit_stripes 0x0414
register_function func0413_taker1 0x040f
register_function func0413_taker2 0x0410
register_function func0413_taker 0x0413
register_function func0411_typing_guy 0x0411
register_function func0412_sitting_guy 0x0412
register_function func0426_start_path00 0x0426
register_function func0427_start_path01 0x0427
register_function func0428_start_path02 0x0428
register_function func0429_be_unalert 0x0429
register_function func042a_init_neutral 0x042a
register_function func042b_reinit_stripes 0x042b
register_function func042c_remove_if_offscreen 0x042c
register_function func0415_cloner1 0x0415
register_function func0416_init_clone1 0x0416
register_function func0417_clone1 0x0417
register_function func0418_cloner2 0x0418
register_function func0419_init_clone2 0x0419
register_function func041a_clone2 0x041a
register_function func041b_cloner3 0x041b
register_function func041c_init_clone3 0x041c
register_function func041d_clone3 0x041d
register_function func041e_blonde 0x041e
register_function func041f_init_blonde 0x041f
register_function func0420_trent_attacking 0x0420
register_function func0421_trent_waiting 0x0421
register_function func0422_trent_running 0x0422
register_function func0423_outro 0x0423
register_function func0407_steward_shot 0x0425
endfunctions
paths:
register_path path00, 0, 0
register_path path01, 1, 0
register_path path02, 2, 0
endpaths
.align 4