mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-09 05:23:15 -04:00
141 lines
5.3 KiB
C
141 lines
5.3 KiB
C
//
|
|
// Pipes (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_CRAD_00E2, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION00)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00EC, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00ED, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_CRAD_00E3, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION01)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00EE, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00EF, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_CRAD_00E4, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION02)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F0, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F1, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_CRAD_00E5, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION03)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F2, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F3, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_CRAD_00E6, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION04)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F4, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F5, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_CRAD_00E7, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION05)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F6, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F7, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_CRAD_00E8, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION06)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F8, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F9, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_CRAD_00E9, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION07)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FA, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FB, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_CRAD_00EA, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION08)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FC, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FD, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_CRAD_00EB, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION09)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FE, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FF, OBJFLAG_FALL, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_CRAD_0100, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
tag(0x01, 1)
|
|
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_CRAD_0104, OBJFLAG_00000008 | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_FORCENOBOUNCE | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_LIFT_CHECKCEILING, OBJFLAG2_NOFALL | OBJFLAG2_FALLWITHOUTROTATION | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_IMMUNETOEXPLOSIONS, 0, 1000, 0x0104, 0x0103, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000005b0, 0x00050000, 0x00000000)
|
|
endprops
|
|
};
|
|
|
|
s32 intro[] = {
|
|
spawn(PAD_CRAD_00CD)
|
|
spawn(PAD_CRAD_00CE)
|
|
spawn(PAD_CRAD_00CF)
|
|
spawn(PAD_CRAD_00D0)
|
|
spawn(PAD_CRAD_00D1)
|
|
spawn(PAD_CRAD_00D2)
|
|
spawn(PAD_CRAD_00D3)
|
|
spawn(PAD_CRAD_00D4)
|
|
spawn(PAD_CRAD_00D5)
|
|
spawn(PAD_CRAD_00D6)
|
|
spawn(PAD_CRAD_00D7)
|
|
spawn(PAD_CRAD_00D8)
|
|
spawn(PAD_CRAD_00D9)
|
|
spawn(PAD_CRAD_00DA)
|
|
spawn(PAD_CRAD_00DB)
|
|
spawn(PAD_CRAD_00DC)
|
|
spawn(PAD_CRAD_00DD)
|
|
spawn(PAD_CRAD_00DE)
|
|
spawn(PAD_CRAD_00DF)
|
|
spawn(PAD_CRAD_00E0)
|
|
spawn(PAD_CRAD_00E1)
|
|
hill(PAD_CRAD_0019)
|
|
hill(PAD_CRAD_009E)
|
|
hill(PAD_CRAD_0007)
|
|
hill(PAD_CRAD_001B)
|
|
hill(PAD_CRAD_001F)
|
|
case(0, PAD_CRAD_00B7)
|
|
case_respawn(0, PAD_CRAD_00B1)
|
|
case_respawn(0, PAD_CRAD_00B2)
|
|
case_respawn(0, PAD_CRAD_00B3)
|
|
case_respawn(0, PAD_CRAD_00B4)
|
|
case_respawn(0, PAD_CRAD_00B5)
|
|
case_respawn(0, PAD_CRAD_00B6)
|
|
case(1, PAD_CRAD_00BE)
|
|
case_respawn(1, PAD_CRAD_00B8)
|
|
case_respawn(1, PAD_CRAD_00B9)
|
|
case_respawn(1, PAD_CRAD_00BA)
|
|
case_respawn(1, PAD_CRAD_00BB)
|
|
case_respawn(1, PAD_CRAD_00BC)
|
|
case_respawn(1, PAD_CRAD_00BD)
|
|
case(2, PAD_CRAD_00C5)
|
|
case_respawn(2, PAD_CRAD_00BF)
|
|
case_respawn(2, PAD_CRAD_00C0)
|
|
case_respawn(2, PAD_CRAD_00C1)
|
|
case_respawn(2, PAD_CRAD_00C2)
|
|
case_respawn(2, PAD_CRAD_00C3)
|
|
case_respawn(2, PAD_CRAD_00C4)
|
|
case(3, PAD_CRAD_00CC)
|
|
case_respawn(3, PAD_CRAD_00C6)
|
|
case_respawn(3, PAD_CRAD_00C7)
|
|
case_respawn(3, PAD_CRAD_00C8)
|
|
case_respawn(3, PAD_CRAD_00C9)
|
|
case_respawn(3, PAD_CRAD_00CA)
|
|
case_respawn(3, PAD_CRAD_00CB)
|
|
endintro
|
|
};
|
|
|
|
struct path paths[] = {
|
|
{ NULL, 0, 0 },
|
|
};
|
|
|
|
u8 func1001_start_lift[] = {
|
|
activate_lift(1, 0x01)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1000_14e0[] = {
|
|
mp_init_simulants
|
|
rebuild_teams
|
|
rebuild_squadrons
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
struct ailist ailists[] = {
|
|
{ func1000_14e0, 0x1000 },
|
|
{ func1001_start_lift, 0x1001 },
|
|
{ NULL, 0 },
|
|
};
|