Files
perfect-dark/src/setups/mp_setupmp3.c
T
2024-08-20 21:28:55 +10:00

158 lines
11 KiB
C

//
// Area 52 (MP)
//
#include "stagesetup.h"
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[] = {
weapon(0x0100, 0x0000, PAD_MP3_0028, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION00)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0032, OBJFLAG_FALL, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0033, OBJFLAG_FALL, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_0029, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION01)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0034, OBJFLAG_FALL, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0035, OBJFLAG_FALL, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002A, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION02)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0036, OBJFLAG_FALL, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0037, OBJFLAG_FALL, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002B, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION03)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0038, OBJFLAG_FALL, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0039, OBJFLAG_FALL, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002C, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION04)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003A, OBJFLAG_FALL, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003B, OBJFLAG_FALL, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002D, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION05)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003C, OBJFLAG_FALL, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003D, OBJFLAG_FALL, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002E, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION06)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003E, OBJFLAG_FALL, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003F, OBJFLAG_FALL, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002F, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION07)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0040, OBJFLAG_FALL, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0041, OBJFLAG_FALL, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_0030, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION08)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0042, OBJFLAG_FALL, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0043, OBJFLAG_FALL, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_0031, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION09)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0044, OBJFLAG_FALL, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0045, OBJFLAG_FALL, 0, 0, 1000)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_0046, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_CORE_GEO_INUSE | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_0047, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_CORE_GEO_INUSE | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_0048, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_CORE_GEO_INUSE | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_0049, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_CORE_GEO_INUSE | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_004A, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_CORE_GEO_INUSE | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_004B, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_CORE_GEO_INUSE | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_004C, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_CORE_GEO_INUSE | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_004D, OBJFLAG_00000002 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_CORE_GEO_INUSE | OBJFLAG_ORTHOGONAL | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP3_005A, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x0000021c, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP3_005B, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP3_005C, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x00000168, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP3_005D, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x00000348, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP3_005E, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x00000168, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP3_005F, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x00000078, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP3_0060, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP3_0061, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_MP3_004F, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_MP3_004E, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_MP3_0051, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_MP3_0050, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_MP3_0053, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_MP3_0052, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_MP3_0055, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_MP3_0054, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_MP3_0057, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_MP3_0056, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, PAD_MP3_0059, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, DOORFLAG_AUTOMATIC, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000100)
door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, PAD_MP3_0058, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x0000f333, 0x00320000, 0x00085555, 0x00002aaa, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0fffffff, 0x00000000, 0xffffffff, 0x00000000)
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
spawn(PAD_MP3_001C)
spawn(PAD_MP3_001D)
spawn(PAD_MP3_001E)
spawn(PAD_MP3_001F)
spawn(PAD_MP3_0020)
spawn(PAD_MP3_0021)
spawn(PAD_MP3_0022)
spawn(PAD_MP3_0023)
spawn(PAD_MP3_0024)
spawn(PAD_MP3_0025)
spawn(PAD_MP3_0026)
spawn(PAD_MP3_0027)
case(0, PAD_MP3_0006)
case_respawn(0, PAD_MP3_0000)
case_respawn(0, PAD_MP3_0001)
case_respawn(0, PAD_MP3_0002)
case_respawn(0, PAD_MP3_0003)
case_respawn(0, PAD_MP3_0004)
case_respawn(0, PAD_MP3_0005)
case(1, PAD_MP3_000D)
case_respawn(1, PAD_MP3_0007)
case_respawn(1, PAD_MP3_0008)
case_respawn(1, PAD_MP3_0009)
case_respawn(1, PAD_MP3_000A)
case_respawn(1, PAD_MP3_000B)
case_respawn(1, PAD_MP3_000C)
case(2, PAD_MP3_0013)
case_respawn(2, PAD_MP3_000E)
case_respawn(2, PAD_MP3_000F)
case_respawn(2, PAD_MP3_0010)
case_respawn(2, PAD_MP3_0011)
case_respawn(2, PAD_MP3_0012)
case_respawn(2, PAD_MP3_0014)
case(3, PAD_MP3_001B)
case_respawn(3, PAD_MP3_0015)
case_respawn(3, PAD_MP3_0016)
case_respawn(3, PAD_MP3_0017)
case_respawn(3, PAD_MP3_0018)
case_respawn(3, PAD_MP3_0019)
case_respawn(3, PAD_MP3_001A)
hill(PAD_MP3_010D)
hill(PAD_MP3_0106)
hill(PAD_MP3_00E4)
hill(PAD_MP3_00DA)
hill(PAD_MP3_011C)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1001_27e0[] = {
set_wind_speed(15)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1000_27ec[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_27ec, 0x1000 },
{ func1001_27e0, 0x1001 },
{ NULL, 0 },
};