Introduce ai2asm

This commit is contained in:
Ryan Dwyer
2022-11-02 17:35:19 +10:00
parent a5b4d0017b
commit 7841b59eef
263 changed files with 89079 additions and 71659 deletions
+11 -73
View File
@@ -15,6 +15,8 @@
* guard combat.
*/
struct ailist *tmp = g_GlobalAilists;
/**
* @ailist GAILIST_IDLE
*/
@@ -2778,7 +2780,7 @@ u8 func0007_alerted[] = {
label(LABEL_TARGETGONE)
set_chr_hiddenflag(CHR_SELF, CHRHFLAG_00002000)
stop_chr
if_chr_deadish(CHR_SELF, /*goto*/ 0x16)
if_chr_deadish(CHR_SELF, /*goto*/ 0x0a)
if_can_see_target(/*goto*/ 0x13)
set_alertness(0)
set_self_flag_bankx(CHRFLAG1_SEARCHSAMEROOM, BANK_1)
@@ -3021,62 +3023,47 @@ u8 func000d_init_combat[] = {
* @ailist GAILIST_COMBAT_WITH_TARGET
*/
u8 func000c_combat_with_target_chr[] = {
label(0xbb)
if_chr_is_skedar(CHR_SELF, /*goto*/ 0x16)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x16)
label(0x13)
#endif
if_target_is_player(/*goto*/ 0x13)
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_WAR, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_DEEPSEA, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_DEFENSE, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_WAR, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_ESCAPE, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_ATTACKSHIP, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_CRASHSITE, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
// Solo mode, or co-op/counter-op on any other stage
@@ -3119,13 +3106,10 @@ u8 func000c_combat_with_target_chr[] = {
label(0x13)
if_num_times_shot_lt(1, /*goto*/ 0xb2)
if_just_injured(CHR_SELF, /*goto*/ 0x16)
#if VERSION >= VERSION_NTSC_1_0
if_has_gun(CHR_SELF, /*goto*/ 0xb2)
set_self_flag_bankx(CHRFLAG1_HANDCOMBATONLY, BANK_1)
#endif
goto_next(0xb2)
// Injured
label(0x16)
restart_timer
@@ -3140,9 +3124,7 @@ u8 func000c_combat_with_target_chr[] = {
label(0x16)
if_chr_stopped(/*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_timer_gt(180, /*goto*/ 0x13)
#endif
endloop(0x1d)
label(0x13)
@@ -3179,59 +3161,43 @@ u8 func000c_combat_with_target_chr[] = {
label(0xb3)
if_chr_is_skedar(CHR_SELF, /*goto*/ 0x16)
#if VERSION >= VERSION_NTSC_1_0
label(0x13)
#endif
if_target_is_player(/*goto*/ 0x13)
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_WAR, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_DEEPSEA, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_DEFENSE, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_WAR, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_ESCAPE, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_ATTACKSHIP, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
if_stage_is_not(STAGE_CRASHSITE, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_num_human_players_lt(2, /*goto*/ 0x13)
#endif
goto_next(0x16)
label(0x13)
@@ -3306,6 +3272,9 @@ u8 func000c_combat_with_target_chr[] = {
if_chr_in_view(/*goto*/ 0xbb)
goto_first(0xb4)
label(0xbb)
goto_first(0xbb)
label(0xb5)
restart_timer
try_run_to_target(/*goto*/ 0xbc)
@@ -3316,14 +3285,10 @@ u8 func000c_combat_with_target_chr[] = {
goto_next(0xc0)
label(0x13)
#if VERSION >= VERSION_NTSC_1_0
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_CLOAKED, /*goto*/ 0x13)
#endif
if_can_see_attack_target(/*goto*/ 0xbf)
#if VERSION >= VERSION_NTSC_1_0
label(0x13)
#endif
if_timer_gt(120, /*goto*/ 0xc0)
endloop(0xbc)
@@ -3438,7 +3403,6 @@ u8 func000c_combat_with_target_chr[] = {
say_quip(CHR_BOND, QUIP_ATTACK3, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK4, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
#if VERSION >= VERSION_NTSC_1_0
beginloop(0xe2)
if_chr_deadish(CHR_TARGET, /*goto*/ 0xc1)
if_chrpresets_target_is_different(/*goto*/ 0x16)
@@ -3447,15 +3411,6 @@ u8 func000c_combat_with_target_chr[] = {
label(0x16)
if_chr_stopped(/*goto*/ 0xc1)
endloop(0xe2)
#else
if_chr_deadish(CHR_TARGET, /*goto*/ 0xc1)
if_chrpresets_target_is_different(/*goto*/ 0xe2)
goto_next(0xc1)
beginloop(0xe2)
if_chr_stopped(/*goto*/ 0xc1)
endloop(0xe2)
#endif
label(0x13)
restart_timer
@@ -3538,39 +3493,25 @@ u8 func000c_combat_with_target_chr[] = {
goto_next(0xc5)
label(0x13)
#if VERSION >= VERSION_NTSC_1_0
if_enemy_distance_lt_and_los(400, /*goto*/ 0x15)
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_CLOAKED, /*goto*/ 0x13)
#else
if_enemy_distance_lt_and_los(400, /*goto*/ 0x13)
#endif
if_can_see_attack_target(/*goto*/ 0xca)
#if VERSION >= VERSION_NTSC_1_0
label(0x13)
#endif
if_timer_gt(200, /*goto*/ 0x16)
endloop(0xc9)
label(0x16)
#if VERSION >= VERSION_NTSC_1_0
#endif
goto_first(0xb3)
#if VERSION >= VERSION_NTSC_1_0
label(0x15)
#else
label(0x13)
#endif
goto_first(0xb5)
label(0xa3)
goto_first(0xc1)
label(0xca)
#if VERSION >= VERSION_NTSC_1_0
restart_timer
#endif
if_chr_is_skedar(CHR_SELF, /*goto*/ 0x16)
goto_next(0x17)
@@ -3579,9 +3520,7 @@ u8 func000c_combat_with_target_chr[] = {
label(0x17)
try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0xcb)
#if VERSION >= VERSION_NTSC_1_0
goto_next(0x16)
#endif
label(0xcb)
say_quip(CHR_BOND, QUIP_ATTACK3, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00)
@@ -3617,9 +3556,6 @@ u8 func000c_combat_with_target_chr[] = {
label(0x13)
if_self_flag_bankx_eq(CHRFLAG0_NOHEAR, TRUE, BANK_0, /*goto*/ 0x13)
#if VERSION < VERSION_NTSC_1_0
set_target_to_enemy_on_same_floor(/*goto*/ 0x16)
#endif
label(0x13)
goto_next(0xcf)
@@ -3670,12 +3606,10 @@ u8 func000c_combat_with_target_chr[] = {
label(0xcf)
if_self_flag_bankx_eq(CHRFLAG0_CAMP, FALSE, BANK_0, /*goto*/ 0x13)
#if VERSION >= VERSION_NTSC_1_0
if_target_is_player(/*goto*/ 0x16)
goto_next(0x13)
label(0x16)
#endif
return
label(0x13)
@@ -4720,6 +4654,7 @@ u8 func001d_search_for_player[] = {
* @ailist GAILIST_RELATED_TO_SPAWNING
*/
u8 func001f_related_to_spawning[] = {
label(0x23)
if_chr_deadish(CHR_SELF, /*goto*/ 0x13)
goto_next(0x16)
@@ -4775,6 +4710,9 @@ u8 func001f_related_to_spawning[] = {
label(0x16)
goto_first(0x1a)
label(0x23)
goto_first(0x23)
label(0x1e)
say_quip(CHR_BOND, QUIP_SEEPLAYER, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
+46
View File
@@ -0,0 +1,46 @@
//
// Defection
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_0034[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+38
View File
@@ -0,0 +1,38 @@
//
// Stage ID 0x18
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+153
View File
@@ -0,0 +1,153 @@
//
// 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_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x00bc, 0x00bb, 0x00ba, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000)
weapon(0x0200, MODEL_ROOFGUN, PAD_AREC_00BD, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00C7, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00C8, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0200, 0x0000, PAD_AREC_00BE, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00C9, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CA, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0200, 0x0000, PAD_AREC_00BF, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CB, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CC, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0133, 0x0000, PAD_AREC_00C0, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CD, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CE, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0133, 0x0000, PAD_AREC_00C1, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00CF, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D0, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0133, 0x0000, PAD_AREC_00C2, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D1, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D2, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_AREC_00C3, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D3, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D4, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_AREC_00C4, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D5, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D6, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_AREC_00C5, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D7, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D8, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_AREC_00C6, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00D9, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_AREC_00DA, OBJFLAG_00000001, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00DB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00DC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00DD, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00DE, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00DF, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E0, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E1, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E2, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E3, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E4, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E5, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E6, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E8, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00E9, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00EA, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00EB, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00EC, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00ED, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_AREC_00EE, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | 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(0x0066)
hill(0x008d)
hill(0x0071)
hill(0x007c)
hill(0x005c)
case(0, 0x009a)
case_respawn(0, 0x0094)
case_respawn(0, 0x0096)
case_respawn(0, 0x0097)
case_respawn(0, 0x0099)
case_respawn(0, 0x0098)
case_respawn(0, 0x0095)
case(1, 0x00a1)
case_respawn(1, 0x009b)
case_respawn(1, 0x009c)
case_respawn(1, 0x009d)
case_respawn(1, 0x009e)
case_respawn(1, 0x009f)
case_respawn(1, 0x00a0)
case(2, 0x00a8)
case_respawn(2, 0x00a2)
case_respawn(2, 0x00a3)
case_respawn(2, 0x00a4)
case_respawn(2, 0x00a5)
case_respawn(2, 0x00a6)
case_respawn(2, 0x00a7)
case(3, 0x00af)
case_respawn(3, 0x00a9)
case_respawn(3, 0x00aa)
case_respawn(3, 0x00ab)
case_respawn(3, 0x00ac)
case_respawn(3, 0x00ad)
case_respawn(3, 0x00ae)
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 },
};
+42
View File
@@ -0,0 +1,42 @@
//
// Extraction
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+46
View File
@@ -0,0 +1,46 @@
//
// Stage ID 0x2e
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_0034[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Duel
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+46
View File
@@ -0,0 +1,46 @@
//
// Crash Site
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_0034[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+38
View File
@@ -0,0 +1,38 @@
//
// Stage ID 0x28
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+38
View File
@@ -0,0 +1,38 @@
//
// Air Base
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+145
View File
@@ -0,0 +1,145 @@
//
// 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_00000001, 0, 0, 240)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00EC, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00ED, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRAD_00E3, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00EE, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00EF, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRAD_00E4, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F0, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F1, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRAD_00E5, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F2, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F3, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRAD_00E6, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F4, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F5, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRAD_00E7, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F6, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F7, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRAD_00E8, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F8, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00F9, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRAD_00E9, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FA, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FB, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRAD_00EA, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FC, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FD, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRAD_00EB, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FE, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_CRAD_00FF, OBJFLAG_00000001, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_CRAD_0100, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, OBJFLAG3_PUSHABLE, 1000)
tag(0x01, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_CRAD_0104, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 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(0x0019)
hill(0x009e)
hill(0x0007)
hill(0x001b)
hill(0x001f)
case(0, 0x00b7)
case_respawn(0, 0x00b1)
case_respawn(0, 0x00b2)
case_respawn(0, 0x00b3)
case_respawn(0, 0x00b4)
case_respawn(0, 0x00b5)
case_respawn(0, 0x00b6)
case(1, 0x00be)
case_respawn(1, 0x00b8)
case_respawn(1, 0x00b9)
case_respawn(1, 0x00ba)
case_respawn(1, 0x00bb)
case_respawn(1, 0x00bc)
case_respawn(1, 0x00bd)
case(2, 0x00c5)
case_respawn(2, 0x00bf)
case_respawn(2, 0x00c0)
case_respawn(2, 0x00c1)
case_respawn(2, 0x00c2)
case_respawn(2, 0x00c3)
case_respawn(2, 0x00c4)
case(3, 0x00cc)
case_respawn(3, 0x00c6)
case_respawn(3, 0x00c7)
case_respawn(3, 0x00c8)
case_respawn(3, 0x00c9)
case_respawn(3, 0x00ca)
case_respawn(3, 0x00cb)
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 },
};
+140
View File
@@ -0,0 +1,140 @@
//
// G5 Building (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_CRYP_00B2, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00BC, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00BD, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRYP_00B3, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00BE, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00BF, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRYP_00B4, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00C0, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00C1, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRYP_00B5, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00C2, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00C3, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRYP_00B6, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00C4, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00C5, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRYP_00B7, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00C6, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00C7, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRYP_00B8, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00C8, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00C9, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRYP_00B9, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00CA, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00CB, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRYP_00BA, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00CC, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00CD, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_CRYP_00BB, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00CE, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_CRYP_00CF, OBJFLAG_00000001, 0, 0, 1000)
endprops
};
s32 intro[] = {
spawn(PAD_CRYP_009D)
spawn(PAD_CRYP_009E)
spawn(PAD_CRYP_009F)
spawn(PAD_CRYP_00A0)
spawn(PAD_CRYP_00A1)
spawn(PAD_CRYP_00A2)
spawn(PAD_CRYP_00A3)
spawn(PAD_CRYP_00A4)
spawn(PAD_CRYP_00A5)
spawn(PAD_CRYP_00A6)
spawn(PAD_CRYP_00A7)
spawn(PAD_CRYP_00A8)
spawn(PAD_CRYP_00A9)
spawn(PAD_CRYP_00AA)
spawn(PAD_CRYP_00AB)
spawn(PAD_CRYP_00AC)
spawn(PAD_CRYP_00AD)
spawn(PAD_CRYP_00AE)
spawn(PAD_CRYP_00AF)
spawn(PAD_CRYP_00B0)
spawn(PAD_CRYP_00B1)
case(0, 0x0087)
case_respawn(0, 0x0081)
case_respawn(0, 0x0082)
case_respawn(0, 0x0083)
case_respawn(0, 0x0084)
case_respawn(0, 0x0085)
case_respawn(0, 0x0086)
case(1, 0x0088)
case_respawn(1, 0x0089)
case_respawn(1, 0x008a)
case_respawn(1, 0x008b)
case_respawn(1, 0x008c)
case_respawn(1, 0x008d)
case_respawn(1, 0x008e)
case(2, 0x0095)
case_respawn(2, 0x008f)
case_respawn(2, 0x0090)
case_respawn(2, 0x0091)
case_respawn(2, 0x0092)
case_respawn(2, 0x0093)
case_respawn(2, 0x0094)
case(3, 0x009c)
case_respawn(3, 0x0096)
case_respawn(3, 0x0097)
case_respawn(3, 0x0098)
case_respawn(3, 0x0099)
case_respawn(3, 0x009a)
case_respawn(3, 0x009b)
hill(0x0033)
hill(0x004d)
hill(0x0056)
hill(0x001a)
hill(0x0066)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1001_13d4[] = {
set_wind_speed(11)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1000_13e0[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_13e0, 0x1000 },
{ func1001_13d4, 0x1001 },
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// Pelagic II
//
#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,
};
char *text_stagename = "B Y E L O M O R Y E D A M\n";
char *text_briefing1 = "mi6 has confirmed the existence of a secret chemical warfare facility at the arkhangelsk dam, ussr. its heavily guarded location and workings are a cause for major concern. nerve gas produced there has been turning up in the hands of hostile regimes around the world and deals with international terrorists have been rumoured. this facility should be destroyed without prejudice.\n";
char *text_briefing2 = "the area around the dam is well defended against a full scale military attack but they won't be expecting a lone agent. i've looked at the recon reports and decided that the easiest way to gain entrance to the weapons factory will be to bungee jump down the face of the dam. safe and simple. just throw yourself off the top and remember to look before you leap old chap.\n";
char *text_briefing3 = "information concerning shipping and contacts is stored on a computer system in a secret ops room within the dam.with this covert modem connected to their satellite link we can intercept this data when a backup is carried out.\n";
char *text_briefing4 = "hardly a lover's leap, james. be careful though, i hate to think of you falling for anyone else.\n";
char *text_objective1 = "neutralize all alarms\n";
char *text_objective2 = "install covert modem\n";
char *text_objective3 = "intercept data backup\n";
char *text_objective4 = "bungee jump from platform\n";
char *text_objective5 = "Byelomorye Dam, Archangel, USSR\n";
u32 props[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+38
View File
@@ -0,0 +1,38 @@
//
// G5 Building
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+38
View File
@@ -0,0 +1,38 @@
//
// Stage ID 0x1a
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+38
View File
@@ -0,0 +1,38 @@
//
// CI Training
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// Investigation
//
#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[] = {
endprops
};
s32 intro[] = {
intro_weapon(WEAPON_UNARMED, -1)
outfit(OUTFIT_DEFAULT)
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_004c[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// Villa
//
#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[] = {
endprops
};
s32 intro[] = {
intro_weapon(WEAPON_UNARMED, -1)
outfit(OUTFIT_DEFAULT)
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_004c[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+46
View File
@@ -0,0 +1,46 @@
//
// Defense
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_0034[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+139
View File
@@ -0,0 +1,139 @@
//
// Temple (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_JUN_0093, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_009D, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_009E, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_JUN_0094, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_009F, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00A0, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_JUN_0095, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00A1, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00A2, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_JUN_0096, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00A3, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00A4, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_JUN_0097, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00A5, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00A6, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_JUN_0098, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00A7, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00A8, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_JUN_0099, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00AA, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00A9, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_JUN_009A, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00AB, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00AC, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_JUN_009B, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00AD, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00AE, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_JUN_009C, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00AF, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_JUN_00B0, OBJFLAG_00000001, 0, 0, 1000)
door(0x0100, MODEL_TDOOR, PAD_JUN_008D, OBJFLAG_DEACTIVATED, OBJFLAG2_80000000, 0, 1000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00001000)
door(0x0100, MODEL_TDOOR, PAD_JUN_008E, OBJFLAG_DEACTIVATED, OBJFLAG2_80000000, 0, 1000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00001000)
door(0x0100, MODEL_TDOOR, PAD_JUN_008F, OBJFLAG_DEACTIVATED, OBJFLAG2_80000000, 0, 1000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00001000)
door(0x0100, MODEL_TDOOR, PAD_JUN_0090, OBJFLAG_DEACTIVATED, OBJFLAG2_80000000, 0, 1000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00001000)
door(0x0100, MODEL_TDOOR, PAD_JUN_0091, OBJFLAG_DEACTIVATED, OBJFLAG2_80000000, 0, 1000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00001000)
door(0x0100, MODEL_TDOOR, PAD_JUN_0092, OBJFLAG_DEACTIVATED, OBJFLAG2_80000000, 0, 1000, 0x0000f333, 0x0000551e, 0x00002aaa, 0x00002aaa, 0x000000da, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00001000)
endprops
};
s32 intro[] = {
spawn(PAD_JUN_001C)
spawn(PAD_JUN_001D)
spawn(PAD_JUN_001E)
spawn(PAD_JUN_001F)
spawn(PAD_JUN_0020)
spawn(PAD_JUN_0021)
spawn(PAD_JUN_0022)
spawn(PAD_JUN_0023)
spawn(PAD_JUN_0024)
spawn(PAD_JUN_0025)
spawn(PAD_JUN_0026)
spawn(PAD_JUN_0027)
case(0, 0x0006)
case_respawn(0, 0x0000)
case_respawn(0, 0x0001)
case_respawn(0, 0x0002)
case_respawn(0, 0x0003)
case_respawn(0, 0x0004)
case_respawn(0, 0x0005)
case(1, 0x000d)
case_respawn(1, 0x0007)
case_respawn(1, 0x0008)
case_respawn(1, 0x0009)
case_respawn(1, 0x000a)
case_respawn(1, 0x000b)
case_respawn(1, 0x000c)
case(2, 0x0014)
case_respawn(2, 0x000e)
case_respawn(2, 0x000f)
case_respawn(2, 0x0010)
case_respawn(2, 0x0011)
case_respawn(2, 0x0012)
case_respawn(2, 0x0013)
case(3, 0x0015)
case_respawn(3, 0x0016)
case_respawn(3, 0x0017)
case_respawn(3, 0x0018)
case_respawn(3, 0x0019)
case_respawn(3, 0x001a)
case_respawn(3, 0x001b)
hill(0x0072)
hill(0x005a)
hill(0x0080)
hill(0x007a)
outfit(OUTFIT_DEFAULT)
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 unregistered_func1[] = {
endlist
};
u8 func1000_1898[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_1898, 0x1000 },
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x50
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// Attack Ship
//
#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[] = {
endprops
};
s32 intro[] = {
intro_weapon(WEAPON_UNARMED, -1)
outfit(OUTFIT_DEFAULT)
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_004c[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+47
View File
@@ -0,0 +1,47 @@
//
// Stage ID 0x36
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_003c[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+46
View File
@@ -0,0 +1,46 @@
//
// Rescue
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_0034[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+46
View File
@@ -0,0 +1,46 @@
//
// Infiltration
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_0034[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+171
View File
@@ -0,0 +1,171 @@
//
// Base (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_MP1_002C, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0036, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0037, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP1_002D, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0038, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0039, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP1_002E, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_003A, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_003B, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP1_002F, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_003C, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_003D, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP1_0030, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_003E, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_003F, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP1_0031, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0040, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0041, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP1_0032, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0042, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0043, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP1_0033, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0044, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0045, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP1_0034, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0046, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0047, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP1_0035, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0048, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP1_0049, OBJFLAG_00000001, 0, 0, 1000)
tag(0x01, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP1_004C, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x004c, 0x004d, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00320000, 0x00000000)
tag(0x02, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP1_004B, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x004b, 0x004a, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001555, 0x00320000, 0x00000000)
door(0x0100, MODEL_DD_LABDOOR, PAD_MP1_004E, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
door(0x0100, MODEL_DD_LABDOOR, PAD_MP1_004F, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
door(0x0100, MODEL_DD_LABDOOR, PAD_MP1_0051, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
door(0x0100, MODEL_DD_LABDOOR, PAD_MP1_0050, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
door(0x0100, MODEL_DD_LABDOOR, PAD_MP1_0052, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f851, 0x0000f333, 0x00035555, 0x00035555, 0x00000666, 0, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000100)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0053, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0054, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0055, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0056, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0057, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0058, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0059, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_005A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_005B, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_005C, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_005D, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_005E, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_005F, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0060, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0061, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0062, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0063, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0064, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0065, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0066, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0067, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0068, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_0069, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_MP1_006A, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
endprops
};
s32 intro[] = {
spawn(PAD_MP1_001C)
spawn(PAD_MP1_001D)
spawn(PAD_MP1_001E)
spawn(PAD_MP1_001F)
spawn(PAD_MP1_0020)
spawn(PAD_MP1_0021)
spawn(PAD_MP1_0022)
spawn(PAD_MP1_0023)
spawn(PAD_MP1_0024)
spawn(PAD_MP1_0025)
spawn(PAD_MP1_0026)
spawn(PAD_MP1_0027)
spawn(PAD_MP1_0028)
spawn(PAD_MP1_0029)
spawn(PAD_MP1_002A)
spawn(PAD_MP1_002B)
case(0, 0x0006)
case_respawn(0, 0x0000)
case_respawn(0, 0x0001)
case_respawn(0, 0x0002)
case_respawn(0, 0x0003)
case_respawn(0, 0x0004)
case_respawn(0, 0x0005)
case(1, 0x000d)
case_respawn(1, 0x0007)
case_respawn(1, 0x0008)
case_respawn(1, 0x0009)
case_respawn(1, 0x000a)
case_respawn(1, 0x000b)
case_respawn(1, 0x000c)
case(2, 0x0014)
case_respawn(2, 0x000e)
case_respawn(2, 0x000f)
case_respawn(2, 0x0010)
case_respawn(2, 0x0011)
case_respawn(2, 0x0012)
case_respawn(2, 0x0013)
case(3, 0x001b)
case_respawn(3, 0x0015)
case_respawn(3, 0x0016)
case_respawn(3, 0x0017)
case_respawn(3, 0x0018)
case_respawn(3, 0x0019)
case_respawn(3, 0x001a)
hill(0x00db)
hill(0x00f0)
hill(0x00aa)
hill(0x00b7)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1001_start_lifts[] = {
activate_lift(1, 0x01)
activate_lift(2, 0x02)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1000_21d4[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_21d4, 0x1000 },
{ func1001_start_lifts, 0x1001 },
{ NULL, 0 },
};
+144
View File
@@ -0,0 +1,144 @@
//
// Sewers (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_MP10_0099, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00A3, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00A4, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP10_009A, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00A5, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00A6, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP10_009B, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00A7, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00A8, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP10_009C, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00A9, OBJFLAG_00000008, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00AA, OBJFLAG_00000008, 0, 0, 1000)
stdobject(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B7, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B8, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B9, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP10_009D, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00AB, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00AC, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP10_009E, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00AD, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00AE, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP10_009F, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00AF, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B0, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP10_00A0, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B1, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B2, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP10_00A1, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B3, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B4, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP10_00A2, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B5, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP10_00B6, OBJFLAG_00000001, 0, 0, 1000)
tag(0x00, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP10_006A, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x006a, 0x006b, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000)
tag(0x01, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP10_006C, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x006c, 0x006d, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000)
tag(0x02, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP10_006E, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x006e, 0x006f, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c71, 0x0074aaaa, 0x00000000)
endprops
};
s32 intro[] = {
spawn(PAD_MP10_008C)
spawn(PAD_MP10_008D)
spawn(PAD_MP10_008E)
spawn(PAD_MP10_008F)
spawn(PAD_MP10_0090)
spawn(PAD_MP10_0091)
spawn(PAD_MP10_0092)
spawn(PAD_MP10_0093)
spawn(PAD_MP10_0094)
spawn(PAD_MP10_0095)
spawn(PAD_MP10_0096)
spawn(PAD_MP10_0097)
spawn(PAD_MP10_0098)
case(0, 0x0070)
case_respawn(0, 0x0071)
case_respawn(0, 0x0072)
case_respawn(0, 0x0073)
case_respawn(0, 0x0074)
case_respawn(0, 0x0075)
case_respawn(0, 0x0076)
case(1, 0x0077)
case_respawn(1, 0x0078)
case_respawn(1, 0x0079)
case_respawn(1, 0x007a)
case_respawn(1, 0x007b)
case_respawn(1, 0x007c)
case_respawn(1, 0x007d)
case(2, 0x007e)
case_respawn(2, 0x007f)
case_respawn(2, 0x0080)
case_respawn(2, 0x0081)
case_respawn(2, 0x0082)
case_respawn(2, 0x0083)
case_respawn(2, 0x0084)
case(3, 0x008b)
case_respawn(3, 0x0085)
case_respawn(3, 0x0086)
case_respawn(3, 0x0087)
case_respawn(3, 0x0088)
case_respawn(3, 0x0089)
case_respawn(3, 0x008a)
hill(0x005f)
hill(0x002d)
hill(0x003a)
hill(0x002a)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1001_start_lifts[] = {
activate_lift(1, 0x00)
activate_lift(2, 0x01)
activate_lift(3, 0x02)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1000_1680[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_1680, 0x1000 },
{ func1001_start_lifts, 0x1001 },
{ NULL, 0 },
};
+159
View File
@@ -0,0 +1,159 @@
//
// Felicity (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_MP11_0028, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0032, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0033, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP11_0029, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0034, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0035, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP11_002A, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0036, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0037, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP11_002B, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0038, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0039, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP11_002C, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_003A, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_003B, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP11_002D, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_003C, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_003D, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP11_002E, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_003E, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_003F, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP11_002F, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0040, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0041, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP11_0030, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0043, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0042, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP11_0031, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0044, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP11_0045, OBJFLAG_00000001, 0, 0, 1000)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0046, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0047, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0048, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0049, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_004A, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_004B, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_004C, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000f333, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000800)
#if VERSION >= VERSION_NTSC_1_0
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP11_0062, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x012c0258)
#else
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP11_0062, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE, 0, 1000, 0x012c0258)
#endif
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP11_0063, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x012c0258)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP11_0064, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x012c0258)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP11_0065, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x012c0258)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP11_0066, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x012c0258)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP11_0067, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x012c0258)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP11_0068, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x012c0258)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP11_0069, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_INVINCIBLE | OBJFLAG_AISEETHROUGH, OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x012c0258)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_004D, OBJFLAG_DEACTIVATED | OBJFLAG_80000000, 0, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_004E, OBJFLAG_DEACTIVATED | OBJFLAG_80000000, 0, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_004F, OBJFLAG_DEACTIVATED | OBJFLAG_80000000, OBJFLAG2_INTERACTCHECKLOS, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000001, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0050, OBJFLAG_DEACTIVATED | OBJFLAG_20000000 | OBJFLAG_80000000, OBJFLAG2_INTERACTCHECKLOS, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0051, OBJFLAG_DEACTIVATED | OBJFLAG_80000000, 0, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000001, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0052, OBJFLAG_DEACTIVATED | OBJFLAG_20000000 | OBJFLAG_80000000, 0, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0053, OBJFLAG_DEACTIVATED | OBJFLAG_80000000, 0, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000001, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0054, OBJFLAG_DEACTIVATED | OBJFLAG_20000000 | OBJFLAG_80000000, 0, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0055, OBJFLAG_DEACTIVATED | OBJFLAG_80000000, OBJFLAG2_INTERACTCHECKLOS, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000001, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0056, OBJFLAG_DEACTIVATED | OBJFLAG_20000000 | OBJFLAG_80000000, OBJFLAG2_INTERACTCHECKLOS, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0058, OBJFLAG_DEACTIVATED | OBJFLAG_20000000 | OBJFLAG_80000000, 0, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000800)
door(0x0100, MODEL_DD_DR_NONREF, PAD_MP11_0057, OBJFLAG_DEACTIVATED | OBJFLAG_20000000 | OBJFLAG_80000000, 0, 0, 1000, 0x00640000, 0x03e80000, 0x01f40000, 0x01f40000, 0x00030000, 0, DOORTYPE_SWINGING, 0x00000000, 0x000005dc, 0x00000000, 0x00000000, 0x00000800)
endprops
};
s32 intro[] = {
spawn(PAD_MP11_001C)
spawn(PAD_MP11_001D)
spawn(PAD_MP11_001E)
spawn(PAD_MP11_001F)
spawn(PAD_MP11_0020)
spawn(PAD_MP11_0021)
spawn(PAD_MP11_0022)
spawn(PAD_MP11_0023)
spawn(PAD_MP11_0024)
spawn(PAD_MP11_0025)
spawn(PAD_MP11_0026)
spawn(PAD_MP11_0027)
case(0, 0x0006)
case_respawn(0, 0x0000)
case_respawn(0, 0x0001)
case_respawn(0, 0x0002)
case_respawn(0, 0x0003)
case_respawn(0, 0x0004)
case_respawn(0, 0x0005)
case(1, 0x000d)
case_respawn(1, 0x0007)
case_respawn(1, 0x0008)
case_respawn(1, 0x0009)
case_respawn(1, 0x000a)
case_respawn(1, 0x000b)
case_respawn(1, 0x000c)
case(2, 0x0014)
case_respawn(2, 0x000e)
case_respawn(2, 0x000f)
case_respawn(2, 0x0010)
case_respawn(2, 0x0011)
case_respawn(2, 0x0012)
case_respawn(2, 0x0013)
case(3, 0x001b)
case_respawn(3, 0x0015)
case_respawn(3, 0x0016)
case_respawn(3, 0x0017)
case_respawn(3, 0x0018)
case_respawn(3, 0x0019)
case_respawn(3, 0x001a)
hill(0x0091)
hill(0x008b)
hill(0x0071)
hill(0x009f)
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1000_26fc[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_26fc, 0x1000 },
{ NULL, 0 },
};
+213
View File
@@ -0,0 +1,213 @@
//
// Fortress (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_MP12_01A7, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01C0, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01C1, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01A8, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01C2, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01C3, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01A9, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01C4, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01C5, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01AA, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01C6, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01C7, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01AB, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01C8, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01C9, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01AC, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01CA, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01CB, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01AD, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01CC, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01CD, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01AE, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01CE, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01CF, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01AF, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01D0, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01D1, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01B0, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01D2, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01D3, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01B1, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01D4, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01D5, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01B2, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01D6, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01D7, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01B3, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01D8, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01D9, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01B4, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01DA, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01DB, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01B5, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01DC, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01DD, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01B6, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01DE, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01DF, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01B7, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01E0, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01E1, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01B8, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01E3, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01E2, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01B9, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01E4, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01E5, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01BA, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01E6, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01E7, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01BB, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01E8, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01E9, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01BC, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01EA, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01EB, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01BD, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01EC, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01ED, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01BE, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01EE, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01EF, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP12_01BF, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01F0, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00b3, MODEL_MULTI_AMMO_CRATE, PAD_MP12_01F1, OBJFLAG_00000001, 0, 0, 1000)
tag(0x01, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F2, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x01f2, 0x01f3, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000)
tag(0x02, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F4, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x01f4, 0x01f5, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000)
tag(0x03, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F6, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x01f6, 0x01f7, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000)
tag(0x04, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01F8, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x01f8, 0x01f9, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000)
tag(0x05, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01FA, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x01fa, 0x01fb, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000)
tag(0x06, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01FC, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x01fc, 0x01fd, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000)
tag(0x07, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_01FE, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x01fe, 0x01ff, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000)
tag(0x08, 1)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP12_0200, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE | OBJFLAG_80000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x0200, 0x0201, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000011c7, 0x00040000, 0x00000000)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_019E, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_019F, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_01A0, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_01A1, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_01A2, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_01A3, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_019B, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_019C, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_019D, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_01A4, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_01A5, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000a00)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP12_01A6, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00280000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000a00)
endprops
};
s32 intro[] = {
spawn(PAD_MP12_018F)
spawn(PAD_MP12_0190)
spawn(PAD_MP12_0191)
spawn(PAD_MP12_0192)
spawn(PAD_MP12_0193)
spawn(PAD_MP12_0194)
spawn(PAD_MP12_0195)
spawn(PAD_MP12_0196)
spawn(PAD_MP12_0197)
spawn(PAD_MP12_0198)
spawn(PAD_MP12_0199)
spawn(PAD_MP12_019A)
case(0, 0x0188)
case_respawn(0, 0x0189)
case_respawn(0, 0x018a)
case_respawn(0, 0x018b)
case_respawn(0, 0x018c)
case_respawn(0, 0x018d)
case_respawn(0, 0x018e)
case(1, 0x0179)
case_respawn(1, 0x0178)
case_respawn(1, 0x0177)
case_respawn(1, 0x0176)
case_respawn(1, 0x0175)
case_respawn(1, 0x0174)
case_respawn(1, 0x0173)
case(2, 0x017a)
case_respawn(2, 0x017b)
case_respawn(2, 0x017c)
case_respawn(2, 0x017d)
case_respawn(2, 0x017e)
case_respawn(2, 0x017f)
case_respawn(2, 0x0180)
case(3, 0x0187)
case_respawn(3, 0x0186)
case_respawn(3, 0x0185)
case_respawn(3, 0x0184)
case_respawn(3, 0x0183)
case_respawn(3, 0x0182)
case_respawn(3, 0x0181)
hill(0x0009)
hill(0x0029)
hill(0x00f8)
hill(0x00b4)
hill(0x009a)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1001_start_lifts[] = {
activate_lift(1, 0x01)
activate_lift(2, 0x02)
activate_lift(3, 0x03)
activate_lift(4, 0x04)
activate_lift(5, 0x05)
activate_lift(6, 0x06)
activate_lift(7, 0x07)
activate_lift(8, 0x08)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1000_3cc8[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_3cc8, 0x1000 },
{ func1001_start_lifts, 0x1001 },
{ NULL, 0 },
};
+124
View File
@@ -0,0 +1,124 @@
//
// Villa (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_MP13_00BD, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00C7, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00C8, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP13_00BE, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00C9, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00CA, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP13_00BF, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00CB, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00CC, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP13_00C0, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00CD, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00CE, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP13_00C1, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00CF, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00D0, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP13_00C2, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00D1, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00D2, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP13_00C3, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00D3, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00D4, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP13_00C4, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00D5, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00D6, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP13_00C5, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00D7, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00D8, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP13_00C6, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00D9, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP13_00DA, OBJFLAG_00000001, 0, 0, 1000)
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
spawn(PAD_MP13_001C)
spawn(PAD_MP13_001D)
spawn(PAD_MP13_001E)
spawn(PAD_MP13_001F)
spawn(PAD_MP13_0020)
spawn(PAD_MP13_0021)
spawn(PAD_MP13_0022)
spawn(PAD_MP13_0023)
spawn(PAD_MP13_0024)
spawn(PAD_MP13_0025)
spawn(PAD_MP13_0026)
spawn(PAD_MP13_0027)
case(0, 0x0006)
case_respawn(0, 0x0000)
case_respawn(0, 0x0001)
case_respawn(0, 0x0002)
case_respawn(0, 0x0003)
case_respawn(0, 0x0004)
case_respawn(0, 0x0005)
case(1, 0x000d)
case_respawn(1, 0x0007)
case_respawn(1, 0x0008)
case_respawn(1, 0x0009)
case_respawn(1, 0x000a)
case_respawn(1, 0x000b)
case_respawn(1, 0x000c)
case(2, 0x0013)
case_respawn(2, 0x000e)
case_respawn(2, 0x000f)
case_respawn(2, 0x0010)
case_respawn(2, 0x0011)
case_respawn(2, 0x0012)
case_respawn(2, 0x0014)
case(3, 0x001b)
case_respawn(3, 0x0015)
case_respawn(3, 0x0016)
case_respawn(3, 0x0017)
case_respawn(3, 0x0018)
case_respawn(3, 0x0019)
case_respawn(3, 0x001a)
hill(0x004c)
hill(0x008e)
hill(0x00aa)
hill(0x0043)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1000_1368[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_1368, 0x1000 },
{ NULL, 0 },
};
+47
View File
@@ -0,0 +1,47 @@
//
// Stage ID 0x46
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 unregistered_func1[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+172
View File
@@ -0,0 +1,172 @@
//
// Grid (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_MP15_00AC, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00B7, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00B8, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP15_00AD, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00B9, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00BA, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP15_00AE, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00BB, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00BC, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP15_00AF, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00BD, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00BE, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP15_00B0, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00BF, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00C0, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP15_00B1, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00C1, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00C2, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP15_00B3, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00C5, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00C6, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP15_00B4, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00C7, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00C8, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP15_00B5, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00C9, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00CA, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP15_00B6, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00CB, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP15_00CC, OBJFLAG_00000001, 0, 0, 1000)
glass(0x0100, MODEL_WINDOW, PAD_MP15_00D0, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_WINDOW, PAD_MP15_00D1, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_WINDOW, PAD_MP15_00D2, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_WINDOW, PAD_MP15_00D3, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_WINDOW, PAD_MP15_00D4, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_WINDOW, PAD_MP15_00D5, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_WINDOW, PAD_MP15_00D6, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_WINDOW, PAD_MP15_00D7, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_WINDOW, PAD_MP15_00D8, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_WINDOW, PAD_MP15_00D9, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_GLASS_FLOOR, PAD_MP15_0000, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_GLASS_FLOOR, PAD_MP15_0001, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_GLASS_FLOOR, PAD_MP15_0002, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_GLASS_FLOOR, PAD_MP15_0003, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_GLASS_FLOOR, PAD_MP15_0004, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_GLASS_FLOOR, PAD_MP15_0005, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_GLASS_FLOOR, PAD_MP15_0006, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_GLASS_FLOOR, PAD_MP15_0007, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
glass(0x0100, MODEL_GLASS_FLOOR, PAD_MP15_0008, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_AISEETHROUGH, 0, 0, 1000)
#if VERSION >= VERSION_NTSC_1_0
door(0x0100, MODEL_DOOR2A_G5, PAD_MP15_0080, 0, 0, 0, 1000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000020, 0x00000258, 0x00000000, 0x00000001, 0x00000000)
#else
door(0x0100, MODEL_DOOR2A_G5, PAD_MP15_0080, 0, 0, 0, 1000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000258, 0x00000000, 0x00000001, 0x00000300)
#endif
door(0x0100, MODEL_DOOR2A_G5, PAD_MP15_0081, 0, 0, 0, 1000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000020, 0x00000258, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_DOOR2A_G5, PAD_MP15_0082, 0, 0, 0, 1000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000300)
door(0x0100, MODEL_DOOR2A_G5, PAD_MP15_0083, 0, 0, 0, 1000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000300)
door(0x0100, MODEL_DOOR2A_G5, PAD_MP15_0084, 0, 0, 0, 1000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000300)
door(0x0100, MODEL_DOOR2A_G5, PAD_MP15_0085, 0, 0, 0, 1000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x00000258, 0x00000000, 0x00000000, 0x00000300)
tag(0x01, 1)
lift(0x0100, MODEL_MATRIX_LIFT, PAD_MP15_00CE, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x00ce, 0x00cf, -1, -1, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000)
door(0x0100, MODEL_DOOR2A_G5, PAD_MP15_007C, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00001200)
door(0x0100, MODEL_DOOR2A_G5, PAD_MP15_007D, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
door(0x0100, MODEL_DOOR2A_G5, PAD_MP15_007E, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00001200)
door(0x0100, MODEL_DOOR2A_G5, PAD_MP15_007F, OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_AISEETHROUGH, 0, 0, 1000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000000)
lift_door(-4, -5, 0)
lift_door(-4, -6, 0)
lift_door(-4, -7, 1)
lift_door(-4, -8, 1)
endprops
};
s32 intro[] = {
spawn(PAD_MP15_00A2)
spawn(PAD_MP15_00A3)
spawn(PAD_MP15_00A4)
spawn(PAD_MP15_00A5)
spawn(PAD_MP15_00A6)
spawn(PAD_MP15_00A7)
spawn(PAD_MP15_00A8)
spawn(PAD_MP15_00A9)
spawn(PAD_MP15_00AA)
spawn(PAD_MP15_00AB)
case(0, 0x0086)
case_respawn(0, 0x0087)
case_respawn(0, 0x0088)
case_respawn(0, 0x0089)
case_respawn(0, 0x008a)
case_respawn(0, 0x008b)
case_respawn(0, 0x008c)
case(1, 0x0093)
case_respawn(1, 0x008d)
case_respawn(1, 0x008e)
case_respawn(1, 0x008f)
case_respawn(1, 0x0090)
case_respawn(1, 0x0091)
case_respawn(1, 0x0092)
case(2, 0x009a)
case_respawn(2, 0x0094)
case_respawn(2, 0x0095)
case_respawn(2, 0x0096)
case_respawn(2, 0x0097)
case_respawn(2, 0x0098)
case_respawn(2, 0x0099)
case(3, 0x00a1)
case_respawn(3, 0x009b)
case_respawn(3, 0x009c)
case_respawn(3, 0x009d)
case_respawn(3, 0x009e)
case_respawn(3, 0x009f)
case_respawn(3, 0x00a0)
hill(0x0073)
hill(0x0013)
hill(0x006b)
hill(0x0060)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1001_start_lift[] = {
activate_lift(1, 0x01)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1000_2400[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_2400, 0x1000 },
{ func1001_start_lift, 0x1001 },
{ NULL, 0 },
};
+46
View File
@@ -0,0 +1,46 @@
//
// Stage ID 0x48
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 unregistered_func1[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+55
View File
@@ -0,0 +1,55 @@
//
// Stage ID 0x49
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1001_0038[] = {
set_wind_speed(130)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1000_0044[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_0044, 0x1000 },
{ func1001_0038, 0x1001 },
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// Stage ID 0x4a
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1000_0038[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_0038, 0x1000 },
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// Stage ID 0x4b
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1000_0038[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_0038, 0x1000 },
{ NULL, 0 },
};
+54
View File
@@ -0,0 +1,54 @@
//
// Stage ID 0x3a
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 unregistered_func1[] = {
endlist
};
u8 unregistered_func2[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// Stage ID 0x4c
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1000_0038[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_0038, 0x1000 },
{ NULL, 0 },
};
+162
View File
@@ -0,0 +1,162 @@
//
// 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_00000001, 0, 0, 240)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0032, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0033, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_0029, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0034, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0035, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002A, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0036, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0037, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002B, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0038, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0039, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002C, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003A, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003B, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002D, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003C, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003D, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002E, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003E, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_003F, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_002F, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0040, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0041, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_0030, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0042, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0043, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP3_0031, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0044, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP3_0045, OBJFLAG_00000001, 0, 0, 1000)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_0046, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_0047, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_0048, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_0049, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_004A, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_004B, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_004C, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | OBJFLAG_PATHBLOCKER | OBJFLAG_AISEETHROUGH | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x04b007d0)
tinted_glass(0x0100, MODEL_DD_WINDOW, PAD_MP3_004D, OBJFLAG_00000002 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000100 | OBJFLAG_00000200 | 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, 0x0006)
case_respawn(0, 0x0000)
case_respawn(0, 0x0001)
case_respawn(0, 0x0002)
case_respawn(0, 0x0003)
case_respawn(0, 0x0004)
case_respawn(0, 0x0005)
case(1, 0x000d)
case_respawn(1, 0x0007)
case_respawn(1, 0x0008)
case_respawn(1, 0x0009)
case_respawn(1, 0x000a)
case_respawn(1, 0x000b)
case_respawn(1, 0x000c)
case(2, 0x0013)
case_respawn(2, 0x000e)
case_respawn(2, 0x000f)
case_respawn(2, 0x0010)
case_respawn(2, 0x0011)
case_respawn(2, 0x0012)
case_respawn(2, 0x0014)
case(3, 0x001b)
case_respawn(3, 0x0015)
case_respawn(3, 0x0016)
case_respawn(3, 0x0017)
case_respawn(3, 0x0018)
case_respawn(3, 0x0019)
case_respawn(3, 0x001a)
hill(0x010d)
hill(0x0106)
hill(0x00e4)
hill(0x00da)
hill(0x011c)
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 },
};
+136
View File
@@ -0,0 +1,136 @@
//
// Warehouse (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_MP4_0167, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0171, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0172, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP4_0168, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0173, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0174, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP4_0169, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0175, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0176, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP4_016A, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0177, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0178, OBJFLAG_00000001, 0, 0, 1000)
stdobject(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0185, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP4_016B, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0179, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_017A, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP4_016C, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_017B, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_017C, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP4_016D, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_017D, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_017E, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP4_016E, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_017F, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0180, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP4_016F, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0181, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0182, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP4_0170, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0183, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP4_0184, OBJFLAG_00000001, 0, 0, 1000)
hover_prop(0x0100, MODEL_A51_CRATE2, PAD_MP4_0186, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_01000000 | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, OBJFLAG3_PUSHABLE, 1000, 0x02010000)
hover_prop(0x0100, MODEL_HOVERCRATE1, PAD_MP4_0187, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_01000000 | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, OBJFLAG3_PUSHABLE | OBJFLAG3_GRABBABLE, 1000, 0x02010000)
hover_prop(0x0100, MODEL_A51_CRATE2, PAD_MP4_0188, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_01000000 | OBJFLAG_DEACTIVATED | OBJFLAG_20000000, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, OBJFLAG3_PUSHABLE, 1000, 0x02010000)
endprops
};
s32 intro[] = {
spawn(PAD_MP4_015B)
spawn(PAD_MP4_015C)
spawn(PAD_MP4_015D)
spawn(PAD_MP4_015E)
spawn(PAD_MP4_015F)
spawn(PAD_MP4_0160)
spawn(PAD_MP4_0161)
spawn(PAD_MP4_0162)
spawn(PAD_MP4_0163)
spawn(PAD_MP4_0164)
spawn(PAD_MP4_0165)
spawn(PAD_MP4_0166)
case(0, 0x013f)
case_respawn(0, 0x0140)
case_respawn(0, 0x0141)
case_respawn(0, 0x0142)
case_respawn(0, 0x0143)
case_respawn(0, 0x0144)
case_respawn(0, 0x0145)
case(1, 0x014c)
case_respawn(1, 0x0146)
case_respawn(1, 0x0147)
case_respawn(1, 0x0148)
case_respawn(1, 0x0149)
case_respawn(1, 0x014a)
case_respawn(1, 0x014b)
case(2, 0x0153)
case_respawn(2, 0x014e)
case_respawn(2, 0x014f)
case_respawn(2, 0x0150)
case_respawn(2, 0x0151)
case_respawn(2, 0x0152)
case_respawn(2, 0x014d)
case(3, 0x015a)
case_respawn(3, 0x0154)
case_respawn(3, 0x0155)
case_respawn(3, 0x0156)
case_respawn(3, 0x0157)
case_respawn(3, 0x0158)
case_respawn(3, 0x0159)
hill(0x011c)
hill(0x0087)
hill(0x006a)
hill(0x00ec)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1001_1590[] = {
set_wind_speed(22)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1000_159c[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_159c, 0x1000 },
{ func1001_1590, 0x1001 },
{ NULL, 0 },
};
+145
View File
@@ -0,0 +1,145 @@
//
// Car Park (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_MP5_0116, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0120, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0121, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP5_0117, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0122, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0123, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP5_0118, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0124, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0125, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP5_0119, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0126, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0127, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP5_011A, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0128, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0129, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP5_011B, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_012A, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_012B, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP5_011C, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_012C, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_012D, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP5_011D, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_012E, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_012F, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP5_011E, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0130, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0131, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP5_011F, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0132, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x00cc, MODEL_MULTI_AMMO_CRATE, PAD_MP5_0133, OBJFLAG_00000001, 0, 0, 1000)
door(0x0100, MODEL_CH_SHUTTER1, PAD_MP5_010A, 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_MP5_010B, 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_MP5_010C, 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_MP5_010D, 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_MP5_010E, 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_MP5_010F, 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_MP5_0110, 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_MP5_0111, 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_MP5_0112, 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_MP5_0113, 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_MP5_0114, 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_MP5_0115, OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x0000fd70, 0x0000e666, 0x00003333, 0x00014000, 0x00004000, DOORFLAG_0004, DOORTYPE_VERTICAL, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000a00)
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
spawn(PAD_MP5_001C)
spawn(PAD_MP5_001D)
spawn(PAD_MP5_001E)
spawn(PAD_MP5_001F)
spawn(PAD_MP5_0020)
spawn(PAD_MP5_0021)
spawn(PAD_MP5_0022)
spawn(PAD_MP5_0023)
spawn(PAD_MP5_0024)
spawn(PAD_MP5_0025)
spawn(PAD_MP5_0026)
spawn(PAD_MP5_0027)
case(0, 0x0006)
case_respawn(0, 0x0000)
case_respawn(0, 0x0001)
case_respawn(0, 0x0002)
case_respawn(0, 0x0003)
case_respawn(0, 0x0004)
case_respawn(0, 0x0005)
case(1, 0x000d)
case_respawn(1, 0x0007)
case_respawn(1, 0x0008)
case_respawn(1, 0x0009)
case_respawn(1, 0x000a)
case_respawn(1, 0x000b)
case_respawn(1, 0x000c)
case(2, 0x0014)
case_respawn(2, 0x000e)
case_respawn(2, 0x000f)
case_respawn(2, 0x0010)
case_respawn(2, 0x0011)
case_respawn(2, 0x0012)
case_respawn(2, 0x0013)
case(3, 0x001b)
case_respawn(3, 0x0015)
case_respawn(3, 0x0016)
case_respawn(3, 0x0017)
case_respawn(3, 0x0018)
case_respawn(3, 0x0019)
case_respawn(3, 0x001a)
hill(0x00c3)
hill(0x0075)
hill(0x00fa)
hill(0x0089)
hill(0x0048)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1001_1dc0[] = {
set_wind_speed(8)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1000_1dcc[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_1dcc, 0x1000 },
{ func1001_1dc0, 0x1001 },
{ NULL, 0 },
};
+46
View File
@@ -0,0 +1,46 @@
//
// Stage ID 0x3e
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 unregistered_func1[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// Stage ID 0x3f
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1000_0038[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_0038, 0x1000 },
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// Stage ID 0x40
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1000_0038[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_0038, 0x1000 },
{ NULL, 0 },
};
+136
View File
@@ -0,0 +1,136 @@
//
// Ruins (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_MP9_0000, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_000C, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_000D, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP9_0001, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_000E, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_000F, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP9_0002, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0010, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0011, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP9_0003, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0012, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0013, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP9_0004, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0014, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0015, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP9_0005, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0016, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0017, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP9_0006, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0018, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0019, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP9_0007, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_001A, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_001B, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP9_0008, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_001C, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_001D, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_MP9_0009, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_001E, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_001F, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0020, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0021, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0022, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0100, MODEL_MULTI_AMMO_CRATE, PAD_MP9_0023, OBJFLAG_00000001, 0, 0, 1000)
door(0x0100, MODEL_SK_DOOR1, PAD_MP9_00B2, OBJFLAG_DEACTIVATED, 0, OBJFLAG3_DOOR_STICKY, 1000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000400)
door(0x0100, MODEL_SK_DOOR1, PAD_MP9_00B3, OBJFLAG_DEACTIVATED, 0, OBJFLAG3_DOOR_STICKY, 1000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000400)
door(0x0100, MODEL_SK_DOOR1, PAD_MP9_00B4, OBJFLAG_DEACTIVATED, 0, OBJFLAG3_DOOR_STICKY, 1000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000400)
door(0x0100, MODEL_SK_DOOR1, PAD_MP9_00B5, OBJFLAG_DEACTIVATED, 0, OBJFLAG3_DOOR_STICKY, 1000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000400)
door(0x0100, MODEL_SK_DOOR1, PAD_MP9_00B6, OBJFLAG_DEACTIVATED, 0, OBJFLAG3_DOOR_STICKY, 1000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000400)
door(0x0100, MODEL_SK_DOOR1, PAD_MP9_00B7, OBJFLAG_DEACTIVATED, 0, OBJFLAG3_DOOR_STICKY, 1000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000400)
door(0x0100, MODEL_SK_DOOR1, PAD_MP9_00B8, OBJFLAG_DEACTIVATED, 0, OBJFLAG3_DOOR_STICKY, 1000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0x00000001, 0x00000400)
door(0x0100, MODEL_SK_DOOR1, PAD_MP9_00B9, OBJFLAG_DEACTIVATED, 0, OBJFLAG3_DOOR_STICKY, 1000, 0x0000e666, 0x00010000, 0x00002aaa, 0x00002aaa, 0x000002c5, 0, DOORTYPE_SLIDING, 0x00000000, 0x0000012c, 0x00000000, 0xffffffff, 0x00000400)
endprops
};
s32 intro[] = {
spawn(PAD_MP9_0040)
spawn(PAD_MP9_0041)
spawn(PAD_MP9_0042)
spawn(PAD_MP9_0043)
spawn(PAD_MP9_0044)
spawn(PAD_MP9_0045)
spawn(PAD_MP9_0046)
spawn(PAD_MP9_0047)
spawn(PAD_MP9_0048)
spawn(PAD_MP9_0049)
spawn(PAD_MP9_004A)
spawn(PAD_MP9_004B)
case(0, PAD_MP9_0024)
case_respawn(0, PAD_MP9_0025)
case_respawn(0, PAD_MP9_0026)
case_respawn(0, PAD_MP9_0027)
case_respawn(0, PAD_MP9_0028)
case_respawn(0, PAD_MP9_0029)
case_respawn(0, PAD_MP9_002A)
case(1, PAD_MP9_0031)
case_respawn(1, PAD_MP9_002B)
case_respawn(1, PAD_MP9_002C)
case_respawn(1, PAD_MP9_002D)
case_respawn(1, PAD_MP9_002E)
case_respawn(1, PAD_MP9_002F)
case_respawn(1, PAD_MP9_0030)
case(2, PAD_MP9_0038)
case_respawn(2, PAD_MP9_0032)
case_respawn(2, PAD_MP9_0033)
case_respawn(2, PAD_MP9_0034)
case_respawn(2, PAD_MP9_0035)
case_respawn(2, PAD_MP9_0036)
case_respawn(2, PAD_MP9_0037)
case(3, PAD_MP9_003F)
case_respawn(3, PAD_MP9_0039)
case_respawn(3, PAD_MP9_003A)
case_respawn(3, PAD_MP9_003B)
case_respawn(3, PAD_MP9_003C)
case_respawn(3, PAD_MP9_003D)
case_respawn(3, PAD_MP9_003E)
hill(PAD_MP9_009B)
hill(PAD_MP9_00B0)
hill(PAD_MP9_0064)
hill(PAD_MP9_005F)
hill(PAD_MP9_0053)
hill(PAD_MP9_0070)
hill(PAD_MP9_009B)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1000_1cf8[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_1cf8, 0x1000 },
{ NULL, 0 },
};
+147
View File
@@ -0,0 +1,147 @@
//
// Skedar (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(0x0200, 0x0000, PAD_OAT_00CD, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00DC, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00DD, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0200, 0x0000, PAD_OAT_00CE, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00DE, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00DF, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0200, 0x0000, PAD_OAT_00CF, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00E0, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00E1, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0133, 0x0000, PAD_OAT_00D0, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00E2, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00E3, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0133, 0x0000, PAD_OAT_00D1, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00E4, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00E5, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0133, 0x0000, PAD_OAT_00D2, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00E6, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00E7, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_OAT_00D3, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00E8, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00E9, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_OAT_00D4, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00EA, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00EB, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_OAT_00D5, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00EC, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00ED, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_OAT_00D6, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00EE, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00EF, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_OAT_00D7, OBJFLAG_00000001, 0, 0, 250)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00F0, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00F1, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_OAT_00D8, OBJFLAG_00000001, 0, 0, 251)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00F2, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00F3, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_OAT_00D9, OBJFLAG_00000001, 0, 0, 252)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00F4, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00F5, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_OAT_00DA, OBJFLAG_00000001, 0, 0, 253)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00F6, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00F7, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_OAT_00DB, OBJFLAG_00000001, 0, 0, 254)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00F8, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_OAT_00F9, OBJFLAG_00000001, 0, 0, 1000)
endprops
};
s32 intro[] = {
spawn(PAD_OAT_00A5)
spawn(PAD_OAT_00A6)
spawn(PAD_OAT_00A7)
spawn(PAD_OAT_00A8)
spawn(PAD_OAT_00A9)
spawn(PAD_OAT_00AA)
spawn(PAD_OAT_00AB)
spawn(PAD_OAT_00AC)
spawn(PAD_OAT_00AD)
spawn(PAD_OAT_00AE)
spawn(PAD_OAT_00AF)
spawn(PAD_OAT_00B0)
case(0, 0x00b1)
case_respawn(0, 0x00b2)
case_respawn(0, 0x00b3)
case_respawn(0, 0x00b4)
case_respawn(0, 0x00b5)
case_respawn(0, 0x00b6)
case_respawn(0, 0x00b7)
case(1, 0x00b8)
case_respawn(1, 0x00b9)
case_respawn(1, 0x00ba)
case_respawn(1, 0x00bb)
case_respawn(1, 0x00bc)
case_respawn(1, 0x00bd)
case_respawn(1, 0x00be)
case(2, 0x00bf)
case_respawn(2, 0x00c0)
case_respawn(2, 0x00c1)
case_respawn(2, 0x00c2)
case_respawn(2, 0x00c3)
case_respawn(2, 0x00c4)
case_respawn(2, 0x00c5)
case(3, 0x00c6)
case_respawn(3, 0x00c7)
case_respawn(3, 0x00c8)
case_respawn(3, 0x00c9)
case_respawn(3, 0x00ca)
case_respawn(3, 0x00cb)
case_respawn(3, 0x00cc)
hill(0x0093)
hill(0x00d5)
hill(0x008d)
hill(0x00da)
hill(0x0076)
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 unregistered_func1[] = {
endlist
};
u8 func1000_1c08[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_1c08, 0x1000 },
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x4e
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// Deep Sea
//
#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[] = {
endprops
};
s32 intro[] = {
intro_weapon(WEAPON_UNARMED, -1)
outfit(OUTFIT_DEFAULT)
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_004c[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+63
View File
@@ -0,0 +1,63 @@
//
// Chicago
//
#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,
};
char *text_stagename = "S T . P E T E R S B U R G\n";
char *text_briefing1 = "use the stolen tank to chase the car containing natalya. you are up against a time limit.\n";
char *text_briefing2 = "\n";
char *text_briefing3 = "\n";
char *text_briefing4 = "\n";
char *text_objective1 = "\n\n\n";
char *text_objective2 = "\n\n\n";
char *text_objective3 = "\n";
u32 props[] = {
briefing(0, 0x0020)
briefing(1, 0x0024)
briefing(2, 0x0028)
briefing(3, 0x002c)
briefing(4, 0x0030)
beginobjective(0, 0x0034, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD))
endobjective
beginobjective(1, 0x0038, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD))
endobjective
beginobjective(2, 0x003c, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD))
endobjective
endprops
};
s32 intro[] = {
intro_weapon(WEAPON_PP9I, -1)
ammo(AMMOTYPE_PISTOL, 100)
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+146
View File
@@ -0,0 +1,146 @@
//
// Complex (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(0x0200, 0x0000, PAD_REF_002F, OBJFLAG_00000001, 0, 0, 240)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_0039, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_003A, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0200, 0x0000, PAD_REF_0030, OBJFLAG_00000001, 0, 0, 241)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_003B, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_003C, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0200, 0x0000, PAD_REF_0031, OBJFLAG_00000001, 0, 0, 242)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_003D, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_003E, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0133, 0x0000, PAD_REF_0032, OBJFLAG_00000001, 0, 0, 243)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_003F, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_0040, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0133, 0x0000, PAD_REF_0033, OBJFLAG_00000001, 0, 0, 244)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_0041, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_0042, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0133, 0x0000, PAD_REF_0034, OBJFLAG_00000001, 0, 0, 245)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_0043, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_0044, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_REF_0035, OBJFLAG_00000001, 0, 0, 246)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_0045, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_0046, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_REF_0036, OBJFLAG_00000001, 0, 0, 247)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_0047, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_0048, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_REF_0037, OBJFLAG_00000001, 0, 0, 248)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_0049, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_004A, OBJFLAG_00000001, 0, 0, 1000)
weapon(0x0100, 0x0000, PAD_REF_0038, OBJFLAG_00000001, 0, 0, 249)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_004B, OBJFLAG_00000001, 0, 0, 1000)
ammocratemulti(0x0099, MODEL_MULTI_AMMO_CRATE, PAD_REF_004C, OBJFLAG_00000001, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_REF_004F, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_REF_0050, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_REF_0051, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_REF_004D, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
stdobject(0x0100, MODEL_A51_CRATE2, PAD_REF_004E, OBJFLAG_00000001 | OBJFLAG_00000100 | OBJFLAG_INVINCIBLE, 0, 0, 1000)
endprops
};
s32 intro[] = {
spawn(PAD_REF_001C)
spawn(PAD_REF_001D)
spawn(PAD_REF_001E)
spawn(PAD_REF_001F)
spawn(PAD_REF_0020)
spawn(PAD_REF_0021)
spawn(PAD_REF_0022)
spawn(PAD_REF_0023)
spawn(PAD_REF_0024)
spawn(PAD_REF_0025)
spawn(PAD_REF_0026)
spawn(PAD_REF_0027)
spawn(PAD_REF_0028)
spawn(PAD_REF_0029)
spawn(PAD_REF_002A)
spawn(PAD_REF_002B)
spawn(PAD_REF_002C)
spawn(PAD_REF_002D)
spawn(PAD_REF_002E)
case(0, 0x0006)
case_respawn(0, 0x0000)
case_respawn(0, 0x0001)
case_respawn(0, 0x0002)
case_respawn(0, 0x0003)
case_respawn(0, 0x0004)
case_respawn(0, 0x0005)
case(1, 0x000d)
case_respawn(1, 0x0007)
case_respawn(1, 0x0008)
case_respawn(1, 0x0009)
case_respawn(1, 0x000a)
case_respawn(1, 0x000b)
case_respawn(1, 0x000c)
case(2, 0x0014)
case_respawn(2, 0x000e)
case_respawn(2, 0x000f)
case_respawn(2, 0x0010)
case_respawn(2, 0x0011)
case_respawn(2, 0x0012)
case_respawn(2, 0x0013)
case(3, 0x001b)
case_respawn(3, 0x0015)
case_respawn(3, 0x0016)
case_respawn(3, 0x0017)
case_respawn(3, 0x0018)
case_respawn(3, 0x0019)
case_respawn(3, 0x001a)
hill(0x0067)
hill(0x007b)
hill(0x00d5)
hill(0x0092)
hill(0x008b)
outfit(OUTFIT_DEFAULT)
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 unregistered_func1[] = {
endlist
};
u8 func1000_1598[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_1598, 0x1000 },
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// Air Force One
//
#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[] = {
endprops
};
s32 intro[] = {
intro_weapon(WEAPON_UNARMED, -1)
outfit(OUTFIT_DEFAULT)
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_004c[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+52
View File
@@ -0,0 +1,52 @@
//
// Stage ID 0x23
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 unregistered_func1[] = {
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 unregistered_func2[] = {
mp_init_simulants
rebuild_teams
rebuild_squadrons
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Maian SOS
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Retaking the Institute
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+38
View File
@@ -0,0 +1,38 @@
//
// Stage IDs 0x24 and 0x2b
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+38
View File
@@ -0,0 +1,38 @@
//
// Skedar Ruins
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct ailist ailists[] = {
{ NULL, 0 },
};
struct path paths[] = {
{ NULL, 0, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x14
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+38
View File
@@ -0,0 +1,38 @@
//
// WAR!
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+38
View File
@@ -0,0 +1,38 @@
//
// Escape
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+46
View File
@@ -0,0 +1,46 @@
//
// Stage ID 0x4d
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_0034[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+46
View File
@@ -0,0 +1,46 @@
//
// Mr. Blonde's Revenge
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_0034[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
File diff suppressed because it is too large Load Diff
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x18
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+48
View File
@@ -0,0 +1,48 @@
//
// 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[] = {
lift(0x0100, MODEL_RAVINELIFT, PAD_AREC_00BC, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x00bc, 0x00bb, 0x00ba, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000)
endprops
};
u8 unregistered_func1[] = {
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 unregistered_func2[] = {
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
File diff suppressed because it is too large Load Diff
+46
View File
@@ -0,0 +1,46 @@
//
// Stage ID 0x2e
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_0034[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+584
View File
@@ -0,0 +1,584 @@
//
// Duel
//
#include "stagesetup.h"
// Characters
#define CHR_GUARD 0x00
#define CHR_JONATHAN 0x01
#define CHR_TRENT 0x02
// Stage flags
#define STAGEFLAG_GUARD_DEAD 0x00000100
#define STAGEFLAG_JONATHAN_DEAD 0x00000200
#define STAGEFLAG_TRENT_DEAD 0x00000400
#define STAGEFLAG_SA_WALK_TRIGGER 0x00000800
#define STAGEFLAG_PA_WALK_TRIGGER 0x00001000
// AI Lists
#define AILIST_MOVE_TO_PAD 0x0401
#define AILIST_GUARD_COMBAT 0x0402
#define AILIST_JON_COMBAT 0x0403
#define AILIST_TRENT_COMBAT 0x0404
#define AILIST_GUARD_INIT 0x0405
#define AILIST_JON_INIT 0x0406
#define AILIST_TRENT_INIT 0x0407
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_ATE_001)
briefing(BRIEFINGTYPE_TEXT_PA, L_ATE_000)
briefing(BRIEFINGTYPE_TEXT_SA, L_ATE_002)
briefing(BRIEFINGTYPE_TEXT_A, L_ATE_003)
beginobjective(0, L_ATE_004, (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Defeat dataDyne guard"
complete_flags(STAGEFLAG_GUARD_DEAD)
endobjective
beginobjective(1, L_ATE_005, (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Defeat Jonathan Dark"
complete_flags(STAGEFLAG_JONATHAN_DEAD)
endobjective
beginobjective(2, L_ATE_006, (DIFFBIT_PA | DIFFBIT_PD)) // "Defeat Trent Easton"
complete_flags(STAGEFLAG_TRENT_DEAD)
endobjective
chr(SPAWNFLAG_00000200, 0x00, PAD_ATE_0279, BODY_DDSHOCK, HEAD_RANDOM, AILIST_GUARD_INIT, -1, -1, 100, 100, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRFALCON2, CHR_GUARD, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_FALCON2_SCOPE)
chr(SPAWNFLAG_00000200, 0x01, PAD_ATE_0023, BODY_CISOLDIER, HEAD_JONATHAN, AILIST_JON_INIT, -1, -1, 100, 100, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDY357, CHR_JONATHAN, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DY357MAGNUM)
chr(SPAWNFLAG_00000200, 0x02, PAD_ATE_0024, BODY_TRENT, HEAD_TRENT, AILIST_TRENT_INIT, -1, -1, 100, 100, CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_HOLD_POSITION | CHRFLAG0_COVER_TYPE2 | CHRFLAG0_NOHEAR, CHRFLAG1_STOPTRACKINGIFLOOKEDAT, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0)
weapon(0x0100, MODEL_CHRDY357TRENT, CHR_TRENT, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DY357LX)
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_ATE_0158, OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000040, 0x00000384, 0x00000000, 0x00000001, 0x00000800)
door(0x0100, MODEL_DD_OFFICEDOOR, PAD_ATE_0159, OBJFLAG_IGNOREFLOORCOLOUR, OBJFLAG2_AICANNOTUSE, 0, 1000, 0x0000f333, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, DOORFLAG_0004, DOORTYPE_SLIDING, 0x00000040, 0x00000384, 0x00000000, 0xffffffff, 0x00000000)
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
spawn(PAD_ATE_027A)
intro_weapon(WEAPON_FALCON2_SCOPE, -1)
ammo(AMMOTYPE_PISTOL, 8)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1000_counterop_setup[] = {
yield
set_chr_team(CHR_ANTI, TEAM_ENEMY)
set_ailist(CHR_SELF, GAILIST_REBUILD_GROUPS)
endlist
};
u8 func1001_objectives_failed[] = {
yield
set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG)
endlist
};
u8 func1002_first_walk[] = {
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
camera_movement(ANIM_CUT_ATE_INTRO_CAM)
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
show_hudmsg_middle(0x00, COLOR_02_WHITE, L_ATE_007) // "THE DUEL"
chr_do_animation(ANIM_RELOAD, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_GUARD, 2)
label(0x2d)
show_hudmsg(CHR_BOND, L_ATE_012) // "Opponent skill level: AGENT"
// Wait for camera to stop animating
restart_timer
beginloop(0x08)
if_camera_animating(/*goto*/ 0x2d)
goto_next(0x06)
label(0x2d)
endloop(0x08)
// Start walking
label(0x06)
remove_hudmsgs
revoke_control(CHR_BOND, 0)
enter_firstperson
force_walk(CHR_BOND, 0x0275, 40, 5, 0, 100)
chr_move_to_pad(CHR_GUARD, PAD_ATE_0274, 0x01, /*goto*/ 0x0b)
// Wait for walk to finish
beginloop(0x0b)
if_force_walk_finished(CHR_BOND, /*goto*/ 0x0c)
endloop(0x0b)
label(0x0c)
grant_control(CHR_BOND)
set_ailist(CHR_GUARD, AILIST_GUARD_COMBAT)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1007_second_walk[] = {
// Wait until SA walk trigger
beginloop(0x58)
if_chr_dead(CHR_BOND, /*goto*/ 0x2d)
if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x2d)
if_stage_flag_eq(STAGEFLAG_SA_WALK_TRIGGER, TRUE, /*goto*/ 0x06)
endloop(0x58)
// Begin cutscene
label(0x2d)
set_ailist(CHR_SELF, GAILIST_IDLE)
label(0x06)
revoke_control(CHR_BOND, 0)
camera_movement(ANIM_CUT_ATE_INTRO_CAM)
// Place chrs
label(0x8f)
set_ailist(CHR_P1P2, AILIST_MOVE_TO_PAD)
chr_move_to_pad(CHR_JONATHAN, PAD_ATE_0279, 0x01, /*goto*/ 0x2d)
yield
goto_first(0x8f)
label(0x2d)
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_UNEXPLODABLE)
yield
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
chr_do_animation(ANIM_GRAB_CROTCH, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_JONATHAN, 2)
label(0x2d)
show_hudmsg(CHR_BOND, L_ATE_013) // "Opponent skill level: SPECIAL AGENT"
restart_timer
beginloop(0x08)
if_camera_animating(/*goto*/ 0x2d)
goto_next(0x06)
label(0x2d)
endloop(0x08)
// Start force walk
label(0x06)
label(0x2d)
remove_hudmsgs
revoke_control(CHR_BOND, 0)
enter_firstperson
yield
force_walk(CHR_BOND, 0x0275, 40, 5, 0, 100)
// Place Jon
call_rng
if_rand_lt(128, /*goto*/ 0x8f)
chr_move_to_pad(CHR_JONATHAN, PAD_ATE_0271, 0x01, /*goto*/ 0x0b)
label(0x8f)
chr_move_to_pad(CHR_JONATHAN, PAD_ATE_0270, 0x01, /*goto*/ 0x0b)
// Wait for force walk to finish
beginloop(0x0b)
if_force_walk_finished(CHR_BOND, /*goto*/ 0x0c)
endloop(0x0b)
// Give control back to Jo
label(0x0c)
grant_control(CHR_BOND)
set_ailist(CHR_JONATHAN, AILIST_JON_COMBAT)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func0401_move_to_pad[] = {
chr_move_to_pad(CHR_SELF, PAD_ATE_027A, 0x01, /*goto*/ 0x06)
label(0x06)
yield
stop_chr
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1008_third_walk[] = {
// Wait for flag or Jo dying
beginloop(0x58)
if_chr_dead(CHR_BOND, /*goto*/ 0x2d)
if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x2d)
if_stage_flag_eq(STAGEFLAG_PA_WALK_TRIGGER, TRUE, /*goto*/ 0x06)
endloop(0x58)
// Jo dead
label(0x2d)
set_ailist(CHR_SELF, GAILIST_IDLE)
// Do cutscene
label(0x06)
revoke_control(CHR_BOND, 0)
camera_movement(ANIM_CUT_ATE_INTRO_CAM)
label(0x8f)
set_ailist(CHR_P1P2, AILIST_MOVE_TO_PAD)
chr_move_to_pad(CHR_TRENT, PAD_ATE_0279, 0x01, /*goto*/ 0x2d)
yield
goto_first(0x8f)
label(0x2d)
unset_chr_chrflag(CHR_TRENT, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_TRENT, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_TRENT, CHRCFLAG_UNEXPLODABLE)
yield
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE)
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
chr_do_animation(ANIM_HEAD_ROLL, -1, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_TRENT, 2)
label(0x2d)
show_hudmsg(CHR_BOND, L_ATE_014) // "Opponent skill level: PERFECT AGENT"
// Wait for cutscene to finish
restart_timer
beginloop(0x08)
if_camera_animating(/*goto*/ 0x2d)
goto_next(0x06)
label(0x2d)
endloop(0x08)
// Begin force walk
label(0x06)
remove_hudmsgs
revoke_control(CHR_BOND, 0)
enter_firstperson
force_walk(CHR_BOND, 0x0275, 40, 5, 0, 100)
chr_move_to_pad(CHR_TRENT, PAD_ATE_0272, 0x01, /*goto*/ 0x0b)
beginloop(0x0b)
if_force_walk_finished(CHR_BOND, /*goto*/ 0x0c)
endloop(0x0b)
label(0x0c)
set_ailist(CHR_TRENT, AILIST_TRENT_COMBAT)
grant_control(CHR_BOND)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1004_revoke_control[] = {
yield
revoke_control(CHR_BOND, 0)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1005_main[] = {
// Wait until guard dead
beginloop(0x04)
if_chr_deadish(CHR_GUARD, /*goto*/ 0x2d)
endloop(0x04)
label(0x2d)
show_hudmsg(CHR_BOND, L_ATE_009) // "Well done! You were too quick for him!"
set_stage_flag(STAGEFLAG_GUARD_DEAD)
restart_timer
beginloop(0x08)
if_timer_gt(120, /*goto*/ 0x2d)
endloop(0x08)
// If Agent, return
label(0x2d)
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2d)
goto_next(0x06)
label(0x2d)
set_ailist(CHR_SELF, GAILIST_IDLE)
label(0x06)
set_stage_flag(STAGEFLAG_SA_WALK_TRIGGER)
// Wait until Jonathan dead
beginloop(0x09)
if_chr_deadish(CHR_JONATHAN, /*goto*/ 0x2d)
endloop(0x09)
label(0x2d)
show_hudmsg(CHR_BOND, L_ATE_010) // "Well done! You were too quick for him!"
set_stage_flag(STAGEFLAG_JONATHAN_DEAD)
restart_timer
beginloop(0x0b)
if_timer_gt(120, /*goto*/ 0x2d)
endloop(0x0b)
// If Special Agent, return
label(0x2d)
if_difficulty_lt(DIFF_PA, /*goto*/ 0x2d)
goto_next(0x06)
label(0x2d)
set_ailist(CHR_SELF, GAILIST_IDLE)
label(0x06)
set_stage_flag(STAGEFLAG_PA_WALK_TRIGGER)
// Wait until Trent dead
beginloop(0x0c)
if_chr_deadish(CHR_TRENT, /*goto*/ 0x2d)
endloop(0x0c)
label(0x2d)
show_hudmsg(CHR_BOND, L_ATE_011) // "Well done! You were too quick for him!"
set_stage_flag(STAGEFLAG_TRENT_DEAD)
restart_timer
beginloop(0x0d)
if_timer_gt(120, /*goto*/ 0x2d)
endloop(0x0d)
label(0x2d)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1003_init_audio[] = {
stop_cutscene_track
stop_ambient_track
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func1006_check_objectives_complete[] = {
// Wait for all objectives complete
beginloop(0x04)
if_all_objectives_complete(/*goto*/ 0x2d)
endloop(0x04)
// Wait 3 seconds
label(0x2d)
restart_timer
beginloop(0x08)
if_timer_gt(180, /*goto*/ 0x2d)
endloop(0x08)
// End level
label(0x2d)
end_level
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func0402_guard_combat[] = {
set_shotlist(AILIST_GUARD_COMBAT)
if_just_injured(CHR_SELF, /*goto*/ 0x03)
set_chr_hiddenflag(CHR_SELF, CHRHFLAG_PERFECTACCURACY)
// Wait 2 seconds or for guard to come into view
restart_timer
beginloop(0x04)
if_timer_gt(120, /*goto*/ 0x06)
if_chr_in_view(/*goto*/ 0x2d)
endloop(0x04)
// Guard has come into view. Jump sideways.
label(0x2d)
try_sidestep(/*goto*/ 0x08)
beginloop(0x08)
if_distance_to_target_lt(250, /*goto*/ 0x0e)
if_chr_stopped(/*goto*/ 0x03)
endloop(0x08)
// Guard has been shot, or finished jump
beginloop(0x03)
if_distance_to_target_lt(250, /*goto*/ 0x0e)
if_can_see_target(/*goto*/ 0x06)
reloop(0x03)
// 2 seconds have passed without seeing guard, or guard has been shot
label(0x06)
if_chr_dead(CHR_TARGET, /*goto*/ 0x2e)
try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x2d)
label(0x2d)
try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0c)
beginloop(0x0c)
if_chr_stopped(/*goto*/ 0x06)
endloop(0x0c)
// Finished shooting
label(0x06)
endloop(0x03)
// Dying
label(0x2e)
set_ailist(CHR_SELF, GAILIST_IDLE)
// Hand combat
label(0x0e)
set_returnlist(CHR_SELF, AILIST_TRENT_COMBAT)
set_ailist(CHR_SELF, GAILIST_HAND_COMBAT)
endlist
};
u8 func0403_jon_combat[] = {
set_shotlist(AILIST_JON_COMBAT)
if_just_injured(CHR_SELF, /*goto*/ 0x58)
set_chr_hiddenflag(CHR_SELF, CHRHFLAG_PERFECTACCURACY)
restart_timer
beginloop(0x04)
if_timer_gt(240, /*goto*/ 0x58)
if_nearly_in_targets_sight(30, /*goto*/ 0x58)
endloop(0x04)
label(0x58)
try_run_to_target(/*goto*/ 0x08)
beginloop(0x08)
if_distance_to_target_lt(250, /*goto*/ 0x0e)
if_can_see_attack_target(/*goto*/ 0x06)
reloop(0x08)
label(0x06)
try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x2d)
label(0x2d)
try_attack_roll(/*goto*/ 0x0c)
try_attack_kneel(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0c)
beginloop(0x0c)
if_chr_stopped(/*goto*/ 0x06)
endloop(0x0c)
label(0x06)
endloop(0x58)
label(0x0e)
set_returnlist(CHR_SELF, AILIST_JON_COMBAT)
set_ailist(CHR_SELF, GAILIST_HAND_COMBAT)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func0404_trent_combat[] = {
set_shotlist(AILIST_TRENT_COMBAT)
if_just_injured(CHR_SELF, /*goto*/ 0x03)
set_chr_hiddenflag(CHR_SELF, CHRHFLAG_PERFECTACCURACY)
restart_timer
beginloop(0x04)
if_timer_gt(120, /*goto*/ 0x03)
if_chr_in_view(/*goto*/ 0x03)
endloop(0x04)
// Wait until player in sight or in close range
beginloop(0x03)
if_distance_to_target_lt(250, /*goto*/ 0x0e)
if_can_see_target(/*goto*/ 0x06)
reloop(0x03)
// Attack
label(0x06)
if_chr_dead(CHR_TARGET, /*goto*/ 0x2e)
try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x2d)
label(0x2d)
try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0c)
beginloop(0x0c)
if_chr_stopped(/*goto*/ 0x06)
endloop(0x0c)
label(0x06)
endloop(0x03)
// Hand combat
label(0x0e)
set_returnlist(CHR_SELF, AILIST_TRENT_COMBAT)
set_ailist(CHR_SELF, GAILIST_HAND_COMBAT)
label(0x2e)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func0405_guard_init[] = {
set_self_chrflag(CHRCFLAG_NOAUTOAIM)
// @bug: The value for set_accuracy is interpreted as a signed byte,
// so 200 is interpreted as -56 which reduces the chr's accuracy.
// However this isn't an issue because the chr has CHRHFLAG_PERFECTACCURACY.
// This bug is repeated for Jon and Trent below.
set_accuracy(200)
set_reaction_speed(50)
set_chr_maxdamage(CHR_SELF, 20)
add_health_or_armor(0)
set_recovery_speed(0)
set_shield(0)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func0406_jon_init[] = {
set_self_chrflag(CHRCFLAG_NOAUTOAIM)
set_accuracy(200)
set_reaction_speed(75)
set_chr_maxdamage(CHR_SELF, 40)
add_health_or_armor(0)
set_recovery_speed(0)
set_shield(0)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func0407_trent_init[] = {
set_self_chrflag(CHRCFLAG_NOAUTOAIM)
set_accuracy(200)
set_reaction_speed(75)
set_chr_maxdamage(CHR_SELF, 40)
add_health_or_armor(0)
set_recovery_speed(0)
set_shield(0)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_counterop_setup, 0x1000 },
{ func1001_objectives_failed, 0x1001 },
{ func1002_first_walk, 0x1002 },
{ func1003_init_audio, 0x1003 },
{ func1004_revoke_control, 0x1004 },
{ func1005_main, 0x1005 },
{ func1006_check_objectives_complete, 0x1006 },
{ func1007_second_walk, 0x1007 },
{ func1008_third_walk, 0x1008 },
{ func0401_move_to_pad, 0x0401 },
{ func0402_guard_combat, 0x0402 },
{ func0403_jon_combat, 0x0403 },
{ func0404_trent_combat, 0x0404 },
{ func0405_guard_init, 0x0405 },
{ func0406_jon_init, 0x0406 },
{ func0407_trent_init, 0x0407 },
{ NULL, 0 },
};
File diff suppressed because it is too large Load Diff
+38
View File
@@ -0,0 +1,38 @@
//
// Stage ID 0x28
//
#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[] = {
endprops
};
s32 intro[] = {
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
File diff suppressed because it is too large Load Diff
+40
View File
@@ -0,0 +1,40 @@
//
// 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[] = {
endprops
};
s32 intro[] = {
intro_weapon(WEAPON_FALCON2, -1)
ammo(AMMOTYPE_PISTOL, 100)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// G5 Building (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[] = {
endprops
};
s32 intro[] = {
intro_weapon(WEAPON_FALCON2, -1)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x1a
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+40
View File
@@ -0,0 +1,40 @@
//
// Temple (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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
intro_weapon(WEAPON_NONE, -1)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x50
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
File diff suppressed because it is too large Load Diff
+40
View File
@@ -0,0 +1,40 @@
//
// Stage ID 0x36
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
intro_weapon(WEAPON_NONE, -1)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+39
View File
@@ -0,0 +1,39 @@
//
// Base (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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+41
View File
@@ -0,0 +1,41 @@
//
// Sewers (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[] = {
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP10_006A, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x006a, 0x006b, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003555, 0x00085555, 0x00000000)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP10_006C, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x006c, 0x006d, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003555, 0x00085555, 0x00000000)
lift(0x0100, MODEL_A51_LIFT_THINWALL, PAD_MP10_006E, OBJFLAG_00000008 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_IGNOREFLOORCOLOUR | OBJFLAG_INVINCIBLE | OBJFLAG_UNCOLLECTABLE | OBJFLAG_00400000 | OBJFLAG_01000000 | OBJFLAG_CANNOT_ACTIVATE, OBJFLAG2_00000100 | OBJFLAG2_00000200 | OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_BULLETPROOF | OBJFLAG2_00200000, 0, 1000, 0x006e, 0x006f, -1, -1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003555, 0x00085555, 0x00000000)
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Felicity (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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Fortress (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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Villa (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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x46
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Grid (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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x48
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x49
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x4a
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x4b
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x3a
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+39
View File
@@ -0,0 +1,39 @@
//
// Stage ID 0x4c
//
#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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
struct ailist ailists[] = {
{ NULL, 0 },
};
+46
View File
@@ -0,0 +1,46 @@
//
// 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[] = {
endprops
};
s32 intro[] = {
outfit(OUTFIT_DEFAULT)
endintro
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func1000_0038[] = {
set_wind_speed(20)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
struct ailist ailists[] = {
{ func1000_0038, 0x1000 },
{ NULL, 0 },
};
+46
View File
@@ -0,0 +1,46 @@
//
// Warehouse (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[] = {
endprops
};
s32 intro[] = {
endintro
};
s32 path00[] = {
-1,
};
struct path paths[] = {
{ NULL, 0, 0 },
};
u8 func0000_0034[] = {
endlist
};
struct ailist ailists[] = {
{ NULL, 0 },
};

Some files were not shown because too many files have changed in this diff Show More