mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-08-26 15:36:49 -04:00
Introduce ai2asm
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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
@@ -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
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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
@@ -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
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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
@@ -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
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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 },
|
||||
};
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user