3090 lines
142 KiB
ArmAsm
3090 lines
142 KiB
ArmAsm
#
|
|
# G5 Building
|
|
#
|
|
|
|
.set HEADERLEN, 0x20
|
|
.include "asm/include/setup.inc"
|
|
|
|
// Characters
|
|
.set CHR_CLOAK_1A, 0x00 // first room
|
|
.set CHR_CLOAK_1B, 0x01 // first room
|
|
.set CHR_LIGHTSWITCH_GUARD, 0x02
|
|
.set CHR_CLOAK_2A, 0x03 // second room
|
|
.set CHR_CLOAK_2B, 0x04 // second room
|
|
.set CHR_CLOAK_2C, 0x05 // second room
|
|
.set CHR_CLOAK_2D, 0x06 // second room
|
|
.set CHR_CASS, 0x18
|
|
.set CHR_TRENT, 0x19
|
|
.set CHR_STRIPES, 0x1a
|
|
.set CHR_BLONDE, 0x1b
|
|
.set CHR_INTRO_VICTIM, 0x1d
|
|
|
|
// Objects
|
|
.set OBJ_GENERATOR, 0x01
|
|
.set OBJ_LASERSWITCH1, 0x03
|
|
.set OBJ_LASERSWITCH2, 0x04
|
|
.set OBJ_LASERSWITCH3, 0x05
|
|
.set OBJ_LASERSWITCH4, 0x06
|
|
.set OBJ_SAFEDOOR, 0x0b
|
|
.set OBJ_BACKUPDISK, 0x0c
|
|
.set OBJ_KEYCARD1, 0x0e
|
|
.set OBJ_KEYCARD2, 0x0f
|
|
.set OBJ_DECODER, 0x10
|
|
.set OBJ_SAFEKEYPAD, 0x11
|
|
.set OBJ_ALARM1, 0x12
|
|
.set OBJ_ALARM2, 0x13
|
|
.set OBJ_ESCAPEDOOR1, 0x18
|
|
.set OBJ_ESCAPEDOOR2, 0x1b
|
|
.set OBJ_LASER_1A, 0x22
|
|
.set OBJ_LASER_1B, 0x23
|
|
.set OBJ_LASER_1C, 0x24
|
|
.set OBJ_LASER_1D, 0x25
|
|
.set OBJ_LASER_2A, 0x26
|
|
.set OBJ_LASER_2B, 0x27
|
|
.set OBJ_LASER_2C, 0x28
|
|
.set OBJ_LASER_2D, 0x29
|
|
.set OBJ_LASER_3A, 0x2a
|
|
.set OBJ_LASER_3B, 0x2b
|
|
.set OBJ_LASER_3C, 0x2c
|
|
.set OBJ_LASER_3D, 0x2d
|
|
.set OBJ_LASER_4A, 0x2e
|
|
.set OBJ_LASER_4B, 0x2f
|
|
.set OBJ_LASER_4C, 0x30
|
|
.set OBJ_LASER_4D, 0x31
|
|
.set OBJ_MINE1, 0x38
|
|
.set OBJ_MINE2, 0x39
|
|
.set OBJ_NBOMB_CRATE, 0x3c
|
|
.set OBJ_LIGHTSWITCH, 0x3d
|
|
.set OBJ_CROSSBOW, 0x3e
|
|
.set OBJ_CMP150_JOANNA, 0x47
|
|
.set OBJ_CMP150_VELVET, 0x48
|
|
|
|
// Stage flags
|
|
.set STAGEFLAG_CLOAK1_ONE_REMAINING, 0x00000002
|
|
.set STAGEFLAG_CLOAK2_ONE_REMAINING, 0x00000004
|
|
.set STAGEFLAG_MEETING_FINISHED, 0x00000008
|
|
.set STAGEFLAG_CONSPIRATORS_ALERTED, 0x00000010
|
|
.set STAGEFLAG_VISITED_TOP_DOOR, 0x00000020
|
|
.set STAGEFLAG_SAFEKEYPAD_DESTROYED, 0x00000040
|
|
.set STAGEFLAG_LIGHTS_OFF, 0x00000080
|
|
.set STAGEFLAG_GENERATOR_SHUT_DOWN, 0x00000100
|
|
.set STAGEFLAG_GENERATOR_SHUT_DOWN2, 0x00000200 // redundant
|
|
.set STAGEFLAG_GENERATOR_DESTROYED, 0x00000400
|
|
.set STAGEFLAG_LASERSET1_DISABLED, 0x00000800
|
|
.set STAGEFLAG_LASERSET2_DISABLED, 0x00001000
|
|
.set STAGEFLAG_00002000, 0x00002000
|
|
.set STAGEFLAG_LASERSET4_DISABLED, 0x00004000
|
|
.set STAGEFLAG_LASERSWITCH1_DESTROYED, 0x00008000
|
|
.set STAGEFLAG_LASERSWITCH2_DESTROYED, 0x00010000
|
|
.set STAGEFLAG_LASERSWITCH3_DESTROYED, 0x00020000
|
|
.set STAGEFLAG_LASERSWITCH4_DESTROYED, 0x00040000
|
|
.set STAGEFLAG_ALL_LASERS_DISABLED, 0x00080000
|
|
.set STAGEFLAG_DECODER_ATTACHED, 0x00200000
|
|
.set STAGEFLAG_LASERSET3_DISABLED, 0x00800000
|
|
.set STAGEFLAG_MEETING_STARTED, 0x01000000
|
|
.set STAGEFLAG_BACKUP_COLLECTED, 0x08000000
|
|
.set STAGEFLAG_MEETING_HOLOGRAPHED, 0x10000000
|
|
.set STAGEFLAG_20000000, 0x20000000
|
|
.set STAGEFLAG_ALARM_SOUNDING, 0x40000000
|
|
.set STAGEFLAG_EXITED_BUILDING, 0x80000000
|
|
|
|
// Functions
|
|
.set FUNC_WALK_FROM_MEETING, 0x0403
|
|
.set FUNC_RUN_FROM_MEETING, 0x0404
|
|
.set FUNC_CLOAK2_HIDE, 0x0405
|
|
.set FUNC_INIT_TYPE1_GUARD, 0x0406
|
|
.set FUNC_INIT_CLOAK1_GUARD, 0x0408
|
|
.set FUNC_INTRO, 0x040d
|
|
.set FUNC_MEETING_CUTSCENE, 0x040e
|
|
.set FUNC_OUTRO, 0x040f
|
|
.set FUNC_CLOAK_GUARD, 0x0412
|
|
.set FUNC_CLOAK2_GUARD, 0x0414
|
|
|
|
props:
|
|
briefing 0, 0x1801
|
|
briefing 1, 0x1800
|
|
briefing 2, 0x1802
|
|
briefing 3, 0x1803
|
|
|
|
beginobjective 0, 0x1809, DIFFBIT_PA | DIFFBIT_PD // "Disable damping field generator"
|
|
complete_flags STAGEFLAG_GENERATOR_SHUT_DOWN
|
|
fail_flags STAGEFLAG_GENERATOR_DESTROYED
|
|
endobjective
|
|
|
|
beginobjective 1, 0x180a, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Deactivate laser grid systems"
|
|
complete_flags STAGEFLAG_ALL_LASERS_DISABLED
|
|
complete_flags STAGEFLAG_LASERSET1_DISABLED
|
|
complete_flags STAGEFLAG_LASERSET2_DISABLED
|
|
complete_flags STAGEFLAG_LASERSET3_DISABLED
|
|
complete_flags STAGEFLAG_LASERSET4_DISABLED
|
|
fail_flags STAGEFLAG_LASERSWITCH1_DESTROYED
|
|
fail_flags STAGEFLAG_LASERSWITCH2_DESTROYED
|
|
fail_flags STAGEFLAG_LASERSWITCH3_DESTROYED
|
|
fail_flags STAGEFLAG_LASERSWITCH4_DESTROYED
|
|
endobjective
|
|
|
|
beginobjective 2, 0x180b, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Holograph meeting conspirators"
|
|
complete_flags STAGEFLAG_MEETING_HOLOGRAPHED
|
|
fail_flags STAGEFLAG_20000000
|
|
fail_flags STAGEFLAG_CONSPIRATORS_ALERTED
|
|
fail_flags STAGEFLAG_00002000
|
|
endobjective
|
|
|
|
beginobjective 3, 0x180c, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Retrieve Dr. Caroll backup from safe"
|
|
complete_flags STAGEFLAG_BACKUP_COLLECTED
|
|
fail_flags STAGEFLAG_SAFEKEYPAD_DESTROYED
|
|
endobjective
|
|
|
|
beginobjective 4, 0x180d, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Exit building"
|
|
complete_flags STAGEFLAG_EXITED_BUILDING
|
|
endobjective
|
|
|
|
// First cloak room
|
|
chr 0x00000100, CHR_CLOAK_1A, 0x007e, BODY_G5_SWAT_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x007e, -1, 200, 100, 0x00000600, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, CHR_CLOAK_1A, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCROSSBOW, CHR_CLOAK_1A, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CROSSBOW, 0x00ffffff, 0x00000000
|
|
tag OBJ_CROSSBOW, -1
|
|
|
|
chr 0x00000100, CHR_CLOAK_1B, 0x007f, BODY_G5_SWAT_GUARD, HEAD_RANDOM, GFUNC_IDLE, 0x007f, -1, 200, 100, 0x00000600, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, CHR_CLOAK_1B, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
tag OBJ_KEYCARD1, 1
|
|
key 0x0080, MODEL_KEYCARD, CHR_CLOAK_1A, 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, 0x0045, 0x180e, 0x180f, 0x1810, 0x1811, 0x1812, 0x0000, 0x0000 // "Obtain alpha key card."
|
|
|
|
// Between cloak rooms
|
|
chr 0x00004a00, 0x02, 0x005f, BODY_G5_GUARD, HEAD_RANDOM, GFUNC_UNALERTED, 0x0080, -1, 2000, 100, 0x80028204, 0x00000100, 0x80, 0x04, -1, 0, 0x00010000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
// Second cloak room
|
|
chr 0x00000000, 0x03, 0x005e, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x006e, -1, 1, 15, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000000, 0x04, 0x005d, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x006f, -1, 1, 15, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000000, 0x05, 0x0072, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x0070, -1, 1, 10, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0005, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000000, 0x06, 0x0013, BODY_G5_SWAT_GUARD, HEAD_RANDOM, FUNC_CLOAK2_HIDE, 0x0071, -1, 1, 10, 0x000a8204, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0006, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
tag OBJ_KEYCARD2, 1
|
|
key 0x0080, MODEL_KEYCARD, 0x0003, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000010
|
|
rename_object -1, 0x0046, 0x1813, 0x1814, 0x1815, 0x1816, 0x1817, 0x0000, 0x0000 // "Obtain alpha key card."
|
|
|
|
// Rest of stage
|
|
chr 0x00000200, 0x08, 0x002f, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x007b, -1, 200, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0008, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000300, 0x09, 0x0079, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x007c, -1, 200, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000300, 0x0a, 0x007a, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x007d, -1, 200, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000200, 0x0b, 0x0026, BODY_G5_GUARD, HEAD_RANDOM, 0x040c, 0x0029, -1, 100, 100, 0x800a8204, 0x00000000, 0x80, 0x04, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000600, 0x07, 0x005c, BODY_G5_GUARD, HEAD_BEAU1, 0x0409, -1, -1, 200, 100, 0xc0008601, 0x00000000, 0x80, 0x05, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0007, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000600, 0x0c, 0x005b, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0073, -1, 200, 100, 0xc000c680, 0x00008000, 0x80, 0x05, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000600, 0x0d, 0x001f, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0073, -1, 200, 100, 0xc000c680, 0x00008000, 0x80, 0x05, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000600, 0x0e, 0x0067, BODY_G5_GUARD, HEAD_RANDOM, 0x040a, 0x0073, -1, 200, 100, 0xc000c680, 0x00008000, 0x80, 0x05, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000600, 0x0f, 0x0039, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, 0x8004c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000600, 0x10, 0x0068, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, 0x8004c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000600, 0x11, 0x0069, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, 0x8004c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0011, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000200, 0x12, 0x003f, BODY_G5_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 200, 100, 0xa080c080, 0x00000000, 0x80, 0x06, -1, 0, 0x02000700
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0012, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000200, 0x13, 0x006a, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xa080c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000200, 0x14, 0x006b, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xc000c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000200, 0x15, 0x006c, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xc000c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000200, 0x16, 0x006d, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xc000c080, 0x00000000, 0x80, 0x07, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
chr 0x00000200, 0x17, 0x0082, BODY_G5_GUARD, HEAD_RANDOM, FUNC_INIT_TYPE1_GUARD, -1, -1, 200, 100, 0xa0802000, 0x00000000, 0x80, 0x08, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
|
|
tag 0x0d, 1
|
|
chr 0x00000400, CHR_CASS, 0x0088, BODY_CASSANDRA, HEAD_CASSANDRA, 0x0410, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, 0x4a, 0, 0x00010000
|
|
chr 0x00000400, CHR_BLONDE, 0x0087, BODY_MRBLONDE, HEAD_MRBLONDE, 0x0410, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, 0x4b, 0, 0x00010000
|
|
chr 0x00000400, CHR_INTRO_VICTIM, 0x0009, BODY_G5_GUARD, HEAD_RANDOM, 0x0410, -1, -1, 1000, 100, 0x0000c200, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRCMP150, CHR_INTRO_VICTIM, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000
|
|
chr 0x00000500, CHR_TRENT, 0x003b, BODY_TRENT, HEAD_TRENT, 0x0411, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000
|
|
chr 0x00000500, CHR_STRIPES, 0x003c, BODY_STRIPES, HEAD_JON, 0x0411, -1, -1, 200, 100, 0x0000c080, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000
|
|
tag OBJ_GENERATOR, 1
|
|
multimonitor 0x0100, MODEL_PD_CONSOLE, 0x00d0, 0x000001e1, 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, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03030000
|
|
tag 0x3f, 1
|
|
door 0x0100, MODEL_DOOR2_G5, 0x009c, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000010, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x009d, 0x10000000, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000010, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x40, -1
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00a2, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00a3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00a4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00a5, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00a6, 0x10000000, 0x08000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00a7, 0x10000000, 0x10000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00a8, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00a9, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00b3, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00b4, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00aa, 0x10000000, 0x28000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00ab, 0x10000000, 0x30000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000020, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00ac, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR2_G5, 0x00ad, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00060000, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000000, 0x012c0320, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x34, 4
|
|
tag 0x35, 4
|
|
tag 0x36, 4
|
|
tag 0x37, 4
|
|
door 0x0100, MODEL_DOOR1A_G5, 0x0099, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR1ATRI_G5, 0x0098, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR1B_G5, 0x009a, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR1ATRI_G5, 0x009b, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x33, 1
|
|
door 0x0100, MODEL_DOOR1A_G5, 0x00a0, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR1ATRI_G5, 0x00a1, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR1B_G5, 0x009f, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000c000, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR1ATRI_G5, 0x009e, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0001f8ac, 0x0002a0e5, 0x0000434a, 0x0003491f, 0x000010d2, 0x00000000, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x43, -4
|
|
tag 0x44, -4
|
|
tag 0x45, -4
|
|
tag 0x46, -4
|
|
tag 0x3a, 1
|
|
door 0x0100, MODEL_DOOR4A_G5, 0x00b5, 0x00000400, 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0000ffff, 0x00014000, 0x00001999, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_DOOR4B_G5, 0x00b6, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0000ffff, 0x00014000, 0x00001999, 0x00000000, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x41, 1
|
|
door 0x0100, MODEL_G5CARLIFTDOOR, 0x00b7, 0x00000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000020, 0x00000384, 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_G5CARLIFTDOOR, 0x00b8, 0x00000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00080000, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x42, -1
|
|
|
|
tag OBJ_BACKUPDISK, 1
|
|
object 0x0100, MODEL_ZIGGYCARD, 0x004c, 0x012404e8, 0x00004000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
rename_object -1, 0x0044, 0x181e, 0x181f, 0x1820, 0x1821, 0x1822, 0x0000, 0x0000 // "Obtain DAT tape."
|
|
|
|
tag OBJ_DECODER, 1
|
|
object 0x0200, MODEL_CHRDOORDECODER, 0x0050, 0x00420408, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
|
|
tag OBJ_LIGHTSWITCH, 1
|
|
singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00ed, 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, 0xffffff06
|
|
tag 0x03, 1
|
|
singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00e6, 0x00000002, 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, 0xffffff13
|
|
tag 0x04, 1
|
|
singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00e8, 0x00000002, 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, 0xffffff13
|
|
tag 0x05, 1
|
|
singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00e9, 0x00000002, 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, 0xffffff13
|
|
tag 0x06, 1
|
|
singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00ea, 0x00000002, 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, 0xffffff13
|
|
tag 0x12, 1
|
|
singlemonitor 0x0019, MODEL_G5_ALARM, 0x00e7, 0x00000002, 0x00204000, 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, 0xffffff04
|
|
tag 0x13, 1
|
|
singlemonitor 0x0019, MODEL_G5_ALARM, 0x00eb, 0x00000002, 0x00204000, 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, 0xffffff04
|
|
tag OBJ_SAFEKEYPAD, 1
|
|
singlemonitor 0x0019, MODEL_G5_LASER_SWITCH, 0x00ec, 0x00000002, 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, 0xffffff01
|
|
tag OBJ_SAFEDOOR, 1
|
|
door 0x0100, MODEL_G5SAFEDOOR, 0x00c2, 0x10000010, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x005a0000, 0x03e80000, 0x00500000, 0x00500000, 0x00001999, 0x00000005, 0x00000040, 0x00000e10, 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 OBJ_CMP150_JOANNA, 1
|
|
weapon 0x0100, MODEL_CHRCMP150, 0xffff, 0x40000000, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000
|
|
rename_object -1, 0x0022, 0x1842, 0x1843, 0x1844, 0x1845, 0x1846, 0x0000, 0x0000 // ""
|
|
|
|
tag OBJ_CMP150_VELVET, 1
|
|
weapon 0x0100, MODEL_CHRCMP150, 0xffff, 0x40000000, 0x00000000, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000
|
|
rename_object -1, 0x0022, 0x1842, 0x1843, 0x1844, 0x1845, 0x1846, 0x0000, 0x0000 // ""
|
|
|
|
glass 0x0100, MODEL_WINDOW, 0x00c0, 0x00000f62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000
|
|
glass 0x0100, MODEL_WINDOW, 0x00c1, 0x00000f62, 0x00100000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000
|
|
glass 0x0100, MODEL_WINDOW, 0x00be, 0x00000f62, 0x00104000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000
|
|
tag 0x22, 4
|
|
tag 0x23, 4
|
|
tag 0x24, 4
|
|
tag 0x25, 4
|
|
door 0x0100, MODEL_LASDOOR, 0x00d1, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00d2, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00d3, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00d4, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 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 0x26, 4
|
|
tag 0x27, 4
|
|
tag 0x28, 4
|
|
tag 0x29, 4
|
|
door 0x0100, MODEL_LASDOOR, 0x00d5, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00d6, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00d7, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00d8, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 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 0x2a, 4
|
|
tag 0x2b, 4
|
|
tag 0x2c, 4
|
|
tag 0x2d, 4
|
|
door 0x0100, MODEL_LASDOOR, 0x00d9, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00da, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00db, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00dc, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 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 0x2e, 4
|
|
tag 0x2f, 4
|
|
tag 0x30, 4
|
|
tag 0x31, 4
|
|
door 0x0100, MODEL_LASDOOR, 0x00dd, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00de, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00df, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_LASDOOR, 0x00e0, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag OBJ_ESCAPEDOOR1, 2
|
|
link_scenery 1, 0, 2
|
|
door 0x0100, MODEL_G5_ESCDOORUP, 0x00f0, 0x13500d00, 0x20304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
object 0x0100, MODEL_G5_ESCDOORUPBOOM, 0x00f1, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag OBJ_ESCAPEDOOR2, 2
|
|
link_scenery 1, 0, 2
|
|
door 0x0100, MODEL_G5_ESCDOORDOWN, 0x00ee, 0x13500d00, 0x20304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
object 0x0100, MODEL_G5_ESCDOORDOWNBOOM, 0x00ef, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
|
|
tag OBJ_MINE1, 1
|
|
remote_mine 0x0100, MODEL_CHRREMOTEMINE, 0x0077, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x22000000, 0x00000001, 0x00000000
|
|
|
|
tag OBJ_MINE2, 1
|
|
remote_mine 0x0100, MODEL_CHRREMOTEMINE, 0x0078, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x22000000, 0x00000001, 0x00000000
|
|
|
|
object 0x0100, MODEL_DUMPSTER, 0x00f9, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_DUMPSTER, 0x00fa, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_DUMPSTER, 0x00fb, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_DUMPSTER, 0x00fc, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0028, MODEL_BAFTA, 0x004d, 0x002000e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0133, MODEL_G5SMALLCHAIR, 0x00f3, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0133, MODEL_G5SMALLCHAIR, 0x00f4, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0133, MODEL_G5SMALLCHAIR, 0x00f5, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0133, MODEL_G5SMALLCHAIR, 0x00f6, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0133, MODEL_G5SMALLCHAIR, 0x00f7, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x4a, 1
|
|
object 0x0185, MODEL_G5BIGCHAIR, 0x00f8, 0x000004e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x4b, 1
|
|
object 0x0133, MODEL_G5SMALLCHAIR, 0x00f2, 0x000004e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_G5_MAINFRAME, 0x00c8, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_G5_MAINFRAME, 0x00c9, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_G5_MAINFRAME, 0x00ca, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_G5_MAINFRAME, 0x00cb, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_G5_MAINFRAME, 0x00cc, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_G5_MAINFRAME, 0x00cd, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_G5_MAINFRAME, 0x00ce, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_G5_MAINFRAME, 0x00cf, 0x000005e1, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000001f4, 0x00000000, 0x00000000, 0x0fff0000
|
|
|
|
tag 0x3c, 1
|
|
weapon 0x0080, MODEL_MULTI_AMMO_CRATE, 0x0095, 0x00000101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_NBOMB, 0x00ffffff, 0x00000000
|
|
|
|
tag 0x3b, 1
|
|
shield 0x0100, MODEL_CHRSHIELD, 0x0096, 0x00000001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000
|
|
tag 0x49, 1
|
|
shield 0x0100, MODEL_CHRSHIELD, 0x0056, 0x00000001, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000
|
|
endprops
|
|
|
|
intro:
|
|
intro_weapon WEAPON_FALCON2_SILENCER, -1
|
|
ammo AMMOTYPE_PISTOL, 100
|
|
ammo AMMOTYPE_NBOMB, 6
|
|
outfit OUTFIT_LEATHER
|
|
intro_weapon WEAPON_DOORDECODER, -1
|
|
intro_weapon WEAPON_CAMSPY, -1
|
|
spawn 0x0083
|
|
endintro
|
|
|
|
path00:
|
|
pad 0x0015
|
|
pad 0x0014
|
|
pad 0x0019
|
|
pad 0x0018
|
|
pad 0x0019
|
|
pad 0x0014
|
|
endpath
|
|
|
|
path01:
|
|
pad 0x0023
|
|
pad 0x0025
|
|
pad 0x0020
|
|
pad 0x001a
|
|
pad 0x001c
|
|
pad 0x001a
|
|
pad 0x0020
|
|
pad 0x0025
|
|
endpath
|
|
|
|
path02:
|
|
pad 0x0037
|
|
pad 0x003f
|
|
pad 0x0043
|
|
pad 0x0041
|
|
pad 0x0040
|
|
pad 0x0042
|
|
pad 0x0045
|
|
pad 0x0046
|
|
pad 0x0045
|
|
pad 0x0042
|
|
pad 0x0040
|
|
pad 0x0041
|
|
pad 0x0043
|
|
pad 0x003f
|
|
endpath
|
|
|
|
path03:
|
|
pad 0x0027
|
|
pad 0x0028
|
|
pad 0x0029
|
|
pad 0x002a
|
|
pad 0x002d
|
|
pad 0x002e
|
|
pad 0x002d
|
|
pad 0x002a
|
|
pad 0x0029
|
|
pad 0x0028
|
|
pad 0x0027
|
|
pad 0x0026
|
|
endpath
|
|
|
|
func0409_start_path00:
|
|
set_chr_dodge_rating 2, 0x0a
|
|
set_accuracy 5
|
|
set_reaction_speed 30
|
|
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_0004
|
|
endfunction
|
|
|
|
func040a_start_path01:
|
|
set_chr_dodge_rating 2, 0x0a
|
|
set_accuracy 5
|
|
set_reaction_speed 30
|
|
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_0004
|
|
endfunction
|
|
|
|
func040b_start_path02:
|
|
set_chr_dodge_rating 2, 0x0a
|
|
set_accuracy 5
|
|
set_reaction_speed 30
|
|
set_chr_health CHR_SELF, 40
|
|
set_armor 0
|
|
set_recovery_speed 0
|
|
set_shield 0
|
|
assign_path 2
|
|
start_path
|
|
set_function CHR_SELF, GFUNC_UNALERTED_0004
|
|
endfunction
|
|
|
|
func040c_start_path03:
|
|
set_chr_dodge_rating 2, 0x0a
|
|
set_accuracy 5
|
|
set_reaction_speed 30
|
|
set_chr_health CHR_SELF, 40
|
|
set_armor 0
|
|
set_recovery_speed 0
|
|
set_shield 0
|
|
assign_path 3
|
|
start_path
|
|
set_function CHR_SELF, GFUNC_UNALERTED_0004
|
|
endfunction
|
|
|
|
func1008_check_generator:
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_activated_object CHR_P1P2, OBJ_GENERATOR, /*goto*/ 0x08
|
|
if_object_in_good_condition OBJ_GENERATOR, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_GENERATOR_SHUT_DOWN, TRUE, /*goto*/ 0x2c
|
|
|
|
// Destroyed
|
|
mute_channel CHANNEL_4
|
|
if_difficulty_lt DIFF_PA, /*goto*/ 0x06
|
|
message CHR_JOANNA, 0x1818 // "Mission critical object destroyed."
|
|
set_stage_flag STAGEFLAG_GENERATOR_DESTROYED
|
|
label 0x06
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
label 0x2c
|
|
reloop 0x04
|
|
|
|
// Generator activated
|
|
label 0x08
|
|
if_stage_flag_eq STAGEFLAG_GENERATOR_SHUT_DOWN2, TRUE, /*goto*/ 0x09
|
|
set_object_image OBJ_GENERATOR, 0x00, 0x14
|
|
set_object_image OBJ_GENERATOR, 0x01, 0x14
|
|
mute_channel CHANNEL_4
|
|
mute_channel CHANNEL_0
|
|
assign_sound 0x8147, CHANNEL_0
|
|
control_sound_from_object CHANNEL_0, OBJ_GENERATOR, TRUE
|
|
message CHR_P1P2, 0x1819 // "Damping field generator shut down."
|
|
set_stage_flag STAGEFLAG_GENERATOR_SHUT_DOWN2
|
|
set_stage_flag STAGEFLAG_GENERATOR_SHUT_DOWN
|
|
reloop 0x04
|
|
|
|
label 0x09
|
|
message CHR_P1P2, 0x181a // "Generator cannot be restarted."
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func1003_laser_switch_1:
|
|
assign_sound 0x8119, CHANNEL_0
|
|
play_sound_from_object CHANNEL_0, OBJ_LASER_1A, 0x012c, 0x0190
|
|
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_activated_object CHR_P1P2, OBJ_LASERSWITCH1, /*goto*/ 0x08
|
|
if_object_in_good_condition OBJ_LASERSWITCH1, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET1_DISABLED, TRUE, /*goto*/ 0x2c
|
|
message CHR_JOANNA, 0x1818 // "Mission critical object destroyed."
|
|
set_stage_flag STAGEFLAG_LASERSWITCH1_DESTROYED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
label 0x2c
|
|
reloop 0x04
|
|
|
|
// Activated/deactivated
|
|
label 0x08
|
|
if_stage_flag_eq STAGEFLAG_LASERSET1_DISABLED, TRUE, /*goto*/ 0x09
|
|
|
|
// Deactivated
|
|
set_object_image OBJ_LASERSWITCH1, 0x00, 0x14
|
|
message CHR_P1P2, 0x181b // "Laser grid unit shut down."
|
|
set_stage_flag STAGEFLAG_LASERSET1_DISABLED
|
|
open_door OBJ_LASER_1A
|
|
open_door OBJ_LASER_1B
|
|
open_door OBJ_LASER_1C
|
|
open_door OBJ_LASER_1D
|
|
yield
|
|
set_object_flag_bank0 OBJ_LASER_1A, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_1B, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_1C, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_1D, OBJECTFLAG0_40000000
|
|
assign_sound 0x043f, CHANNEL_7
|
|
play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH1, 0x012c, 0x0190, 0x00
|
|
mute_channel CHANNEL_0
|
|
assign_sound 0x01cd, CHANNEL_0
|
|
play_sound_from_entity CHANNEL_0, OBJ_LASER_1A, 0x012c, 0x0190, 0x00
|
|
goto_next 0x0a
|
|
|
|
// Activated
|
|
label 0x09
|
|
message CHR_P1P2, 0x181c // "Laser grid unit activated."
|
|
unset_stage_flag STAGEFLAG_LASERSET1_DISABLED
|
|
set_object_image OBJ_LASERSWITCH1, 0x00, 0x13
|
|
close_door OBJ_LASER_1A
|
|
close_door OBJ_LASER_1B
|
|
close_door OBJ_LASER_1C
|
|
close_door OBJ_LASER_1D
|
|
assign_sound 0x043f, CHANNEL_7
|
|
play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH1, 0x012c, 0x0190, 0x00
|
|
assign_sound 0x8119, CHANNEL_0
|
|
play_sound_from_object CHANNEL_0, OBJ_LASER_1A, 0x012c, 0x0190
|
|
goto_next 0x0a
|
|
label 0x0a
|
|
restart_timer
|
|
|
|
beginloop 0x0b
|
|
if_timer_gt 120, /*goto*/ 0x06
|
|
endloop 0x0b
|
|
|
|
label 0x06
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func1004_laser_switch_2:
|
|
assign_sound 0x8119, CHANNEL_1
|
|
play_sound_from_object CHANNEL_1, OBJ_LASER_2A, 0x012c, 0x0190
|
|
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_activated_object CHR_P1P2, OBJ_LASERSWITCH2, /*goto*/ 0x08
|
|
if_object_in_good_condition OBJ_LASERSWITCH2, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET2_DISABLED, TRUE, /*goto*/ 0x2c
|
|
message CHR_JOANNA, 0x1818 // "Mission critical object destroyed."
|
|
set_stage_flag STAGEFLAG_LASERSWITCH2_DESTROYED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
label 0x2c
|
|
reloop 0x04
|
|
|
|
// Activated/deactivated
|
|
label 0x08
|
|
dprint "SWITCH 2"
|
|
if_stage_flag_eq STAGEFLAG_LASERSET2_DISABLED, TRUE, /*goto*/ 0x09
|
|
|
|
// Deactivated
|
|
set_object_image OBJ_LASERSWITCH2, 0x00, 0x14
|
|
message CHR_P1P2, 0x181b // "Laser grid unit shut down."
|
|
set_stage_flag STAGEFLAG_LASERSET2_DISABLED
|
|
open_door OBJ_LASER_2A
|
|
open_door OBJ_LASER_2B
|
|
open_door OBJ_LASER_2C
|
|
open_door OBJ_LASER_2D
|
|
yield
|
|
set_object_flag_bank0 OBJ_LASER_2A, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_2B, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_2C, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_2D, OBJECTFLAG0_40000000
|
|
assign_sound 0x043f, CHANNEL_7
|
|
play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH2, 0x012c, 0x0190, 0x00
|
|
mute_channel CHANNEL_1
|
|
assign_sound 0x01cd, CHANNEL_1
|
|
play_sound_from_entity CHANNEL_1, OBJ_LASER_2A, 0x012c, 0x0190, 0x00
|
|
goto_next 0x0a
|
|
|
|
// Activated
|
|
label 0x09
|
|
set_object_image OBJ_LASERSWITCH2, 0x00, 0x13
|
|
message CHR_P1P2, 0x181c // "Laser grid unit activated."
|
|
unset_stage_flag STAGEFLAG_LASERSET2_DISABLED
|
|
close_door OBJ_LASER_2A
|
|
close_door OBJ_LASER_2B
|
|
close_door OBJ_LASER_2C
|
|
close_door OBJ_LASER_2D
|
|
assign_sound 0x043f, CHANNEL_7
|
|
play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH2, 0x012c, 0x0190, 0x00
|
|
assign_sound 0x8119, CHANNEL_1
|
|
play_sound_from_object CHANNEL_1, OBJ_LASER_2A, 0x012c, 0x0190
|
|
goto_next 0x0a
|
|
label 0x0a
|
|
restart_timer
|
|
|
|
beginloop 0x0b
|
|
if_timer_gt 120, /*goto*/ 0x06
|
|
endloop 0x0b
|
|
|
|
label 0x06
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func1005_laser_switch_3:
|
|
assign_sound 0x8119, CHANNEL_2
|
|
play_sound_from_object CHANNEL_2, OBJ_LASER_3A, 0x012c, 0x0190
|
|
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_activated_object CHR_P1P2, OBJ_LASERSWITCH3, /*goto*/ 0x08
|
|
if_object_in_good_condition OBJ_LASERSWITCH3, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET3_DISABLED, TRUE, /*goto*/ 0x2c
|
|
message CHR_JOANNA, 0x1818 // "Mission critical object destroyed."
|
|
set_stage_flag STAGEFLAG_LASERSWITCH3_DESTROYED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
label 0x2c
|
|
reloop 0x04
|
|
|
|
// Activated/deactivated
|
|
label 0x08
|
|
if_stage_flag_eq STAGEFLAG_LASERSET3_DISABLED, TRUE, /*goto*/ 0x09
|
|
|
|
// Deactivated
|
|
set_object_image OBJ_LASERSWITCH3, 0x00, 0x14
|
|
message CHR_P1P2, 0x181b // "Laser grid unit shut down."
|
|
set_stage_flag STAGEFLAG_LASERSET3_DISABLED
|
|
open_door OBJ_LASER_3A
|
|
open_door OBJ_LASER_3B
|
|
open_door OBJ_LASER_3C
|
|
open_door OBJ_LASER_3D
|
|
yield
|
|
set_object_flag_bank0 OBJ_LASER_3A, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_3B, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_3C, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_3D, OBJECTFLAG0_40000000
|
|
assign_sound 0x043f, CHANNEL_7
|
|
play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH3, 0x012c, 0x0190, 0x00
|
|
mute_channel CHANNEL_2
|
|
assign_sound 0x01cd, CHANNEL_2
|
|
play_sound_from_entity CHANNEL_2, OBJ_LASER_3A, 0x012c, 0x0190, 0x00
|
|
goto_next 0x0a
|
|
|
|
// Activated
|
|
label 0x09
|
|
set_object_image OBJ_LASERSWITCH3, 0x00, 0x13
|
|
message CHR_P1P2, 0x181c // "Laser grid unit activated."
|
|
unset_stage_flag STAGEFLAG_LASERSET3_DISABLED
|
|
close_door OBJ_LASER_3A
|
|
close_door OBJ_LASER_3B
|
|
close_door OBJ_LASER_3C
|
|
close_door OBJ_LASER_3D
|
|
assign_sound 0x043f, CHANNEL_7
|
|
play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH3, 0x012c, 0x0190, 0x00
|
|
assign_sound 0x8119, CHANNEL_2
|
|
play_sound_from_object CHANNEL_2, OBJ_LASER_3A, 0x012c, 0x0190
|
|
goto_next 0x0a
|
|
label 0x0a
|
|
restart_timer
|
|
|
|
beginloop 0x0b
|
|
if_timer_gt 120, /*goto*/ 0x06
|
|
endloop 0x0b
|
|
|
|
label 0x06
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func1006_laser_switch_4:
|
|
assign_sound 0x811a, CHANNEL_3
|
|
play_sound_from_object CHANNEL_3, OBJ_LASER_4A, 0x012c, 0x0190
|
|
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_activated_object CHR_P1P2, OBJ_LASERSWITCH4, /*goto*/ 0x08
|
|
if_object_in_good_condition OBJ_LASERSWITCH4, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET4_DISABLED, TRUE, /*goto*/ 0x2c
|
|
message CHR_JOANNA, 0x1818 // "Mission critical object destroyed."
|
|
set_stage_flag STAGEFLAG_LASERSWITCH4_DESTROYED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
label 0x2c
|
|
reloop 0x04
|
|
|
|
// Activated/deactivated
|
|
label 0x08
|
|
if_stage_flag_eq STAGEFLAG_LASERSET4_DISABLED, TRUE, /*goto*/ 0x09
|
|
|
|
// Deactivated
|
|
set_object_image OBJ_LASERSWITCH4, 0x00, 0x14
|
|
message CHR_P1P2, 0x181b // "Laser grid unit shut down."
|
|
set_stage_flag STAGEFLAG_LASERSET4_DISABLED
|
|
open_door OBJ_LASER_4A
|
|
open_door OBJ_LASER_4B
|
|
open_door OBJ_LASER_4C
|
|
open_door OBJ_LASER_4D
|
|
yield
|
|
set_object_flag_bank0 OBJ_LASER_4A, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_4B, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_4C, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_4D, OBJECTFLAG0_40000000
|
|
assign_sound 0x043f, CHANNEL_7
|
|
play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH4, 0x012c, 0x0190, 0x00
|
|
mute_channel CHANNEL_3
|
|
assign_sound 0x01cd, CHANNEL_3
|
|
play_sound_from_entity CHANNEL_3, OBJ_LASER_4A, 0x012c, 0x0190, 0x00
|
|
goto_next 0x0a
|
|
|
|
// Activated
|
|
label 0x09
|
|
set_object_image OBJ_LASERSWITCH4, 0x00, 0x13
|
|
message CHR_P1P2, 0x181c // "Laser grid unit activated."
|
|
unset_stage_flag STAGEFLAG_LASERSET4_DISABLED
|
|
close_door OBJ_LASER_4A
|
|
close_door OBJ_LASER_4B
|
|
close_door OBJ_LASER_4C
|
|
close_door OBJ_LASER_4D
|
|
assign_sound 0x043f, CHANNEL_7
|
|
play_sound_from_entity CHANNEL_7, OBJ_LASERSWITCH4, 0x012c, 0x0190, 0x00
|
|
assign_sound 0x811a, CHANNEL_3
|
|
play_sound_from_object CHANNEL_3, OBJ_LASER_4A, 0x012c, 0x0190
|
|
goto_next 0x0a
|
|
label 0x0a
|
|
restart_timer
|
|
|
|
beginloop 0x0b
|
|
if_timer_gt 120, /*goto*/ 0x06
|
|
endloop 0x0b
|
|
|
|
label 0x06
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func1007_init_lasers:
|
|
yield
|
|
|
|
// Wait for cutscene to finish
|
|
beginloop 0x8f
|
|
if_camera_animating /*goto*/ 0x2c
|
|
goto_next 0x06
|
|
label 0x2c
|
|
endloop 0x8f
|
|
|
|
label 0x06
|
|
if_difficulty_lt DIFF_SA, /*goto*/ 0x0d
|
|
|
|
// SA/PA - bring up lasers
|
|
close_door OBJ_LASER_1A
|
|
close_door OBJ_LASER_2A
|
|
close_door OBJ_LASER_3A
|
|
close_door OBJ_LASER_4A
|
|
close_door OBJ_LASER_1B
|
|
close_door OBJ_LASER_2B
|
|
close_door OBJ_LASER_3B
|
|
close_door OBJ_LASER_4B
|
|
close_door OBJ_LASER_1C
|
|
close_door OBJ_LASER_2C
|
|
close_door OBJ_LASER_3C
|
|
close_door OBJ_LASER_4C
|
|
close_door OBJ_LASER_1D
|
|
close_door OBJ_LASER_2D
|
|
close_door OBJ_LASER_3D
|
|
close_door OBJ_LASER_4D
|
|
|
|
// Wait until all lasers disabled, show message and set flag
|
|
beginloop 0x04
|
|
if_stage_flag_eq STAGEFLAG_LASERSET1_DISABLED, FALSE, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET2_DISABLED, FALSE, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET3_DISABLED, FALSE, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET4_DISABLED, FALSE, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_ALL_LASERS_DISABLED, TRUE, /*goto*/ 0x2c
|
|
message CHR_JOANNA, 0x181d // "All laser grid systems shut down."
|
|
set_stage_flag STAGEFLAG_ALL_LASERS_DISABLED
|
|
label 0x2c
|
|
endloop 0x04
|
|
|
|
// Agent - take down lasers
|
|
label 0x0d
|
|
set_object_image OBJ_LASERSWITCH1, 0x00, 0x14
|
|
set_object_image OBJ_LASERSWITCH2, 0x00, 0x14
|
|
set_object_image OBJ_LASERSWITCH3, 0x00, 0x14
|
|
set_object_image OBJ_LASERSWITCH4, 0x00, 0x14
|
|
open_door OBJ_LASER_1A
|
|
open_door OBJ_LASER_2A
|
|
open_door OBJ_LASER_3A
|
|
open_door OBJ_LASER_4A
|
|
open_door OBJ_LASER_1B
|
|
open_door OBJ_LASER_2B
|
|
open_door OBJ_LASER_3B
|
|
open_door OBJ_LASER_4B
|
|
open_door OBJ_LASER_1C
|
|
open_door OBJ_LASER_2C
|
|
open_door OBJ_LASER_3C
|
|
open_door OBJ_LASER_4C
|
|
open_door OBJ_LASER_1D
|
|
open_door OBJ_LASER_2D
|
|
open_door OBJ_LASER_3D
|
|
open_door OBJ_LASER_4D
|
|
yield
|
|
set_object_flag_bank0 OBJ_LASER_1A, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_2A, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_3A, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_4A, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_1B, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_2B, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_3B, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_4B, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_1C, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_2C, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_3C, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_4C, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_1D, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_2D, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_3D, OBJECTFLAG0_40000000
|
|
set_object_flag_bank0 OBJ_LASER_4D, OBJECTFLAG0_40000000
|
|
set_stage_flag STAGEFLAG_LASERSET1_DISABLED
|
|
set_stage_flag STAGEFLAG_LASERSET2_DISABLED
|
|
set_stage_flag STAGEFLAG_LASERSET3_DISABLED
|
|
set_stage_flag STAGEFLAG_LASERSET4_DISABLED
|
|
set_stage_flag STAGEFLAG_ALL_LASERS_DISABLED
|
|
label 0x0e
|
|
yield
|
|
open_door OBJ_LASER_1A
|
|
open_door OBJ_LASER_2A
|
|
open_door OBJ_LASER_3A
|
|
open_door OBJ_LASER_4A
|
|
open_door OBJ_LASER_1B
|
|
open_door OBJ_LASER_2B
|
|
open_door OBJ_LASER_3B
|
|
open_door OBJ_LASER_4B
|
|
open_door OBJ_LASER_1C
|
|
open_door OBJ_LASER_2C
|
|
open_door OBJ_LASER_3C
|
|
open_door OBJ_LASER_4C
|
|
open_door OBJ_LASER_1D
|
|
open_door OBJ_LASER_2D
|
|
open_door OBJ_LASER_3D
|
|
open_door OBJ_LASER_4D
|
|
yield
|
|
mute_channel CHANNEL_0
|
|
mute_channel CHANNEL_1
|
|
mute_channel CHANNEL_2
|
|
mute_channel CHANNEL_3
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1009_spawner_during_decode:
|
|
// Wait for alarm or decoder attached
|
|
beginloop 0x04
|
|
if_stage_flag_eq STAGEFLAG_DECODER_ATTACHED, TRUE, /*goto*/ 0x06
|
|
if_alarm_active /*goto*/ 0x61
|
|
endloop 0x04
|
|
|
|
// Decoder is attached
|
|
label 0x06
|
|
yield
|
|
yield
|
|
|
|
// Wait 8.3 seconds
|
|
restart_timer
|
|
|
|
beginloop 0x08
|
|
if_timer_gt 500, /*goto*/ 0x06
|
|
endloop 0x08
|
|
|
|
label 0x06
|
|
activate_alarm
|
|
|
|
// Spawn two swat guards
|
|
label 0x61
|
|
try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x0058, 0x0401, 0x00000200, /*goto*/ 0x06
|
|
label 0x06
|
|
try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x003f, 0x0402, 0x00000200, /*goto*/ 0x06
|
|
label 0x06
|
|
|
|
// Every half second, use RNG to decide whether to consider spawning more.
|
|
// 55/255 chance of passing.
|
|
label 0x09
|
|
restart_timer
|
|
call_rng
|
|
|
|
beginloop 0x0a
|
|
if_rand_gt 200, /*goto*/ 0x06
|
|
if_timer_gt 30, /*goto*/ 0x2c
|
|
endloop 0x0a
|
|
|
|
label 0x2c
|
|
reloop 0x09
|
|
|
|
label 0x06
|
|
if_difficulty_lt DIFF_SA, /*goto*/ 0x55
|
|
if_difficulty_lt DIFF_PA, /*goto*/ 0x56
|
|
if_num_chrs_in_group_gt 5, 0x09, /*goto*/ 0x2c
|
|
if_kill_count_gt 50, /*goto*/ 0x2c
|
|
goto_next 0x57
|
|
|
|
// Agent
|
|
label 0x55
|
|
if_num_chrs_in_group_gt 3, 0x09, /*goto*/ 0x2c
|
|
if_kill_count_gt 50, /*goto*/ 0x2c
|
|
goto_next 0x57
|
|
|
|
// Special Agent
|
|
label 0x56
|
|
if_num_chrs_in_group_gt 4, 0x09, /*goto*/ 0x2c
|
|
if_kill_count_gt 50, /*goto*/ 0x2c
|
|
goto_next 0x57
|
|
|
|
// All difficulties
|
|
label 0x57
|
|
call_rng
|
|
if_rand_gt 128, /*goto*/ 0x0b
|
|
if_stage_flag_eq STAGEFLAG_VISITED_TOP_DOOR, TRUE, /*goto*/ 0x2c
|
|
try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x0058, 0x0401, 0x00000200, /*goto*/ 0x06
|
|
label 0x06
|
|
goto_next 0x0d
|
|
|
|
label 0x2c
|
|
dprint "SQUAD FULL"
|
|
reloop 0x09
|
|
|
|
label 0x0b
|
|
try_spawn_chr BODY_G5_SWAT_GUARD, HEAD_RANDOM, 0x003f, 0x0402, 0x00000200, /*goto*/ 0x06
|
|
label 0x06
|
|
label 0x0d
|
|
restart_timer
|
|
|
|
beginloop 0x0e
|
|
if_timer_gt 30, /*goto*/ 0x06
|
|
endloop 0x0e
|
|
|
|
label 0x06
|
|
endloop 0x09
|
|
|
|
endfunction
|
|
|
|
.macro init_swat
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00400000
|
|
set_self_flag_bankx CHRFLAG1_00080000, BANK_1
|
|
set_chr_dodge_rating 2, 0x0a
|
|
set_accuracy 15
|
|
set_reaction_speed 25
|
|
set_chr_health CHR_SELF, 40
|
|
set_armor 0
|
|
set_recovery_speed 0
|
|
set_shield 0
|
|
try_draw_weapon MODEL_CHRDY357, WEAPON_DY357MAGNUM, 0x10000000, /*goto*/ 0x06
|
|
label 0x06
|
|
set_chr_alliance CHR_SELF, ALLIANCE_ENEMY
|
|
set_group 0x09
|
|
set_chr_flag_bank3 CHR_SELF, CHRFLAG3_KILLCOUNTABLE
|
|
set_self_flag_bankx CHRFLAG0_00002000, BANK_0
|
|
set_self_flag_bankx CHRFLAG0_00008000, BANK_0
|
|
set_alertness 90
|
|
set_self_flag_bank3 CHRFLAG3_00000200
|
|
cmd0145_rebuild_groups
|
|
cmd0146_rebuild_groups
|
|
run_to_pad 0x004e
|
|
.endm
|
|
|
|
func0401_init_swat1:
|
|
init_swat
|
|
|
|
beginloop 0x08
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_chr_sees_player /*goto*/ 0x2c
|
|
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2c
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0050, /*goto*/ 0x06
|
|
endloop 0x08
|
|
|
|
label 0x2c
|
|
set_function CHR_SELF, GFUNC_UNALERTED
|
|
|
|
label 0x06
|
|
set_return_function CHR_SELF, GFUNC_UNALERTED
|
|
set_function CHR_SELF, GFUNC_ALERTED
|
|
endfunction
|
|
|
|
/**
|
|
* Same as above, but guards with this function will become unalerted if they
|
|
* lose sight of Jo regardless of what room they're in.
|
|
*/
|
|
func0402_init_swat2:
|
|
init_swat
|
|
|
|
beginloop 0x08
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_chr_sees_player /*goto*/ 0x2c
|
|
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2c
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0050, /*goto*/ 0x06
|
|
if_chr_stopped /*goto*/ 0x06
|
|
endloop 0x08
|
|
|
|
label 0x2c
|
|
set_function CHR_SELF, GFUNC_UNALERTED
|
|
|
|
label 0x06
|
|
set_return_function CHR_SELF, GFUNC_UNALERTED
|
|
set_function CHR_SELF, GFUNC_ALERTED
|
|
endfunction
|
|
|
|
func100a_give_keycards:
|
|
set_object_flag_bank0 OBJ_KEYCARD1, OBJECTFLAG0_00100000
|
|
set_object_flag_bank1 OBJ_KEYCARD1, OBJECTFLAG1_INVISIBLE
|
|
set_object_flag_bank0 OBJ_KEYCARD2, OBJECTFLAG0_00100000
|
|
set_object_flag_bank1 OBJ_KEYCARD2, OBJECTFLAG1_INVISIBLE
|
|
set_object_flag_bank1 OBJ_CROSSBOW, OBJECTFLAG1_INVISIBLE
|
|
set_object_flag_bank0 OBJ_CROSSBOW, OBJECTFLAG0_00100000
|
|
|
|
set_chr_flag_bank3 CHR_CLOAK_1A, CHRFLAG3_KILLCOUNTABLE
|
|
set_chr_flag_bank3 CHR_CLOAK_1B, CHRFLAG3_KILLCOUNTABLE
|
|
set_chr_flag_bank3 CHR_CLOAK_2A, CHRFLAG3_KILLCOUNTABLE
|
|
set_chr_flag_bank3 CHR_CLOAK_2B, CHRFLAG3_KILLCOUNTABLE
|
|
set_chr_flag_bank3 CHR_CLOAK_2C, CHRFLAG3_KILLCOUNTABLE
|
|
set_chr_flag_bank3 CHR_CLOAK_2D, CHRFLAG3_KILLCOUNTABLE
|
|
|
|
// Wait for trigger
|
|
beginloop 0x04
|
|
if_stage_flag_eq STAGEFLAG_CLOAK1_ONE_REMAINING, TRUE, /*goto*/ 0x2c
|
|
endloop 0x04
|
|
|
|
label 0x2c
|
|
if_chr_dying CHR_CLOAK_1A, /*goto*/ 0x06
|
|
if_chr_death_animation_finished CHR_CLOAK_1A, /*goto*/ 0x06
|
|
if_chr_unloaded CHR_CLOAK_1A, /*goto*/ 0x06
|
|
|
|
// First cloacked guard is alive
|
|
give_object_to_chr OBJ_KEYCARD1, CHR_CLOAK_1A
|
|
give_object_to_chr OBJ_CROSSBOW, CHR_CLOAK_1A
|
|
set_target_chr CHR_CLOAK_1A
|
|
goto_next 0x2c
|
|
|
|
// First cloaked guard is dead
|
|
label 0x06
|
|
give_object_to_chr OBJ_KEYCARD1, CHR_CLOAK_1B
|
|
give_object_to_chr OBJ_CROSSBOW, CHR_CLOAK_1B
|
|
set_target_chr CHR_CLOAK_1B
|
|
|
|
label 0x2c
|
|
unset_object_flag_bank0 OBJ_KEYCARD1, OBJECTFLAG0_00100000
|
|
unset_object_flag_bank1 OBJ_KEYCARD1, OBJECTFLAG1_INVISIBLE
|
|
unset_object_flag_bank1 OBJ_CROSSBOW, OBJECTFLAG1_INVISIBLE
|
|
unset_object_flag_bank0 OBJ_CROSSBOW, OBJECTFLAG0_00100000
|
|
|
|
// Wait for the chr who holds the keycard to die
|
|
beginloop 0x55
|
|
if_chr_unloaded TARGET_CHR, /*goto*/ 0x08
|
|
if_chr_dying TARGET_CHR, /*goto*/ 0x2c
|
|
if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x2c
|
|
endloop 0x55
|
|
|
|
label 0x2c
|
|
set_object_flag_bank1 OBJ_CROSSBOW, OBJECTFLAG1_INVISIBLE
|
|
set_object_flag_bank0 OBJ_CROSSBOW, OBJECTFLAG0_00100000
|
|
hide_object OBJ_CROSSBOW
|
|
|
|
beginloop 0x08
|
|
dprint "CHECK DEAD"
|
|
if_stage_flag_eq STAGEFLAG_CLOAK2_ONE_REMAINING, TRUE, /*goto*/ 0x2c
|
|
endloop 0x08
|
|
|
|
// Second room
|
|
label 0x2c
|
|
if_chr_dying CHR_CLOAK_2A, /*goto*/ 0x06
|
|
if_chr_death_animation_finished CHR_CLOAK_2A, /*goto*/ 0x06
|
|
if_chr_unloaded CHR_CLOAK_2A, /*goto*/ 0x06
|
|
|
|
// 2A alive
|
|
give_object_to_chr OBJ_KEYCARD2, CHR_CLOAK_2A
|
|
dprint "GIVE TO4"
|
|
goto_next 0x2c
|
|
|
|
// 2A dead
|
|
label 0x06
|
|
if_chr_dying CHR_CLOAK_2B, /*goto*/ 0x06
|
|
if_chr_death_animation_finished CHR_CLOAK_2B, /*goto*/ 0x06
|
|
if_chr_unloaded CHR_CLOAK_2B, /*goto*/ 0x06
|
|
give_object_to_chr OBJ_KEYCARD2, CHR_CLOAK_2B
|
|
dprint "GIVE TO5"
|
|
goto_next 0x2c
|
|
|
|
// 2B dead
|
|
label 0x06
|
|
if_chr_dying CHR_CLOAK_2C, /*goto*/ 0x06
|
|
if_chr_death_animation_finished CHR_CLOAK_2C, /*goto*/ 0x06
|
|
if_chr_unloaded CHR_CLOAK_2C, /*goto*/ 0x06
|
|
give_object_to_chr OBJ_KEYCARD2, CHR_CLOAK_2C
|
|
dprint "GIVE TO6"
|
|
goto_next 0x2c
|
|
|
|
// 2C dead
|
|
label 0x06
|
|
give_object_to_chr OBJ_KEYCARD2, CHR_CLOAK_2D
|
|
dprint "GIVE TO7"
|
|
|
|
label 0x2c
|
|
unset_object_flag_bank0 OBJ_KEYCARD2, OBJECTFLAG0_00100000
|
|
unset_object_flag_bank1 OBJ_KEYCARD2, OBJECTFLAG1_INVISIBLE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func100b_check_backup_collected:
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_has_object CHR_P1P2, OBJ_BACKUPDISK, /*goto*/ 0x2c
|
|
endloop 0x04
|
|
|
|
label 0x2c
|
|
set_stage_flag STAGEFLAG_BACKUP_COLLECTED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1002_set_ai:
|
|
set_function CHR_SELF, GFUNC_REBUILD_GROUPS
|
|
endfunction
|
|
|
|
func1400_setup_counterop:
|
|
yield
|
|
set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY
|
|
|
|
// On counterop SA and PA, give Joanna a CMP150
|
|
if_difficulty_lt DIFF_SA, /*goto*/ 0x06
|
|
give_object_to_chr OBJ_CMP150_JOANNA, CHR_JOANNA
|
|
give_object_to_chr OBJ_CMP150_VELVET, CHR_VELVET
|
|
label 0x06
|
|
set_function CHR_SELF, GFUNC_REBUILD_GROUPS
|
|
endfunction
|
|
|
|
func100e_check_conspirators_alerted:
|
|
// Wait for alarm
|
|
beginloop 0x04
|
|
if_alarm_active /*goto*/ 0x06
|
|
reloop 0x04
|
|
|
|
// These objects are doors
|
|
label 0x06
|
|
unset_object_flag_bank1 0x3f, OBJECTFLAG1_20000000
|
|
unset_object_flag_bank1 0x40, OBJECTFLAG1_20000000
|
|
unset_object_flag_bank1 0x41, OBJECTFLAG1_20000000
|
|
unset_object_flag_bank1 0x42, OBJECTFLAG1_20000000
|
|
unset_object_flag_bank1 0x43, OBJECTFLAG1_20000000
|
|
unset_object_flag_bank1 0x44, OBJECTFLAG1_20000000
|
|
unset_object_flag_bank1 0x45, OBJECTFLAG1_20000000
|
|
unset_object_flag_bank1 0x46, OBJECTFLAG1_20000000
|
|
unset_object_flag_bank1 0x34, OBJECTFLAG1_20000000
|
|
unset_object_flag_bank1 0x35, OBJECTFLAG1_20000000
|
|
unset_object_flag_bank1 0x36, OBJECTFLAG1_20000000
|
|
unset_object_flag_bank1 0x37, OBJECTFLAG1_20000000
|
|
|
|
set_stage_flag STAGEFLAG_ALARM_SOUNDING
|
|
if_stage_flag_eq STAGEFLAG_MEETING_STARTED, TRUE, /*goto*/ 0x06
|
|
set_stage_flag STAGEFLAG_CONSPIRATORS_ALERTED
|
|
set_function CHR_CASS, FUNC_RUN_FROM_MEETING
|
|
set_function 0x1c, FUNC_RUN_FROM_MEETING // chr doesn't exist
|
|
set_function CHR_BLONDE, FUNC_RUN_FROM_MEETING
|
|
message CHR_JOANNA, 0x1829 // "Conspirators have been alerted."
|
|
|
|
// Wait until alarm not active
|
|
label 0x06
|
|
|
|
beginloop 0x55
|
|
if_alarm_active /*goto*/ 0x2c
|
|
goto_next 0x06
|
|
label 0x2c
|
|
endloop 0x55
|
|
|
|
label 0x06
|
|
unset_stage_flag STAGEFLAG_ALARM_SOUNDING
|
|
endloop 0x04
|
|
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func100f_alarm_switches:
|
|
// Wait until player activated alarm switch
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_activated_object CHR_P1P2, OBJ_ALARM1, /*goto*/ 0x2c
|
|
if_chr_activated_object CHR_P1P2, OBJ_ALARM2, /*goto*/ 0x2c
|
|
reloop 0x04
|
|
|
|
label 0x2c
|
|
if_stage_flag_eq STAGEFLAG_ALARM_SOUNDING, TRUE, /*goto*/ 0x06
|
|
message CHR_P1P2, 0x182a // "Alarm activated."
|
|
set_stage_flag STAGEFLAG_ALARM_SOUNDING
|
|
activate_alarm
|
|
reloop 0x04
|
|
|
|
label 0x06
|
|
message CHR_P1P2, 0x182b // "Alarm deactivated."
|
|
unset_stage_flag STAGEFLAG_ALARM_SOUNDING
|
|
deactivate_alarm
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func1010_safe_cracking:
|
|
// Wait for player to activate keypad or for it to be destroyed
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_object_in_good_condition OBJ_SAFEKEYPAD, /*goto*/ 0x2c
|
|
message CHR_JOANNA, 0x1840 // "Mission critical object destroyed."
|
|
set_stage_flag STAGEFLAG_SAFEKEYPAD_DESTROYED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
label 0x2c
|
|
if_chr_activated_object CHR_P1P2, OBJ_SAFEKEYPAD, /*goto*/ 0x2c
|
|
reloop 0x04
|
|
|
|
label 0x2c
|
|
if_chr_weapon_equipped CHR_P1P2, WEAPON_DOORDECODER, /*goto*/ 0x2c
|
|
message CHR_P1P2, 0x182c // "Safe door is locked."
|
|
endloop 0x04
|
|
|
|
label 0x2c
|
|
message CHR_P1P2, 0x182d // "Door Decoder attached."
|
|
remove_weapon_from_inventory WEAPON_DOORDECODER
|
|
move_object_to_pad OBJ_DECODER, 0x0075
|
|
set_stage_flag STAGEFLAG_DECODER_ATTACHED
|
|
assign_sound 0x8144, CHANNEL_1
|
|
play_sound_from_object CHANNEL_1, OBJ_SAFEKEYPAD, 0x012c, 0x0190
|
|
restart_timer
|
|
|
|
beginloop 0x09
|
|
if_timer_gt 180, /*goto*/ 0x06
|
|
endloop 0x09
|
|
|
|
label 0x06
|
|
speak CHR_JOANNA, 0x1826, 0x7754, CHANNEL_5, COLOR_00_GREEN // "INTRUDER ALERT - all security to the vault."
|
|
play_x_music CHANNEL_10, 180
|
|
yield
|
|
set_countdown_timer 60
|
|
message CHR_P1P2, 0x1824 // "Initiating cracking routines."
|
|
yield
|
|
show_countdown_timer
|
|
start_countdown_timer
|
|
restart_timer
|
|
|
|
beginloop 0x5e
|
|
if_timer_gt 180, /*goto*/ 0x2c
|
|
endloop 0x5e
|
|
|
|
label 0x2c
|
|
activate_alarm
|
|
|
|
beginloop 0x08
|
|
if_object_in_good_condition OBJ_SAFEKEYPAD, /*goto*/ 0x2c
|
|
message CHR_JOANNA, 0x1840 // "Mission critical object destroyed."
|
|
set_stage_flag STAGEFLAG_SAFEKEYPAD_DESTROYED
|
|
hide_countdown_timer
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
label 0x2c
|
|
if_countdown_timer_lt 1, /*goto*/ 0x06
|
|
endloop 0x08
|
|
|
|
// Unlock
|
|
label 0x06
|
|
mute_channel CHANNEL_1
|
|
assign_sound 0x8145, CHANNEL_1
|
|
control_sound_from_object CHANNEL_1, OBJ_SAFEKEYPAD, TRUE
|
|
message CHR_P1P2, 0x1825 // "Door Decoder finished - door unlocked."
|
|
unlock_door OBJ_SAFEDOOR, 0x40
|
|
unset_object_flag_bank1 OBJ_SAFEDOOR, OBJECTFLAG1_20000000
|
|
open_door OBJ_SAFEDOOR
|
|
hide_countdown_timer
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1012_check_for_end:
|
|
// Wait until player on ending catwalk
|
|
beginloop 0x08
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0060, /*goto*/ 0x06
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0061, /*goto*/ 0x06
|
|
reloop 0x08
|
|
|
|
label 0x06
|
|
if_chr_death_animation_finished CHR_P1P2, /*goto*/ 0x2c
|
|
if_chr_dying CHR_P1P2, /*goto*/ 0x2c
|
|
if_chr_unloaded CHR_P1P2, /*goto*/ 0x2c
|
|
goto_next 0x06
|
|
label 0x2c
|
|
endloop 0x08
|
|
|
|
label 0x06
|
|
set_stage_flag STAGEFLAG_EXITED_BUILDING
|
|
dprint "IN THE ELEVATOR\n"
|
|
set_invincible CHR_JOANNA
|
|
yield
|
|
yield
|
|
revoke_control CHR_JOANNA, 4
|
|
hide_countdown_timer
|
|
stop_countdown_timer
|
|
if_all_objectives_complete /*goto*/ 0x53
|
|
message CHR_JOANNA, 0x1833 // "Objectives incomplete - MISSION FAILED."
|
|
label 0x2c
|
|
restart_timer
|
|
|
|
beginloop 0x52
|
|
if_timer_gt 280, /*goto*/ 0x2c
|
|
endloop 0x52
|
|
|
|
label 0x2c
|
|
end_level
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
// Objectives complete
|
|
label 0x53
|
|
if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2c
|
|
if_chr_dying CHR_JOANNA, /*goto*/ 0x2c
|
|
if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2c
|
|
goto_next 0x06
|
|
|
|
label 0x2c
|
|
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2c
|
|
if_chr_dying CHR_VELVET, /*goto*/ 0x2c
|
|
if_chr_unloaded CHR_VELVET, /*goto*/ 0x2c
|
|
goto_next 0x06
|
|
|
|
label 0x2c
|
|
end_level
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
// Mission complete
|
|
label 0x06
|
|
set_function CHR_SELF, FUNC_OUTRO
|
|
endfunction
|
|
|
|
func1013_check_escape_doors:
|
|
beginloop 0x04
|
|
if_object_in_good_condition OBJ_ESCAPEDOOR1, /*goto*/ 0x06
|
|
goto_next 0x2c
|
|
label 0x06
|
|
if_object_in_good_condition OBJ_ESCAPEDOOR2, /*goto*/ 0x06
|
|
label 0x2c
|
|
dprint "START ALARM\n"
|
|
activate_alarm
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
reloop 0x04
|
|
|
|
label 0x06
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func1014_check_camspy_location:
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room 0x00, /*camspy*/ 0x02, 0x0094, /*goto*/ 0x06
|
|
endloop 0x04
|
|
|
|
label 0x06
|
|
if_stage_flag_eq STAGEFLAG_CONSPIRATORS_ALERTED, TRUE, /*goto*/ 0x2c
|
|
set_stage_flag STAGEFLAG_MEETING_HOLOGRAPHED
|
|
|
|
label 0x2c
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func100c_check_for_meeting_trigger:
|
|
// Wait until meeting started then start cutscene
|
|
beginloop 0x00
|
|
if_stage_flag_eq STAGEFLAG_MEETING_HOLOGRAPHED, TRUE, /*goto*/ 0x06
|
|
endloop 0x00
|
|
|
|
label 0x06
|
|
dprint "shot 1"
|
|
set_function CHR_SELF, FUNC_MEETING_CUTSCENE
|
|
endfunction
|
|
|
|
func0403_walk_from_meeting:
|
|
walk_to_pad 0x0085
|
|
|
|
beginloop 0x04
|
|
if_chr_stopped /*goto*/ 0x06
|
|
endloop 0x04
|
|
|
|
label 0x06
|
|
remove_chr CHR_SELF
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0404_run_from_meeting:
|
|
run_to_pad 0x0085
|
|
|
|
beginloop 0x04
|
|
if_chr_stopped /*goto*/ 0x06
|
|
endloop 0x04
|
|
|
|
label 0x06
|
|
remove_chr CHR_SELF
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1001_objectives_failed_msg:
|
|
yield
|
|
set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG
|
|
endfunction
|
|
|
|
/**
|
|
* Monitor the laser states and unset the stage flags when they become enabled
|
|
* (ie. door is closed). This seems redundant because the flags are unset when
|
|
* the switches are used. Maybe they close after a long timeout or something.
|
|
*/
|
|
func1017_check_lasers_closed:
|
|
beginloop 0x04
|
|
if_stage_flag_eq STAGEFLAG_ALL_LASERS_DISABLED, TRUE, /*goto*/ 0x08
|
|
if_stage_flag_eq STAGEFLAG_MEETING_HOLOGRAPHED, TRUE, /*goto*/ 0x08
|
|
if_door_state OBJ_LASER_1A, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
unset_stage_flag STAGEFLAG_LASERSET1_DISABLED
|
|
label 0x2c
|
|
if_door_state OBJ_LASER_2A, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
unset_stage_flag STAGEFLAG_LASERSET2_DISABLED
|
|
label 0x2c
|
|
if_door_state OBJ_LASER_3A, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
unset_stage_flag STAGEFLAG_LASERSET3_DISABLED
|
|
label 0x2c
|
|
if_door_state OBJ_LASER_4A, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
unset_stage_flag STAGEFLAG_LASERSET4_DISABLED
|
|
label 0x2c
|
|
endloop 0x04
|
|
|
|
label 0x08
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func040d_intro:
|
|
set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
|
|
set_music_track MUSIC_G5_INTRO
|
|
camera_movement 0x0165
|
|
cmd0175 60
|
|
|
|
set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
|
|
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000
|
|
animation 0x0166, -1, -1, 0x0600, CHR_JOANNA, 4
|
|
|
|
set_chr_flag_bank3 CHR_INTRO_VICTIM, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_INTRO_VICTIM, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_INTRO_VICTIM, CHRFLAG2_00020000
|
|
animation 0x0167, -1, -1, 0x0600, CHR_INTRO_VICTIM, 4
|
|
|
|
restart_timer
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SILENCER, WEAPON_NONE
|
|
fade_to_color 0x000000ff, 0
|
|
fade_to_color 0x00000000, 110
|
|
|
|
beginloop 0x55
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 74, /*goto*/ 0x06
|
|
endloop 0x55
|
|
|
|
label 0x06
|
|
play_sound 0x0161, CHANNEL_7
|
|
|
|
beginloop 0x56
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 100, /*goto*/ 0x06
|
|
endloop 0x56
|
|
|
|
label 0x06
|
|
play_sound 0x0085, CHANNEL_7
|
|
|
|
beginloop 0x57
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 172, /*goto*/ 0x06
|
|
endloop 0x57
|
|
|
|
label 0x06
|
|
play_sound 0x0163, CHANNEL_7
|
|
|
|
beginloop 0x58
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 173, /*goto*/ 0x06
|
|
endloop 0x58
|
|
|
|
label 0x06
|
|
play_sound 0x0164, CHANNEL_6
|
|
|
|
beginloop 0x59
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 278, /*goto*/ 0x06
|
|
endloop 0x59
|
|
|
|
label 0x06
|
|
play_sound 0x0161, CHANNEL_7
|
|
|
|
beginloop 0x5a
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 312, /*goto*/ 0x06
|
|
endloop 0x5a
|
|
|
|
label 0x06
|
|
play_sound 0x0162, CHANNEL_7
|
|
|
|
beginloop 0x5b
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 356, /*goto*/ 0x06
|
|
endloop 0x5b
|
|
|
|
label 0x06
|
|
play_sound 0x0163, CHANNEL_7
|
|
|
|
beginloop 0x5c
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 396, /*goto*/ 0x06
|
|
endloop 0x5c
|
|
|
|
label 0x06
|
|
play_sound 0x0164, CHANNEL_7
|
|
|
|
beginloop 0x5d
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 434, /*goto*/ 0x06
|
|
endloop 0x5d
|
|
|
|
label 0x06
|
|
play_sound 0x0161, CHANNEL_7
|
|
|
|
beginloop 0x5e
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 478, /*goto*/ 0x06
|
|
endloop 0x5e
|
|
|
|
label 0x06
|
|
play_sound 0x0162, CHANNEL_7
|
|
|
|
beginloop 0x60
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 515, /*goto*/ 0x06
|
|
endloop 0x60
|
|
|
|
label 0x06
|
|
play_sound 0x0163, CHANNEL_7
|
|
|
|
beginloop 0x61
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 560, /*goto*/ 0x06
|
|
endloop 0x61
|
|
|
|
label 0x06
|
|
play_sound 0x0164, CHANNEL_7
|
|
|
|
beginloop 0x65
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 568, /*goto*/ 0x06
|
|
endloop 0x65
|
|
|
|
label 0x06
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
beginloop 0x62
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 595, /*goto*/ 0x06
|
|
endloop 0x62
|
|
|
|
label 0x06
|
|
play_sound 0x0161, CHANNEL_7
|
|
|
|
beginloop 0x63
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 630, /*goto*/ 0x06
|
|
endloop 0x63
|
|
|
|
label 0x06
|
|
play_sound 0x0162, CHANNEL_7
|
|
|
|
beginloop 0x66
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 638, /*goto*/ 0x06
|
|
endloop 0x66
|
|
|
|
label 0x06
|
|
play_sound 0x0163, CHANNEL_6
|
|
|
|
beginloop 0x68
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 670, /*goto*/ 0x06
|
|
endloop 0x68
|
|
|
|
label 0x06
|
|
play_sound 0x002e, CHANNEL_7
|
|
|
|
beginloop 0x67
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 670, /*goto*/ 0x06
|
|
endloop 0x67
|
|
|
|
label 0x06
|
|
play_sound 0x0045, CHANNEL_6
|
|
chr_drop_weapon CHR_INTRO_VICTIM
|
|
|
|
beginloop 0x69
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 672, /*goto*/ 0x06
|
|
endloop 0x69
|
|
|
|
label 0x06
|
|
play_sound 0x0087, CHANNEL_5
|
|
|
|
beginloop 0x64
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 702, /*goto*/ 0x06
|
|
endloop 0x64
|
|
|
|
label 0x06
|
|
play_sound 0x0164, CHANNEL_6
|
|
|
|
beginloop 0x6a
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 718, /*goto*/ 0x06
|
|
endloop 0x6a
|
|
|
|
label 0x06
|
|
play_sound 0x007a, CHANNEL_7
|
|
|
|
beginloop 0x6b
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 722, /*goto*/ 0x06
|
|
endloop 0x6b
|
|
|
|
label 0x06
|
|
play_sound 0x007c, CHANNEL_6
|
|
|
|
beginloop 0x6c
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 764, /*goto*/ 0x06
|
|
endloop 0x6c
|
|
|
|
label 0x06
|
|
play_sound 0x0082, CHANNEL_5
|
|
|
|
beginloop 0x08
|
|
if_camera_animating /*goto*/ 0x2c
|
|
goto_next 0x54
|
|
label 0x2c
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
label 0x2c
|
|
endloop 0x08
|
|
|
|
label 0x54
|
|
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
|
|
animation 0x0166, -2, -1, 0x0600, CHR_JOANNA, 2
|
|
|
|
unset_chr_flag_bank3 CHR_INTRO_VICTIM, CHRFLAG3_UNPLAYABLE
|
|
set_chr_flag_bank2 CHR_INTRO_VICTIM, CHRFLAG2_00020000
|
|
set_chr_flag_bank3 CHR_INTRO_VICTIM, CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_chr_flag_bank3 CHR_INTRO_VICTIM, CHRFLAG3_00010000
|
|
animation 0x0167, -2, -1, 0x0600, CHR_INTRO_VICTIM, 2
|
|
|
|
restart_default_music
|
|
reset_ambience
|
|
enter_firstperson
|
|
animation 0x022a, -1, -1, 0x0600, CHR_INTRO_VICTIM, 2
|
|
chr_drop_weapon CHR_INTRO_VICTIM
|
|
yield
|
|
set_function CHR_CLOAK_1A, FUNC_INIT_CLOAK1_GUARD
|
|
set_function CHR_CLOAK_1B, FUNC_INIT_CLOAK1_GUARD
|
|
yield
|
|
kill CHR_INTRO_VICTIM
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
// Used in both mid and outro cutscenes
|
|
.macro wait_until time loopid
|
|
beginloop \loopid
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt \time, /*goto*/ 0x06
|
|
endloop \loopid
|
|
|
|
label 0x06
|
|
.endm
|
|
|
|
func040e_meeting_cutscene:
|
|
deactivate_alarm
|
|
set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
|
|
set_music_track MUSIC_G5_MIDCUTSCENE
|
|
camera_movement 0x0191
|
|
set_stage_flag STAGEFLAG_MEETING_STARTED
|
|
set_function CHR_BLONDE, GFUNC_IDLE
|
|
set_function CHR_CASS, GFUNC_IDLE
|
|
set_function CHR_TRENT, GFUNC_IDLE
|
|
set_function CHR_STRIPES, GFUNC_IDLE
|
|
|
|
set_chr_flag_bank3 CHR_BLONDE, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_BLONDE, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_BLONDE, CHRFLAG2_00020000
|
|
animation 0x0192, -1, -1, 0x0600, CHR_BLONDE, 4
|
|
|
|
set_chr_flag_bank3 CHR_CASS, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_CASS, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_CASS, CHRFLAG2_00020000
|
|
animation 0x0193, -1, -1, 0x0600, CHR_CASS, 4
|
|
|
|
set_chr_flag_bank3 CHR_TRENT, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_TRENT, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_TRENT, CHRFLAG2_00020000
|
|
animation 0x0194, -1, -1, 0x0600, CHR_TRENT, 4
|
|
|
|
set_chr_flag_bank3 CHR_STRIPES, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_STRIPES, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_STRIPES, CHRFLAG2_00020000
|
|
animation 0x0195, -1, -1, 0x0600, CHR_STRIPES, 4
|
|
restart_timer
|
|
|
|
beginloop 0x55
|
|
if_timer_gt 240, /*goto*/ 0x06
|
|
endloop 0x55
|
|
|
|
label 0x06
|
|
speak CHR_JOANNA, 0x1848, 0x740c, CHANNEL_5, COLOR_04_ORANGE // "We've recovered the sapient from Carrington and al..."
|
|
|
|
wait_until 752, 0x56
|
|
play_sound 0x0161, CHANNEL_6
|
|
|
|
wait_until 760, 0x57
|
|
speak CHR_JOANNA, 0x1849, 0x740d, CHANNEL_7, COLOR_03_RED // "This will reduce its efficiency. My team will have..."
|
|
|
|
wait_until 813, 0x58
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 864, 0x59
|
|
play_sound 0x0163, CHANNEL_5
|
|
|
|
wait_until 1183, 0x5a
|
|
play_sound 0x0164, CHANNEL_6
|
|
|
|
wait_until 1466, 0x5b
|
|
play_sound 0x0161, CHANNEL_6
|
|
|
|
// Someone screwed up the labelling here...
|
|
// 5c was probably supposed to go here.
|
|
yield
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
if_timer_gt 1594, /*goto*/ 0x06
|
|
goto_first 0x5c
|
|
label 0x06
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 1638, 0x5c
|
|
play_sound 0x0593, CHANNEL_6
|
|
|
|
wait_until 1684, 0x5d
|
|
speak CHR_JOANNA, 0x184a, 0x740e, CHANNEL_5, COLOR_04_ORANGE // "No one could have predicted that! And I resent bei..."
|
|
|
|
wait_until 1780, 0x5e
|
|
play_sound_from_object2 CHANNEL_6, 0x3a, 0x01d5, 0x00, 0x00
|
|
|
|
wait_until 2050, 0x60
|
|
play_sound_from_object2 CHANNEL_7, 0x3a, 0x00ec, 0x00, 0x00
|
|
|
|
wait_until 2070, 0x5f
|
|
open_door 0x3a
|
|
play_sound_from_object2 0x0a, 0x3a, 0x81b0, 0x00, 0x00
|
|
|
|
wait_until 2195, 0x61
|
|
play_sound 0x0171, CHANNEL_6
|
|
|
|
wait_until 2227, 0x62
|
|
play_sound 0x0172, CHANNEL_5
|
|
|
|
wait_until 2272, 0x63
|
|
play_sound 0x0173, CHANNEL_7
|
|
|
|
wait_until 2291, 0x64
|
|
play_sound 0x0161, CHANNEL_7
|
|
|
|
wait_until 2316, 0x65
|
|
speak CHR_JOANNA, 0x184b, 0x740f, CHANNEL_7, COLOR_03_RED // "The President turned down your request for the loa..."
|
|
|
|
wait_until 2342, 0x67
|
|
play_sound 0x0162, CHANNEL_6
|
|
close_door 0x3a
|
|
|
|
wait_until 2387, 0x68
|
|
play_sound 0x0163, CHANNEL_5
|
|
|
|
wait_until 2406, 0x69
|
|
play_sound 0x0163, CHANNEL_6
|
|
|
|
wait_until 2521, 0x6a
|
|
play_sound 0x0161, CHANNEL_5
|
|
|
|
wait_until 2547, 0x6b
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 2584, 0x6c
|
|
play_sound 0x0163, CHANNEL_7
|
|
|
|
wait_until 2586, 0x6d
|
|
play_sound 0x0164, CHANNEL_5
|
|
|
|
wait_until 2617, 0x6e
|
|
play_sound 0x0164, CHANNEL_5
|
|
|
|
wait_until 2662, 0x70
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 2668, 0x71
|
|
play_sound 0x0161, CHANNEL_5
|
|
|
|
wait_until 2692, 0x6f
|
|
speak CHR_JOANNA, 0x184c, 0x7410, CHANNEL_7, COLOR_03_RED // "Could it be you overestimated your influence over ..."
|
|
|
|
wait_until 2705, 0x72
|
|
play_sound 0x0161, CHANNEL_6
|
|
|
|
wait_until 2713, 0x73
|
|
play_sound 0x0162, CHANNEL_5
|
|
|
|
wait_until 2796, 0x74
|
|
play_sound 0x0161, CHANNEL_6
|
|
|
|
wait_until 2937, 0x75
|
|
play_sound 0x0164, CHANNEL_6
|
|
|
|
wait_until 2971, 0x76
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 3000, 0x77
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 3046, 0x78
|
|
play_sound 0x0163, CHANNEL_5
|
|
|
|
wait_until 3048, 0x79
|
|
speak CHR_JOANNA, 0x184d, 0x7411, CHANNEL_7, COLOR_05_GREEN // "No! Perhaps I underestimated his resolve. We have ..."
|
|
|
|
wait_until 3186, 0x7a
|
|
play_sound 0x0164, CHANNEL_6
|
|
|
|
wait_until 3378, 0x7b
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 3429, 0x7c
|
|
play_sound 0x0161, CHANNEL_6
|
|
|
|
wait_until 3481, 0x7d
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 3557, 0x7e
|
|
play_sound 0x0164, CHANNEL_6
|
|
|
|
wait_until 3628, 0x7f
|
|
play_sound 0x0163, CHANNEL_6
|
|
|
|
wait_until 3813, 0x80
|
|
play_sound 0x0161, CHANNEL_6
|
|
|
|
wait_until 3916, 0x81
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 4070, 0x82
|
|
speak CHR_JOANNA, 0x184e, 0x7412, CHANNEL_7, COLOR_04_ORANGE // "Ha! Assuming you don't get any interference. If Ca..."
|
|
|
|
wait_until 4312, 0x84
|
|
play_sound 0x0163, CHANNEL_6
|
|
|
|
wait_until 4370, 0x85
|
|
play_sound 0x0164, CHANNEL_5
|
|
|
|
wait_until 4440, 0x86
|
|
play_sound 0x0161, CHANNEL_6
|
|
|
|
wait_until 4510, 0x87
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 4555, 0x88
|
|
play_sound 0x0161, CHANNEL_7
|
|
|
|
wait_until 4560, 0x83
|
|
speak CHR_JOANNA, 0x184f, 0x7413, CHANNEL_5, COLOR_05_GREEN // "There will be no outside help for Mr. Carrington. ..."
|
|
|
|
wait_until 4636, 0x89
|
|
play_sound 0x0163, CHANNEL_7
|
|
|
|
wait_until 5017, 0x8a
|
|
play_sound 0x0164, CHANNEL_7
|
|
|
|
wait_until 5272, 0x8b
|
|
speak CHR_JOANNA, 0x1850, 0x7414, CHANNEL_5, COLOR_03_RED // "Then the devices we gave you are working correctly..."
|
|
|
|
wait_until 5360, 0x8c
|
|
play_sound 0x0163, CHANNEL_6
|
|
|
|
wait_until 5509, 0x8d
|
|
play_sound 0x0164, CHANNEL_6
|
|
|
|
wait_until 5897, 0x8e
|
|
play_sound 0x0161, CHANNEL_6
|
|
|
|
beginloop 0x08
|
|
if_camera_animating /*goto*/ 0x2c
|
|
goto_next 0x54
|
|
label 0x2c
|
|
label 0x2c
|
|
endloop 0x08
|
|
|
|
label 0x54
|
|
label 0x06
|
|
restart_default_music
|
|
reset_ambience
|
|
enter_firstperson
|
|
set_stage_flag STAGEFLAG_MEETING_FINISHED
|
|
mute_channel CHANNEL_10
|
|
mute_channel CHANNEL_7
|
|
mute_channel CHANNEL_6
|
|
mute_channel CHANNEL_5
|
|
unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN
|
|
unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
|
|
restart_timer
|
|
label 0x06
|
|
set_function CHR_CASS, FUNC_WALK_FROM_MEETING
|
|
|
|
beginloop 0x0e
|
|
if_timer_gt 140, /*goto*/ 0x06
|
|
endloop 0x0e
|
|
|
|
label 0x06
|
|
set_function CHR_TRENT, FUNC_WALK_FROM_MEETING
|
|
|
|
beginloop 0x0f
|
|
if_timer_gt 300, /*goto*/ 0x06
|
|
endloop 0x0f
|
|
|
|
label 0x06
|
|
chr_move_to_pad 0x1e, 0x003c, 0x01, /*goto*/ 0x2c // invalid chr?
|
|
label 0x2c
|
|
set_function CHR_BLONDE, FUNC_WALK_FROM_MEETING
|
|
set_function CHR_STRIPES, FUNC_WALK_FROM_MEETING
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func040f_outro_from_menu:
|
|
hide_object OBJ_MINE1
|
|
hide_object OBJ_MINE2
|
|
set_function CHR_SELF, FUNC_OUTRO
|
|
endfunction
|
|
|
|
func040f_outro:
|
|
camera_movement 0x0196
|
|
set_music_track MUSIC_G5_OUTRO
|
|
set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN
|
|
set_function CHR_P1P2, GFUNC_IDLE
|
|
set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_P1P2, CHRFLAG2_00020000
|
|
animation 0x0197, -1, -1, 0x0600, CHR_P1P2, 4
|
|
set_chr_hud_visible CHR_P1P2, TRUE
|
|
restart_timer
|
|
deactivate_alarm
|
|
show_nonessential_chrs FALSE
|
|
set_cutscene_weapon CHR_P1P2, -1, -1
|
|
yield
|
|
set_cutscene_weapon CHR_P1P2, -1, 0x03
|
|
|
|
wait_until 20, 0x55
|
|
play_sound 0x0171, CHANNEL_6
|
|
|
|
wait_until 38, 0x57
|
|
play_sound 0x0173, CHANNEL_7
|
|
|
|
wait_until 69, 0x58
|
|
play_sound 0x0174, CHANNEL_6
|
|
|
|
wait_until 88, 0x5a
|
|
play_sound 0x0172, CHANNEL_6
|
|
|
|
wait_until 103, 0x5b
|
|
play_sound 0x0173, CHANNEL_7
|
|
|
|
wait_until 134, 0x5c
|
|
play_sound 0x0174, CHANNEL_6
|
|
|
|
wait_until 142, 0x5e
|
|
|
|
wait_until 162, 0x60
|
|
play_sound 0x0173, CHANNEL_7
|
|
|
|
wait_until 185, 0x61
|
|
play_sound 0x0174, CHANNEL_6
|
|
|
|
wait_until 204, 0x62
|
|
play_sound 0x0171, CHANNEL_7
|
|
|
|
wait_until 220, 0x63
|
|
play_sound 0x0172, CHANNEL_6
|
|
|
|
wait_until 256, 0x64
|
|
play_sound 0x0173, CHANNEL_7
|
|
|
|
wait_until 262, 0x65
|
|
play_sound 0x0174, CHANNEL_6
|
|
|
|
enable_rain 2
|
|
wait_until 273, 0x68
|
|
play_sound 0x0172, CHANNEL_7
|
|
|
|
wait_until 318, 0x6a
|
|
play_sound 0x0174, CHANNEL_6
|
|
|
|
wait_until 344, 0x6b
|
|
play_sound 0x0171, CHANNEL_7
|
|
|
|
wait_until 362, 0x6c
|
|
play_sound 0x0172, CHANNEL_6
|
|
|
|
wait_until 390, 0x6d
|
|
play_sound 0x0163, CHANNEL_7
|
|
|
|
wait_until 404, 0x6e
|
|
play_sound 0x0161, CHANNEL_6
|
|
|
|
wait_until 420, 0x70
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 468, 0x71
|
|
play_sound 0x0163, CHANNEL_7
|
|
|
|
wait_until 488, 0x72
|
|
play_sound 0x0164, CHANNEL_6
|
|
|
|
wait_until 679, 0x74
|
|
play_sound 0x0161, CHANNEL_6
|
|
|
|
wait_until 728, 0x56
|
|
|
|
wait_until 768, 0x73
|
|
speak CHR_P1P2, 0x1851, 0x7415, CHANNEL_7, COLOR_09_BLUE // "Agent Dark reporting in! Prepare to receive a down..."
|
|
|
|
wait_until 1280, 0x59
|
|
|
|
wait_until 1310, 0x75
|
|
speak CHR_P1P2, 0x1852, 0x7416, CHANNEL_7, COLOR_06_WHITE // "No time for that now, Agent Dark. There's been a d..."
|
|
|
|
wait_until 1780, 0x76
|
|
play_sound 0x0162, CHANNEL_6
|
|
|
|
wait_until 1841, 0x77
|
|
play_sound 0x0163, CHANNEL_6
|
|
|
|
wait_until 1883, 0x78
|
|
play_sound 0x0164, CHANNEL_6
|
|
|
|
wait_until 2600, 0x5d
|
|
|
|
wait_until 2630, 0x79
|
|
speak CHR_P1P2, 0x1853, 0x7417, CHANNEL_7, COLOR_09_BLUE // "Area 51? But what about the President?"
|
|
|
|
beginloop 0x08
|
|
if_camera_animating /*goto*/ 0x2c
|
|
goto_next 0x54
|
|
label 0x2c
|
|
if_controller_button_pressed /*goto*/ 0x54
|
|
label 0x2c
|
|
endloop 0x08
|
|
|
|
label 0x54
|
|
label 0x06
|
|
set_chr_hud_visible CHR_P1P2, FALSE
|
|
end_level
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1018_intro_from_menu:
|
|
set_return_function CHR_SELF, GFUNC_END_CINEMA
|
|
set_function CHR_SELF, FUNC_INTRO
|
|
endfunction
|
|
|
|
func1019_generator_hum:
|
|
yield
|
|
assign_sound 0x8146, CHANNEL_4
|
|
play_sound_from_object CHANNEL_4, OBJ_GENERATOR, 0x0640, 0x0898
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
/**
|
|
* Not entirely sure what this does. It's probably the guards in the laser
|
|
* switch area, and it probably controls which ones will run for the alarm.
|
|
*/
|
|
func101a_init_laser_switch_guards:
|
|
if_difficulty_lt DIFF_SA, /*goto*/ 0x08
|
|
if_difficulty_lt DIFF_PA, /*goto*/ 0x09
|
|
|
|
// Perfect Agent
|
|
set_chr_flag_bankx 0x0c, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0
|
|
set_chr_flag_bankx 0x0d, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0
|
|
set_chr_flag_bankx 0x0e, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0
|
|
goto_next 0x06
|
|
|
|
// Agent
|
|
label 0x08
|
|
set_chr_flag_bankx 0x0e, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0
|
|
set_chr_flag_bankx 0x0e, CHRFLAG0_UNSURPRISABLE, BANK_0
|
|
goto_next 0x06
|
|
|
|
// Special Agent
|
|
label 0x09
|
|
set_chr_flag_bankx 0x0e, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0
|
|
set_chr_flag_bankx 0x0d, CHRFLAG0_CAN_RUN_FOR_ALARM, BANK_0
|
|
|
|
label 0x06
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0412_cloak_guard:
|
|
set_var_a 0
|
|
set_onshot_function FUNC_CLOAK_GUARD
|
|
set_chr_cloaked CHR_SELF, TRUE, FALSE
|
|
if_chr_dying CHR_SELF, /*goto*/ 0x06
|
|
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x06
|
|
if_chr_unloaded CHR_SELF, /*goto*/ 0x06
|
|
goto_next 0x03
|
|
|
|
// Dead
|
|
label 0x06
|
|
goto_next 0x10
|
|
|
|
// Choose target
|
|
label 0x03
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
label 0x06
|
|
restart_timer
|
|
cmd0139 70, 0x02, TRUE
|
|
|
|
// Wait 3 seconds or until stopped
|
|
beginloop 0x55
|
|
if_timer_gt 180, /*goto*/ 0x06
|
|
if_chr_stopped /*goto*/ 0x06
|
|
endloop 0x55
|
|
|
|
// 50% chance of attacking immediately, 50% at 2 seconds
|
|
label 0x06
|
|
stop_chr
|
|
call_rng
|
|
if_rand_gt 128, /*goto*/ 0x06
|
|
restart_timer
|
|
|
|
beginloop 0x0e
|
|
if_timer_gt 120, /*goto*/ 0x06
|
|
endloop 0x0e
|
|
|
|
// Attacking
|
|
label 0x06
|
|
if_var_a_lt 3, /*goto*/ 0x2c
|
|
goto_next 0x06
|
|
|
|
label 0x2c
|
|
if_player_looking_at_something_maybe 0x0f, 0x01, 0x00, /*goto*/ 0x0e
|
|
label 0x06
|
|
if_in_disarm_range /*goto*/ 0x2c
|
|
goto_next 0x0d
|
|
label 0x0e
|
|
add_var_a 1
|
|
label 0x2c
|
|
restart_timer
|
|
set_chr_cloaked CHR_SELF, FALSE, TRUE
|
|
label 0x0a
|
|
label 0x2c
|
|
try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x2c
|
|
label 0x2c
|
|
try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x0b
|
|
|
|
beginloop 0x0b
|
|
if_chr_stopped /*goto*/ 0x0c
|
|
endloop 0x0b
|
|
|
|
label 0x0c
|
|
set_var_a 0
|
|
set_chr_cloaked CHR_SELF, TRUE, TRUE
|
|
label 0x0d
|
|
goto_first 0x03
|
|
|
|
label 0x10
|
|
if_chr_flag_bank2 CHR_SELF, CHRFLAG2_CLOAKED, /*goto*/ 0x2c
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x2c
|
|
set_chr_cloaked CHR_SELF, FALSE, TRUE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0413_cloak1_guard:
|
|
yield
|
|
set_onshot_function FUNC_CLOAK_GUARD
|
|
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
label 0x06
|
|
set_reaction_speed 100
|
|
set_onshot_function FUNC_CLOAK_GUARD
|
|
restart_timer
|
|
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_chr_distance_lt 400, /*goto*/ 0x06
|
|
if_distance_to_target_chr_lt 30, /*goto*/ 0x06
|
|
if_chr_in_view /*goto*/ 0x06
|
|
if_difficulty_lt DIFF_SA, /*goto*/ 0x2c
|
|
if_timer_gt 180, /*goto*/ 0x06
|
|
label 0x2c
|
|
endloop 0x04
|
|
|
|
label 0x06
|
|
unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_self_flag_bank3 CHRFLAG3_00040000
|
|
set_chr_cloaked CHR_SELF, TRUE, TRUE
|
|
set_function CHR_SELF, FUNC_CLOAK_GUARD
|
|
endfunction
|
|
|
|
func0414_init_cloak2_guard:
|
|
stop_chr
|
|
set_onshot_function FUNC_CLOAK_GUARD
|
|
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_chr_dodge_rating 2, 0x0a
|
|
set_accuracy 5
|
|
set_reaction_speed 25
|
|
set_chr_health CHR_SELF, 40
|
|
set_armor 0
|
|
set_recovery_speed 0
|
|
set_shield 0
|
|
unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_self_flag_bank3 CHRFLAG3_00040000
|
|
set_chr_cloaked CHR_SELF, TRUE, TRUE
|
|
set_function CHR_SELF, FUNC_CLOAK_GUARD
|
|
endfunction
|
|
|
|
func101b_cloak2_entry:
|
|
// Wait until in glass area of second cloak room
|
|
beginloop 0x08
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x001a, /*goto*/ 0x06
|
|
endloop 0x08
|
|
|
|
label 0x06
|
|
lock_door 0x34, 0x10
|
|
lock_door 0x35, 0x10
|
|
lock_door 0x36, 0x10
|
|
lock_door 0x37, 0x10
|
|
set_object_flag_bank1 0x34, OBJECTFLAG1_10000000
|
|
set_object_flag_bank1 0x35, OBJECTFLAG1_10000000
|
|
set_object_flag_bank1 0x36, OBJECTFLAG1_08000000
|
|
set_object_flag_bank1 0x37, OBJECTFLAG1_10000000
|
|
close_door 0x34
|
|
close_door 0x35
|
|
close_door 0x36
|
|
close_door 0x37
|
|
if_stage_flag_eq STAGEFLAG_LIGHTS_OFF, TRUE, /*goto*/ 0x2c
|
|
play_sound 0x8147, -1
|
|
restart_timer
|
|
set_lights_state 0x000b, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x000c, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x000d, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x000e, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0010, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x000f, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0011, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0012, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0013, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0014, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0015, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0017, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0018, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0001, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0003, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0004, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0005, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0006, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0007, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0008, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0009, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x000a, 0x03, 0xff, 0x06, 0x78
|
|
|
|
// Wait 2 seconds
|
|
beginloop 0x09
|
|
if_timer_gt 120, /*goto*/ 0x06
|
|
endloop 0x09
|
|
|
|
label 0x06
|
|
set_lights_state 0x000b, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x000c, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x000d, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x000e, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0010, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x000f, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0011, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0012, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0013, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0014, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0015, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0017, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0018, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0001, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0003, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0004, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0005, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0006, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0007, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0008, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0009, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x000a, 0x01, 0x0a, 0x00, 0x00
|
|
goto_next 0x07
|
|
|
|
label 0x2c
|
|
play_sound 0x8148, -1
|
|
set_lights_state 0x000b, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x000c, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x000d, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x000e, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0010, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x000f, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0011, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0012, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0013, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0014, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0015, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0017, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0018, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0001, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0003, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0004, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0005, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0006, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0007, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0008, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0009, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x000a, 0x03, 0x06, 0xff, 0x78
|
|
|
|
// Wait 2 seconds
|
|
restart_timer
|
|
|
|
beginloop 0x0a
|
|
if_timer_gt 120, /*goto*/ 0x06
|
|
endloop 0x0a
|
|
|
|
label 0x06
|
|
set_lights_state 0x000b, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x000c, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x000d, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x000e, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0010, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x000f, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0011, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0012, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0013, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0014, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0015, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0017, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0018, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0001, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0003, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0004, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0005, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0006, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0007, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0008, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0009, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x000a, 0x01, 0xff, 0x00, 0x00
|
|
|
|
label 0x07
|
|
unset_chr_flag_bank3 CHR_CLOAK_2A, CHRFLAG3_HIDDEN
|
|
unset_chr_flag_bank3 CHR_CLOAK_2B, CHRFLAG3_HIDDEN
|
|
unset_chr_flag_bank3 CHR_CLOAK_2C, CHRFLAG3_HIDDEN
|
|
unset_chr_flag_bank3 CHR_CLOAK_2D, CHRFLAG3_HIDDEN
|
|
set_function CHR_CLOAK_2A, FUNC_CLOAK2_GUARD
|
|
set_function CHR_CLOAK_2B, FUNC_CLOAK2_GUARD
|
|
set_function CHR_CLOAK_2C, FUNC_CLOAK2_GUARD
|
|
set_function CHR_CLOAK_2D, FUNC_CLOAK2_GUARD
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0405_cloak2_hide:
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func101c_check_visited_top_door:
|
|
// Wait until decoder attached
|
|
beginloop 0x04
|
|
if_stage_flag_eq STAGEFLAG_DECODER_ATTACHED, TRUE, /*goto*/ 0x08
|
|
endloop 0x04
|
|
|
|
// Wait until player gone near top fire escape door
|
|
beginloop 0x08
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_distance_to_pad_lt CHR_P1P2, 400, 0x0058, /*goto*/ 0x06
|
|
endloop 0x08
|
|
|
|
label 0x06
|
|
set_stage_flag STAGEFLAG_VISITED_TOP_DOOR
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func101d_init_mines:
|
|
yield
|
|
set_object_flag_bank1 OBJ_MINE1, OBJECTFLAG1_00020000
|
|
set_object_flag_bank1 OBJ_MINE2, OBJECTFLAG1_00020000
|
|
set_object_flag_bank1 OBJ_MINE1, OBJECTFLAG1_INVISIBLE
|
|
set_object_flag_bank1 OBJ_MINE2, OBJECTFLAG1_INVISIBLE
|
|
unset_object_flag_bank0 OBJ_MINE1, OBJECTFLAG0_00000100
|
|
unset_object_flag_bank0 OBJ_MINE2, OBJECTFLAG0_00000100
|
|
set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY
|
|
|
|
label 0x06
|
|
if_eeprom_flag_is_unset EEPROMFLAG_G5_MINE, /*goto*/ 0x06
|
|
|
|
hide_object OBJ_MINE1
|
|
dprint "EPROMFLAG NOTSET"
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x06
|
|
dprint "EPROMFLAG SET"
|
|
hide_object OBJ_MINE2
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
.macro init_guard accuracy reaction function
|
|
set_chr_dodge_rating 2, 0x0a
|
|
set_accuracy \accuracy
|
|
set_reaction_speed \reaction
|
|
set_chr_health CHR_SELF, 40
|
|
set_armor 0
|
|
set_recovery_speed 0
|
|
set_shield 0
|
|
set_function CHR_SELF, \function
|
|
.endm
|
|
|
|
func0406_init_type1_guard:
|
|
init_guard 5, 30, GFUNC_UNALERTED
|
|
endfunction
|
|
|
|
// Never assigned
|
|
func0407_init_type2_guard:
|
|
init_guard 15, 25, GFUNC_UNALERTED
|
|
endfunction
|
|
|
|
func0408_init_cloak1_guard:
|
|
init_guard 5, 25, 0x0413
|
|
endfunction
|
|
|
|
func101e_msg_nowaythrough:
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_stage_flag_eq STAGEFLAG_LASERSET1_DISABLED, FALSE, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET2_DISABLED, FALSE, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET3_DISABLED, FALSE, /*goto*/ 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET4_DISABLED, FALSE, /*goto*/ 0x2c
|
|
reloop 0x04
|
|
|
|
label 0x2c
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x002f, /*goto*/ 0x2c
|
|
endloop 0x04
|
|
|
|
label 0x2c
|
|
speak CHR_P1P2, 0x183c, 0x73b4, CHANNEL_6, COLOR_09_BLUE // "There's no way through while those lasers are acti..."
|
|
label 0x0d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func101f_msg_meetingroomahead:
|
|
restart_timer
|
|
|
|
beginloop 0x04
|
|
if_stage_flag_eq STAGEFLAG_MEETING_HOLOGRAPHED, TRUE, /*goto*/ 0x0d
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2c
|
|
reloop 0x04
|
|
|
|
label 0x2c
|
|
if_chr_y CHR_P1P2, 300, OPERATOR_LESS_THAN, /*goto*/ 0x06
|
|
goto_next 0x2c
|
|
label 0x06
|
|
endloop 0x04
|
|
|
|
label 0x2c
|
|
speak CHR_P1P2, 0x183d, 0x73b5, CHANNEL_6, COLOR_09_BLUE // "That must be the meeting room up ahead. Time to us..."
|
|
|
|
label 0x0d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1020_msg_heavilyencrypted:
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0050, /*goto*/ 0x2c
|
|
endloop 0x04
|
|
|
|
label 0x2c
|
|
speak CHR_P1P2, 0x183e, 0x817c, CHANNEL_6, COLOR_09_BLUE // "The safe's heavily encrypted. The decoder's gonna ..."
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1021_blow_mines:
|
|
// Wait for backup collected
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_stage_flag_eq STAGEFLAG_BACKUP_COLLECTED, TRUE, /*goto*/ 0x2c
|
|
endloop 0x04
|
|
|
|
// Wait 2 seconds
|
|
label 0x2c
|
|
restart_timer
|
|
|
|
beginloop 0x08
|
|
if_timer_gt 120, /*goto*/ 0x2c
|
|
endloop 0x08
|
|
|
|
label 0x2c
|
|
if_difficulty_lt DIFF_SA, /*goto*/ 0x2c
|
|
speak CHR_P1P2, 0x183f, 0x73b7, CHANNEL_6, COLOR_09_BLUE // "Time to leave! Let's get to the door I set up earl..."
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
// Agent
|
|
label 0x2c
|
|
if_object_in_good_condition OBJ_ESCAPEDOOR1, /*goto*/ 0x2c
|
|
goto_next 0x0d
|
|
|
|
label 0x2c
|
|
if_object_in_good_condition OBJ_ESCAPEDOOR2, /*goto*/ 0x2c
|
|
goto_next 0x0d
|
|
|
|
label 0x2c
|
|
speak CHR_P1P2, 0x1841, 0x81a2, CHANNEL_6, COLOR_09_BLUE // "Stand back, Joanna. We'll create your escape route..."
|
|
restart_timer
|
|
|
|
beginloop 0x09
|
|
if_timer_gt 120, /*goto*/ 0x2c
|
|
endloop 0x09
|
|
|
|
label 0x2c
|
|
destroy_object OBJ_MINE1
|
|
destroy_object OBJ_MINE2
|
|
restart_timer
|
|
|
|
beginloop 0x0a
|
|
if_timer_gt 240, /*goto*/ 0x2c
|
|
endloop 0x0a
|
|
|
|
label 0x2c
|
|
label 0x0d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1022_light_switch:
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_activated_object CHR_P1P2, OBJ_LIGHTSWITCH, /*goto*/ 0x2c
|
|
reloop 0x04
|
|
|
|
label 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LIGHTS_OFF, TRUE, /*goto*/ 0x2c
|
|
|
|
// Turning lights off
|
|
set_stage_flag STAGEFLAG_LIGHTS_OFF
|
|
assign_sound 0x043f, CHANNEL_7
|
|
play_sound_from_entity CHANNEL_7, OBJ_LIGHTSWITCH, 0x012c, 0x0190, 0x00
|
|
yield
|
|
set_object_image OBJ_LIGHTSWITCH, 0x00, 0x14
|
|
play_sound 0x8147, -1
|
|
set_lights_state 0x000b, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x000c, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x000d, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x000e, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0010, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x000f, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0011, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0012, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0013, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0014, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0015, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0017, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0018, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0001, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0003, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0004, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0005, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0006, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0007, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0008, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x0009, 0x03, 0xff, 0x06, 0x78
|
|
set_lights_state 0x000a, 0x03, 0xff, 0x06, 0x78
|
|
|
|
restart_timer
|
|
|
|
beginloop 0x09
|
|
if_timer_gt 120, /*goto*/ 0x06
|
|
endloop 0x09
|
|
|
|
label 0x06
|
|
set_lights_state 0x000b, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x000c, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x000d, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x000e, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0010, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x000f, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0011, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0012, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0013, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0014, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0015, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0017, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0018, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0001, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0003, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0004, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0005, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0006, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0007, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0008, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x0009, 0x01, 0x0a, 0x00, 0x00
|
|
set_lights_state 0x000a, 0x01, 0x0a, 0x00, 0x00
|
|
goto_first 0x04
|
|
|
|
// Turning lights on
|
|
label 0x2c
|
|
unset_stage_flag STAGEFLAG_LIGHTS_OFF
|
|
assign_sound 0x043f, CHANNEL_7
|
|
play_sound_from_entity CHANNEL_7, OBJ_LIGHTSWITCH, 0x012c, 0x0190, 0x00
|
|
yield
|
|
play_sound 0x8148, -1
|
|
set_object_image 0x3d, 0x00, 0x06
|
|
set_lights_state 0x000b, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x000c, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x000d, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x000e, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0010, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x000f, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0011, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0012, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0013, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0014, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0015, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0017, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0018, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0001, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0003, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0004, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0005, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0006, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0007, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0008, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0009, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x000a, 0x03, 0x06, 0xff, 0x78
|
|
|
|
restart_timer
|
|
|
|
beginloop 0x0a
|
|
if_timer_gt 120, /*goto*/ 0x06
|
|
endloop 0x0a
|
|
|
|
label 0x06
|
|
set_lights_state 0x000b, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x000c, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x000d, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x000e, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0010, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x000f, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0011, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0012, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0013, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0014, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0015, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0017, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0018, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0001, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0003, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0004, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0005, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0006, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0007, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0008, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x0009, 0x01, 0xff, 0x00, 0x00
|
|
set_lights_state 0x000a, 0x01, 0xff, 0x00, 0x00
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func1023_hide_nbomb_crate:
|
|
if_eeprom_flag_is_unset EEPROMFLAG_G5_MINE, /*goto*/ 0x06
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x06
|
|
hide_object OBJ_NBOMB_CRATE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
/**
|
|
* Opens the laser doors in response to the stageflags changing.
|
|
*/
|
|
unregistered_function:
|
|
beginloop 0x04
|
|
if_stage_flag_eq STAGEFLAG_LASERSET1_DISABLED, FALSE, /*goto*/ 0x2c
|
|
if_door_state OBJ_LASER_1A, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
open_door OBJ_LASER_1A
|
|
open_door OBJ_LASER_1B
|
|
open_door OBJ_LASER_1C
|
|
open_door OBJ_LASER_1D
|
|
label 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET2_DISABLED, FALSE, /*goto*/ 0x2c
|
|
if_door_state OBJ_LASER_2A, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
open_door OBJ_LASER_2A
|
|
open_door OBJ_LASER_2B
|
|
open_door OBJ_LASER_2C
|
|
open_door OBJ_LASER_2D
|
|
label 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET3_DISABLED, FALSE, /*goto*/ 0x2c
|
|
if_door_state OBJ_LASER_3A, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
open_door OBJ_LASER_3A
|
|
open_door OBJ_LASER_3B
|
|
open_door OBJ_LASER_3C
|
|
open_door OBJ_LASER_3D
|
|
label 0x2c
|
|
if_stage_flag_eq STAGEFLAG_LASERSET4_DISABLED, FALSE, /*goto*/ 0x2c
|
|
if_door_state OBJ_LASER_4A, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
open_door OBJ_LASER_4A
|
|
open_door OBJ_LASER_4B
|
|
open_door OBJ_LASER_4C
|
|
open_door OBJ_LASER_4D
|
|
label 0x2c
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
/**
|
|
* I'm guessing co op buddies etc would get stuck in locked rooms after the
|
|
* player has passed through them. So this just unlocks the doors once they've
|
|
* been opened for the first time.
|
|
*/
|
|
func1026_unlock_doors:
|
|
// If Velvet and counter op don't exist, return
|
|
yield
|
|
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2c
|
|
goto_next 0x04
|
|
label 0x2c
|
|
if_chr_death_animation_finished CHR_COUNTEROP, /*goto*/ 0x0a
|
|
|
|
// Wait until some door is not closed (so... opening, I guess?)
|
|
beginloop 0x04
|
|
if_door_state 0x43, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
if_door_state 0x44, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
if_door_state 0x45, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
if_door_state 0x46, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
endloop 0x04
|
|
|
|
// Unlock those doors
|
|
label 0x2c
|
|
unlock_door 0x43, 0x04
|
|
unlock_door 0x44, 0x04
|
|
unlock_door 0x45, 0x04
|
|
unlock_door 0x46, 0x04
|
|
|
|
// New set of doors - wait until not closed
|
|
beginloop 0x08
|
|
if_door_state 0x34, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
if_door_state 0x35, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
if_door_state 0x36, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
if_door_state 0x37, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
endloop 0x08
|
|
|
|
// Unlock them
|
|
label 0x2c
|
|
unlock_door 0x34, 0x04
|
|
unlock_door 0x35, 0x04
|
|
unlock_door 0x36, 0x04
|
|
unlock_door 0x37, 0x04
|
|
|
|
// Third set of doors
|
|
beginloop 0x09
|
|
if_door_state 0x3f, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
if_door_state 0x40, DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
endloop 0x09
|
|
|
|
label 0x2c
|
|
unlock_door 0x3f, 0x10
|
|
unlock_door 0x40, 0x10
|
|
|
|
label 0x0a
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0410_invincible:
|
|
label 0x04
|
|
yield
|
|
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0411_hide:
|
|
label 0x04
|
|
yield
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1027_cloak1_check_one_remaining:
|
|
// Wait until either cloak guard dying (in first room)
|
|
beginloop 0x04
|
|
if_chr_dying CHR_CLOAK_1A, /*goto*/ 0x2c
|
|
if_chr_death_animation_finished CHR_CLOAK_1A, /*goto*/ 0x2c
|
|
if_chr_unloaded CHR_CLOAK_1A, /*goto*/ 0x2c
|
|
if_chr_dying CHR_CLOAK_1B, /*goto*/ 0x2c
|
|
if_chr_death_animation_finished CHR_CLOAK_1B, /*goto*/ 0x2c
|
|
if_chr_unloaded CHR_CLOAK_1B, /*goto*/ 0x2c
|
|
endloop 0x04
|
|
|
|
label 0x2c
|
|
set_stage_flag STAGEFLAG_CLOAK1_ONE_REMAINING
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1028_cloak2_check_one_remaining:
|
|
// Count number of dead cloak guards in second room
|
|
beginloop 0x04
|
|
set_var_a 0
|
|
if_chr_dying CHR_CLOAK_2A, /*goto*/ 0x2c
|
|
if_chr_death_animation_finished CHR_CLOAK_2A, /*goto*/ 0x2c
|
|
if_chr_unloaded CHR_CLOAK_2A, /*goto*/ 0x2c
|
|
goto_next 0x06
|
|
|
|
label 0x2c
|
|
add_var_a 1
|
|
label 0x06
|
|
if_chr_dying CHR_CLOAK_2B, /*goto*/ 0x2c
|
|
if_chr_death_animation_finished CHR_CLOAK_2B, /*goto*/ 0x2c
|
|
if_chr_unloaded CHR_CLOAK_2B, /*goto*/ 0x2c
|
|
goto_next 0x06
|
|
|
|
label 0x2c
|
|
add_var_a 1
|
|
label 0x06
|
|
if_chr_dying CHR_CLOAK_2C, /*goto*/ 0x2c
|
|
if_chr_death_animation_finished CHR_CLOAK_2C, /*goto*/ 0x2c
|
|
if_chr_unloaded CHR_CLOAK_2C, /*goto*/ 0x2c
|
|
goto_next 0x06
|
|
|
|
label 0x2c
|
|
add_var_a 1
|
|
label 0x06
|
|
if_chr_dying CHR_CLOAK_2D, /*goto*/ 0x2c
|
|
if_chr_death_animation_finished CHR_CLOAK_2D, /*goto*/ 0x2c
|
|
if_chr_unloaded CHR_CLOAK_2D, /*goto*/ 0x2c
|
|
goto_next 0x06
|
|
|
|
label 0x2c
|
|
add_var_a 1
|
|
label 0x06
|
|
if_var_a_lt 3, /*goto*/ 0x2c
|
|
set_stage_flag STAGEFLAG_CLOAK2_ONE_REMAINING
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
label 0x2c
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func1029_set_secret_weapon_props:
|
|
yield
|
|
set_object_flag_bank2 OBJ_NBOMB_CRATE, OBJECTFLAG2_RTRACKED_BLUE
|
|
set_object_flag_bank2 OBJ_CROSSBOW, OBJECTFLAG2_RTRACKED_BLUE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func102a_8174:
|
|
// Wait until some door opening
|
|
beginloop 0x08
|
|
if_door_state 0x3f, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
endloop 0x08
|
|
|
|
label 0x2c
|
|
set_chr_flag_bank2 0x07, CHRFLAG2_08000000
|
|
set_chr_flag_bank2 0x0c, CHRFLAG2_08000000
|
|
set_chr_flag_bank2 0x0d, CHRFLAG2_08000000
|
|
set_chr_flag_bank2 0x0e, CHRFLAG2_08000000
|
|
set_chr_flag_bank2 0x0f, CHRFLAG2_08000000
|
|
set_chr_flag_bank2 0x10, CHRFLAG2_08000000
|
|
set_chr_flag_bank2 0x11, CHRFLAG2_08000000
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func102b_81bc:
|
|
// Wait until some door opening
|
|
beginloop 0x08
|
|
if_door_state 0x3f, DOORSTATE_OPEN | DOORSTATE_OPENING, /*goto*/ 0x2c
|
|
endloop 0x08
|
|
|
|
label 0x2c
|
|
set_chr_alliance 0x08, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x09, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x0a, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x0b, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x07, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x0c, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x0d, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x0e, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x0f, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x10, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x11, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x12, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x13, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x14, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x15, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x16, ALLIANCE_ENEMY
|
|
set_chr_alliance 0x17, ALLIANCE_ENEMY
|
|
cmd0145_rebuild_groups
|
|
cmd0146_rebuild_groups
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
/**
|
|
* I suspect Rare screwed up here. I think the lightswitch guard starts off as
|
|
* an ally so that he won't respond to Jo making noise in the first cloak room.
|
|
* Then when he becomes alerted to you (such as you shooting near him) he'd
|
|
* become an enemy.
|
|
*
|
|
* However, it's checking if the alertness is less than, so this condition
|
|
* passes immediately and he becomes an enemy. This could be why he's sometimes
|
|
* left his pad by the time you leave the first room.
|
|
*/
|
|
func102c_set_lightswitch_guard_alliance:
|
|
beginloop 0x08
|
|
if_chr_alertness_lt 99, CHR_LIGHTSWITCH_GUARD, /*goto*/ 0x06
|
|
endloop 0x08
|
|
|
|
label 0x06
|
|
set_chr_alliance CHR_LIGHTSWITCH_GUARD, ALLIANCE_ENEMY
|
|
cmd0145_rebuild_groups
|
|
cmd0146_rebuild_groups
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
functions:
|
|
register_function func0401_init_swat1 0x0401
|
|
register_function func0402_init_swat2 0x0402
|
|
register_function func0403_walk_from_meeting 0x0403
|
|
register_function func0404_run_from_meeting 0x0404
|
|
register_function func0405_cloak2_hide 0x0405
|
|
register_function func0406_init_type1_guard 0x0406
|
|
register_function func0407_init_type2_guard 0x0407
|
|
register_function func0408_init_cloak1_guard 0x0408
|
|
register_function func0409_start_path00 0x0409
|
|
register_function func040a_start_path01 0x040a
|
|
register_function func040b_start_path02 0x040b
|
|
register_function func040c_start_path03 0x040c
|
|
|
|
register_function func1400_setup_counterop 0x1400
|
|
|
|
register_function func1001_objectives_failed_msg 0x1001
|
|
register_function func1002_set_ai 0x1002
|
|
register_function func1003_laser_switch_1 0x1003
|
|
register_function func1004_laser_switch_2 0x1004
|
|
register_function func1005_laser_switch_3 0x1005
|
|
register_function func1006_laser_switch_4 0x1006
|
|
register_function func1007_init_lasers 0x1007
|
|
register_function func1008_check_generator 0x1008
|
|
register_function func1009_spawner_during_decode 0x1009
|
|
register_function func100a_give_keycards 0x100a
|
|
register_function func100b_check_backup_collected 0x100b
|
|
register_function func100c_check_for_meeting_trigger 0x100c
|
|
register_function func100e_check_conspirators_alerted 0x100e
|
|
register_function func100f_alarm_switches 0x100f
|
|
register_function func1010_safe_cracking 0x1010
|
|
register_function func1012_check_for_end 0x1012
|
|
register_function func1013_check_escape_doors 0x1013
|
|
register_function func1014_check_camspy_location 0x1014
|
|
register_function func1017_check_lasers_closed 0x1017
|
|
register_function func1018_intro_from_menu 0x1018
|
|
register_function func1019_generator_hum 0x1019
|
|
register_function func101a_init_laser_switch_guards 0x101a
|
|
register_function func101b_cloak2_entry 0x101b
|
|
register_function func101c_check_visited_top_door 0x101c
|
|
register_function func101d_init_mines 0x101d
|
|
register_function func101e_msg_nowaythrough 0x101e
|
|
register_function func101f_msg_meetingroomahead 0x101f
|
|
register_function func1020_msg_heavilyencrypted 0x1020
|
|
register_function func1021_blow_mines 0x1021
|
|
register_function func1022_light_switch 0x1022
|
|
register_function func1023_hide_nbomb_crate 0x1023
|
|
register_function func1026_unlock_doors 0x1026
|
|
register_function func1027_cloak1_check_one_remaining 0x1027
|
|
register_function func1028_cloak2_check_one_remaining 0x1028
|
|
register_function func1029_set_secret_weapon_props 0x1029
|
|
register_function func102a_8174 0x102a
|
|
register_function func102b_81bc 0x102b
|
|
register_function func102c_set_lightswitch_guard_alliance 0x102c
|
|
|
|
register_function func040d_intro 0x040d
|
|
register_function func040e_meeting_cutscene 0x040e
|
|
register_function func040f_outro 0x040f
|
|
register_function func0410_invincible 0x0410
|
|
register_function func0411_hide 0x0411
|
|
register_function func0412_cloak_guard 0x0412
|
|
register_function func0413_cloak1_guard 0x0413
|
|
register_function func0414_init_cloak2_guard 0x0414
|
|
|
|
register_function func1018_intro_from_menu 0x0c00
|
|
register_function func040e_meeting_cutscene 0x0c01
|
|
register_function func040f_outro_from_menu 0x0c02
|
|
endfunctions
|
|
|
|
paths:
|
|
register_path path00, 0, 1
|
|
register_path path01, 1, 1
|
|
register_path path02, 2, 1
|
|
register_path path03, 3, 1
|
|
endpaths
|
|
|
|
.align 4
|