forked from Ports/perfect_dark
149 lines
8.8 KiB
C
149 lines
8.8 KiB
C
//
|
|
// Ravine (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[] = {
|
|
tag(0x00, 1)
|
|
lift(0x0100, MODEL_RAVINELIFT, PAD_AREC_00BC, 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, 0x00bc, 0x00bb, 0x00ba, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000)
|
|
weapon(0x0200, MODEL_ROOFGUN, PAD_AREC_00BD, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION00)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00C7, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00C8, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0200, 0x0000, PAD_AREC_00BE, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION01)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00C9, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CA, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0200, 0x0000, PAD_AREC_00BF, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION02)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CB, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CC, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0133, 0x0000, PAD_AREC_00C0, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION03)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CD, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CE, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0133, 0x0000, PAD_AREC_00C1, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION04)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CF, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D0, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0133, 0x0000, PAD_AREC_00C2, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION05)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D1, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D2, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_AREC_00C3, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION06)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D3, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D4, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_AREC_00C4, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION07)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D5, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D6, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_AREC_00C5, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION08)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D7, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D8, OBJFLAG_FALL, 0, 0, 1000)
|
|
weapon(0x0100, 0x0000, PAD_AREC_00C6, OBJFLAG_FALL, 0, 0, WEAPON_MPLOCATION09)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D9, OBJFLAG_FALL, 0, 0, 1000)
|
|
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00DA, OBJFLAG_FALL, 0, 0, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00DB, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00DC, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00DD, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00DE, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00DF, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E0, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E1, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E2, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E3, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E4, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E5, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E6, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E7, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E8, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E9, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00EA, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00EB, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00EC, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00ED, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00EE, OBJFLAG_FALL | OBJFLAG_XTOPADBOUNDS | OBJFLAG_YTOPADBOUNDS | OBJFLAG_ZTOPADBOUNDS | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
|
|
endprops
|
|
};
|
|
|
|
s32 intro[] = {
|
|
spawn(PAD_AREC_00B0)
|
|
spawn(PAD_AREC_00B1)
|
|
spawn(PAD_AREC_00B2)
|
|
spawn(PAD_AREC_00B3)
|
|
spawn(PAD_AREC_00B4)
|
|
spawn(PAD_AREC_00B5)
|
|
spawn(PAD_AREC_00B6)
|
|
spawn(PAD_AREC_00B7)
|
|
spawn(PAD_AREC_00B8)
|
|
spawn(PAD_AREC_00B9)
|
|
hill(PAD_AREC_0066)
|
|
hill(PAD_AREC_008D)
|
|
hill(PAD_AREC_0071)
|
|
hill(PAD_AREC_007C)
|
|
hill(PAD_AREC_005C)
|
|
case(0, PAD_AREC_009A)
|
|
case_respawn(0, PAD_AREC_0094)
|
|
case_respawn(0, PAD_AREC_0096)
|
|
case_respawn(0, PAD_AREC_0097)
|
|
case_respawn(0, PAD_AREC_0099)
|
|
case_respawn(0, PAD_AREC_0098)
|
|
case_respawn(0, PAD_AREC_0095)
|
|
case(1, PAD_AREC_00A1)
|
|
case_respawn(1, PAD_AREC_009B)
|
|
case_respawn(1, PAD_AREC_009C)
|
|
case_respawn(1, PAD_AREC_009D)
|
|
case_respawn(1, PAD_AREC_009E)
|
|
case_respawn(1, PAD_AREC_009F)
|
|
case_respawn(1, PAD_AREC_00A0)
|
|
case(2, PAD_AREC_00A8)
|
|
case_respawn(2, PAD_AREC_00A2)
|
|
case_respawn(2, PAD_AREC_00A3)
|
|
case_respawn(2, PAD_AREC_00A4)
|
|
case_respawn(2, PAD_AREC_00A5)
|
|
case_respawn(2, PAD_AREC_00A6)
|
|
case_respawn(2, PAD_AREC_00A7)
|
|
case(3, PAD_AREC_00AF)
|
|
case_respawn(3, PAD_AREC_00A9)
|
|
case_respawn(3, PAD_AREC_00AA)
|
|
case_respawn(3, PAD_AREC_00AB)
|
|
case_respawn(3, PAD_AREC_00AC)
|
|
case_respawn(3, PAD_AREC_00AD)
|
|
case_respawn(3, PAD_AREC_00AE)
|
|
endintro
|
|
};
|
|
|
|
struct path paths[] = {
|
|
{ NULL, 0, 0 },
|
|
};
|
|
|
|
u8 func1001_start_lift[] = {
|
|
activate_lift(1, 0x00)
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
u8 func1000_1b30[] = {
|
|
mp_init_simulants
|
|
rebuild_teams
|
|
rebuild_squadrons
|
|
set_ailist(CHR_SELF, GAILIST_IDLE)
|
|
endlist
|
|
};
|
|
|
|
struct ailist ailists[] = {
|
|
{ func1000_1b30, 0x1000 },
|
|
{ func1001_start_lift, 0x1001 },
|
|
{ NULL, 0 },
|
|
};
|