// // 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 }, };