mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-06-17 14:56:36 -04:00
3428 lines
159 KiB
C
3428 lines
159 KiB
C
//
|
|
// Investigation
|
|
//
|
|
|
|
#include "stagesetup.h"
|
|
|
|
// Characters
|
|
#define CHR_DRCAROLL 0x39
|
|
#define CHR_INTRO_GUARD 0x3a
|
|
#define CHR_K7_GUARD 0x3b
|
|
|
|
// Objects
|
|
#define OBJ_CACHETERMINAL 0x01
|
|
#define OBJ_BOT_ACTIVATION_TERMINAL 0x02
|
|
#define OBJ_BOT_PROGRAMMING_TERMINAL 0x03
|
|
#define OBJ_K7AVENGER 0x04
|
|
#define OBJ_NIGHTVISION 0x05
|
|
#define OBJ_SHIELD 0x06
|
|
#define OBJ_GOODTERM1 0x07
|
|
#define OBJ_GOODTERM2 0x08
|
|
#define OBJ_GOODTERM3 0x09
|
|
#define OBJ_UPLINKPC 0x0a
|
|
#define OBJ_ALARMTERM1 0x0f
|
|
#define OBJ_ALARMTERM2 0x14
|
|
#define OBJ_ALARMTERM3 0x19
|
|
#define OBJ_UPLINKDOOR 0x22
|
|
#define OBJ_DATAUPLINK_BOND 0x25
|
|
#define OBJ_YELLOWBOT 0x37 // opens the secret door
|
|
#define OBJ_PURPLEBOT 0x38 // lasers
|
|
#define OBJ_HATCHPC 0x3a
|
|
#define OBJ_DATAUPLINK_COOP 0x48
|
|
#define OBJ_CACHEDOOR1 0x55
|
|
#define OBJ_CACHEDOOR2 0x56
|
|
#define OBJ_CMP150_1 0x57
|
|
#define OBJ_CMP150_2 0x58
|
|
#define OBJ_PROXYMINES 0x59
|
|
|
|
// Stage flags
|
|
#define STAGEFLAG_DRCAROLL_LOCATED 0x00000001
|
|
#define STAGEFLAG_UPLINK_SEARCHING 0x00000002
|
|
#define STAGEFLAG_00000004 0x00000004
|
|
#define STAGEFLAG_00000008 0x00000008
|
|
#define STAGEFLAG_TRIGGER_OUTRO_AUDIO 0x00000010
|
|
#define STAGEFLAG_HAS_K7AVENGER 0x00000020
|
|
#define STAGEFLAG_HAS_NIGHTVISION 0x00000040
|
|
#define STAGEFLAG_HAS_SHIELD 0x00000080
|
|
#define STAGEFLAG_ITEMS_UNCOLLECTABLE 0x00000100
|
|
#define STAGEFLAG_BOT_ACTIVE 0x00000200
|
|
#define STAGEFLAG_BOT_REPROGRAMMED 0x00000400
|
|
#define STAGEFLAG_ALL_ITEMS_COLLECTED 0x00000800
|
|
#define STAGEFLAG_UNACCEPTABLE_CASUALTIES 0x00001000
|
|
#define STAGEFLAG_CAMSPY_DESTROYED 0x00002000
|
|
#define STAGEFLAG_SHUT_DOWN_EXPERIMENT1 0x00004000
|
|
#define STAGEFLAG_SHUT_DOWN_EXPERIMENT2 0x00008000
|
|
#define STAGEFLAG_SHUT_DOWN_EXPERIMENT3 0x00010000
|
|
#define STAGEFLAG_UPLINK_FINISHED 0x00020000
|
|
#define STAGEFLAG_BOT_ACTIVE_MAINTENANCE 0x00040000
|
|
#define STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED 0x00080000
|
|
#define STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED 0x00100000
|
|
#define STAGEFLAG_ONE_SCIENTIST_DONE 0x00200000
|
|
#define STAGEFLAG_TWO_SCIENTISTS_DONE 0x00400000
|
|
#define STAGEFLAG_THREE_SCIENTISTS_DONE 0x00800000
|
|
#define STAGEFLAG_ALARM1_ACTIVE 0x01000000
|
|
#define STAGEFLAG_ALARM2_ACTIVE 0x02000000
|
|
#define STAGEFLAG_ALARM3_ACTIVE 0x04000000
|
|
#define STAGEFLAG_ALARM_RESPONDERS_SPAWNED 0x08000000
|
|
#define STAGEFLAG_UPLINKPC_DESTROYED 0x10000000
|
|
#define STAGEFLAG_BOT_ACTIVE_CLEANING 0x20000000
|
|
#define STAGEFLAG_BOT_ACTIVE_NOPROGRAM 0x40000000
|
|
#define STAGEFLAG_GOODTERM_DESTROYED 0x80000000
|
|
|
|
// AI Lists
|
|
#define AILIST_K7_GUARD 0x0402
|
|
#define AILIST_K7_SCIENTIST 0x0403
|
|
#define AILIST_SCIENTIST 0x0404
|
|
#define AILIST_INIT_SCIENTIST 0x0405
|
|
#define AILIST_NASTY_SCIENTIST 0x0406
|
|
#define AILIST_INIT_NASTY_SCIENTIST 0x0407
|
|
#define AILIST_ALARM_RESPONDER 0x0408
|
|
#define AILIST_UPLINK_RESPONDER 0x0409
|
|
#define AILIST_INIT_BASIC_GUARD 0x040a
|
|
#define AILIST_INIT_SHOCK_GUARD 0x040b
|
|
#define AILIST_PATH00 0x040c
|
|
#define AILIST_PATH01 0x040d // unused
|
|
#define AILIST_PATH02 0x040e
|
|
#define AILIST_PATH03 0x040f
|
|
#define AILIST_PATH04 0x0410 // unused
|
|
#define AILIST_PURPLEBOT_AT_LASERS 0x0413
|
|
#define AILIST_RADIOACTIVITY 0x0415
|
|
#define AILIST_OUTRO 0x0417
|
|
|
|
s32 intro[];
|
|
u32 props[];
|
|
struct path paths[];
|
|
struct ailist ailists[];
|
|
|
|
struct stagesetup setup = {
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
intro,
|
|
props,
|
|
paths,
|
|
ailists,
|
|
NULL,
|
|
};
|
|
|
|
u32 props[] = {
|
|
briefing(BRIEFINGTYPE_LOCATION, L_EAR_001)
|
|
briefing(BRIEFINGTYPE_TEXT_PA, L_EAR_000)
|
|
briefing(BRIEFINGTYPE_TEXT_SA, L_EAR_002)
|
|
briefing(BRIEFINGTYPE_TEXT_A, L_EAR_003)
|
|
|
|
beginobjective(0, L_EAR_013, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Holograph radioactive isotope"
|
|
require_object_holographed(0x39)
|
|
fail_flags(STAGEFLAG_CAMSPY_DESTROYED)
|
|
endobjective
|
|
|
|
beginobjective(1, L_EAR_011, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Start security maintenance cycle"
|
|
complete_flags(STAGEFLAG_BOT_ACTIVE_MAINTENANCE)
|
|
fail_flags(STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED)
|
|
fail_flags(STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED)
|
|
endobjective
|
|
|
|
beginobjective(2, L_EAR_010, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Shut down experiments"
|
|
complete_flags(STAGEFLAG_SHUT_DOWN_EXPERIMENT1)
|
|
complete_flags(STAGEFLAG_SHUT_DOWN_EXPERIMENT2)
|
|
complete_flags(STAGEFLAG_SHUT_DOWN_EXPERIMENT3)
|
|
fail_flags(STAGEFLAG_GOODTERM_DESTROYED)
|
|
fail_flags(STAGEFLAG_UNACCEPTABLE_CASUALTIES)
|
|
fail_flags(STAGEFLAG_00000008)
|
|
endobjective
|
|
|
|
beginobjective(3, L_EAR_012, (DIFFBIT_PA | DIFFBIT_PD)) // "Obtain experimental technologies"
|
|
complete_flags(STAGEFLAG_ALL_ITEMS_COLLECTED)
|
|
require_object_collected(OBJ_K7AVENGER)
|
|
require_object_collected(OBJ_NIGHTVISION)
|
|
require_object_collected(OBJ_SHIELD)
|
|
endobjective
|
|
|
|
beginobjective(4, L_EAR_009, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Locate Dr. Caroll"
|
|
complete_flags(STAGEFLAG_DRCAROLL_LOCATED)
|
|
fail_flags(STAGEFLAG_UPLINKPC_DESTROYED)
|
|
endobjective
|
|
|
|
tag(0x60, 1)
|
|
lift(0x0100, MODEL_LIFT_PLATFORM, PAD_EAR_025B, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x025b, 0x025c, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000b6, 0x0010aaaa, 0x15000000)
|
|
door(0x0100, MODEL_DD_ACCESSDOORUP, PAD_EAR_019B, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100)
|
|
door(0x0100, MODEL_DD_ACCESSDOORDN, PAD_EAR_019C, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_ACCESSDOORUP, PAD_EAR_019D, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100)
|
|
door(0x0100, MODEL_DD_ACCESSDOORDN, PAD_EAR_019E, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_ACCESSDOORUP, PAD_EAR_019F, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100)
|
|
door(0x0100, MODEL_DD_ACCESSDOORDN, PAD_EAR_01A0, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_LABDOOR, PAD_EAR_015A, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
door(0x0100, MODEL_DD_LABDOOR, PAD_EAR_015B, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
door(0x0100, MODEL_DD_LABDOOR, PAD_EAR_015C, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
tag(0x27, 1)
|
|
door(0x0100, MODEL_DD_LAB_DOOR_SEC, PAD_EAR_015D, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
tag(0x24, 2)
|
|
tag(0x40, 2)
|
|
door(0x0100, MODEL_DOOR4A_G5, PAD_EAR_0169, OBJFLAG_ILLUMINATED, 0, OBJFLAG3_AUTOCUTSCENESOUNDS, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000708, 0x00000000, 0x00000001, 0x00001200)
|
|
door(0x0100, MODEL_DOOR4B_G5, PAD_EAR_0168, OBJFLAG_ILLUMINATED, 0, OBJFLAG3_AUTOCUTSCENESOUNDS, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000708, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_DOOR_WIND, PAD_EAR_015E, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00c80384, 0x00000000, 0x00000100)
|
|
tag(0x5b, 1)
|
|
door(0x0100, MODEL_DD_LABDOOR, PAD_EAR_015F, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDBACK, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
door(0x0100, MODEL_DD_LABDOOR, PAD_EAR_016D, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
tag(0x5d, 1)
|
|
door(0x0100, MODEL_DD_LABDOOR, PAD_EAR_016E, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
door(0x0100, MODEL_DD_LABDOOR, PAD_EAR_016F, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
tag(0x5c, 1)
|
|
door(0x0100, MODEL_DD_LABDOOR, PAD_EAR_0170, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
tag(0x5e, 2)
|
|
tag(0x5f, 2)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_0175, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_DOORTOP, PAD_EAR_0176, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_0178, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_DOORTOP, PAD_EAR_0177, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xfffffffd, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_0179, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_DOORTOP, PAD_EAR_017A, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_017C, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_DOORTOP, PAD_EAR_017B, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xfffffffd, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_0171, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2TOP, PAD_EAR_0172, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_0162, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_CAUTIONTOP, PAD_EAR_0163, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_0164, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_CAUTIONTOP, PAD_EAR_0165, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
|
|
tag(0x47, 1)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_0166, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x000005dc, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_CAUTIONTOP, PAD_EAR_0167, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x000005dc, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_0173, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2TOP, PAD_EAR_0174, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_017F, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_DOORTOP, PAD_EAR_0180, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_0181, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR3TOP, PAD_EAR_0182, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
|
|
tag(0x45, 1)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_0183, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000258, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_DOORTOP, PAD_EAR_0184, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x00000258, 0x00000000, 0xffffffff, 0x00000000)
|
|
tag(0x44, 1)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR3, PAD_EAR_017D, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, DOORFLAG_4000, DOORTYPE_VERTICAL, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000100)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR3, PAD_EAR_017E, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, DOORFLAG_4000, DOORTYPE_VERTICAL, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000100)
|
|
door(0x0100, MODEL_DD_LABDOOR, PAD_EAR_0185, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
door(0x0100, MODEL_DD_LABDOOR, PAD_EAR_0186, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
tag(0x22, 1)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR3WIND, PAD_EAR_0187, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_VERTICAL, 0x00000002, 0x0000012c, 0x00c80384, 0x00000000, 0x00000100)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR3WIND, PAD_EAR_0188, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, DOORFLAG_WINDOWED, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00c80384, 0x00000000, 0x00000100)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_0189, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_RESTRICTED, PAD_EAR_018A, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
|
|
tag(0x5a, 1)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_018B, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, OBJFLAG3_AUTOCUTSCENESOUNDS, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000040, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_RESTRICTED, PAD_EAR_018C, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, OBJFLAG3_AUTOCUTSCENESOUNDS, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000040, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
|
|
tag(0x26, -1)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_018D, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_RESTRICTED, PAD_EAR_018E, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR2BOT, PAD_EAR_018F, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000500)
|
|
door(0x0100, MODEL_DD_LAB_SECTOR4TOP, PAD_EAR_0190, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
|
|
tag(0x23, 1)
|
|
door(0x0100, MODEL_DR_CAROLL_DOOR, PAD_EAR_0199, OBJFLAG_00000010, 0, OBJFLAG3_AUTOCUTSCENESOUNDS, 1000, 0x0000f851, 0x0000e666, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000040, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
|
|
door(0x0100, MODEL_DR_CAROLL_DOOR_MAIN, PAD_EAR_0198, OBJFLAG_00000010 | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100)
|
|
door(0x0100, MODEL_DR_CAROLL_DOOR_LEFT, PAD_EAR_0196, OBJFLAG_00000010, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_DR_CAROLL_DOOR_RIGHT, PAD_EAR_0197, OBJFLAG_00000010, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_DR_CAROLL_DOOR_BMAIN, PAD_EAR_0195, OBJFLAG_00000010, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_DR_CAROLL_DOOR_BLEFT, PAD_EAR_0193, OBJFLAG_00000010, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_DR_CAROLL_DOOR_BRIGHT, PAD_EAR_0194, OBJFLAG_00000010, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0xfffffffb, 0x00000000)
|
|
tag(0x28, 5)
|
|
tag(0x29, 5)
|
|
tag(0x2a, 5)
|
|
tag(0x2b, 5)
|
|
tag(0x2c, 5)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F0, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000002, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F1, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000002, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F2, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000002, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F3, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000002, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F4, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000002, 0x000000f0, 0x00000000, 0xfffffffc, 0x00000000)
|
|
#else
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F0, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F1, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F2, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F3, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F4, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0xfffffffc, 0x00000000)
|
|
#endif
|
|
tag(0x2d, 5)
|
|
tag(0x2e, 5)
|
|
tag(0x2f, 5)
|
|
tag(0x30, 5)
|
|
tag(0x31, 5)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F5, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F6, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F7, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F8, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01F9, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0xfffffffc, 0x00000000)
|
|
tag(0x32, 5)
|
|
tag(0x33, 5)
|
|
tag(0x34, 5)
|
|
tag(0x35, 5)
|
|
tag(0x36, 5)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01FA, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01FB, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01FC, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01FD, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0x00000001, 0x00000000)
|
|
door(0x0100, MODEL_LASDOOR, PAD_EAR_01FE, OBJFLAG_ILLUMINATED | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_AISEETHROUGH, OBJFLAG2_THROWTHROUGH | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, DOORFLAG_DAMAGEONCONTACT | DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_LASER, 0x00000000, 0x000000f0, 0x00000000, 0xfffffffc, 0x00000000)
|
|
tag(0x3f, 1)
|
|
door(0x0100, MODEL_DD_GRATE, PAD_EAR_016A, OBJFLAG_ILLUMINATED, OBJFLAG2_AICANNOTUSE | OBJFLAG2_80000000, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_UNBLOCKABLEOPEN, DOORTYPE_SLIDING, 0x00000008, 0x00000384, 0x00000000, 0x00000000, 0x00000300)
|
|
tag(0x01, 1)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0213, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_RENDERPOSTBG, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3)
|
|
tag(0x02, 1)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0214, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_RENDERPOSTBG, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3)
|
|
tag(0x03, 1)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0215, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_RENDERPOSTBG, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0216, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_RENDERPOSTBG, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0217, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_RENDERPOSTBG, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0218, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_DEACTIVATED | OBJFLAG_MONITOR_RENDERPOSTBG, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0219, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_021A, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_021B, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
tag(0x3a, 1)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_021C, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 4)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_021D, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_021E, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_021F, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0220, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0221, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0222, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0223, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0224, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0225, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0226, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0227, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0228, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0229, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_022A, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_022B, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_022C, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_022D, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_022E, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_022F, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0230, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0231, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0232, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0233, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0234, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0235, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_TVSCREEN, PAD_EAR_0236, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0245, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, 0, 0, 1000, 35)
|
|
chr(SPAWNFLAG_00000200, 0x2f, PAD_EAR_0146, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_SURPRISABLE | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_USE_COVER | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x002f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x30, PAD_EAR_0147, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_USE_COVER | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0030, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x31, PAD_EAR_0148, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_USE_COVER | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0031, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x32, PAD_EAR_0149, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_USE_COVER | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0032, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x33, PAD_EAR_014A, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_USE_COVER | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0033, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x00, PAD_EAR_001F, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_PATH00, -1, -1, 1000, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0000, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200 | SPAWNFLAG_FIXEDHEIGHT, 0x01, PAD_EAR_0135, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, 0x0019, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_SURPRISABLE | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_01, 0x3c, 0, 0, 3, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0001, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200 | SPAWNFLAG_FIXEDHEIGHT, 0x02, PAD_EAR_0136, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, 0x001a, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_SURPRISABLE | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_01, 0x3d, 0, 0, 3, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0002, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200 | SPAWNFLAG_FIXEDHEIGHT, 0x3c, PAD_EAR_0134, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 1000, 100, CHRFLAG0_CAN_RETREAT | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 1, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x003c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200 | SPAWNFLAG_FIXEDHEIGHT, 0x03, PAD_EAR_0137, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 1000, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_02, 0x3e, 0, 0, 2, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0003, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x04, PAD_EAR_0111, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 1000, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0004, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x05, PAD_EAR_0112, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 1000, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0005, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x06, PAD_EAR_0113, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 1000, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0006, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x0a, PAD_EAR_0031, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_PATH02, -1, -1, 200, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x000a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x0b, PAD_EAR_0038, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_PATH02, -1, -1, 200, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x000b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x0c, PAD_EAR_0062, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_PATH03, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x000c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x0d, PAD_EAR_006E, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_PATH03, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x000d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x0e, PAD_EAR_0114, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 1, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x000e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x0f, PAD_EAR_0115, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, 0x0060, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_NOACCURACYAFTERJAM | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x000f, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200 | SPAWNFLAG_FIXEDHEIGHT, 0x10, PAD_EAR_0116, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, 0x0060, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_NOACCURACYAFTERJAM | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 1, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0010, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200 | SPAWNFLAG_FIXEDHEIGHT, 0x11, PAD_EAR_0117, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, 0x0065, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_NOACCURACYAFTERJAM | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 1, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0011, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x12, PAD_EAR_0118, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, 0x0065, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_NOACCURACYAFTERJAM | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0012, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200 | SPAWNFLAG_FIXEDHEIGHT, 0x13, PAD_EAR_0119, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, 0x0069, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_NOACCURACYAFTERJAM | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 1, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0013, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x14, PAD_EAR_011A, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, 0x0069, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_NOACCURACYAFTERJAM | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0014, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x15, PAD_EAR_011B, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0015, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x16, PAD_EAR_011C, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0016, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x17, PAD_EAR_011D, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0017, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x18, PAD_EAR_011E, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0018, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x19, PAD_EAR_011F, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_HOLD_POSITION | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0019, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x1a, PAD_EAR_0120, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x001a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x1b, PAD_EAR_0121, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x001b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x1c, PAD_EAR_0122, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_09, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRDRAGON, 0x001c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
|
|
chr(SPAWNFLAG_00000200, 0x1d, PAD_EAR_0123, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 100, CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_09, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRDRAGON, 0x001d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
|
|
chr(SPAWNFLAG_00000200 | SPAWNFLAG_FIXEDHEIGHT, 0x1e, PAD_EAR_0124, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, AILIST_INIT_BASIC_GUARD, -1, -1, 1000, 20, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 1, 0, 0)
|
|
weapon(0x0100, MODEL_CHRDRAGON, 0x001e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
|
|
chr(SPAWNFLAG_00000200, 0x1f, PAD_EAR_0125, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 20, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRDRAGON, 0x001f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
|
|
chr(SPAWNFLAG_00000200, 0x20, PAD_EAR_0126, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, AILIST_INIT_BASIC_GUARD, -1, -1, 200, 20, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRDRAGON, 0x0020, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
|
|
chr(SPAWNFLAG_00000200, 0x21, PAD_EAR_0127, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 200, 20, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0B, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRDRAGON, 0x0021, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
|
|
chr(SPAWNFLAG_00000200, 0x22, PAD_EAR_0128, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 200, 20, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0B, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRDRAGON, 0x0022, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
|
|
chr(SPAWNFLAG_00000200, 0x23, PAD_EAR_0129, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 200, 20, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0B, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRDRAGON, 0x0023, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
|
|
chr(SPAWNFLAG_00000200, 0x24, PAD_EAR_012A, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 200, 20, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0B, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRDRAGON, 0x0024, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON)
|
|
chr(SPAWNFLAG_ANTINONINTERACTABLE, 0x3b, PAD_EAR_013B, BODY_DD_SHOCK_INF, HEAD_DDSHOCK, AILIST_K7_GUARD, -1, -1, 1, 20, CHRFLAG0_CAN_RETREAT | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_0D, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRAVENGER, 0x003b, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_INVINCIBLE | OBJFLAG_00400000, 0, 0, WEAPON_K7AVENGER)
|
|
tag(0x04, -1)
|
|
chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x38, PAD_EAR_013C, BODY_DD_LABTECH, HEAD_RANDOM, AILIST_K7_SCIENTIST, 0x0076, -1, 1, 20, CHRFLAG0_SKIPSAFETYCHECKS, 0, TEAM_ENEMY, SQUADRON_0D, -1, 0, 0, 0, 0, 0)
|
|
chr(SPAWNFLAG_00000200, 0x29, PAD_EAR_0155, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0029, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x2a, PAD_EAR_0156, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, 0x0060, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x002a, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x2b, PAD_EAR_014B, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0F, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x002b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x2c, PAD_EAR_014C, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, 0x0060, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0F, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x002c, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x2d, PAD_EAR_0151, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x002d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_00000200, 0x2e, PAD_EAR_0152, BODY_DD_SHOCK_INF, HEAD_RANDOM, AILIST_INIT_BASIC_GUARD, 0x0060, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x002e, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x35, PAD_EAR_0138, BODY_DD_LABTECH, HEAD_JAMIE, AILIST_INIT_SCIENTIST, 0x0076, -1, 1000, 10, CHRFLAG0_SKIPSAFETYCHECKS, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
|
|
chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x36, PAD_EAR_0139, BODY_DD_LABTECH, HEAD_JON, AILIST_INIT_SCIENTIST, -1, -1, 1000, 10, CHRFLAG0_FORCESAFETYCHECKS, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 1, 0, 0, 0)
|
|
chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x37, PAD_EAR_013A, BODY_DD_LABTECH, HEAD_DUNCAN2, AILIST_INIT_SCIENTIST, -1, -1, 1000, 10, 0, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 2, 0, 0, 0)
|
|
chr(SPAWNFLAG_ANTINONINTERACTABLE, 0x3a, PAD_EAR_0106, BODY_DDSHOCK, HEAD_DARLING, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_CAN_RETREAT | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
|
|
chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x39, PAD_EAR_010C, BODY_DRCAROLL, 0x00, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_CAN_RETREAT | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
|
|
tag(0x0b, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0246, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x0c, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0247, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x0d, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0248, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x0e, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0249, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x10, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_024A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x11, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_024B, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x12, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_024C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x13, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_024D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x08, 3)
|
|
tag(0x14, 2)
|
|
tag(0x15, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_024E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x16, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_024F, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x17, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0250, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x18, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0251, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x09, 3)
|
|
tag(0x19, 2)
|
|
tag(0x1a, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0252, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x1b, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0253, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x1c, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0254, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x1d, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0255, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x07, 3)
|
|
tag(0x0f, 2)
|
|
tag(0x1e, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0256, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x1f, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0257, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x20, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0258, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
tag(0x21, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0259, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE | OBJFLAG3_INTERACTSHORTRANGE, 1000, 3)
|
|
stdobject(0x0100, MODEL_LAB_TABLE, PAD_EAR_023C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
tag(0x0a, 1)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_025A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED | OBJFLAG_01000000, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3)
|
|
tag(0x37, 1)
|
|
hovercar(0x00c0, MODEL_HOOVERBOT, PAD_EAR_0001, OBJFLAG_00000008 | OBJFLAG_20000000 | OBJFLAG_HOVERCAR_40000000 | OBJFLAG_HOVERCAR_ISHOVERBOT, OBJFLAG2_IMMUNETOANTI, 0, 100, 0x00000411)
|
|
tag(0x38, 1)
|
|
hovercar(0x00c0, MODEL_TESTERBOT, PAD_EAR_003B, OBJFLAG_00000008 | OBJFLAG_INVINCIBLE | OBJFLAG_HOVERCAR_40000000 | OBJFLAG_HOVERCAR_ISHOVERBOT, OBJFLAG2_IMMUNETOANTI, 0, 100, 0x00000412)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01B3, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01B4, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01B8, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01B9, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01BA, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01BB, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01BC, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
tinted_glass(0x0100, MODEL_WINDOW, PAD_EAR_01B5, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF, 0, 1000, 0x00c80384)
|
|
tinted_glass(0x0100, MODEL_WINDOW, PAD_EAR_01B6, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF, 0, 1000, 0x00c80384)
|
|
tinted_glass(0x0100, MODEL_WINDOW, PAD_EAR_01B7, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF, 0, 1000, 0x00c80384)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01BD, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01BE, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01BF, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, OBJFLAG2_BULLETPROOF, 0, 1000)
|
|
tag(0x3e, 1)
|
|
stdobject(0x0100, MODEL_DD_CHAIR, PAD_EAR_020C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_EAR_020B, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_020A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
stdobject(0x0100, MODEL_LAB_CHAIR, PAD_EAR_020D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_LAB_TABLE, PAD_EAR_020E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_020F, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
stdobject(0x0100, MODEL_LAB_CHAIR, PAD_EAR_0211, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_LAB_TABLE, PAD_EAR_0210, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
singlemonitor(0x0100, MODEL_SINISTERPC, PAD_EAR_0212, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, 0, 1000, 3)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01D4, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01D3, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01D2, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01D1, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01D0, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01CF, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01CE, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01CD, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01C7, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01C6, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01C5, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01C4, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01C3, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01C2, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01C1, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01C0, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01CB, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01CA, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01C9, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01C8, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01CC, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01DD, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01E4, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01E3, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01E2, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01E1, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01E0, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01DF, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01DE, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01E5, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01E6, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01E7, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01E8, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01E9, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01EA, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01EB, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01EC, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01D5, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01D6, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01D7, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01D8, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01D9, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01DA, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01DB, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01DC, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01ED, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01EE, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF, 0, 1000)
|
|
glass(0x0100, MODEL_WINDOW, PAD_EAR_01EF, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF, 0, 1000)
|
|
tag(0x3d, 1)
|
|
stdobject(0x0100, MODEL_DD_REDSOFA, PAD_EAR_01A9, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_INVINCIBLE, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_EAR_01AA, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
tag(0x3c, 1)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_EAR_01AB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_INVINCIBLE, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_EAR_01AC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDSOFA, PAD_EAR_01AD, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDSOFA, PAD_EAR_01AE, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDSOFA, PAD_EAR_01AF, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_EAR_01B0, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_EAR_01B1, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_EAR_01B2, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_EAR_01A1, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, 0, 1000)
|
|
stdobject(0x0166, MODEL_DD_PLANTRUBBER, PAD_EAR_01A2, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, 0, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_EAR_01A3, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, 0, 1000)
|
|
stdobject(0x0180, MODEL_DD_PLANTSPIKE, PAD_EAR_01A4, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, 0, 1000)
|
|
stdobject(0x0180, MODEL_DD_PLANTRUBBER, PAD_EAR_01A5, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, 0, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_EAR_01A6, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, 0, 1000)
|
|
stdobject(0x0180, MODEL_DD_PLANTRUBBER, PAD_EAR_01A7, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, 0, 1000)
|
|
stdobject(0x0133, MODEL_DD_PLANTSPIKE, PAD_EAR_01A8, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_AISEETHROUGH, OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, 0, 1000)
|
|
stdobject(0x00e6, MODEL_A51_CRATE2, PAD_EAR_025D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x00e6, MODEL_A51_CRATE2, PAD_EAR_025E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x00e6, MODEL_A51_CRATE2, PAD_EAR_025F, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x00e6, MODEL_A51_CRATE2, PAD_EAR_0260, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x00e6, MODEL_A51_CRATE2, PAD_EAR_0261, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_EAR_0262, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_EAR_0263, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_EAR_0264, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_EAR_0265, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x00e6, MODEL_A51_CRATE2, PAD_EAR_0266, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x00e6, MODEL_A51_CRATE2, PAD_EAR_0267, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_EAR_0268, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x0033, MODEL_QUADPOD, PAD_EAR_013D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED, OBJFLAG2_IMMUNETOANTI, 0, 1000)
|
|
|
|
/**
|
|
* @bug: This should be using MODEL_CHRNIGHTSIGHT.
|
|
*
|
|
* When picking up night vision the game checks if the perfect darkness
|
|
* cheat is enabled and skips adding the night vision to your inventory as
|
|
* it would already be there. But because this uses IR specs instead, the
|
|
* check doesn't match and a duplicate night vision is added to the
|
|
* inventory.
|
|
*/
|
|
tag(0x05, 1)
|
|
stdobject(0x0100, MODEL_MISC_IRSPECS, PAD_EAR_013D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_INVINCIBLE | OBJFLAG_COLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PLAYERUNDROPPABLE, 1000)
|
|
rename_object(-1, WEAPON_NIGHTVISION, L_EAR_045, L_EAR_046, L_EAR_047, L_EAR_048, L_EAR_049) // "Obtain Night Vision."
|
|
|
|
tag(0x06, 1)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
stdobject(0x0100, MODEL_CHRSHIELD, PAD_EAR_0243, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_INVINCIBLE | OBJFLAG_COLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PLAYERUNDROPPABLE, 1000)
|
|
rename_object(-1, WEAPON_SHIELDTECHITEM, L_EAR_050, L_EAR_051, L_EAR_052, L_EAR_053, L_EAR_054) // "Obtain shield tech item."
|
|
#else
|
|
stdobject(0x0100, MODEL_CHRSHIELD, PAD_EAR_0243, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_ILLUMINATED | OBJFLAG_INVINCIBLE | OBJFLAG_COLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PLAYERUNDROPPABLE, 1000)
|
|
rename_object(-1, WEAPON_BRIEFCASE, L_EAR_050, L_EAR_051, L_EAR_052, L_EAR_053, L_EAR_054) // "Obtain shield tech item."
|
|
#endif
|
|
tag(0x25, 1)
|
|
weapon(0x0180, MODEL_CHRDATATHIEF, -1, OBJFLAG_00000001, 0, 0, WEAPON_DATAUPLINK)
|
|
rename_object(-1, WEAPON_DATAUPLINK, L_EAR_055, L_EAR_056, L_EAR_057, L_EAR_058, L_EAR_059) // "Obtain Data Uplink."
|
|
tag(0x48, 1)
|
|
weapon(0x0180, MODEL_CHRDATATHIEF, -1, OBJFLAG_00000001, 0, 0, WEAPON_DATAUPLINK)
|
|
rename_object(-1, WEAPON_DATAUPLINK, L_EAR_055, L_EAR_056, L_EAR_057, L_EAR_058, L_EAR_059) // "Obtain Data Uplink."
|
|
tag(0x41, 1)
|
|
autogun(0x0099, MODEL_ROOFGUN, PAD_EAR_026B, OBJFLAG_00000004, OBJFLAG2_EXCLUDE_SA | OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD, 0, 1000, 0x026e, 0x00004000, 0xffffc000, 0x000000da, 0x000a0000)
|
|
tag(0x42, 1)
|
|
autogun(0x0099, MODEL_ROOFGUN, PAD_EAR_026C, OBJFLAG_00000004, OBJFLAG2_EXCLUDE_SA | OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD, 0, 1000, 0x026f, 0x00004000, 0xffffc000, 0x000000da, 0x000a0000)
|
|
tag(0x43, 1)
|
|
autogun(0x0099, MODEL_ROOFGUN, PAD_EAR_026D, OBJFLAG_00000004, OBJFLAG2_EXCLUDE_A | OBJFLAG2_EXCLUDE_SA, 0, 1000, 0x0270, 0x00004000, 0xffffc000, 0x000005b0, 0x000a0000)
|
|
autogun(0x0099, MODEL_ROOFGUN, PAD_EAR_026B, OBJFLAG_00000004, OBJFLAG2_EXCLUDE_A, 0, 1000, 0x026e, 0x00004000, 0xffffc000, 0x00000e38, 0x00140000)
|
|
autogun(0x0099, MODEL_ROOFGUN, PAD_EAR_026C, OBJFLAG_00000004, OBJFLAG2_EXCLUDE_A, 0, 1000, 0x026f, 0x00004000, 0xffffc000, 0x00000e38, 0x00140000)
|
|
stdobject(0x0133, MODEL_A51_CRATE2, PAD_EAR_0269, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x0133, MODEL_A51_CRATE2, PAD_EAR_026A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x39, 1)
|
|
stdobject(0x0400, MODEL_ISOTOPE, PAD_EAR_0158, OBJFLAG_00000008 | OBJFLAG_ILLUMINATED | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, 0, 1000)
|
|
stdobject(0x0400, MODEL_ISOTOPEEXPERIMENT, PAD_EAR_0157, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_00000100 | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
tag(0x49, 1)
|
|
shield(0x0100, MODEL_CHRSHIELD, PAD_EAR_027E, OBJFLAG_00000001, OBJFLAG2_EXCLUDE_SA | OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD, 0, 1000)
|
|
tag(0x4a, 1)
|
|
shield(0x0100, MODEL_CHRSHIELD, PAD_EAR_027F, OBJFLAG_00000001, OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD, 0, 1000)
|
|
tag(0x4b, 1)
|
|
ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, PAD_EAR_0271, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_RIFLE)
|
|
tag(0x4c, 1)
|
|
ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, PAD_EAR_0272, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_RIFLE)
|
|
tag(0x4d, 1)
|
|
ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, PAD_EAR_0273, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_RIFLE)
|
|
tag(0x4e, 1)
|
|
ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, PAD_EAR_0274, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_RIFLE)
|
|
tag(0x4f, 1)
|
|
ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, PAD_EAR_0275, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_RIFLE)
|
|
tag(0x50, 1)
|
|
ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, PAD_EAR_0276, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_RIFLE)
|
|
tag(0x51, 1)
|
|
ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, PAD_EAR_0277, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_RIFLE)
|
|
tag(0x52, 1)
|
|
ammocrate(0x0080, MODEL_MULTI_AMMO_CRATE, PAD_EAR_0278, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_RIFLE)
|
|
tag(0x53, 1)
|
|
weapon(0x0100, MODEL_CHRCMP150, PAD_EAR_0279, OBJFLAG_00000008, OBJFLAG2_IMMUNETOANTI, 0, WEAPON_CMP150)
|
|
tag(0x54, 1)
|
|
weapon(0x0100, MODEL_CHRCMP150, PAD_EAR_027A, OBJFLAG_00000008, OBJFLAG2_IMMUNETOANTI, 0, WEAPON_CMP150)
|
|
tag(0x55, 2)
|
|
tag(0x56, 2)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_EAR_016B, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_EAR_016C, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x57, 2)
|
|
tag(0x58, 2)
|
|
weapon(0x0100, MODEL_CHRCMP150, PAD_EAR_027B, OBJFLAG_00000008 | OBJFLAG_UNCOLLECTABLE, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_INVISIBLE, 0, WEAPON_CMP150)
|
|
weapon(0x0100, MODEL_CHRCMP150, PAD_EAR_027C, OBJFLAG_00000008 | OBJFLAG_UNCOLLECTABLE, OBJFLAG2_IMMUNETOANTI | OBJFLAG2_INVISIBLE, 0, WEAPON_CMP150)
|
|
link_guns(-1, -2)
|
|
tag(0x59, 1)
|
|
weapon(0x0080, MODEL_MULTI_AMMO_CRATE, PAD_EAR_027D, OBJFLAG_00000001, OBJFLAG2_IMMUNETOANTI, 0, WEAPON_PROXIMITYMINE)
|
|
endprops
|
|
};
|
|
|
|
s32 intro[] = {
|
|
intro_weapon(WEAPON_FALCON2, -1)
|
|
ammo(AMMOTYPE_PISTOL, 100)
|
|
ammo(AMMOTYPE_RIFLE, 50)
|
|
intro_weapon(WEAPON_EYESPY, -1)
|
|
outfit(OUTFIT_DEFAULT)
|
|
spawn(PAD_EAR_001B)
|
|
endintro
|
|
};
|
|
|
|
s32 path00[] = {
|
|
PAD_EAR_001F,
|
|
PAD_EAR_001E,
|
|
PAD_EAR_001D,
|
|
PAD_EAR_001C,
|
|
PAD_EAR_000C,
|
|
PAD_EAR_000F,
|
|
PAD_EAR_0010,
|
|
PAD_EAR_000E,
|
|
PAD_EAR_0004,
|
|
PAD_EAR_0003,
|
|
PAD_EAR_0001,
|
|
PAD_EAR_0012,
|
|
PAD_EAR_0011,
|
|
PAD_EAR_0013,
|
|
PAD_EAR_0014,
|
|
PAD_EAR_0015,
|
|
-1,
|
|
};
|
|
|
|
s32 path01[] = {
|
|
PAD_EAR_004F,
|
|
PAD_EAR_004E,
|
|
PAD_EAR_004D,
|
|
PAD_EAR_004C,
|
|
PAD_EAR_004B,
|
|
PAD_EAR_004A,
|
|
PAD_EAR_0049,
|
|
PAD_EAR_002A,
|
|
PAD_EAR_002B,
|
|
PAD_EAR_002C,
|
|
PAD_EAR_002D,
|
|
PAD_EAR_002E,
|
|
PAD_EAR_0029,
|
|
PAD_EAR_002A,
|
|
PAD_EAR_0049,
|
|
PAD_EAR_004A,
|
|
PAD_EAR_004B,
|
|
PAD_EAR_004C,
|
|
PAD_EAR_004D,
|
|
PAD_EAR_004E,
|
|
-1,
|
|
};
|
|
|
|
s32 path02[] = {
|
|
PAD_EAR_0031,
|
|
PAD_EAR_0034,
|
|
PAD_EAR_0033,
|
|
PAD_EAR_0032,
|
|
PAD_EAR_0035,
|
|
PAD_EAR_0036,
|
|
PAD_EAR_0038,
|
|
PAD_EAR_0039,
|
|
PAD_EAR_003A,
|
|
-1,
|
|
};
|
|
|
|
s32 path03[] = {
|
|
PAD_EAR_0062,
|
|
PAD_EAR_0061,
|
|
PAD_EAR_0063,
|
|
PAD_EAR_0065,
|
|
PAD_EAR_0066,
|
|
PAD_EAR_0067,
|
|
PAD_EAR_0069,
|
|
PAD_EAR_006A,
|
|
PAD_EAR_006D,
|
|
PAD_EAR_006E,
|
|
-1,
|
|
};
|
|
|
|
s32 path04[] = {
|
|
PAD_EAR_0107,
|
|
PAD_EAR_0108,
|
|
PAD_EAR_0109,
|
|
-1,
|
|
};
|
|
|
|
s32 path05[] = {
|
|
PAD_EAR_0001,
|
|
PAD_EAR_0002,
|
|
PAD_EAR_000C,
|
|
PAD_EAR_001D,
|
|
PAD_EAR_001E,
|
|
PAD_EAR_001F,
|
|
PAD_EAR_0028,
|
|
PAD_EAR_0029,
|
|
PAD_EAR_002D,
|
|
PAD_EAR_002A,
|
|
PAD_EAR_002E,
|
|
PAD_EAR_002E,
|
|
PAD_EAR_002E,
|
|
-1,
|
|
};
|
|
|
|
s32 path06[] = {
|
|
PAD_EAR_002E,
|
|
PAD_EAR_0029,
|
|
PAD_EAR_0028,
|
|
PAD_EAR_001F,
|
|
PAD_EAR_001E,
|
|
PAD_EAR_001D,
|
|
PAD_EAR_000C,
|
|
PAD_EAR_0002,
|
|
PAD_EAR_0002,
|
|
PAD_EAR_0002,
|
|
-1,
|
|
};
|
|
|
|
s32 path07[] = {
|
|
PAD_EAR_003B,
|
|
PAD_EAR_0039,
|
|
PAD_EAR_003B,
|
|
PAD_EAR_0039,
|
|
-1,
|
|
};
|
|
|
|
s32 path08[] = {
|
|
PAD_EAR_003B,
|
|
PAD_EAR_003C,
|
|
PAD_EAR_003B,
|
|
-1,
|
|
};
|
|
|
|
s32 path09[] = {
|
|
PAD_EAR_0038,
|
|
PAD_EAR_0035,
|
|
PAD_EAR_0033,
|
|
PAD_EAR_0034,
|
|
PAD_EAR_0031,
|
|
PAD_EAR_0030,
|
|
PAD_EAR_002B,
|
|
PAD_EAR_002A,
|
|
PAD_EAR_0049,
|
|
PAD_EAR_004A,
|
|
PAD_EAR_004B,
|
|
PAD_EAR_004C,
|
|
PAD_EAR_004D,
|
|
PAD_EAR_0050,
|
|
PAD_EAR_004E,
|
|
PAD_EAR_0042,
|
|
PAD_EAR_0043,
|
|
PAD_EAR_005E,
|
|
PAD_EAR_0061,
|
|
PAD_EAR_0065,
|
|
PAD_EAR_0069,
|
|
PAD_EAR_006D,
|
|
PAD_EAR_006B,
|
|
PAD_EAR_006C,
|
|
PAD_EAR_00BD,
|
|
PAD_EAR_00BE,
|
|
-1,
|
|
};
|
|
|
|
s32 path10[] = {
|
|
PAD_EAR_00BE,
|
|
PAD_EAR_012E,
|
|
PAD_EAR_012F,
|
|
PAD_EAR_0130,
|
|
PAD_EAR_00C7,
|
|
PAD_EAR_00CD,
|
|
PAD_EAR_00C8,
|
|
PAD_EAR_00C4,
|
|
PAD_EAR_0130,
|
|
PAD_EAR_012F,
|
|
PAD_EAR_012E,
|
|
PAD_EAR_00BE,
|
|
PAD_EAR_00BD,
|
|
PAD_EAR_011C,
|
|
PAD_EAR_00BE,
|
|
-1,
|
|
};
|
|
|
|
s32 path11[] = {
|
|
PAD_EAR_003B,
|
|
PAD_EAR_003B,
|
|
PAD_EAR_003B,
|
|
-1,
|
|
};
|
|
|
|
s32 path12[] = {
|
|
PAD_EAR_007F,
|
|
PAD_EAR_007F,
|
|
PAD_EAR_007F,
|
|
-1,
|
|
};
|
|
|
|
s32 path13[] = {
|
|
PAD_EAR_0080,
|
|
PAD_EAR_0080,
|
|
PAD_EAR_0080,
|
|
-1,
|
|
};
|
|
|
|
#define init_path(pathid) \
|
|
set_chr_dodge_rating(2, 10) \
|
|
set_accuracy(1) \
|
|
set_reaction_speed(20) \
|
|
set_chr_maxdamage(CHR_SELF, 40) \
|
|
add_health_or_armor(0) \
|
|
set_recovery_speed(0) \
|
|
set_shield(0) \
|
|
assign_path(pathid) \
|
|
start_patrol \
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED_0004)
|
|
|
|
u8 func040c_start_path00[] = {
|
|
init_path(0)
|
|
endlist
|
|
};
|
|
|
|
u8 func040d_start_path01[] = {
|
|
init_path(1)
|
|
endlist
|
|
};
|
|
|
|
u8 func040e_start_path02[] = {
|
|
init_path(2)
|
|
endlist
|
|
};
|
|
|
|
u8 func040f_start_path03[] = {
|
|
init_path(3)
|
|
endlist
|
|
};
|
|
|
|
u8 func0410_start_path04[] = {
|
|
init_path(4)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unused
|
|
*
|
|
* The function doesn't do any checks for detecting Jo, so the guard would
|
|
* ignore you if it were assigned.
|
|
*/
|
|
u8 func0414_walk_3_pads[] = {
|
|
label(0x03)
|
|
walk_to_pad(PAD_EAR_0002)
|
|
|
|
beginloop(0x06)
|
|
if_chr_stopped(/*goto*/ 0x2f)
|
|
endloop(0x06)
|
|
|
|
label(0x2f)
|
|
walk_to_pad(PAD_EAR_0003)
|
|
|
|
beginloop(0x04)
|
|
if_chr_stopped(/*goto*/ 0x08)
|
|
endloop(0x04)
|
|
|
|
label(0x08)
|
|
walk_to_pad(PAD_EAR_0001)
|
|
|
|
beginloop(0x09)
|
|
if_chr_stopped(/*goto*/ 0x0a)
|
|
endloop(0x09)
|
|
|
|
label(0x0a)
|
|
goto_first(0x03)
|
|
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* Unused.
|
|
*/
|
|
u8 func0401_init_chr_with_flag[] = {
|
|
set_self_chrflag(CHRCFLAG_00000200)
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED_0001)
|
|
endlist
|
|
};
|
|
|
|
u8 func0405_init_scientist[] = {
|
|
set_chr_maxdamage(CHR_SELF, 20)
|
|
set_ailist(CHR_SELF, AILIST_SCIENTIST)
|
|
endlist
|
|
};
|
|
|
|
u8 func0404_scientist[] = {
|
|
set_shotlist(AILIST_SCIENTIST)
|
|
if_chr_dead(CHR_SELF, /*goto*/ 0x2f)
|
|
if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2f)
|
|
if_chr_knockedout(CHR_SELF, /*goto*/ 0x2f)
|
|
goto_next(0x06)
|
|
|
|
label(0x2f)
|
|
dprint 'N','I','S','D','E','A','D','\n',0,
|
|
set_shotlist(GAILIST_IDLE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x06)
|
|
dprint 'N','I','S','2','\n',0,
|
|
if_just_injured(CHR_SELF, /*goto*/ 0x2f)
|
|
goto_next(0x06)
|
|
|
|
label(0x2f)
|
|
beginloop(0x10)
|
|
if_chr_stopped(/*goto*/ 0x2f)
|
|
endloop(0x10)
|
|
|
|
label(0x2f)
|
|
set_ailist(CHR_SELF, AILIST_INIT_NASTY_SCIENTIST)
|
|
|
|
label(0x06)
|
|
stop_chr
|
|
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_target_in_sight(/*goto*/ 0x2f)
|
|
if_distance_to_target_lt(500, /*goto*/ 0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_ONE_SCIENTIST_DONE, TRUE, /*goto*/ 0x06)
|
|
set_stage_flag(STAGEFLAG_ONE_SCIENTIST_DONE)
|
|
goto_next(0x03)
|
|
|
|
label(0x06)
|
|
if_stage_flag_eq(STAGEFLAG_TWO_SCIENTISTS_DONE, TRUE, /*goto*/ 0x06)
|
|
set_stage_flag(STAGEFLAG_TWO_SCIENTISTS_DONE)
|
|
goto_next(0x03)
|
|
|
|
label(0x06)
|
|
set_stage_flag(STAGEFLAG_THREE_SCIENTISTS_DONE)
|
|
if_stage_flag_eq(STAGEFLAG_THREE_SCIENTISTS_DONE, FALSE, /*goto*/ 0x03)
|
|
set_ailist(CHR_SELF, AILIST_INIT_NASTY_SCIENTIST)
|
|
|
|
label(0x03)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0031, /*goto*/ 0x6a)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0032, /*goto*/ 0x6a)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0042, /*goto*/ 0x6d)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0043, /*goto*/ 0x6d)
|
|
goto_next(0x06)
|
|
|
|
label(0x6a)
|
|
chr_do_animation(ANIM_COWER_0229, -1, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
|
|
|
|
beginloop(0x6b)
|
|
if_chr_dead(0x2b, /*goto*/ 0x2f)
|
|
if_chr_death_animation_finished(0x2b, /*goto*/ 0x2f)
|
|
if_chr_knockedout(0x2b, /*goto*/ 0x2f)
|
|
if_chr_stopped(/*goto*/ 0x6c)
|
|
reloop(0x6b)
|
|
|
|
label(0x2f)
|
|
if_chr_dead(0x2c, /*goto*/ 0x06)
|
|
if_chr_death_animation_finished(0x2c, /*goto*/ 0x06)
|
|
if_chr_knockedout(0x2c, /*goto*/ 0x06)
|
|
if_chr_stopped(/*goto*/ 0x6c)
|
|
endloop(0x6b)
|
|
|
|
label(0x6c)
|
|
goto_first(0x6a)
|
|
|
|
label(0x6d)
|
|
chr_do_animation(ANIM_COWER_0229, -1, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
|
|
|
|
beginloop(0x6e)
|
|
if_chr_dead(0x2d, /*goto*/ 0x2f)
|
|
if_chr_death_animation_finished(0x2d, /*goto*/ 0x2f)
|
|
if_chr_knockedout(0x2d, /*goto*/ 0x2f)
|
|
if_chr_stopped(/*goto*/ 0x6f)
|
|
reloop(0x6e)
|
|
|
|
label(0x2f)
|
|
if_chr_dead(0x2e, /*goto*/ 0x06)
|
|
if_chr_death_animation_finished(0x2e, /*goto*/ 0x06)
|
|
if_chr_knockedout(0x2e, /*goto*/ 0x06)
|
|
if_chr_stopped(/*goto*/ 0x6f)
|
|
endloop(0x6e)
|
|
|
|
label(0x6f)
|
|
goto_first(0x6d)
|
|
|
|
label(0x06)
|
|
restart_timer
|
|
label(0x08)
|
|
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09)
|
|
|
|
beginloop(0x09)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x2f)
|
|
endloop(0x09)
|
|
|
|
label(0x2f)
|
|
if_target_in_fov_left(10, /*goto*/ 0x06)
|
|
if_timer_gt(60, /*goto*/ 0x06)
|
|
goto_first(0x09)
|
|
|
|
label(0x06)
|
|
dprint 'T','A','L','K',' ','1','\n',0,
|
|
say_quip(CHR_TARGET, 0x0a, 0xff, 0x00, 0xff, 0x81, 0x03, 0x08)
|
|
restart_timer
|
|
stop_chr
|
|
|
|
beginloop(0x56)
|
|
if_timer_lt(120, /*goto*/ 0x2f)
|
|
if_chr_in_view(/*goto*/ 0x06)
|
|
label(0x2f)
|
|
endloop(0x56)
|
|
|
|
label(0x06)
|
|
dprint 'T','A','L','K',' ','1','\n',0,
|
|
say_quip(CHR_TARGET, 0x0b, 0xff, 0x00, 0xff, 0x81, 0x04, 0x09)
|
|
restart_timer
|
|
|
|
beginloop(0x57)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x57)
|
|
|
|
label(0x06)
|
|
label(0x0a)
|
|
say_quip(CHR_TARGET, 0x0c, 0xff, 0x00, 0xff, 0x81, 0x05, 0x08)
|
|
restart_timer
|
|
chr_do_animation(ANIM_SURRENDER_002E, 0, -1, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x0b)
|
|
if_target_in_fov_left(10, /*goto*/ 0x06)
|
|
if_timer_gt(90, /*goto*/ 0x06)
|
|
endloop(0x0b)
|
|
|
|
label(0x06)
|
|
if_self_flag_bankx_eq(CHRFLAG0_SKIPSAFETYCHECKS, TRUE, BANK_0, /*goto*/ 0x06)
|
|
if_self_flag_bankx_eq(CHRFLAG0_FORCESAFETYCHECKS, TRUE, BANK_0, /*goto*/ 0x2f)
|
|
set_pad_preset_to_investigation_terminal(OBJ_GOODTERM3)
|
|
goto_next(0x12)
|
|
|
|
label(0x06)
|
|
set_pad_preset_to_investigation_terminal(OBJ_GOODTERM1)
|
|
goto_next(0x12)
|
|
|
|
label(0x2f)
|
|
set_pad_preset_to_investigation_terminal(OBJ_GOODTERM2)
|
|
label(0x12)
|
|
go_to_target_pad(SPEED_JOG)
|
|
|
|
beginloop(0x0c)
|
|
if_chr_stopped(/*goto*/ 0x06)
|
|
endloop(0x0c)
|
|
|
|
label(0x06)
|
|
if_self_flag_bankx_eq(CHRFLAG0_SKIPSAFETYCHECKS, TRUE, BANK_0, /*goto*/ 0x06)
|
|
if_self_flag_bankx_eq(CHRFLAG0_FORCESAFETYCHECKS, TRUE, BANK_0, /*goto*/ 0x2f)
|
|
if_object_in_good_condition(OBJ_GOODTERM3, /*goto*/ 0x19)
|
|
say_quip(CHR_TARGET, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08)
|
|
show_hudmsg_top_middle(CHR_TARGET, L_EAR_044, COLOR_00_GREEN) // "It appears someone has broken my PC."
|
|
goto_next(0x0e)
|
|
|
|
label(0x19)
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT3, FALSE, /*goto*/ 0x15)
|
|
say_quip(CHR_TARGET, 0x0f, 0xff, 0x00, 0xff, 0x81, 0x08, 0x08)
|
|
goto_next(0x0e)
|
|
|
|
label(0x15)
|
|
set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT3)
|
|
say_quip(CHR_TARGET, 0x0d, 0xff, 0x00, 0xff, 0x81, 0x06, 0x08)
|
|
assign_sound(SFX_01C3, CHANNEL_5)
|
|
control_sound_from_object(CHANNEL_5, OBJ_GOODTERM3, TRUE)
|
|
goto_next(0x0f)
|
|
|
|
label(0x06)
|
|
if_object_in_good_condition(OBJ_GOODTERM1, /*goto*/ 0x19)
|
|
say_quip(CHR_TARGET, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08)
|
|
goto_next(0x0e)
|
|
|
|
label(0x19)
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT1, FALSE, /*goto*/ 0x16)
|
|
say_quip(CHR_TARGET, 0x0f, 0xff, 0x00, 0xff, 0x81, 0x08, 0x08)
|
|
goto_next(0x0e)
|
|
|
|
label(0x16)
|
|
set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT1)
|
|
say_quip(CHR_TARGET, 0x0d, 0xff, 0x00, 0xff, 0x81, 0x06, 0x08)
|
|
assign_sound(SFX_01C3, CHANNEL_5)
|
|
control_sound_from_object(CHANNEL_5, OBJ_GOODTERM1, TRUE)
|
|
goto_next(0x0f)
|
|
|
|
label(0x2f)
|
|
if_object_in_good_condition(OBJ_GOODTERM1, /*goto*/ 0x19)
|
|
say_quip(CHR_TARGET, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08)
|
|
goto_next(0x0e)
|
|
|
|
label(0x19)
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT2, FALSE, /*goto*/ 0x17)
|
|
say_quip(CHR_TARGET, 0x0f, 0xff, 0x00, 0xff, 0x81, 0x08, 0x08)
|
|
goto_next(0x0e)
|
|
|
|
label(0x17)
|
|
set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT2)
|
|
say_quip(CHR_TARGET, 0x0d, 0xff, 0x00, 0xff, 0x81, 0x06, 0x08)
|
|
assign_sound(SFX_01C3, CHANNEL_5)
|
|
control_sound_from_object(CHANNEL_5, OBJ_GOODTERM2, TRUE)
|
|
goto_next(0x0f)
|
|
|
|
label(0x0f)
|
|
show_hudmsg(CHR_TARGET, L_EAR_028) // "Powering down active systems."
|
|
speak(CHR_TARGET, 0xffff, SFX_TYPING_8118, CHANNEL_9, COLOR_00_GREEN) // unknown text
|
|
chr_do_animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 193, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x0d)
|
|
if_chr_stopped(/*goto*/ 0x06)
|
|
endloop(0x0d)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_029) // "Experiment has been shut down."
|
|
stop_chr
|
|
|
|
beginloop(0x0e)
|
|
endloop(0x0e)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func0407_init_nasty_scientist[] = {
|
|
set_ailist(CHR_SELF, AILIST_NASTY_SCIENTIST)
|
|
endlist
|
|
};
|
|
|
|
u8 func0406_nasty_scientist[] = {
|
|
set_shotlist(AILIST_NASTY_SCIENTIST)
|
|
dprint 'N','A','S','T','Y','1','\n',0,
|
|
if_chr_dead(CHR_SELF, /*goto*/ 0x2f)
|
|
if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2f)
|
|
if_chr_knockedout(CHR_SELF, /*goto*/ 0x2f)
|
|
goto_next(0x06)
|
|
|
|
label(0x2f)
|
|
dprint 'N','A','S','T','Y',' ','D','E','A','D','\n',0,
|
|
set_shotlist(GAILIST_IDLE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x06)
|
|
dprint 'N','A','S','T','Y','2','\n',0,
|
|
if_just_injured(CHR_SELF, /*goto*/ 0x2f)
|
|
if_num_times_shot_lt(1, /*goto*/ 0x06)
|
|
label(0x2f)
|
|
play_sound(MP3_028C, CHANNEL_7)
|
|
|
|
beginloop(0x10)
|
|
if_chr_stopped(/*goto*/ 0x06)
|
|
endloop(0x10)
|
|
|
|
label(0x06)
|
|
if_self_flag_bankx_eq(CHRFLAG0_SKIPSAFETYCHECKS, TRUE, BANK_0, /*goto*/ 0x06)
|
|
if_self_flag_bankx_eq(CHRFLAG0_FORCESAFETYCHECKS, TRUE, BANK_0, /*goto*/ 0x2f)
|
|
set_pad_preset_to_investigation_terminal(OBJ_ALARMTERM3)
|
|
goto_next(0x12)
|
|
|
|
label(0x06)
|
|
set_pad_preset_to_investigation_terminal(OBJ_ALARMTERM1)
|
|
goto_next(0x12)
|
|
|
|
label(0x2f)
|
|
set_pad_preset_to_investigation_terminal(OBJ_ALARMTERM2)
|
|
label(0x12)
|
|
if_num_times_shot_lt(1, /*goto*/ 0x13)
|
|
go_to_target_pad(SPEED_JOG)
|
|
goto_next(0x55)
|
|
|
|
label(0x13)
|
|
label(0x08)
|
|
restart_timer
|
|
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09)
|
|
|
|
beginloop(0x09)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x2f)
|
|
reloop(0x09)
|
|
|
|
label(0x2f)
|
|
if_target_in_fov_left(10, /*goto*/ 0x06)
|
|
if_timer_gt(60, /*goto*/ 0x06)
|
|
endloop(0x09)
|
|
|
|
label(0x06)
|
|
say_quip(CHR_TARGET, 0x0a, 0xff, 0x00, 0xff, 0x81, 0x03, 0x08)
|
|
restart_timer
|
|
|
|
beginloop(0x56)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x56)
|
|
|
|
label(0x06)
|
|
dprint 'T','A','L','K',' ','1','\n',0,
|
|
say_quip(CHR_TARGET, 0x0b, 0xff, 0x00, 0xff, 0x81, 0x04, 0x09)
|
|
restart_timer
|
|
|
|
beginloop(0x57)
|
|
if_timer_gt(120, /*goto*/ 0x0a)
|
|
endloop(0x57)
|
|
|
|
label(0x0a)
|
|
restart_timer
|
|
stop_chr
|
|
say_quip(CHR_TARGET, 0x0c, 0xff, 0x00, 0xff, 0x81, 0x05, 0x08)
|
|
|
|
beginloop(0x0b)
|
|
if_timer_gt(90, /*goto*/ 0x55)
|
|
endloop(0x0b)
|
|
|
|
label(0x55)
|
|
go_to_target_pad(SPEED_JOG)
|
|
|
|
beginloop(0x0c)
|
|
if_chr_stopped(/*goto*/ 0x06)
|
|
endloop(0x0c)
|
|
|
|
label(0x06)
|
|
if_self_flag_bankx_eq(CHRFLAG0_SKIPSAFETYCHECKS, TRUE, BANK_0, /*goto*/ 0x06)
|
|
if_self_flag_bankx_eq(CHRFLAG0_FORCESAFETYCHECKS, TRUE, BANK_0, /*goto*/ 0x2f)
|
|
if_object_in_good_condition(OBJ_ALARMTERM3, /*goto*/ 0x30)
|
|
goto_next(0x11)
|
|
|
|
label(0x30)
|
|
set_stage_flag(STAGEFLAG_ALARM3_ACTIVE)
|
|
assign_sound(SFX_TYPING_8118, CHANNEL_6)
|
|
control_sound_from_object(CHANNEL_6, OBJ_GOODTERM3, TRUE)
|
|
goto_next(0x0f)
|
|
|
|
label(0x06)
|
|
if_object_in_good_condition(OBJ_ALARMTERM1, /*goto*/ 0x30)
|
|
goto_next(0x11)
|
|
|
|
label(0x30)
|
|
set_stage_flag(STAGEFLAG_ALARM1_ACTIVE)
|
|
assign_sound(SFX_TYPING_8118, CHANNEL_6)
|
|
control_sound_from_object(CHANNEL_6, OBJ_GOODTERM1, TRUE)
|
|
goto_next(0x0f)
|
|
|
|
label(0x2f)
|
|
if_object_in_good_condition(OBJ_ALARMTERM2, /*goto*/ 0x30)
|
|
goto_next(0x11)
|
|
|
|
label(0x30)
|
|
set_stage_flag(STAGEFLAG_ALARM2_ACTIVE)
|
|
assign_sound(SFX_TYPING_8118, CHANNEL_6)
|
|
control_sound_from_object(CHANNEL_6, OBJ_GOODTERM2, TRUE)
|
|
goto_next(0x0f)
|
|
|
|
label(0x11)
|
|
say_quip(CHR_TARGET, 0x10, 0xff, 0x00, 0xff, 0x81, 0x09, 0x08)
|
|
goto_next(0x78)
|
|
|
|
label(0x0f)
|
|
speak(CHR_TARGET, 0xffff, SFX_TYPING_8118, CHANNEL_9, COLOR_00_GREEN) // unknown text
|
|
say_quip(CHR_TARGET, 0x0e, 0xff, 0x00, 0xff, 0x81, 0x07, 0x08)
|
|
chr_do_animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 193, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x0d)
|
|
if_chr_stopped(/*goto*/ 0x30)
|
|
endloop(0x0d)
|
|
|
|
label(0x30)
|
|
activate_alarm
|
|
label(0x78)
|
|
label(0x06)
|
|
stop_chr
|
|
|
|
beginloop(0x0e)
|
|
endloop(0x0e)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func1009_weaponscache[] = {
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_chr_activated_object(CHR_TARGET, OBJ_CACHETERMINAL, /*goto*/ 0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_chr_has_hiddenflag(CHR_BOND, CHRHFLAG_DETECTED, /*goto*/ 0x2f)
|
|
show_hudmsg(CHR_TARGET, L_EAR_098) // "Secret weapons compartment opened."
|
|
play_sound(SFX_00F7, -1)
|
|
assign_sound(SFX_043B, CHANNEL_5)
|
|
control_sound_from_object(CHANNEL_5, OBJ_CMP150_1, TRUE)
|
|
disable_object(OBJ_CACHEDOOR1)
|
|
disable_object(OBJ_CACHEDOOR2)
|
|
unset_object_flag(OBJ_CMP150_1, OBJFLAG_UNCOLLECTABLE)
|
|
unset_object_flag2(OBJ_CMP150_1, OBJFLAG2_INVISIBLE)
|
|
unset_object_flag(OBJ_CMP150_2, OBJFLAG_UNCOLLECTABLE)
|
|
unset_object_flag2(OBJ_CMP150_2, OBJFLAG2_INVISIBLE)
|
|
set_object_flag2(OBJ_CMP150_1, OBJFLAG2_PICKUPWITHOUTLOS)
|
|
set_object_flag2(OBJ_CMP150_2, OBJFLAG2_PICKUPWITHOUTLOS)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x2f)
|
|
show_hudmsg(CHR_TARGET, L_EAR_099) // "Enemy detected - weapon cache locked."
|
|
play_sound(SFX_00F7, -1)
|
|
unset_stage_flag(STAGEFLAG_BOT_ACTIVE)
|
|
unset_stage_flag(STAGEFLAG_BOT_REPROGRAMMED)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* The second terminal you're supposed to activate.
|
|
*
|
|
* If turning the bot on without reprogramming it first, the bot will run
|
|
* without a program where it moves in a small circle at slow speed.
|
|
*
|
|
* If turning the bot on after reprogramming it will start the maintenance
|
|
* cycle (lasers).
|
|
*/
|
|
u8 func1002_bot_activation_terminal[] = {
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f)
|
|
goto_next(0x04)
|
|
|
|
label(0x2f)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_chr_activated_object(CHR_TARGET, OBJ_BOT_ACTIVATION_TERMINAL, /*goto*/ 0x2f)
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_objective_failed(1, /*goto*/ 0x0b)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x08)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE, TRUE, /*goto*/ 0x0a)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_REPROGRAMMED, TRUE, /*goto*/ 0x2f)
|
|
|
|
// Activating prior to reprogramming
|
|
play_sound(SFX_01CA, -1)
|
|
assign_sound(SFX_01C5, CHANNEL_3)
|
|
play_sound_from_object(CHANNEL_3, OBJ_PURPLEBOT, 1, 600, 800)
|
|
show_hudmsg(CHR_TARGET, L_EAR_015) // "Maintenance robots activated."
|
|
set_stage_flag(STAGEFLAG_BOT_ACTIVE)
|
|
set_stage_flag(STAGEFLAG_BOT_ACTIVE_NOPROGRAM)
|
|
reloop(0x04)
|
|
|
|
// Activating after reprogramming
|
|
label(0x2f)
|
|
show_hudmsg(CHR_TARGET, L_EAR_015) // "Maintenance robots activated."
|
|
set_stage_flag(STAGEFLAG_BOT_ACTIVE)
|
|
yield
|
|
play_sound(SFX_00F7, -1)
|
|
show_hudmsg(CHR_TARGET, L_EAR_018) // "Maintenance cycle activated."
|
|
set_stage_flag(STAGEFLAG_BOT_ACTIVE_MAINTENANCE)
|
|
reloop(0x04)
|
|
|
|
// Attempting to deactivate while bot reprogrammed and running
|
|
label(0x08)
|
|
play_sound(SFX_00F7, -1)
|
|
show_hudmsg(CHR_TARGET, L_EAR_020) // "Operation not allowed - robots busy."
|
|
restart_timer
|
|
|
|
beginloop(0x09)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x09)
|
|
|
|
label(0x06)
|
|
reloop(0x04)
|
|
|
|
// Deactivating
|
|
label(0x0a)
|
|
show_hudmsg(CHR_TARGET, L_EAR_021) // "Maintenance robots deactivated."
|
|
unset_stage_flag(STAGEFLAG_BOT_ACTIVE)
|
|
unset_stage_flag(STAGEFLAG_BOT_ACTIVE_CLEANING)
|
|
unset_stage_flag(STAGEFLAG_BOT_ACTIVE_NOPROGRAM)
|
|
play_sound(SFX_01C9, -1)
|
|
mute_channel(CHANNEL_3)
|
|
reloop(0x04)
|
|
|
|
label(0x0b)
|
|
play_sound(SFX_00F7, -1)
|
|
show_hudmsg(CHR_TARGET, L_EAR_023) // "Maintenance robot system offline."
|
|
endloop(0x04)
|
|
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* The first terminal you're supposed to activate.
|
|
*
|
|
* If activated while the bot is offline, the bot is reprogrammed with the
|
|
* maintenance cycle (ie. lasers) but still needs to be started.
|
|
*
|
|
* If activated while the bot is running with no program, the bot is
|
|
* reprogrammed with the cleaning cycle (up and down the room at medium speed).
|
|
*/
|
|
u8 func1003_bot_programming_terminal[] = {
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f)
|
|
goto_next(0x04)
|
|
|
|
label(0x2f)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_chr_activated_object(CHR_TARGET, OBJ_BOT_PROGRAMMING_TERMINAL, /*goto*/ 0x2f)
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_objective_failed(1, /*goto*/ 0x0b)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x09)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x09)
|
|
|
|
// Reprogramming
|
|
play_sound(SFX_00F7, -1)
|
|
show_hudmsg(CHR_TARGET, L_EAR_016) // "Maintenance robots reprogrammed."
|
|
set_stage_flag(STAGEFLAG_BOT_REPROGRAMMED)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE, TRUE, /*goto*/ 0x2f)
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
yield
|
|
play_sound(SFX_00F7, -1)
|
|
show_hudmsg(CHR_TARGET, L_EAR_019) // "Routine cleaning cycle activated."
|
|
set_stage_flag(STAGEFLAG_BOT_ACTIVE_CLEANING)
|
|
restart_timer
|
|
|
|
beginloop(0x08)
|
|
if_timer_gt(300, /*goto*/ 0x06)
|
|
endloop(0x08)
|
|
|
|
label(0x06)
|
|
reloop(0x04)
|
|
|
|
// Attempting to reprogram while bot already reprogrammed and running
|
|
label(0x09)
|
|
play_sound(SFX_00F7, -1)
|
|
show_hudmsg(CHR_TARGET, L_EAR_020) // "Operation not allowed - robots busy."
|
|
restart_timer
|
|
|
|
beginloop(0x0a)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x0a)
|
|
|
|
label(0x06)
|
|
reloop(0x04)
|
|
|
|
label(0x0b)
|
|
show_hudmsg(CHR_TARGET, L_EAR_023) // "Maintenance robot system offline."
|
|
endloop(0x04)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func1004_check_items_collected[] = {
|
|
yield
|
|
set_object_flag3(OBJ_K7AVENGER, OBJFLAG3_PLAYERUNDROPPABLE)
|
|
set_object_flag3(OBJ_NIGHTVISION, OBJFLAG3_PLAYERUNDROPPABLE)
|
|
set_object_flag3(OBJ_SHIELD, OBJFLAG3_PLAYERUNDROPPABLE)
|
|
|
|
beginloop(0x04)
|
|
if_chr_has_object(CHR_BOND, OBJ_K7AVENGER, /*goto*/ 0x2f)
|
|
if_chr_has_object(CHR_COOP, OBJ_K7AVENGER, /*goto*/ 0x2f)
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_chr_has_object(CHR_BOND, OBJ_NIGHTVISION, /*goto*/ 0x2f)
|
|
if_chr_has_object(CHR_COOP, OBJ_NIGHTVISION, /*goto*/ 0x2f)
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_chr_has_object(CHR_BOND, OBJ_SHIELD, /*goto*/ 0x2f)
|
|
if_chr_has_object(CHR_COOP, OBJ_SHIELD, /*goto*/ 0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x2f)
|
|
yield
|
|
set_stage_flag(STAGEFLAG_ALL_ITEMS_COLLECTED)
|
|
unset_stage_flag(STAGEFLAG_ITEMS_UNCOLLECTABLE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1018_item_pickup_messages[] = {
|
|
if_difficulty_lt(DIFF_PA, /*goto*/ 0x0d)
|
|
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
if_stage_flag_eq(STAGEFLAG_HAS_K7AVENGER, TRUE, /*goto*/ 0x2f)
|
|
if_chr_has_object(CHR_P1P2, OBJ_K7AVENGER, /*goto*/ 0x06)
|
|
goto_next(0x2f)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_P1P2, L_EAR_086) // "Experimental item 1 acquired."
|
|
set_stage_flag(STAGEFLAG_HAS_K7AVENGER)
|
|
label(0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_HAS_NIGHTVISION, TRUE, /*goto*/ 0x2f)
|
|
if_chr_has_object(CHR_P1P2, OBJ_NIGHTVISION, /*goto*/ 0x06)
|
|
goto_next(0x2f)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_P1P2, L_EAR_087) // "Experimental item 2 acquired."
|
|
set_stage_flag(STAGEFLAG_HAS_NIGHTVISION)
|
|
label(0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_HAS_SHIELD, TRUE, /*goto*/ 0x2f)
|
|
if_chr_has_object(CHR_P1P2, OBJ_SHIELD, /*goto*/ 0x06)
|
|
goto_next(0x2f)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_P1P2, L_EAR_088) // "Experimental item 3 acquired."
|
|
set_stage_flag(STAGEFLAG_HAS_SHIELD)
|
|
label(0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x0d)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1005_check_unacceptable_casualties[] = {
|
|
beginloop(0x04)
|
|
if_chr_dead(0x35, /*goto*/ 0x08)
|
|
if_chr_death_animation_finished(0x35, /*goto*/ 0x08)
|
|
if_chr_dead(0x36, /*goto*/ 0x09)
|
|
if_chr_death_animation_finished(0x36, /*goto*/ 0x09)
|
|
if_chr_dead(0x37, /*goto*/ 0x0a)
|
|
if_chr_death_animation_finished(0x37, /*goto*/ 0x0a)
|
|
if_chr_dead(0x38, /*goto*/ 0x0a)
|
|
if_chr_death_animation_finished(0x38, /*goto*/ 0x0a)
|
|
reloop(0x04)
|
|
|
|
label(0x08)
|
|
if_difficulty_lt(DIFF_PA, /*goto*/ 0x2f)
|
|
goto_next(0x0f)
|
|
|
|
if_chr_dead(0x36, /*goto*/ 0x0b)
|
|
if_chr_death_animation_finished(0x36, /*goto*/ 0x0b)
|
|
if_chr_dead(0x37, /*goto*/ 0x0c)
|
|
if_chr_death_animation_finished(0x37, /*goto*/ 0x0c)
|
|
label(0x0b)
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f)
|
|
goto_next(0x0f)
|
|
|
|
label(0x2f)
|
|
if_chr_dead(0x37, /*goto*/ 0x0f)
|
|
if_chr_death_animation_finished(0x37, /*goto*/ 0x0f)
|
|
reloop(0x04)
|
|
|
|
label(0x0c)
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f)
|
|
goto_next(0x0f)
|
|
label(0x2f)
|
|
reloop(0x04)
|
|
|
|
label(0x09)
|
|
if_difficulty_lt(DIFF_PA, /*goto*/ 0x2f)
|
|
goto_next(0x0f)
|
|
label(0x2f)
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f)
|
|
if_chr_dead(0x37, /*goto*/ 0x0f)
|
|
if_chr_death_animation_finished(0x37, /*goto*/ 0x0f)
|
|
label(0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x0a)
|
|
if_difficulty_lt(DIFF_PA, /*goto*/ 0x2f)
|
|
goto_next(0x0f)
|
|
|
|
label(0x2f)
|
|
label(0x0f)
|
|
set_stage_flag(STAGEFLAG_UNACCEPTABLE_CASUALTIES)
|
|
show_hudmsg(CHR_BOND, L_EAR_026) // "Unacceptable scientist casualties."
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1006_terminal_activation[] = {
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_chr_activated_object(CHR_TARGET, OBJ_GOODTERM1, /*goto*/ 0x08)
|
|
if_chr_activated_object(CHR_TARGET, OBJ_ALARMTERM1, /*goto*/ 0x09)
|
|
if_chr_activated_object(CHR_TARGET, OBJ_GOODTERM2, /*goto*/ 0x0d)
|
|
if_chr_activated_object(CHR_TARGET, OBJ_ALARMTERM2, /*goto*/ 0x0b)
|
|
if_chr_activated_object(CHR_TARGET, OBJ_GOODTERM3, /*goto*/ 0x0f)
|
|
if_chr_activated_object(CHR_TARGET, OBJ_ALARMTERM3, /*goto*/ 0x0c)
|
|
if_chr_activated_object(CHR_TARGET, 0x0b, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x0c, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x0d, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x0e, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x10, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x11, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x12, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x13, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x15, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x16, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x17, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x18, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x1a, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x1b, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x1c, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x1d, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x1e, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x1f, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x20, /*goto*/ 0x2f)
|
|
if_chr_activated_object(CHR_TARGET, 0x21, /*goto*/ 0x2f)
|
|
endloop(0x04)
|
|
|
|
// Inactive terminal
|
|
label(0x2f)
|
|
speak(CHR_TARGET, 0xffff, SFX_TYPING_8118, CHANNEL_9, COLOR_00_GREEN) // unknown text
|
|
show_hudmsg(CHR_TARGET, L_EAR_027) // "Terminal is not active."
|
|
restart_timer
|
|
|
|
beginloop(0x56)
|
|
if_timer_gt(120, /*goto*/ 0x2f)
|
|
endloop(0x56)
|
|
|
|
label(0x2f)
|
|
reloop(0x04)
|
|
|
|
// Good terminal 0x07
|
|
label(0x08)
|
|
speak(CHR_TARGET, 0xffff, SFX_TYPING_8118, CHANNEL_9, COLOR_00_GREEN) // unknown text
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT1, FALSE, /*goto*/ 0x2f)
|
|
restart_timer
|
|
|
|
beginloop(0x56)
|
|
if_timer_gt(60, /*goto*/ 0x06)
|
|
endloop(0x56)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_042) // "Experiment already powered down."
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
show_hudmsg(CHR_TARGET, L_EAR_028) // "Powering down active systems."
|
|
assign_sound(SFX_01C3, CHANNEL_5)
|
|
control_sound_from_object(CHANNEL_5, OBJ_GOODTERM1, TRUE)
|
|
restart_timer
|
|
|
|
beginloop(0x0a)
|
|
if_timer_gt(180, /*goto*/ 0x06)
|
|
endloop(0x0a)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_029) // "Experiment has been shut down."
|
|
set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT1)
|
|
reloop(0x04)
|
|
|
|
// Good terminal 0x08
|
|
label(0x0d)
|
|
speak(CHR_TARGET, 0xffff, SFX_TYPING_8118, CHANNEL_9, COLOR_00_GREEN) // unknown text
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT2, FALSE, /*goto*/ 0x2f)
|
|
restart_timer
|
|
|
|
beginloop(0x57)
|
|
if_timer_gt(60, /*goto*/ 0x06)
|
|
endloop(0x57)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_042) // "Experiment already powered down."
|
|
goto_first(0x04)
|
|
|
|
label(0x2f)
|
|
show_hudmsg(CHR_TARGET, L_EAR_028) // "Powering down active systems."
|
|
assign_sound(SFX_01C3, CHANNEL_5)
|
|
control_sound_from_object(CHANNEL_5, OBJ_GOODTERM2, TRUE)
|
|
restart_timer
|
|
|
|
beginloop(0x0e)
|
|
if_timer_gt(180, /*goto*/ 0x06)
|
|
endloop(0x0e)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_029) // "Experiment has been shut down."
|
|
set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT2)
|
|
reloop(0x04)
|
|
|
|
// Good terminal 0x09
|
|
label(0x0f)
|
|
speak(CHR_TARGET, 0xffff, SFX_TYPING_8118, CHANNEL_9, COLOR_00_GREEN) // unknown text
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT3, FALSE, /*goto*/ 0x2f)
|
|
restart_timer
|
|
|
|
beginloop(0x58)
|
|
if_timer_gt(60, /*goto*/ 0x06)
|
|
endloop(0x58)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_042) // "Experiment already powered down."
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
show_hudmsg(CHR_TARGET, L_EAR_028) // "Powering down active systems."
|
|
assign_sound(SFX_01C3, CHANNEL_5)
|
|
control_sound_from_object(CHANNEL_5, OBJ_GOODTERM3, TRUE)
|
|
restart_timer
|
|
|
|
beginloop(0x10)
|
|
if_timer_gt(180, /*goto*/ 0x06)
|
|
endloop(0x10)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_029) // "Experiment has been shut down."
|
|
set_stage_flag(STAGEFLAG_SHUT_DOWN_EXPERIMENT3)
|
|
reloop(0x04)
|
|
|
|
// Alarm terminal 0x0f
|
|
label(0x09)
|
|
if_alarm_active(/*goto*/ 0x06)
|
|
speak(CHR_TARGET, 0xffff, SFX_TYPING_8118, CHANNEL_9, COLOR_00_GREEN) // unknown text
|
|
show_hudmsg(CHR_TARGET, L_EAR_030) // "Alarm activated."
|
|
set_stage_flag(STAGEFLAG_ALARM1_ACTIVE)
|
|
activate_alarm
|
|
reloop(0x04)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_031) // "Alarm deactivated."
|
|
unset_stage_flag(STAGEFLAG_ALARM1_ACTIVE)
|
|
deactivate_alarm
|
|
reloop(0x04)
|
|
|
|
// Alarm terminal 0x14
|
|
label(0x0b)
|
|
if_alarm_active(/*goto*/ 0x06)
|
|
speak(CHR_TARGET, 0xffff, SFX_TYPING_8118, CHANNEL_9, COLOR_00_GREEN) // unknown text
|
|
show_hudmsg(CHR_TARGET, L_EAR_030) // "Alarm activated."
|
|
set_stage_flag(STAGEFLAG_ALARM2_ACTIVE)
|
|
activate_alarm
|
|
reloop(0x04)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_031) // "Alarm deactivated."
|
|
unset_stage_flag(STAGEFLAG_ALARM2_ACTIVE)
|
|
deactivate_alarm
|
|
reloop(0x04)
|
|
|
|
// Alarm terminal 0x19
|
|
label(0x0c)
|
|
if_alarm_active(/*goto*/ 0x06)
|
|
speak(CHR_TARGET, 0xffff, SFX_TYPING_8118, CHANNEL_9, COLOR_00_GREEN) // unknown text
|
|
show_hudmsg(CHR_TARGET, L_EAR_030) // "Alarm activated."
|
|
set_stage_flag(STAGEFLAG_ALARM3_ACTIVE)
|
|
activate_alarm
|
|
reloop(0x04)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_031) // "Alarm deactivated."
|
|
unset_stage_flag(STAGEFLAG_ALARM3_ACTIVE)
|
|
deactivate_alarm
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
endloop(0x04)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func1007_uplink[] = {
|
|
beginloop(0x04)
|
|
if_object_in_good_condition(OBJ_UPLINKPC, /*goto*/ 0x30)
|
|
goto_next(0x0d)
|
|
|
|
label(0x30)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_chr_activated_object(CHR_TARGET, OBJ_UPLINKPC, /*goto*/ 0x2f)
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_UPLINK_FINISHED, FALSE, /*goto*/ 0x06)
|
|
|
|
// Activating a second time
|
|
speak(CHR_TARGET, 0xffff, SFX_8116, CHANNEL_9, COLOR_00_GREEN) // unknown text
|
|
show_hudmsg(CHR_TARGET, L_EAR_041) // "Security door already unlocked."
|
|
reloop(0x04)
|
|
|
|
label(0x06)
|
|
if_chr_weapon_equipped(CHR_TARGET, WEAPON_DATAUPLINK, /*goto*/ 0x2f)
|
|
|
|
// Activated computer without uplink
|
|
speak(CHR_TARGET, 0xffff, SFX_8116, CHANNEL_9, COLOR_00_GREEN) // unknown text
|
|
show_hudmsg(CHR_TARGET, L_EAR_036) // "ACCESS DENIED - security code required."
|
|
reloop(0x04)
|
|
|
|
// Uplinking
|
|
label(0x2f)
|
|
show_hudmsg(CHR_TARGET, L_EAR_060) // "Connection established."
|
|
restart_timer
|
|
|
|
// First second of uplinking
|
|
beginloop(0x08)
|
|
if_object_in_good_condition(OBJ_UPLINKPC, /*goto*/ 0x30)
|
|
goto_next(0x0d)
|
|
|
|
label(0x30)
|
|
if_timer_gt(60, /*goto*/ 0x06)
|
|
if_chr_distance_to_pad_gt(CHR_TARGET, 200, PAD_EAR_025A, /*goto*/ 0x09)
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT1, FALSE, /*goto*/ 0x0b)
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT2, FALSE, /*goto*/ 0x0b)
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT3, FALSE, /*goto*/ 0x0b)
|
|
label(0x2f)
|
|
if_chr_weapon_equipped(CHR_TARGET, WEAPON_DATAUPLINK, /*goto*/ 0x2f)
|
|
goto_next(0x09)
|
|
label(0x2f)
|
|
endloop(0x08)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_037) // "Searching for password."
|
|
restart_timer
|
|
set_stage_flag(STAGEFLAG_UPLINK_SEARCHING)
|
|
assign_sound(SFX_01BF, CHANNEL_5)
|
|
control_sound_from_object(CHANNEL_5, OBJ_UPLINKPC, TRUE)
|
|
|
|
beginloop(0x14)
|
|
if_object_in_good_condition(OBJ_UPLINKPC, /*goto*/ 0x30)
|
|
goto_next(0x0d)
|
|
|
|
label(0x30)
|
|
if_timer_gt(400, /*goto*/ 0x06)
|
|
if_chr_distance_to_pad_gt(CHR_TARGET, 200, PAD_EAR_025A, /*goto*/ 0x09)
|
|
if_chr_weapon_equipped(CHR_TARGET, WEAPON_DATAUPLINK, /*goto*/ 0x2f)
|
|
goto_next(0x09)
|
|
label(0x2f)
|
|
endloop(0x14)
|
|
|
|
label(0x06)
|
|
mute_channel(CHANNEL_5)
|
|
assign_sound(SFX_01C1, CHANNEL_6)
|
|
control_sound_from_object(CHANNEL_6, OBJ_UPLINKPC, TRUE)
|
|
show_hudmsg(CHR_TARGET, L_EAR_039) // "Password located - bypassing lock."
|
|
yield
|
|
show_hudmsg(CHR_TARGET, L_EAR_017) // "Security doors unlocked."
|
|
set_stage_flag(STAGEFLAG_UPLINK_FINISHED)
|
|
unlock_door(OBJ_UPLINKDOOR, 0x02)
|
|
|
|
beginloop(0x15)
|
|
if_timer_gt(90, /*goto*/ 0x06)
|
|
endloop(0x15)
|
|
|
|
label(0x06)
|
|
assign_sound(SFX_043B, CHANNEL_6)
|
|
control_sound_from_object(CHANNEL_6, 0x22, TRUE)
|
|
reloop(0x04)
|
|
|
|
// Moved away from PC or switched weapon
|
|
label(0x09)
|
|
show_hudmsg(CHR_TARGET, L_EAR_040) // "Contact broken - reestablish link."
|
|
mute_channel(CHANNEL_5)
|
|
mute_channel(CHANNEL_6)
|
|
assign_sound(SFX_01C0, CHANNEL_6)
|
|
control_sound_from_object(CHANNEL_6, OBJ_UPLINKPC, TRUE)
|
|
restart_timer
|
|
|
|
beginloop(0x16)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x16)
|
|
|
|
label(0x06)
|
|
mute_channel(CHANNEL_6)
|
|
reloop(0x04)
|
|
|
|
label(0x0b)
|
|
restart_timer
|
|
|
|
beginloop(0x0c)
|
|
if_timer_gt(60, /*goto*/ 0x06)
|
|
endloop(0x0c)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_085) // "Connection broken - experiments still active."
|
|
mute_channel(CHANNEL_5)
|
|
mute_channel(CHANNEL_6)
|
|
assign_sound(SFX_01C0, CHANNEL_6)
|
|
control_sound_from_object(CHANNEL_6, OBJ_UPLINKPC, TRUE)
|
|
restart_timer
|
|
|
|
beginloop(0x17)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x17)
|
|
|
|
label(0x06)
|
|
mute_channel(CHANNEL_6)
|
|
endloop(0x04)
|
|
|
|
label(0x0d)
|
|
mute_channel(CHANNEL_5)
|
|
mute_channel(CHANNEL_6)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1008_check_bot_terminals_destroyed[] = {
|
|
beginloop(0x04)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x08)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x2f)
|
|
if_object_in_good_condition(OBJ_BOT_ACTIVATION_TERMINAL, /*goto*/ 0x2f)
|
|
set_stage_flag(STAGEFLAG_BOT_ACTIVATION_TERMINAL_DESTROYED)
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f)
|
|
show_hudmsg(CHR_BOND, L_EAR_022) // "Critical mission object destroyed."
|
|
label(0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED, TRUE, /*goto*/ 0x2f)
|
|
if_object_in_good_condition(OBJ_BOT_PROGRAMMING_TERMINAL, /*goto*/ 0x2f)
|
|
set_stage_flag(STAGEFLAG_BOT_PROGRAMMING_TERMINAL_DESTROYED)
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f)
|
|
show_hudmsg(CHR_BOND, L_EAR_022) // "Critical mission object destroyed."
|
|
label(0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x08)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1001_objectives_failed_msg[] = {
|
|
yield
|
|
// These are scientist chrs
|
|
set_chr_chrflag(0x35, CHRCFLAG_KEEPCORPSEKO)
|
|
set_chr_chrflag(0x36, CHRCFLAG_KEEPCORPSEKO)
|
|
set_chr_chrflag(0x37, CHRCFLAG_KEEPCORPSEKO)
|
|
set_chr_chrflag(0x38, CHRCFLAG_KEEPCORPSEKO)
|
|
set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG)
|
|
endlist
|
|
};
|
|
|
|
u8 func100a_spawn_alarm_responders[] = {
|
|
beginloop(0x04)
|
|
if_alarm_active(/*goto*/ 0x06)
|
|
reloop(0x04)
|
|
|
|
label(0x06)
|
|
if_stage_flag_eq(STAGEFLAG_ALARM_RESPONDERS_SPAWNED, TRUE, /*goto*/ 0x0c)
|
|
set_stage_flag(STAGEFLAG_ALARM_RESPONDERS_SPAWNED)
|
|
restart_timer
|
|
|
|
beginloop(0x56)
|
|
try_spawn_chr_at_pad(BODY_DDSHOCK, HEAD_RANDOM, PAD_EAR_005D, AILIST_ALARM_RESPONDER, SPAWNFLAG_00000200, /*goto*/ 0x08)
|
|
endloop(0x56)
|
|
|
|
beginloop(0x08)
|
|
if_timer_gt(30, /*goto*/ 0x06)
|
|
endloop(0x08)
|
|
|
|
label(0x06)
|
|
beginloop(0x57)
|
|
try_spawn_chr_at_pad(BODY_DDSHOCK, HEAD_RANDOM, PAD_EAR_005D, AILIST_ALARM_RESPONDER, SPAWNFLAG_00000200, /*goto*/ 0x09)
|
|
endloop(0x57)
|
|
|
|
beginloop(0x09)
|
|
if_timer_gt(30, /*goto*/ 0x06)
|
|
endloop(0x09)
|
|
|
|
label(0x06)
|
|
beginloop(0x58)
|
|
try_spawn_chr_at_pad(BODY_DDSHOCK, HEAD_RANDOM, PAD_EAR_005D, AILIST_ALARM_RESPONDER, SPAWNFLAG_00000200, /*goto*/ 0x0a)
|
|
endloop(0x58)
|
|
|
|
beginloop(0x0a)
|
|
if_timer_gt(30, /*goto*/ 0x06)
|
|
endloop(0x0a)
|
|
|
|
label(0x06)
|
|
beginloop(0x59)
|
|
try_spawn_chr_at_pad(BODY_DDSHOCK, HEAD_RANDOM, PAD_EAR_005D, AILIST_ALARM_RESPONDER, SPAWNFLAG_00000200, /*goto*/ 0x0b)
|
|
endloop(0x59)
|
|
|
|
beginloop(0x0b)
|
|
if_timer_gt(30, /*goto*/ 0x0c)
|
|
endloop(0x0b)
|
|
|
|
set_stage_flag(STAGEFLAG_ALARM_RESPONDERS_SPAWNED)
|
|
label(0x0c)
|
|
endloop(0x04)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func0408_alarm_responder[] = {
|
|
set_self_flag_bankx(CHRFLAG1_NOIDLEANIMS, BANK_1)
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f)
|
|
set_accuracy(20)
|
|
goto_next(0x06)
|
|
|
|
label(0x2f)
|
|
set_accuracy(10)
|
|
|
|
label(0x06)
|
|
try_inherit_properties(0x19, /*goto*/ 0x06)
|
|
label(0x06)
|
|
try_equip_weapon(MODEL_CHRCMP150, WEAPON_CMP150, 0x00000000, /*goto*/ 0x06)
|
|
label(0x06)
|
|
set_chr_team(CHR_SELF, TEAM_ENEMY)
|
|
set_squadron(SQUADRON_09)
|
|
set_self_flag_bankx(CHRFLAG0_SKIPSAFETYCHECKS, BANK_0)
|
|
set_self_flag_bankx(CHRFLAG0_00008000, BANK_0)
|
|
set_alertness(90)
|
|
set_self_chrflag(CHRCFLAG_00000200)
|
|
|
|
// Run to scientist based on which alarm was triggered
|
|
if_stage_flag_eq(STAGEFLAG_ALARM1_ACTIVE, TRUE, /*goto*/ 0x08)
|
|
if_stage_flag_eq(STAGEFLAG_ALARM2_ACTIVE, TRUE, /*goto*/ 0x09)
|
|
try_run_to_chr(0x37, /*goto*/ 0x06)
|
|
goto_next(0x06)
|
|
|
|
label(0x08)
|
|
try_run_to_chr(0x35, /*goto*/ 0x06)
|
|
goto_next(0x06)
|
|
|
|
label(0x09)
|
|
try_run_to_chr(0x36, /*goto*/ 0x06)
|
|
goto_next(0x06)
|
|
|
|
label(0x06)
|
|
rebuild_teams
|
|
rebuild_squadrons
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED_0001)
|
|
endlist
|
|
};
|
|
|
|
u8 func100b_check_uplink_pc_destroyed[] = {
|
|
beginloop(0x04)
|
|
if_stage_flag_eq(STAGEFLAG_UPLINK_FINISHED, TRUE, /*goto*/ 0x08)
|
|
if_object_in_good_condition(OBJ_UPLINKPC, /*goto*/ 0x2f)
|
|
set_stage_flag(STAGEFLAG_UPLINKPC_DESTROYED)
|
|
show_hudmsg(CHR_BOND, L_EAR_022) // "Critical mission object destroyed."
|
|
goto_next(0x08)
|
|
label(0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x08)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func0411_yellowbot[] = {
|
|
dprint 'h','o','v','\n',0,
|
|
label(0x03)
|
|
begin_hovercar_path(0x05)
|
|
set_vehicle_speed(512, 120)
|
|
|
|
beginloop(0x04)
|
|
if_hoverbot_next_step(OPERATOR_GREATER_THAN, 10, /*goto*/ 0x06)
|
|
endloop(0x04)
|
|
|
|
label(0x06)
|
|
begin_hovercar_path(0x06)
|
|
set_vehicle_speed(512, 120)
|
|
|
|
beginloop(0x08)
|
|
if_hoverbot_next_step(OPERATOR_GREATER_THAN, 8, /*goto*/ 0x06)
|
|
endloop(0x08)
|
|
|
|
label(0x06)
|
|
goto_first(0x03)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func0412_purplebot_programs[] = {
|
|
dprint 'h','o','v','\n',0,
|
|
if_difficulty_gt(DIFF_A, /*goto*/ 0x04)
|
|
|
|
// Agent
|
|
dprint 'm','o','v','\n',0,
|
|
move_object_to_pad(OBJ_PURPLEBOT, PAD_EAR_00BE)
|
|
goto_next(0x14)
|
|
|
|
// SA or PA
|
|
beginloop(0x04)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_NOPROGRAM, TRUE, /*goto*/ 0x0a)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x0c)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x08)
|
|
endloop(0x04)
|
|
|
|
// Cleaning cycle (up and down the terminal room at medium speed)
|
|
label(0x08)
|
|
begin_hovercar_path(0x07)
|
|
set_vehicle_speed(512, 120)
|
|
|
|
beginloop(0x09)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_NOPROGRAM, FALSE, /*goto*/ 0x0e)
|
|
if_hoverbot_next_step(OPERATOR_GREATER_THAN, 1, /*goto*/ 0x06)
|
|
endloop(0x09)
|
|
|
|
label(0x06)
|
|
goto_first(0x08)
|
|
|
|
// No program (small circles at low speed)
|
|
label(0x0a)
|
|
begin_hovercar_path(0x08)
|
|
set_vehicle_speed(128, 120)
|
|
|
|
beginloop(0x0b)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_NOPROGRAM, FALSE, /*goto*/ 0x0e)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x10)
|
|
if_hoverbot_next_step(OPERATOR_GREATER_THAN, 1, /*goto*/ 0x06)
|
|
endloop(0x0b)
|
|
|
|
label(0x06)
|
|
goto_first(0x0a)
|
|
|
|
// Maintenance cycle - on route to lasers (high speed)
|
|
label(0x0c)
|
|
begin_hovercar_path(0x09)
|
|
set_vehicle_speed(768, 120)
|
|
|
|
beginloop(0x0d)
|
|
if_hoverbot_next_step(OPERATOR_GREATER_THAN, 24, /*goto*/ 0x06)
|
|
endloop(0x0d)
|
|
|
|
label(0x14)
|
|
label(0x06)
|
|
set_ailist(CHR_SELF, AILIST_PURPLEBOT_AT_LASERS)
|
|
|
|
// Returning to offline
|
|
label(0x0e)
|
|
begin_hovercar_path(0x0b)
|
|
set_vehicle_speed(512, 120)
|
|
unset_stage_flag(STAGEFLAG_BOT_ACTIVE_CLEANING)
|
|
unset_stage_flag(STAGEFLAG_BOT_REPROGRAMMED)
|
|
unset_stage_flag(STAGEFLAG_BOT_ACTIVE)
|
|
|
|
beginloop(0x0f)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_NOPROGRAM, TRUE, /*goto*/ 0x11)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_MAINTENANCE, TRUE, /*goto*/ 0x12)
|
|
if_stage_flag_eq(STAGEFLAG_BOT_ACTIVE_CLEANING, TRUE, /*goto*/ 0x10)
|
|
if_hoverbot_next_step(OPERATOR_GREATER_THAN, 1, /*goto*/ 0x06)
|
|
endloop(0x0f)
|
|
|
|
label(0x06)
|
|
set_vehicle_speed(0, 1)
|
|
goto_first(0x04)
|
|
|
|
label(0x11)
|
|
goto_first(0x0a)
|
|
|
|
label(0x12)
|
|
goto_first(0x0a)
|
|
|
|
label(0x10)
|
|
goto_first(0x08)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func0413_purplebot_at_lasers[] = {
|
|
#if VERSION < VERSION_NTSC_1_0
|
|
open_door(0x45)
|
|
#endif
|
|
label(0x03)
|
|
begin_hovercar_path(0x0a)
|
|
set_vehicle_speed(512, 120)
|
|
|
|
beginloop(0x13)
|
|
endloop(0x13)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func100c_shuffle_terminals[] = {
|
|
shuffle_investigation_terminals(OBJ_GOODTERM1, OBJ_ALARMTERM1, 0x1e, 0x1f, 0x20, 0x21)
|
|
shuffle_investigation_terminals(OBJ_GOODTERM2, OBJ_ALARMTERM2, 0x1a, 0x1b, 0x1c, 0x1d)
|
|
shuffle_investigation_terminals(OBJ_GOODTERM3, OBJ_ALARMTERM3, 0x15, 0x16, 0x17, 0x18)
|
|
yield
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func100e_experiment_terminals_destroyed[] = {
|
|
beginloop(0x04)
|
|
if_object_in_good_condition(OBJ_GOODTERM1, /*goto*/ 0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_GOODTERM_DESTROYED, TRUE, /*goto*/ 0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT1, TRUE, /*goto*/ 0x2f)
|
|
set_stage_flag(STAGEFLAG_GOODTERM_DESTROYED)
|
|
show_hudmsg(CHR_BOND, L_EAR_022) // "Critical mission object destroyed."
|
|
|
|
label(0x2f)
|
|
if_object_in_good_condition(OBJ_GOODTERM2, /*goto*/ 0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_GOODTERM_DESTROYED, TRUE, /*goto*/ 0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT2, TRUE, /*goto*/ 0x2f)
|
|
set_stage_flag(STAGEFLAG_GOODTERM_DESTROYED)
|
|
show_hudmsg(CHR_BOND, L_EAR_022) // "Critical mission object destroyed."
|
|
|
|
label(0x2f)
|
|
if_object_in_good_condition(0x09, /*goto*/ 0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_GOODTERM_DESTROYED, TRUE, /*goto*/ 0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_SHUT_DOWN_EXPERIMENT3, TRUE, /*goto*/ 0x2f)
|
|
set_stage_flag(STAGEFLAG_GOODTERM_DESTROYED)
|
|
show_hudmsg(CHR_BOND, L_EAR_022) // "Critical mission object destroyed."
|
|
|
|
label(0x2f)
|
|
endloop(0x04)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func0416_intro[] = {
|
|
play_cutscene_track(MUSIC_INVESTIGATION_INTRO)
|
|
camera_movement(ANIM_00F5)
|
|
cmd0175(60)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_PERIMDISABLEDTMP)
|
|
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
|
chr_do_animation(ANIM_00F6, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 4)
|
|
|
|
set_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_UNPLAYABLE)
|
|
set_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_PERIMDISABLEDTMP)
|
|
unset_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_HIDDEN)
|
|
set_chr_hiddenflag(CHR_INTRO_GUARD, CHRHFLAG_00020000)
|
|
chr_do_animation(ANIM_00F7, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_INTRO_GUARD, 4)
|
|
|
|
restart_timer
|
|
fade_to_color(0x000000ff, 0)
|
|
fade_to_color(0x00000000, 90)
|
|
set_cutscene_weapon(CHR_BOND, WEAPON_NONE, WEAPON_NONE)
|
|
yield
|
|
set_cutscene_weapon(CHR_BOND, WEAPON_FALCON2, WEAPON_NONE)
|
|
|
|
#define wait_until(time, loopid) \
|
|
beginloop(loopid) \
|
|
if_controller_button_pressed(/*goto*/ 0x77) \
|
|
if_timer_gt(time, /*goto*/ 0x06) \
|
|
endloop(loopid) \
|
|
label(0x06)
|
|
|
|
wait_until(0, 0x56)
|
|
play_sound(SFX_01D5, CHANNEL_7)
|
|
|
|
wait_until(250, 0x57)
|
|
play_sound(SFX_00EC, CHANNEL_10)
|
|
|
|
wait_until(270, 0x58)
|
|
play_sound(SFX_0171, CHANNEL_10)
|
|
|
|
wait_until(290, 0x59)
|
|
play_sound(SFX_0172, CHANNEL_10)
|
|
|
|
wait_until(320, 0x5a)
|
|
play_sound(SFX_0174, CHANNEL_10)
|
|
|
|
wait_until(380, 0x5b)
|
|
open_door(0x24)
|
|
play_sound(SFX_0165, CHANNEL_7)
|
|
|
|
wait_until(580, 0x5c)
|
|
play_sound(SFX_01D2, CHANNEL_7)
|
|
|
|
wait_until(950, 0x5d)
|
|
play_sound(SFX_0172, CHANNEL_7)
|
|
|
|
wait_until(990, 0x5e)
|
|
play_sound(SFX_0171, CHANNEL_7)
|
|
|
|
wait_until(1060, 0x5f)
|
|
play_sound(SFX_0172, CHANNEL_7)
|
|
|
|
wait_until(1090, 0x60)
|
|
play_sound(SFX_0173, CHANNEL_7)
|
|
|
|
wait_until(1140, 0x61)
|
|
play_sound(SFX_01D3, CHANNEL_7)
|
|
|
|
wait_until(1190, 0x62)
|
|
play_sound(SFX_0031, CHANNEL_7)
|
|
|
|
wait_until(1196, 0x68)
|
|
play_sound(SFX_ARGH_MALE_008F, CHANNEL_6)
|
|
|
|
wait_until(1310, 0x63)
|
|
play_sound(SFX_0085, CHANNEL_7)
|
|
|
|
wait_until(1370, 0x64)
|
|
play_sound(SFX_007B, CHANNEL_7)
|
|
|
|
wait_until(1410, 0x65)
|
|
play_sound(SFX_0175, CHANNEL_7)
|
|
|
|
wait_until(1430, 0x66)
|
|
play_sound(SFX_0176, CHANNEL_7)
|
|
|
|
wait_until(1600, 0x67)
|
|
play_sound(SFX_0171, CHANNEL_7)
|
|
|
|
beginloop(0x08)
|
|
if_camera_animating(/*goto*/ 0x2f)
|
|
goto_next(0x77)
|
|
label(0x2f)
|
|
if_controller_button_pressed(/*goto*/ 0x77)
|
|
label(0x2f)
|
|
endloop(0x08)
|
|
|
|
label(0x77)
|
|
set_door_open(0x24)
|
|
set_door_open(0x40)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_PERIMDISABLEDTMP)
|
|
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
|
chr_do_animation(ANIM_00F6, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 2)
|
|
|
|
unset_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_UNPLAYABLE)
|
|
set_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_INVINCIBLE)
|
|
set_chr_hiddenflag(CHR_INTRO_GUARD, CHRHFLAG_00020000)
|
|
chr_do_animation(ANIM_00F7, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_INTRO_GUARD, 2)
|
|
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
stop_cutscene_track
|
|
stop_ambient_track
|
|
enter_firstperson
|
|
yield
|
|
chr_do_animation(ANIM_020B, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_INTRO_GUARD, 2)
|
|
yield
|
|
kill(CHR_INTRO_GUARD)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func0417_outro[] = {
|
|
play_cutscene_track(MUSIC_INVESTIGATION_OUTRO)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN)
|
|
set_stage_flag(STAGEFLAG_TRIGGER_OUTRO_AUDIO)
|
|
|
|
unset_chr_chrflag(CHR_P1P2, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_P1P2, CHRCFLAG_UNPLAYABLE)
|
|
set_chr_hiddenflag(CHR_P1P2, CHRHFLAG_00020000)
|
|
|
|
set_ailist(CHR_DRCAROLL, GAILIST_IDLE)
|
|
set_ailist(CHR_K7_GUARD, GAILIST_IDLE)
|
|
restart_timer
|
|
dprint 's','h','o','t',' ','1',0,
|
|
camera_movement(ANIM_00F9)
|
|
chr_do_animation(ANIM_00FA, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 2)
|
|
set_cutscene_weapon(CHR_P1P2, -1, -1)
|
|
yield
|
|
set_cutscene_weapon(CHR_P1P2, -1, WEAPON_FALCON2)
|
|
show_nonessential_chrs(FALSE)
|
|
|
|
#define wait_for_camera(loopid) \
|
|
beginloop(loopid) \
|
|
if_camera_animating(/*goto*/ 0x2f) \
|
|
goto_next(0x06) \
|
|
label(0x2f) \
|
|
if_controller_button_pressed(/*goto*/ 0x06) \
|
|
endloop(loopid) \
|
|
label(0x06)
|
|
|
|
wait_for_camera(0x08)
|
|
|
|
dprint 's','h','o','t',' ','2',0,
|
|
if_controller_button_pressed(/*goto*/ 0x06)
|
|
camera_movement(ANIM_0140)
|
|
chr_do_animation(ANIM_0141, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 2)
|
|
|
|
wait_for_camera(0x09)
|
|
|
|
dprint 's','h','o','t',' ','3',0,
|
|
if_controller_button_pressed(/*goto*/ 0x06)
|
|
camera_movement(ANIM_0143)
|
|
chr_do_animation(ANIM_0144, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 2)
|
|
|
|
wait_for_camera(0x0a)
|
|
|
|
dprint 's','h','o','t',' ','4',0,
|
|
if_controller_button_pressed(/*goto*/ 0x06)
|
|
camera_movement(ANIM_0146)
|
|
chr_do_animation(ANIM_0147, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 2)
|
|
restart_timer
|
|
|
|
beginloop(0x0b)
|
|
if_camera_animating(/*goto*/ 0x2f)
|
|
goto_next(0x06)
|
|
label(0x2f)
|
|
if_controller_button_pressed(/*goto*/ 0x06)
|
|
if_timer_gt(282, /*goto*/ 0x2f)
|
|
endloop(0x0b)
|
|
|
|
label(0x2f)
|
|
open_door(0x23)
|
|
|
|
beginloop(0x5f)
|
|
if_camera_animating(/*goto*/ 0x2f)
|
|
goto_next(0x06)
|
|
label(0x2f)
|
|
if_controller_button_pressed(/*goto*/ 0x06)
|
|
endloop(0x5f)
|
|
|
|
label(0x2f)
|
|
label(0x06)
|
|
dprint 's','h','o','t',' ','5',0,
|
|
if_controller_button_pressed(/*goto*/ 0x06)
|
|
unset_chr_chrflag(CHR_DRCAROLL, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_DRCAROLL, CHRCFLAG_UNPLAYABLE)
|
|
set_chr_hiddenflag(CHR_DRCAROLL, CHRHFLAG_00020000)
|
|
camera_movement(ANIM_0149)
|
|
chr_do_animation(ANIM_014A, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 2)
|
|
chr_do_animation(ANIM_014B, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_DRCAROLL, 2)
|
|
|
|
wait_for_camera(0x0c)
|
|
|
|
dprint 's','h','o','t',' ','6',0,
|
|
if_controller_button_pressed(/*goto*/ 0x06)
|
|
camera_movement(ANIM_014C)
|
|
chr_do_animation(ANIM_014D, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 2)
|
|
chr_do_animation(ANIM_014E, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_DRCAROLL, 2)
|
|
|
|
wait_for_camera(0x0d)
|
|
|
|
dprint 's','h','o','t',' ','7',0,
|
|
if_controller_button_pressed(/*goto*/ 0x06)
|
|
camera_movement(ANIM_014F)
|
|
chr_do_animation(ANIM_0150, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 2)
|
|
chr_do_animation(ANIM_0151, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_DRCAROLL, 2)
|
|
|
|
wait_for_camera(0x0e)
|
|
|
|
dprint 's','h','o','t',' ','8',0,
|
|
camera_movement(ANIM_0152)
|
|
chr_do_animation(ANIM_0153, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 2)
|
|
chr_do_animation(ANIM_0154, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_DRCAROLL, 2)
|
|
|
|
wait_for_camera(0x0f)
|
|
|
|
end_level
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1010_intro_from_menu[] = {
|
|
set_returnlist(CHR_SELF, GAILIST_END_CINEMA)
|
|
set_ailist(CHR_SELF, 0x0416)
|
|
endlist
|
|
};
|
|
|
|
u8 func0417_outro_from_menu[] = {
|
|
set_returnlist(CHR_SELF, GAILIST_END_CINEMA)
|
|
set_ailist(CHR_SELF, AILIST_OUTRO)
|
|
endlist
|
|
};
|
|
|
|
u8 unregistered_function1[] = {
|
|
set_returnlist(CHR_SELF, 0x0419)
|
|
set_ailist(CHR_SELF, 0x0416)
|
|
endlist
|
|
};
|
|
|
|
u8 unregistered_function2[] = {
|
|
set_returnlist(CHR_SELF, 0x041a)
|
|
set_ailist(CHR_SELF, AILIST_OUTRO)
|
|
endlist
|
|
};
|
|
|
|
u8 func1415_outro_audio[] = {
|
|
label(0x79)
|
|
if_stage_flag_eq(STAGEFLAG_TRIGGER_OUTRO_AUDIO, TRUE, /*goto*/ 0x7a)
|
|
yield
|
|
goto_first(0x79)
|
|
|
|
label(0x7a)
|
|
unset_stage_flag(STAGEFLAG_TRIGGER_OUTRO_AUDIO)
|
|
label(0x2f)
|
|
restart_timer
|
|
disable_object(0x37)
|
|
disable_object(0x38)
|
|
mute_channel(CHANNEL_0)
|
|
mute_channel(CHANNEL_1)
|
|
mute_channel(CHANNEL_2)
|
|
mute_channel(CHANNEL_3)
|
|
mute_channel(CHANNEL_4)
|
|
mute_channel(CHANNEL_5)
|
|
mute_channel(CHANNEL_6)
|
|
mute_channel(CHANNEL_7)
|
|
|
|
#define outro_wait_until(time, loopid) \
|
|
beginloop(loopid) \
|
|
if_controller_button_pressed(/*goto*/ 0x77) \
|
|
if_timer_gt(time, /*goto*/ 0x06) \
|
|
endloop(loopid) \
|
|
label(0x06)
|
|
|
|
outro_wait_until(78, 0x56)
|
|
play_sound(SFX_0161, CHANNEL_6)
|
|
|
|
outro_wait_until(116, 0x57)
|
|
play_sound(SFX_0165, CHANNEL_7)
|
|
|
|
outro_wait_until(131, 0x58)
|
|
play_sound(SFX_0166, CHANNEL_5)
|
|
|
|
outro_wait_until(162, 0x59)
|
|
play_sound(SFX_0167, CHANNEL_6)
|
|
|
|
outro_wait_until(197, 0x5a)
|
|
play_sound(SFX_0168, CHANNEL_7)
|
|
|
|
outro_wait_until(236, 0x5b)
|
|
play_sound(SFX_0167, CHANNEL_5)
|
|
|
|
outro_wait_until(266, 0x5c)
|
|
play_sound(SFX_0168, CHANNEL_6)
|
|
|
|
outro_wait_until(281, 0x5d)
|
|
play_sound(SFX_0165, CHANNEL_7)
|
|
|
|
outro_wait_until(335, 0x5e)
|
|
play_sound(SFX_0162, CHANNEL_5)
|
|
|
|
outro_wait_until(384, 0x5f)
|
|
play_sound(SFX_0163, CHANNEL_6)
|
|
|
|
outro_wait_until(415, 0x60)
|
|
play_sound(SFX_0164, CHANNEL_7)
|
|
|
|
outro_wait_until(434, 0x61)
|
|
play_sound(SFX_0163, CHANNEL_5)
|
|
|
|
outro_wait_until(474, 0x62)
|
|
play_sound(SFX_0164, CHANNEL_6)
|
|
|
|
outro_wait_until(511, 0x63)
|
|
play_sound(SFX_0163, CHANNEL_7)
|
|
|
|
outro_wait_until(356, 0x65)
|
|
play_sound(SFX_0164, CHANNEL_5)
|
|
|
|
outro_wait_until(581, 0x66)
|
|
play_sound(SFX_0161, CHANNEL_6)
|
|
|
|
outro_wait_until(620, 0x68)
|
|
speak(CHR_P1P2, L_EAR_100, MP3_03EC, CHANNEL_7, COLOR_09_BLUE) // "Dr. Caroll?"
|
|
|
|
outro_wait_until(676, 0x67)
|
|
play_sound(SFX_0162, CHANNEL_6)
|
|
|
|
outro_wait_until(747, 0x69)
|
|
play_sound(SFX_0163, CHANNEL_5)
|
|
|
|
outro_wait_until(750, 0x6a)
|
|
speak(CHR_P1P2, L_EAR_101, MP3_03ED, CHANNEL_7, COLOR_09_BLUE) // "Dr. Caroll, are you here?"
|
|
|
|
outro_wait_until(864, 0x6b)
|
|
speak(CHR_P1P2, L_EAR_102, MP3_03EE, CHANNEL_7, COLOR_04_ORANGE) // "Well, is it safe to come out?"
|
|
|
|
outro_wait_until(1027, 0x6c)
|
|
speak(CHR_P1P2, L_EAR_103, MP3_03EF, CHANNEL_7, COLOR_09_BLUE) // "Yes, all clear."
|
|
|
|
outro_wait_until(1200, 0x6f)
|
|
mute_channel(CHANNEL_6)
|
|
|
|
play_sound(SFX_DOOR_042C, CHANNEL_4)
|
|
outro_wait_until(1219, 0x70)
|
|
|
|
outro_wait_until(1254, 0x71)
|
|
speak(CHR_P1P2, L_EAR_104, MP3_03F0, CHANNEL_7, COLOR_09_BLUE) // "Wh..what... you're..."
|
|
|
|
outro_wait_until(1460, 0x73)
|
|
speak(CHR_P1P2, L_EAR_105, MP3_03F1, CHANNEL_7, COLOR_04_ORANGE) // "Very professionally done, my dear, but there's no ..."
|
|
|
|
outro_wait_until(1556, 0x74)
|
|
mute_channel(CHANNEL_5)
|
|
play_sound(SFX_DOOR_042C, CHANNEL_6)
|
|
|
|
outro_wait_until(1900, 0x75)
|
|
speak(CHR_P1P2, L_EAR_106, MP3_03F2, CHANNEL_7, COLOR_04_ORANGE) // "Come on. I have vital information, and you must pr..."
|
|
|
|
outro_wait_until(2200, 0x76)
|
|
play_sound(SFX_0161, CHANNEL_6)
|
|
|
|
label(0x77)
|
|
goto_first(0x79)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func100f_check_for_end_level[] = {
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0063, /*goto*/ 0x2f)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0065, /*goto*/ 0x2f)
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_door_state(0x26, (DOORSTATE_OPEN | DOORSTATE_CLOSING | DOORSTATE_OPENING), /*goto*/ 0x06)
|
|
reloop(0x04)
|
|
|
|
label(0x06)
|
|
set_stage_flag(STAGEFLAG_DRCAROLL_LOCATED)
|
|
dprint 's','h','o','t',' ','6',0,
|
|
yield
|
|
#if VERSION < VERSION_NTSC_1_0
|
|
yield
|
|
#endif
|
|
if_all_objectives_complete(/*goto*/ 0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x2f)
|
|
if_chr_dead(CHR_BOND, /*goto*/ 0x2f)
|
|
if_chr_knockedout(CHR_BOND, /*goto*/ 0x2f)
|
|
goto_next(0x06)
|
|
|
|
label(0x2f)
|
|
if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x2f)
|
|
if_chr_dead(CHR_COOP, /*goto*/ 0x2f)
|
|
if_chr_knockedout(CHR_COOP, /*goto*/ 0x2f)
|
|
goto_next(0x06)
|
|
|
|
label(0x2f)
|
|
end_level
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x06)
|
|
set_invincible(CHR_BOND)
|
|
set_ailist(CHR_SELF, AILIST_OUTRO)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1400_setup_counterop[] = {
|
|
yield
|
|
set_chr_team(CHR_ANTI, TEAM_ENEMY)
|
|
give_object_to_chr(OBJ_DATAUPLINK_BOND, CHR_BOND)
|
|
give_object_to_chr(OBJ_DATAUPLINK_COOP, CHR_COOP)
|
|
set_ailist(CHR_SELF, GAILIST_REBUILD_GROUPS)
|
|
endlist
|
|
};
|
|
|
|
u8 func1011_spawn_guards_during_uplink[] = {
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d)
|
|
beginloop(0x04)
|
|
if_stage_flag_eq(STAGEFLAG_UPLINK_SEARCHING, TRUE, /*goto*/ 0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x2f)
|
|
restart_timer
|
|
try_spawn_chr_at_pad(BODY_DDSHOCK, HEAD_RANDOM, PAD_EAR_0131, AILIST_UPLINK_RESPONDER, SPAWNFLAG_00000010 | SPAWNFLAG_00000200, /*goto*/ 0x09)
|
|
|
|
beginloop(0x09)
|
|
if_timer_gt(30, /*goto*/ 0x06)
|
|
endloop(0x09)
|
|
|
|
label(0x06)
|
|
try_spawn_chr_at_pad(BODY_DDSHOCK, HEAD_RANDOM, PAD_EAR_0132, AILIST_UPLINK_RESPONDER, SPAWNFLAG_00000010 | SPAWNFLAG_00000200, /*goto*/ 0x0a)
|
|
|
|
beginloop(0x0a)
|
|
if_timer_gt(60, /*goto*/ 0x06)
|
|
endloop(0x0a)
|
|
|
|
label(0x06)
|
|
label(0x0d)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func0409_uplink_responder[] = {
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f)
|
|
set_accuracy(20)
|
|
goto_next(0x06)
|
|
|
|
label(0x2f)
|
|
set_accuracy(10)
|
|
|
|
label(0x06)
|
|
try_equip_weapon(MODEL_CHRCMP150, WEAPON_CMP150, 0x00000000, /*goto*/ 0x06)
|
|
label(0x06)
|
|
set_chr_team(CHR_SELF, TEAM_ENEMY)
|
|
set_squadron(SQUADRON_09)
|
|
set_self_flag_bankx(CHRFLAG0_SKIPSAFETYCHECKS, BANK_0)
|
|
set_self_flag_bankx(CHRFLAG0_00008000, BANK_0)
|
|
set_alertness(110)
|
|
set_self_chrflag(CHRCFLAG_00000200)
|
|
label(0x06)
|
|
rebuild_teams
|
|
rebuild_squadrons
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED)
|
|
endlist
|
|
};
|
|
|
|
u8 func1012_start_laser_sound[] = {
|
|
label(0x04)
|
|
yield
|
|
assign_sound(SFX_8119, CHANNEL_0)
|
|
play_sound_from_object(CHANNEL_0, 0x28, 1, 300, 400)
|
|
label(0x2f)
|
|
assign_sound(SFX_811A, CHANNEL_1)
|
|
play_sound_from_object(CHANNEL_1, 0x2d, 1, 300, 400)
|
|
label(0x2f)
|
|
assign_sound(SFX_8119, CHANNEL_2)
|
|
play_sound_from_object(CHANNEL_2, 0x32, 1, 300, 400)
|
|
assign_sound(SFX_01C5, CHANNEL_3)
|
|
play_sound_from_object(CHANNEL_3, 0x38, 1, 600, 800)
|
|
assign_sound(SFX_01C5, CHANNEL_4)
|
|
play_sound_from_object(CHANNEL_4, 0x37, 1, 600, 800)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1013_hatch_pc[] = {
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_chr_activated_object(CHR_TARGET, OBJ_HATCHPC, /*goto*/ 0x06)
|
|
reloop(0x04)
|
|
|
|
label(0x06)
|
|
if_door_locked(0x3f, 0x08, /*goto*/ 0x56)
|
|
goto_next(0x2f)
|
|
|
|
label(0x56)
|
|
play_sound(SFX_00F7, -1)
|
|
show_hudmsg(CHR_TARGET, L_EAR_061) // "Maintenance hatch is now open."
|
|
unlock_door(0x3f, 0x08)
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
show_hudmsg(CHR_TARGET, L_EAR_062) // "Maintenance hatch is already open."
|
|
restart_timer
|
|
|
|
beginloop(0x57)
|
|
if_timer_gt(120, /*goto*/ 0x2f)
|
|
endloop(0x57)
|
|
|
|
label(0x2f)
|
|
endloop(0x04)
|
|
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func0415_radioactivity[] = {
|
|
restart_timer
|
|
|
|
beginloop(0x04)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0014, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0015, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0016, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0017, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0018, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0019, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x001a, /*goto*/ 0x06)
|
|
reloop(0x04)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_TARGET, L_EAR_063) // "WARNING - radioactive matter detected."
|
|
restart_timer
|
|
label(0x08)
|
|
yield
|
|
add_motion_blur(CHR_TARGET, 10, TRUE)
|
|
if_timer_lt(300, /*goto*/ 0x2f)
|
|
restart_timer
|
|
damage_chr_by_amount(CHR_TARGET, 4, 0)
|
|
label(0x2f)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0014, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0015, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0016, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0017, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0018, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0019, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x001a, /*goto*/ 0x06)
|
|
endloop(0x04)
|
|
|
|
label(0x06)
|
|
goto_first(0x08)
|
|
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1014_jo_radioactivity[] = {
|
|
set_target_chr(CHR_BOND)
|
|
set_ailist(CHR_SELF, AILIST_RADIOACTIVITY)
|
|
endlist
|
|
};
|
|
|
|
u8 func101d_coop_radioactivty[] = {
|
|
yield
|
|
set_target_chr(CHR_COOP)
|
|
if_chr_death_animation_finished(CHR_TARGET, /*goto*/ 0x2f)
|
|
set_ailist(CHR_SELF, AILIST_RADIOACTIVITY)
|
|
label(0x2f)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1021_counterop_radioactivity[] = {
|
|
yield
|
|
set_target_chr(CHR_ANTI)
|
|
if_chr_death_animation_finished(CHR_TARGET, /*goto*/ 0x2f)
|
|
set_ailist(CHR_SELF, AILIST_RADIOACTIVITY)
|
|
label(0x2f)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func0402_k7_guard[] = {
|
|
set_accuracy(20)
|
|
set_reaction_speed(100)
|
|
set_shotlist(GAILIST_ALERTED)
|
|
|
|
beginloop(0x0f)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
set_chrpreset(CHR_P1P2)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0036, /*goto*/ 0x03)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0037, /*goto*/ 0x03)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x003a, /*goto*/ 0x03)
|
|
endloop(0x0f)
|
|
|
|
label(0x03)
|
|
restart_timer
|
|
call_rng
|
|
if_rand_gt(128, /*goto*/ 0x06)
|
|
label(0x2f)
|
|
say_quip(CHR_PRESET, 0x09, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00)
|
|
label(0x06)
|
|
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_target_in_sight(/*goto*/ 0x0c)
|
|
if_near_miss(/*goto*/ 0x0c)
|
|
if_num_times_shot_gt(0, /*goto*/ 0x0c)
|
|
if_saw_injury(0x00, /*goto*/ 0x0c)
|
|
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x04)
|
|
|
|
label(0x06)
|
|
try_attack_stand(ATTACKFLAG_AIMATPAD | ATTACKFLAG_AIMONLY, 0x0159, /*goto*/ 0x2f)
|
|
label(0x2f)
|
|
try_modify_attack(ATTACKFLAG_AIMATPAD, 0x0159, /*goto*/ 0x2f)
|
|
label(0x2f)
|
|
say_quip(CHR_BOND, QUIP_ATTACK1, 0x32, 0x02, 0xff, BANK_0, 0x00, 0x00)
|
|
|
|
beginloop(0x08)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_target_in_sight(/*goto*/ 0x0c)
|
|
if_near_miss(/*goto*/ 0x0c)
|
|
if_num_times_shot_gt(0, /*goto*/ 0x0c)
|
|
if_saw_injury(0x00, /*goto*/ 0x0c)
|
|
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c)
|
|
if_chr_stopped(/*goto*/ 0x2f)
|
|
goto_first(0x08)
|
|
|
|
label(0x2f)
|
|
call_rng
|
|
if_rand_gt(200, /*goto*/ 0x2f)
|
|
goto_first(0x03)
|
|
|
|
label(0x2f)
|
|
stop_chr
|
|
restart_timer
|
|
call_rng
|
|
if_rand_gt(128, /*goto*/ 0x06)
|
|
assign_sound(MP3_0299, CHANNEL_6)
|
|
play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01)
|
|
|
|
beginloop(0x0c)
|
|
if_timer_gt(120, /*goto*/ 0x2f)
|
|
endloop(0x0c)
|
|
|
|
label(0x2f)
|
|
say_quip(CHR_PRESET, 0x08, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00)
|
|
label(0x06)
|
|
if_chr_distance_to_pad_lt(CHR_SELF, 100, PAD_EAR_013B, /*goto*/ 0x2f)
|
|
walk_to_pad(PAD_EAR_013B)
|
|
label(0x2f)
|
|
restart_timer
|
|
|
|
beginloop(0x09)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_target_in_sight(/*goto*/ 0x0c)
|
|
if_near_miss(/*goto*/ 0x0c)
|
|
if_num_times_shot_gt(0, /*goto*/ 0x0c)
|
|
if_saw_injury(0x00, /*goto*/ 0x0c)
|
|
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c)
|
|
if_timer_gt(180, /*goto*/ 0x06)
|
|
endloop(0x09)
|
|
|
|
label(0x06)
|
|
restart_timer
|
|
|
|
beginloop(0x0a)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_target_in_sight(/*goto*/ 0x0c)
|
|
if_near_miss(/*goto*/ 0x0c)
|
|
if_num_times_shot_gt(0, /*goto*/ 0x0c)
|
|
if_saw_injury(0x00, /*goto*/ 0x0c)
|
|
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c)
|
|
if_timer_gt(300, /*goto*/ 0x06)
|
|
endloop(0x0a)
|
|
|
|
label(0x06)
|
|
goto_first(0x03)
|
|
|
|
label(0x0c)
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED)
|
|
endlist
|
|
};
|
|
|
|
u8 func0403_k7_scientist[] = {
|
|
beginloop(0x14)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0035, /*goto*/ 0x03)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0036, /*goto*/ 0x03)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0037, /*goto*/ 0x03)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x003a, /*goto*/ 0x03)
|
|
endloop(0x14)
|
|
|
|
label(0x03)
|
|
stop_chr
|
|
restart_timer
|
|
|
|
beginloop(0x08)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_target_in_sight(/*goto*/ 0x0c)
|
|
if_near_miss(/*goto*/ 0x0c)
|
|
if_num_times_shot_gt(0, /*goto*/ 0x0c)
|
|
if_saw_injury(0x00, /*goto*/ 0x0c)
|
|
if_saw_death(0x00, /*goto*/ 0x0c)
|
|
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c)
|
|
call_rng
|
|
if_rand_lt(1, /*goto*/ 0x06)
|
|
endloop(0x08)
|
|
|
|
label(0x06)
|
|
call_rng
|
|
if_rand_lt(64, /*goto*/ 0x09)
|
|
if_rand_lt(128, /*goto*/ 0x0a)
|
|
if_rand_lt(196, /*goto*/ 0x0b)
|
|
chr_do_animation(ANIM_GRAB_CROTCH, 0, -1, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
goto_next(0x0f)
|
|
label(0x09)
|
|
chr_do_animation(ANIM_YAWN, 0, -1, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
goto_next(0x0f)
|
|
label(0x0a)
|
|
chr_do_animation(ANIM_ROLL_HEAD, 0, -1, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
goto_next(0x0f)
|
|
label(0x0b)
|
|
chr_do_animation(ANIM_GRAB_BUTT, 0, -1, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
goto_next(0x0f)
|
|
|
|
beginloop(0x0f)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_target_in_sight(/*goto*/ 0x0c)
|
|
if_near_miss(/*goto*/ 0x0c)
|
|
if_num_times_shot_gt(0, /*goto*/ 0x0c)
|
|
if_saw_injury(0x00, /*goto*/ 0x0c)
|
|
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0c)
|
|
if_chr_stopped(/*goto*/ 0x2f)
|
|
endloop(0x0f)
|
|
|
|
label(0x2f)
|
|
goto_first(0x03)
|
|
|
|
label(0x0c)
|
|
assign_sound(MP3_028F, CHANNEL_6)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
play_sound_from_entity(CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01)
|
|
#endif
|
|
increase_squadron_alertness(100)
|
|
jog_to_pad(PAD_EAR_0133)
|
|
|
|
beginloop(0x0d)
|
|
if_chr_stopped(/*goto*/ 0x10)
|
|
endloop(0x0d)
|
|
|
|
label(0x10)
|
|
chr_do_animation(ANIM_COWER_0229, -1, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
|
|
|
|
beginloop(0x0e)
|
|
if_chr_stopped(/*goto*/ 0x2f)
|
|
endloop(0x0e)
|
|
|
|
label(0x2f)
|
|
goto_first(0x10)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func1016_setup_drcaroll[] = {
|
|
set_chr_chrflag(CHR_DRCAROLL, CHRCFLAG_HIDDEN)
|
|
set_ailist(CHR_DRCAROLL, GAILIST_INVINCIBLE_AND_IDLE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func040a_init_basic_guard[] = {
|
|
set_chr_dodge_rating(2, 10)
|
|
set_accuracy(1)
|
|
set_reaction_speed(20)
|
|
set_chr_maxdamage(CHR_SELF, 40)
|
|
add_health_or_armor(0)
|
|
set_recovery_speed(0)
|
|
set_shield(0)
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED)
|
|
endlist
|
|
};
|
|
|
|
u8 func040b_init_shock_guard[] = {
|
|
set_chr_dodge_rating(2, 10)
|
|
set_accuracy(11)
|
|
set_reaction_speed(20)
|
|
set_chr_maxdamage(CHR_SELF, 40)
|
|
add_health_or_armor(0)
|
|
set_recovery_speed(10)
|
|
set_shield(0)
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED)
|
|
endlist
|
|
};
|
|
|
|
u8 func1019_msg_securitysector[] = {
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0052, /*goto*/ 0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x2f)
|
|
speak(CHR_P1P2, L_EAR_094, SFX_8173, CHANNEL_6, COLOR_09_BLUE) // "That's the highest security sector - Dr. Caroll ha..."
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func101a_msg_lotofpower[] = {
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0031, /*goto*/ 0x2f)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0042, /*goto*/ 0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x2f)
|
|
speak(CHR_P1P2, L_EAR_095, MP3_03A5, CHANNEL_6, COLOR_09_BLUE) // "Something around here's using a lot of power."
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func101b_msg_reprogram[] = {
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x08)
|
|
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0026, /*goto*/ 0x2f)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0024, /*goto*/ 0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x2f)
|
|
speak(CHR_P1P2, L_EAR_096, SFX_8174, CHANNEL_6, COLOR_09_BLUE) // "Reprogram that cleaning bot - it'll give you a way..."
|
|
label(0x08)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func101c_msg_radioactive[] = {
|
|
beginloop(0x04)
|
|
if_objective_complete(0, /*goto*/ 0x06)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x0014, /*goto*/ 0x2f)
|
|
endloop(0x04)
|
|
|
|
label(0x2f)
|
|
speak(CHR_P1P2, L_EAR_097, SFX_8175, CHANNEL_6, COLOR_09_BLUE) // "Get out, Jo! The levels are too high. Use the CamS..."
|
|
label(0x06)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func101e_unlock_drcaroll_door[] = {
|
|
beginloop(0x04)
|
|
if_objective_complete(0, /*goto*/ 0x2f)
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x06)
|
|
if_objective_complete(1, /*goto*/ 0x2f)
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_objective_complete(2, /*goto*/ 0x2f)
|
|
reloop(0x04)
|
|
|
|
label(0x2f)
|
|
if_difficulty_lt(DIFF_PA, /*goto*/ 0x06)
|
|
if_objective_complete(3, /*goto*/ 0x06)
|
|
endloop(0x04)
|
|
|
|
label(0x06)
|
|
unlock_door(0x26, 0x40)
|
|
unlock_door(0x5a, 0x40)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func101f_check_bot_destroyed[] = {
|
|
beginloop(0x04)
|
|
if_object_in_good_condition(OBJ_PURPLEBOT, /*goto*/ 0x2f)
|
|
goto_next(0x08)
|
|
label(0x2f)
|
|
endloop(0x04)
|
|
|
|
// 0x32 is a laser
|
|
beginloop(0x08)
|
|
if_door_state(0x32, DOORSTATE_CLOSED, /*goto*/ 0x2f)
|
|
endloop(0x08)
|
|
|
|
label(0x2f)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x004d, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x004e, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x004f, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0050, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0051, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0052, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0053, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0054, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0055, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0056, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0057, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0058, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0059, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x005a, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x005b, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x005c, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x005d, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x005e, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x005f, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0061, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0062, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0063, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x006c, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x006b, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0069, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0068, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x006d, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x006e, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0064, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0065, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0066, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0060, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0067, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x006a, /*goto*/ 0x06)
|
|
|
|
if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x0b)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x004d, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x004e, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x004f, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0050, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0051, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0052, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0053, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0054, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0055, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0056, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0057, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0058, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0059, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x005a, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x005b, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x005c, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x005d, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x005e, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x005f, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0061, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0062, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0063, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x006c, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x006b, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0069, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0068, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x006d, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x006e, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0064, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0065, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0066, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0060, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x0067, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_COOP, 0x00, 0x006a, /*goto*/ 0x06)
|
|
|
|
label(0x0b)
|
|
show_hudmsg(CHR_BOND, L_EAR_022) // "Critical mission object destroyed."
|
|
set_stage_flag(STAGEFLAG_00000008)
|
|
set_stage_flag(STAGEFLAG_00000004)
|
|
if_stage_flag_eq(STAGEFLAG_HAS_K7AVENGER, TRUE, /*goto*/ 0x2f)
|
|
set_stage_flag(STAGEFLAG_ITEMS_UNCOLLECTABLE)
|
|
label(0x2f)
|
|
if_stage_flag_eq(STAGEFLAG_HAS_NIGHTVISION, TRUE, /*goto*/ 0x2f)
|
|
set_stage_flag(STAGEFLAG_ITEMS_UNCOLLECTABLE)
|
|
label(0x2f)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x06)
|
|
if_objective_complete(0, /*goto*/ 0x2f)
|
|
goto_first(0x0b)
|
|
|
|
label(0x2f)
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2f)
|
|
if_objective_complete(2, /*goto*/ 0x2f)
|
|
goto_first(0x0b)
|
|
|
|
label(0x2f)
|
|
if_difficulty_lt(DIFF_PA, /*goto*/ 0x0d)
|
|
if_chr_has_object(CHR_BOND, OBJ_K7AVENGER, /*goto*/ 0x2f)
|
|
if_chr_has_object(CHR_COOP, OBJ_K7AVENGER, /*goto*/ 0x2f)
|
|
goto_first(0x0b)
|
|
|
|
label(0x2f)
|
|
if_chr_has_object(CHR_BOND, OBJ_NIGHTVISION, /*goto*/ 0x2f)
|
|
if_chr_has_object(CHR_COOP, OBJ_NIGHTVISION, /*goto*/ 0x2f)
|
|
label(0x0d)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1020_lock_agent_doors[] = {
|
|
label(0x04)
|
|
yield
|
|
if_difficulty_gt(DIFF_A, /*goto*/ 0x2f)
|
|
lock_door(0x5b, 0x08)
|
|
lock_door(0x5c, 0x08)
|
|
lock_door(0x5d, 0x08)
|
|
lock_door(0x5e, 0x08)
|
|
lock_door(0x5f, 0x08)
|
|
label(0x2f)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1022_setup_rtracker[] = {
|
|
yield
|
|
set_object_flag3(OBJ_CMP150_1, OBJFLAG3_RTRACKED_BLUE)
|
|
set_object_flag3(OBJ_CMP150_2, OBJFLAG3_RTRACKED_BLUE)
|
|
set_object_flag3(OBJ_PROXYMINES, OBJFLAG3_RTRACKED_BLUE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1423_setup_environment[] = {
|
|
yield
|
|
configure_environment(0x0000, AIENVCMD_00, FALSE)
|
|
configure_environment(0x0000, AIENVCMD_01, FALSE)
|
|
configure_environment(0x0000, AIENVCMD_02, FALSE)
|
|
configure_environment(0x0000, AIENVCMD_03, FALSE)
|
|
configure_environment(0x0000, AIENVCMD_04, FALSE)
|
|
configure_environment(0x0001, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0006, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0007, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0014, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0015, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0016, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0017, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0018, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0019, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x001a, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0023, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0024, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0025, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0026, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0027, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0028, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0029, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0031, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0032, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0034, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0035, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0036, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x003e, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x003f, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0042, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0043, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0044, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0045, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0046, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x005e, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x005f, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0060, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0064, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0065, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0066, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0067, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0069, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x006a, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1424_start_lift[] = {
|
|
activate_lift(1, 0x60)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
struct ailist ailists[] = {
|
|
{ func0401_init_chr_with_flag, 0x0401 },
|
|
{ func0402_k7_guard, 0x0402 },
|
|
{ func0403_k7_scientist, 0x0403 },
|
|
{ func0404_scientist, 0x0404 },
|
|
{ func0405_init_scientist, 0x0405 },
|
|
{ func0406_nasty_scientist, 0x0406 },
|
|
{ func0407_init_nasty_scientist, 0x0407 },
|
|
{ func0408_alarm_responder, 0x0408 },
|
|
{ func0409_uplink_responder, 0x0409 },
|
|
{ func040a_init_basic_guard, 0x040a },
|
|
{ func040b_init_shock_guard, 0x040b },
|
|
{ func040c_start_path00, 0x040c },
|
|
{ func040d_start_path01, 0x040d },
|
|
{ func040e_start_path02, 0x040e },
|
|
{ func040f_start_path03, 0x040f },
|
|
{ func0410_start_path04, 0x0410 },
|
|
{ func0411_yellowbot, 0x0411 },
|
|
{ func0412_purplebot_programs, 0x0412 },
|
|
{ func0413_purplebot_at_lasers, 0x0413 },
|
|
{ func0415_radioactivity, 0x0415 },
|
|
{ func1400_setup_counterop, 0x1400 },
|
|
{ func1001_objectives_failed_msg, 0x1001 },
|
|
{ func1002_bot_activation_terminal, 0x1002 },
|
|
{ func1003_bot_programming_terminal, 0x1003 },
|
|
{ func1004_check_items_collected, 0x1004 },
|
|
{ func1005_check_unacceptable_casualties, 0x1005 },
|
|
{ func1006_terminal_activation, 0x1006 },
|
|
{ func1007_uplink, 0x1007 },
|
|
{ func1008_check_bot_terminals_destroyed, 0x1008 },
|
|
{ func1009_weaponscache, 0x1009 },
|
|
{ func100a_spawn_alarm_responders, 0x100a },
|
|
{ func100b_check_uplink_pc_destroyed, 0x100b },
|
|
{ func100c_shuffle_terminals, 0x100c },
|
|
{ func100e_experiment_terminals_destroyed, 0x100e },
|
|
{ func100f_check_for_end_level, 0x100f },
|
|
{ func1010_intro_from_menu, 0x1010 },
|
|
{ func1011_spawn_guards_during_uplink, 0x1011 },
|
|
{ func1012_start_laser_sound, 0x1012 },
|
|
{ func1013_hatch_pc, 0x1013 },
|
|
{ func1014_jo_radioactivity, 0x1014 },
|
|
{ func1415_outro_audio, 0x1415 },
|
|
{ func1016_setup_drcaroll, 0x1016 },
|
|
{ func1018_item_pickup_messages, 0x1018 },
|
|
{ func1019_msg_securitysector, 0x1019 },
|
|
{ func101a_msg_lotofpower, 0x101a },
|
|
{ func101b_msg_reprogram, 0x101b },
|
|
{ func101c_msg_radioactive, 0x101c },
|
|
{ func101d_coop_radioactivty, 0x101d },
|
|
{ func101e_unlock_drcaroll_door, 0x101e },
|
|
{ func101f_check_bot_destroyed, 0x101f },
|
|
{ func1020_lock_agent_doors, 0x1020 },
|
|
{ func1021_counterop_radioactivity, 0x1021 },
|
|
{ func1022_setup_rtracker, 0x1022 },
|
|
{ func1423_setup_environment, 0x1423 },
|
|
{ func1424_start_lift, 0x1424 },
|
|
{ func0414_walk_3_pads, 0x0414 },
|
|
{ func0416_intro, 0x0416 },
|
|
{ func0417_outro, 0x0417 },
|
|
{ func1010_intro_from_menu, 0x0c00 },
|
|
{ func0417_outro_from_menu, 0x0c01 },
|
|
{ NULL, 0 },
|
|
};
|
|
|
|
struct path paths[] = {
|
|
{ path00, 0, 0 },
|
|
{ path01, 1, 0 },
|
|
{ path02, 2, 0 },
|
|
{ path03, 3, 0 },
|
|
{ path04, 4, 0 },
|
|
{ path05, 5, 0 },
|
|
{ path06, 6, 0 },
|
|
{ path07, 7, 0 },
|
|
{ path08, 8, 0 },
|
|
{ path09, 9, 0 },
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
{ path10, 10, PATHFLAG_CIRCULAR },
|
|
#else
|
|
{ path10, 10, 0 },
|
|
#endif
|
|
{ path11, 11, 0 },
|
|
{ path12, 12, 0 },
|
|
{ path13, 13, 0 },
|
|
{ NULL, 0, 0 },
|
|
};
|