4184 lines
178 KiB
C
4184 lines
178 KiB
C
//
|
|
// Defection
|
|
//
|
|
|
|
#include "stagesetup.h"
|
|
|
|
// Characters
|
|
#define CHR_CASS 0x24
|
|
#define CHR_SECRETARY 0x25
|
|
#define CHR_PROGRAMMER 0x26
|
|
|
|
// Objects
|
|
#define OBJ_NECKLACE 0x00
|
|
#define OBJ_SECURITYHUB 0x03
|
|
#define OBJ_EXTCOMMSHUB 0x04
|
|
#define OBJ_PC 0x0c
|
|
#define OBJ_DOORSWITCH 0x0d
|
|
#define OBJ_OFFICEDOOR1 0x0e
|
|
#define OBJ_OFFICEDOOR2 0x0f
|
|
#define OBJ_LIGHTSWITCH 0x14
|
|
#define OBJ_JUMPSHIP1 0x17
|
|
#define OBJ_ROPE 0x18
|
|
#define OBJ_BANNER1 0x19
|
|
#define OBJ_BANNER2 0x1a
|
|
#define OBJ_JUMPSHIP2 0x1b
|
|
#define OBJ_HOVERTAXI1 0x1c
|
|
#define OBJ_HOVERTAXI2 0x1e
|
|
#define OBJ_HOVERCOP1 0x1f
|
|
#define OBJ_HOVERCOP2 0x20
|
|
#define OBJ_HOVERCAR1 0x21
|
|
#define OBJ_HOVERCAR2 0x22
|
|
#define OBJ_HOVERMOTO1 0x23
|
|
#define OBJ_HOVERMOTO2 0x24
|
|
#define OBJ_HOVERTRUCK1 0x25
|
|
#define OBJ_HOVERTRUCK2 0x26
|
|
#define OBJ_HOVERCAB1 0x27
|
|
#define OBJ_HOVERCAB2 0x28
|
|
#define OBJ_HOVERCOP3 0x29
|
|
#define OBJ_HOVERCAR3 0x2a
|
|
#define OBJ_HOVERMOTO3 0x2b
|
|
#define OBJ_HOVERCAB3 0x2c
|
|
#define OBJ_HOVERTRUCK3 0x2d
|
|
#define OBJ_LABLIFTDOOR1 0x2e
|
|
#define OBJ_LABLIFTDOOR2 0x2f
|
|
#define OBJ_POLICECAR 0x30
|
|
#define OBJ_ECMMINE_BOND 0x31
|
|
#define OBJ_DATAUPLINK_BOND 0x32
|
|
#define OBJ_SECRETDOOR 0x33
|
|
#define OBJ_ECMMINE_COOP 0x3e
|
|
#define OBJ_DATAUPLINK_COOP 0x3f
|
|
#define OBJ_LAPTOPGUNDOOR 0x40
|
|
#define OBJ_LAPTOPGUN 0x43
|
|
#define OBJ_LIFT1 0x4e
|
|
#define OBJ_LIFT2 0x4f
|
|
#define OBJ_CAMERA1 0x50
|
|
#define OBJ_CAMERA2 0x51
|
|
#define OBJ_CAMERA3 0x52
|
|
#define OBJ_CAMERA4 0x53
|
|
#define OBJ_CAMERA5 0x54
|
|
#define OBJ_CAMERA6 0x55
|
|
#define OBJ_LIFT1DOOR1 0x56
|
|
#define OBJ_LIFT1DOOR2 0x57
|
|
#define OBJ_LIFT1DOOR3 0x58
|
|
#define OBJ_LIFT1DOOR4 0x59
|
|
#define OBJ_LIFT2DOOR1 0x5a
|
|
#define OBJ_LIFT2DOOR2 0x5b
|
|
#define OBJ_LIFT2DOOR3 0x5c
|
|
#define OBJ_LIFT2DOOR4 0x5d
|
|
#define OBJ_FALCONSIL1 0x61
|
|
#define OBJ_FALCONSIL2 0x62
|
|
#define OBJ_PCMONITOR 0x63
|
|
|
|
// Stage flags
|
|
#define STAGEFLAG_TALKED_TO_PROGRAMMER 0x00000001
|
|
#define STAGEFLAG_SECRETARY_SAW_COOP 0x00000002
|
|
#define STAGEFLAG_STOP_INTRO 0x00000004
|
|
#define STAGEFLAG_SECURITY_DISABLED 0x00000008
|
|
#define STAGEFLAG_TRIGGER_INTRO 0x00000010
|
|
#define STAGEFLAG_SECURITYHUB_COMPLETE 0x00000100
|
|
#define STAGEFLAG_EXTCOMMSHUB_COMPLETE 0x00000200
|
|
#define STAGEFLAG_SECURITYHUB_MINES_WASTED 0x00000400
|
|
#define STAGEFLAG_EXTCOMMSHUB_MINES_WASTED 0x00000800
|
|
#define STAGEFLAG_LIGHTS_OFF 0x00001000
|
|
#define STAGEFLAG_CIVILIANS_KILLED 0x00002000
|
|
#define STAGEFLAG_OFFICE_DOOR_UNLOCKED 0x00004000
|
|
#define STAGEFLAG_PROGRAMMER_DEAD 0x00010000
|
|
#define STAGEFLAG_PROGRAMMER_WALKING 0x00020000
|
|
#define STAGEFLAG_DELETED_WITHOUT_DOWNLOAD 0x00040000
|
|
#define STAGEFLAG_PROGRAMMER_LOGGED_IN 0x00080000
|
|
#define STAGEFLAG_PROGRAMMER_RAN_TO_GUARD 0x00100000
|
|
#define STAGEFLAG_PERSONALITY_DELETED 0x00200000
|
|
#define STAGEFLAG_PROGRAMMER_INJURED 0x00400000
|
|
#define STAGEFLAG_DOWNLOAD_COMPLETE 0x00800000
|
|
#define STAGEFLAG_LAB_LIFT_LOCATED 0x02000000
|
|
#define STAGEFLAG_PC_DESTROYED 0x04000000
|
|
#define STAGEFLAG_SECURITYHUB_DESTROYED 0x08000000
|
|
#define STAGEFLAG_EXTCOMMSHUB_DESTROYED 0x10000000
|
|
#define STAGEFLAG_DOORSWITCH_DESTROYED 0x20000000
|
|
#define STAGEFLAG_SECETARY_SAW_JO_OR_COOP 0x40000000
|
|
#define STAGEFLAG_LAB_ELEVATOR_CLOSED 0x80000000
|
|
|
|
// AI Lists
|
|
#define AILIST_INIT_HOVERCAR 0x0404
|
|
#define AILIST_CASS 0x040f
|
|
#define AILIST_INIT_CASS 0x0410
|
|
#define AILIST_SECRETARY 0x0411
|
|
#define AILIST_INIT_SECRETARY 0x0412
|
|
#define AILIST_PROGRAMMER 0x0414
|
|
#define AILIST_OUTRO 0x0416
|
|
#define AILIST_INIT_DD_GUARD 0x0417
|
|
#define AILIST_INIT_SHOCK_GUARD 0x0418
|
|
#define AILIST_INTRO_0419 0x0419
|
|
#define AILIST_INTRO_041A 0x041a
|
|
#define AILIST_INTRO_041B 0x041b
|
|
#define AILIST_INTRO_041C 0x041c
|
|
#define AILIST_INTRO_041E 0x041e
|
|
#define AILIST_INTRO_041F 0x041f
|
|
#define AILIST_INTRO_041D 0x041d
|
|
#define AILIST_INTRO_0420 0x0420
|
|
#define AILIST_INTRO_0421 0x0421
|
|
#define AILIST_INTRO 0x0422
|
|
#define AILIST_INTRO_0423 0x0423
|
|
#define AILIST_INTRO_0424 0x0424
|
|
#define AILIST_INTRO_0425 0x0425
|
|
#define AILIST_INTRO_0426 0x0426
|
|
#define AILIST_INTRO_0427 0x0427
|
|
#define AILIST_INTRO_0428 0x0428
|
|
#define AILIST_INTRO_0429 0x0429
|
|
#define AILIST_INTRO_042A 0x042a
|
|
#define AILIST_INTRO_042B 0x042b
|
|
#define AILIST_INTRO_042C 0x042c
|
|
#define AILIST_INTRO_042D 0x042d
|
|
#define AILIST_SURRENDERING_GUARD 0x042f
|
|
#define AILIST_INIT_FALCON_GUARD 0x0430
|
|
|
|
extern s32 intro[];
|
|
extern u32 props[];
|
|
extern struct path paths[];
|
|
extern struct ailist ailists[];
|
|
|
|
struct stagesetup setup = {
|
|
NULL,
|
|
NULL,
|
|
NULL,
|
|
intro,
|
|
props,
|
|
paths,
|
|
ailists,
|
|
NULL,
|
|
};
|
|
|
|
u32 props[] = {
|
|
briefing(BRIEFINGTYPE_LOCATION, L_AME_001)
|
|
briefing(BRIEFINGTYPE_TEXT_PA, L_AME_000)
|
|
briefing(BRIEFINGTYPE_TEXT_SA, L_AME_002)
|
|
briefing(BRIEFINGTYPE_TEXT_A, L_AME_003)
|
|
|
|
beginobjective(0, L_AME_016, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable internal security hub"
|
|
complete_flags(STAGEFLAG_SECURITYHUB_COMPLETE)
|
|
fail_flags(STAGEFLAG_SECURITYHUB_MINES_WASTED)
|
|
fail_flags(STAGEFLAG_SECURITYHUB_DESTROYED)
|
|
endobjective
|
|
|
|
beginobjective(1, L_AME_017, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Obtain keycode necklace"
|
|
require_object_collected(OBJ_NECKLACE)
|
|
fail_flags(STAGEFLAG_DOORSWITCH_DESTROYED)
|
|
fail_flags(STAGEFLAG_CIVILIANS_KILLED)
|
|
endobjective
|
|
|
|
beginobjective(2, L_AME_018, (DIFFBIT_PA | DIFFBIT_PD)) // "Download project files"
|
|
complete_flags(STAGEFLAG_DOWNLOAD_COMPLETE)
|
|
fail_flags(STAGEFLAG_PROGRAMMER_DEAD)
|
|
fail_flags(STAGEFLAG_DELETED_WITHOUT_DOWNLOAD)
|
|
fail_flags(STAGEFLAG_PC_DESTROYED)
|
|
endobjective
|
|
|
|
beginobjective(3, L_AME_019, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable external comms hub"
|
|
complete_flags(STAGEFLAG_EXTCOMMSHUB_COMPLETE)
|
|
fail_flags(STAGEFLAG_EXTCOMMSHUB_MINES_WASTED)
|
|
fail_flags(STAGEFLAG_EXTCOMMSHUB_DESTROYED)
|
|
endobjective
|
|
|
|
beginobjective(4, L_AME_020, DIFFBIT_A) // "Gain entrance to laboratory"
|
|
complete_flags(STAGEFLAG_LAB_LIFT_LOCATED)
|
|
fail_flags(STAGEFLAG_CIVILIANS_KILLED)
|
|
endobjective
|
|
|
|
beginobjective(5, L_AME_020, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Gain entrance to laboratory"
|
|
complete_flags(STAGEFLAG_LAB_LIFT_LOCATED)
|
|
endobjective
|
|
|
|
tag(0x3d, 1)
|
|
fan(0x0100, MODEL_DD_FANROOF, PAD_AME_0095, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000, 0x00000444, 0x00000002, 0x01000000)
|
|
fan(0x0100, MODEL_DD_FANROOF, PAD_AME_0096, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000, 0x00000444, 0x00000002, 0x01000000)
|
|
fan(0x0100, MODEL_DD_FANROOF, PAD_AME_0097, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000, 0x00000444, 0x00000002, 0x01000000)
|
|
fan(0x0100, MODEL_DD_FANROOF, PAD_AME_0098, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000, 0x00000444, 0x00000002, 0x01000000)
|
|
fan(0x0100, MODEL_DD_FANWALL, PAD_AME_0099, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000, 0x00000222, 0x00000002, 0x01000000)
|
|
tag(0x2e, 1)
|
|
door(0x0100, MODEL_DOOR4A_G5, PAD_AME_022B, OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00001200)
|
|
door(0x0100, MODEL_DOOR4B_G5, PAD_AME_022C, OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
|
|
tag(0x2f, -1)
|
|
door(0x0100, MODEL_DD_DECODOOR, PAD_AME_0226, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, OBJFLAG2_EXCLUDE_SA | OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD | OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_DECODOOR, PAD_AME_0226, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, OBJFLAG2_EXCLUDE_A, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_DECODOOR, PAD_AME_0227, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_LIFTDOOR, PAD_AME_0229, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000040, 0x00000384, 0x00000000, 0x00000001, 0x00000800)
|
|
door(0x0100, MODEL_DD_LIFTDOOR, PAD_AME_022A, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000040, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
|
|
tag(0x33, 1)
|
|
door(0x0100, MODEL_DD_SECRETDOOR, PAD_AME_0228, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004 | DOORFLAG_AUTOMATIC | DOORFLAG_LONGRANGE, DOORTYPE_SLIDING, 0x00000020, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_SECRETDOOR, PAD_AME_00BC, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004 | DOORFLAG_AUTOMATIC | DOORFLAG_LONGRANGE, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00A0, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00A1, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000004, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00A2, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00A3, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00A4, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00A5, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00A6, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00A7, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00B2, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00B3, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00A8, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00A9, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00AA, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00AB, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00AC, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00AD, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00AE, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000001, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00B1, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
|
|
tag(0x0e, 2)
|
|
tag(0x0f, 2)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00AF, OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDFRONT | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0, DOORTYPE_SWINGING, 0x00000001, 0x000005dc, 0x00000000, 0x00000001, 0x00000800)
|
|
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_AME_00B0, OBJFLAG_DEACTIVATED | OBJFLAG_DOOR_OPENTOFRONT, OBJFLAG2_LOCKEDBACK | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x005a0000, 0x03e80000, 0x00640000, 0x00640000, 0x00010000, 0, DOORTYPE_SWINGING, 0x00000001, 0x000005dc, 0x00000000, 0xffffffff, 0x00000000)
|
|
door(0x0100, MODEL_DD_SERVICEDOOR, PAD_AME_00B4, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_SERVICEDOOR, PAD_AME_00B5, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_SERVICEDOOR, PAD_AME_00B6, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_SERVICEDOOR, PAD_AME_00B7, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004 | DOORFLAG_FLIP, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
tag(0x40, 1)
|
|
door(0x0100, MODEL_DD_SERVICEDOOR, PAD_AME_00BB, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, OBJFLAG2_LOCKEDBACK | OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004 | DOORFLAG_FLIP, DOORTYPE_SLIDING, 0x00000002, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
|
|
door(0x0100, MODEL_DD_WINDDOOR, PAD_AME_00B8, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
|
|
door(0x0100, MODEL_DD_WINDDOOR, PAD_AME_00B9, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_DOOR_OPENTOFRONT, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
|
|
door(0x0100, MODEL_DD_WINDDOOR, PAD_AME_00BA, OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED | OBJFLAG_DOOR_TWOWAY, 0, 0, 1000, 0x005a0000, 0x03e80000, 0x012c0000, 0x012c0000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000b00)
|
|
tag(0x56, 6)
|
|
tag(0x57, 6)
|
|
tag(0x58, 6)
|
|
tag(0x59, 6)
|
|
tag(0x4e, 1)
|
|
lift(0x0100, MODEL_DD_LIFTR, PAD_AME_0256, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x0256, 0x012f, 0x012e, 0x0130, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x0000071c, 0x0010aaaa, 0x16000000)
|
|
door(0x0100, MODEL_DD_LIFTDOOR, PAD_AME_0224, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00001c00)
|
|
door(0x0100, MODEL_DD_LIFTDOOR, PAD_AME_009C, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00001c00)
|
|
door(0x0100, MODEL_DD_LIFTDOOR, PAD_AME_009B, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00001c00)
|
|
door(0x0100, MODEL_DD_LIFTDOOR, PAD_AME_009A, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00001c00)
|
|
lift_door(-4, -5, 0)
|
|
lift_door(-4, -6, 1)
|
|
lift_door(-4, -7, 2)
|
|
lift_door(-4, -8, 3)
|
|
tag(0x5a, 6)
|
|
tag(0x5b, 6)
|
|
tag(0x5c, 6)
|
|
tag(0x5d, 6)
|
|
tag(0x4f, 1)
|
|
lift(0x0100, MODEL_DD_LIFTR, PAD_AME_012D, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x012d, 0x012c, 0x012b, 0x0255, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x0000071c, 0x0010aaaa, 0x16000000)
|
|
door(0x0100, MODEL_DD_LIFTDOOR, PAD_AME_009D, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00001c00)
|
|
door(0x0100, MODEL_DD_LIFTDOOR, PAD_AME_009E, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00001c00)
|
|
door(0x0100, MODEL_DD_LIFTDOOR, PAD_AME_009F, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00001c00)
|
|
door(0x0100, MODEL_DD_LIFTDOOR, PAD_AME_0225, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0, DOORTYPE_SLIDING, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00001c00)
|
|
lift_door(-4, -5, 0)
|
|
lift_door(-4, -6, 1)
|
|
lift_door(-4, -7, 2)
|
|
lift_door(-4, -8, 3)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00BD, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00BE, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00BF, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00C0, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00C1, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00C2, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00C3, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00C4, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00C5, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00C6, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00C7, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00C8, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00CA, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00CB, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00CC, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00CD, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00CE, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_00CF, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_0235, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_0236, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_0237, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_0238, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_0239, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0200, MODEL_DD_PLANTSPIKE, PAD_AME_023A, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_SHOOTTHROUGH, OBJFLAG3_PUSHABLE, 1000)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_011B, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_011C, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00DF, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00E0, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00E1, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00E2, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00E3, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00E4, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00E5, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00E6, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00E7, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0123, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0124, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0125, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0126, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0127, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0128, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0129, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_012A, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00E8, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00E9, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00EA, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00EB, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00EC, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00ED, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00EE, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00EF, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00F0, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00F1, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00F2, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00F3, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00F4, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00F5, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00F6, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00F7, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00F8, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00F9, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00FA, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00FB, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00FC, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00FD, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00FE, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_00FF, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0100, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0101, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0102, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0103, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0105, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0106, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0107, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0108, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0109, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_010A, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_010B, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_010C, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_010D, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_010E, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_010F, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0110, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0111, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0112, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0113, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0114, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0104, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0117, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0118, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0119, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_011A, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0248, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0249, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_DD_WINDOW, PAD_AME_024A, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_DD_WINDOW, PAD_AME_024B, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_DD_WINDOW, PAD_AME_024C, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_DD_WINDOW, PAD_AME_024D, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_DD_WINDOW, PAD_AME_024E, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_DD_WINDOW, PAD_AME_024F, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0250, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_DD_WINDOW_FOYER, PAD_AME_0251, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
glass(0x0100, MODEL_DD_WINDOW_FOYER, PAD_AME_0252, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDSOFA, PAD_AME_00D3, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDSOFA, PAD_AME_00D4, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_AME_00D5, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_AME_00D2, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
tag(0x37, 1)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_AME_00D7, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_AME_00D8, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
tag(0x38, 1)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_AME_00D9, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDSOFA, PAD_AME_00D6, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_00DA, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDSOFA, PAD_AME_0253, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_AME_0254, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
tag(0x3b, 1)
|
|
stdobject(0x0100, MODEL_DD_CHAIR, PAD_AME_01A4, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_01A3, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_01A2, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 35)
|
|
tag(0x3c, 1)
|
|
stdobject(0x0100, MODEL_DD_CHAIR, PAD_AME_01A5, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_01A6, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_01A7, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 35)
|
|
tag(0x3a, 1)
|
|
stdobject(0x0100, MODEL_DD_CHAIR, PAD_AME_01A8, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_01A9, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_01AA, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 32)
|
|
tag(0x39, 1)
|
|
stdobject(0x0100, MODEL_DD_CHAIR, PAD_AME_01AB, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_01AC, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_01AD, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 33)
|
|
tag(0x5e, 1)
|
|
stdobject(0x0100, MODEL_DD_CHAIR, PAD_AME_01B0, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_01AF, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_01AE, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 35)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_01B1, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_CHAIR, PAD_AME_01BA, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_01BB, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
tag(0x63, 1)
|
|
#endif
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_01BC, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 3)
|
|
tag(0x0d, 1)
|
|
stdobject(0x0100, MODEL_LIGHTSWITCH2, PAD_AME_013E, OBJFLAG_FALL, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_CHAIR, PAD_AME_01B3, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_01B4, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_01B5, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 8)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_01B2, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
tag(0x0c, 1)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_01B6, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3)
|
|
stdobject(0x0100, MODEL_DD_REDSOFA, PAD_AME_00DB, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000)
|
|
tag(0x36, 1)
|
|
stdobject(0x0100, MODEL_DD_CHAIR, PAD_AME_01B7, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_01B8, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_01B9, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 32)
|
|
tag(0x35, 1)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_AME_00DC, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_REDARM, PAD_AME_00DD, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_NOFALL | OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_CHAIR, PAD_AME_022D, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_022E, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_CHAIR, PAD_AME_0232, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_0231, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_0230, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 35)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_0233, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 35)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_0234, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 3)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x06, PAD_AME_0011, BODY_DD_GUARD, HEAD_RANDOM, 0x040a, 0x001d, -1, 1000, 9, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_01, -1, 3, 2, 0, 20, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0006, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x05, PAD_AME_01C0, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, 0x001e, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_SURPRISABLE | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_CAN_FLEESURRENDER | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 2, 0, 20, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0005, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x08, PAD_AME_0028, BODY_DD_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 500, 100, CHRFLAG0_CAN_RETREAT | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 2, 0, 20, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0008, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x0d, PAD_AME_006F, BODY_DD_GUARD, HEAD_RANDOM, 0x040c, -1, -1, 100, 100, CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 2, 0, 20, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x000d, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x07, PAD_AME_0058, BODY_DD_GUARD, HEAD_RANDOM, 0x0407, -1, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0007, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x0a, PAD_AME_0057, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, CHRFLAG1_HEARSPAWN_ALERT_IF_ALARM | CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x000a, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x0c, PAD_AME_0060, BODY_DD_GUARD, HEAD_RANDOM, 0x0408, -1, -1, 100, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x000c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x00, PAD_AME_007D, BODY_DD_GUARD, HEAD_RANDOM, 0x0405, -1, -1, 100, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0000, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x0b, PAD_AME_008E, BODY_DD_GUARD, HEAD_RANDOM, 0x0406, -1, -1, 100, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x000b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x09, PAD_AME_0081, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 100, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, CHRFLAG1_HEARSPAWN_ALERT_IF_ALARM | CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_05, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0009, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x01, PAD_AME_021A, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 1000, 9, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0001, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x02, PAD_AME_021B, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 1000, 9, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0002, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x0e, PAD_AME_01F6, BODY_DDSHOCK, HEAD_DDSHOCK, 0x040d, -1, -1, 1000, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | 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_BASICGUARD, 0x12, PAD_AME_0221, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 1000, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_CAN_RETREAT | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_FLEESURRENDER | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0012, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x0f, PAD_AME_021E, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 500, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x000f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x10, PAD_AME_021F, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 500, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0010, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x11, PAD_AME_0220, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 500, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0011, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x13, PAD_AME_0222, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 500, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0013, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x03, PAD_AME_021C, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 1000, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0003, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x04, PAD_AME_021D, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 1000, 100, CHRFLAG0_CAN_BACKOFF | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0004, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x14, PAD_AME_020F, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 500, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0014, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x15, PAD_AME_020E, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 500, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0015, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD, 0x16, PAD_AME_0210, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_SHOCK_GUARD, -1, -1, 500, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0016, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD | SPAWNFLAG_FIXEDHEIGHT, 0x17, PAD_AME_01C6, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 2000, 100, CHRFLAG0_SURPRISABLE | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_09, -1, 0, 0, 1, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0017, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_FIXEDHEIGHT, 0x18, PAD_AME_01C7, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_0A, 0x35, 0, 0, 3, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0018, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_FIXEDHEIGHT, 0x19, PAD_AME_01C8, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 1000, 100, CHRFLAG0_SURPRISABLE | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_0A, 0x36, 0, 0, 2, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0019, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD | SPAWNFLAG_FIXEDHEIGHT, 0x1a, PAD_AME_01C9, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 1000, 100, CHRFLAG0_SURPRISABLE | CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_0B, -1, 0, 0, 1, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x001a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_FIXEDHEIGHT, 0x1b, PAD_AME_01CA, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_0C, 0x37, 0, 0, 3, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x001b, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_FIXEDHEIGHT, 0x1c, PAD_AME_01CB, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_0C, 0x38, 0, 0, 3, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x001c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_BASICGUARD | SPAWNFLAG_FIXEDHEIGHT, 0x1d, PAD_AME_01CC, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_0C, -1, 0, 0, 1, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x001d, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_FIXEDHEIGHT, 0x1e, PAD_AME_01CE, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 1000, 100, CHRFLAG0_COVER_TYPE2 | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_0D, 0x39, 0, 0, 2, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x001e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_FIXEDHEIGHT, 0x1f, PAD_AME_01CF, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 1000, 100, CHRFLAG0_COVER_TYPE2 | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_0E, 0x3a, 0, 0, 2, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x001f, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150)
|
|
chr(SPAWNFLAG_FIXEDHEIGHT, 0x20, PAD_AME_01D0, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_0F, 0x3b, 0, 0, 2, 0, 0)
|
|
weapon(0x0100, MODEL_CHRCMP150, 0x0020, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150)
|
|
|
|
chr(SPAWNFLAG_FIXEDHEIGHT, 0x21, PAD_AME_01D1, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_FALCON_GUARD, -1, -1, 1000, 100, CHRFLAG0_SKIPSAFETYCHECKS | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HEAR_REQUIRE_LOS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_0F, 0x3c, 0, 0, 1, 0, 0)
|
|
weapon(0x0100, MODEL_CHRFALCON2SIL, 0x0021, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_INVINCIBLE | OBJFLAG_FORCENOBOUNCE, 0, 0, WEAPON_FALCON2_SILENCER)
|
|
weapon(0x0100, MODEL_CHRFALCON2SIL, 0x0021, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_INVINCIBLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_FALCON2_SILENCER)
|
|
link_guns(-1, -2)
|
|
tag(0x61, -3)
|
|
tag(0x62, -3)
|
|
|
|
chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, CHR_CASS, PAD_AME_01C2, BODY_CASSANDRA, HEAD_CASSANDRA, AILIST_INIT_CASS, -1, -1, 1000, 100, CHRFLAG0_SURPRISABLE | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0)
|
|
chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, CHR_SECRETARY, PAD_AME_01C3, BODY_NEGOTIATOR, HEAD_SECRETARY, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_SURPRISABLE | CHRFLAG0_FORCESAFETYCHECKS | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0)
|
|
chr(SPAWNFLAG_ONLYONPA | SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, CHR_PROGRAMMER, PAD_AME_007A, BODY_OFFICEWORKER, HEAD_RANDOM, AILIST_PROGRAMMER, -1, -1, 50, 100, CHRFLAG0_SKIPSAFETYCHECKS, 0, TEAM_ENEMY, SQUADRON_0F, -1, 0, 0, 0, 0, 0)
|
|
tag(0x1f, 1)
|
|
hovercar(0x004c, MODEL_DD_HOVCOP, PAD_AME_0144, OBJFLAG_00000008 | OBJFLAG_HOVERCAR_INIT, 0, 0, 100, AILIST_INIT_HOVERCAR)
|
|
tag(0x20, 1)
|
|
hovercar(0x004c, MODEL_DD_HOVCOP, PAD_AME_0144, OBJFLAG_00000008 | OBJFLAG_HOVERCAR_INIT, 0, 0, 100, AILIST_INIT_HOVERCAR)
|
|
tag(0x21, 1)
|
|
hovercar(0x004c, MODEL_DD_HOVCAR, PAD_AME_0144, OBJFLAG_00000008 | OBJFLAG_HOVERCAR_INIT, 0, 0, 100, AILIST_INIT_HOVERCAR)
|
|
tag(0x22, 1)
|
|
hovercar(0x004c, MODEL_DD_HOVCAR, PAD_AME_0144, OBJFLAG_00000008 | OBJFLAG_HOVERCAR_INIT, 0, 0, 100, AILIST_INIT_HOVERCAR)
|
|
tag(0x23, 1)
|
|
hovercar(0x004c, MODEL_DD_HOVMOTO, PAD_AME_0144, OBJFLAG_00000008 | OBJFLAG_HOVERCAR_INIT, 0, 0, 100, AILIST_INIT_HOVERCAR)
|
|
tag(0x24, 1)
|
|
hovercar(0x004c, MODEL_DD_HOVMOTO, PAD_AME_0144, OBJFLAG_00000008 | OBJFLAG_HOVERCAR_INIT, 0, 0, 100, AILIST_INIT_HOVERCAR)
|
|
tag(0x25, 1)
|
|
hovercar(0x004c, MODEL_DD_HOVTRUCK, PAD_AME_0144, OBJFLAG_00000008 | OBJFLAG_HOVERCAR_INIT, 0, 0, 100, AILIST_INIT_HOVERCAR)
|
|
tag(0x26, 1)
|
|
hovercar(0x004c, MODEL_DD_HOVTRUCK, PAD_AME_0144, OBJFLAG_00000008 | OBJFLAG_HOVERCAR_INIT, 0, 0, 100, AILIST_INIT_HOVERCAR)
|
|
tag(0x27, 1)
|
|
hovercar(0x004c, MODEL_DD_HOVCAB, PAD_AME_0144, OBJFLAG_00000008 | OBJFLAG_HOVERCAR_INIT, 0, 0, 100, AILIST_INIT_HOVERCAR)
|
|
tag(0x28, 1)
|
|
hovercar(0x004c, MODEL_DD_HOVCAB, PAD_AME_0144, OBJFLAG_00000008 | OBJFLAG_HOVERCAR_INIT, 0, 0, 100, AILIST_INIT_HOVERCAR)
|
|
conditional_scenery(1, 0, 2)
|
|
door(0x0100, MODEL_DD_AC_UNEXP, PAD_AME_019F, OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_PATHBLOCKER | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_DEACTIVATED, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS | OBJFLAG2_AICANNOTUSE, OBJFLAG3_04000000, 1000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0, DOORTYPE_SLIDING, 0x00000080, 0x00000001, 0x00010000, 0x00000000, 0x00000000)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
stdobject(0x0100, MODEL_DD_AC_EXP, PAD_AME_01A1, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000)
|
|
#else
|
|
stdobject(0x0100, MODEL_DD_AC_EXP, PAD_AME_01A1, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_UNCOLLECTABLE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000)
|
|
#endif
|
|
conditional_scenery(1, 0, 2)
|
|
door(0x0100, MODEL_DD_ACBOT_UNEXP, PAD_AME_019E, OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_PATHBLOCKER | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_DEACTIVATED, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS | OBJFLAG2_AICANNOTUSE, OBJFLAG3_04000000, 1000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0, DOORTYPE_SLIDING, 0x00000080, 0x00000001, 0x00010000, 0x00000000, 0x00000000)
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
stdobject(0x0100, MODEL_DD_ACBOT_EXP, PAD_AME_01A0, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000)
|
|
#else
|
|
stdobject(0x0100, MODEL_DD_ACBOT_EXP, PAD_AME_01A0, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000)
|
|
#endif
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AME_0140, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AME_0141, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AME_0142, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AME_0143, OBJFLAG_FALL | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
|
|
tag(0x31, 1)
|
|
weapon(0x0180, MODEL_CHRECMMINE, -1, OBJFLAG_FALL, 0, 0, WEAPON_ECMMINE)
|
|
rename_object(-1, WEAPON_ECMMINE, L_AME_058, L_AME_059, L_AME_060, L_AME_061, L_AME_062) // "Obtain ECM Mines."
|
|
|
|
tag(0x32, 1)
|
|
weapon(0x0180, MODEL_CHRDATATHIEF, -1, OBJFLAG_FALL, 0, 0, WEAPON_DATAUPLINK)
|
|
rename_object(-1, WEAPON_DATAUPLINK, L_AME_063, L_AME_064, L_AME_065, L_AME_066, L_AME_067) // "Obtain Data Uplink."
|
|
|
|
tag(0x3e, 1)
|
|
weapon(0x0180, MODEL_CHRECMMINE, -1, OBJFLAG_FALL, 0, 0, WEAPON_ECMMINE)
|
|
rename_object(-1, WEAPON_ECMMINE, L_AME_058, L_AME_059, L_AME_060, L_AME_061, L_AME_062) // "Obtain ECM Mines."
|
|
|
|
tag(0x3f, 1)
|
|
weapon(0x0180, MODEL_CHRDATATHIEF, -1, OBJFLAG_FALL, 0, 0, WEAPON_DATAUPLINK)
|
|
rename_object(-1, WEAPON_DATAUPLINK, L_AME_063, L_AME_064, L_AME_065, L_AME_066, L_AME_067) // "Obtain Data Uplink."
|
|
|
|
tag(0x00, 1)
|
|
key(0x0100, MODEL_CHRCHAIN, CHR_CASS, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_COLLECTABLE | OBJFLAG_BOUNCEIFSHOT | OBJFLAG_01000000, 0, 0, 32)
|
|
rename_object(-1, WEAPON_NECKLACE, L_AME_011, L_AME_012, L_AME_013, L_AME_014, L_AME_015) // "Obtain De Vries' necklace."
|
|
|
|
stdobject(0x0100, MODEL_DD_STONEDESK, PAD_AME_0134, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000)
|
|
singlemonitor(0x0100, MODEL_PC1, PAD_AME_0132, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR, 0, 0, 1000, 33)
|
|
tag(0x50, 6)
|
|
tag(0x51, 6)
|
|
tag(0x52, 6)
|
|
tag(0x53, 6)
|
|
tag(0x54, 6)
|
|
tag(0x55, 6)
|
|
camera(0x00c0, MODEL_CCTV_PD, PAD_AME_0136, OBJFLAG_00000002, OBJFLAG2_EXCLUDE_A | OBJFLAG2_EXCLUDE_SA, 0, 400, 0x0011, 0x0000238e, 0x0000001e, 0x000002bc)
|
|
camera(0x00c0, MODEL_CCTV_PD, PAD_AME_0137, OBJFLAG_00000002, OBJFLAG2_EXCLUDE_A, 0, 400, 0x0014, 0x00004000, 0x0000001e, 0x000002bc)
|
|
camera(0x00c0, MODEL_CCTV_PD, PAD_AME_0138, OBJFLAG_00000002, OBJFLAG2_EXCLUDE_A | OBJFLAG2_EXCLUDE_SA, 0, 400, 0x0019, 0x000031c7, 0x0000001e, 0x000002bc)
|
|
camera(0x00c0, MODEL_CCTV_PD, PAD_AME_0139, OBJFLAG_00000002, OBJFLAG2_EXCLUDE_A, 0, 400, 0x001d, 0x00001555, 0x0000001e, 0x000003e8)
|
|
camera(0x00c0, MODEL_CCTV_PD, PAD_AME_013A, OBJFLAG_00000002, OBJFLAG2_EXCLUDE_A | OBJFLAG2_EXCLUDE_SA, 0, 400, 0x0067, 0x0000071c, 0x0000001e, 0x000002bc)
|
|
camera(0x00c0, MODEL_CCTV_PD, PAD_AME_013B, OBJFLAG_00000002, OBJFLAG2_EXCLUDE_A, 0, 400, 0x0078, 0x00004000, 0x0000001e, 0x000002bc)
|
|
camera2(0x0000, 0xfffd05c6, 0xfff25662, 0x000013f6, 0x005a0000, 0x00063f8f, 0x00000219)
|
|
tag(0x09, -1)
|
|
camera2(0x0000, 0xffff51d2, 0xfffd0422, 0x00000c58, 0x00060000, 0x0005f5c2, 0x00000219)
|
|
tag(0x15, -1)
|
|
camera2(0x0000, 0xffff67da, 0xfffd8eec, 0xfffe7c44, 0x0004a147, 0x0005f851, 0x00000219)
|
|
tag(0x16, -1)
|
|
tag(0x04, 1)
|
|
multimonitor(0x0099, MODEL_COMHUB, PAD_AME_025C, OBJFLAG_00000002, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3, 3, 3, 0)
|
|
tag(0x03, 1)
|
|
multimonitor(0x0099, MODEL_COMHUB, PAD_AME_013C, OBJFLAG_00000002, OBJFLAG2_IMMUNETOANTI, OBJFLAG3_INTERACTABLE, 1000, 3, 3, 3, 0)
|
|
tag(0x14, 1)
|
|
stdobject(0x0100, MODEL_LIGHTSWITCH, PAD_AME_013D, OBJFLAG_00000002 | OBJFLAG_DEACTIVATED, 0, OBJFLAG3_INTERACTABLE, 1000)
|
|
tag(0x10, 1)
|
|
multimonitor(0x0099, MODEL_PD_CONSOLE, PAD_AME_0258, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100, 0, 0, 1000, 8, 3, 0, 0)
|
|
tag(0x11, 1)
|
|
multimonitor(0x0099, MODEL_PD_CONSOLE, PAD_AME_0259, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100, 0, 0, 1000, 3, 34, 0, 0)
|
|
tag(0x12, 1)
|
|
multimonitor(0x0099, MODEL_PD_CONSOLE, PAD_AME_025A, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100, 0, 0, 1000, 35, 3, 0, 0)
|
|
tag(0x13, 1)
|
|
multimonitor(0x0099, MODEL_PD_CONSOLE, PAD_AME_025B, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100, 0, 0, 1000, 3, 33, 0, 0)
|
|
tag(0x19, 2)
|
|
tag(0x1a, 2)
|
|
stdobject(0x0100, MODEL_DD_BANNER, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_BANNER, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x17, 1)
|
|
stdobject(0x0100, MODEL_DDJUMPSHIP, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x1b, 1)
|
|
stdobject(0x0024, MODEL_DDJUMPSHIP, -1, OBJFLAG_FALL | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x18, 1)
|
|
stdobject(0x0100, MODEL_ROPE, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x1c, 1)
|
|
stdobject(0x0051, MODEL_TAXICAB, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x1e, 1)
|
|
stdobject(0x0024, MODEL_TAXICAB, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x1d, 1)
|
|
stdobject(0x0051, MODEL_POLICECAR, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x30, 1)
|
|
stdobject(0x0024, MODEL_POLICECAR, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x29, 1)
|
|
stdobject(0x0019, MODEL_DD_HOVCOP, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x2a, 1)
|
|
stdobject(0x0019, MODEL_DD_HOVCAR, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x2b, 1)
|
|
stdobject(0x0019, MODEL_DD_HOVMOTO, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x2c, 1)
|
|
stdobject(0x0019, MODEL_DD_HOVCAB, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
tag(0x2d, 1)
|
|
stdobject(0x0019, MODEL_DD_HOVTRUCK, -1, OBJFLAG_FALL | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_IGNOREROOMCOLOUR | OBJFLAG_INVINCIBLE, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_DD_DESK, PAD_AME_00DE, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_IMMUNETOGUNFIRE, OBJFLAG3_PUSHABLE, 1000)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0121, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0122, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_011F, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_AME_0120, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
|
|
tag(0x41, 1)
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
shield(0x0100, MODEL_CHRSHIELD, 0x000a, OBJFLAG_FALL | OBJFLAG_ASSIGNEDTOCHR, OBJFLAG2_EXCLUDE_PD, 0, 1000)
|
|
#else
|
|
shield(0x0100, MODEL_CHRSHIELD, 0x000a, OBJFLAG_FALL | OBJFLAG_ASSIGNEDTOCHR, OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD, 0, 1000)
|
|
#endif
|
|
tag(0x42, 1)
|
|
shield(0x0100, MODEL_CHRSHIELD, PAD_AME_025F, OBJFLAG_FALL, OBJFLAG2_EXCLUDE_SA | OBJFLAG2_EXCLUDE_PA | OBJFLAG2_EXCLUDE_PD, 0, 1000)
|
|
tag(0x43, 1)
|
|
weapon(0x0100, MODEL_CHRPCGUN, PAD_AME_01D2, OBJFLAG_00000008, OBJFLAG2_IMMUNETOANTI, 0, WEAPON_LAPTOPGUN)
|
|
tag(0x44, 1)
|
|
weapon(0x0100, MODEL_CHRFALCON2, PAD_AME_01D5, OBJFLAG_00000008 | OBJFLAG_FORCENOBOUNCE, OBJFLAG2_IMMUNETOANTI, 0, WEAPON_FALCON2_SILENCER)
|
|
tag(0x45, 1)
|
|
weapon(0x0100, MODEL_CHRFALCON2, PAD_AME_01D4, OBJFLAG_00000008 | OBJFLAG_FORCENOBOUNCE, OBJFLAG2_IMMUNETOANTI, 0, WEAPON_FALCON2_SILENCER)
|
|
tag(0x46, 1)
|
|
ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, PAD_AME_01D6, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_FORCENOBOUNCE, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_PISTOL)
|
|
tag(0x47, 1)
|
|
ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, PAD_AME_01D7, OBJFLAG_FALL | OBJFLAG_FORCENOBOUNCE, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_PISTOL)
|
|
tag(0x48, 1)
|
|
ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, PAD_AME_01D8, OBJFLAG_FALL | OBJFLAG_FORCENOBOUNCE, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_PISTOL)
|
|
tag(0x49, 1)
|
|
ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, PAD_AME_01D9, OBJFLAG_FALL | OBJFLAG_FORCENOBOUNCE, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_PISTOL)
|
|
tag(0x4a, 1)
|
|
ammocrate(0x0100, MODEL_CHRFALCON2, PAD_AME_01DA, OBJFLAG_FALL | OBJFLAG_FORCENOBOUNCE, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_PISTOL)
|
|
tag(0x4a, 1)
|
|
ammocrate(0x0100, MODEL_CHRFALCON2, PAD_AME_01DA, OBJFLAG_FALL | OBJFLAG_FORCENOBOUNCE, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_PISTOL)
|
|
tag(0x4b, 1)
|
|
ammocrate(0x0019, MODEL_MULTI_AMMO_CRATE, PAD_AME_01DB, OBJFLAG_FALL | OBJFLAG_FORCENOBOUNCE, OBJFLAG2_IMMUNETOANTI, 0, 1000, AMMOTYPE_PISTOL)
|
|
tag(0x4c, 1)
|
|
weapon(0x0100, MODEL_CHRCMP150, PAD_AME_025D, OBJFLAG_00000008 | OBJFLAG_FORCENOBOUNCE, OBJFLAG2_IMMUNETOANTI, 0, WEAPON_CMP150)
|
|
tag(0x4d, 1)
|
|
weapon(0x0100, MODEL_CHRCMP150, PAD_AME_025E, OBJFLAG_00000008 | OBJFLAG_FORCENOBOUNCE, OBJFLAG2_IMMUNETOANTI, 0, WEAPON_CMP150)
|
|
endprops
|
|
};
|
|
|
|
s32 intro[] = {
|
|
intro_weapon(WEAPON_FALCON2_SILENCER, -1)
|
|
ammo(AMMOTYPE_PISTOL, 80)
|
|
ammo(AMMOTYPE_ECM_MINE, 2)
|
|
outfit(OUTFIT_DEFAULT)
|
|
spawn(PAD_AME_01D3)
|
|
endintro
|
|
};
|
|
|
|
s32 path00[] = {
|
|
PAD_AME_0144,
|
|
PAD_AME_0145,
|
|
-1,
|
|
};
|
|
|
|
s32 path01[] = {
|
|
PAD_AME_0146,
|
|
PAD_AME_0147,
|
|
PAD_AME_0148,
|
|
-1,
|
|
};
|
|
|
|
s32 path02[] = {
|
|
PAD_AME_0149,
|
|
PAD_AME_014A,
|
|
PAD_AME_014B,
|
|
PAD_AME_014C,
|
|
PAD_AME_014D,
|
|
PAD_AME_014E,
|
|
-1,
|
|
};
|
|
|
|
s32 path03[] = {
|
|
PAD_AME_0152,
|
|
PAD_AME_0151,
|
|
PAD_AME_0150,
|
|
PAD_AME_014F,
|
|
-1,
|
|
};
|
|
|
|
s32 path04[] = {
|
|
PAD_AME_0154,
|
|
PAD_AME_0157,
|
|
PAD_AME_0156,
|
|
PAD_AME_0153,
|
|
PAD_AME_0155,
|
|
-1,
|
|
};
|
|
|
|
s32 path05[] = {
|
|
PAD_AME_0159,
|
|
PAD_AME_015A,
|
|
PAD_AME_015D,
|
|
PAD_AME_015B,
|
|
PAD_AME_015C,
|
|
PAD_AME_0158,
|
|
-1,
|
|
};
|
|
|
|
s32 path06[] = {
|
|
PAD_AME_015E,
|
|
PAD_AME_015F,
|
|
PAD_AME_0160,
|
|
PAD_AME_0161,
|
|
PAD_AME_0162,
|
|
PAD_AME_0163,
|
|
-1,
|
|
};
|
|
|
|
s32 path07[] = {
|
|
PAD_AME_0167,
|
|
PAD_AME_0166,
|
|
PAD_AME_0165,
|
|
PAD_AME_0168,
|
|
PAD_AME_0169,
|
|
PAD_AME_0164,
|
|
-1,
|
|
};
|
|
|
|
s32 path08[] = {
|
|
PAD_AME_016A,
|
|
PAD_AME_016B,
|
|
PAD_AME_016C,
|
|
PAD_AME_016D,
|
|
-1,
|
|
};
|
|
|
|
s32 path09[] = {
|
|
PAD_AME_016E,
|
|
PAD_AME_016F,
|
|
PAD_AME_0170,
|
|
PAD_AME_0171,
|
|
PAD_AME_0172,
|
|
PAD_AME_0173,
|
|
-1,
|
|
};
|
|
|
|
s32 path10[] = {
|
|
PAD_AME_0174,
|
|
PAD_AME_0175,
|
|
PAD_AME_0176,
|
|
PAD_AME_0177,
|
|
-1,
|
|
};
|
|
|
|
s32 path11[] = {
|
|
PAD_AME_0178,
|
|
PAD_AME_0179,
|
|
PAD_AME_017A,
|
|
PAD_AME_017B,
|
|
PAD_AME_017C,
|
|
PAD_AME_017D,
|
|
PAD_AME_017E,
|
|
PAD_AME_017F,
|
|
-1,
|
|
};
|
|
|
|
s32 path12[] = {
|
|
PAD_AME_0180,
|
|
PAD_AME_0181,
|
|
PAD_AME_0182,
|
|
-1,
|
|
};
|
|
|
|
s32 path13[] = {
|
|
PAD_AME_0183,
|
|
PAD_AME_0184,
|
|
PAD_AME_0185,
|
|
-1,
|
|
};
|
|
|
|
s32 path14[] = {
|
|
PAD_AME_0186,
|
|
PAD_AME_0191,
|
|
-1,
|
|
};
|
|
|
|
s32 path15[] = {
|
|
PAD_AME_0187,
|
|
PAD_AME_0190,
|
|
-1,
|
|
};
|
|
|
|
s32 path16[] = {
|
|
PAD_AME_0188,
|
|
PAD_AME_018F,
|
|
-1,
|
|
};
|
|
|
|
s32 path17[] = {
|
|
PAD_AME_0189,
|
|
PAD_AME_018E,
|
|
-1,
|
|
};
|
|
|
|
s32 path18[] = {
|
|
PAD_AME_018C,
|
|
PAD_AME_018B,
|
|
-1,
|
|
};
|
|
|
|
s32 path19[] = {
|
|
PAD_AME_018D,
|
|
PAD_AME_018A,
|
|
-1,
|
|
};
|
|
|
|
s32 path20[] = {
|
|
PAD_AME_0192,
|
|
PAD_AME_019D,
|
|
-1,
|
|
};
|
|
|
|
s32 path21[] = {
|
|
PAD_AME_0193,
|
|
PAD_AME_019C,
|
|
-1,
|
|
};
|
|
|
|
s32 path22[] = {
|
|
PAD_AME_0194,
|
|
PAD_AME_019B,
|
|
-1,
|
|
};
|
|
|
|
s32 path23[] = {
|
|
PAD_AME_0195,
|
|
PAD_AME_019A,
|
|
-1,
|
|
};
|
|
|
|
s32 path24[] = {
|
|
PAD_AME_0197,
|
|
PAD_AME_0198,
|
|
-1,
|
|
};
|
|
|
|
s32 path25[] = {
|
|
PAD_AME_0196,
|
|
PAD_AME_0199,
|
|
-1,
|
|
};
|
|
|
|
s32 path26[] = {
|
|
PAD_AME_007D,
|
|
PAD_AME_007C,
|
|
PAD_AME_0077,
|
|
PAD_AME_0076,
|
|
PAD_AME_008D,
|
|
PAD_AME_008C,
|
|
PAD_AME_008B,
|
|
PAD_AME_0088,
|
|
PAD_AME_008B,
|
|
PAD_AME_008C,
|
|
-1,
|
|
};
|
|
|
|
s32 path27[] = {
|
|
PAD_AME_008E,
|
|
PAD_AME_008D,
|
|
PAD_AME_008C,
|
|
PAD_AME_008B,
|
|
PAD_AME_0088,
|
|
-1,
|
|
};
|
|
|
|
s32 path30[] = {
|
|
PAD_AME_000C,
|
|
PAD_AME_000B,
|
|
PAD_AME_000F,
|
|
PAD_AME_0010,
|
|
PAD_AME_0013,
|
|
PAD_AME_0011,
|
|
PAD_AME_0012,
|
|
PAD_AME_0011,
|
|
PAD_AME_0010,
|
|
PAD_AME_000F,
|
|
PAD_AME_000B,
|
|
-1,
|
|
};
|
|
|
|
s32 path32[] = {
|
|
PAD_AME_0028,
|
|
PAD_AME_0029,
|
|
PAD_AME_002F,
|
|
PAD_AME_0030,
|
|
PAD_AME_002B,
|
|
PAD_AME_002A,
|
|
PAD_AME_002D,
|
|
PAD_AME_002C,
|
|
PAD_AME_002E,
|
|
PAD_AME_0031,
|
|
PAD_AME_0032,
|
|
PAD_AME_003B,
|
|
PAD_AME_003A,
|
|
PAD_AME_0039,
|
|
-1,
|
|
};
|
|
|
|
s32 path33[] = {
|
|
PAD_AME_0032,
|
|
PAD_AME_003B,
|
|
PAD_AME_003A,
|
|
PAD_AME_0039,
|
|
PAD_AME_0074,
|
|
PAD_AME_006E,
|
|
PAD_AME_006D,
|
|
PAD_AME_0072,
|
|
PAD_AME_0073,
|
|
PAD_AME_0070,
|
|
PAD_AME_0071,
|
|
PAD_AME_006F,
|
|
-1,
|
|
};
|
|
|
|
s32 path34[] = {
|
|
PAD_AME_01F6,
|
|
PAD_AME_01F5,
|
|
PAD_AME_01F4,
|
|
PAD_AME_01F3,
|
|
PAD_AME_01F2,
|
|
PAD_AME_01F0,
|
|
PAD_AME_01EF,
|
|
PAD_AME_01EE,
|
|
PAD_AME_01EC,
|
|
PAD_AME_01E8,
|
|
PAD_AME_01E6,
|
|
PAD_AME_01E5,
|
|
PAD_AME_01DD,
|
|
PAD_AME_01E4,
|
|
PAD_AME_01E3,
|
|
PAD_AME_01E2,
|
|
PAD_AME_01E1,
|
|
-1,
|
|
};
|
|
|
|
s32 path35[] = {
|
|
PAD_AME_007C,
|
|
PAD_AME_0078,
|
|
PAD_AME_0077,
|
|
PAD_AME_0076,
|
|
PAD_AME_008E,
|
|
PAD_AME_008D,
|
|
PAD_AME_008C,
|
|
PAD_AME_008B,
|
|
PAD_AME_008A,
|
|
PAD_AME_0089,
|
|
PAD_AME_0088,
|
|
PAD_AME_0090,
|
|
PAD_AME_0075,
|
|
PAD_AME_006F,
|
|
PAD_AME_0071,
|
|
PAD_AME_0070,
|
|
PAD_AME_0073,
|
|
PAD_AME_0066,
|
|
PAD_AME_0058,
|
|
PAD_AME_0059,
|
|
PAD_AME_005A,
|
|
PAD_AME_0067,
|
|
PAD_AME_0068,
|
|
PAD_AME_005B,
|
|
PAD_AME_005C,
|
|
PAD_AME_005D,
|
|
PAD_AME_005E,
|
|
PAD_AME_0061,
|
|
-1,
|
|
};
|
|
|
|
s32 path31[] = {
|
|
PAD_AME_0011,
|
|
PAD_AME_0013,
|
|
PAD_AME_0014,
|
|
PAD_AME_0015,
|
|
PAD_AME_0016,
|
|
PAD_AME_0017,
|
|
-1,
|
|
};
|
|
|
|
s32 path28[] = {
|
|
PAD_AME_0058,
|
|
PAD_AME_0067,
|
|
PAD_AME_0068,
|
|
PAD_AME_005B,
|
|
PAD_AME_005D,
|
|
-1,
|
|
};
|
|
|
|
s32 path29[] = {
|
|
PAD_AME_0060,
|
|
PAD_AME_005F,
|
|
PAD_AME_0056,
|
|
PAD_AME_0055,
|
|
PAD_AME_0051,
|
|
PAD_AME_0052,
|
|
PAD_AME_0053,
|
|
-1,
|
|
};
|
|
|
|
/**
|
|
* @unused
|
|
*/
|
|
u8 func0401_do_some_animation[] = {
|
|
// Do some animation
|
|
restart_timer
|
|
chr_do_animation(ANIM_0066, 0, 1, CHRANIMFLAG_PAUSEATEND, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x08)
|
|
if_timer_gt(0, /*goto*/ 0x2c)
|
|
endloop(0x08)
|
|
|
|
label(0x2c)
|
|
chr_do_animation(ANIM_0066, 1, -1, CHRANIMFLAG_PAUSEATEND, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x85)
|
|
endloop(0x85)
|
|
|
|
// Unreachable
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unregistered
|
|
*/
|
|
u8 unregistered_function[] = {
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unused
|
|
*/
|
|
u8 func0402_guard_with_chrflag[] = {
|
|
set_returnlist(CHR_SELF, 0x0402)
|
|
set_self_chrflag(CHRCFLAG_CANCHANGEACTDURINGARGH)
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED_0001)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unused
|
|
*/
|
|
u8 func0403_shielded_guard[] = {
|
|
set_shield(200)
|
|
set_self_chrflag(CHRCFLAG_CANCHANGEACTDURINGARGH)
|
|
set_ailist(CHR_SELF, GAILIST_CHOOSE_TARGET)
|
|
endlist
|
|
};
|
|
|
|
u8 func0404_init_hovercar[] = {
|
|
dprint 'h','o','v','\n',0,
|
|
begin_hovercar_path(0)
|
|
set_vehicle_speed(0x0c00, 120)
|
|
|
|
beginloop(0x04)
|
|
reloop(0x04)
|
|
|
|
// Unreachable
|
|
label(0x08)
|
|
set_vehicle_speed(0x0600, 120)
|
|
reloop(0x04)
|
|
|
|
label(0x09)
|
|
set_vehicle_speed(0x0700, 120)
|
|
reloop(0x04)
|
|
|
|
label(0x0a)
|
|
set_vehicle_speed(0x0800, 120)
|
|
reloop(0x04)
|
|
|
|
label(0x0b)
|
|
set_vehicle_speed(0x0900, 120)
|
|
reloop(0x04)
|
|
|
|
label(0x0c)
|
|
set_vehicle_speed(0x0a00, 120)
|
|
reloop(0x04)
|
|
|
|
label(0x0d)
|
|
set_vehicle_speed(0x0b00, 120)
|
|
reloop(0x04)
|
|
|
|
label(0x0e)
|
|
set_vehicle_speed(0x0d00, 120)
|
|
endloop(0x04)
|
|
|
|
endlist
|
|
};
|
|
|
|
#define do_path(path) \
|
|
assign_path(path) \
|
|
start_patrol \
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED_0004) \
|
|
endlist
|
|
|
|
u8 func0405_start_path26[] = {
|
|
do_path(26)
|
|
};
|
|
|
|
u8 func0406_start_path27[] = {
|
|
do_path(27)
|
|
};
|
|
|
|
u8 func0407_start_path28[] = {
|
|
do_path(28)
|
|
};
|
|
|
|
u8 func0408_start_path29[] = {
|
|
do_path(29)
|
|
};
|
|
|
|
u8 func0409_start_path30[] = {
|
|
do_path(30)
|
|
};
|
|
|
|
u8 func040a_start_path31[] = {
|
|
set_chr_dodge_rating(2, 20)
|
|
set_unarmeddodgerating(0)
|
|
set_accuracy(0)
|
|
set_reaction_speed(0)
|
|
set_chr_maxdamage(CHR_SELF, 40)
|
|
add_health_or_armor(0)
|
|
set_recovery_speed(0)
|
|
set_shield(0)
|
|
set_returnlist(CHR_SELF, 0x040a)
|
|
assign_path(31)
|
|
start_patrol
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED_0004)
|
|
endlist
|
|
};
|
|
|
|
u8 func040b_start_path32[] = {
|
|
set_chr_dodge_rating(2, 20)
|
|
set_unarmeddodgerating(0)
|
|
set_accuracy(0)
|
|
set_reaction_speed(0)
|
|
set_chr_maxdamage(CHR_SELF, 40)
|
|
add_health_or_armor(0)
|
|
set_recovery_speed(0)
|
|
set_shield(0)
|
|
assign_path(32)
|
|
start_patrol
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED_0004)
|
|
endlist
|
|
};
|
|
|
|
u8 func040c_start_path33[] = {
|
|
set_chr_dodge_rating(2, 20)
|
|
set_unarmeddodgerating(0)
|
|
set_accuracy(0)
|
|
set_reaction_speed(0)
|
|
set_chr_maxdamage(CHR_SELF, 40)
|
|
add_health_or_armor(0)
|
|
set_recovery_speed(0)
|
|
set_shield(0)
|
|
assign_path(33)
|
|
start_patrol
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED_0004)
|
|
endlist
|
|
};
|
|
|
|
u8 func040d_start_path34[] = {
|
|
set_chr_dodge_rating(2, 20)
|
|
set_unarmeddodgerating(0)
|
|
set_accuracy(10)
|
|
set_reaction_speed(0)
|
|
set_chr_maxdamage(CHR_SELF, 40)
|
|
add_health_or_armor(0)
|
|
set_recovery_speed(0)
|
|
set_shield(0)
|
|
assign_path(34)
|
|
start_patrol
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED_0004)
|
|
endlist
|
|
};
|
|
|
|
u8 func040e_start_path35[] = {
|
|
assign_path(35)
|
|
start_patrol
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED_0004)
|
|
endlist
|
|
};
|
|
|
|
u8 func0410_init_cass[] = {
|
|
set_chr_maxdamage(CHR_SELF, 1)
|
|
set_ailist(CHR_SELF, AILIST_CASS)
|
|
endlist
|
|
};
|
|
|
|
u8 func040f_cass[] = {
|
|
set_shotlist(GAILIST_IDLE)
|
|
if_chr_dead(CHR_CASS, /*goto*/ 0x06)
|
|
if_chr_knockedout(CHR_CASS, /*goto*/ 0x06)
|
|
goto_next(0x2c)
|
|
|
|
// Dying
|
|
label(0x06)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x2c)
|
|
chr_do_animation(ANIM_TALKING_00A0, 0, 193, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
// Wait for player to enter room
|
|
beginloop(0x59)
|
|
set_target_chr(CHR_BOND)
|
|
if_los_to_target(/*goto*/ 0x5a)
|
|
set_target_chr(CHR_COOP)
|
|
if_los_to_target(/*goto*/ 0x5a)
|
|
set_target_chr(CHR_BOND)
|
|
if_stage_flag_eq(STAGEFLAG_SECETARY_SAW_JO_OR_COOP, TRUE, /*goto*/ 0xbe)
|
|
endloop(0x59)
|
|
|
|
label(0xbe)
|
|
if_stage_flag_eq(STAGEFLAG_SECRETARY_SAW_COOP, TRUE, /*goto*/ 0xbf)
|
|
set_target_chr(CHR_BOND)
|
|
goto_next(0x5a)
|
|
|
|
label(0xbf)
|
|
set_target_chr(CHR_COOP)
|
|
goto_next(0x5a)
|
|
|
|
// Face target chr (Jo or Velvet)
|
|
label(0x5a)
|
|
stop_chr
|
|
yield
|
|
unset_stage_flag(STAGEFLAG_SECETARY_SAW_JO_OR_COOP)
|
|
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x5b)
|
|
|
|
beginloop(0x5b)
|
|
if_chr_stopped(/*goto*/ 0x5c)
|
|
endloop(0x5b)
|
|
|
|
label(0x5c)
|
|
speak(CHR_TARGET, L_AME_021, MP3_02F4, CHANNEL_6, COLOR_04_ORANGE) // "Who are you and what are you doing here?"
|
|
restart_timer
|
|
chr_do_animation(ANIM_TALKING_0098, 0, 193, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x5d)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x5e)
|
|
endloop(0x5d)
|
|
|
|
// Walk backwards for 4 seconds
|
|
label(0x5e)
|
|
stop_chr
|
|
chr_do_animation(ANIM_WALK_BACKWARDS, -1, -1, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
restart_timer
|
|
|
|
beginloop(0x5f)
|
|
if_timer_gt(240, /*goto*/ 0x06)
|
|
endloop(0x5f)
|
|
|
|
label(0x06)
|
|
stop_chr
|
|
|
|
// Face target again
|
|
label(0x06)
|
|
restart_timer
|
|
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x64)
|
|
|
|
beginloop(0x64)
|
|
if_target_in_fov_left(10, /*goto*/ 0x65)
|
|
if_timer_gt(90, /*goto*/ 0x65)
|
|
endloop(0x64)
|
|
|
|
label(0x65)
|
|
restart_timer
|
|
if_los_to_target(/*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005b, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005c, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005d, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005e, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005f, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0060, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0061, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0062, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0064, /*goto*/ 0x2c)
|
|
goto_next(0x66)
|
|
|
|
label(0x2c)
|
|
speak(CHR_TARGET, L_AME_023, MP3_02F5, CHANNEL_6, COLOR_04_ORANGE) // "You won't shoot me, foolish child!"
|
|
chr_do_animation(ANIM_TALKING_00A0, 0, 193, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x66)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x67)
|
|
endloop(0x66)
|
|
|
|
label(0x67)
|
|
if_los_to_target(/*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005b, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005c, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005d, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005e, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005f, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0060, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0061, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0062, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0064, /*goto*/ 0x2c)
|
|
goto_next(0x68)
|
|
|
|
label(0x2c)
|
|
chr_do_animation(ANIM_TALKING_00A3, 0, 193, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
speak(CHR_TARGET, L_AME_024, MP3_02F6, CHANNEL_6, COLOR_04_ORANGE) // "Don't you know who I am?"
|
|
|
|
beginloop(0x68)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x69)
|
|
endloop(0x68)
|
|
|
|
label(0x69)
|
|
walk_to_pad(PAD_AME_004D)
|
|
|
|
beginloop(0x60)
|
|
if_chr_distance_to_pad_lt(CHR_SELF, 70, PAD_AME_004D, /*goto*/ 0x06)
|
|
endloop(0x60)
|
|
|
|
label(0x06)
|
|
walk_to_pad(PAD_AME_004E)
|
|
|
|
beginloop(0x61)
|
|
if_chr_distance_to_pad_lt(CHR_SELF, 70, PAD_AME_004E, /*goto*/ 0x06)
|
|
endloop(0x61)
|
|
|
|
label(0x06)
|
|
walk_to_pad(PAD_AME_0041)
|
|
|
|
beginloop(0x62)
|
|
if_chr_stopped(/*goto*/ 0x06)
|
|
endloop(0x62)
|
|
|
|
label(0x06)
|
|
restart_timer
|
|
try_face_entity(ATTACKFLAG_AIMATPAD, 0x0042, /*goto*/ 0xb8)
|
|
|
|
beginloop(0xb8)
|
|
if_timer_gt(60, /*goto*/ 0x63)
|
|
endloop(0xb8)
|
|
|
|
label(0x63)
|
|
if_los_to_target(/*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005b, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005c, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005d, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005e, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x005f, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0060, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0061, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0062, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_TARGET, 0x00, 0x0064, /*goto*/ 0x2c)
|
|
goto_next(0x06)
|
|
|
|
label(0x2c)
|
|
speak(CHR_TARGET, L_AME_025, MP3_02F7, CHANNEL_6, COLOR_04_ORANGE) // "Let's see how you deal with security."
|
|
label(0x06)
|
|
chr_do_animation(ANIM_PUSH_BUTTON, 0, 193, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x6a)
|
|
if_chr_stopped(/*goto*/ 0x06)
|
|
endloop(0x6a)
|
|
|
|
label(0x06)
|
|
activate_alarm
|
|
|
|
label(0x6b)
|
|
stop_chr
|
|
yield
|
|
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x6c)
|
|
|
|
beginloop(0x6c)
|
|
call_rng
|
|
if_rand_lt(250, /*goto*/ 0x06)
|
|
stop_chr
|
|
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x2c)
|
|
label(0x2c)
|
|
call_rng
|
|
if_distance_to_target_gt(500, /*goto*/ 0x06)
|
|
if_target_aiming_at_me(/*goto*/ 0x6d)
|
|
label(0x06)
|
|
endloop(0x6c)
|
|
|
|
label(0x6d)
|
|
restart_timer
|
|
say_quip(CHR_TARGET, 0x00, 0xff, 0x00, 0xff, BANK_1, 0x01, 0x04) // "How dare you disturb me","You will regret this intrusion girl","If I were you I'd leave, now"
|
|
chr_do_animation(ANIM_TALKING_00A3, 0, 193, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x6e)
|
|
if_timer_gt(100, /*goto*/ 0x6f)
|
|
endloop(0x6e)
|
|
|
|
label(0x6f)
|
|
restart_timer
|
|
|
|
beginloop(0x70)
|
|
if_timer_gt(300, /*goto*/ 0x71)
|
|
endloop(0x70)
|
|
|
|
label(0x71)
|
|
goto_first(0x6b)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func0412_init_secretary[] = {
|
|
set_chr_maxdamage(CHR_SELF, 1)
|
|
set_ailist(CHR_SELF, AILIST_SECRETARY)
|
|
endlist
|
|
};
|
|
|
|
u8 func0411_secretary[] = {
|
|
if_self_flag_bankx_eq(CHRFLAG0_SKIPSAFETYCHECKS, TRUE, BANK_0, /*goto*/ 0x06)
|
|
set_self_flag_bankx(CHRFLAG0_SKIPSAFETYCHECKS, BANK_0)
|
|
set_chr_hiddenflag(CHR_SECRETARY, CHRHFLAG_WARPONSCREEN)
|
|
chr_move_to_pad(CHR_SECRETARY, PAD_AME_01C3, FALSE, /*goto*/ 0x2c)
|
|
dprint 'D','E','T','E','C','T',' ','4',0,
|
|
label(0x2c)
|
|
stop_chr
|
|
label(0x06)
|
|
set_shotlist(GAILIST_IDLE)
|
|
if_chr_dead(CHR_SECRETARY, /*goto*/ 0x06)
|
|
if_chr_knockedout(CHR_SECRETARY, /*goto*/ 0x06)
|
|
goto_next(0x2c)
|
|
|
|
label(0x06)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x2c)
|
|
chr_do_animation(ANIM_00A1, 0, 193, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x72)
|
|
set_target_chr(CHR_BOND)
|
|
if_los_to_target(/*goto*/ 0x73)
|
|
set_target_chr(CHR_COOP)
|
|
if_los_to_target(/*goto*/ 0x74)
|
|
set_target_chr(CHR_BOND)
|
|
endloop(0x72)
|
|
|
|
label(0x74)
|
|
set_stage_flag(STAGEFLAG_SECRETARY_SAW_COOP)
|
|
label(0x73)
|
|
stop_chr
|
|
restart_timer
|
|
set_stage_flag(STAGEFLAG_SECETARY_SAW_JO_OR_COOP)
|
|
|
|
beginloop(0x7a)
|
|
if_timer_gt(20, /*goto*/ 0x7b)
|
|
endloop(0x7a)
|
|
|
|
label(0x7b)
|
|
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x7c)
|
|
|
|
beginloop(0x7c)
|
|
if_timer_lt(80, /*goto*/ 0x2c)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x7d)
|
|
label(0x2c)
|
|
endloop(0x7c)
|
|
|
|
label(0x7d)
|
|
restart_timer
|
|
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ 0x2c)
|
|
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ 0x2c)
|
|
speak(CHR_TARGET, L_AME_022, MP3_02ED, CHANNEL_5, COLOR_07_RED) // "Look out! She's got a gun."
|
|
label(0x2c)
|
|
chr_do_animation(ANIM_SURRENDER_002E, 0, 193, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x75)
|
|
if_timer_gt(60, /*goto*/ 0x76)
|
|
endloop(0x75)
|
|
|
|
label(0x76)
|
|
set_action(MA_PANIC, FALSE)
|
|
jog_to_pad(PAD_AME_0047)
|
|
|
|
beginloop(0x77)
|
|
if_chr_stopped(/*goto*/ 0x78)
|
|
endloop(0x77)
|
|
|
|
label(0x78)
|
|
chr_do_animation(ANIM_COWER_01F5, -1, -1, CHRANIMFLAG_SLOWUPDATE | CHRANIMFLAG_LOCKPOS, 20, CHR_SELF, 2)
|
|
|
|
beginloop(0x79)
|
|
if_distance_to_target_gt(500, /*goto*/ 0x06)
|
|
if_target_aiming_at_me(/*goto*/ 0x7e)
|
|
label(0x06)
|
|
endloop(0x79)
|
|
|
|
label(0x7e)
|
|
restart_timer
|
|
chr_do_animation(ANIM_COWER_01F5, -1, -1, CHRANIMFLAG_SLOWUPDATE, 10, CHR_SELF, 2)
|
|
yield
|
|
goto_next(0x81)
|
|
|
|
// Unreachable
|
|
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x7f)
|
|
|
|
beginloop(0x7f)
|
|
if_target_in_fov_left(10, /*goto*/ 0x81)
|
|
if_timer_gt(120, /*goto*/ 0x81)
|
|
endloop(0x7f)
|
|
|
|
label(0x81)
|
|
restart_timer
|
|
say_quip(CHR_TARGET, 0x01, 0xff, 0x00, 0xff, BANK_1, 0x02, 0x07) // "Please don't kill me","Don't shoot!"
|
|
chr_do_animation(ANIM_SURRENDER_002E, 0, -1, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x82)
|
|
if_timer_gt(180, /*goto*/ 0x83)
|
|
endloop(0x82)
|
|
|
|
label(0x83)
|
|
chr_do_animation(ANIM_COWER_0229, -1, -1, CHRANIMFLAG_SLOWUPDATE, 20, CHR_SELF, 2)
|
|
|
|
beginloop(0x84)
|
|
call_rng
|
|
if_rand_gt(254, /*goto*/ 0x06)
|
|
endloop(0x84)
|
|
|
|
label(0x06)
|
|
goto_first(0x78)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func0414_programmer[] = {
|
|
#define LABEL_JO_SPEAK 0x9c
|
|
#define LABEL_RUN_TO_GUARD 0xa5
|
|
#define LABEL_NEAR_LAPTOPGUN_ROOM 0xa8
|
|
#define LABEL_LOG_ON 0xaa
|
|
#define LABEL_PC_BROKEN 0xc5
|
|
|
|
// PA only
|
|
if_difficulty_gt(DIFF_SA, /*goto*/ 0x2c)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x2c)
|
|
set_reaction_speed(100)
|
|
set_shotlist(AILIST_PROGRAMMER)
|
|
set_chr_chrflag(CHR_PROGRAMMER, CHRCFLAG_CANFACEWALL)
|
|
if_chr_dead(CHR_SELF, /*goto*/ 0x06)
|
|
if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x06)
|
|
if_chr_knockedout(CHR_SELF, /*goto*/ 0x06)
|
|
goto_next(0x2c)
|
|
|
|
label(0x06)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x2c)
|
|
if_num_times_shot_lt(1, /*goto*/ 0x06)
|
|
set_stage_flag(STAGEFLAG_PROGRAMMER_INJURED)
|
|
if_chr_weapon_equipped(CHR_TARGET, WEAPON_NONE, /*goto*/ 0x2c)
|
|
if_chr_weapon_equipped(CHR_TARGET, WEAPON_UNARMED, /*goto*/ 0x2c)
|
|
if_sound_finished(CHANNEL_3, /*goto*/ 0x90)
|
|
goto_next(0x2c)
|
|
|
|
label(0x90)
|
|
speak(CHR_TARGET, L_AME_053, MP3_02FE, CHANNEL_3, COLOR_03_RED) // "Don't shoot, don't shoot!"
|
|
label(0x2c)
|
|
restart_timer
|
|
|
|
beginloop(0xab)
|
|
if_chr_stopped(/*goto*/ LABEL_JO_SPEAK)
|
|
endloop(0xab)
|
|
|
|
// Hasn't been shot
|
|
label(0x06)
|
|
set_chr_team(CHR_SELF, TEAM_ENEMY)
|
|
stop_chr
|
|
|
|
// Wait until Jo or Velvet near his office
|
|
beginloop(0x91)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
set_target_chr(CHR_BOND)
|
|
if_chr_same_floor_distance_to_pad_lt(CHR_TARGET, 800, PAD_AME_007C, /*goto*/ 0x06)
|
|
set_target_chr(CHR_COOP)
|
|
if_chr_same_floor_distance_to_pad_lt(CHR_TARGET, 800, PAD_AME_007C, /*goto*/ 0x06)
|
|
#else
|
|
set_target_chr(CHR_BOND)
|
|
if_chr_distance_to_pad_lt(CHR_TARGET, 800, PAD_AME_007C, /*goto*/ 0x06)
|
|
set_target_chr(CHR_COOP)
|
|
if_chr_distance_to_pad_lt(CHR_TARGET, 800, PAD_AME_007C, /*goto*/ 0x06)
|
|
#endif
|
|
endloop(0x91)
|
|
|
|
// Phone ringing
|
|
label(0x06)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
play_sound_from_object2(CHANNEL_4, OBJ_PCMONITOR, SFX_8109, PSTYPE_COMMHUB, 0x02)
|
|
#else
|
|
speak(CHR_TARGET, -1, SFX_8109, CHANNEL_4, COLOR_00_GREEN)
|
|
#endif
|
|
|
|
// Wait until Jo or Velvet is close to his door
|
|
beginloop(0x92)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
set_target_chr(CHR_BOND)
|
|
if_chr_same_floor_distance_to_pad_lt(CHR_TARGET, 200, PAD_AME_007C, /*goto*/ 0x06)
|
|
set_target_chr(CHR_COOP)
|
|
if_chr_same_floor_distance_to_pad_lt(CHR_TARGET, 200, PAD_AME_007C, /*goto*/ 0x06)
|
|
#else
|
|
set_target_chr(CHR_BOND)
|
|
if_chr_distance_to_pad_lt(CHR_TARGET, 200, PAD_AME_007C, /*goto*/ 0x06)
|
|
set_target_chr(CHR_COOP)
|
|
if_chr_distance_to_pad_lt(CHR_TARGET, 200, PAD_AME_007C, /*goto*/ 0x06)
|
|
#endif
|
|
endloop(0x92)
|
|
|
|
label(0x06)
|
|
restart_timer
|
|
|
|
beginloop(0x8e)
|
|
if_timer_gt(40, /*goto*/ 0x2c)
|
|
endloop(0x8e)
|
|
|
|
label(0x2c)
|
|
mute_channel(CHANNEL_4) // stop ringing
|
|
restart_timer
|
|
|
|
beginloop(0x8f)
|
|
if_timer_gt(90, /*goto*/ 0x2c)
|
|
endloop(0x8f)
|
|
|
|
// The timer in the following is dialogue is used to measure the gap between
|
|
// speaks.
|
|
label(0x2c)
|
|
restart_timer
|
|
speak(CHR_TARGET, L_AME_068, SFX_8104, CHANNEL_3, COLOR_03_RED) // "Yes, yes, I agree. Personality is expendable in th..."
|
|
restart_timer
|
|
chr_do_animation(ANIM_TALKING_00A0, 0, 193, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x08)
|
|
pause_timer
|
|
if_sound_finished(CHANNEL_3, /*goto*/ 0x06)
|
|
reloop(0x08)
|
|
|
|
label(0x06)
|
|
resume_timer
|
|
if_timer_gt(30, /*goto*/ 0x06)
|
|
endloop(0x08)
|
|
|
|
label(0x06)
|
|
yield
|
|
yield
|
|
yield
|
|
speak(CHR_TARGET, L_AME_069, SFX_8105, CHANNEL_3, COLOR_03_RED) // "No, I can start the process from my office termina..."
|
|
restart_timer
|
|
|
|
beginloop(0x0e)
|
|
pause_timer
|
|
if_sound_finished(CHANNEL_3, /*goto*/ 0x06)
|
|
reloop(0x0e)
|
|
|
|
label(0x06)
|
|
resume_timer
|
|
if_timer_gt(60, /*goto*/ 0x06)
|
|
endloop(0x0e)
|
|
|
|
label(0x06)
|
|
speak(CHR_TARGET, L_AME_070, SFX_8106, CHANNEL_3, COLOR_03_RED) // "I'll begin at once. Goodbye."
|
|
|
|
beginloop(0x0f)
|
|
if_sound_finished(CHANNEL_3, /*goto*/ 0x06)
|
|
endloop(0x0f)
|
|
|
|
label(0x06)
|
|
stop_chr
|
|
walk_to_pad(PAD_AME_0062)
|
|
restart_timer
|
|
|
|
beginloop(0x09)
|
|
if_timer_gt(30, /*goto*/ 0x06)
|
|
endloop(0x09)
|
|
|
|
label(0x06)
|
|
set_stage_flag(STAGEFLAG_PROGRAMMER_WALKING)
|
|
label(0x06)
|
|
|
|
label(0x99)
|
|
walk_to_pad(PAD_AME_0062)
|
|
|
|
// While walking, check for anything that might cause him to detect Jo.
|
|
|
|
// @bug The condition to jump to log on should be a distance check rather
|
|
// than chr stopped. If the programmer's pathing has failed then he will
|
|
// have stopped without being near the PC. This bug is repeated several
|
|
// times in this function but only documented here.
|
|
beginloop(0x93)
|
|
if_can_see_target(/*goto*/ 0x96)
|
|
if_near_miss(/*goto*/ 0x96)
|
|
if_saw_injury(0x00, /*goto*/ 0x96)
|
|
if_saw_death(0x00, /*goto*/ 0x96)
|
|
if_hears_target(/*goto*/ 0x96)
|
|
if_stage_flag_eq(STAGEFLAG_PROGRAMMER_RAN_TO_GUARD, TRUE, /*goto*/ 0x2c)
|
|
if_sees_suspicious_item(/*goto*/ 0x96)
|
|
label(0x2c)
|
|
if_chr_stopped(/*goto*/ LABEL_LOG_ON)
|
|
endloop(0x93)
|
|
|
|
// Detected Jo
|
|
label(0x96)
|
|
restart_timer
|
|
set_alertness(255)
|
|
restart_timer
|
|
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x9a)
|
|
|
|
beginloop(0x9a)
|
|
if_target_in_fov_left(10, /*goto*/ 0x06)
|
|
if_timer_gt(60, /*goto*/ 0x06)
|
|
endloop(0x9a)
|
|
|
|
label(0x06)
|
|
if_stage_flag_eq(STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x06)
|
|
speak(CHR_TARGET, L_AME_036, MP3_0300, CHANNEL_3, COLOR_03_RED) // "HELP - Intruder!"
|
|
chr_do_animation(ANIM_SURRENDER_002E, 0, 193, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0xa3)
|
|
if_sound_finished(CHANNEL_3, /*goto*/ 0x06)
|
|
endloop(0xa3)
|
|
|
|
label(0x06)
|
|
if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007d, /*goto*/ LABEL_NEAR_LAPTOPGUN_ROOM)
|
|
if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007e, /*goto*/ LABEL_NEAR_LAPTOPGUN_ROOM)
|
|
if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007f, /*goto*/ LABEL_NEAR_LAPTOPGUN_ROOM)
|
|
if_stage_flag_eq(STAGEFLAG_PROGRAMMER_INJURED, TRUE, /*goto*/ LABEL_JO_SPEAK)
|
|
|
|
label(0xa2)
|
|
if_los_to_target(/*goto*/ 0x06)
|
|
goto_next(0x2c)
|
|
|
|
// Can see Jo, and not injured or near Laptop Gun room
|
|
label(0x06)
|
|
if_stage_flag_eq(STAGEFLAG_PROGRAMMER_RAN_TO_GUARD, TRUE, /*goto*/ 0x06)
|
|
|
|
label(0x2c)
|
|
speak(CHR_TARGET, L_AME_079, SFX_8107, CHANNEL_3, COLOR_03_RED) // "Security... Help me!"
|
|
goto_next(0xa1)
|
|
|
|
label(0x06)
|
|
speak(CHR_TARGET, L_AME_038, SFX_8108, CHANNEL_3, COLOR_03_RED) // "HELP, HELP!"
|
|
label(0xa1)
|
|
restart_timer
|
|
set_stage_flag(STAGEFLAG_PROGRAMMER_RAN_TO_GUARD)
|
|
try_set_chrpreset_to_unalerted_teammate(0, /*goto*/ LABEL_RUN_TO_GUARD)
|
|
unset_object_flag2(OBJ_LAPTOPGUNDOOR, OBJFLAG2_AICANNOTUSE)
|
|
jog_to_pad(PAD_AME_0086)
|
|
|
|
beginloop(0x97)
|
|
if_timer_lt(240, /*goto*/ 0x06)
|
|
if_los_to_target(/*goto*/ 0x2c)
|
|
goto_next(0x06)
|
|
label(0x2c)
|
|
if_distance_to_target_lt(300, /*goto*/ LABEL_JO_SPEAK)
|
|
label(0x06)
|
|
if_chr_stopped(/*goto*/ 0x06)
|
|
endloop(0x97)
|
|
|
|
label(0x06)
|
|
set_stage_flag(STAGEFLAG_PROGRAMMER_INJURED)
|
|
restart_timer
|
|
unlock_door(OBJ_LAPTOPGUNDOOR, 0x02)
|
|
chr_do_animation(ANIM_COWER_01F5, 0, -1, CHRANIMFLAG_SLOWUPDATE | CHRANIMFLAG_LOCKPOS, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x0d)
|
|
if_timer_gt(300, /*goto*/ 0xb5)
|
|
if_distance_to_target_gt(300, /*goto*/ 0x2c)
|
|
if_los_to_target(/*goto*/ 0x06)
|
|
goto_next(0x2c)
|
|
label(0x06)
|
|
if_within_targets_fovx_by_angle(40, /*goto*/ LABEL_JO_SPEAK)
|
|
label(0x2c)
|
|
endloop(0x0d)
|
|
|
|
label(0xb5)
|
|
goto_first(0x99)
|
|
|
|
label(LABEL_RUN_TO_GUARD)
|
|
try_run_to_chr(CHR_PRESET, /*goto*/ 0xa6)
|
|
|
|
beginloop(0xa6)
|
|
if_los_to_chr(CHR_PRESET, /*goto*/ 0xa7)
|
|
if_timer_lt(120, /*goto*/ 0x06)
|
|
if_los_to_target(/*goto*/ LABEL_JO_SPEAK)
|
|
goto_next(0x06)
|
|
if_distance_to_target_lt(300, /*goto*/ LABEL_JO_SPEAK)
|
|
label(0x06)
|
|
if_chr_stopped(/*goto*/ 0xa7)
|
|
endloop(0xa6)
|
|
|
|
label(0xa7)
|
|
speak(CHR_TARGET, L_AME_038, SFX_8108, CHANNEL_3, COLOR_03_RED) // "HELP, HELP!"
|
|
increase_squadron_alertness(100)
|
|
endloop(0x99)
|
|
|
|
label(LABEL_JO_SPEAK)
|
|
restart_timer
|
|
if_stage_flag_eq(STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x2c)
|
|
speak(CHR_TARGET, L_AME_072, MP3_0322, CHANNEL_3, COLOR_09_BLUE) // "I've got a password problem, and you're the man to..."
|
|
goto_next(0x06)
|
|
label(0x2c)
|
|
speak(CHR_TARGET, L_AME_071, MP3_0323, CHANNEL_3, COLOR_09_BLUE) // "Move it!"
|
|
label(0x06)
|
|
set_stage_flag(STAGEFLAG_TALKED_TO_PROGRAMMER)
|
|
try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x9b)
|
|
|
|
beginloop(0x9b)
|
|
if_stage_flag_eq(STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x06)
|
|
if_target_in_fov_left(10, /*goto*/ 0x06)
|
|
if_timer_gt(60, /*goto*/ 0x06)
|
|
endloop(0x9b)
|
|
|
|
label(0x06)
|
|
chr_do_animation(ANIM_SURRENDER_002E, 0, 193, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x10)
|
|
if_sound_finished(CHANNEL_3, /*goto*/ 0x06)
|
|
endloop(0x10)
|
|
|
|
label(0x06)
|
|
if_stage_flag_eq(STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x2c)
|
|
speak(CHR_TARGET, L_AME_035, MP3_02FF, CHANNEL_5, COLOR_03_RED) // "I'll do what you want!"
|
|
set_stage_flag(STAGEFLAG_TALKED_TO_PROGRAMMER)
|
|
goto_next(0x06)
|
|
label(0x2c)
|
|
speak(CHR_TARGET, L_AME_073, MP3_02FE, CHANNEL_5, COLOR_03_RED) // "Don't shoot, don't shoot!"
|
|
label(0x06)
|
|
chr_do_animation(ANIM_DONT_SHOOT, 0, -1, CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
|
|
beginloop(0x9f)
|
|
if_sound_finished(CHANNEL_5, /*goto*/ 0x9d)
|
|
endloop(0x9f)
|
|
|
|
label(0x9d)
|
|
walk_to_pad(PAD_AME_0062)
|
|
|
|
beginloop(0x9e)
|
|
if_chr_stopped(/*goto*/ LABEL_LOG_ON)
|
|
if_stage_flag_eq(STAGEFLAG_PROGRAMMER_INJURED, TRUE, /*goto*/ 0x06)
|
|
if_distance_to_target_lt(500, /*goto*/ 0x06)
|
|
if_within_targets_fovx_by_angle(40, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007d, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007e, /*goto*/ 0x06)
|
|
if_chr_in_room(CHR_PROGRAMMER, 0x00, 0x007f, /*goto*/ 0x06)
|
|
goto_next(0xa0)
|
|
label(0x06)
|
|
endloop(0x9e)
|
|
|
|
label(0xa0)
|
|
goto_first(0xa2)
|
|
|
|
label(LABEL_NEAR_LAPTOPGUN_ROOM)
|
|
stop_chr
|
|
speak(CHR_TARGET, L_AME_039, MP3_02FF, CHANNEL_3, COLOR_03_RED) // "I'll do what you want..."
|
|
restart_timer
|
|
label(0x06)
|
|
walk_to_pad(PAD_AME_0062)
|
|
|
|
beginloop(0xa9)
|
|
if_chr_stopped(/*goto*/ LABEL_LOG_ON)
|
|
endloop(0xa9)
|
|
|
|
label(LABEL_LOG_ON)
|
|
restart_timer
|
|
if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN)
|
|
if_los_to_chr(CHR_TARGET, /*goto*/ 0x2c)
|
|
speak(CHR_TARGET, L_AME_040, MP3_0301, CHANNEL_3, COLOR_03_RED) // "Logging on now..."
|
|
goto_next(0x06)
|
|
label(0x2c)
|
|
speak(CHR_TARGET, L_AME_109, MP3_0304, CHANNEL_3, COLOR_03_RED) // "I...I'm logging on now."
|
|
label(0x06)
|
|
chr_do_animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 193, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
speak(CHR_TARGET, -1, SFX_8116, -1, COLOR_00_GREEN)
|
|
|
|
beginloop(0xae)
|
|
if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN)
|
|
if_timer_gt(360, /*goto*/ 0x06)
|
|
endloop(0xae)
|
|
|
|
label(0x06)
|
|
if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN)
|
|
chr_do_animation(ANIM_PUSH_BUTTON, 0, 193, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
set_stage_flag(STAGEFLAG_PROGRAMMER_LOGGED_IN)
|
|
if_los_to_chr(CHR_TARGET, /*goto*/ 0x2c)
|
|
speak(CHR_TARGET, L_AME_041, MP3_0302, CHANNEL_3, COLOR_03_RED) // "Okay, I'm in..."
|
|
goto_next(0x06)
|
|
label(0x2c)
|
|
speak(CHR_TARGET, L_AME_108, MP3_0305, CHANNEL_3, COLOR_03_RED) // "Right, I'm in..."
|
|
label(0x06)
|
|
speak(CHR_TARGET, -1, SFX_8117, -1, COLOR_00_GREEN)
|
|
|
|
beginloop(0xaf)
|
|
if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN)
|
|
if_chr_dead(CHR_SELF, /*goto*/ 0xb1)
|
|
if_timer_gt(1040, /*goto*/ 0x06)
|
|
endloop(0xaf)
|
|
|
|
label(0x06)
|
|
if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ LABEL_PC_BROKEN)
|
|
set_stage_flag(STAGEFLAG_PERSONALITY_DELETED)
|
|
set_chr_maxdamage(CHR_SELF, 1)
|
|
chr_do_animation(ANIM_TALKING_003D, 0, 193, CHRANIMFLAG_COMPLETED | CHRANIMFLAG_SLOWUPDATE, 16, CHR_SELF, 2)
|
|
speak(CHR_TARGET, L_AME_042, MP3_0303, CHANNEL_3, COLOR_03_RED) // "Goodbye, Dr. Caroll."
|
|
if_stage_flag_eq(STAGEFLAG_DOWNLOAD_COMPLETE, TRUE, /*goto*/ 0x2c)
|
|
set_stage_flag(STAGEFLAG_DELETED_WITHOUT_DOWNLOAD)
|
|
label(0x2c)
|
|
speak(CHR_TARGET, -1, SFX_TYPING_8118, -1, COLOR_00_GREEN)
|
|
|
|
beginloop(0xb0)
|
|
endloop(0xb0)
|
|
|
|
label(0xb1)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(LABEL_PC_BROKEN)
|
|
set_self_flag_bankx(CHRFLAG0_CANT_ALERT_GROUP, BANK_0)
|
|
speak(CHR_TARGET, L_AME_098, MP3_SCI_YOU_VANDAL, CHANNEL_3, COLOR_03_RED) // "You vandal, you've broken it!"
|
|
do_preset_animation(PRESETANIM_TALKRANDOM)
|
|
|
|
beginloop(0xc6)
|
|
if_sound_finished(CHANNEL_3, /*goto*/ 0x06)
|
|
endloop(0xc6)
|
|
|
|
label(0x06)
|
|
set_returnlist(CHR_SELF, GAILIST_ALERTED)
|
|
set_ailist(CHR_SELF, GAILIST_ALERTED)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* This function appears to be pointless considering you have control during the
|
|
* conversation anyway. Perhaps at one point during development there was a
|
|
* cutscene for the phone conversation?
|
|
*/
|
|
u8 func1005_give_control[] = {
|
|
beginloop(0x52)
|
|
if_stage_flag_eq(STAGEFLAG_PROGRAMMER_WALKING, TRUE, /*goto*/ 0x06)
|
|
endloop(0x52)
|
|
|
|
label(0x06)
|
|
label(0x2c)
|
|
yield
|
|
grant_control(CHR_BOND)
|
|
grant_control(CHR_COOP)
|
|
yield
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unused
|
|
*/
|
|
u8 func0415_set_idle[] = {
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unused
|
|
*/
|
|
u8 func0413_c318[] = {
|
|
set_accuracy(10)
|
|
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(255)
|
|
set_self_chrflag(CHRCFLAG_CANCHANGEACTDURINGARGH)
|
|
rebuild_teams
|
|
rebuild_squadrons
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED_0001)
|
|
endlist
|
|
};
|
|
|
|
u8 func100e_check_ecm_mines[] = {
|
|
yield
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
#endif
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x06)
|
|
give_object_to_chr(OBJ_ECMMINE_BOND, CHR_BOND)
|
|
give_object_to_chr(OBJ_ECMMINE_COOP, CHR_COOP)
|
|
label(0x06)
|
|
if_difficulty_lt(DIFF_PA, /*goto*/ 0x00)
|
|
give_object_to_chr(OBJ_DATAUPLINK_BOND, CHR_BOND)
|
|
give_object_to_chr(OBJ_DATAUPLINK_COOP, CHR_COOP)
|
|
|
|
beginloop(0x00)
|
|
if_stage_flag_eq(STAGEFLAG_SECURITYHUB_COMPLETE, TRUE, /*goto*/ 0x06)
|
|
if_stage_flag_eq(STAGEFLAG_SECURITYHUB_MINES_WASTED, TRUE, /*goto*/ 0x2c)
|
|
if_weapon_thrown_on_object(WEAPON_ECMMINE, OBJ_SECURITYHUB, /*goto*/ 0x08)
|
|
label(0x06)
|
|
if_stage_flag_eq(STAGEFLAG_EXTCOMMSHUB_COMPLETE, TRUE, /*goto*/ 0x06)
|
|
if_stage_flag_eq(STAGEFLAG_EXTCOMMSHUB_MINES_WASTED, TRUE, /*goto*/ 0x2c)
|
|
if_weapon_thrown_on_object(WEAPON_ECMMINE, OBJ_EXTCOMMSHUB, /*goto*/ 0x0a)
|
|
label(0x06)
|
|
if_timer_gt(0, /*goto*/ 0x06)
|
|
if_weapon_thrown(WEAPON_ECMMINE, /*goto*/ 0x0b)
|
|
label(0x2c)
|
|
reloop(0x00)
|
|
|
|
label(0x06)
|
|
if_timer_gt(240, /*goto*/ 0x53)
|
|
reloop(0x00)
|
|
|
|
label(0x08)
|
|
reset_timer
|
|
show_hudmsg(CHR_BOND, L_AME_029) // "ECM Mine placed correctly."
|
|
yield
|
|
mute_channel(CHANNEL_0)
|
|
assign_sound(SFX_8113, CHANNEL_0)
|
|
set_object_sound_playing(CHANNEL_0, OBJ_SECURITYHUB, TRUE)
|
|
show_hudmsg(CHR_BOND, L_AME_076) // "Internal security system temporarily disabled."
|
|
set_stage_flag(STAGEFLAG_SECURITYHUB_COMPLETE)
|
|
reloop(0x00)
|
|
|
|
label(0x0a)
|
|
reset_timer
|
|
show_hudmsg(CHR_BOND, L_AME_029) // "ECM Mine placed correctly."
|
|
yield
|
|
mute_channel(CHANNEL_1)
|
|
assign_sound(SFX_8113, CHANNEL_1)
|
|
set_object_sound_playing(CHANNEL_1, OBJ_EXTCOMMSHUB, TRUE)
|
|
show_hudmsg(CHR_BOND, L_AME_077) // "External communications hub disabled."
|
|
set_stage_flag(STAGEFLAG_EXTCOMMSHUB_COMPLETE)
|
|
reloop(0x00)
|
|
|
|
label(0x0b)
|
|
restart_timer
|
|
reloop(0x00)
|
|
|
|
// Check ECM mines wasted
|
|
label(0x53)
|
|
reset_timer
|
|
if_stage_flag_eq(STAGEFLAG_SECURITYHUB_COMPLETE, TRUE, /*goto*/ 0x88)
|
|
if_stage_flag_eq(STAGEFLAG_EXTCOMMSHUB_COMPLETE, TRUE, /*goto*/ 0x89)
|
|
if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0xbe)
|
|
if_ammo_quantity_lt(CHR_BOND, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbe)
|
|
if_ammo_quantity_lt(CHR_BOND, AMMOTYPE_ECM_MINE, 2, /*goto*/ 0xbf)
|
|
reloop(0x00)
|
|
|
|
label(0xbe)
|
|
if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0xc0)
|
|
if_ammo_quantity_lt(CHR_COOP, AMMOTYPE_ECM_MINE, 2, /*goto*/ 0xc0)
|
|
reloop(0x00)
|
|
|
|
label(0xbf)
|
|
if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0xc0)
|
|
if_ammo_quantity_lt(CHR_COOP, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xc0)
|
|
reloop(0x00)
|
|
|
|
label(0xc0)
|
|
goto_next(0x8d)
|
|
|
|
// Security hub is complete
|
|
label(0x88)
|
|
if_stage_flag_eq(STAGEFLAG_EXTCOMMSHUB_COMPLETE, TRUE, /*goto*/ 0x8a)
|
|
if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0xbe)
|
|
if_ammo_quantity_lt(CHR_BOND, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbe)
|
|
reloop(0x00)
|
|
|
|
label(0xbe)
|
|
if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0xbf)
|
|
if_ammo_quantity_lt(CHR_COOP, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbf)
|
|
reloop(0x00)
|
|
|
|
label(0xbf)
|
|
goto_next(0x8b)
|
|
|
|
// Comms hub is complete
|
|
label(0x89)
|
|
if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0xbe)
|
|
if_ammo_quantity_lt(CHR_BOND, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbe)
|
|
reloop(0x00)
|
|
|
|
label(0xbe)
|
|
if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0xbf)
|
|
if_ammo_quantity_lt(CHR_COOP, AMMOTYPE_ECM_MINE, 1, /*goto*/ 0xbf)
|
|
reloop(0x00)
|
|
|
|
// Mines wasted with security hub remaining
|
|
label(0xbf)
|
|
goto_next(0x06)
|
|
label(0x06)
|
|
set_stage_flag(STAGEFLAG_SECURITYHUB_MINES_WASTED)
|
|
goto_next(0x8c)
|
|
|
|
// Mines wasted with comms hub remaining
|
|
label(0x8b)
|
|
set_stage_flag(STAGEFLAG_EXTCOMMSHUB_MINES_WASTED)
|
|
|
|
label(0x8c)
|
|
show_hudmsg(CHR_BOND, L_AME_028) // "Badly placed ECM Mine."
|
|
reloop(0x00)
|
|
|
|
// Mines wasted with both hubs remaining
|
|
label(0x8d)
|
|
show_hudmsg(CHR_BOND, L_AME_028) // "Badly placed ECM Mine."
|
|
show_hudmsg(CHR_BOND, L_AME_032) // "CANNOT complete all objectives."
|
|
set_stage_flag(STAGEFLAG_SECURITYHUB_MINES_WASTED)
|
|
set_stage_flag(STAGEFLAG_EXTCOMMSHUB_MINES_WASTED)
|
|
reloop(0x00)
|
|
|
|
// Both hubs are complete
|
|
label(0x8a)
|
|
endloop(0x00)
|
|
|
|
beginloop(0x06)
|
|
endloop(0x06)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func1004_check_lab_lift_located[] = {
|
|
beginloop(0x52)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
if_chr_activated_object(CHR_P1P2, OBJ_LABLIFTDOOR1, /*goto*/ 0x2c)
|
|
if_chr_activated_object(CHR_P1P2, OBJ_LABLIFTDOOR2, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_P1P2, 0x00, 0x002b, /*goto*/ 0x2c)
|
|
reloop(0x52)
|
|
|
|
label(0x2c)
|
|
if_stage_flag_eq(STAGEFLAG_LAB_LIFT_LOCATED, TRUE, /*goto*/ 0x2c)
|
|
show_hudmsg(CHR_P1P2, L_AME_078) // "Laboratory lift located."
|
|
set_stage_flag(STAGEFLAG_LAB_LIFT_LOCATED)
|
|
label(0x2c)
|
|
yield
|
|
if_all_objectives_complete(/*goto*/ 0x2c)
|
|
endloop(0x52)
|
|
|
|
label(0x2c)
|
|
if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x2c)
|
|
if_chr_dead(CHR_BOND, /*goto*/ 0x2c)
|
|
if_chr_knockedout(CHR_BOND, /*goto*/ 0x2c)
|
|
goto_next(0x06)
|
|
|
|
label(0x2c)
|
|
if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x2c)
|
|
if_chr_dead(CHR_COOP, /*goto*/ 0x2c)
|
|
if_chr_knockedout(CHR_COOP, /*goto*/ 0x2c)
|
|
goto_next(0x06)
|
|
|
|
label(0x2c)
|
|
end_level
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x06)
|
|
set_invincible(CHR_BOND)
|
|
set_ailist(CHR_SELF, AILIST_OUTRO)
|
|
endlist
|
|
};
|
|
|
|
u8 func1006_check_programmer_dead[] = {
|
|
if_difficulty_lt(DIFF_PA, /*goto*/ 0x06)
|
|
|
|
beginloop(0x04)
|
|
if_chr_dead(CHR_PROGRAMMER, /*goto*/ 0x2c)
|
|
if_chr_knockedout(CHR_PROGRAMMER, /*goto*/ 0x2c)
|
|
endloop(0x04)
|
|
|
|
label(0x2c)
|
|
if_stage_flag_eq(STAGEFLAG_PROGRAMMER_LOGGED_IN, TRUE, /*goto*/ 0x06)
|
|
show_hudmsg(CHR_BOND, L_AME_057) // "Critical mission personnel killed."
|
|
set_stage_flag(STAGEFLAG_PROGRAMMER_DEAD)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x06)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
// Unreachable
|
|
label(0xac)
|
|
yield
|
|
goto_first(0x06)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func1007_uplinking[] = {
|
|
beginloop(0x04)
|
|
if_chr_activated_object(CHR_BOND, OBJ_PC, /*goto*/ 0xbe)
|
|
if_chr_activated_object(CHR_COOP, OBJ_PC, /*goto*/ 0xbf)
|
|
reloop(0x04)
|
|
|
|
label(0xbe)
|
|
set_target_chr(CHR_BOND)
|
|
goto_next(0xc0)
|
|
|
|
label(0xbf)
|
|
set_target_chr(CHR_COOP)
|
|
goto_next(0xc0)
|
|
|
|
label(0xc0)
|
|
if_chr_weapon_equipped(CHR_TARGET, WEAPON_DATAUPLINK, /*goto*/ 0x2c)
|
|
show_hudmsg(CHR_TARGET, L_AME_049) // "Unable to download - Data Uplink needed."
|
|
call_rng
|
|
if_rand_lt(60, /*goto*/ 0x0d)
|
|
if_rand_lt(120, /*goto*/ 0x0e)
|
|
if_rand_lt(180, /*goto*/ 0x0f)
|
|
|
|
label(0x0c)
|
|
speak(CHR_TARGET, -1, SFX_8116, -1, COLOR_00_GREEN)
|
|
goto_next(0x06)
|
|
|
|
label(0x0d)
|
|
speak(CHR_TARGET, -1, SFX_8117, -1, COLOR_00_GREEN)
|
|
goto_next(0x06)
|
|
|
|
label(0x0e)
|
|
speak(CHR_TARGET, -1, SFX_TYPING_8118, -1, COLOR_00_GREEN)
|
|
goto_next(0x06)
|
|
|
|
label(0x0f)
|
|
speak(CHR_TARGET, -1, SFX_TYPING_8118, -1, COLOR_00_GREEN)
|
|
|
|
label(0x06)
|
|
restart_timer
|
|
|
|
beginloop(0x10)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
goto_first(0x10)
|
|
|
|
label(0x06)
|
|
reloop(0x04)
|
|
|
|
label(0x2c)
|
|
if_stage_flag_eq(STAGEFLAG_PROGRAMMER_LOGGED_IN, TRUE, /*goto*/ 0xae)
|
|
restart_timer
|
|
show_hudmsg(CHR_TARGET, L_AME_046) // "ACCESS DENIED - password needed."
|
|
assign_sound(SFX_01C0, CHANNEL_7)
|
|
set_object_sound_playing(CHANNEL_7, OBJ_PC, FALSE)
|
|
|
|
beginloop(0xaf)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0xaf)
|
|
|
|
label(0x06)
|
|
mute_channel(CHANNEL_7)
|
|
goto_first(0x04)
|
|
|
|
label(0xae)
|
|
show_hudmsg(CHR_TARGET, L_AME_044) // "File download initiated."
|
|
assign_sound(SFX_01BF, CHANNEL_7)
|
|
set_object_sound_playing(CHANNEL_7, OBJ_PC, TRUE)
|
|
restart_timer
|
|
|
|
// @bug: Missing check for player still having uplink equipped
|
|
beginloop(0xac)
|
|
if_chr_distance_to_pad_gt(CHR_TARGET, 250, PAD_AME_01B6, /*goto*/ 0x2c)
|
|
if_stage_flag_eq(STAGEFLAG_DELETED_WITHOUT_DOWNLOAD, TRUE, /*goto*/ 0x12)
|
|
if_timer_gt(300, /*goto*/ 0xad)
|
|
endloop(0xac)
|
|
|
|
label(0xad)
|
|
mute_channel(CHANNEL_7)
|
|
assign_sound(SFX_01C1, CHANNEL_7)
|
|
set_object_sound_playing(CHANNEL_7, OBJ_PC, TRUE)
|
|
show_hudmsg(CHR_TARGET, L_AME_045) // "File download completed."
|
|
yield
|
|
set_stage_flag(STAGEFLAG_DOWNLOAD_COMPLETE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x2c)
|
|
show_hudmsg(CHR_TARGET, L_AME_074) // "Datalink broken - connection terminated."
|
|
mute_channel(CHANNEL_7)
|
|
assign_sound(SFX_01C0, CHANNEL_6)
|
|
play_repeating_sound_from_object(CHANNEL_6, OBJ_PC, 1, 300, 400)
|
|
restart_timer
|
|
|
|
beginloop(0x11)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x11)
|
|
|
|
label(0x06)
|
|
mute_channel(CHANNEL_6)
|
|
reloop(0x04)
|
|
|
|
label(0x12)
|
|
show_hudmsg(CHR_TARGET, L_AME_075) // "Datalink error - incomplete file download."
|
|
mute_channel(CHANNEL_7)
|
|
assign_sound(SFX_01C0, CHANNEL_6)
|
|
play_repeating_sound_from_object(CHANNEL_6, OBJ_PC, 1, 300, 400)
|
|
restart_timer
|
|
|
|
beginloop(0x13)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x13)
|
|
|
|
label(0x06)
|
|
mute_channel(CHANNEL_6)
|
|
endloop(0x04)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func1008_doorswitch[] = {
|
|
if_difficulty_gt(DIFF_SA, /*goto*/ 0x04)
|
|
|
|
// A and SA
|
|
unlock_door(OBJ_OFFICEDOOR1, 0x01)
|
|
unlock_door(OBJ_OFFICEDOOR2, 0x01)
|
|
unset_object_flag2(OBJ_OFFICEDOOR1, OBJFLAG2_AICANNOTUSE)
|
|
unset_object_flag2(OBJ_OFFICEDOOR2, OBJFLAG2_AICANNOTUSE)
|
|
set_stage_flag(STAGEFLAG_OFFICE_DOOR_UNLOCKED)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
// PA
|
|
beginloop(0x04)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
if_chr_activated_object(CHR_P1P2, OBJ_DOORSWITCH, /*goto*/ 0x2c)
|
|
#else
|
|
if_chr_activated_object(CHR_ANY, OBJ_DOORSWITCH, /*goto*/ 0x2c)
|
|
#endif
|
|
label(0x06)
|
|
endloop(0x04)
|
|
|
|
label(0x2c)
|
|
play_sound(SFX_PRESS_SWITCH, -1)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
show_hudmsg(CHR_P1P2, L_AME_047) // "Door unlocked."
|
|
#else
|
|
show_hudmsg(CHR_BOND, L_AME_047) // "Door unlocked."
|
|
#endif
|
|
set_stage_flag(STAGEFLAG_OFFICE_DOOR_UNLOCKED)
|
|
unlock_door(OBJ_OFFICEDOOR1, 0x01)
|
|
unlock_door(OBJ_OFFICEDOOR2, 0x01)
|
|
unset_object_flag2(OBJ_OFFICEDOOR1, OBJFLAG2_AICANNOTUSE)
|
|
unset_object_flag2(OBJ_OFFICEDOOR2, OBJFLAG2_AICANNOTUSE)
|
|
yield
|
|
restart_timer
|
|
|
|
beginloop(0x08)
|
|
if_timer_gt(45, /*goto*/ 0x06)
|
|
endloop(0x08)
|
|
|
|
label(0x06)
|
|
assign_sound(SFX_043B, CHANNEL_7)
|
|
set_object_sound_playing(CHANNEL_7, OBJ_OFFICEDOOR1, TRUE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1009_check_civilians_killed[] = {
|
|
beginloop(0x04)
|
|
if_chr_dead(CHR_SECRETARY, /*goto*/ 0x2c)
|
|
if_chr_dead(CHR_CASS, /*goto*/ 0x09)
|
|
label(0x06)
|
|
endloop(0x04)
|
|
|
|
label(0x2c)
|
|
show_hudmsg(CHR_BOND, L_AME_055) // "Unacceptable civilian casualties."
|
|
set_stage_flag(STAGEFLAG_CIVILIANS_KILLED)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
label(0x09)
|
|
show_hudmsg(CHR_BOND, L_AME_057) // "Critical mission personnel killed."
|
|
set_stage_flag(STAGEFLAG_CIVILIANS_KILLED)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* Wait for alarm while security is disabled, then set a flag on a CMP guard.
|
|
*/
|
|
u8 func100a_alarm_guard[] = {
|
|
beginloop(0x04)
|
|
if_stage_flag_eq(STAGEFLAG_SECURITY_DISABLED, FALSE, /*goto*/ 0x06)
|
|
if_alarm_active(/*goto*/ 0x2c)
|
|
label(0x06)
|
|
reloop(0x04)
|
|
|
|
label(0x2c)
|
|
set_chr_flag_bankx(0x09, CHRFLAG0_SKIPSAFETYCHECKS, BANK_0)
|
|
goto_next(0xb3)
|
|
|
|
// Unreachable
|
|
label(0xac)
|
|
deactivate_alarm
|
|
reloop(0x04)
|
|
|
|
label(0xb3)
|
|
label(0xb2)
|
|
endloop(0x04)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func100b_lightswitch[] = {
|
|
beginloop(0x04)
|
|
if_chr_activated_object(CHR_ANY, OBJ_LIGHTSWITCH, /*goto*/ 0x2c)
|
|
reloop(0x04)
|
|
|
|
label(0x2c)
|
|
play_sound(SFX_PRESS_SWITCH, -1)
|
|
if_stage_flag_eq(STAGEFLAG_LIGHTS_OFF, TRUE, /*goto*/ 0x06)
|
|
|
|
// Turning lights off
|
|
set_stage_flag(STAGEFLAG_LIGHTS_OFF)
|
|
set_lights_state(0x0044, LIGHTOP_TURNOFF, 0, 0, 0)
|
|
set_lights_state(0x0039, LIGHTOP_TURNOFF, 0, 0, 0)
|
|
set_lights_state(0x003c, LIGHTOP_TURNOFF, 0, 0, 0)
|
|
set_lights_state(0x003d, LIGHTOP_TURNOFF, 0, 0, 0)
|
|
set_lights_state(0x003e, LIGHTOP_TURNOFF, 0, 0, 0)
|
|
set_lights_state(0x003b, LIGHTOP_TURNOFF, 0, 0, 0)
|
|
set_lights_state(0x0042, LIGHTOP_TURNOFF, 0, 0, 0)
|
|
set_lights_state(0x003f, LIGHTOP_TURNOFF, 0, 0, 0)
|
|
set_lights_state(0x003a, LIGHTOP_TURNOFF, 0, 0, 0)
|
|
set_lights_state(0x0041, LIGHTOP_TURNOFF, 0, 0, 0)
|
|
set_lights_state(0x0040, LIGHTOP_TURNOFF, 0, 0, 0)
|
|
reloop(0x04)
|
|
|
|
// Turning lights on
|
|
label(0x06)
|
|
unset_stage_flag(STAGEFLAG_LIGHTS_OFF)
|
|
set_lights_state(0x0044, LIGHTOP_TURNON, 0, 0, 0)
|
|
set_lights_state(0x0039, LIGHTOP_TURNON, 0, 0, 0)
|
|
set_lights_state(0x003c, LIGHTOP_TURNON, 0, 0, 0)
|
|
set_lights_state(0x003d, LIGHTOP_TURNON, 0, 0, 0)
|
|
set_lights_state(0x003e, LIGHTOP_TURNON, 0, 0, 0)
|
|
set_lights_state(0x003b, LIGHTOP_TURNON, 0, 0, 0)
|
|
set_lights_state(0x0042, LIGHTOP_TURNON, 0, 0, 0)
|
|
set_lights_state(0x003f, LIGHTOP_TURNON, 0, 0, 0)
|
|
set_lights_state(0x003a, LIGHTOP_TURNON, 0, 0, 0)
|
|
set_lights_state(0x0041, LIGHTOP_TURNON, 0, 0, 0)
|
|
set_lights_state(0x0040, LIGHTOP_TURNON, 0, 0, 0)
|
|
endloop(0x04)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func100c_noop2[] = {
|
|
beginloop(0x04)
|
|
if_stage_flag_eq(STAGEFLAG_PERSONALITY_DELETED, TRUE, /*goto*/ 0x06)
|
|
endloop(0x04)
|
|
|
|
label(0x06)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func100d_check_objects_destroyed[] = {
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d)
|
|
|
|
// SA and PA
|
|
beginloop(0x04)
|
|
// Check security hub
|
|
if_stage_flag_eq(STAGEFLAG_SECURITYHUB_DESTROYED, TRUE, /*goto*/ 0x2c)
|
|
if_object_in_good_condition(OBJ_SECURITYHUB, /*goto*/ 0x2c)
|
|
set_stage_flag(STAGEFLAG_SECURITYHUB_DESTROYED)
|
|
mute_channel(CHANNEL_0)
|
|
show_hudmsg(CHR_BOND, L_AME_054) // "Critical mission object destroyed."
|
|
|
|
// PA only - check door switch
|
|
label(0x2c)
|
|
if_difficulty_lt(DIFF_PA, /*goto*/ 0x2c)
|
|
if_stage_flag_eq(STAGEFLAG_OFFICE_DOOR_UNLOCKED, TRUE, /*goto*/ 0x2c)
|
|
if_stage_flag_eq(STAGEFLAG_DOORSWITCH_DESTROYED, TRUE, /*goto*/ 0x2c)
|
|
if_object_in_good_condition(OBJ_DOORSWITCH, /*goto*/ 0x2c)
|
|
set_stage_flag(STAGEFLAG_DOORSWITCH_DESTROYED)
|
|
show_hudmsg(CHR_BOND, L_AME_054) // "Critical mission object destroyed."
|
|
|
|
// PA only - check PC
|
|
label(0x2c)
|
|
if_difficulty_lt(DIFF_PA, /*goto*/ 0x2c)
|
|
if_objective_complete(2, /*goto*/ 0x2c)
|
|
if_stage_flag_eq(STAGEFLAG_PC_DESTROYED, TRUE, /*goto*/ 0x2c)
|
|
if_objective_failed(2, /*goto*/ 0x2c)
|
|
if_object_in_good_condition(OBJ_PC, /*goto*/ 0x2c)
|
|
set_stage_flag(STAGEFLAG_PC_DESTROYED)
|
|
show_hudmsg(CHR_BOND, L_AME_054) // "Critical mission object destroyed."
|
|
|
|
// Check comms hub
|
|
label(0x2c)
|
|
if_stage_flag_eq(STAGEFLAG_EXTCOMMSHUB_DESTROYED, TRUE, /*goto*/ 0x2c)
|
|
if_object_in_good_condition(OBJ_EXTCOMMSHUB, /*goto*/ 0x2c)
|
|
set_stage_flag(STAGEFLAG_EXTCOMMSHUB_DESTROYED)
|
|
mute_channel(CHANNEL_1)
|
|
show_hudmsg(CHR_BOND, L_AME_054) // "Critical mission object destroyed."
|
|
label(0x2c)
|
|
endloop(0x04)
|
|
|
|
// Agent
|
|
label(0x0d)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1002_objectives_failed_msg[] = {
|
|
yield
|
|
set_chr_chrflag(CHR_CASS, CHRCFLAG_KEEPCORPSEKO)
|
|
set_chr_chrflag(CHR_SECRETARY, CHRCFLAG_KEEPCORPSEKO)
|
|
set_chr_chrflag(CHR_PROGRAMMER, CHRCFLAG_KEEPCORPSEKO)
|
|
set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG)
|
|
endlist
|
|
};
|
|
|
|
#define wait_for_camera_finished \
|
|
beginloop(0x08) \
|
|
if_camera_animating(/*goto*/ 0x2c) \
|
|
goto_next(0x06) \
|
|
label(0x2c) \
|
|
if_controller_button_pressed(/*goto*/ 0x06) \
|
|
endloop(0x08)
|
|
|
|
u8 func041b_intro_041b[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_01)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP2)
|
|
set_object_flag3(OBJ_JUMPSHIP2, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_01, OBJ_JUMPSHIP2, 0x04, 0xffff)
|
|
enable_object(OBJ_POLICECAR)
|
|
set_object_flag3(OBJ_POLICECAR, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_01, OBJ_POLICECAR, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERCOP3)
|
|
set_object_flag3(OBJ_HOVERCOP3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_02, OBJ_HOVERCOP3, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERCAR3)
|
|
set_object_flag3(OBJ_HOVERCAR3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_03, OBJ_HOVERCAR3, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERMOTO3)
|
|
set_object_flag3(OBJ_HOVERMOTO3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_04, OBJ_HOVERMOTO3, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERCAB3)
|
|
set_object_flag3(OBJ_HOVERCAB3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_05, OBJ_HOVERCAB3, 0x04, 0xffff)
|
|
fade_to_color(0x000000ff, 0)
|
|
fade_to_color(0x00000000, 90)
|
|
set_cutscene_weapon(CHR_BOND, WEAPON_NONE, WEAPON_NONE)
|
|
yield
|
|
set_cutscene_weapon(CHR_BOND, WEAPON_FALCON2_SILENCER, WEAPON_NONE)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP2)
|
|
disable_object(OBJ_POLICECAR)
|
|
disable_object(OBJ_HOVERCOP3)
|
|
disable_object(OBJ_HOVERCAR3)
|
|
disable_object(OBJ_HOVERMOTO3)
|
|
disable_object(OBJ_HOVERCAB3)
|
|
label(0x36)
|
|
return
|
|
endlist
|
|
};
|
|
|
|
u8 func041a_intro_041a[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_02)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP2)
|
|
set_object_flag3(OBJ_JUMPSHIP2, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_02, OBJ_JUMPSHIP2, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERTAXI2)
|
|
set_object_flag3(OBJ_HOVERTAXI2, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_06, OBJ_HOVERTAXI2, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERCOP3)
|
|
set_object_flag3(OBJ_HOVERCOP3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_07, OBJ_HOVERCOP3, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERCAR3)
|
|
set_object_flag3(OBJ_HOVERCAR3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_08, OBJ_HOVERCAR3, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERMOTO3)
|
|
set_object_flag3(OBJ_HOVERMOTO3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_09, OBJ_HOVERMOTO3, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERCAB3)
|
|
set_object_flag3(OBJ_HOVERCAB3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_10, OBJ_HOVERCAB3, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERTRUCK3)
|
|
set_object_flag3(OBJ_HOVERTRUCK3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_11, OBJ_HOVERTRUCK3, 0x04, 0xffff)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP2)
|
|
disable_object(OBJ_HOVERTAXI2)
|
|
disable_object(OBJ_HOVERCOP3)
|
|
disable_object(OBJ_HOVERCAR3)
|
|
disable_object(OBJ_HOVERMOTO3)
|
|
disable_object(OBJ_HOVERCAB3)
|
|
disable_object(OBJ_HOVERTRUCK3)
|
|
label(0x36)
|
|
return
|
|
endlist
|
|
};
|
|
|
|
u8 func0419_intro_0419[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_03)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP2)
|
|
set_object_flag3(OBJ_JUMPSHIP2, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_03, OBJ_JUMPSHIP2, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERTAXI1)
|
|
set_object_flag3(OBJ_HOVERTAXI1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_12, OBJ_HOVERTAXI1, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERCOP3)
|
|
set_object_flag3(OBJ_HOVERCOP3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_13, OBJ_HOVERCOP3, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERCAR3)
|
|
set_object_flag3(OBJ_HOVERCAR3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_14, OBJ_HOVERCAR3, 0x04, 0xffff)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP2)
|
|
disable_object(OBJ_HOVERTAXI1)
|
|
disable_object(OBJ_HOVERCOP3)
|
|
disable_object(OBJ_HOVERCAR3)
|
|
label(0x36)
|
|
return
|
|
endlist
|
|
};
|
|
|
|
u8 func041c_intro_041c[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_04)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP2)
|
|
set_object_flag3(OBJ_JUMPSHIP2, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_04, OBJ_JUMPSHIP2, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERTAXI1)
|
|
set_object_flag3(OBJ_HOVERTAXI1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_15, OBJ_HOVERTAXI1, 0x04, 0xffff)
|
|
|
|
// Invalid object
|
|
enable_object(0x1d)
|
|
set_object_flag3(0x1d, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_16, 0x1d, 0x04, 0xffff)
|
|
|
|
enable_object(OBJ_HOVERCOP3)
|
|
set_object_flag3(OBJ_HOVERCOP3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_17, OBJ_HOVERCOP3, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERCAR3)
|
|
set_object_flag3(OBJ_HOVERCAR3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_18, OBJ_HOVERCAR3, 0x04, 0xffff)
|
|
enable_object(OBJ_HOVERMOTO3)
|
|
set_object_flag3(OBJ_HOVERMOTO3, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_19, OBJ_HOVERMOTO3, 0x04, 0xffff)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP2)
|
|
disable_object(OBJ_HOVERTAXI1)
|
|
disable_object(0x1d)
|
|
disable_object(OBJ_HOVERCOP3)
|
|
disable_object(OBJ_HOVERCAR3)
|
|
disable_object(OBJ_HOVERMOTO3)
|
|
label(0x36)
|
|
return
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* Part of the intro cutscene.
|
|
*/
|
|
u8 func041d_intro_041d[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_05)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP2)
|
|
set_object_flag3(OBJ_JUMPSHIP2, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_05, OBJ_JUMPSHIP2, 0x01, 0xffff)
|
|
enable_object(OBJ_HOVERTAXI1)
|
|
set_object_flag3(OBJ_HOVERTAXI1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_20, OBJ_HOVERTAXI1, 0x04, 0xffff)
|
|
enable_object(0x1d)
|
|
set_object_flag3(0x1d, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_VEHICLE_21, 0x1d, 0x04, 0xffff)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP2)
|
|
disable_object(OBJ_HOVERTAXI1)
|
|
disable_object(0x1d)
|
|
label(0x36)
|
|
return
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unregistered
|
|
*/
|
|
u8 unregistered_function2[] = {
|
|
set_returnlist(CHR_SELF, GAILIST_END_CINEMA)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_041B)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unregistered
|
|
*/
|
|
u8 unregistered_function3[] = {
|
|
set_returnlist(CHR_SELF, GAILIST_END_CINEMA)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_041A)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unregistered
|
|
*/
|
|
u8 unregistered_function4[] = {
|
|
set_returnlist(CHR_SELF, GAILIST_END_CINEMA)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_0419)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unregistered
|
|
*/
|
|
u8 unregistered_function5[] = {
|
|
set_returnlist(CHR_SELF, GAILIST_END_CINEMA)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_041C)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unregistered
|
|
*/
|
|
u8 unregistered_function6[] = {
|
|
set_returnlist(CHR_SELF, GAILIST_END_CINEMA)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_041D)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* This is the most ridiculous way of doing an intro cutscene. This is how all
|
|
* the ailists call each other:
|
|
*
|
|
* func0422_intro calls 041b with return to 041e
|
|
* 041e calls 041a with return to 041f
|
|
* 041f calls 0419 with return to 0420
|
|
* 0420 calls 041c with return to 0421
|
|
* 0421 calls 041d with return to 0428
|
|
* 0428 does stuff then sets 0424
|
|
* 0424 does stuff then sets 0425
|
|
* 0425 does stuff then sets 0423
|
|
* 0423 does stuff then sets 0426
|
|
* 0426 does stuff then sets 0429
|
|
* 0429 does stuff then sets 0427
|
|
* 0427 does stuff then sets 042a
|
|
* 042a does stuff then sets 042b
|
|
* 042b does stuff then sets 042c
|
|
* 042c just sets 042d
|
|
* 042d finishes intro
|
|
*/
|
|
u8 func0422_intro[] = {
|
|
#if VERSION == VERSION_PAL_FINAL
|
|
yield
|
|
set_stage_flag(STAGEFLAG_TRIGGER_INTRO)
|
|
yield
|
|
#else
|
|
play_temporary_track(MUSIC_DEFECTION_INTRO_SFX)
|
|
|
|
// No yield in this loop!
|
|
label(0x07)
|
|
if_music_event_queue_empty(16, /*goto*/ 0x2c)
|
|
configure_environment(0x0000, AIENVCMD_TICKMUSICQUEUE, 0)
|
|
goto_first(0x07)
|
|
|
|
label(0x2c)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
yield
|
|
#endif
|
|
set_stage_flag(STAGEFLAG_TRIGGER_INTRO)
|
|
yield
|
|
play_cutscene_track(MUSIC_DEFECTION_INTRO)
|
|
|
|
label(0x08)
|
|
if_music_event_queue_empty(1, /*goto*/ 0x2c)
|
|
configure_environment(0x0000, AIENVCMD_TICKMUSICQUEUE, 0)
|
|
goto_first(0x08)
|
|
|
|
label(0x2c)
|
|
#endif
|
|
|
|
set_returnlist(CHR_SELF, AILIST_INTRO_041E)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_041B)
|
|
endlist
|
|
};
|
|
|
|
u8 func041e_intro_041e[] = {
|
|
set_returnlist(CHR_SELF, AILIST_INTRO_041F)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_041A)
|
|
endlist
|
|
};
|
|
|
|
u8 func041f_intro_041f[] = {
|
|
set_returnlist(CHR_SELF, AILIST_INTRO_0420)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_0419)
|
|
endlist
|
|
};
|
|
|
|
u8 func0420_intro_0420[] = {
|
|
set_returnlist(CHR_SELF, AILIST_INTRO_0421)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_041C)
|
|
endlist
|
|
};
|
|
|
|
u8 func0421_intro_0421[] = {
|
|
set_returnlist(CHR_SELF, 0x0428)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_041D)
|
|
endlist
|
|
};
|
|
|
|
u8 func0422_intro_0423[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_09)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP1)
|
|
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_06, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
|
set_tinted_glass_enabled(TRUE)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP1)
|
|
set_tinted_glass_enabled(FALSE)
|
|
label(0x36)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_0426)
|
|
endlist
|
|
};
|
|
|
|
u8 func0422_intro_0424[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_07)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP1)
|
|
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_07, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
|
set_chr_chrflag(CHR_CASS, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_SECRETARY, CHRCFLAG_UNPLAYABLE)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
unset_chr_chrflag(CHR_SECRETARY, CHRCFLAG_HIDDEN)
|
|
#endif
|
|
set_chr_hiddenflag(CHR_SECRETARY, CHRHFLAG_00020000)
|
|
chr_do_animation(ANIM_CUT_AME_INTRO_SEC, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_SECRETARY, 4)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP1)
|
|
unset_chr_chrflag(CHR_CASS, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_SECRETARY, CHRCFLAG_UNPLAYABLE)
|
|
label(0x36)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_0425)
|
|
endlist
|
|
};
|
|
|
|
u8 func0422_intro_0425[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_08)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP1)
|
|
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_08, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_BANNER1_01, OBJ_BANNER1, 0x04, 0xffff)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_BANNER2_01, OBJ_BANNER2, 0x04, 0xffff)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP1)
|
|
disable_object(OBJ_BANNER1)
|
|
disable_object(OBJ_BANNER2)
|
|
label(0x36)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_0423)
|
|
endlist
|
|
};
|
|
|
|
u8 func0422_intro_0426[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_10)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP1)
|
|
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_09, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
|
enable_object(OBJ_BANNER1)
|
|
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_BANNER1_02, OBJ_BANNER1, 0x04, 0xffff)
|
|
enable_object(OBJ_BANNER2)
|
|
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_BANNER2_02, OBJ_BANNER2, 0x04, 0xffff)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP1)
|
|
disable_object(OBJ_BANNER1)
|
|
disable_object(OBJ_BANNER2)
|
|
label(0x36)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_0429)
|
|
endlist
|
|
};
|
|
|
|
u8 func0422_intro_0427[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_12)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP1)
|
|
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_10, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
|
enable_object(OBJ_ROPE)
|
|
set_object_flag3(OBJ_ROPE, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_ROPE_01, OBJ_ROPE, 0x04, 0xffff)
|
|
enable_object(OBJ_BANNER1)
|
|
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_BANNER1_03, OBJ_BANNER1, 0x04, 0xffff)
|
|
enable_object(OBJ_BANNER2)
|
|
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_BANNER2_03, OBJ_BANNER2, 0x04, 0xffff)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP1)
|
|
disable_object(OBJ_ROPE)
|
|
disable_object(OBJ_BANNER1)
|
|
disable_object(OBJ_BANNER2)
|
|
label(0x36)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_042A)
|
|
endlist
|
|
};
|
|
|
|
u8 func0422_intro_0428[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_06)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP1)
|
|
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_11, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
|
set_object_flag2(OBJ_HOVERCOP1, OBJFLAG2_INVISIBLE)
|
|
set_object_flag2(OBJ_HOVERCOP2, OBJFLAG2_INVISIBLE)
|
|
set_object_flag2(OBJ_HOVERCAR1, OBJFLAG2_INVISIBLE)
|
|
set_object_flag2(OBJ_HOVERCAR2, OBJFLAG2_INVISIBLE)
|
|
set_object_flag2(OBJ_HOVERMOTO1, OBJFLAG2_INVISIBLE)
|
|
set_object_flag2(OBJ_HOVERMOTO2, OBJFLAG2_INVISIBLE)
|
|
set_object_flag2(OBJ_HOVERTRUCK1, OBJFLAG2_INVISIBLE)
|
|
set_object_flag2(OBJ_HOVERTRUCK2, OBJFLAG2_INVISIBLE)
|
|
set_object_flag2(OBJ_HOVERCAB1, OBJFLAG2_INVISIBLE)
|
|
set_object_flag2(OBJ_HOVERCAB2, OBJFLAG2_INVISIBLE)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP1)
|
|
unset_object_flag2(OBJ_HOVERCOP1, OBJFLAG2_INVISIBLE)
|
|
unset_object_flag2(OBJ_HOVERCOP2, OBJFLAG2_INVISIBLE)
|
|
unset_object_flag2(OBJ_HOVERCAR1, OBJFLAG2_INVISIBLE)
|
|
unset_object_flag2(OBJ_HOVERCAR2, OBJFLAG2_INVISIBLE)
|
|
unset_object_flag2(OBJ_HOVERMOTO1, OBJFLAG2_INVISIBLE)
|
|
unset_object_flag2(OBJ_HOVERMOTO2, OBJFLAG2_INVISIBLE)
|
|
unset_object_flag2(OBJ_HOVERTRUCK1, OBJFLAG2_INVISIBLE)
|
|
unset_object_flag2(OBJ_HOVERTRUCK2, OBJFLAG2_INVISIBLE)
|
|
unset_object_flag2(OBJ_HOVERCAB1, OBJFLAG2_INVISIBLE)
|
|
unset_object_flag2(OBJ_HOVERCAB2, OBJFLAG2_INVISIBLE)
|
|
label(0x36)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_0424)
|
|
endlist
|
|
};
|
|
|
|
u8 func0422_intro_0429[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_11)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP1)
|
|
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_12, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
|
set_tinted_glass_enabled(TRUE)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP1)
|
|
set_tinted_glass_enabled(FALSE)
|
|
label(0x36)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_0427)
|
|
endlist
|
|
};
|
|
|
|
u8 func0422_intro_042a[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_13)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP1)
|
|
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_13, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
|
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
|
chr_do_animation(ANIM_CUT_AME_INTRO_JO_09, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 4)
|
|
set_chr_hudpiece_visible(CHR_BOND, TRUE)
|
|
enable_object(OBJ_ROPE)
|
|
set_object_flag3(OBJ_ROPE, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_ROPE_02, OBJ_ROPE, 0x04, 0xffff)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP1)
|
|
disable_object(OBJ_ROPE)
|
|
label(0x36)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_042B)
|
|
endlist
|
|
};
|
|
|
|
u8 func0422_intro_042b[] = {
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_14)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
enable_object(OBJ_JUMPSHIP1)
|
|
set_object_flag3(OBJ_JUMPSHIP1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_DROPSHIP_14, OBJ_JUMPSHIP1, 0x04, 0xffff)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
|
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
|
chr_do_animation(ANIM_CUT_AME_INTRO_JO_02, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 4)
|
|
set_chr_hudpiece_visible(CHR_BOND, TRUE)
|
|
enable_object(OBJ_ROPE)
|
|
set_object_flag3(OBJ_ROPE, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_ROPE_03, OBJ_ROPE, 0x04, 0xffff)
|
|
enable_object(OBJ_BANNER1)
|
|
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_BANNER1_04, OBJ_BANNER1, 0x04, 0xffff)
|
|
enable_object(OBJ_BANNER2)
|
|
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_BANNER2_04, OBJ_BANNER2, 0x04, 0xffff)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
disable_object(OBJ_JUMPSHIP1)
|
|
disable_object(OBJ_ROPE)
|
|
disable_object(OBJ_BANNER1)
|
|
disable_object(OBJ_BANNER2)
|
|
label(0x36)
|
|
set_ailist(CHR_SELF, AILIST_INTRO_042C)
|
|
endlist
|
|
};
|
|
|
|
u8 func0422_intro_042c[] = {
|
|
set_ailist(CHR_SELF, AILIST_INTRO_042D)
|
|
endlist
|
|
};
|
|
|
|
u8 func0422_intro_042d[] = {
|
|
camera_movement(ANIM_CUT_AME_INTRO_CAM_15)
|
|
cmd0175(60)
|
|
if_controller_button_pressed(/*goto*/ 0x36)
|
|
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
|
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
|
chr_do_animation(ANIM_CUT_AME_INTRO_JO_03, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 4)
|
|
set_chr_hudpiece_visible(CHR_BOND, FALSE)
|
|
|
|
wait_for_camera_finished
|
|
|
|
label(0x06)
|
|
label(0x36)
|
|
enable_object(OBJ_BANNER1)
|
|
enable_object(OBJ_BANNER2)
|
|
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_BANNER1_05, OBJ_BANNER1, 0x08, 0xffff)
|
|
|
|
// @bug: Copy/paste error - should be banner 2
|
|
set_object_flag3(OBJ_BANNER1, OBJFLAG3_00000010)
|
|
object_do_animation(ANIM_CUT_AME_INTRO_BANNER2_05, OBJ_BANNER2, 0x08, 0xffff)
|
|
unset_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
unset_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
|
|
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
|
|
chr_do_animation(ANIM_CUT_AME_INTRO_JO_03, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 2)
|
|
set_chr_hudpiece_visible(CHR_BOND, FALSE)
|
|
mute_channel(CHANNEL_7)
|
|
mute_channel(CHANNEL_6)
|
|
mute_channel(CHANNEL_5)
|
|
set_ailist(CHR_SECRETARY, AILIST_INIT_SECRETARY)
|
|
enter_firstperson
|
|
set_stage_flag(STAGEFLAG_STOP_INTRO)
|
|
restart_timer
|
|
|
|
beginloop(0x09)
|
|
if_timer_gt(90, /*goto*/ 0x06)
|
|
endloop(0x09)
|
|
|
|
label(0x06)
|
|
stop_cutscene_track
|
|
stop_ambient_track
|
|
set_savefile_flag(GAMEFILEFLAG_CI_TOUR_DONE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func0416_outro_from_menu[] = {
|
|
set_ailist(CHR_SELF, AILIST_OUTRO)
|
|
endlist
|
|
};
|
|
|
|
u8 func0416_outro[] = {
|
|
camera_movement(ANIM_CUT_AME_OUTRO_CAM)
|
|
play_cutscene_track(MUSIC_DEFECTION_OUTRO)
|
|
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
|
|
set_chr_chrflag(CHR_P1P2_OPPOSITE, CHRCFLAG_HIDDEN)
|
|
set_ailist(CHR_P1P2, GAILIST_IDLE)
|
|
set_chr_chrflag(CHR_P1P2, CHRCFLAG_UNPLAYABLE)
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
unset_chr_chrflag(CHR_P1P2, CHRCFLAG_HIDDEN)
|
|
#endif
|
|
set_chr_hiddenflag(CHR_P1P2, CHRHFLAG_00020000)
|
|
chr_do_animation(ANIM_CUT_AME_OUTRO_JO, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_P1P2, 4)
|
|
restart_timer
|
|
unset_stage_flag(STAGEFLAG_LAB_ELEVATOR_CLOSED)
|
|
set_door_open(OBJ_LABLIFTDOOR1)
|
|
set_door_open(OBJ_LABLIFTDOOR2)
|
|
restart_timer
|
|
set_cutscene_weapon(CHR_P1P2, WEAPON_NONE, WEAPON_NONE)
|
|
yield
|
|
set_cutscene_weapon(CHR_P1P2, WEAPON_FALCON2_SILENCER, WEAPON_NONE)
|
|
show_nonessential_chrs(FALSE)
|
|
|
|
beginloop(0xb6)
|
|
if_controller_button_pressed(/*goto*/ 0xbd)
|
|
if_timer_gt(40, /*goto*/ 0x06)
|
|
endloop(0xb6)
|
|
|
|
label(0x06)
|
|
play_sound(SFX_0165, CHANNEL_CUTSCENE)
|
|
|
|
beginloop(0xb7)
|
|
if_controller_button_pressed(/*goto*/ 0xbd)
|
|
if_timer_gt(110, /*goto*/ 0x06)
|
|
endloop(0xb7)
|
|
|
|
label(0x06)
|
|
play_sound(SFX_0167, CHANNEL_CUTSCENE)
|
|
|
|
beginloop(0xb8)
|
|
if_controller_button_pressed(/*goto*/ 0xbd)
|
|
if_timer_gt(123, /*goto*/ 0x06)
|
|
endloop(0xb8)
|
|
|
|
label(0x06)
|
|
play_sound(SFX_01DC, CHANNEL_CUTSCENE)
|
|
|
|
beginloop(0xb9)
|
|
if_controller_button_pressed(/*goto*/ 0xbd)
|
|
if_timer_gt(215, /*goto*/ 0x06)
|
|
endloop(0xb9)
|
|
|
|
label(0x06)
|
|
play_sound(SFX_01D8, CHANNEL_CUTSCENE)
|
|
|
|
beginloop(0xba)
|
|
if_controller_button_pressed(/*goto*/ 0xbd)
|
|
if_timer_gt(245, /*goto*/ 0x06)
|
|
endloop(0xba)
|
|
|
|
label(0x06)
|
|
play_sound(SFX_01DA, CHANNEL_CUTSCENE)
|
|
|
|
beginloop(0xbb)
|
|
if_controller_button_pressed(/*goto*/ 0xbd)
|
|
if_timer_gt(250, /*goto*/ 0x06)
|
|
endloop(0xbb)
|
|
|
|
label(0x06)
|
|
play_sound(VERSION >= VERSION_NTSC_1_0 ? SFX_80F6 : SFX_01D9, CHANNEL_CUTSCENE)
|
|
|
|
beginloop(0xbc)
|
|
if_controller_button_pressed(/*goto*/ 0xbd)
|
|
if_timer_gt(285, /*goto*/ 0x06)
|
|
endloop(0xbc)
|
|
|
|
label(0x06)
|
|
play_sound(SFX_01DB, CHANNEL_CUTSCENE)
|
|
|
|
beginloop(0x08)
|
|
if_camera_animating(/*goto*/ 0x2c)
|
|
goto_next(0xbd)
|
|
|
|
label(0x2c)
|
|
if_controller_button_pressed(/*goto*/ 0xbd)
|
|
if_stage_flag_eq(STAGEFLAG_LAB_ELEVATOR_CLOSED, TRUE, /*goto*/ 0x2c)
|
|
if_timer_lt(336, /*goto*/ 0x2c)
|
|
close_door(OBJ_LABLIFTDOOR1)
|
|
close_door(OBJ_LABLIFTDOOR2)
|
|
set_stage_flag(STAGEFLAG_LAB_ELEVATOR_CLOSED)
|
|
label(0x2c)
|
|
endloop(0x08)
|
|
|
|
label(0xbd)
|
|
mute_channel(CHANNEL_CUTSCENE)
|
|
end_level
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1000_rebuild_groups[] = {
|
|
set_ailist(CHR_SELF, GAILIST_REBUILD_GROUPS)
|
|
endlist
|
|
};
|
|
|
|
u8 func1401_setup_counterop[] = {
|
|
noop016c
|
|
yield
|
|
set_chr_team(CHR_ANTI, TEAM_ENEMY)
|
|
set_ailist(CHR_SELF, GAILIST_REBUILD_GROUPS)
|
|
endlist
|
|
};
|
|
|
|
u8 func100f_check_necklace_collected[] = {
|
|
beginloop(0x04)
|
|
if_chr_has_object(CHR_BOND, OBJ_NECKLACE, /*goto*/ 0x2c)
|
|
if_chr_has_object(CHR_COOP, OBJ_NECKLACE, /*goto*/ 0x2c)
|
|
endloop(0x04)
|
|
|
|
label(0x2c)
|
|
chr_toggle_modelpart(CHR_CASS, MODELPART_CHR_NECKLACE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1003_start_intro[] = {
|
|
set_ailist(CHR_SELF, AILIST_INTRO)
|
|
endlist
|
|
};
|
|
|
|
u8 func1010_start_hub_humms[] = {
|
|
yield
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
play_sound_from_object2(CHANNEL_0, OBJ_SECURITYHUB, SFX_8111, PSTYPE_COMMHUB, 0x02)
|
|
yield
|
|
play_sound_from_object2(CHANNEL_1, OBJ_EXTCOMMSHUB, SFX_8111, PSTYPE_COMMHUB, 0x02)
|
|
#else
|
|
play_sound_from_object2(CHANNEL_0, OBJ_SECURITYHUB, SFX_8111, PSTYPE_COMMHUB, 0x00)
|
|
yield
|
|
play_sound_from_object2(CHANNEL_1, OBJ_SECURITYHUB, SFX_0004, PSTYPE_COMMHUB, 0x00)
|
|
#endif
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1011_check_hubs_activated[] = {
|
|
beginloop(0x04)
|
|
if_chr_activated_object(CHR_ANY, OBJ_SECURITYHUB, /*goto*/ 0x08)
|
|
if_chr_activated_object(CHR_ANY, OBJ_EXTCOMMSHUB, /*goto*/ 0x0a)
|
|
reloop(0x04)
|
|
|
|
label(0x08)
|
|
show_hudmsg(CHR_BOND, L_AME_080) // "ECM Mine needed to disable security hub."
|
|
restart_timer
|
|
|
|
beginloop(0x09)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x09)
|
|
|
|
label(0x0a)
|
|
show_hudmsg(CHR_BOND, L_AME_081) // "ECM Mine needed to disable comms hub."
|
|
restart_timer
|
|
|
|
beginloop(0x0b)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x0b)
|
|
|
|
label(0x06)
|
|
endloop(0x04)
|
|
|
|
endlist
|
|
};
|
|
|
|
u8 func1012_trigger_x_music[] = {
|
|
// Wait until arriving at bottom floor
|
|
beginloop(0x04)
|
|
if_camera_animating(/*goto*/ 0x2c)
|
|
if_chr_y(CHR_BOND, -8000, OPERATOR_LESS_THAN, /*goto*/ 0x06)
|
|
if_chr_y(CHR_COOP, -8000, OPERATOR_LESS_THAN, /*goto*/ 0x06)
|
|
label(0x2c)
|
|
endloop(0x04)
|
|
|
|
// This stage flag check seems a bit weird, but it makes sense if Rare were
|
|
// testing the outro in isolation of the rest of the stage. They obviously
|
|
// didn't want the X music playing during the outro while testing. Note that
|
|
// the flag is only set during the outro cutscene, not during gameplay.
|
|
label(0x06)
|
|
if_stage_flag_eq(STAGEFLAG_LAB_ELEVATOR_CLOSED, TRUE, /*goto*/ 0x2c)
|
|
play_x_track(XREASON_DEFAULT, 10, 60)
|
|
label(0x2c)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
#define init_guard(accuracy, health) \
|
|
set_chr_dodge_rating(2, 20) \
|
|
set_unarmeddodgerating(0) \
|
|
set_accuracy(accuracy) \
|
|
set_reaction_speed(0) \
|
|
set_chr_maxdamage(CHR_SELF, health) \
|
|
add_health_or_armor(0) \
|
|
set_recovery_speed(0) \
|
|
set_shield(0)
|
|
|
|
u8 func0417_init_dd_guard[] = {
|
|
init_guard(0, 40)
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED)
|
|
endlist
|
|
};
|
|
|
|
u8 func0418_init_shock_guard[] = {
|
|
if_difficulty_gt(DIFF_A, /*goto*/ 0x2c)
|
|
|
|
// Agent
|
|
init_guard(10, 40)
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED)
|
|
|
|
// SA and PA
|
|
label(0x2c)
|
|
init_guard(20, 40)
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED)
|
|
endlist
|
|
};
|
|
|
|
u8 func0430_init_falcon_guard[] = {
|
|
if_difficulty_gt(DIFF_A, /*goto*/ 0x2c)
|
|
|
|
// Agent
|
|
init_guard(20, 40)
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED)
|
|
|
|
// SA and PA
|
|
label(0x2c)
|
|
init_guard(30, 60)
|
|
set_ailist(CHR_SELF, GAILIST_UNALERTED)
|
|
endlist
|
|
};
|
|
|
|
u8 func1013_msg_commshubnearby[] = {
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d)
|
|
|
|
beginloop(0x04)
|
|
if_chr_y(CHR_BOND, -770, OPERATOR_LESS_THAN, /*goto*/ 0x2c)
|
|
reloop(0x04)
|
|
|
|
label(0x2c)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0039, /*goto*/ 0x2c)
|
|
endloop(0x04)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_093, SFX_8170, CHANNEL_6, COLOR_09_BLUE) // "We're getting a positive reading - the internal co..."
|
|
label(0x0d)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1014_msg_officefloor[] = {
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d)
|
|
|
|
beginloop(0x04)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0054, /*goto*/ 0x2c)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0064, /*goto*/ 0x0d)
|
|
endloop(0x04)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_094, SFX_8171, CHANNEL_6, COLOR_09_BLUE) // "You're on the same floor as Cassandra's office."
|
|
label(0x0d)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1015_msg_securityroom[] = {
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x0d)
|
|
|
|
beginloop(0x04)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x0025, /*goto*/ 0x2c)
|
|
endloop(0x04)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_095, MP3_03A2, CHANNEL_6, COLOR_09_BLUE) // "The other hub has got to be in the Security Room."
|
|
label(0x0d)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1016_msg_basementelevator[] = {
|
|
beginloop(0x04)
|
|
if_chr_in_room(CHR_BOND, 0x00, 0x002c, /*goto*/ 0x2c)
|
|
endloop(0x04)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_096, SFX_8172, CHANNEL_6, COLOR_09_BLUE) // "The basement elevator must be around there somewhe..."
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1017_unlock_basement_door[] = {
|
|
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2c)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
|
|
// Agent only - unlock basement door (SA and PA requires necklace)
|
|
label(0x2c)
|
|
unlock_door(OBJ_SECRETDOOR, 0x20)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* Rare used stage flags to trigger the intro cutscene to restart.
|
|
*/
|
|
u8 func0422_intro_speaking[] = {
|
|
label(0xbe)
|
|
if_stage_flag_eq(STAGEFLAG_TRIGGER_INTRO, TRUE, /*goto*/ 0xbf)
|
|
yield
|
|
goto_first(0xbe)
|
|
|
|
label(0xbf)
|
|
unset_stage_flag(STAGEFLAG_TRIGGER_INTRO)
|
|
restart_timer
|
|
|
|
#if VERSION == VERSION_PAL_FINAL
|
|
beginloop(0xb7)
|
|
if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06)
|
|
if_timer_gt(60, /*goto*/ 0x2c)
|
|
endloop(0xb7)
|
|
|
|
label(0x2c)
|
|
play_temporary_track(MUSIC_DEFECTION_INTRO_SFX)
|
|
|
|
// No yield in this loop!
|
|
label(0xb8)
|
|
if_music_event_queue_empty(16, /*goto*/ 0x2c)
|
|
configure_environment(0x0000, AIENVCMD_TICKMUSICQUEUE, 0)
|
|
goto_first(0xb8)
|
|
|
|
label(0x2c)
|
|
play_cutscene_track(MUSIC_DEFECTION_INTRO)
|
|
|
|
label(0xb9)
|
|
if_music_event_queue_empty(1, /*goto*/ 0x2c)
|
|
configure_environment(0x0000, AIENVCMD_TICKMUSICQUEUE, 0)
|
|
goto_first(0xb9)
|
|
|
|
label(0x2c)
|
|
#endif
|
|
|
|
beginloop(0xb6)
|
|
if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06)
|
|
if_timer_gt(700, /*goto*/ 0x2c)
|
|
endloop(0xb6)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_100, MP3_03E4, CHANNEL_6, COLOR_09_BLUE) // "Why the big hurry?"
|
|
|
|
beginloop(0x08)
|
|
if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x2c)
|
|
endloop(0x08)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_101, MP3_03E5, CHANNEL_6, COLOR_06_WHITE) // "If Dr. Caroll is not extracted tonight, dataDyne w..."
|
|
|
|
beginloop(0x09)
|
|
if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x2c)
|
|
endloop(0x09)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_102, MP3_03E6, CHANNEL_6, COLOR_09_BLUE) // "Are they all expendable?"
|
|
|
|
beginloop(0x0a)
|
|
if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x2c)
|
|
endloop(0x0a)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_103, MP3_03E7, CHANNEL_6, COLOR_06_WHITE) // "Don't joke! You have to be careful, Joanna. Code k..."
|
|
|
|
beginloop(0x0b)
|
|
if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x2c)
|
|
endloop(0x0b)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_104, MP3_03E8, CHANNEL_6, COLOR_09_BLUE) // "What's the target location?"
|
|
|
|
beginloop(0x0c)
|
|
if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x2c)
|
|
endloop(0x0c)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_105, MP3_03E9, CHANNEL_6, COLOR_06_WHITE) // "Work your way down the building to the ground leve..."
|
|
|
|
beginloop(0x0d)
|
|
if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x2c)
|
|
endloop(0x0d)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_106, MP3_03EA, CHANNEL_6, COLOR_09_BLUE) // "How will I recognize him?"
|
|
|
|
beginloop(0x0e)
|
|
if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x2c)
|
|
endloop(0x0e)
|
|
|
|
label(0x2c)
|
|
speak(CHR_BOND, L_AME_107, MP3_03EB, CHANNEL_6, COLOR_06_WHITE) // "We don't have an image record, and we can't find a..."
|
|
|
|
beginloop(0x0f)
|
|
if_stage_flag_eq(STAGEFLAG_STOP_INTRO, TRUE, /*goto*/ 0x06)
|
|
if_sound_finished(CHANNEL_6, /*goto*/ 0x2c)
|
|
endloop(0x0f)
|
|
|
|
label(0x2c)
|
|
label(0x06)
|
|
mute_channel(CHANNEL_6)
|
|
goto_first(0xbe)
|
|
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* Hide guards, then unhide then once you pass below -2000. This is likely the
|
|
* first staircase between the light switch room and Cass's office floor.
|
|
*/
|
|
u8 func1019_toggle_guards[] = {
|
|
label(0x2c)
|
|
disable_chr(0x01)
|
|
disable_chr(0x02)
|
|
disable_chr(0x0e)
|
|
disable_chr(0x12)
|
|
disable_chr(0x0f)
|
|
disable_chr(0x10)
|
|
disable_chr(0x11)
|
|
disable_chr(0x13)
|
|
disable_chr(0x03)
|
|
disable_chr(0x04)
|
|
disable_chr(0x14)
|
|
disable_chr(0x15)
|
|
disable_chr(0x16)
|
|
|
|
beginloop(0x04)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
if_chr_y(CHR_P1P2, -2000, OPERATOR_LESS_THAN, /*goto*/ 0x2c)
|
|
endloop(0x04)
|
|
|
|
label(0x2c)
|
|
enable_chr(0x01)
|
|
yield
|
|
enable_chr(0x02)
|
|
yield
|
|
enable_chr(0x0e)
|
|
yield
|
|
enable_chr(0x12)
|
|
yield
|
|
enable_chr(0x0f)
|
|
yield
|
|
enable_chr(0x10)
|
|
yield
|
|
enable_chr(0x11)
|
|
yield
|
|
enable_chr(0x13)
|
|
yield
|
|
enable_chr(0x03)
|
|
yield
|
|
enable_chr(0x04)
|
|
yield
|
|
enable_chr(0x14)
|
|
yield
|
|
enable_chr(0x15)
|
|
yield
|
|
enable_chr(0x16)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func101a_noop[] = {
|
|
yield
|
|
yield
|
|
yield
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func141c_start_lifts[] = {
|
|
activate_lift(2, OBJ_LIFT1)
|
|
activate_lift(1, OBJ_LIFT2)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func101d_disable_cameras[] = {
|
|
// Check security hub objective
|
|
beginloop(0xc4)
|
|
if_objective_complete(0, /*goto*/ 0x2c)
|
|
endloop(0xc4)
|
|
|
|
label(0x2c)
|
|
set_object_flag(OBJ_CAMERA1, OBJFLAG_DEACTIVATED)
|
|
set_object_flag(OBJ_CAMERA2, OBJFLAG_DEACTIVATED)
|
|
set_object_flag(OBJ_CAMERA3, OBJFLAG_DEACTIVATED)
|
|
set_object_flag(OBJ_CAMERA4, OBJFLAG_DEACTIVATED)
|
|
set_object_flag(OBJ_CAMERA5, OBJFLAG_DEACTIVATED)
|
|
set_object_flag(OBJ_CAMERA6, OBJFLAG_DEACTIVATED)
|
|
set_stage_flag(STAGEFLAG_SECURITY_DISABLED)
|
|
restart_timer
|
|
|
|
// @bug: If you disable the security (bottom floor), then activate the alarm
|
|
// before the 2 minute timer expires (eg. by getting Cass to activate it),
|
|
// then the first camera is never reactivated. The if_alarm_active check
|
|
// should go to 0x2c instead.
|
|
beginloop(0x08)
|
|
if_alarm_active(/*goto*/ 0x06)
|
|
if_timer_gt(7200, /*goto*/ 0x2c)
|
|
endloop(0x08)
|
|
|
|
// 2 minutes elapsed
|
|
label(0x2c)
|
|
if_object_in_good_condition(OBJ_CAMERA1, /*goto*/ 0x2c)
|
|
goto_next(0x06)
|
|
label(0x2c)
|
|
unset_object_flag(OBJ_CAMERA1, OBJFLAG_DEACTIVATED)
|
|
|
|
label(0x06)
|
|
if_object_in_good_condition(OBJ_CAMERA2, /*goto*/ 0x2c)
|
|
goto_next(0x06)
|
|
label(0x2c)
|
|
unset_object_flag(OBJ_CAMERA2, OBJFLAG_DEACTIVATED)
|
|
|
|
label(0x06)
|
|
if_object_in_good_condition(OBJ_CAMERA3, /*goto*/ 0x2c)
|
|
goto_next(0x06)
|
|
label(0x2c)
|
|
unset_object_flag(OBJ_CAMERA3, OBJFLAG_DEACTIVATED)
|
|
|
|
label(0x06)
|
|
if_object_in_good_condition(OBJ_CAMERA4, /*goto*/ 0x2c)
|
|
goto_next(0x06)
|
|
label(0x2c)
|
|
unset_object_flag(OBJ_CAMERA4, OBJFLAG_DEACTIVATED)
|
|
|
|
label(0x06)
|
|
if_object_in_good_condition(OBJ_CAMERA5, /*goto*/ 0x2c)
|
|
goto_next(0x06)
|
|
label(0x2c)
|
|
unset_object_flag(OBJ_CAMERA5, OBJFLAG_DEACTIVATED)
|
|
|
|
label(0x06)
|
|
if_object_in_good_condition(OBJ_CAMERA6, /*goto*/ 0x2c)
|
|
goto_next(0x06)
|
|
label(0x2c)
|
|
unset_object_flag(OBJ_CAMERA6, OBJFLAG_DEACTIVATED)
|
|
|
|
label(0x06)
|
|
show_hudmsg(CHR_BOND, L_AME_097) // "Security system is now back online."
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unregistered
|
|
*/
|
|
u8 unregistered_function7[] = {
|
|
show_hudmsg(CHR_BOND, L_AME_099) // "2023 AD, 2214 Hours Lucerne Tower - dataDyne HQ"
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func101e_lift_door_sounds[] = {
|
|
beginloop(0xc4)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
if_chr_activated_object(CHR_P1P2, OBJ_LIFT1DOOR1, /*goto*/ 0x2c)
|
|
if_chr_activated_object(CHR_P1P2, OBJ_LIFT1DOOR2, /*goto*/ 0x2c)
|
|
if_chr_activated_object(CHR_P1P2, OBJ_LIFT1DOOR3, /*goto*/ 0x2c)
|
|
if_chr_activated_object(CHR_P1P2, OBJ_LIFT1DOOR4, /*goto*/ 0x2c)
|
|
if_chr_activated_object(CHR_P1P2, OBJ_LIFT2DOOR1, /*goto*/ 0x2c)
|
|
if_chr_activated_object(CHR_P1P2, OBJ_LIFT2DOOR2, /*goto*/ 0x2c)
|
|
if_chr_activated_object(CHR_P1P2, OBJ_LIFT2DOOR3, /*goto*/ 0x2c)
|
|
if_chr_activated_object(CHR_P1P2, OBJ_LIFT2DOOR4, /*goto*/ 0x2c)
|
|
reloop(0xc4)
|
|
|
|
label(0x2c)
|
|
play_sound(SFX_DOOR_81B0, -1)
|
|
restart_timer
|
|
|
|
beginloop(0x08)
|
|
if_timer_gt(120, /*goto*/ 0x06)
|
|
endloop(0x08)
|
|
|
|
label(0x06)
|
|
endloop(0xc4)
|
|
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unused
|
|
*/
|
|
u8 func042e_init_surrendering_guard[] = {
|
|
label(0xc4)
|
|
set_chr_maxdamage(CHR_SELF, 1)
|
|
set_ailist(CHR_SELF, AILIST_SURRENDERING_GUARD)
|
|
endlist
|
|
};
|
|
|
|
/**
|
|
* @unused
|
|
*/
|
|
u8 func042f_surrendering_guard[] = {
|
|
// Wait for player detection
|
|
beginloop(0xc4)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_can_see_target(/*goto*/ 0x2c)
|
|
if_enemy_distance_lt_and_los(500, /*goto*/ 0x2c)
|
|
if_near_miss(/*goto*/ 0x2c)
|
|
if_saw_injury(0x00, /*goto*/ 0x2c)
|
|
endloop(0xc4)
|
|
|
|
// Be surprised
|
|
label(0x2c)
|
|
say_quip(CHR_BOND, QUIP_SURPRISED, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
|
|
chr_do_animation(ANIM_SURPRISED_0202, 0, -1, 0, 16, CHR_SELF, 2)
|
|
|
|
// Wait 1 second
|
|
beginloop(0x08)
|
|
dprint 'S','4',0,
|
|
if_timer_gt(60, /*goto*/ 0x2c)
|
|
endloop(0x08)
|
|
|
|
label(0x2c)
|
|
try_set_chrpreset_to_unalerted_teammate(0, /*goto*/ 0x54)
|
|
goto_next(0x55)
|
|
|
|
label(0x54)
|
|
try_run_to_chr(CHR_PRESET, /*goto*/ 0x56)
|
|
|
|
beginloop(0x56)
|
|
if_distance_to_target_gt(300, /*goto*/ 0x06)
|
|
if_target_aiming_at_me(/*goto*/ 0x28)
|
|
label(0x06)
|
|
if_chr_death_animation_finished(CHR_PRESET, /*goto*/ 0x55)
|
|
if_chr_knockedout(CHR_PRESET, /*goto*/ 0x55)
|
|
if_los_to_chr(CHR_PRESET, /*goto*/ 0x57)
|
|
if_chr_stopped(/*goto*/ 0x57)
|
|
endloop(0x56)
|
|
|
|
// Warn
|
|
label(0x57)
|
|
dprint 'W','A','R','N',' ','F','R','I','E','N','D','S','\n',0,
|
|
say_quip(CHR_BOND, QUIP_WARNFRIENDS, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
|
|
increase_squadron_alertness(100)
|
|
|
|
// No chr in same group, or follow through from above
|
|
// Wait until player in range and then surrender.
|
|
beginloop(0x55)
|
|
if_distance_to_target_gt(300, /*goto*/ 0x06)
|
|
if_target_aiming_at_me(/*goto*/ 0x28)
|
|
label(0x06)
|
|
chr_toggle_p1p2(CHR_SELF)
|
|
set_target_chr(CHR_P1P2)
|
|
if_los_to_target(/*goto*/ 0x58)
|
|
endloop(0x55)
|
|
|
|
label(0x58)
|
|
restart_timer
|
|
retreat(GOPOSFLAG_RUN, 2)
|
|
|
|
beginloop(0x0a)
|
|
if_distance_to_target_gt(300, /*goto*/ 0x06)
|
|
if_target_aiming_at_me(/*goto*/ 0x28)
|
|
label(0x06)
|
|
if_timer_gt(600, /*goto*/ 0x2c)
|
|
endloop(0x0a)
|
|
|
|
label(0x2c)
|
|
stop_chr
|
|
goto_first(0x55)
|
|
|
|
// Surrender
|
|
label(0x28)
|
|
surrender
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func101f_setup_rtracker[] = {
|
|
yield
|
|
set_object_flag3(OBJ_FALCONSIL1, OBJFLAG3_RTRACKED_BLUE)
|
|
set_object_flag3(OBJ_FALCONSIL2, OBJFLAG3_RTRACKED_BLUE)
|
|
set_object_flag3(OBJ_LAPTOPGUN, OBJFLAG3_RTRACKED_BLUE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1420_setup_portals[] = {
|
|
yield
|
|
set_portal_flag(0x008e, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x008f, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0084, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0090, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0091, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0093, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0096, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0095, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0099, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00b6, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00bf, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00be, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00c0, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00c2, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00c4, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00c8, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00c7, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00c9, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00cd, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00ce, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00d2, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00e0, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00dc, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00de, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00e3, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00e5, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00e7, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00fb, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00fa, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00fc, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00ff, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0100, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0103, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0102, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0104, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0109, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x010c, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0119, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0112, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0117, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0120, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x011e, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x011c, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0108, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x006f, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x007d, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0080, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0081, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0075, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0078, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0079, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0006, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0004, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0008, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x000a, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0001, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0005, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0000, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0003, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0007, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0013, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0009, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00b1, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00ef, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00ee, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0121, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00e8, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00e9, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00ea, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00ec, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00eb, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00ed, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x009d, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00af, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00a1, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x005a, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x005c, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x005d, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0060, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0034, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0030, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x002e, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x002b, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0028, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0025, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0036, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0038, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x004f, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0051, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0052, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0057, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0058, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0031, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x002f, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0023, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00a6, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00a3, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00a2, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00a4, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x0087, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00b9, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00b4, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00b2, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00b3, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00bd, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00f4, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00f2, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00f0, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00f8, PORTALFLAG_SKIP)
|
|
set_portal_flag(0x00f1, PORTALFLAG_SKIP)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1421_setup_environment[] = {
|
|
yield
|
|
configure_environment(0x0000, AIENVCMD_00, TRUE)
|
|
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(0x0002, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0002, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0003, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0003, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0004, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x0004, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0005, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0006, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0007, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0008, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0009, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x000a, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x000b, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x000c, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x000d, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x000e, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x000f, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0010, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0011, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0012, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0013, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x0014, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x003a, AIENVCMD_ROOM_SETAMBIENT, TRUE)
|
|
configure_environment(0x00a2, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x00a4, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x00a5, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
configure_environment(0x00a7, AIENVCMD_ROOM_SETOUTDOORS, TRUE)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 unregistered_function8[] = {
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
struct ailist ailists[] = {
|
|
{ func0401_do_some_animation, 0x0401 },
|
|
{ func0402_guard_with_chrflag, 0x0402 },
|
|
{ func0403_shielded_guard, 0x0403 },
|
|
{ func0404_init_hovercar, 0x0404 },
|
|
{ func0405_start_path26, 0x0405 },
|
|
{ func0406_start_path27, 0x0406 },
|
|
{ func0407_start_path28, 0x0407 },
|
|
{ func0408_start_path29, 0x0408 },
|
|
{ func0409_start_path30, 0x0409 },
|
|
{ func040a_start_path31, 0x040a },
|
|
{ func040b_start_path32, 0x040b },
|
|
{ func040c_start_path33, 0x040c },
|
|
{ func040d_start_path34, 0x040d },
|
|
{ func040e_start_path35, 0x040e },
|
|
{ func040f_cass, 0x040f },
|
|
{ func0410_init_cass, 0x0410 },
|
|
{ func0411_secretary, 0x0411 },
|
|
{ func0412_init_secretary, 0x0412 },
|
|
{ func0413_c318, 0x0413 },
|
|
{ func0414_programmer, 0x0414 },
|
|
{ func0415_set_idle, 0x0415 },
|
|
{ func0419_intro_0419, 0x0419 },
|
|
{ func041a_intro_041a, 0x041a },
|
|
{ func041b_intro_041b, 0x041b },
|
|
{ func041c_intro_041c, 0x041c },
|
|
{ func041d_intro_041d, 0x041d },
|
|
{ func041e_intro_041e, 0x041e },
|
|
{ func041f_intro_041f, 0x041f },
|
|
{ func0420_intro_0420, 0x0420 },
|
|
{ func0421_intro_0421, 0x0421 },
|
|
{ func0422_intro, 0x0422 },
|
|
{ func0422_intro_0423, 0x0423 },
|
|
{ func0422_intro_0424, 0x0424 },
|
|
{ func0422_intro_0425, 0x0425 },
|
|
{ func0422_intro_0426, 0x0426 },
|
|
{ func0422_intro_0427, 0x0427 },
|
|
{ func0422_intro_0428, 0x0428 },
|
|
{ func0422_intro_0429, 0x0429 },
|
|
{ func0422_intro_042a, 0x042a },
|
|
{ func0422_intro_042b, 0x042b },
|
|
{ func0422_intro_042c, 0x042c },
|
|
{ func0422_intro_042d, 0x042d },
|
|
{ func042e_init_surrendering_guard, 0x042e },
|
|
{ func042f_surrendering_guard, 0x042f },
|
|
{ func0430_init_falcon_guard, 0x0430 },
|
|
{ func0416_outro, 0x0416 },
|
|
{ func0417_init_dd_guard, 0x0417 },
|
|
{ func0418_init_shock_guard, 0x0418 },
|
|
{ func1000_rebuild_groups, 0x1000 },
|
|
{ func1401_setup_counterop, 0x1401 },
|
|
{ func1002_objectives_failed_msg, 0x1002 },
|
|
{ func1003_start_intro, 0x1003 },
|
|
{ func1004_check_lab_lift_located, 0x1004 },
|
|
{ func1005_give_control, 0x1005 },
|
|
{ func1006_check_programmer_dead, 0x1006 },
|
|
{ func1007_uplinking, 0x1007 },
|
|
{ func1008_doorswitch, 0x1008 },
|
|
{ func1009_check_civilians_killed, 0x1009 },
|
|
{ func100a_alarm_guard, 0x100a },
|
|
{ func100b_lightswitch, 0x100b },
|
|
{ func100c_noop2, 0x100c },
|
|
{ func100d_check_objects_destroyed, 0x100d },
|
|
{ func100e_check_ecm_mines, 0x100e },
|
|
{ func100f_check_necklace_collected, 0x100f },
|
|
{ func1010_start_hub_humms, 0x1010 },
|
|
{ func1011_check_hubs_activated, 0x1011 },
|
|
{ func1012_trigger_x_music, 0x1012 },
|
|
{ func1013_msg_commshubnearby, 0x1013 },
|
|
{ func1014_msg_officefloor, 0x1014 },
|
|
{ func1015_msg_securityroom, 0x1015 },
|
|
{ func1016_msg_basementelevator, 0x1016 },
|
|
{ func1017_unlock_basement_door, 0x1017 },
|
|
{ func0422_intro_speaking, 0x1418 },
|
|
{ func1019_toggle_guards, 0x1019 },
|
|
{ func101a_noop, 0x101a },
|
|
{ func141c_start_lifts, 0x141c },
|
|
{ func101d_disable_cameras, 0x101d },
|
|
{ func101e_lift_door_sounds, 0x101e },
|
|
{ func101f_setup_rtracker, 0x101f },
|
|
{ func1420_setup_portals, 0x1420 },
|
|
{ func1421_setup_environment, 0x1421 },
|
|
{ func0422_intro, 0x0c00 },
|
|
{ func0416_outro_from_menu, 0x0c01 },
|
|
{ NULL, 0 },
|
|
};
|
|
|
|
struct path paths[] = {
|
|
{ path00, 0, 0 },
|
|
{ path01, 1, PATHFLAG_FLYING },
|
|
{ path02, 2, PATHFLAG_FLYING },
|
|
{ path03, 3, PATHFLAG_FLYING },
|
|
{ path04, 4, PATHFLAG_FLYING },
|
|
{ path05, 5, PATHFLAG_FLYING },
|
|
{ path06, 6, PATHFLAG_FLYING },
|
|
{ path07, 7, PATHFLAG_FLYING },
|
|
{ path08, 8, PATHFLAG_FLYING },
|
|
{ path09, 9, PATHFLAG_FLYING },
|
|
{ path10, 10, PATHFLAG_FLYING },
|
|
{ path11, 11, PATHFLAG_FLYING },
|
|
{ path12, 12, PATHFLAG_FLYING },
|
|
{ path13, 13, PATHFLAG_FLYING },
|
|
{ path14, 14, PATHFLAG_FLYING },
|
|
{ path15, 15, PATHFLAG_FLYING },
|
|
{ path16, 16, PATHFLAG_FLYING },
|
|
{ path17, 17, PATHFLAG_FLYING },
|
|
{ path18, 18, PATHFLAG_FLYING },
|
|
{ path19, 19, PATHFLAG_FLYING },
|
|
{ path20, 20, PATHFLAG_FLYING },
|
|
{ path21, 21, PATHFLAG_FLYING },
|
|
{ path22, 22, PATHFLAG_FLYING },
|
|
{ path23, 23, PATHFLAG_FLYING },
|
|
{ path24, 24, PATHFLAG_FLYING },
|
|
{ path25, 25, PATHFLAG_FLYING },
|
|
{ path26, 26, PATHFLAG_CIRCULAR },
|
|
{ path27, 27, 0 },
|
|
{ path28, 28, 0 },
|
|
{ path29, 29, 0 },
|
|
{ path30, 30, PATHFLAG_CIRCULAR },
|
|
{ path31, 31, 0 },
|
|
{ path32, 32, 0 },
|
|
{ path33, 33, 0 },
|
|
{ path34, 34, PATHFLAG_CIRCULAR },
|
|
{ path35, 35, 0 },
|
|
{ NULL, 0, 0 },
|
|
};
|