From 706a5b96bbf6362d907ddcb23c80a724dde622b0 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 17 Oct 2020 11:11:43 +1000 Subject: [PATCH] Rename setupParseObjects back to numbered name and decompile new setupParseObjects --- src/files/setup/mp_setupmp15.c | 8 +- src/files/setup/setupame.c | 30 +- src/files/setup/setupark.c | 20 +- src/files/setup/setupate.c | 8 +- src/files/setup/setupazt.c | 8 +- src/files/setup/setupcave.c | 42 +- src/files/setup/setupdam.c | 10 +- src/files/setup/setupdepo.c | 12 +- src/files/setup/setupdish.c | 16 +- src/files/setup/setupear.c | 10 +- src/files/setup/setupeld.c | 12 +- src/files/setup/setupimp.c | 24 +- src/files/setup/setuplee.c | 44 +- src/files/setup/setuplip.c | 30 +- src/files/setup/setuplue.c | 26 +- src/files/setup/setuppam.c | 8 +- src/files/setup/setuppete.c | 10 +- src/files/setup/setuprit.c | 20 +- src/files/setup/setupsev.c | 30 +- src/files/setup/setupsho.c | 46 +- src/files/setup/setupstat.c | 22 +- src/files/setup/setuptra.c | 18 +- src/files/setup/setupwax.c | 26 +- src/game/chr/chr.c | 6 +- src/game/chr/chrai.c | 2 +- src/game/chr/chraicommands.c | 6 +- src/game/data/data_003dc0.c | 2 +- src/game/game_00c490.c | 2732 ++++++++------------------ src/game/game_0109d0.c | 4 +- src/game/game_015010.c | 22 +- src/game/game_02cde0.c | 2 +- src/game/game_091e10.c | 130 +- src/game/game_095320.c | 4 +- src/game/game_097ba0.c | 2 +- src/game/game_0b63b0.c | 4 +- src/game/game_111600.c | 6 +- src/game/game_167ae0.c | 4 +- src/game/game_17f930.c | 8 +- src/game/game_190260.c | 24 +- src/game/propobj.c | 100 +- src/game/training.c | 12 +- src/include/constants.h | 152 +- src/include/game/chr/chraicommands.h | 2 +- src/include/game/data/data_000000.h | 1 + src/include/game/data/data_00e460.h | 13 +- src/include/game/game_00b820.h | 2 +- src/include/game/game_00c490.h | 42 +- src/include/game/game_0109d0.h | 6 +- src/include/game/game_0125a0.h | 2 +- src/include/game/game_012d50.h | 2 +- src/include/game/game_0147d0.h | 2 +- src/include/game/game_015010.h | 2 +- src/include/game/game_02cde0.h | 2 +- src/include/game/game_157db0.h | 2 +- src/include/game/mplayer.h | 2 +- src/include/game/propobj.h | 6 +- src/include/lib/lib_16110.h | 4 +- src/include/props.h | 119 +- src/include/types.h | 335 +++- src/lib/lib_16110.c | 4 +- 60 files changed, 1685 insertions(+), 2565 deletions(-) diff --git a/src/files/setup/mp_setupmp15.c b/src/files/setup/mp_setupmp15.c index e150661b0..4e9951ee3 100644 --- a/src/files/setup/mp_setupmp15.c +++ b/src/files/setup/mp_setupmp15.c @@ -82,10 +82,10 @@ u32 props[] = { door(0x0100, MODEL_DOOR2A_G5, 0x007d, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DOOR2A_G5, 0x007e, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001200, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DOOR2A_G5, 0x007f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x0001aaaa, 0x0001aaaa, 0x00000ccc, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-4, -6, 0, 0) - link_objects(-4, -7, 0, 1) - link_objects(-4, -8, 0, 1) + lift_door(-4, -5, 0) + lift_door(-4, -6, 0) + lift_door(-4, -7, 1) + lift_door(-4, -8, 1) endprops }; diff --git a/src/files/setup/setupame.c b/src/files/setup/setupame.c index a9528f900..b07772f9f 100644 --- a/src/files/setup/setupame.c +++ b/src/files/setup/setupame.c @@ -150,10 +150,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x0201) - briefing(1, 0x0200) - briefing(2, 0x0202) - briefing(3, 0x0203) + briefing(BRIEFINGTYPE_LOCATION, L_AME(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_AME(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_AME(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_AME(3)) beginobjective(0, L_AME(16), (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable internal security hub" complete_flags(STAGEFLAG_SECURITYHUB_COMPLETE) @@ -248,10 +248,10 @@ u32 props[] = { door(0x0100, MODEL_DD_LIFTDOOR, 0x009c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x009b, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x009a, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-4, -6, 0, 1) - link_objects(-4, -7, 0, 2) - link_objects(-4, -8, 0, 3) + lift_door(-4, -5, 0) + lift_door(-4, -6, 1) + lift_door(-4, -7, 2) + lift_door(-4, -8, 3) tag(0x5a, 6) tag(0x5b, 6) tag(0x5c, 6) @@ -262,10 +262,10 @@ u32 props[] = { door(0x0100, MODEL_DD_LIFTDOOR, 0x009e, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x009f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x0225, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-4, -6, 0, 1) - link_objects(-4, -7, 0, 2) - link_objects(-4, -8, 0, 3) + lift_door(-4, -5, 0) + lift_door(-4, -6, 1) + lift_door(-4, -7, 2) + lift_door(-4, -8, 3) stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00bd, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00be, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00bf, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) @@ -500,7 +500,7 @@ u32 props[] = { chr(0x00004000, 0x21, 0x01d1, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_FALCON_GUARD, -1, -1, 1000, 100, 0xc008a000, 0x00000100, TEAM_ENEMY, SQUADRON_0F, 0x3c, 0, 0x00010000) weapon(0x0100, MODEL_CHRFALCON2SIL, 0x0021, 0x00424000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRFALCON2SIL, 0x0021, 0x10424000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) tag(0x61, -3) tag(0x62, -3) @@ -527,10 +527,10 @@ u32 props[] = { hovercar(0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, AILIST_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) tag(0x28, 1) hovercar(0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, AILIST_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_DD_AC_UNEXP, 0x019f, 0x13500d00, 0x20304300, 0x04000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_DD_AC_EXP, 0x01a1, 0x031204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_DD_ACBOT_UNEXP, 0x019e, 0x13500d00, 0x20304300, 0x04000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_DD_ACBOT_EXP, 0x01a0, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0100, MODEL_A51_CRATE2, 0x0140, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) diff --git a/src/files/setup/setupark.c b/src/files/setup/setupark.c index 6f77c1bc0..f036b782e 100644 --- a/src/files/setup/setupark.c +++ b/src/files/setup/setupark.c @@ -94,10 +94,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x0601) - briefing(1, 0x0600) - briefing(2, 0x0602) - briefing(3, 0x0603) + briefing(BRIEFINGTYPE_LOCATION, L_ARK(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_ARK(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_ARK(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_ARK(3)) beginobjective(0, L_ARK(9), (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Access foyer elevator" complete_flags(STAGEFLAG_ACCESSED_FOYER_ELEVATOR) @@ -181,8 +181,8 @@ u32 props[] = { door(0x0100, MODEL_DD_LIFTDOOR, 0x008d, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x008e, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x021c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-2, -6, 0, 1) + lift_door(-4, -5, 0) + lift_door(-2, -6, 1) tag(0x24, 8) tag(0x25, 8) tag(0x26, 8) @@ -195,8 +195,8 @@ u32 props[] = { door(0x0100, MODEL_DD_LIFTDOOR, 0x0090, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000001, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x0091, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x021d, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-4, -6, 0, 1) + lift_door(-4, -5, 0) + lift_door(-4, -6, 1) stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00af, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b0, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00b1, 0x04000501, 0x0000c100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) @@ -430,10 +430,10 @@ u32 props[] = { weapon(0x0100, MODEL_CHRCMP150, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) key(0x0080, MODEL_KEYCARD, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000040) rename_object(-1, 0x4c, L_ARK(55), L_ARK(56), L_ARK(57), L_ARK(58), L_ARK(59), 0x0000, 0x0000) // "Obtain alpha key card." - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_DD_AC_UNEXP, 0x019b, 0x13520d00, 0x20304300, 0x04000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_DD_AC_EXP, 0x019d, 0x031204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_DD_ACBOT_UNEXP, 0x019a, 0x13500d00, 0x20304300, 0x04000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_DD_ACBOT_EXP, 0x019c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0100, MODEL_A51_CRATE2, 0x0130, 0x00020101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) diff --git a/src/files/setup/setupate.c b/src/files/setup/setupate.c index 165c5b50a..85036c2d6 100644 --- a/src/files/setup/setupate.c +++ b/src/files/setup/setupate.c @@ -42,10 +42,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, L_ATE(1)) - briefing(1, L_ATE(0)) - briefing(2, L_ATE(2)) - briefing(3, L_ATE(3)) + briefing(BRIEFINGTYPE_LOCATION, L_ATE(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_ATE(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_ATE(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_ATE(3)) beginobjective(0, L_ATE(4), (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Defeat dataDyne guard" complete_flags(STAGEFLAG_GUARD_DEAD) diff --git a/src/files/setup/setupazt.c b/src/files/setup/setupazt.c index 5bc5b28a4..f73b17488 100644 --- a/src/files/setup/setupazt.c +++ b/src/files/setup/setupazt.c @@ -74,10 +74,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x0a01) - briefing(1, 0x0a00) - briefing(2, 0x0a02) - briefing(3, 0x0a03) + briefing(BRIEFINGTYPE_LOCATION, L_AZT(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_AZT(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_AZT(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_AZT(3)) beginobjective(0, L_AZT(5), (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Retrieve Presidential medical scanner" require_object_collected(OBJ_MEDICALSCANNER) diff --git a/src/files/setup/setupcave.c b/src/files/setup/setupcave.c index 200c50894..b8ba54f01 100644 --- a/src/files/setup/setupcave.c +++ b/src/files/setup/setupcave.c @@ -95,10 +95,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x0e01) - briefing(1, 0x0e00) - briefing(2, 0x0e02) - briefing(3, 0x0e03) + briefing(BRIEFINGTYPE_LOCATION, L_CAVE(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_CAVE(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_CAVE(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_CAVE(3)) beginobjective(0, L_CAVE(5), (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Obtain disguise and enter base" complete_flags(STAGEFLAG_DISGUISED2) @@ -168,7 +168,7 @@ u32 props[] = { tag(0x31, 2) weapon(0x0100, MODEL_CHRDY357, 0x0012, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRDY357, 0x0012, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357MAGNUM, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) chr(0x00000600, 0x0d, 0x00c0, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041f, -1, -1, 200, 100, 0xa0882000, 0x00000000, TEAM_ENEMY, SQUADRON_09, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRDRAGON, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) chr(0x00000600, 0x0e, 0x00bf, BODY_ALASKAN_GUARD, HEAD_RANDOM, AILIST_INIT_ALASKAN_GUARD, -1, -1, 200, 100, 0x80082000, 0x00000000, TEAM_ENEMY, SQUADRON_09, -1, 0, 0x00000000) @@ -279,10 +279,10 @@ u32 props[] = { door(0x0100, MODEL_DOOR2A_G5, 0x019b, 0x10000400, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DOOR2A_G5, 0x0198, 0x10000400, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DOOR2A_G5, 0x0199, 0x10000400, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-4, -6, 0, 0) - link_objects(-4, -7, 0, 1) - link_objects(-4, -8, 0, 1) + lift_door(-4, -5, 0) + lift_door(-4, -6, 0) + lift_door(-4, -7, 1) + lift_door(-4, -8, 1) tag(0x04, 1) lift(0x0100, MODEL_BAGGAGECARRIER, 0x0144, 0x015204e8, 0x00304300, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0144, 0x0145, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000) tag(0x3b, 6) @@ -293,10 +293,10 @@ u32 props[] = { door(0x0100, MODEL_DOOR2A_G5, 0x0185, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DOOR2A_G5, 0x019d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DOOR2A_G5, 0x019e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00040000, 0x00000000, 0x000000b4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-4, -6, 0, 0) - link_objects(-4, -7, 0, 1) - link_objects(-4, -8, 0, 1) + lift_door(-4, -5, 0) + lift_door(-4, -6, 0) + lift_door(-4, -7, 1) + lift_door(-4, -8, 1) tag(0x3c, 10) tag(0x3d, 10) tag(0x3e, 10) @@ -315,14 +315,14 @@ u32 props[] = { door(0x0100, MODEL_DOOR2A_G5, 0x0193, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DOOR2A_G5, 0x0190, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DOOR2A_G5, 0x0191, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x000007ae, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-8, -9, 0, 0) - link_objects(-8, -10, 0, 0) - link_objects(-8, -11, 0, 1) - link_objects(-8, -12, 0, 1) - link_objects(-8, -13, 0, 2) - link_objects(-8, -14, 0, 2) - link_objects(-8, -15, 0, 3) - link_objects(-8, -16, 0, 3) + lift_door(-8, -9, 0) + lift_door(-8, -10, 0) + lift_door(-8, -11, 1) + lift_door(-8, -12, 1) + lift_door(-8, -13, 2) + lift_door(-8, -14, 2) + lift_door(-8, -15, 3) + lift_door(-8, -16, 3) tag(0x05, 1) multimonitor(0x0099, MODEL_COMHUB, 0x0153, 0x00000102, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03030300) tag(0x07, 17) diff --git a/src/files/setup/setupdam.c b/src/files/setup/setupdam.c index c6b7b2a4b..c990d7c16 100644 --- a/src/files/setup/setupdam.c +++ b/src/files/setup/setupdam.c @@ -103,10 +103,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x1601) - briefing(1, 0x1600) - briefing(2, 0x1602) - briefing(3, 0x1603) + briefing(BRIEFINGTYPE_LOCATION, L_DAM(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_DAM(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_DAM(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_DAM(3)) beginobjective(0, L_DAM(6), (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable primary power source" complete_flags(STAGEFLAG_REACTOR_SHUT_DOWN) @@ -565,7 +565,7 @@ u32 props[] = { tag(0x28, 2) weapon(0x0100, MODEL_CHRFALCON2SCOPE, 0x0034, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRFALCON2SCOPE, 0x0034, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) endprops }; diff --git a/src/files/setup/setupdepo.c b/src/files/setup/setupdepo.c index 878868502..3e1690c57 100644 --- a/src/files/setup/setupdepo.c +++ b/src/files/setup/setupdepo.c @@ -115,10 +115,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x1801) - briefing(1, 0x1800) - briefing(2, 0x1802) - briefing(3, 0x1803) + briefing(BRIEFINGTYPE_LOCATION, L_DEPO(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_DEPO(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_DEPO(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_DEPO(3)) beginobjective(0, L_DEPO(9), (DIFFBIT_PA | DIFFBIT_PD)) // "Disable damping field generator" complete_flags(STAGEFLAG_GENERATOR_SHUT_DOWN) @@ -382,11 +382,11 @@ u32 props[] = { door(0x0100, MODEL_LASDOOR, 0x00df, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_LASDOOR, 0x00e0, 0x46000400, 0x02020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00011999, 0x00011999, 0x7fffffff, 0x7fffffff, 0x7fffffff, 0x0c00000b, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xfffffffd, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(OBJ_ESCAPEDOOR1, 2) - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_G5_ESCDOORUP, 0x00f0, 0x13500d00, 0x20304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_G5_ESCDOORUPBOOM, 0x00f1, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(OBJ_ESCAPEDOOR2, 2) - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_G5_ESCDOORDOWN, 0x00ee, 0x13500d00, 0x20304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_G5_ESCDOORDOWNBOOM, 0x00ef, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) diff --git a/src/files/setup/setupdish.c b/src/files/setup/setupdish.c index fed8aad13..67933400e 100644 --- a/src/files/setup/setupdish.c +++ b/src/files/setup/setupdish.c @@ -181,10 +181,10 @@ u32 props[] = { door(0x0100, MODEL_DD_LIFTDOOR, 0x015f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x0160, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x0161, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-4, -6, 0, 0) - link_objects(-4, -7, 0, 1) - link_objects(-4, -8, 0, 1) + lift_door(-4, -5, 0) + lift_door(-4, -6, 0) + lift_door(-4, -7, 1) + lift_door(-4, -8, 1) tag(0x84, 6) tag(0x85, 6) tag(0x86, 6) @@ -195,10 +195,10 @@ u32 props[] = { door(0x0100, MODEL_DD_LIFTDOOR, 0x0165, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x0162, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x0163, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-4, -6, 0, 0) - link_objects(-4, -7, 0, 1) - link_objects(-4, -8, 0, 1) + lift_door(-4, -5, 0) + lift_door(-4, -6, 0) + lift_door(-4, -7, 1) + lift_door(-4, -8, 1) tag(0x00, 1) stdobject(0x0100, MODEL_DD_CHAIR, 0x021b, 0x000205e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0100, MODEL_DD_DESK, 0x021a, 0x000205e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) diff --git a/src/files/setup/setupear.c b/src/files/setup/setupear.c index 19f79ad17..aaf235f38 100644 --- a/src/files/setup/setupear.c +++ b/src/files/setup/setupear.c @@ -106,10 +106,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x1e01) - briefing(1, 0x1e00) - briefing(2, 0x1e02) - briefing(3, 0x1e03) + briefing(BRIEFINGTYPE_LOCATION, L_EAR(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_EAR(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_EAR(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_EAR(3)) beginobjective(0, L_EAR(13), (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Holograph radioactive isotope" require_object_holographed(0x39, 0, 0) @@ -622,7 +622,7 @@ u32 props[] = { tag(0x58, 2) weapon(0x0100, MODEL_CHRCMP150, 0x027b, 0x00100008, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x027c, 0x00100008, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) tag(0x59, 1) weapon(0x0080, MODEL_MULTI_AMMO_CRATE, 0x027d, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PROXIMITYMINE, 0x00ffffff, 0x00000000) endprops diff --git a/src/files/setup/setupeld.c b/src/files/setup/setupeld.c index 10035ce59..08b9ac6e6 100644 --- a/src/files/setup/setupeld.c +++ b/src/files/setup/setupeld.c @@ -102,10 +102,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x2001) - briefing(1, 0x2000) - briefing(2, 0x2002) - briefing(3, 0x2003) + briefing(BRIEFINGTYPE_LOCATION, L_ELD(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_ELD(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_ELD(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_ELD(3)) beginobjective(0, L_ELD(5), (DIFFBIT_A | DIFFBIT_SA)) // "Save the negotiator" complete_flags(STAGEFLAG_NEGOTIATOR_ESCAPED) @@ -152,7 +152,7 @@ u32 props[] = { tag(0x8f, 2) weapon(0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) chr(0x00000001, 0x04, 0x0196, BODY_DDSNIPER, HEAD_DDSNIPER, AILIST_INIT_SNIPER, -1, -1, 500, 40, 0x00004408, 0x00000000, TEAM_20, SQUADRON_00, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRSNIPERRIFLE, 0x0004, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000) @@ -174,7 +174,7 @@ u32 props[] = { tag(0x8f, 2) weapon(0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x019a, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) chr(0x00010401, CHR_NEGOTIATOR, 0x022b, BODY_SECRETARY, HEAD_SECRETARY, GAILIST_IDLE, -1, -1, 500, 50, 0x00004408, 0x00000000, TEAM_ALLY, SQUADRON_00, -1, 0, 0x00000000) chr(0x00000001, 0x4e, 0x0229, BODY_DD_GUARD, HEAD_JON, GAILIST_IDLE, -1, -1, 500, 150, 0xc0004408, 0x00000000, TEAM_20, SQUADRON_00, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x004e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) diff --git a/src/files/setup/setupimp.c b/src/files/setup/setupimp.c index ba2557dcc..65949901a 100644 --- a/src/files/setup/setupimp.c +++ b/src/files/setup/setupimp.c @@ -158,10 +158,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x2201) - briefing(1, 0x2200) - briefing(2, 0x2202) - briefing(3, 0x2203) + briefing(BRIEFINGTYPE_LOCATION, L_IMP(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_IMP(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_IMP(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_IMP(3)) beginobjective(0, L_IMP(5), (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Reactivate automatic defenses" complete_flags(STAGEFLAG_AUTOGUN1_ACTIVE) @@ -251,10 +251,10 @@ u32 props[] = { door(0x0100, MODEL_DD_LIFTDOOR, 0x015f, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x0160, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x0161, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-4, -6, 0, 0) - link_objects(-4, -7, 0, 1) - link_objects(-4, -8, 0, 1) + lift_door(-4, -5, 0) + lift_door(-4, -6, 0) + lift_door(-4, -7, 1) + lift_door(-4, -8, 1) tag(0x4a, 6) tag(0x4b, 6) tag(0x4c, 6) @@ -265,10 +265,10 @@ u32 props[] = { door(0x0100, MODEL_DD_LIFTDOOR, 0x0165, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x0162, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x0163, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-4, -6, 0, 0) - link_objects(-4, -7, 0, 1) - link_objects(-4, -8, 0, 1) + lift_door(-4, -5, 0) + lift_door(-4, -6, 0) + lift_door(-4, -7, 1) + lift_door(-4, -8, 1) tag(0x00, 1) stdobject(0x0100, MODEL_DD_CHAIR, 0x021b, 0x000005e1, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0100, MODEL_DD_DESK, 0x021a, 0x000005e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) diff --git a/src/files/setup/setuplee.c b/src/files/setup/setuplee.c index 1029441b8..000d4c1cc 100644 --- a/src/files/setup/setuplee.c +++ b/src/files/setup/setuplee.c @@ -124,10 +124,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x2601) - briefing(1, 0x2600) - briefing(2, 0x2602) - briefing(3, 0x2603) + briefing(BRIEFINGTYPE_LOCATION, L_LEE(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_LEE(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_LEE(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_LEE(3)) beginobjective(0, L_LEE(5), (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Disable shield system" complete_flags(STAGEFLAG_SHIELDS_DISABLED) @@ -159,8 +159,8 @@ u32 props[] = { lift(0x0100, MODEL_SK_LIFT, 0x018c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x018c, 0x018d, 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, 0x000a0000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0180, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0181, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0x00000000, 0x00000000, 0x000000f0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 0) + lift_door(-2, -3, 0) + lift_door(-2, -4, 0) chr(0x00000200, 0x01, 0x01cf, BODY_SKEDAR, HEAD_RANDOM, AILIST_INIT_KNIFEABLE_SKEDAR, -1, -1, 1000, 8, 0x00000000, 0x00000080, TEAM_ENEMY, SQUADRON_00, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRMAULER, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000) chr(0x00000000, 0x35, 0x00e8, BODY_SKEDAR, HEAD_RANDOM, AILIST_INIT_SHY_SKEDAR, -1, -1, 1000, 6, 0x00002000, 0x00000080, TEAM_ENEMY, SQUADRON_00, -1, 0, 0x00000000) @@ -185,7 +185,7 @@ u32 props[] = { chr(0x00010400, 0x00, 0x00fe, BODY_ELVISWAISTCOAT, HEAD_ELVIS, AILIST_ELVIS_WAIT_FOR_HANGAR_ENTRY, -1, -1, 1000, 200, 0x00002000, 0x80304000, TEAM_NONCOMBAT, SQUADRON_01, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0000, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) weapon(0x0100, MODEL_CHRPCGUN, 0x001d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_AR34, 0x00ffffff, 0x00000000) tag(0x18, -1) chr(0x00000080, 0x02, 0x00d6, BODY_SKEDAR, HEAD_RANDOM, GAILIST_IDLE_0009, -1, -1, 1000, 200, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_03, -1, 0, 0x00000000) @@ -247,7 +247,7 @@ u32 props[] = { chr(0x00004200, 0x2d, 0x00a4, BODY_SKEDAR, HEAD_RANDOM, AILIST_INIT_BRIDGE3, -1, -1, 1000, 200, 0x50012000, 0x00000000, TEAM_ENEMY, SQUADRON_0D, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRMAULER, 0x002d, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRMAULER, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) tag(0x43, -3) tag(0x44, -3) chr(0x00000000, 0x31, 0x0095, BODY_SKEDAR, HEAD_RANDOM, 0x0415, -1, -1, 1000, 200, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) @@ -386,12 +386,12 @@ u32 props[] = { lift(0x0100, MODEL_SK_LIFT, 0x0194, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0194, 0x0195, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_SHIP_DOOR1, 0x015c, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00320000, 0x0001aaaa, 0x00008000, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_SHIP_DOOR1, 0x015d, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x00320000, 0x0001aaaa, 0x00008000, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 0) + lift_door(-2, -3, 0) + lift_door(-2, -4, 0) door(0x0100, MODEL_SK_HANGARDOOR_BOT, 0x015e, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_HANGARDOOR_TOP, 0x015f, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -7, 0, 1) - link_objects(-2, -8, 0, 1) + lift_door(-2, -7, 1) + lift_door(-2, -8, 1) tag(0x35, 6) tag(0x36, 6) tag(0x37, 8) @@ -400,12 +400,12 @@ u32 props[] = { lift(0x0100, MODEL_SK_LIFT, 0x0196, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0196, 0x0197, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00030000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0160, 0x10000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x000a0000, 0x00005555, 0x00001999, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0161, 0x10000400, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00010000, 0x000a0000, 0x00005555, 0x00001999, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 0) + lift_door(-2, -3, 0) + lift_door(-2, -4, 0) door(0x0100, MODEL_SK_HANGARDOOR_BOT, 0x0162, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_HANGARDOOR_TOP, 0x0163, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -7, 0, 1) - link_objects(-2, -8, 0, 1) + lift_door(-2, -7, 1) + lift_door(-2, -8, 1) tag(0x39, 5) tag(0x3a, 5) tag(0x29, 2) @@ -413,8 +413,8 @@ u32 props[] = { lift(0x0100, MODEL_SK_LIFT, 0x0193, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0193, 0x0192, 0xffffffff, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_HANGARDOORB_BOT, 0x0166, 0x12000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_HANGARDOORB_TOP, 0x0167, 0x12000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 1) - link_objects(-2, -4, 0, 1) + lift_door(-2, -3, 1) + lift_door(-2, -4, 1) tag(0x3b, 5) tag(0x3c, 5) tag(0x28, 2) @@ -422,8 +422,8 @@ u32 props[] = { lift(0x0100, MODEL_SK_LIFT, 0x0190, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0190, 0x0191, 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00008000, 0x00050000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_HANGARDOORB_BOT, 0x0164, 0x12000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000500, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_HANGARDOORB_TOP, 0x0165, 0x12000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x000a0000, 0x000a0000, 0x00008000, 0x00000004, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 0) + lift_door(-2, -3, 0) + lift_door(-2, -4, 0) tag(0x3d, 5) tag(0x3e, 5) tag(0x26, 2) @@ -431,8 +431,8 @@ u32 props[] = { lift(0x0100, MODEL_SK_LIFT, 0x018e, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x018e, 0x018f, 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00004000, 0x00028000, 0x1f000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0182, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001d00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0183, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00005555, 0x00005555, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 0) + lift_door(-2, -3, 0) + lift_door(-2, -4, 0) fan(0x0100, MODEL_SK_SHIP_HOLO1, 0x0110, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000) fan(0x0100, MODEL_SK_SHIP_HOLO2, 0x0112, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000) fan(0x0100, MODEL_SK_SHIP_HOLO2, 0x0113, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000222, 0x00000000, 0x00000002, 0x01000000) diff --git a/src/files/setup/setuplip.c b/src/files/setup/setuplip.c index 8636f5b33..1d7762583 100644 --- a/src/files/setup/setuplip.c +++ b/src/files/setup/setuplip.c @@ -133,10 +133,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x2a01) - briefing(1, 0x2a00) - briefing(2, 0x2a02) - briefing(3, 0x2a03) + briefing(BRIEFINGTYPE_LOCATION, L_LIP(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_LIP(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_LIP(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_LIP(3)) beginobjective(0, L_LIP(10), (DIFFBIT_PA | DIFFBIT_PD)) // "Destroy computer records" complete_flags(STAGEFLAG_RECORDS_DESTROYED) @@ -293,14 +293,14 @@ u32 props[] = { lift(0x0100, MODEL_A51_LIFT_STORE, 0x0334, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0334, 0x0335, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51LIFTDOOR, 0x02e2, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51LIFTDOOR, 0x02e1, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 1) + lift_door(-2, -3, 0) + lift_door(-2, -4, 1) tag(0x39, 1) lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x0336, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0336, 0x0337, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51LIFTDOOR, 0x02e4, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51LIFTDOOR, 0x02e3, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 1) + lift_door(-2, -3, 0) + lift_door(-2, -4, 1) door_scale(0x00010000) tag(0x00, 1) weapon(0x0180, MODEL_LABCOAT, 0x042b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DISGUISE40, 0x00ffffff, 0x00000000) @@ -454,8 +454,8 @@ u32 props[] = { stdobject(0x0100, MODEL_A51_CRATE2, 0x02f5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0100, MODEL_A51_CRATE3, 0x02f6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0100, MODEL_A51_CRATE1, 0x02f7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_paths(0x00000002, 0x011101bb, 0x00000000) - link_scenery(1, 0, 2) + blocked_path(2, 0x0111, 0x01bb) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_A51_UNEXP1, 0x0422, 0x13500d00, 0x20304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_A51_EXP1, 0x0421, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x18, -2) @@ -467,12 +467,12 @@ u32 props[] = { lift(0x0100, MODEL_A51_LIFT_CONTROL, 0x032a, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x032a, 0x032b, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0330, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0331, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 0) + lift_door(-2, -3, 0) + lift_door(-2, -4, 0) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0332, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0333, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -7, 0, 1) - link_objects(-2, -8, 0, 1) + lift_door(-2, -7, 1) + lift_door(-2, -8, 1) tag(0x14, 2) tag(0x15, 2) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x02b3, 0x10000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00080000, 0x00000010, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) @@ -663,7 +663,7 @@ u32 props[] = { tag(0x4d, 2) weapon(0x0100, MODEL_CHRFALCON2SIL, 0x03db, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRFALCON2SIL, 0x03db, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SILENCER, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) tag(0x4e, 1) weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0389, 0x00420001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000) tag(0x42, 1) diff --git a/src/files/setup/setuplue.c b/src/files/setup/setuplue.c index e40dc4920..94639975c 100644 --- a/src/files/setup/setuplue.c +++ b/src/files/setup/setuplue.c @@ -93,10 +93,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x2c01) - briefing(1, 0x2c00) - briefing(2, 0x2c02) - briefing(3, 0x2c03) + briefing(BRIEFINGTYPE_LOCATION, L_LUE(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_LUE(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_LUE(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_LUE(3)) beginobjective(0, L_LUE(9), (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Shut down air intercept radar" complete_flags(STAGEFLAG_RADAR_SHUT_DOWN) @@ -134,13 +134,13 @@ u32 props[] = { #else door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0321, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) #endif - link_objects(-1, -2, 0, 0) + lift_door(-1, -2, 0) #if VERSION >= VERSION_PAL_FINAL door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0322, 0x10000000, 0x20000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) #else door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0322, 0x10000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) #endif - link_objects(-1, -4, 0, 1) + lift_door(-1, -4, 1) tag(0x39, -2) tag(0x3e, 5) tag(0x3f, 6) @@ -148,9 +148,9 @@ u32 props[] = { tag(0x0e, 2) lift(0x0100, MODEL_A51_LIFT_HANGAR, 0x0324, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0324, 0x0325, 0xffffffff, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x14000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0327, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-1, -2, 0, 0) + lift_door(-1, -2, 0) door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0328, 0x10000000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001900, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-1, -4, 0, 1) + lift_door(-1, -4, 1) tag(0x38, -2) door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0320, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DOOR_ROLLERTRAIN, 0x0326, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000c000, 0x000031c7, 0x000031c7, 0x000002fc, 0x00040004, 0x00000004, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) @@ -162,12 +162,12 @@ u32 props[] = { lift(0x0100, MODEL_A51_LIFT_CONTROL, 0x0329, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0329, 0x032a, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x032e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x032f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 0) + lift_door(-2, -3, 0) + lift_door(-2, -4, 0) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0330, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0331, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -7, 0, 1) - link_objects(-2, -8, 0, 1) + lift_door(-2, -7, 1) + lift_door(-2, -8, 1) chr(0x00004200, 0x00, 0x0354, BODY_A51TROOPER, HEAD_RANDOM, AILIST_TROOPER_UNALERTED, -1, -1, 10000, 100, 0x8000ae00, 0x00000100, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRLEEGUN1, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRGRENADE, 0x0000, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_GRENADE, 0x00ffffff, 0x00000000) @@ -265,7 +265,7 @@ u32 props[] = { chr(0x00000000, 0x35, 0x009f, BODY_AREA51GUARD, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 100, 0x04003000, 0x00000000, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRLEEGUN1, 0x0035, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRLEEGUN1, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAGSEC4, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027f, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_HORIZ_DOOR_TOP, 0x027e, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00000004, 0x00000000, 0x0fffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_HORIZ_DOOR_BOT, 0x027d, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000f333, 0x0000f333, 0x00085555, 0x00085555, 0x00001999, 0x00100004, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) diff --git a/src/files/setup/setuppam.c b/src/files/setup/setuppam.c index 8d1b1b568..3079fc2bc 100644 --- a/src/files/setup/setuppam.c +++ b/src/files/setup/setuppam.c @@ -112,10 +112,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x3001) - briefing(1, 0x3000) - briefing(2, 0x3002) - briefing(3, 0x3003) + briefing(BRIEFINGTYPE_LOCATION, L_PAM(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_PAM(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_PAM(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_PAM(3)) beginobjective(0, L_PAM(5), (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Reactivate teleportals" complete_flags(STAGEFLAG_TELEPORTALS_ACTIVATED) diff --git a/src/files/setup/setuppete.c b/src/files/setup/setuppete.c index 28a4d7cd7..1f66c4709 100644 --- a/src/files/setup/setuppete.c +++ b/src/files/setup/setuppete.c @@ -110,10 +110,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x3201) - briefing(1, 0x3200) - briefing(2, 0x3202) - briefing(3, 0x3203) + briefing(BRIEFINGTYPE_LOCATION, L_PETE(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_PETE(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_PETE(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_PETE(3)) beginobjective(0, L_PETE(9), (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Retrieve drop point equipment" require_object_collected(OBJ_BRIEFCASE1) @@ -305,7 +305,7 @@ u32 props[] = { tag(0x23, 2) weapon(0x0100, MODEL_CHRFALCON2, 0x011f, 0x00420001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRFALCON2, 0x011f, 0x00420001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) tag(0x1c, 1) shield(0x0100, MODEL_CHRSHIELD, 0x0121, 0x00000001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000) tag(0x20, 1) diff --git a/src/files/setup/setuprit.c b/src/files/setup/setuprit.c index 25f717a32..88a946baf 100644 --- a/src/files/setup/setuprit.c +++ b/src/files/setup/setuprit.c @@ -130,10 +130,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x3601) - briefing(1, 0x3600) - briefing(2, 0x3602) - briefing(3, 0x3603) + briefing(BRIEFINGTYPE_LOCATION, L_RIT(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_RIT(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_RIT(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_RIT(3)) beginobjective(0, L_RIT(5), (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Locate and retrieve equipment" require_object_collected(OBJ_EQUIPMENT) @@ -326,7 +326,7 @@ u32 props[] = { tag(0x05, 1) lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x010c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x010c, 0x010d, 0xffffffff, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x1b000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_DR_NONREF, 0x00ff, 0x12000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00040000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000800, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-1, -2, 0, 0) + lift_door(-1, -2, 0) tag(0x2b, 1) #if VERSION >= VERSION_PAL_FINAL // ................................................................................................................................................................................................................................................................................................................................................................ v @@ -446,13 +446,13 @@ u32 props[] = { tag(0x30, 6) tag(0x31, 7) tag(0x32, 8) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0019, MODEL_AF1RUBBLE, 0x00ce, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0019, MODEL_AF1RUBBLE, 0x00cf, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0019, MODEL_AF1RUBBLE, 0x00d0, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0019, MODEL_AF1RUBBLE, 0x00d1, 0x03520401, 0x00186300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x0fff0000) tag(0x33, 4) tag(0x34, 4) @@ -470,7 +470,7 @@ u32 props[] = { tag(0x39, 2) weapon(0x0180, MODEL_CHRCYCLONE, 0x00cb, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CYCLONE, 0x00ffffff, 0x00000000) weapon(0x0180, MODEL_CHRCYCLONE, 0x00cc, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CYCLONE, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) endprops }; diff --git a/src/files/setup/setupsev.c b/src/files/setup/setupsev.c index 4f38e2005..94b29024b 100644 --- a/src/files/setup/setupsev.c +++ b/src/files/setup/setupsev.c @@ -57,10 +57,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x3c01) - briefing(1, 0x3c00) - briefing(2, 0x3c02) - briefing(3, 0x3c03) + briefing(BRIEFINGTYPE_LOCATION, L_SEV(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_SEV(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_SEV(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_SEV(3)) beginobjective(0, L_SEV(4), (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Sabotage enemy medical experiment" complete_flags(STAGEFLAG_EXPERIMENT_DESTROYED) @@ -109,7 +109,7 @@ u32 props[] = { weapon(0x0100, MODEL_CHRDY357TRENT, 0x000b, 0x40004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRDY357TRENT, 0x000b, 0x50004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) chr(0x00000200, 0x0c, 0x013d, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_INIT_80HP_GUARD, -1, -1, 1000, 100, 0xc009c000, 0x00000000, TEAM_ENEMY, SQUADRON_05, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRDRAGON, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DRAGON, 0x00ffffff, 0x00000000) @@ -283,14 +283,14 @@ u32 props[] = { lift(0x0100, MODEL_A51_LIFT_STORE, 0x0334, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0334, 0x0335, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51LIFTDOOR, 0x02e2, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51LIFTDOOR, 0x02e1, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00000000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 1) + lift_door(-2, -3, 0) + lift_door(-2, -4, 1) tag(0x39, 1) lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x0336, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0336, 0x0337, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51LIFTDOOR, 0x02e4, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51LIFTDOOR, 0x02e3, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 1) + lift_door(-2, -3, 0) + lift_door(-2, -4, 1) door_scale(0x00010000) tag(0x03, 1) multimonitor(0x0099, MODEL_PD_CONSOLE, 0x0428, 0x000001a1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03030000) @@ -419,8 +419,8 @@ u32 props[] = { stdobject(0x0100, MODEL_A51_CRATE2, 0x02f5, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0100, MODEL_A51_CRATE3, 0x02f6, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0100, MODEL_A51_CRATE1, 0x02f7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_paths(0x00000002, 0x011101bb, 0x00000000) - link_scenery(1, 0, 2) + blocked_path(2, 0x0111, 0x01bb) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_A51_UNEXP1, 0x0422, 0x13520d00, 0x20304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_A51_EXP1, 0x0421, 0x035205e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x18, -2) @@ -433,12 +433,12 @@ u32 props[] = { lift(0x0100, MODEL_A51_LIFT_CONTROL, 0x032a, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x032a, 0x032b, 0xffffffff, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x16000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0330, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0331, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 1) - link_objects(-2, -4, 0, 1) + lift_door(-2, -3, 1) + lift_door(-2, -4, 1) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0332, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x0333, 0x10000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -7, 0, 2) - link_objects(-2, -8, 0, 2) + lift_door(-2, -7, 2) + lift_door(-2, -8, 2) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x032e, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51_VERT_DOOR_ST, 0x032f, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x0000e666, 0x00008e38, 0x00008e38, 0x00000444, 0x00000000, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) tag(0x14, 2) diff --git a/src/files/setup/setupsho.c b/src/files/setup/setupsho.c index a55dc0583..87300e064 100644 --- a/src/files/setup/setupsho.c +++ b/src/files/setup/setupsho.c @@ -118,10 +118,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x4201) - briefing(1, 0x4200) - briefing(2, 0x4202) - briefing(3, 0x4203) + briefing(BRIEFINGTYPE_LOCATION, L_SHO(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_SHO(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_SHO(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_SHO(3)) beginobjective(0, L_SHO(5), (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Identify temple targets" complete_flags(STAGEFLAG_PILLAR1_MARKED) @@ -226,30 +226,30 @@ u32 props[] = { chr(0x00004000, 0x3a, 0x0012, BODY_SKEDAR, HEAD_RANDOM, AILIST_HIDE, 0x00d8, -1, 1000, 9, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) chr(0x00004000, 0x3b, 0x0018, BODY_SKEDARKING, HEAD_RANDOM, GAILIST_IDLE, 0x00d8, -1, 1000, 9, 0x00002000, 0x00000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0x00000000) weapon(0x0100, MODEL_KINGSCEPTRE, 0x003b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_NONE, 0x00ffffff, 0x00000000) - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) debris(0x0100, MODEL_SKCREV_UNEXP1, 0x00e5, 0x035005e8, 0x00304300, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) debris(0x0100, MODEL_SKCREV_EXP1, 0x00e6, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x44, 1) remote_mine(0x0100, MODEL_CHRPROXIMITYMINE, 0x00e6, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000) - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_SKTNL_UNEXP1, 0x00e7, 0x13500d00, 0x20304300, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_SKTNL_EXP1, 0x00e8, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x4d, -2) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_PILLARLEFT, 0x013d, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_PILLARLEFT, 0x013e, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_PILLARLEFT, 0x013f, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_PILLARLEFT, 0x0140, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_PILLARRIGHT, 0x0141, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_PILLARRIGHT, 0x0142, 0x075005e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_PILLARRIGHT, 0x0143, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_PILLARRIGHT, 0x0144, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x19, 5) tag(0x1a, 5) @@ -273,22 +273,22 @@ u32 props[] = { stdobject(0x0100, MODEL_SK_FL_NOSHAD_T, 0x014a, 0x035204e8, 0x00384300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x01, 3) tag(0x2a, 2) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN4, 0x0111, 0x035005e8, 0x80126300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x02, 3) tag(0x2b, 2) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN2, 0x010a, 0x035005e8, 0x80126300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x41, -1) tag(0x03, 3) tag(0x2c, 2) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN3, 0x010b, 0x035005e8, 0x80126300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x2d, 2) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN2, 0x010c, 0x035005e1, 0x80126300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x2e, 2) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN3, 0x010d, 0x035005e1, 0x80126300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x2f, 5) tag(0x30, 5) @@ -391,11 +391,11 @@ u32 props[] = { stdobject(0x0019, MODEL_SK_JONRUBBLE3, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x3c, 1) stdobject(0x0019, MODEL_RUBBLE3, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN2, 0x010e, 0x035005e1, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN2, 0x010f, 0x035005e1, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN2, 0x0110, 0x035005e1, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x36, 1) stdobject(0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) @@ -435,7 +435,7 @@ u32 props[] = { tag(0x43, 2) weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0032, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0032, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) pad_effect(PADEFFECT_SPARKS, 0x0112) pad_effect(PADEFFECT_SPARKS, 0x0117) pad_effect(PADEFFECT_SPARKS, 0x0113) diff --git a/src/files/setup/setupstat.c b/src/files/setup/setupstat.c index 86c395c94..ca0a5d744 100644 --- a/src/files/setup/setupstat.c +++ b/src/files/setup/setupstat.c @@ -71,10 +71,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x4601) - briefing(1, 0x4600) - briefing(2, 0x4602) - briefing(3, 0x4603) + briefing(BRIEFINGTYPE_LOCATION, L_STAT(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_STAT(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_STAT(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_STAT(3)) beginobjective(0, L_STAT(4), (DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Kill Skedar King." complete_flags(STAGEFLAG_KING1_DEAD) @@ -125,10 +125,10 @@ u32 props[] = { chr(0x00000000, CHR_MAIAN5, 0x000d, BODY_ELVIS1, HEAD_MAIAN_S, AILIST_HIDE, -1, -1, 200, 100, 0x00012000, 0xc0300000, TEAM_01, SQUADRON_01, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRMAIANSMG, 0x0048, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000) - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) debris(0x0100, MODEL_SKCREV_UNEXP1, 0x00e5, 0x035005e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) debris(0x0100, MODEL_SKCREV_EXP1, 0x00e6, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_SKTNL_UNEXP1, 0x00e7, 0x13500d00, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) debris(0x0100, MODEL_SKTNL_EXP1, 0x00e8, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x1e, 5) @@ -143,21 +143,21 @@ u32 props[] = { stdobject(0x0100, MODEL_SK_FL_NOSHAD_T, 0x014a, 0x035004e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x01, 3) tag(0x2a, 2) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN4, 0x0111, 0x035005e8, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x02, 3) tag(0x2b, 2) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN2, 0x010a, 0x035005e8, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x03, 3) tag(0x2c, 2) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN3, 0x010b, 0x035005e8, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x2d, 2) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN2, 0x010c, 0x035005e1, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x2e, 2) - link_scenery(1, 0, 0) + conditional_scenery(1, 0, 0) debris(0x0100, MODEL_SK_TEMPLECOLUMN3, 0x010d, 0x035005e1, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x27, 1) tag(0x28, 1) diff --git a/src/files/setup/setuptra.c b/src/files/setup/setuptra.c index c4b6b1ab6..1981ea7f3 100644 --- a/src/files/setup/setuptra.c +++ b/src/files/setup/setuptra.c @@ -109,10 +109,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x4801) - briefing(1, 0x4800) - briefing(2, 0x4802) - briefing(3, 0x4803) + briefing(BRIEFINGTYPE_LOCATION, L_TRA(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_TRA(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_TRA(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_TRA(3)) beginobjective(0, L_TRA(9), (DIFFBIT_PA | DIFFBIT_PD)) // "Locate alien tech medpack" complete_flags(STAGEFLAG_COLLECTED_MEDPACK) @@ -355,8 +355,8 @@ u32 props[] = { stdobject(0x0100, MODEL_A51_CRATE1, 0x02f7, 0x000201e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x38, 4) tag(0x21, 4) - link_paths(0x00000002, 0x0173013f, 0x00000000) - link_scenery(1, 2, 3) + blocked_path(2, 0x0173, 0x013f) + conditional_scenery(1, 2, 3) door(0x0100, MODEL_A51_UNEXP2, 0x0424, 0x13520d00, 0x20304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_A51_UNEXP3, 0x0425, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0100, MODEL_A51_EXP2, 0x0423, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) @@ -556,8 +556,8 @@ u32 props[] = { lift(0x0100, MODEL_A51_LIFT_THINWALL, 0x0336, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0336, 0x0337, 0xffffffff, 0x00000001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000071c, 0x0010aaaa, 0x20000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51LIFTDOOR, 0x02e4, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_A51LIFTDOOR, 0x02e3, 0x04000400, 0x00000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000cccc, 0x00010000, 0x00000888, 0x00000888, 0x00000147, 0x00080000, 0x00000000, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-2, -3, 0, 0) - link_objects(-2, -4, 0, 1) + lift_door(-2, -3, 0) + lift_door(-2, -4, 1) stdobject(0x0100, MODEL_A51GRATE, 0x0449, 0x000215e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) tag(0x4f, 4) tag(0x50, 4) @@ -579,7 +579,7 @@ u32 props[] = { tag(0x3a, 2) weapon(0x0100, MODEL_CHRFALCON2SCOPE, 0x0023, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRFALCON2SCOPE, 0x0024, 0x20004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) tag(0x3b, 1) weapon(0x0100, MODEL_MULTI_AMMO_CRATE, 0x0567, 0x00120001, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REMOTEMINE, 0x00ffffff, 0x00000000) pad_effect(0x00000001, 0x00000129) diff --git a/src/files/setup/setupwax.c b/src/files/setup/setupwax.c index b5ed6a481..3848b7e87 100644 --- a/src/files/setup/setupwax.c +++ b/src/files/setup/setupwax.c @@ -60,10 +60,10 @@ struct stagesetup setup = { }; u32 props[] = { - briefing(0, 0x4a01) - briefing(1, 0x4a00) - briefing(2, 0x4a02) - briefing(3, 0x4a03) + briefing(BRIEFINGTYPE_LOCATION, L_WAX(1)) + briefing(BRIEFINGTYPE_TEXT_PA, L_WAX(0)) + briefing(BRIEFINGTYPE_TEXT_SA, L_WAX(2)) + briefing(BRIEFINGTYPE_TEXT_A, L_WAX(3)) beginobjective(0, L_WAX(5), (DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD)) // "Plant explosive device in lab lift" complete_flags(STAGEFLAG_BOMB_PLANTED) @@ -146,9 +146,9 @@ u32 props[] = { door(0x0100, MODEL_DD_LIFTDOOR, 0x009c, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x009b, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x009a, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-4, -6, 0, 2) - link_objects(-4, -7, 0, 1) + lift_door(-4, -5, 0) + lift_door(-4, -6, 2) + lift_door(-4, -7, 1) tag(0x5b, 7) tag(0x5c, 7) tag(0x5d, 7) @@ -160,8 +160,8 @@ u32 props[] = { door(0x0100, MODEL_DD_LIFTDOOR, 0x009e, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x009f, 0x04000400, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000040, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) door(0x0100, MODEL_DD_LIFTDOOR, 0x0225, 0x04000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00007fff, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x000001e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001c00, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) - link_objects(-4, -5, 0, 0) - link_objects(-2, -6, 0, 1) + lift_door(-4, -5, 0) + lift_door(-2, -6, 1) stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00bd, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00be, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0200, MODEL_DD_PLANTSPIKE, 0x00bf, 0x04000501, 0x0000c100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) @@ -335,7 +335,7 @@ u32 props[] = { weapon(0x0100, MODEL_CHRCMP150, 0x000f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x000f, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) chr(0x00000200, 0x10, 0x021f, BODY_FEM_GUARD, HEAD_RANDOM, AILIST_INIT_40HP_GUARD, -1, -1, 500, 100, 0xc0882000, 0x00000000, TEAM_ENEMY, SQUADRON_02, -1, 0, 0x00000000) weapon(0x0100, MODEL_CHRCMP150, 0x0010, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CMP150, 0x00ffffff, 0x00000000) @@ -423,7 +423,7 @@ u32 props[] = { weapon(0x0100, MODEL_CHRFALCON2, CHR_CHIEF, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000) weapon(0x0100, MODEL_CHRFALCON2, CHR_CHIEF, 0x10004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2, 0x00ffffff, 0x00000000) - link_collectibles(-1, -2) + link_guns(-1, -2) tag(0x1f, 1) hovercar(0x004c, MODEL_DD_HOVCOP, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, AILIST_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) tag(0x20, 1) @@ -444,10 +444,10 @@ u32 props[] = { hovercar(0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, AILIST_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) tag(0x28, 1) hovercar(0x004c, MODEL_DD_HOVCAB, 0x0144, 0x20000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000064, 0x00000000, 0x00000000, 0x0fff0000, AILIST_INIT_HOVERCAR, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_DD_AC_UNEXP, 0x019f, 0x13500d00, 0x20304300, 0x04000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_DD_AC_EXP, 0x01a1, 0x031204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) - link_scenery(1, 0, 2) + conditional_scenery(1, 0, 2) door(0x0100, MODEL_DD_ACBOT_UNEXP, 0x019e, 0x13500d00, 0x20304300, 0x04000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000) stdobject(0x0100, MODEL_DD_ACBOT_EXP, 0x01a0, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) stdobject(0x0100, MODEL_A51_CRATE2, 0x0140, 0x00020101, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000) diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index 1cd723dc3..5ffd0b119 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -2623,11 +2623,11 @@ void func0f020d44(struct prop *prop, bool removechr) struct defaultobj *obj = child->obj; struct prop *next = child->next; - if ((obj->hidden & OBJHFLAG_00000400) == 0 + if ((obj->hidden & OBJHFLAG_HASTEXTOVERRIDE) == 0 && obj != eyespyobj && (prop->type != PROPTYPE_PLAYER || (obj->flags3 & OBJFLAG3_00400000) == 0)) { func0f082f88(child); - setupParseObjectWithArg2False(obj, true); + func0f06b34c(obj, true); } child = next; @@ -3779,7 +3779,7 @@ glabel var7f1a87a8 /* f022258: 02002025 */ or $a0,$s0,$zero /* f02225c: 24050001 */ addiu $a1,$zero,0x1 /* f022260: 30cf0004 */ andi $t7,$a2,0x4 -/* f022264: 0fc1ab4b */ jal setupParseObject +/* f022264: 0fc1ab4b */ jal func0f06ad2c /* f022268: 01e03025 */ or $a2,$t7,$zero /* f02226c: 1000007e */ b .L0f022468 /* f022270: 8fbf002c */ lw $ra,0x2c($sp) diff --git a/src/game/chr/chrai.c b/src/game/chr/chrai.c index 5e3681f74..f8133cd04 100644 --- a/src/game/chr/chrai.c +++ b/src/game/chr/chrai.c @@ -233,7 +233,7 @@ bool (*g_CommandPointers[])(void) = { /*0x00d4*/ ai00d4, /*0x00d5*/ aiHovercarBeginPath, /*0x00d6*/ aiSetVehicleSpeed, - /*0x00d7*/ aiSetRotarySpeed, + /*0x00d7*/ aiSetRotorSpeed, /*0x00d8*/ aiNoOp00d8, /*0x00d9*/ aiNoOp00d9, /*0x00da*/ aiSetObjImage, diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index d757c6cda..8f6905791 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -4928,15 +4928,15 @@ bool aiSetVehicleSpeed(void) /** * @cmd 00d7 */ -bool aiSetRotarySpeed(void) +bool aiSetRotorSpeed(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; f32 speedtime = cmd[5] | (cmd[4] << 8); f32 speedaim = (cmd[3] | (cmd[2] << 8)) * M_BADTAU / 3600; if (g_Vars.heli) { - g_Vars.heli->rotaryspeedaim = speedaim; - g_Vars.heli->rotaryspeedtime = speedtime; + g_Vars.heli->rotoryspeedaim = speedaim; + g_Vars.heli->rotoryspeedtime = speedtime; } g_Vars.aioffset += 6; diff --git a/src/game/data/data_003dc0.c b/src/game/data/data_003dc0.c index b1b5671f9..dd794a2be 100644 --- a/src/game/data/data_003dc0.c +++ b/src/game/data/data_003dc0.c @@ -3478,7 +3478,7 @@ u32 var80061bd0 = 0xffffffff; u32 var80061bd4 = 0x3f800000; u32 var80061bd8 = 0x00000000; u32 var80061bdc = 0x00000000; -u32 var80061be0 = 0x3f800000; +f32 g_DoorScale = 1; u32 var80061be4 = 0x00000000; u32 var80061be8 = 0x00000000; u32 var80061bec = 0x00000000; diff --git a/src/game/game_00c490.c b/src/game/game_00c490.c index 04205a8b1..587840f02 100644 --- a/src/game/game_00c490.c +++ b/src/game/game_00c490.c @@ -8,6 +8,7 @@ #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" +#include "game/data/data_02a0e0.h" #include "game/data/data_02da90.h" #include "game/game_00b480.h" #include "game/game_00b820.h" @@ -45,11 +46,6 @@ #include "lib/lib_4a360.h" #include "types.h" -const char var7f1a7f60[] = "-nochr"; -const char var7f1a7f68[] = "-noprop"; -const char var7f1a7f70[] = "-noobj"; -const char var7f1a7f78[] = "-noprop"; - GLOBAL_ASM( glabel func0f00c490 /* f00c490: 27bdffe0 */ addiu $sp,$sp,-32 @@ -440,16 +436,16 @@ glabel func0f00c490 .L0f00ca30: /* f00ca30: 3c013f80 */ lui $at,0x3f80 /* f00ca34: 44810000 */ mtc1 $at,$f0 -/* f00ca38: 3c018007 */ lui $at,%hi(var8006991c) -/* f00ca3c: ac20991c */ sw $zero,%lo(var8006991c)($at) +/* f00ca38: 3c018007 */ lui $at,%hi(g_LiftDoors) +/* f00ca3c: ac20991c */ sw $zero,%lo(g_LiftDoors)($at) /* f00ca40: 3c018007 */ lui $at,%hi(g_PadlockedDoors) /* f00ca44: ac209920 */ sw $zero,%lo(g_PadlockedDoors)($at) -/* f00ca48: 3c018007 */ lui $at,%hi(var80069924) -/* f00ca4c: ac209924 */ sw $zero,%lo(var80069924)($at) -/* f00ca50: 3c018007 */ lui $at,%hi(var80069928) -/* f00ca54: ac209928 */ sw $zero,%lo(var80069928)($at) -/* f00ca58: 3c018007 */ lui $at,%hi(var8006992c) -/* f00ca5c: ac20992c */ sw $zero,%lo(var8006992c)($at) +/* f00ca48: 3c018007 */ lui $at,%hi(g_SafeItems) +/* f00ca4c: ac209924 */ sw $zero,%lo(g_SafeItems)($at) +/* f00ca50: 3c018007 */ lui $at,%hi(g_LinkedScenery) +/* f00ca54: ac209928 */ sw $zero,%lo(g_LinkedScenery)($at) +/* f00ca58: 3c018007 */ lui $at,%hi(g_BlockedPaths) +/* f00ca5c: ac20992c */ sw $zero,%lo(g_BlockedPaths)($at) /* f00ca60: 3c018007 */ lui $at,%hi(var80069930) /* f00ca64: ac209930 */ sw $zero,%lo(var80069930)($at) /* f00ca68: 3c018007 */ lui $at,%hi(var80069934) @@ -569,34 +565,34 @@ glabel func0f00c490 /* f00cc10: 00000000 */ nop ); -void func0f00cc14(struct var8006991c *thing) +void addLiftDoor(struct linkliftdoorobj *link) { - thing->next = var8006991c; - var8006991c = thing; + link->next = g_LiftDoors; + g_LiftDoors = link; } -void func0f00cc2c(struct padlockeddoor *door) +void addPadlockedDoor(struct padlockeddoorobj *link) { - door->next = g_PadlockedDoors; - g_PadlockedDoors = door; + link->next = g_PadlockedDoors; + g_PadlockedDoors = link; } -void func0f00cc44(struct var80069924 *thing) +void addSafeItem(struct safeitemobj *link) { - thing->next = var80069924; - var80069924 = thing; + link->next = g_SafeItems; + g_SafeItems = link; } -void func0f00cc5c(struct var80069928 *thing) +void addConditionalScenery(struct linksceneryobj *link) { - thing->next = var80069928; - var80069928 = thing; + link->next = g_LinkedScenery; + g_LinkedScenery = link; } -void func0f00cc74(struct var8006992c *thing) +void addBlockedPath(struct blockedpathobj *blockedpath) { - thing->next = var8006992c; - var8006992c = thing; + blockedpath->next = g_BlockedPaths; + g_BlockedPaths = blockedpath; } GLOBAL_ASM( @@ -768,7 +764,7 @@ glabel setupCountCommandType ); GLOBAL_ASM( -glabel func0f00cee4 +glabel setupGenericObject .late_rodata glabel var7f1a7f80 .word 0x358637bd @@ -1311,7 +1307,7 @@ glabel var7f1a7f80 * The Marquis of Queensbury Rules (everyone unarmed) and Enemy Rockets cheats * are implemented here. */ -void weaponAssignToHome(struct weaponobj *weapon, u32 arg1) +void weaponAssignToHome(struct weaponobj *weapon, s32 cmdindex) { if (weapon->base.flags & OBJFLAG_ASSIGNEDTOCHR) { u32 stack[2]; @@ -1420,7 +1416,7 @@ void weaponAssignToHome(struct weaponobj *weapon, u32 arg1) shield->base.flags2 |= OBJFLAG2_00200000 | OBJFLAG2_00004000; shield->initialamount = 1; shield->amount = 1; - func0f00cee4(&shield->base, arg1); + setupGenericObject(&shield->base, cmdindex); giveweapon = false; } break; @@ -1429,44 +1425,44 @@ void weaponAssignToHome(struct weaponobj *weapon, u32 arg1) if (weapon->weaponnum != WEAPON_NONE && giveweapon) { func0f011560(weapon->weaponnum); - func0f00cee4(&weapon->base, arg1); + setupGenericObject(&weapon->base, cmdindex); } } } -void func0f00d904(struct defaultobj *obj, u32 arg1) +void setupHat(struct hatobj *hat, s32 cmdindex) { - if (obj->flags & OBJFLAG_ASSIGNEDTOCHR) { - struct chrdata *chr = chrFindByLiteralId(obj->pad); + if (hat->base.flags & OBJFLAG_ASSIGNEDTOCHR) { + struct chrdata *chr = chrFindByLiteralId(hat->base.pad); if (chr && chr->prop && chr->model) { - func0f089db8(obj, chr); + hatAssignToChr(hat, chr); } } else { - func0f00cee4(obj, arg1); + setupGenericObject(&hat->base, cmdindex); } } -void func0f00d978(struct defaultobj *obj, u32 arg1) +void setupKey(struct keyobj *key, s32 cmdindex) { - func0f00cee4(obj, arg1); + setupGenericObject(&key->base, cmdindex); } -void func0f00d998(struct defaultobj *obj, u32 arg1) +void setupMine(struct mineobj *mine, s32 cmdindex) { - obj->type = OBJTYPE_WEAPON; + mine->base.type = OBJTYPE_WEAPON; - func0f00cee4(obj, arg1); + setupGenericObject(&mine->base, cmdindex); if (g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) { - obj->hidden = obj->hidden & 0x0fffffff | OBJHFLAG_20000000; + mine->base.hidden = mine->base.hidden & 0x0fffffff | OBJHFLAG_20000000; } - obj->prop->unk3f_02 = 1; + mine->base.prop->unk3f_02 = 1; } GLOBAL_ASM( -glabel func0f00da10 +glabel setupCamera .late_rodata glabel var7f1a8048 .word 0x40c907a9 @@ -1478,7 +1474,7 @@ glabel var7f1a804c /* f00da18: afb00040 */ sw $s0,0x40($sp) /* f00da1c: 00808025 */ or $s0,$a0,$zero /* f00da20: f7b60038 */ sdc1 $f22,0x38($sp) -/* f00da24: 0fc033b9 */ jal func0f00cee4 +/* f00da24: 0fc033b9 */ jal setupGenericObject /* f00da28: f7b40030 */ sdc1 $f20,0x30($sp) /* f00da2c: 860e005c */ lh $t6,0x5c($s0) /* f00da30: 05c2006e */ bltzl $t6,.L0f00dbec @@ -1601,7 +1597,7 @@ glabel var7f1a804c ); GLOBAL_ASM( -glabel func0f00dc00 +glabel setupAutogun .late_rodata glabel var7f1a8050 .word 0x40c907a9 @@ -1611,7 +1607,7 @@ glabel var7f1a8054 /* f00dc00: 27bdff70 */ addiu $sp,$sp,-144 /* f00dc04: afbf001c */ sw $ra,0x1c($sp) /* f00dc08: afb00018 */ sw $s0,0x18($sp) -/* f00dc0c: 0fc033b9 */ jal func0f00cee4 +/* f00dc0c: 0fc033b9 */ jal setupGenericObject /* f00dc10: 00808025 */ or $s0,$a0,$zero /* f00dc14: 8e0e0080 */ lw $t6,0x80($s0) /* f00dc18: 8e0f0084 */ lw $t7,0x84($s0) @@ -1715,13 +1711,13 @@ glabel var7f1a8054 /* f00dd98: 00000000 */ nop ); -void func0f00dd9c(struct defaultobj *obj, u32 arg1) +void setupHangingMonitors(struct hangingmonitorsobj *monitors, s32 cmdindex) { - func0f00cee4(obj, arg1); + setupGenericObject(&monitors->base, cmdindex); } GLOBAL_ASM( -glabel func0f00ddbc +glabel setupSingleMonitor .late_rodata glabel var7f1a8058 .word 0x3ebba0c0 @@ -1896,7 +1892,7 @@ glabel var7f1a8058 /* f00e038: 10000004 */ b .L0f00e04c /* f00e03c: 8e020014 */ lw $v0,0x14($s0) .L0f00e040: -/* f00e040: 0fc033b9 */ jal func0f00cee4 +/* f00e040: 0fc033b9 */ jal setupGenericObject /* f00e044: 02002025 */ or $a0,$s0,$zero /* f00e048: 8e020014 */ lw $v0,0x14($s0) .L0f00e04c: @@ -1918,7 +1914,7 @@ glabel var7f1a8058 ); GLOBAL_ASM( -glabel func0f00e084 +glabel setupMultiMonitor /* f00e084: 27bdffe0 */ addiu $sp,$sp,-32 /* f00e088: afb00018 */ sw $s0,0x18($sp) /* f00e08c: 00808025 */ or $s0,$a0,$zero @@ -2009,7 +2005,7 @@ glabel func0f00e084 /* f00e1d0: 0fc1fe49 */ jal imageSlotSetImage /* f00e1d4: 9205022f */ lbu $a1,0x22f($s0) /* f00e1d8: 02002025 */ or $a0,$s0,$zero -/* f00e1dc: 0fc033b9 */ jal func0f00cee4 +/* f00e1dc: 0fc033b9 */ jal setupGenericObject /* f00e1e0: 8fa50024 */ lw $a1,0x24($sp) /* f00e1e4: 8fbf001c */ lw $ra,0x1c($sp) /* f00e1e8: 8fb00018 */ lw $s0,0x18($sp) @@ -2018,7 +2014,7 @@ glabel func0f00e084 /* f00e1f4: 00000000 */ nop ); -void func0f00e1f8(s32 padnum) +s32 func0f00e1f8(s32 padnum) { f32 mult; struct coord centre; @@ -2039,10 +2035,10 @@ void func0f00e1f8(s32 padnum) centre.y = centre.y - pad.up.y * mult; centre.z = centre.z - pad.up.z * mult; - func0f164e8c(¢re, &coord); + return func0f164e8c(¢re, &coord); } -void func0f00e2b0(s32 padnum) +s32 func0f00e2b0(s32 padnum) { f32 mult; struct coord centre; @@ -2063,11 +2059,11 @@ void func0f00e2b0(s32 padnum) centre.y = centre.y - pad.normal.y * mult; centre.z = centre.z - pad.normal.z * mult; - func0f164e8c(¢re, &coord); + return func0f164e8c(¢re, &coord); } GLOBAL_ASM( -glabel func0f00e368 +glabel setupDoor .late_rodata glabel var7f1a805c .word 0x3fc907a9 @@ -2105,8 +2101,8 @@ glabel var7f1a8064 /* f00e3c8: 2405007e */ addiu $a1,$zero,0x7e /* f00e3cc: 0fc456ac */ jal padUnpack /* f00e3d0: 27a60168 */ addiu $a2,$sp,0x168 -/* f00e3d4: 3c018006 */ lui $at,%hi(var80061be0) -/* f00e3d8: c42c1be0 */ lwc1 $f12,%lo(var80061be0)($at) +/* f00e3d4: 3c018006 */ lui $at,%hi(g_DoorScale) +/* f00e3d8: c42c1be0 */ lwc1 $f12,%lo(g_DoorScale)($at) /* f00e3dc: 3c013f80 */ lui $at,0x3f80 /* f00e3e0: 44812000 */ mtc1 $at,$f4 /* f00e3e4: c7a60198 */ lwc1 $f6,0x198($sp) @@ -2457,7 +2453,7 @@ glabel var7f1a8064 ); GLOBAL_ASM( -glabel func0f00e90c +glabel setupHov /* f00e90c: 44801000 */ mtc1 $zero,$f2 /* f00e910: 27bdffe8 */ addiu $sp,$sp,-24 /* f00e914: afbf0014 */ sw $ra,0x14($sp) @@ -2635,7 +2631,7 @@ glabel func0f00eb64 /* f00eb7c: 44812000 */ mtc1 $at,$f4 /* f00eb80: 27bdffa0 */ addiu $sp,$sp,-96 /* f00eb84: afb00018 */ sw $s0,0x18($sp) -/* f00eb88: 3c018006 */ lui $at,%hi(var80061be0) +/* f00eb88: 3c018006 */ lui $at,%hi(g_DoorScale) /* f00eb8c: 3c028008 */ lui $v0,%hi(g_Props) /* f00eb90: 3c038008 */ lui $v1,%hi(propexplosiontypes) /* f00eb94: afbf001c */ sw $ra,0x1c($sp) @@ -2644,7 +2640,7 @@ glabel func0f00eb64 /* f00eba0: 00008025 */ or $s0,$zero,$zero /* f00eba4: 2463be34 */ addiu $v1,$v1,%lo(propexplosiontypes) /* f00eba8: 2442b06c */ addiu $v0,$v0,%lo(g_Props) -/* f00ebac: e4241be0 */ swc1 $f4,%lo(var80061be0)($at) +/* f00ebac: e4241be0 */ swc1 $f4,%lo(g_DoorScale)($at) .L0f00ebb0: /* f00ebb0: 24420008 */ addiu $v0,$v0,0x8 /* f00ebb4: 0043082b */ sltu $at,$v0,$v1 @@ -3043,1812 +3039,802 @@ glabel func0f00eb64 /* f00f170: 27bd0060 */ addiu $sp,$sp,0x60 ); -GLOBAL_ASM( -glabel func0f00f174 -.late_rodata -glabel var7f1a8068 -.word func0f00f174+0x4f4 # f00f668 -glabel var7f1a806c -.word func0f00f174+0x520 # f00f694 -glabel var7f1a8070 -.word func0f00f174+0xb1c # f00fc90 -glabel var7f1a8074 -.word func0f00f174+0x570 # f00f6e4 -glabel var7f1a8078 -.word func0f00f174+0xb1c # f00fc90 -glabel var7f1a807c -.word func0f00f174+0x5d0 # f00f744 -glabel var7f1a8080 -.word func0f00f174+0xb1c # f00fc90 -glabel var7f1a8084 -.word func0f00f174+0x540 # f00f6b4 -glabel var7f1a8088 -.word func0f00f174+0x4d0 # f00f644 -glabel var7f1a808c -.word func0f00f174+0x654 # f00f7c8 -glabel var7f1a8090 -.word func0f00f174+0x680 # f00f7f4 -glabel var7f1a8094 -.word func0f00f174+0x628 # f00f79c -glabel var7f1a8098 -.word func0f00f174+0x5fc # f00f770 -glabel var7f1a809c -.word func0f00f174+0x111c # f010290 -glabel var7f1a80a0 -.word func0f00f174+0xb1c # f00fc90 -glabel var7f1a80a4 -.word func0f00f174+0x111c # f010290 -glabel var7f1a80a8 -.word func0f00f174+0x5a0 # f00f714 -glabel var7f1a80ac -.word func0f00f174+0x49c # f00f610 -glabel var7f1a80b0 -.word func0f00f174+0x111c # f010290 -glabel var7f1a80b4 -.word func0f00f174+0xb48 # f00fcbc -glabel var7f1a80b8 -.word func0f00f174+0x6ac # f00f820 -glabel var7f1a80bc -.word func0f00f174+0xf38 # f0100ac -glabel var7f1a80c0 -.word func0f00f174+0x105c # f0101d0 -glabel var7f1a80c4 -.word func0f00f174+0x111c # f010290 -glabel var7f1a80c8 -.word func0f00f174+0x111c # f010290 -glabel var7f1a80cc -.word func0f00f174+0x111c # f010290 -glabel var7f1a80d0 -.word func0f00f174+0x111c # f010290 -glabel var7f1a80d4 -.word func0f00f174+0x111c # f010290 -glabel var7f1a80d8 -.word func0f00f174+0x111c # f010290 -glabel var7f1a80dc -.word func0f00f174+0x10c0 # f010234 -glabel var7f1a80e0 -.word func0f00f174+0x111c # f010290 -glabel var7f1a80e4 -.word func0f00f174+0x10a0 # f010214 -glabel var7f1a80e8 -.word func0f00f174+0x10b0 # f010224 -glabel var7f1a80ec -.word func0f00f174+0x111c # f010290 -glabel var7f1a80f0 -.word func0f00f174+0xf98 # f01010c -glabel var7f1a80f4 -.word func0f00f174+0xb1c # f00fc90 -glabel var7f1a80f8 -.word func0f00f174+0xf68 # f0100dc -glabel var7f1a80fc -.word func0f00f174+0x111c # f010290 -glabel var7f1a8100 -.word func0f00f174+0xc20 # f00fd94 -glabel var7f1a8104 -.word func0f00f174+0xec8 # f01003c -glabel var7f1a8108 -.word func0f00f174+0xb1c # f00fc90 -glabel var7f1a810c -.word func0f00f174+0xa00 # f00fb74 -glabel var7f1a8110 -.word func0f00f174+0xb1c # f00fc90 -glabel var7f1a8114 -.word func0f00f174+0x111c # f010290 -glabel var7f1a8118 -.word func0f00f174+0x111c # f010290 -glabel var7f1a811c -.word func0f00f174+0xfec # f010160 -glabel var7f1a8120 -.word func0f00f174+0x708 # f00f87c -glabel var7f1a8124 -.word func0f00f174+0x768 # f00f8dc -glabel var7f1a8128 -.word func0f00f174+0x111c # f010290 -glabel var7f1a812c -.word func0f00f174+0x111c # f010290 -glabel var7f1a8130 -.word func0f00f174+0x938 # f00faac -glabel var7f1a8134 -.word func0f00f174+0x111c # f010290 -glabel var7f1a8138 -.word func0f00f174+0x900 # f00fa74 -glabel var7f1a813c -.word func0f00f174+0x9a8 # f00fb1c -glabel var7f1a8140 -.word func0f00f174+0xcc8 # f00fe3c -glabel var7f1a8144 -.word func0f00f174+0x10d0 # f010244 -glabel var7f1a8148 -.word func0f00f174+0xd80 # f00fef4 -glabel var7f1a814c -.word func0f00f174+0x10f8 # f01026c -glabel var7f1a8150 -.word func0f00f174+0xa48 # f00fbbc -glabel var7f1a8154 -.word 0x4096c5bf -glabel var7f1a8158 -.word 0x404907a9 -glabel var7f1a815c -.word 0x3d4ccccd -glabel var7f1a8160 -.word 0x3f59999a -glabel var7f1a8164 -.word 0x3e4ccccd -glabel var7f1a8168 -.word func0f00f174+0x12ec # f010460 -glabel var7f1a816c -.word func0f00f174+0x12ec # f010460 -glabel var7f1a8170 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a8174 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a8178 -.word func0f00f174+0x12ec # f010460 -glabel var7f1a817c -.word func0f00f174+0x12ec # f010460 -glabel var7f1a8180 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a8184 -.word func0f00f174+0x12ec # f010460 -glabel var7f1a8188 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a818c -.word func0f00f174+0x16dc # f010850 -glabel var7f1a8190 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a8194 -.word func0f00f174+0x1358 # f0104cc -glabel var7f1a8198 -.word func0f00f174+0x12ec # f010460 -glabel var7f1a819c -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81a0 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81a4 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81a8 -.word func0f00f174+0x13ac # f010520 -glabel var7f1a81ac -.word func0f00f174+0x12ec # f010460 -glabel var7f1a81b0 -.word func0f00f174+0x12ec # f010460 -glabel var7f1a81b4 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81b8 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81bc -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81c0 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81c4 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81c8 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81cc -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81d0 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81d4 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81d8 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81dc -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81e0 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81e4 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81e8 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81ec -.word func0f00f174+0x12ec # f010460 -glabel var7f1a81f0 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81f4 -.word func0f00f174+0x14d8 # f01064c -glabel var7f1a81f8 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a81fc -.word func0f00f174+0x16dc # f010850 -glabel var7f1a8200 -.word func0f00f174+0x12ec # f010460 -glabel var7f1a8204 -.word func0f00f174+0x12ec # f010460 -glabel var7f1a8208 -.word func0f00f174+0x12ec # f010460 -glabel var7f1a820c -.word func0f00f174+0x1414 # f010588 -glabel var7f1a8210 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a8214 -.word func0f00f174+0x16dc # f010850 -glabel var7f1a8218 -.word func0f00f174+0x12ec # f010460 -glabel var7f1a821c -.word func0f00f174+0x16dc # f010850 -glabel var7f1a8220 -.word func0f00f174+0x154c # f0106c0 -glabel var7f1a8224 -.word func0f00f174+0x1690 # f010804 -.text -/* f00f174: 27bdfdb8 */ addiu $sp,$sp,-584 -/* f00f178: afbf004c */ sw $ra,0x4c($sp) -/* f00f17c: afa40248 */ sw $a0,0x248($sp) -/* f00f180: 3c057f1a */ lui $a1,%hi(var7f1a7f60) -/* f00f184: afbe0048 */ sw $s8,0x48($sp) -/* f00f188: afb70044 */ sw $s7,0x44($sp) -/* f00f18c: afb60040 */ sw $s6,0x40($sp) -/* f00f190: afb5003c */ sw $s5,0x3c($sp) -/* f00f194: afb40038 */ sw $s4,0x38($sp) -/* f00f198: afb30034 */ sw $s3,0x34($sp) -/* f00f19c: afb20030 */ sw $s2,0x30($sp) -/* f00f1a0: afb1002c */ sw $s1,0x2c($sp) -/* f00f1a4: afb00028 */ sw $s0,0x28($sp) -/* f00f1a8: f7b60020 */ sdc1 $f22,0x20($sp) -/* f00f1ac: f7b40018 */ sdc1 $f20,0x18($sp) -/* f00f1b0: 24a57f60 */ addiu $a1,$a1,%lo(var7f1a7f60) -/* f00f1b4: 0c004c04 */ jal func00013010 -/* f00f1b8: 24040001 */ addiu $a0,$zero,0x1 -/* f00f1bc: 2c430001 */ sltiu $v1,$v0,0x1 -/* f00f1c0: 10600005 */ beqz $v1,.L0f00f1d8 -/* f00f1c4: 24040001 */ addiu $a0,$zero,0x1 -/* f00f1c8: 3c057f1a */ lui $a1,%hi(var7f1a7f68) -/* f00f1cc: 0c004c04 */ jal func00013010 -/* f00f1d0: 24a57f68 */ addiu $a1,$a1,%lo(var7f1a7f68) -/* f00f1d4: 2c430001 */ sltiu $v1,$v0,0x1 -.L0f00f1d8: -/* f00f1d8: 3c057f1a */ lui $a1,%hi(var7f1a7f70) -/* f00f1dc: afa30244 */ sw $v1,0x244($sp) -/* f00f1e0: 24a57f70 */ addiu $a1,$a1,%lo(var7f1a7f70) -/* f00f1e4: 0c004c04 */ jal func00013010 -/* f00f1e8: 24040001 */ addiu $a0,$zero,0x1 -/* f00f1ec: 2c440001 */ sltiu $a0,$v0,0x1 -/* f00f1f0: 10800005 */ beqz $a0,.L0f00f208 -/* f00f1f4: 3c057f1a */ lui $a1,%hi(var7f1a7f78) -/* f00f1f8: 24040001 */ addiu $a0,$zero,0x1 -/* f00f1fc: 0c004c04 */ jal func00013010 -/* f00f200: 24a57f78 */ addiu $a1,$a1,%lo(var7f1a7f78) -/* f00f204: 2c440001 */ sltiu $a0,$v0,0x1 -.L0f00f208: -/* f00f208: 8fa50248 */ lw $a1,0x248($sp) -/* f00f20c: 24010022 */ addiu $at,$zero,0x22 -/* f00f210: 0080a825 */ or $s5,$a0,$zero -/* f00f214: 10a10006 */ beq $a1,$at,.L0f00f230 -/* f00f218: 2418582a */ addiu $t8,$zero,0x582a -/* f00f21c: 38a20030 */ xori $v0,$a1,0x30 -/* f00f220: 2c420001 */ sltiu $v0,$v0,0x1 -/* f00f224: 2c430001 */ sltiu $v1,$v0,0x1 -/* f00f228: 5460000e */ bnezl $v1,.L0f00f264 -/* f00f22c: afa3023c */ sw $v1,0x23c($sp) -.L0f00f230: -/* f00f230: 3c03800a */ lui $v1,%hi(g_Vars+0x298) -/* f00f234: 8c63a258 */ lw $v1,%lo(g_Vars+0x298)($v1) -/* f00f238: 286e0000 */ slti $t6,$v1,0x0 -/* f00f23c: 39ce0001 */ xori $t6,$t6,0x1 -/* f00f240: 2dc30001 */ sltiu $v1,$t6,0x1 -/* f00f244: 50600007 */ beqzl $v1,.L0f00f264 -/* f00f248: afa3023c */ sw $v1,0x23c($sp) -/* f00f24c: 3c03800a */ lui $v1,%hi(g_Vars+0x29c) -/* f00f250: 8c63a25c */ lw $v1,%lo(g_Vars+0x29c)($v1) -/* f00f254: 286f0000 */ slti $t7,$v1,0x0 -/* f00f258: 39ef0001 */ xori $t7,$t7,0x1 -/* f00f25c: 2de30001 */ sltiu $v1,$t7,0x1 -/* f00f260: afa3023c */ sw $v1,0x23c($sp) -.L0f00f264: -/* f00f264: 3c01800a */ lui $at,%hi(g_Vars+0x2b8) -/* f00f268: 3c03800a */ lui $v1,%hi(g_Briefing+0xc) -/* f00f26c: 3c02800a */ lui $v0,%hi(g_Briefing) -/* f00f270: afa00238 */ sw $zero,0x238($sp) -/* f00f274: afa00234 */ sw $zero,0x234($sp) -/* f00f278: ac20a278 */ sw $zero,%lo(g_Vars+0x2b8)($at) -/* f00f27c: 2442dfc8 */ addiu $v0,$v0,%lo(g_Briefing) -/* f00f280: 2463dfd4 */ addiu $v1,$v1,%lo(g_Briefing+0xc) -.L0f00f284: -/* f00f284: 24420002 */ addiu $v0,$v0,0x2 -/* f00f288: a4400000 */ sh $zero,0x0($v0) -/* f00f28c: 1443fffd */ bne $v0,$v1,.L0f00f284 -/* f00f290: a440000c */ sh $zero,0xc($v0) -/* f00f294: 3c01800a */ lui $at,%hi(g_Briefing) -/* f00f298: a438dfc8 */ sh $t8,%lo(g_Briefing)($at) -/* f00f29c: 28a1005a */ slti $at,$a1,0x5a -/* f00f2a0: 10200576 */ beqz $at,.L0f01087c -/* f00f2a4: 3c19800a */ lui $t9,%hi(g_StageSetup+0x1c) -/* f00f2a8: 8f39d04c */ lw $t9,%lo(g_StageSetup+0x1c)($t9) -/* f00f2ac: 13200003 */ beqz $t9,.L0f00f2bc -/* f00f2b0: 00000000 */ nop -/* f00f2b4: 0fc04aa8 */ jal func0f012aa0 -/* f00f2b8: 00000000 */ nop -.L0f00f2bc: -/* f00f2bc: 0fc04b54 */ jal func0f012d50 -/* f00f2c0: 00000000 */ nop -/* f00f2c4: 8fab0244 */ lw $t3,0x244($sp) -/* f00f2c8: 11600015 */ beqz $t3,.L0f00f320 -/* f00f2cc: 00000000 */ nop -/* f00f2d0: 0fc03398 */ jal setupCountCommandType -/* f00f2d4: 24040009 */ addiu $a0,$zero,0x9 -/* f00f2d8: 3c03800a */ lui $v1,%hi(g_Vars) -/* f00f2dc: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars) -/* f00f2e0: 8c6c0318 */ lw $t4,0x318($v1) -/* f00f2e4: 00402025 */ or $a0,$v0,$zero -/* f00f2e8: 3c0d800a */ lui $t5,%hi(g_MissionConfig+0x3) -/* f00f2ec: 15800008 */ bnez $t4,.L0f00f310 -/* f00f2f0: 00000000 */ nop -/* f00f2f4: 81aedfeb */ lb $t6,%lo(g_MissionConfig+0x3)($t5) -/* f00f2f8: 05c10005 */ bgez $t6,.L0f00f310 -/* f00f2fc: 00000000 */ nop -/* f00f300: 8c620474 */ lw $v0,0x474($v1) -/* f00f304: 18400002 */ blez $v0,.L0f00f310 -/* f00f308: 00000000 */ nop -/* f00f30c: 00822021 */ addu $a0,$a0,$v0 -.L0f00f310: -/* f00f310: 0fc02d8b */ jal func0f00b62c -/* f00f314: 00000000 */ nop -/* f00f318: 10000003 */ b .L0f00f328 -/* f00f31c: 00000000 */ nop -.L0f00f320: -/* f00f320: 0fc02d8b */ jal func0f00b62c -/* f00f324: 00002025 */ or $a0,$zero,$zero -.L0f00f328: -/* f00f328: 3c06800a */ lui $a2,%hi(g_Vars) -/* f00f32c: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars) -/* f00f330: 8ccf006c */ lw $t7,0x6c($a2) -/* f00f334: 00008025 */ or $s0,$zero,$zero -/* f00f338: 00002825 */ or $a1,$zero,$zero -/* f00f33c: 11e00003 */ beqz $t7,.L0f00f34c -/* f00f340: 00002025 */ or $a0,$zero,$zero -/* f00f344: 10000001 */ b .L0f00f34c -/* f00f348: 24050001 */ addiu $a1,$zero,0x1 -.L0f00f34c: -/* f00f34c: 8cd80068 */ lw $t8,0x68($a2) -/* f00f350: 00001025 */ or $v0,$zero,$zero -/* f00f354: 00001825 */ or $v1,$zero,$zero -/* f00f358: 13000003 */ beqz $t8,.L0f00f368 -/* f00f35c: 00000000 */ nop -/* f00f360: 10000001 */ b .L0f00f368 -/* f00f364: 24040001 */ addiu $a0,$zero,0x1 -.L0f00f368: -/* f00f368: 8cd90064 */ lw $t9,0x64($a2) -/* f00f36c: 13200003 */ beqz $t9,.L0f00f37c -/* f00f370: 00000000 */ nop -/* f00f374: 10000001 */ b .L0f00f37c -/* f00f378: 24020001 */ addiu $v0,$zero,0x1 -.L0f00f37c: -/* f00f37c: 8ccb0070 */ lw $t3,0x70($a2) -/* f00f380: 11600003 */ beqz $t3,.L0f00f390 -/* f00f384: 00000000 */ nop -/* f00f388: 10000001 */ b .L0f00f390 -/* f00f38c: 24030001 */ addiu $v1,$zero,0x1 -.L0f00f390: -/* f00f390: 00626021 */ addu $t4,$v1,$v0 -/* f00f394: 01846821 */ addu $t5,$t4,$a0 -/* f00f398: 01a57021 */ addu $t6,$t5,$a1 -/* f00f39c: 19c00027 */ blez $t6,.L0f00f43c -/* f00f3a0: 00000000 */ nop -.L0f00f3a4: -/* f00f3a4: 0fc4a24b */ jal setCurrentPlayerNum -/* f00f3a8: 02002025 */ or $a0,$s0,$zero -/* f00f3ac: 0fc03398 */ jal setupCountCommandType -/* f00f3b0: 2404000e */ addiu $a0,$zero,0xe -/* f00f3b4: 0fc0494c */ jal func0f012530 -/* f00f3b8: 00402025 */ or $a0,$v0,$zero -/* f00f3bc: 3c06800a */ lui $a2,%hi(g_Vars) -/* f00f3c0: 24c69fc0 */ addiu $a2,$a2,%lo(g_Vars) -/* f00f3c4: 8ccf006c */ lw $t7,0x6c($a2) -/* f00f3c8: 26100001 */ addiu $s0,$s0,0x1 -/* f00f3cc: 00002825 */ or $a1,$zero,$zero -/* f00f3d0: 11e00003 */ beqz $t7,.L0f00f3e0 -/* f00f3d4: 00002025 */ or $a0,$zero,$zero -/* f00f3d8: 10000001 */ b .L0f00f3e0 -/* f00f3dc: 24050001 */ addiu $a1,$zero,0x1 -.L0f00f3e0: -/* f00f3e0: 8cd80068 */ lw $t8,0x68($a2) -/* f00f3e4: 00001025 */ or $v0,$zero,$zero -/* f00f3e8: 00001825 */ or $v1,$zero,$zero -/* f00f3ec: 13000003 */ beqz $t8,.L0f00f3fc -/* f00f3f0: 00000000 */ nop -/* f00f3f4: 10000001 */ b .L0f00f3fc -/* f00f3f8: 24040001 */ addiu $a0,$zero,0x1 -.L0f00f3fc: -/* f00f3fc: 8cd90064 */ lw $t9,0x64($a2) -/* f00f400: 13200003 */ beqz $t9,.L0f00f410 -/* f00f404: 00000000 */ nop -/* f00f408: 10000001 */ b .L0f00f410 -/* f00f40c: 24020001 */ addiu $v0,$zero,0x1 -.L0f00f410: -/* f00f410: 8ccb0070 */ lw $t3,0x70($a2) -/* f00f414: 11600003 */ beqz $t3,.L0f00f424 -/* f00f418: 00000000 */ nop -/* f00f41c: 10000001 */ b .L0f00f424 -/* f00f420: 24030001 */ addiu $v1,$zero,0x1 -.L0f00f424: -/* f00f424: 00626021 */ addu $t4,$v1,$v0 -/* f00f428: 01846821 */ addu $t5,$t4,$a0 -/* f00f42c: 01a57021 */ addu $t6,$t5,$a1 -/* f00f430: 020e082a */ slt $at,$s0,$t6 -/* f00f434: 1420ffdb */ bnez $at,.L0f00f3a4 -/* f00f438: 00000000 */ nop -.L0f00f43c: -/* f00f43c: 3c0f800a */ lui $t7,%hi(g_StageSetup+0x10) -/* f00f440: 8defd040 */ lw $t7,%lo(g_StageSetup+0x10)($t7) -/* f00f444: 11e0050f */ beqz $t7,.L0f010884 -/* f00f448: 00000000 */ nop -/* f00f44c: 0fc5b367 */ jal getDifficulty -/* f00f450: 00000000 */ nop -/* f00f454: 3c0a800a */ lui $t2,%hi(g_Vars) -/* f00f458: 254a9fc0 */ addiu $t2,$t2,%lo(g_Vars) -/* f00f45c: 8d4b0314 */ lw $t3,0x314($t2) -/* f00f460: 24580004 */ addiu $t8,$v0,0x4 -/* f00f464: 24190001 */ addiu $t9,$zero,0x1 -/* f00f468: 11600052 */ beqz $t3,.L0f00f5b4 -/* f00f46c: 0319a004 */ sllv $s4,$t9,$t8 -/* f00f470: 8d46006c */ lw $a2,0x6c($t2) -/* f00f474: 24010002 */ addiu $at,$zero,0x2 -/* f00f478: 00002825 */ or $a1,$zero,$zero -/* f00f47c: 10c00003 */ beqz $a2,.L0f00f48c -/* f00f480: 00002025 */ or $a0,$zero,$zero -/* f00f484: 10000001 */ b .L0f00f48c -/* f00f488: 24050001 */ addiu $a1,$zero,0x1 -.L0f00f48c: -/* f00f48c: 8d470068 */ lw $a3,0x68($t2) -/* f00f490: 00001025 */ or $v0,$zero,$zero -/* f00f494: 00001825 */ or $v1,$zero,$zero -/* f00f498: 10e00003 */ beqz $a3,.L0f00f4a8 -/* f00f49c: 00000000 */ nop -/* f00f4a0: 10000001 */ b .L0f00f4a8 -/* f00f4a4: 24040001 */ addiu $a0,$zero,0x1 -.L0f00f4a8: -/* f00f4a8: 8d480064 */ lw $t0,0x64($t2) -/* f00f4ac: 11000003 */ beqz $t0,.L0f00f4bc -/* f00f4b0: 00000000 */ nop -/* f00f4b4: 10000001 */ b .L0f00f4bc -/* f00f4b8: 24020001 */ addiu $v0,$zero,0x1 -.L0f00f4bc: -/* f00f4bc: 8d490070 */ lw $t1,0x70($t2) -/* f00f4c0: 11200003 */ beqz $t1,.L0f00f4d0 -/* f00f4c4: 00000000 */ nop -/* f00f4c8: 10000001 */ b .L0f00f4d0 -/* f00f4cc: 24030001 */ addiu $v1,$zero,0x1 -.L0f00f4d0: -/* f00f4d0: 00626021 */ addu $t4,$v1,$v0 -/* f00f4d4: 01846821 */ addu $t5,$t4,$a0 -/* f00f4d8: 01a57021 */ addu $t6,$t5,$a1 -/* f00f4dc: 15c10004 */ bne $t6,$at,.L0f00f4f0 -/* f00f4e0: 3c010040 */ lui $at,0x40 -/* f00f4e4: 02817825 */ or $t7,$s4,$at -/* f00f4e8: 10000032 */ b .L0f00f5b4 -/* f00f4ec: 01e0a025 */ or $s4,$t7,$zero -.L0f00f4f0: -/* f00f4f0: 10c00003 */ beqz $a2,.L0f00f500 -/* f00f4f4: 24010003 */ addiu $at,$zero,0x3 -/* f00f4f8: 10000002 */ b .L0f00f504 -/* f00f4fc: 24050001 */ addiu $a1,$zero,0x1 -.L0f00f500: -/* f00f500: 00002825 */ or $a1,$zero,$zero -.L0f00f504: -/* f00f504: 10e00003 */ beqz $a3,.L0f00f514 -/* f00f508: 00002025 */ or $a0,$zero,$zero -/* f00f50c: 10000001 */ b .L0f00f514 -/* f00f510: 24040001 */ addiu $a0,$zero,0x1 -.L0f00f514: -/* f00f514: 11000003 */ beqz $t0,.L0f00f524 -/* f00f518: 00001025 */ or $v0,$zero,$zero -/* f00f51c: 10000001 */ b .L0f00f524 -/* f00f520: 24020001 */ addiu $v0,$zero,0x1 -.L0f00f524: -/* f00f524: 11200003 */ beqz $t1,.L0f00f534 -/* f00f528: 00001825 */ or $v1,$zero,$zero -/* f00f52c: 10000001 */ b .L0f00f534 -/* f00f530: 24030001 */ addiu $v1,$zero,0x1 -.L0f00f534: -/* f00f534: 0062c821 */ addu $t9,$v1,$v0 -/* f00f538: 0324c021 */ addu $t8,$t9,$a0 -/* f00f53c: 03055821 */ addu $t3,$t8,$a1 -/* f00f540: 15610004 */ bne $t3,$at,.L0f00f554 -/* f00f544: 3c010080 */ lui $at,0x80 -/* f00f548: 02816025 */ or $t4,$s4,$at -/* f00f54c: 10000019 */ b .L0f00f5b4 -/* f00f550: 0180a025 */ or $s4,$t4,$zero -.L0f00f554: -/* f00f554: 10c00003 */ beqz $a2,.L0f00f564 -/* f00f558: 24010004 */ addiu $at,$zero,0x4 -/* f00f55c: 10000002 */ b .L0f00f568 -/* f00f560: 24050001 */ addiu $a1,$zero,0x1 -.L0f00f564: -/* f00f564: 00002825 */ or $a1,$zero,$zero -.L0f00f568: -/* f00f568: 10e00003 */ beqz $a3,.L0f00f578 -/* f00f56c: 00002025 */ or $a0,$zero,$zero -/* f00f570: 10000001 */ b .L0f00f578 -/* f00f574: 24040001 */ addiu $a0,$zero,0x1 -.L0f00f578: -/* f00f578: 11000003 */ beqz $t0,.L0f00f588 -/* f00f57c: 00001025 */ or $v0,$zero,$zero -/* f00f580: 10000001 */ b .L0f00f588 -/* f00f584: 24020001 */ addiu $v0,$zero,0x1 -.L0f00f588: -/* f00f588: 11200003 */ beqz $t1,.L0f00f598 -/* f00f58c: 00001825 */ or $v1,$zero,$zero -/* f00f590: 10000001 */ b .L0f00f598 -/* f00f594: 24030001 */ addiu $v1,$zero,0x1 -.L0f00f598: -/* f00f598: 00626821 */ addu $t5,$v1,$v0 -/* f00f59c: 01a47021 */ addu $t6,$t5,$a0 -/* f00f5a0: 01c57821 */ addu $t7,$t6,$a1 -/* f00f5a4: 15e10003 */ bne $t7,$at,.L0f00f5b4 -/* f00f5a8: 3c010100 */ lui $at,0x100 -/* f00f5ac: 0281c825 */ or $t9,$s4,$at -/* f00f5b0: 0320a025 */ or $s4,$t9,$zero -.L0f00f5b4: -/* f00f5b4: 0fc05208 */ jal mpRemoveAllSimulants -/* f00f5b8: 00000000 */ nop -/* f00f5bc: 3c12800a */ lui $s2,%hi(g_StageSetup+0x10) -/* f00f5c0: 8e52d040 */ lw $s2,%lo(g_StageSetup+0x10)($s2) -/* f00f5c4: 24010034 */ addiu $at,$zero,0x34 -/* f00f5c8: 00009825 */ or $s3,$zero,$zero -/* f00f5cc: 92430003 */ lbu $v1,0x3($s2) -/* f00f5d0: 10610339 */ beq $v1,$at,.L0f0102b8 -/* f00f5d4: 3c014780 */ lui $at,0x4780 -/* f00f5d8: 4481b000 */ mtc1 $at,$f22 -/* f00f5dc: 4480a000 */ mtc1 $zero,$f20 -/* f00f5e0: 241e004c */ addiu $s8,$zero,0x4c -/* f00f5e4: 3417ffff */ dli $s7,0xffff -/* f00f5e8: 24160010 */ addiu $s6,$zero,0x10 -/* f00f5ec: 2478ffff */ addiu $t8,$v1,-1 -.L0f00f5f0: -/* f00f5f0: 2f01003b */ sltiu $at,$t8,0x3b -/* f00f5f4: 10200326 */ beqz $at,.L0f010290 -/* f00f5f8: 0018c080 */ sll $t8,$t8,0x2 -/* f00f5fc: 3c017f1b */ lui $at,%hi(var7f1a8068) -/* f00f600: 00380821 */ addu $at,$at,$t8 -/* f00f604: 8c388068 */ lw $t8,%lo(var7f1a8068)($at) -/* f00f608: 03000008 */ jr $t8 -/* f00f60c: 00000000 */ nop -/* f00f610: 92500007 */ lbu $s0,0x7($s2) -/* f00f614: 0fc0a1dd */ jal chrFindByLiteralId -/* f00f618: 86440004 */ lh $a0,0x4($s2) -/* f00f61c: 1040031c */ beqz $v0,.L0f010290 -/* f00f620: 00000000 */ nop -/* f00f624: 8c4b001c */ lw $t3,0x1c($v0) -/* f00f628: 11600319 */ beqz $t3,.L0f010290 -/* f00f62c: 00000000 */ nop -/* f00f630: 8c4c0020 */ lw $t4,0x20($v0) -/* f00f634: 11800316 */ beqz $t4,.L0f010290 -/* f00f638: 00000000 */ nop -/* f00f63c: 10000314 */ b .L0f010290 -/* f00f640: a050000f */ sb $s0,0xf($v0) -/* f00f644: 8fad0244 */ lw $t5,0x244($sp) -/* f00f648: 8fa40248 */ lw $a0,0x248($sp) -/* f00f64c: 02402825 */ or $a1,$s2,$zero -/* f00f650: 11a0030f */ beqz $t5,.L0f010290 -/* f00f654: 00000000 */ nop -/* f00f658: 0fc0b53f */ jal func0f02d4fc -/* f00f65c: 02603025 */ or $a2,$s3,$zero -/* f00f660: 1000030b */ b .L0f010290 -/* f00f664: 00000000 */ nop -/* f00f668: 12a00309 */ beqz $s5,.L0f010290 -/* f00f66c: 00000000 */ nop -/* f00f670: 8e4e000c */ lw $t6,0xc($s2) -/* f00f674: 02402025 */ or $a0,$s2,$zero -/* f00f678: 01d47824 */ and $t7,$t6,$s4 -/* f00f67c: 15e00304 */ bnez $t7,.L0f010290 -/* f00f680: 00000000 */ nop -/* f00f684: 0fc038da */ jal func0f00e368 -/* f00f688: 02602825 */ or $a1,$s3,$zero -/* f00f68c: 10000300 */ b .L0f010290 -/* f00f690: 00000000 */ nop -/* f00f694: 8e590004 */ lw $t9,0x4($s2) -/* f00f698: 3c018006 */ lui $at,%hi(var80061be0) -/* f00f69c: 44992000 */ mtc1 $t9,$f4 -/* f00f6a0: 00000000 */ nop -/* f00f6a4: 468021a0 */ cvt.s.w $f6,$f4 -/* f00f6a8: 46163203 */ div.s $f8,$f6,$f22 -/* f00f6ac: 100002f8 */ b .L0f010290 -/* f00f6b0: e4281be0 */ swc1 $f8,%lo(var80061be0)($at) -/* f00f6b4: 8fb80244 */ lw $t8,0x244($sp) -/* f00f6b8: 130002f5 */ beqz $t8,.L0f010290 -/* f00f6bc: 00000000 */ nop -/* f00f6c0: 8e4b000c */ lw $t3,0xc($s2) -/* f00f6c4: 02402025 */ or $a0,$s2,$zero -/* f00f6c8: 01746024 */ and $t4,$t3,$s4 -/* f00f6cc: 158002f0 */ bnez $t4,.L0f010290 -/* f00f6d0: 00000000 */ nop -/* f00f6d4: 0fc0359c */ jal weaponAssignToHome -/* f00f6d8: 02602825 */ or $a1,$s3,$zero -/* f00f6dc: 100002ec */ b .L0f010290 -/* f00f6e0: 00000000 */ nop -/* f00f6e4: 8fad0244 */ lw $t5,0x244($sp) -/* f00f6e8: 11a002e9 */ beqz $t5,.L0f010290 -/* f00f6ec: 00000000 */ nop -/* f00f6f0: 8e4e000c */ lw $t6,0xc($s2) -/* f00f6f4: 02402025 */ or $a0,$s2,$zero -/* f00f6f8: 01d47824 */ and $t7,$t6,$s4 -/* f00f6fc: 15e002e4 */ bnez $t7,.L0f010290 -/* f00f700: 00000000 */ nop -/* f00f704: 0fc0365e */ jal func0f00d978 -/* f00f708: 02602825 */ or $a1,$s3,$zero -/* f00f70c: 100002e0 */ b .L0f010290 -/* f00f710: 00000000 */ nop -/* f00f714: 8fb90244 */ lw $t9,0x244($sp) -/* f00f718: 132002dd */ beqz $t9,.L0f010290 -/* f00f71c: 00000000 */ nop -/* f00f720: 8e58000c */ lw $t8,0xc($s2) -/* f00f724: 02402025 */ or $a0,$s2,$zero -/* f00f728: 03145824 */ and $t3,$t8,$s4 -/* f00f72c: 156002d8 */ bnez $t3,.L0f010290 -/* f00f730: 00000000 */ nop -/* f00f734: 0fc03641 */ jal func0f00d904 -/* f00f738: 02602825 */ or $a1,$s3,$zero -/* f00f73c: 100002d4 */ b .L0f010290 -/* f00f740: 00000000 */ nop -/* f00f744: 12a002d2 */ beqz $s5,.L0f010290 -/* f00f748: 00000000 */ nop -/* f00f74c: 8e4c000c */ lw $t4,0xc($s2) -/* f00f750: 02402025 */ or $a0,$s2,$zero -/* f00f754: 01946824 */ and $t5,$t4,$s4 -/* f00f758: 15a002cd */ bnez $t5,.L0f010290 -/* f00f75c: 00000000 */ nop -/* f00f760: 0fc03684 */ jal func0f00da10 -/* f00f764: 02602825 */ or $a1,$s3,$zero -/* f00f768: 100002c9 */ b .L0f010290 -/* f00f76c: 00000000 */ nop -/* f00f770: 12a002c7 */ beqz $s5,.L0f010290 -/* f00f774: 00000000 */ nop -/* f00f778: 8e4e000c */ lw $t6,0xc($s2) -/* f00f77c: 02402025 */ or $a0,$s2,$zero -/* f00f780: 01d47824 */ and $t7,$t6,$s4 -/* f00f784: 15e002c2 */ bnez $t7,.L0f010290 -/* f00f788: 00000000 */ nop -/* f00f78c: 0fc03700 */ jal func0f00dc00 -/* f00f790: 02602825 */ or $a1,$s3,$zero -/* f00f794: 100002be */ b .L0f010290 -/* f00f798: 00000000 */ nop -/* f00f79c: 12a002bc */ beqz $s5,.L0f010290 -/* f00f7a0: 00000000 */ nop -/* f00f7a4: 8e59000c */ lw $t9,0xc($s2) -/* f00f7a8: 02402025 */ or $a0,$s2,$zero -/* f00f7ac: 0334c024 */ and $t8,$t9,$s4 -/* f00f7b0: 170002b7 */ bnez $t8,.L0f010290 -/* f00f7b4: 00000000 */ nop -/* f00f7b8: 0fc03767 */ jal func0f00dd9c -/* f00f7bc: 02602825 */ or $a1,$s3,$zero -/* f00f7c0: 100002b3 */ b .L0f010290 -/* f00f7c4: 00000000 */ nop -/* f00f7c8: 12a002b1 */ beqz $s5,.L0f010290 -/* f00f7cc: 00000000 */ nop -/* f00f7d0: 8e4b000c */ lw $t3,0xc($s2) -/* f00f7d4: 02402025 */ or $a0,$s2,$zero -/* f00f7d8: 01746024 */ and $t4,$t3,$s4 -/* f00f7dc: 158002ac */ bnez $t4,.L0f010290 -/* f00f7e0: 00000000 */ nop -/* f00f7e4: 0fc0376f */ jal func0f00ddbc -/* f00f7e8: 02602825 */ or $a1,$s3,$zero -/* f00f7ec: 100002a8 */ b .L0f010290 -/* f00f7f0: 00000000 */ nop -/* f00f7f4: 12a002a6 */ beqz $s5,.L0f010290 -/* f00f7f8: 00000000 */ nop -/* f00f7fc: 8e4d000c */ lw $t5,0xc($s2) -/* f00f800: 02402025 */ or $a0,$s2,$zero -/* f00f804: 01b47024 */ and $t6,$t5,$s4 -/* f00f808: 15c002a1 */ bnez $t6,.L0f010290 -/* f00f80c: 00000000 */ nop -/* f00f810: 0fc03821 */ jal func0f00e084 -/* f00f814: 02602825 */ or $a1,$s3,$zero -/* f00f818: 1000029d */ b .L0f010290 -/* f00f81c: 00000000 */ nop -/* f00f820: 12a0029b */ beqz $s5,.L0f010290 -/* f00f824: 00000000 */ nop -/* f00f828: 8e4f000c */ lw $t7,0xc($s2) -/* f00f82c: 3c188008 */ lui $t8,%hi(g_LanguageId) -/* f00f830: 01f4c824 */ and $t9,$t7,$s4 -/* f00f834: 53200005 */ beqzl $t9,.L0f00f84c -/* f00f838: 8e4b005c */ lw $t3,0x5c($s2) -/* f00f83c: 8f184120 */ lw $t8,%lo(g_LanguageId)($t8) -/* f00f840: 13000293 */ beqz $t8,.L0f010290 -/* f00f844: 00000000 */ nop -/* f00f848: 8e4b005c */ lw $t3,0x5c($s2) -.L0f00f84c: -/* f00f84c: 02402025 */ or $a0,$s2,$zero -/* f00f850: 02602825 */ or $a1,$s3,$zero -/* f00f854: 448b5000 */ mtc1 $t3,$f10 -/* f00f858: 00000000 */ nop -/* f00f85c: 46805420 */ cvt.s.w $f16,$f10 -/* f00f860: 46168483 */ div.s $f18,$f16,$f22 -/* f00f864: e652005c */ swc1 $f18,0x5c($s2) -/* f00f868: c644005c */ lwc1 $f4,0x5c($s2) -/* f00f86c: 0fc033b9 */ jal func0f00cee4 -/* f00f870: e6440060 */ swc1 $f4,0x60($s2) -/* f00f874: 10000286 */ b .L0f010290 -/* f00f878: 00000000 */ nop -/* f00f87c: 12a00284 */ beqz $s5,.L0f010290 -/* f00f880: 00000000 */ nop -/* f00f884: 8e4c000c */ lw $t4,0xc($s2) -/* f00f888: 01946824 */ and $t5,$t4,$s4 -/* f00f88c: 15a00280 */ bnez $t5,.L0f010290 -/* f00f890: 00000000 */ nop -/* f00f894: 8e4e0008 */ lw $t6,0x8($s2) -/* f00f898: 000e78c0 */ sll $t7,$t6,0x3 -/* f00f89c: 05e3000b */ bgezl $t7,.L0f00f8cc -/* f00f8a0: 02402025 */ or $a0,$s2,$zero -/* f00f8a4: 0fc0387e */ jal func0f00e1f8 -/* f00f8a8: 86440006 */ lh $a0,0x6($s2) -/* f00f8ac: 8e590064 */ lw $t9,0x64($s2) -/* f00f8b0: a6420062 */ sh $v0,0x62($s2) -/* f00f8b4: 44993000 */ mtc1 $t9,$f6 -/* f00f8b8: 00000000 */ nop -/* f00f8bc: 46803220 */ cvt.s.w $f8,$f6 -/* f00f8c0: 46164283 */ div.s $f10,$f8,$f22 -/* f00f8c4: e64a0064 */ swc1 $f10,0x64($s2) -/* f00f8c8: 02402025 */ or $a0,$s2,$zero -.L0f00f8cc: -/* f00f8cc: 0fc033b9 */ jal func0f00cee4 -/* f00f8d0: 02602825 */ or $a1,$s3,$zero -/* f00f8d4: 1000026e */ b .L0f010290 -/* f00f8d8: 00000000 */ nop -/* f00f8dc: 12a0026c */ beqz $s5,.L0f010290 -/* f00f8e0: 00000000 */ nop -/* f00f8e4: 8e58000c */ lw $t8,0xc($s2) -/* f00f8e8: 03145824 */ and $t3,$t8,$s4 -/* f00f8ec: 15600268 */ bnez $t3,.L0f010290 -/* f00f8f0: 00000000 */ nop -/* f00f8f4: 864c0004 */ lh $t4,0x4($s2) -/* f00f8f8: 00008825 */ or $s1,$zero,$zero -/* f00f8fc: 02408025 */ or $s0,$s2,$zero -/* f00f900: afac01f8 */ sw $t4,0x1f8($sp) -/* f00f904: 8e4d007c */ lw $t5,0x7c($s2) -/* f00f908: 8e4e0080 */ lw $t6,0x80($s2) -/* f00f90c: e6540074 */ swc1 $f20,0x74($s2) -/* f00f910: 448d8000 */ mtc1 $t5,$f16 -/* f00f914: 448e3000 */ mtc1 $t6,$f6 -/* f00f918: e6540078 */ swc1 $f20,0x78($s2) -/* f00f91c: 468084a0 */ cvt.s.w $f18,$f16 -/* f00f920: a2400085 */ sb $zero,0x85($s2) -/* f00f924: a2400086 */ sb $zero,0x86($s2) -/* f00f928: 46803220 */ cvt.s.w $f8,$f6 -/* f00f92c: 46169103 */ div.s $f4,$f18,$f22 -/* f00f930: 46164283 */ div.s $f10,$f8,$f22 -/* f00f934: e644007c */ swc1 $f4,0x7c($s2) -/* f00f938: e64a0080 */ swc1 $f10,0x80($s2) -.L0f00f93c: -/* f00f93c: 8e0f0064 */ lw $t7,0x64($s0) -/* f00f940: 51e00006 */ beqzl $t7,.L0f00f95c -/* f00f944: 26310004 */ addiu $s1,$s1,0x4 -/* f00f948: 8e190064 */ lw $t9,0x64($s0) -/* f00f94c: 0fc24801 */ jal setupGetPtrToCommandByIndex -/* f00f950: 03332021 */ addu $a0,$t9,$s3 -/* f00f954: ae020064 */ sw $v0,0x64($s0) -/* f00f958: 26310004 */ addiu $s1,$s1,0x4 -.L0f00f95c: -/* f00f95c: 1636fff7 */ bne $s1,$s6,.L0f00f93c -/* f00f960: 26100004 */ addiu $s0,$s0,0x4 -/* f00f964: 24180001 */ addiu $t8,$zero,0x1 -/* f00f968: a258005a */ sb $t8,0x5a($s2) -/* f00f96c: 0fc2486d */ jal propLoad -/* f00f970: 8fa401f8 */ lw $a0,0x1f8($sp) -/* f00f974: 8fab01f8 */ lw $t3,0x1f8($sp) -/* f00f978: 3c0d8008 */ lui $t5,%hi(g_Props) -/* f00f97c: 25adb06c */ addiu $t5,$t5,%lo(g_Props) -/* f00f980: 000b60c0 */ sll $t4,$t3,0x3 -/* f00f984: 018d8021 */ addu $s0,$t4,$t5 -/* f00f988: 8e040000 */ lw $a0,0x0($s0) -/* f00f98c: 50800025 */ beqzl $a0,.L0f00fa24 -/* f00f990: 8e580008 */ lw $t8,0x8($s2) -/* f00f994: 0c006a6f */ jal modelGetPartNodeData -/* f00f998: 24050001 */ addiu $a1,$zero,0x1 -/* f00f99c: 10400004 */ beqz $v0,.L0f00f9b0 -/* f00f9a0: 24050002 */ addiu $a1,$zero,0x2 -/* f00f9a4: 824e005a */ lb $t6,0x5a($s2) -/* f00f9a8: 25cf0001 */ addiu $t7,$t6,0x1 -/* f00f9ac: a24f005a */ sb $t7,0x5a($s2) -.L0f00f9b0: -/* f00f9b0: 0c006a6f */ jal modelGetPartNodeData -/* f00f9b4: 8e040000 */ lw $a0,0x0($s0) -/* f00f9b8: 10400004 */ beqz $v0,.L0f00f9cc -/* f00f9bc: 24050003 */ addiu $a1,$zero,0x3 -/* f00f9c0: 8259005a */ lb $t9,0x5a($s2) -/* f00f9c4: 27380001 */ addiu $t8,$t9,0x1 -/* f00f9c8: a258005a */ sb $t8,0x5a($s2) -.L0f00f9cc: -/* f00f9cc: 0c006a6f */ jal modelGetPartNodeData -/* f00f9d0: 8e040000 */ lw $a0,0x0($s0) -/* f00f9d4: 10400004 */ beqz $v0,.L0f00f9e8 -/* f00f9d8: 24050004 */ addiu $a1,$zero,0x4 -/* f00f9dc: 824b005a */ lb $t3,0x5a($s2) -/* f00f9e0: 256c0001 */ addiu $t4,$t3,0x1 -/* f00f9e4: a24c005a */ sb $t4,0x5a($s2) -.L0f00f9e8: -/* f00f9e8: 0c006a6f */ jal modelGetPartNodeData -/* f00f9ec: 8e040000 */ lw $a0,0x0($s0) -/* f00f9f0: 10400004 */ beqz $v0,.L0f00fa04 -/* f00f9f4: 24050006 */ addiu $a1,$zero,0x6 -/* f00f9f8: 824d005a */ lb $t5,0x5a($s2) -/* f00f9fc: 25ae0001 */ addiu $t6,$t5,0x1 -/* f00fa00: a24e005a */ sb $t6,0x5a($s2) -.L0f00fa04: -/* f00fa04: 0c006a6f */ jal modelGetPartNodeData -/* f00fa08: 8e040000 */ lw $a0,0x0($s0) -/* f00fa0c: 50400005 */ beqzl $v0,.L0f00fa24 -/* f00fa10: 8e580008 */ lw $t8,0x8($s2) -/* f00fa14: 824f005a */ lb $t7,0x5a($s2) -/* f00fa18: 25f90001 */ addiu $t9,$t7,0x1 -/* f00fa1c: a259005a */ sb $t9,0x5a($s2) -/* f00fa20: 8e580008 */ lw $t8,0x8($s2) -.L0f00fa24: -/* f00fa24: 2401feff */ addiu $at,$zero,-257 -/* f00fa28: 02402025 */ or $a0,$s2,$zero -/* f00fa2c: 03015824 */ and $t3,$t8,$at -/* f00fa30: ae4b0008 */ sw $t3,0x8($s2) -/* f00fa34: 0fc033b9 */ jal func0f00cee4 -/* f00fa38: 02602825 */ or $a1,$s3,$zero -/* f00fa3c: 8e420014 */ lw $v0,0x14($s2) -/* f00fa40: 10400213 */ beqz $v0,.L0f010290 -/* f00fa44: 00000000 */ nop -/* f00fa48: c4500008 */ lwc1 $f16,0x8($v0) -/* f00fa4c: 02402025 */ or $a0,$s2,$zero -/* f00fa50: 24050001 */ addiu $a1,$zero,0x1 -/* f00fa54: e6500088 */ swc1 $f16,0x88($s2) -/* f00fa58: c452000c */ lwc1 $f18,0xc($v0) -/* f00fa5c: e652008c */ swc1 $f18,0x8c($s2) -/* f00fa60: c4440010 */ lwc1 $f4,0x10($v0) -/* f00fa64: 0fc1c3c2 */ jal func0f070f08 -/* f00fa68: e6440090 */ swc1 $f4,0x90($s2) -/* f00fa6c: 10000208 */ b .L0f010290 -/* f00fa70: 00000000 */ nop -/* f00fa74: 12a00206 */ beqz $s5,.L0f010290 -/* f00fa78: 00000000 */ nop -/* f00fa7c: 8e4c000c */ lw $t4,0xc($s2) -/* f00fa80: 02402025 */ or $a0,$s2,$zero -/* f00fa84: 01946824 */ and $t5,$t4,$s4 -/* f00fa88: 15a00201 */ bnez $t5,.L0f010290 -/* f00fa8c: 00000000 */ nop -/* f00fa90: 0fc033b9 */ jal func0f00cee4 -/* f00fa94: 02602825 */ or $a1,$s3,$zero -/* f00fa98: 02402025 */ or $a0,$s2,$zero -/* f00fa9c: 0fc03a43 */ jal func0f00e90c -/* f00faa0: 2645005c */ addiu $a1,$s2,0x5c -/* f00faa4: 100001fa */ b .L0f010290 -/* f00faa8: 00000000 */ nop -/* f00faac: 12a001f8 */ beqz $s5,.L0f010290 -/* f00fab0: 00000000 */ nop -/* f00fab4: 8e4e000c */ lw $t6,0xc($s2) -/* f00fab8: 02402025 */ or $a0,$s2,$zero -/* f00fabc: 01d47824 */ and $t7,$t6,$s4 -/* f00fac0: 15e001f3 */ bnez $t7,.L0f010290 -/* f00fac4: 00000000 */ nop -/* f00fac8: 0fc033b9 */ jal func0f00cee4 -/* f00facc: 02602825 */ or $a1,$s3,$zero -/* f00fad0: 02402025 */ or $a0,$s2,$zero -/* f00fad4: 0fc03a43 */ jal func0f00e90c -/* f00fad8: 2645005c */ addiu $a1,$s2,0x5c -/* f00fadc: e654009c */ swc1 $f20,0x9c($s2) -/* f00fae0: e65400a0 */ swc1 $f20,0xa0($s2) -/* f00fae4: e65400ac */ swc1 $f20,0xac($s2) -/* f00fae8: e65400b0 */ swc1 $f20,0xb0($s2) -/* f00faec: e65400b4 */ swc1 $f20,0xb4($s2) -/* f00faf0: e65400b8 */ swc1 $f20,0xb8($s2) -/* f00faf4: e65400bc */ swc1 $f20,0xbc($s2) -/* f00faf8: e65400c0 */ swc1 $f20,0xc0($s2) -/* f00fafc: e65400c4 */ swc1 $f20,0xc4($s2) -/* f00fb00: e65400c8 */ swc1 $f20,0xc8($s2) -/* f00fb04: ae4000cc */ sw $zero,0xcc($s2) -/* f00fb08: e65400d0 */ swc1 $f20,0xd0($s2) -/* f00fb0c: e65400d4 */ swc1 $f20,0xd4($s2) -/* f00fb10: e65400d8 */ swc1 $f20,0xd8($s2) -/* f00fb14: 100001de */ b .L0f010290 -/* f00fb18: e65400dc */ swc1 $f20,0xdc($s2) -/* f00fb1c: 12a001dc */ beqz $s5,.L0f010290 -/* f00fb20: 00000000 */ nop -/* f00fb24: 8e59000c */ lw $t9,0xc($s2) -/* f00fb28: 0334c024 */ and $t8,$t9,$s4 -/* f00fb2c: 170001d8 */ bnez $t8,.L0f010290 -/* f00fb30: 00000000 */ nop -/* f00fb34: 8e4b0064 */ lw $t3,0x64($s2) -/* f00fb38: 8e4c006c */ lw $t4,0x6c($s2) -/* f00fb3c: e654005c */ swc1 $f20,0x5c($s2) -/* f00fb40: 448b3000 */ mtc1 $t3,$f6 -/* f00fb44: 448c8000 */ mtc1 $t4,$f16 -/* f00fb48: 02402025 */ or $a0,$s2,$zero -/* f00fb4c: 46803220 */ cvt.s.w $f8,$f6 -/* f00fb50: 02602825 */ or $a1,$s3,$zero -/* f00fb54: 468084a0 */ cvt.s.w $f18,$f16 -/* f00fb58: 46164283 */ div.s $f10,$f8,$f22 -/* f00fb5c: 46169103 */ div.s $f4,$f18,$f22 -/* f00fb60: e64a0064 */ swc1 $f10,0x64($s2) -/* f00fb64: 0fc033b9 */ jal func0f00cee4 -/* f00fb68: e644006c */ swc1 $f4,0x6c($s2) -/* f00fb6c: 100001c8 */ b .L0f010290 -/* f00fb70: 00000000 */ nop -/* f00fb74: 12a001c6 */ beqz $s5,.L0f010290 -/* f00fb78: 00000000 */ nop -/* f00fb7c: 8e4d000c */ lw $t5,0xc($s2) -/* f00fb80: 01b47024 */ and $t6,$t5,$s4 -/* f00fb84: 15c001c2 */ bnez $t6,.L0f010290 -/* f00fb88: 00000000 */ nop -/* f00fb8c: 8e4f0008 */ lw $t7,0x8($s2) -/* f00fb90: 000fc8c0 */ sll $t9,$t7,0x3 -/* f00fb94: 07230005 */ bgezl $t9,.L0f00fbac -/* f00fb98: 02402025 */ or $a0,$s2,$zero -/* f00fb9c: 0fc0387e */ jal func0f00e1f8 -/* f00fba0: 86440006 */ lh $a0,0x6($s2) -/* f00fba4: a642005c */ sh $v0,0x5c($s2) -/* f00fba8: 02402025 */ or $a0,$s2,$zero -.L0f00fbac: -/* f00fbac: 0fc033b9 */ jal func0f00cee4 -/* f00fbb0: 02602825 */ or $a1,$s3,$zero -/* f00fbb4: 100001b6 */ b .L0f010290 -/* f00fbb8: 00000000 */ nop -/* f00fbbc: 12a001b4 */ beqz $s5,.L0f010290 -/* f00fbc0: 00000000 */ nop -/* f00fbc4: 8e58000c */ lw $t8,0xc($s2) -/* f00fbc8: 02402025 */ or $a0,$s2,$zero -/* f00fbcc: 03145824 */ and $t3,$t8,$s4 -/* f00fbd0: 156001af */ bnez $t3,.L0f010290 -/* f00fbd4: 00000000 */ nop -/* f00fbd8: 0fc033b9 */ jal func0f00cee4 -/* f00fbdc: 02602825 */ or $a1,$s3,$zero -/* f00fbe0: 8e420014 */ lw $v0,0x14($s2) -/* f00fbe4: 50400008 */ beqzl $v0,.L0f00fc08 -/* f00fbe8: 8e4c0008 */ lw $t4,0x8($s2) -/* f00fbec: c4460008 */ lwc1 $f6,0x8($v0) -/* f00fbf0: e6460060 */ swc1 $f6,0x60($s2) -/* f00fbf4: c448000c */ lwc1 $f8,0xc($v0) -/* f00fbf8: e6480064 */ swc1 $f8,0x64($s2) -/* f00fbfc: c44a0010 */ lwc1 $f10,0x10($v0) -/* f00fc00: e64a0068 */ swc1 $f10,0x68($s2) -/* f00fc04: 8e4c0008 */ lw $t4,0x8($s2) -.L0f00fc08: -/* f00fc08: 8fa20238 */ lw $v0,0x238($sp) -/* f00fc0c: 3c017f1b */ lui $at,%hi(var7f1a8154) -/* f00fc10: 000c68c0 */ sll $t5,$t4,0x3 -/* f00fc14: 05a10011 */ bgez $t5,.L0f00fc5c -/* f00fc18: 27a501a8 */ addiu $a1,$sp,0x1a8 -/* f00fc1c: 8fa20234 */ lw $v0,0x234($sp) -/* f00fc20: 3c017f1b */ lui $at,%hi(var7f1a8158) -/* f00fc24: 27a501a8 */ addiu $a1,$sp,0x1a8 -/* f00fc28: ae42005c */ sw $v0,0x5c($s2) -/* f00fc2c: 24420028 */ addiu $v0,$v0,0x28 -/* f00fc30: afa20234 */ sw $v0,0x234($sp) -/* f00fc34: 0c0058dd */ jal func00016374 -/* f00fc38: c42c8154 */ lwc1 $f12,%lo(var7f1a8154)($at) -/* f00fc3c: 27a401a8 */ addiu $a0,$sp,0x1a8 -/* f00fc40: 0c005768 */ jal func00015da0 -/* f00fc44: 27a50184 */ addiu $a1,$sp,0x184 -/* f00fc48: 27a40184 */ addiu $a0,$sp,0x184 -/* f00fc4c: 0c005844 */ jal func00016110 -/* f00fc50: 2645001c */ addiu $a1,$s2,0x1c -/* f00fc54: 1000018e */ b .L0f010290 -/* f00fc58: 00000000 */ nop -.L0f00fc5c: -/* f00fc5c: ae42005c */ sw $v0,0x5c($s2) -/* f00fc60: 24420028 */ addiu $v0,$v0,0x28 -/* f00fc64: afa20238 */ sw $v0,0x238($sp) -/* f00fc68: 0c0058dd */ jal func00016374 -/* f00fc6c: c42c8158 */ lwc1 $f12,%lo(var7f1a8158)($at) -/* f00fc70: 27a401a8 */ addiu $a0,$sp,0x1a8 -/* f00fc74: 0c005768 */ jal func00015da0 -/* f00fc78: 27a50184 */ addiu $a1,$sp,0x184 -/* f00fc7c: 27a40184 */ addiu $a0,$sp,0x184 -/* f00fc80: 0c005844 */ jal func00016110 -/* f00fc84: 2645001c */ addiu $a1,$s2,0x1c -/* f00fc88: 10000181 */ b .L0f010290 -/* f00fc8c: 00000000 */ nop -/* f00fc90: 12a0017f */ beqz $s5,.L0f010290 -/* f00fc94: 00000000 */ nop -/* f00fc98: 8e4e000c */ lw $t6,0xc($s2) -/* f00fc9c: 02402025 */ or $a0,$s2,$zero -/* f00fca0: 01d47824 */ and $t7,$t6,$s4 -/* f00fca4: 15e0017a */ bnez $t7,.L0f010290 -/* f00fca8: 00000000 */ nop -/* f00fcac: 0fc033b9 */ jal func0f00cee4 -/* f00fcb0: 02602825 */ or $a1,$s3,$zero -/* f00fcb4: 10000176 */ b .L0f010290 -/* f00fcb8: 00000000 */ nop -/* f00fcbc: 3c19800a */ lui $t9,%hi(g_Vars+0x318) -/* f00fcc0: 8f39a2d8 */ lw $t9,%lo(g_Vars+0x318)($t9) -/* f00fcc4: 24050001 */ addiu $a1,$zero,0x1 -/* f00fcc8: 3c04800a */ lui $a0,%hi(var8009cc30) -/* f00fccc: 13200017 */ beqz $t9,.L0f00fd2c -/* f00fcd0: 00000000 */ nop -/* f00fcd4: 8c84cc30 */ lw $a0,%lo(var8009cc30)($a0) -/* f00fcd8: 04800014 */ bltz $a0,.L0f00fd2c -/* f00fcdc: 00000000 */ nop -/* f00fce0: 0fc62389 */ jal func0f188e24 -/* f00fce4: 00000000 */ nop -/* f00fce8: 80430001 */ lb $v1,0x1($v0) -/* f00fcec: 90450002 */ lbu $a1,0x2($v0) -/* f00fcf0: 18600005 */ blez $v1,.L0f00fd08 -/* f00fcf4: 28610014 */ slti $at,$v1,0x14 -/* f00fcf8: 10200003 */ beqz $at,.L0f00fd08 -/* f00fcfc: 0003c080 */ sll $t8,$v1,0x2 -/* f00fd00: 02585821 */ addu $t3,$s2,$t8 -/* f00fd04: a565005a */ sh $a1,0x5a($t3) -.L0f00fd08: -/* f00fd08: 80430003 */ lb $v1,0x3($v0) -/* f00fd0c: 18600007 */ blez $v1,.L0f00fd2c -/* f00fd10: 28610014 */ slti $at,$v1,0x14 -/* f00fd14: 10200005 */ beqz $at,.L0f00fd2c -/* f00fd18: 00000000 */ nop -/* f00fd1c: 904c0004 */ lbu $t4,0x4($v0) -/* f00fd20: 00036880 */ sll $t5,$v1,0x2 -/* f00fd24: 024d7021 */ addu $t6,$s2,$t5 -/* f00fd28: a5cc005a */ sh $t4,0x5a($t6) -.L0f00fd2c: -/* f00fd2c: 18a00158 */ blez $a1,.L0f010290 -/* f00fd30: 00000000 */ nop -/* f00fd34: 12a00156 */ beqz $s5,.L0f010290 -/* f00fd38: 00000000 */ nop -/* f00fd3c: 8e4f000c */ lw $t7,0xc($s2) -/* f00fd40: 00008825 */ or $s1,$zero,$zero -/* f00fd44: 01f4c824 */ and $t9,$t7,$s4 -/* f00fd48: 17200151 */ bnez $t9,.L0f010290 -/* f00fd4c: 00000000 */ nop -/* f00fd50: 02408025 */ or $s0,$s2,$zero -.L0f00fd54: -/* f00fd54: 9618005e */ lhu $t8,0x5e($s0) -/* f00fd58: 5b000007 */ blezl $t8,.L0f00fd78 -/* f00fd5c: 26310004 */ addiu $s1,$s1,0x4 -/* f00fd60: 9604005c */ lhu $a0,0x5c($s0) -/* f00fd64: 52e40004 */ beql $s7,$a0,.L0f00fd78 -/* f00fd68: 26310004 */ addiu $s1,$s1,0x4 -/* f00fd6c: 0fc2486d */ jal propLoad -/* f00fd70: 00000000 */ nop -/* f00fd74: 26310004 */ addiu $s1,$s1,0x4 -.L0f00fd78: -/* f00fd78: 163efff6 */ bne $s1,$s8,.L0f00fd54 -/* f00fd7c: 26100004 */ addiu $s0,$s0,0x4 -/* f00fd80: 02402025 */ or $a0,$s2,$zero -/* f00fd84: 0fc033b9 */ jal func0f00cee4 -/* f00fd88: 02602825 */ or $a1,$s3,$zero -/* f00fd8c: 10000140 */ b .L0f010290 -/* f00fd90: 00000000 */ nop -/* f00fd94: 12a0013e */ beqz $s5,.L0f010290 -/* f00fd98: 00000000 */ nop -/* f00fd9c: 8e4b000c */ lw $t3,0xc($s2) -/* f00fda0: 02402025 */ or $a0,$s2,$zero -/* f00fda4: 01746824 */ and $t5,$t3,$s4 -/* f00fda8: 15a00139 */ bnez $t5,.L0f010290 -/* f00fdac: 00000000 */ nop -/* f00fdb0: 0fc033b9 */ jal func0f00cee4 -/* f00fdb4: 02602825 */ or $a1,$s3,$zero -/* f00fdb8: 8e460018 */ lw $a2,0x18($s2) -/* f00fdbc: 24050005 */ addiu $a1,$zero,0x5 -/* f00fdc0: 50c0000d */ beqzl $a2,.L0f00fdf8 -/* f00fdc4: 3c01bf80 */ lui $at,0xbf80 -/* f00fdc8: 0c006a47 */ jal modelGetPart -/* f00fdcc: 8cc40008 */ lw $a0,0x8($a2) -/* f00fdd0: 10400008 */ beqz $v0,.L0f00fdf4 -/* f00fdd4: 00402825 */ or $a1,$v0,$zero -/* f00fdd8: 0c006a87 */ jal modelGetNodeData -/* f00fddc: 8e440018 */ lw $a0,0x18($s2) -/* f00fde0: 8e4c0008 */ lw $t4,0x8($s2) -/* f00fde4: 3c011000 */ lui $at,0x1000 -/* f00fde8: 01817024 */ and $t6,$t4,$at -/* f00fdec: 2dcf0001 */ sltiu $t7,$t6,0x1 -/* f00fdf0: ac4f0000 */ sw $t7,0x0($v0) -.L0f00fdf4: -/* f00fdf4: 3c01bf80 */ lui $at,0xbf80 -.L0f00fdf8: -/* f00fdf8: 44818000 */ mtc1 $at,$f16 -/* f00fdfc: e6540064 */ swc1 $f20,0x64($s2) -/* f00fe00: e6540068 */ swc1 $f20,0x68($s2) -/* f00fe04: e654006c */ swc1 $f20,0x6c($s2) -/* f00fe08: e6540070 */ swc1 $f20,0x70($s2) -/* f00fe0c: e6540078 */ swc1 $f20,0x78($s2) -/* f00fe10: e654007c */ swc1 $f20,0x7c($s2) -/* f00fe14: 8e44005c */ lw $a0,0x5c($s2) -/* f00fe18: 0c006134 */ jal ailistFindById -/* f00fe1c: e6500074 */ swc1 $f16,0x74($s2) -/* f00fe20: 2419ffff */ addiu $t9,$zero,-1 -/* f00fe24: ae42005c */ sw $v0,0x5c($s2) -/* f00fe28: a6400060 */ sh $zero,0x60($s2) -/* f00fe2c: a6590062 */ sh $t9,0x62($s2) -/* f00fe30: ae400080 */ sw $zero,0x80($s2) -/* f00fe34: 10000116 */ b .L0f010290 -/* f00fe38: ae400084 */ sw $zero,0x84($s2) -/* f00fe3c: 8fb8023c */ lw $t8,0x23c($sp) -/* f00fe40: 13000113 */ beqz $t8,.L0f010290 -/* f00fe44: 00000000 */ nop -/* f00fe48: 12a00111 */ beqz $s5,.L0f010290 -/* f00fe4c: 00000000 */ nop -/* f00fe50: 8e4b000c */ lw $t3,0xc($s2) -/* f00fe54: 02402025 */ or $a0,$s2,$zero -/* f00fe58: 01746824 */ and $t5,$t3,$s4 -/* f00fe5c: 15a0010c */ bnez $t5,.L0f010290 -/* f00fe60: 00000000 */ nop -/* f00fe64: 0fc033b9 */ jal func0f00cee4 -/* f00fe68: 02602825 */ or $a1,$s3,$zero -/* f00fe6c: 3c01bf80 */ lui $at,0xbf80 -/* f00fe70: 44819000 */ mtc1 $at,$f18 -/* f00fe74: 8e500014 */ lw $s0,0x14($s2) -/* f00fe78: e6540064 */ swc1 $f20,0x64($s2) -/* f00fe7c: e6540068 */ swc1 $f20,0x68($s2) -/* f00fe80: e6540078 */ swc1 $f20,0x78($s2) -/* f00fe84: e654007c */ swc1 $f20,0x7c($s2) -/* f00fe88: e6540080 */ swc1 $f20,0x80($s2) -/* f00fe8c: 8e44005c */ lw $a0,0x5c($s2) -/* f00fe90: 0c006134 */ jal ailistFindById -/* f00fe94: e652006c */ swc1 $f18,0x6c($s2) -/* f00fe98: 8e4e0008 */ lw $t6,0x8($s2) -/* f00fe9c: 240cffff */ addiu $t4,$zero,-1 -/* f00fea0: ae42005c */ sw $v0,0x5c($s2) -/* f00fea4: 000e7800 */ sll $t7,$t6,0x0 -/* f00fea8: a6400060 */ sh $zero,0x60($s2) -/* f00feac: a64c0062 */ sh $t4,0x62($s2) -/* f00feb0: ae400088 */ sw $zero,0x88($s2) -/* f00feb4: 05e1000b */ bgez $t7,.L0f00fee4 -/* f00feb8: ae40008c */ sw $zero,0x8c($s2) -/* f00febc: 26040008 */ addiu $a0,$s0,0x8 -/* f00fec0: 26050028 */ addiu $a1,$s0,0x28 -/* f00fec4: 00003025 */ or $a2,$zero,$zero -/* f00fec8: 0c00a8db */ jal func0002a36c -/* f00fecc: 00003825 */ or $a3,$zero,$zero -/* f00fed0: 3c0141f0 */ lui $at,0x41f0 -/* f00fed4: 44812000 */ mtc1 $at,$f4 -/* f00fed8: 00000000 */ nop -/* f00fedc: 46040180 */ add.s $f6,$f0,$f4 -/* f00fee0: e606000c */ swc1 $f6,0xc($s0) -.L0f00fee4: -/* f00fee4: 9218003f */ lbu $t8,0x3f($s0) -/* f00fee8: 370b0020 */ ori $t3,$t8,0x20 -/* f00feec: 100000e8 */ b .L0f010290 -/* f00fef0: a20b003f */ sb $t3,0x3f($s0) -/* f00fef4: 12a000e6 */ beqz $s5,.L0f010290 -/* f00fef8: 00000000 */ nop -/* f00fefc: 8e4d000c */ lw $t5,0xc($s2) -/* f00ff00: 02402025 */ or $a0,$s2,$zero -/* f00ff04: 01b46024 */ and $t4,$t5,$s4 -/* f00ff08: 158000e1 */ bnez $t4,.L0f010290 -/* f00ff0c: 00000000 */ nop -/* f00ff10: 0fc033b9 */ jal func0f00cee4 -/* f00ff14: 02602825 */ or $a1,$s3,$zero -/* f00ff18: 8e4e0008 */ lw $t6,0x8($s2) -/* f00ff1c: 8e420014 */ lw $v0,0x14($s2) -/* f00ff20: 3c012000 */ lui $at,0x2000 -/* f00ff24: 01c17825 */ or $t7,$t6,$at -/* f00ff28: ae4f0008 */ sw $t7,0x8($s2) -/* f00ff2c: 9058003f */ lbu $t8,0x3f($v0) -/* f00ff30: 370b0020 */ ori $t3,$t8,0x20 -/* f00ff34: a04b003f */ sb $t3,0x3f($v0) -/* f00ff38: e6540078 */ swc1 $f20,0x78($s2) -/* f00ff3c: e654007c */ swc1 $f20,0x7c($s2) -/* f00ff40: e6540080 */ swc1 $f20,0x80($s2) -/* f00ff44: e65400d0 */ swc1 $f20,0xd0($s2) -/* f00ff48: e65400d4 */ swc1 $f20,0xd4($s2) -/* f00ff4c: e65400dc */ swc1 $f20,0xdc($s2) -/* f00ff50: e65400d8 */ swc1 $f20,0xd8($s2) -/* f00ff54: 0c006134 */ jal ailistFindById -/* f00ff58: 8e44005c */ lw $a0,0x5c($s2) -/* f00ff5c: 2403ffff */ addiu $v1,$zero,-1 -/* f00ff60: ae42005c */ sw $v0,0x5c($s2) -/* f00ff64: a6400060 */ sh $zero,0x60($s2) -/* f00ff68: a6430062 */ sh $v1,0x62($s2) -/* f00ff6c: ae400088 */ sw $zero,0x88($s2) -/* f00ff70: ae40008c */ sw $zero,0x8c($s2) -/* f00ff74: a6430094 */ sh $v1,0x94($s2) -/* f00ff78: ae4000bc */ sw $zero,0xbc($s2) -/* f00ff7c: a2400096 */ sb $zero,0x96($s2) -/* f00ff80: e65400a0 */ swc1 $f20,0xa0($s2) -/* f00ff84: e654009c */ swc1 $f20,0x9c($s2) -/* f00ff88: e6540098 */ swc1 $f20,0x98($s2) -/* f00ff8c: e65400b0 */ swc1 $f20,0xb0($s2) -/* f00ff90: e65400ac */ swc1 $f20,0xac($s2) -/* f00ff94: e65400a8 */ swc1 $f20,0xa8($s2) -/* f00ff98: e65400a4 */ swc1 $f20,0xa4($s2) -/* f00ff9c: e65400b4 */ swc1 $f20,0xb4($s2) -/* f00ffa0: 3c017f1b */ lui $at,%hi(var7f1a815c) -/* f00ffa4: c428815c */ lwc1 $f8,%lo(var7f1a815c)($at) -/* f00ffa8: 240d0001 */ addiu $t5,$zero,0x1 -/* f00ffac: ae4000c0 */ sw $zero,0xc0($s2) -/* f00ffb0: ae4000c4 */ sw $zero,0xc4($s2) -/* f00ffb4: a2400097 */ sb $zero,0x97($s2) -/* f00ffb8: a64d0090 */ sh $t5,0x90($s2) -/* f00ffbc: 24040020 */ addiu $a0,$zero,0x20 -/* f00ffc0: 24050004 */ addiu $a1,$zero,0x4 -/* f00ffc4: 0c0048f2 */ jal malloc -/* f00ffc8: e64800b8 */ swc1 $f8,0xb8($s2) -/* f00ffcc: ae4200e0 */ sw $v0,0xe0($s2) -/* f00ffd0: 24040030 */ addiu $a0,$zero,0x30 -/* f00ffd4: 0c0048f2 */ jal malloc -/* f00ffd8: 24050004 */ addiu $a1,$zero,0x4 -/* f00ffdc: 8e4c00e0 */ lw $t4,0xe0($s2) -/* f00ffe0: 2403ffff */ addiu $v1,$zero,-1 -/* f00ffe4: 3c017f1b */ lui $at,%hi(var7f1a8160) -/* f00ffe8: ad820004 */ sw $v0,0x4($t4) -/* f00ffec: 8e4e00e0 */ lw $t6,0xe0($s2) -/* f00fff0: 8dcf0004 */ lw $t7,0x4($t6) -/* f00fff4: a1e30000 */ sb $v1,0x0($t7) -/* f00fff8: 8e5900e0 */ lw $t9,0xe0($s2) -/* f00fffc: af230008 */ sw $v1,0x8($t9) -/* f010000: 8e5800e0 */ lw $t8,0xe0($s2) -/* f010004: a3000000 */ sb $zero,0x0($t8) -/* f010008: 8e4b00e0 */ lw $t3,0xe0($s2) -/* f01000c: a1600001 */ sb $zero,0x1($t3) -/* f010010: 8e4d00e0 */ lw $t5,0xe0($s2) -/* f010014: c42a8160 */ lwc1 $f10,%lo(var7f1a8160)($at) -/* f010018: 3c017f1b */ lui $at,%hi(var7f1a8164) -/* f01001c: e5aa000c */ swc1 $f10,0xc($t5) -/* f010020: 8e4c00e0 */ lw $t4,0xe0($s2) -/* f010024: c4308164 */ lwc1 $f16,%lo(var7f1a8164)($at) -/* f010028: e5900010 */ swc1 $f16,0x10($t4) -/* f01002c: 8e4e00e0 */ lw $t6,0xe0($s2) -/* f010030: e5d40014 */ swc1 $f20,0x14($t6) -/* f010034: 10000096 */ b .L0f010290 -/* f010038: ae4000e4 */ sw $zero,0xe4($s2) -/* f01003c: 12a00094 */ beqz $s5,.L0f010290 -/* f010040: 00000000 */ nop -/* f010044: 8e4f000c */ lw $t7,0xc($s2) -/* f010048: 02402025 */ or $a0,$s2,$zero -/* f01004c: 01f4c824 */ and $t9,$t7,$s4 -/* f010050: 1720008f */ bnez $t9,.L0f010290 -/* f010054: 00000000 */ nop -/* f010058: 0fc033b9 */ jal func0f00cee4 -/* f01005c: 02602825 */ or $a1,$s3,$zero -/* f010060: 3c01bf80 */ lui $at,0xbf80 -/* f010064: 44810000 */ mtc1 $at,$f0 -/* f010068: e6540074 */ swc1 $f20,0x74($s2) -/* f01006c: e6540078 */ swc1 $f20,0x78($s2) -/* f010070: e6540064 */ swc1 $f20,0x64($s2) -/* f010074: e6540068 */ swc1 $f20,0x68($s2) -/* f010078: e654006c */ swc1 $f20,0x6c($s2) -/* f01007c: e6540080 */ swc1 $f20,0x80($s2) -/* f010080: 8e44005c */ lw $a0,0x5c($s2) -/* f010084: e640007c */ swc1 $f0,0x7c($s2) -/* f010088: 0c006134 */ jal ailistFindById -/* f01008c: e6400070 */ swc1 $f0,0x70($s2) -/* f010090: 2418ffff */ addiu $t8,$zero,-1 -/* f010094: ae42005c */ sw $v0,0x5c($s2) -/* f010098: a6400060 */ sh $zero,0x60($s2) -/* f01009c: a6580062 */ sh $t8,0x62($s2) -/* f0100a0: ae400084 */ sw $zero,0x84($s2) -/* f0100a4: 1000007a */ b .L0f010290 -/* f0100a8: ae400088 */ sw $zero,0x88($s2) -/* f0100ac: 864b0006 */ lh $t3,0x6($s2) -/* f0100b0: 0fc24908 */ jal setupCommandGetObject -/* f0100b4: 01732021 */ addu $a0,$t3,$s3 -/* f0100b8: 10400004 */ beqz $v0,.L0f0100cc -/* f0100bc: ae42000c */ sw $v0,0xc($s2) -/* f0100c0: 8c4d0040 */ lw $t5,0x40($v0) -/* f0100c4: 35ac0010 */ ori $t4,$t5,0x10 -/* f0100c8: ac4c0040 */ sw $t4,0x40($v0) -.L0f0100cc: -/* f0100cc: 0fc0429a */ jal func0f010a68 -/* f0100d0: 02402025 */ or $a0,$s2,$zero -/* f0100d4: 1000006e */ b .L0f010290 -/* f0100d8: 00000000 */ nop -/* f0100dc: 8e4e0004 */ lw $t6,0x4($s2) -/* f0100e0: 0fc24908 */ jal setupCommandGetObject -/* f0100e4: 01d32021 */ addu $a0,$t6,$s3 -/* f0100e8: 10400004 */ beqz $v0,.L0f0100fc -/* f0100ec: ae420024 */ sw $v0,0x24($s2) -/* f0100f0: 8c4f0040 */ lw $t7,0x40($v0) -/* f0100f4: 35f90400 */ ori $t9,$t7,0x400 -/* f0100f8: ac590040 */ sw $t9,0x40($v0) -.L0f0100fc: -/* f0100fc: 0fc44bce */ jal textoverrideInsert -/* f010100: 02402025 */ or $a0,$s2,$zero -/* f010104: 10000062 */ b .L0f010290 -/* f010108: 00000000 */ nop -/* f01010c: 24100001 */ addiu $s0,$zero,0x1 -/* f010110: 0fc042a0 */ jal func0f010a80 -/* f010114: 02402025 */ or $a0,$s2,$zero -/* f010118: 0fc5b367 */ jal getDifficulty -/* f01011c: 00000000 */ nop -/* f010120: 14400002 */ bnez $v0,.L0f01012c -/* f010124: 00000000 */ nop -/* f010128: 24100003 */ addiu $s0,$zero,0x3 -.L0f01012c: -/* f01012c: 0fc5b367 */ jal getDifficulty -/* f010130: 00000000 */ nop -/* f010134: 24010001 */ addiu $at,$zero,0x1 -/* f010138: 54410003 */ bnel $v0,$at,.L0f010148 -/* f01013c: 8e580004 */ lw $t8,0x4($s2) -/* f010140: 24100002 */ addiu $s0,$zero,0x2 -/* f010144: 8e580004 */ lw $t8,0x4($s2) -.L0f010148: -/* f010148: 16180051 */ bne $s0,$t8,.L0f010290 -/* f01014c: 00000000 */ nop -/* f010150: 8e4b0008 */ lw $t3,0x8($s2) -/* f010154: 3c01800a */ lui $at,%hi(g_Briefing) -/* f010158: 1000004d */ b .L0f010290 -/* f01015c: a42bdfc8 */ sh $t3,%lo(g_Briefing)($at) -/* f010160: 8e4d0004 */ lw $t5,0x4($s2) -/* f010164: 3c0142c8 */ lui $at,0x42c8 -/* f010168: 44810000 */ mtc1 $at,$f0 -/* f01016c: 448d9000 */ mtc1 $t5,$f18 -/* f010170: 8e4c0008 */ lw $t4,0x8($s2) -/* f010174: 8e4e000c */ lw $t6,0xc($s2) -/* f010178: 46809120 */ cvt.s.w $f4,$f18 -/* f01017c: 448c4000 */ mtc1 $t4,$f8 -/* f010180: 448e9000 */ mtc1 $t6,$f18 -/* f010184: 8e4f0010 */ lw $t7,0x10($s2) -/* f010188: 8e590014 */ lw $t9,0x14($s2) -/* f01018c: 468042a0 */ cvt.s.w $f10,$f8 -/* f010190: 448f4000 */ mtc1 $t7,$f8 -/* f010194: 46002183 */ div.s $f6,$f4,$f0 -/* f010198: 46809120 */ cvt.s.w $f4,$f18 -/* f01019c: 44999000 */ mtc1 $t9,$f18 -/* f0101a0: 46005403 */ div.s $f16,$f10,$f0 -/* f0101a4: e6460004 */ swc1 $f6,0x4($s2) -/* f0101a8: 468042a0 */ cvt.s.w $f10,$f8 -/* f0101ac: 46002183 */ div.s $f6,$f4,$f0 -/* f0101b0: e6500008 */ swc1 $f16,0x8($s2) -/* f0101b4: 46809120 */ cvt.s.w $f4,$f18 -/* f0101b8: 46165403 */ div.s $f16,$f10,$f22 -/* f0101bc: e646000c */ swc1 $f6,0xc($s2) -/* f0101c0: 46162183 */ div.s $f6,$f4,$f22 -/* f0101c4: e6500010 */ swc1 $f16,0x10($s2) -/* f0101c8: 10000031 */ b .L0f010290 -/* f0101cc: e6460014 */ swc1 $f6,0x14($s2) -/* f0101d0: 0fc042a6 */ jal func0f010a98 -/* f0101d4: 02402025 */ or $a0,$s2,$zero -/* f0101d8: 8e420004 */ lw $v0,0x4($s2) -/* f0101dc: 2c410007 */ sltiu $at,$v0,0x7 -/* f0101e0: 1020002b */ beqz $at,.L0f010290 -/* f0101e4: 00025840 */ sll $t3,$v0,0x1 -/* f0101e8: 8e580008 */ lw $t8,0x8($s2) -/* f0101ec: 3c01800a */ lui $at,%hi(g_Briefing+0x2) -/* f0101f0: 002b0821 */ addu $at,$at,$t3 -/* f0101f4: a438dfca */ sh $t8,%lo(g_Briefing+0x2)($at) -/* f0101f8: 8e4c0004 */ lw $t4,0x4($s2) -/* f0101fc: 824d000f */ lb $t5,0xf($s2) -/* f010200: 3c01800a */ lui $at,%hi(g_Briefing+0xe) -/* f010204: 000c7040 */ sll $t6,$t4,0x1 -/* f010208: 002e0821 */ addu $at,$at,$t6 -/* f01020c: 10000020 */ b .L0f010290 -/* f010210: a42ddfd6 */ sh $t5,%lo(g_Briefing+0xe)($at) -/* f010214: 0fc042b5 */ jal objectiveAddRoomEnteredCriteria -/* f010218: 02402025 */ or $a0,$s2,$zero -/* f01021c: 1000001c */ b .L0f010290 -/* f010220: 00000000 */ nop -/* f010224: 0fc042bb */ jal objectiveAddMultiroomEnteredCriteria -/* f010228: 02402025 */ or $a0,$s2,$zero -/* f01022c: 10000018 */ b .L0f010290 -/* f010230: 00000000 */ nop -/* f010234: 0fc042c1 */ jal objectiveAddHolographCriteria -/* f010238: 02402025 */ or $a0,$s2,$zero -/* f01023c: 10000014 */ b .L0f010290 -/* f010240: 00000000 */ nop -/* f010244: 3c038007 */ lui $v1,%hi(var80069964) -/* f010248: 24639964 */ addiu $v1,$v1,%lo(var80069964) -/* f01024c: 8c620000 */ lw $v0,0x0($v1) -/* f010250: 2401ffff */ addiu $at,$zero,-1 -/* f010254: 14410003 */ bne $v0,$at,.L0f010264 -/* f010258: 244f0001 */ addiu $t7,$v0,0x1 -/* f01025c: 3c018007 */ lui $at,%hi(var80069960) -/* f010260: ac329960 */ sw $s2,%lo(var80069960)($at) -.L0f010264: -/* f010264: 1000000a */ b .L0f010290 -/* f010268: ac6f0000 */ sw $t7,0x0($v1) -/* f01026c: 12a00008 */ beqz $s5,.L0f010290 -/* f010270: 00000000 */ nop -/* f010274: 8e59000c */ lw $t9,0xc($s2) -/* f010278: 02402025 */ or $a0,$s2,$zero -/* f01027c: 0334c024 */ and $t8,$t9,$s4 -/* f010280: 17000003 */ bnez $t8,.L0f010290 -/* f010284: 00000000 */ nop -/* f010288: 0fc03666 */ jal func0f00d998 -/* f01028c: 02602825 */ or $a1,$s3,$zero -.L0f010290: -/* f010290: 0fc24784 */ jal setupGetCommandLength -/* f010294: 02402025 */ or $a0,$s2,$zero -/* f010298: 00025880 */ sll $t3,$v0,0x2 -/* f01029c: 01729021 */ addu $s2,$t3,$s2 -/* f0102a0: 92430003 */ lbu $v1,0x3($s2) -/* f0102a4: 24010034 */ addiu $at,$zero,0x34 -/* f0102a8: 26730001 */ addiu $s3,$s3,0x1 -/* f0102ac: 5461fcd0 */ bnel $v1,$at,.L0f00f5f0 -/* f0102b0: 2478ffff */ addiu $t8,$v1,-1 -/* f0102b4: 00009825 */ or $s3,$zero,$zero -.L0f0102b8: -/* f0102b8: 3c0c800a */ lui $t4,%hi(g_Vars+0x318) -/* f0102bc: 8d8ca2d8 */ lw $t4,%lo(g_Vars+0x318)($t4) -/* f0102c0: 1180004f */ beqz $t4,.L0f010400 -/* f0102c4: 00000000 */ nop -/* f0102c8: 0fc63319 */ jal mpHasSimulants -/* f0102cc: 00000000 */ nop -/* f0102d0: 1040004b */ beqz $v0,.L0f010400 -/* f0102d4: 24040040 */ addiu $a0,$zero,0x40 -/* f0102d8: 0fc67244 */ jal mpIsChallengeComplete -/* f0102dc: afa000fc */ sw $zero,0xfc($sp) -/* f0102e0: 10400003 */ beqz $v0,.L0f0102f0 -/* f0102e4: 27a30120 */ addiu $v1,$sp,0x120 -/* f0102e8: 10000002 */ b .L0f0102f4 -/* f0102ec: 24120008 */ addiu $s2,$zero,0x8 -.L0f0102f0: -/* f0102f0: 24120004 */ addiu $s2,$zero,0x4 -.L0f0102f4: -/* f0102f4: 27a20100 */ addiu $v0,$sp,0x100 -.L0f0102f8: -/* f0102f8: 24420004 */ addiu $v0,$v0,0x4 -/* f0102fc: 0043082b */ sltu $at,$v0,$v1 -/* f010300: 1420fffd */ bnez $at,.L0f0102f8 -/* f010304: ac40fffc */ sw $zero,-0x4($v0) -/* f010308: 1a40003d */ blez $s2,.L0f010400 -/* f01030c: 00003025 */ or $a2,$zero,$zero -/* f010310: 3c14800b */ lui $s4,%hi(g_MpSetup) -/* f010314: 2694cb88 */ addiu $s4,$s4,%lo(g_MpSetup) -/* f010318: 27b10100 */ addiu $s1,$sp,0x100 -.L0f01031c: -/* f01031c: 0c004b70 */ jal random -/* f010320: afa60120 */ sw $a2,0x120($sp) -/* f010324: 0052001b */ divu $zero,$v0,$s2 -/* f010328: 00001810 */ mfhi $v1 -/* f01032c: 00036880 */ sll $t5,$v1,0x2 -/* f010330: 022d7021 */ addu $t6,$s1,$t5 -/* f010334: 8dcf0000 */ lw $t7,0x0($t6) -/* f010338: 00608025 */ or $s0,$v1,$zero -/* f01033c: 8fa60120 */ lw $a2,0x120($sp) -/* f010340: 16400002 */ bnez $s2,.L0f01034c -/* f010344: 00000000 */ nop -/* f010348: 0007000d */ break 0x7 -.L0f01034c: -/* f01034c: 11e00011 */ beqz $t7,.L0f010394 -/* f010350: 26190001 */ addiu $t9,$s0,0x1 -.L0f010354: -/* f010354: 0332001a */ div $zero,$t9,$s2 -/* f010358: 00008010 */ mfhi $s0 -/* f01035c: 0010c080 */ sll $t8,$s0,0x2 -/* f010360: 02385821 */ addu $t3,$s1,$t8 -/* f010364: 8d6c0000 */ lw $t4,0x0($t3) -/* f010368: 16400002 */ bnez $s2,.L0f010374 -/* f01036c: 00000000 */ nop -/* f010370: 0007000d */ break 0x7 -.L0f010374: -/* f010374: 2401ffff */ addiu $at,$zero,-1 -/* f010378: 16410004 */ bne $s2,$at,.L0f01038c -/* f01037c: 3c018000 */ lui $at,0x8000 -/* f010380: 17210002 */ bne $t9,$at,.L0f01038c -/* f010384: 00000000 */ nop -/* f010388: 0006000d */ break 0x6 -.L0f01038c: -/* f01038c: 5580fff1 */ bnezl $t4,.L0f010354 -/* f010390: 26190001 */ addiu $t9,$s0,0x1 -.L0f010394: -/* f010394: 968f0016 */ lhu $t7,0x16($s4) -/* f010398: 26190004 */ addiu $t9,$s0,0x4 -/* f01039c: 24180001 */ addiu $t8,$zero,0x1 -/* f0103a0: 03385804 */ sllv $t3,$t8,$t9 -/* f0103a4: 00106880 */ sll $t5,$s0,0x2 -/* f0103a8: 022d7021 */ addu $t6,$s1,$t5 -/* f0103ac: 01eb6024 */ and $t4,$t7,$t3 -/* f0103b0: 1180000e */ beqz $t4,.L0f0103ec -/* f0103b4: afae005c */ sw $t6,0x5c($sp) -/* f0103b8: 02002025 */ or $a0,$s0,$zero -/* f0103bc: 0fc6333e */ jal mpIsSimSlotEnabled -/* f0103c0: afa60120 */ sw $a2,0x120($sp) -/* f0103c4: 10400009 */ beqz $v0,.L0f0103ec -/* f0103c8: 8fa60120 */ lw $a2,0x120($sp) -/* f0103cc: 8fa400fc */ lw $a0,0xfc($sp) -/* f0103d0: 02002825 */ or $a1,$s0,$zero -/* f0103d4: 0fc05212 */ jal func0f014848 -/* f0103d8: afa60120 */ sw $a2,0x120($sp) -/* f0103dc: 8fad00fc */ lw $t5,0xfc($sp) -/* f0103e0: 8fa60120 */ lw $a2,0x120($sp) -/* f0103e4: 25ae0001 */ addiu $t6,$t5,0x1 -/* f0103e8: afae00fc */ sw $t6,0xfc($sp) -.L0f0103ec: -/* f0103ec: 8fb9005c */ lw $t9,0x5c($sp) -/* f0103f0: 24c60001 */ addiu $a2,$a2,0x1 -/* f0103f4: 24180001 */ addiu $t8,$zero,0x1 -/* f0103f8: 14d2ffc8 */ bne $a2,$s2,.L0f01031c -/* f0103fc: af380000 */ sw $t8,0x0($t9) -.L0f010400: -/* f010400: 3c0f800a */ lui $t7,%hi(g_Vars+0x318) -/* f010404: 8defa2d8 */ lw $t7,%lo(g_Vars+0x318)($t7) -/* f010408: 11e00003 */ beqz $t7,.L0f010418 -/* f01040c: 00000000 */ nop -/* f010410: 0fc61548 */ jal scenarioReset -/* f010414: 00000000 */ nop -.L0f010418: -/* f010418: 3c12800a */ lui $s2,%hi(g_StageSetup+0x10) -/* f01041c: 8e52d040 */ lw $s2,%lo(g_StageSetup+0x10)($s2) -/* f010420: 24010034 */ addiu $at,$zero,0x34 -/* f010424: 2417002b */ addiu $s7,$zero,0x2b -/* f010428: 92430003 */ lbu $v1,0x3($s2) -/* f01042c: 24160008 */ addiu $s6,$zero,0x8 -/* f010430: 3c150200 */ lui $s5,0x200 -/* f010434: 10610113 */ beq $v1,$at,.L0f010884 -/* f010438: 3c140008 */ lui $s4,0x8 -/* f01043c: 246bfffd */ addiu $t3,$v1,-3 -.L0f010440: -/* f010440: 2d610030 */ sltiu $at,$t3,0x30 -/* f010444: 10200102 */ beqz $at,.L0f010850 -/* f010448: 000b5880 */ sll $t3,$t3,0x2 -/* f01044c: 3c017f1b */ lui $at,%hi(var7f1a8168) -/* f010450: 002b0821 */ addu $at,$at,$t3 -/* f010454: 8c2b8168 */ lw $t3,%lo(var7f1a8168)($at) -/* f010458: 01600008 */ jr $t3 -/* f01045c: 00000000 */ nop -/* f010460: 8e4c0014 */ lw $t4,0x14($s2) -/* f010464: 118000fa */ beqz $t4,.L0f010850 -/* f010468: 00000000 */ nop -/* f01046c: 8e4d0008 */ lw $t5,0x8($s2) -/* f010470: 31ae8000 */ andi $t6,$t5,0x8000 -/* f010474: 11c000f6 */ beqz $t6,.L0f010850 -/* f010478: 00000000 */ nop -/* f01047c: 86420006 */ lh $v0,0x6($s2) -/* f010480: 0fc24908 */ jal setupCommandGetObject -/* f010484: 02622021 */ addu $a0,$s3,$v0 -/* f010488: 104000f1 */ beqz $v0,.L0f010850 -/* f01048c: 00408025 */ or $s0,$v0,$zero -/* f010490: 8c580014 */ lw $t8,0x14($v0) -/* f010494: 130000ee */ beqz $t8,.L0f010850 -/* f010498: 00000000 */ nop -/* f01049c: 8e590040 */ lw $t9,0x40($s2) -/* f0104a0: 8e460018 */ lw $a2,0x18($s2) -/* f0104a4: 03347825 */ or $t7,$t9,$s4 -/* f0104a8: ae4f0040 */ sw $t7,0x40($s2) -/* f0104ac: 8cc50014 */ lw $a1,0x14($a2) -/* f0104b0: 0c006bd6 */ jal modelSetUnk14 -/* f0104b4: 00c02025 */ or $a0,$a2,$zero -/* f0104b8: 8e440014 */ lw $a0,0x14($s2) -/* f0104bc: 0fc181a6 */ jal propReparent -/* f0104c0: 8e050014 */ lw $a1,0x14($s0) -/* f0104c4: 100000e2 */ b .L0f010850 -/* f0104c8: 00000000 */ nop -/* f0104cc: 864b0004 */ lh $t3,0x4($s2) -/* f0104d0: 0fc24801 */ jal setupGetPtrToCommandByIndex -/* f0104d4: 01732021 */ addu $a0,$t3,$s3 -/* f0104d8: 864c0006 */ lh $t4,0x6($s2) -/* f0104dc: 00408025 */ or $s0,$v0,$zero -/* f0104e0: 0fc24801 */ jal setupGetPtrToCommandByIndex -/* f0104e4: 01932021 */ addu $a0,$t4,$s3 -/* f0104e8: 120000d9 */ beqz $s0,.L0f010850 -/* f0104ec: 00402825 */ or $a1,$v0,$zero -/* f0104f0: 104000d7 */ beqz $v0,.L0f010850 -/* f0104f4: 00000000 */ nop -/* f0104f8: 920d0003 */ lbu $t5,0x3($s0) -/* f0104fc: 16cd00d4 */ bne $s6,$t5,.L0f010850 -/* f010500: 00000000 */ nop -/* f010504: 904e0003 */ lbu $t6,0x3($v0) -/* f010508: 16ce00d1 */ bne $s6,$t6,.L0f010850 -/* f01050c: 00000000 */ nop -/* f010510: 0fc22b6b */ jal propweaponSetDual -/* f010514: 02002025 */ or $a0,$s0,$zero -/* f010518: 100000cd */ b .L0f010850 -/* f01051c: 00000000 */ nop -/* f010520: 8e420004 */ lw $v0,0x4($s2) -/* f010524: 8e510008 */ lw $s1,0x8($s2) -/* f010528: 0fc24908 */ jal setupCommandGetObject -/* f01052c: 02622021 */ addu $a0,$s3,$v0 -/* f010530: 00408025 */ or $s0,$v0,$zero -/* f010534: 0fc24908 */ jal setupCommandGetObject -/* f010538: 02712021 */ addu $a0,$s3,$s1 -/* f01053c: 120000c4 */ beqz $s0,.L0f010850 -/* f010540: 00000000 */ nop -/* f010544: 8e030014 */ lw $v1,0x14($s0) -/* f010548: 106000c1 */ beqz $v1,.L0f010850 -/* f01054c: 00000000 */ nop -/* f010550: 104000bf */ beqz $v0,.L0f010850 -/* f010554: 00000000 */ nop -/* f010558: 8c580014 */ lw $t8,0x14($v0) -/* f01055c: 130000bc */ beqz $t8,.L0f010850 -/* f010560: 00000000 */ nop -/* f010564: ae430004 */ sw $v1,0x4($s2) -/* f010568: 8c590014 */ lw $t9,0x14($v0) -/* f01056c: 02402025 */ or $a0,$s2,$zero -/* f010570: 0fc03305 */ jal func0f00cc14 -/* f010574: ae590008 */ sw $t9,0x8($s2) -/* f010578: 8e0f0040 */ lw $t7,0x40($s0) -/* f01057c: 35eb0001 */ ori $t3,$t7,0x1 -/* f010580: 100000b3 */ b .L0f010850 -/* f010584: ae0b0040 */ sw $t3,0x40($s0) -/* f010588: 8e420004 */ lw $v0,0x4($s2) -/* f01058c: 8e4c000c */ lw $t4,0xc($s2) -/* f010590: 8e510008 */ lw $s1,0x8($s2) -/* f010594: 02622021 */ addu $a0,$s3,$v0 -/* f010598: 0fc24908 */ jal setupCommandGetObject -/* f01059c: afac00bc */ sw $t4,0xbc($sp) -/* f0105a0: 00408025 */ or $s0,$v0,$zero -/* f0105a4: 0fc24908 */ jal setupCommandGetObject -/* f0105a8: 02712021 */ addu $a0,$s3,$s1 -/* f0105ac: 8fad00bc */ lw $t5,0xbc($sp) -/* f0105b0: 00408825 */ or $s1,$v0,$zero -/* f0105b4: 0fc24908 */ jal setupCommandGetObject -/* f0105b8: 026d2021 */ addu $a0,$s3,$t5 -/* f0105bc: 120000a4 */ beqz $s0,.L0f010850 -/* f0105c0: 00000000 */ nop -/* f0105c4: 8e0e0014 */ lw $t6,0x14($s0) -/* f0105c8: 11c000a1 */ beqz $t6,.L0f010850 -/* f0105cc: 00000000 */ nop -/* f0105d0: 1220009f */ beqz $s1,.L0f010850 -/* f0105d4: 00000000 */ nop -/* f0105d8: 8e380014 */ lw $t8,0x14($s1) -/* f0105dc: 1300009c */ beqz $t8,.L0f010850 -/* f0105e0: 00000000 */ nop -/* f0105e4: 92390003 */ lbu $t9,0x3($s1) -/* f0105e8: 16f90099 */ bne $s7,$t9,.L0f010850 -/* f0105ec: 00000000 */ nop -/* f0105f0: 10400097 */ beqz $v0,.L0f010850 -/* f0105f4: 00000000 */ nop -/* f0105f8: 8c4f0014 */ lw $t7,0x14($v0) -/* f0105fc: 11e00094 */ beqz $t7,.L0f010850 -/* f010600: 00000000 */ nop -/* f010604: 904b0003 */ lbu $t3,0x3($v0) -/* f010608: 24010001 */ addiu $at,$zero,0x1 -/* f01060c: 02402025 */ or $a0,$s2,$zero -/* f010610: 1561008f */ bne $t3,$at,.L0f010850 -/* f010614: 00000000 */ nop -/* f010618: ae500004 */ sw $s0,0x4($s2) -/* f01061c: ae510008 */ sw $s1,0x8($s2) -/* f010620: ae42000c */ sw $v0,0xc($s2) -/* f010624: 0fc03311 */ jal func0f00cc44 -/* f010628: afa200b0 */ sw $v0,0xb0($sp) -/* f01062c: 8e0c000c */ lw $t4,0xc($s0) -/* f010630: 8fa300b0 */ lw $v1,0xb0($sp) -/* f010634: 358d0400 */ ori $t5,$t4,0x400 -/* f010638: ae0d000c */ sw $t5,0xc($s0) -/* f01063c: 8c6e000c */ lw $t6,0xc($v1) -/* f010640: 35d80400 */ ori $t8,$t6,0x400 -/* f010644: 10000082 */ b .L0f010850 -/* f010648: ac78000c */ sw $t8,0xc($v1) -/* f01064c: 8e420004 */ lw $v0,0x4($s2) -/* f010650: 8e510008 */ lw $s1,0x8($s2) -/* f010654: 0fc24908 */ jal setupCommandGetObject -/* f010658: 02622021 */ addu $a0,$s3,$v0 -/* f01065c: 00408025 */ or $s0,$v0,$zero -/* f010660: 0fc24908 */ jal setupCommandGetObject -/* f010664: 02712021 */ addu $a0,$s3,$s1 -/* f010668: 12000079 */ beqz $s0,.L0f010850 -/* f01066c: 00000000 */ nop -/* f010670: 8e190014 */ lw $t9,0x14($s0) -/* f010674: 13200076 */ beqz $t9,.L0f010850 -/* f010678: 00000000 */ nop -/* f01067c: 10400074 */ beqz $v0,.L0f010850 -/* f010680: 00000000 */ nop -/* f010684: 8c4f0014 */ lw $t7,0x14($v0) -/* f010688: 11e00071 */ beqz $t7,.L0f010850 -/* f01068c: 00000000 */ nop -/* f010690: 920b0003 */ lbu $t3,0x3($s0) -/* f010694: 24010001 */ addiu $at,$zero,0x1 -/* f010698: 02402025 */ or $a0,$s2,$zero -/* f01069c: 1561006c */ bne $t3,$at,.L0f010850 -/* f0106a0: 00000000 */ nop -/* f0106a4: ae500004 */ sw $s0,0x4($s2) -/* f0106a8: 0fc0330b */ jal func0f00cc2c -/* f0106ac: ae420008 */ sw $v0,0x8($s2) -/* f0106b0: 8e0c0040 */ lw $t4,0x40($s0) -/* f0106b4: 358d2000 */ ori $t5,$t4,0x2000 -/* f0106b8: 10000065 */ b .L0f010850 -/* f0106bc: ae0d0040 */ sw $t5,0x40($s0) -/* f0106c0: 8e4e0008 */ lw $t6,0x8($s2) -/* f0106c4: 8e420004 */ lw $v0,0x4($s2) -/* f0106c8: 00008825 */ or $s1,$zero,$zero -/* f0106cc: afae0090 */ sw $t6,0x90($sp) -/* f0106d0: 8e58000c */ lw $t8,0xc($s2) -/* f0106d4: 00008025 */ or $s0,$zero,$zero -/* f0106d8: 02622021 */ addu $a0,$s3,$v0 -/* f0106dc: 0fc24908 */ jal setupCommandGetObject -/* f0106e0: afb8008c */ sw $t8,0x8c($sp) -/* f0106e4: 8fb90090 */ lw $t9,0x90($sp) -/* f0106e8: 00403025 */ or $a2,$v0,$zero -/* f0106ec: 13200005 */ beqz $t9,.L0f010704 -/* f0106f0: 02792021 */ addu $a0,$s3,$t9 -/* f0106f4: 0fc24908 */ jal setupCommandGetObject -/* f0106f8: afa20088 */ sw $v0,0x88($sp) -/* f0106fc: 8fa60088 */ lw $a2,0x88($sp) -/* f010700: 00408825 */ or $s1,$v0,$zero -.L0f010704: -/* f010704: 8fa2008c */ lw $v0,0x8c($sp) -/* f010708: 10400006 */ beqz $v0,.L0f010724 -/* f01070c: 02622021 */ addu $a0,$s3,$v0 -/* f010710: 0fc24908 */ jal setupCommandGetObject -/* f010714: afa60088 */ sw $a2,0x88($sp) -/* f010718: 00408025 */ or $s0,$v0,$zero -/* f01071c: 8fa2008c */ lw $v0,0x8c($sp) -/* f010720: 8fa60088 */ lw $a2,0x88($sp) -.L0f010724: -/* f010724: 10c0004a */ beqz $a2,.L0f010850 -/* f010728: 00000000 */ nop -/* f01072c: 8ccf0014 */ lw $t7,0x14($a2) -/* f010730: 8fab0090 */ lw $t3,0x90($sp) -/* f010734: 11e00046 */ beqz $t7,.L0f010850 -/* f010738: 00000000 */ nop -/* f01073c: 11600006 */ beqz $t3,.L0f010758 -/* f010740: 00000000 */ nop -/* f010744: 12200042 */ beqz $s1,.L0f010850 -/* f010748: 00000000 */ nop -/* f01074c: 8e2c0014 */ lw $t4,0x14($s1) -/* f010750: 1180003f */ beqz $t4,.L0f010850 -/* f010754: 00000000 */ nop -.L0f010758: -/* f010758: 10400006 */ beqz $v0,.L0f010774 -/* f01075c: 02402025 */ or $a0,$s2,$zero -/* f010760: 1200003b */ beqz $s0,.L0f010850 -/* f010764: 00000000 */ nop -/* f010768: 8e0d0014 */ lw $t5,0x14($s0) -/* f01076c: 11a00038 */ beqz $t5,.L0f010850 -/* f010770: 00000000 */ nop -.L0f010774: -/* f010774: ae460004 */ sw $a2,0x4($s2) -/* f010778: ae510008 */ sw $s1,0x8($s2) -/* f01077c: ae50000c */ sw $s0,0xc($s2) -/* f010780: 0fc03317 */ jal func0f00cc5c -/* f010784: afa60088 */ sw $a2,0x88($sp) -/* f010788: 8fa60088 */ lw $a2,0x88($sp) -/* f01078c: 3c010100 */ lui $at,0x100 -/* f010790: 8cce0040 */ lw $t6,0x40($a2) -/* f010794: 00c02025 */ or $a0,$a2,$zero -/* f010798: 01c1c025 */ or $t8,$t6,$at -/* f01079c: acd80040 */ sw $t8,0x40($a2) -/* f0107a0: 8fb90090 */ lw $t9,0x90($sp) -/* f0107a4: 53200006 */ beqzl $t9,.L0f0107c0 -/* f0107a8: 8fac008c */ lw $t4,0x8c($sp) -/* f0107ac: 8e2f0040 */ lw $t7,0x40($s1) -/* f0107b0: 3c010100 */ lui $at,0x100 -/* f0107b4: 01e15825 */ or $t3,$t7,$at -/* f0107b8: ae2b0040 */ sw $t3,0x40($s1) -/* f0107bc: 8fac008c */ lw $t4,0x8c($sp) -.L0f0107c0: -/* f0107c0: 51800009 */ beqzl $t4,.L0f0107e8 -/* f0107c4: 8ccf0040 */ lw $t7,0x40($a2) -/* f0107c8: 8e0d0040 */ lw $t5,0x40($s0) -/* f0107cc: 8e18000c */ lw $t8,0xc($s0) -/* f0107d0: 3c010100 */ lui $at,0x100 -/* f0107d4: 01a17025 */ or $t6,$t5,$at -/* f0107d8: 0314c825 */ or $t9,$t8,$s4 -/* f0107dc: ae0e0040 */ sw $t6,0x40($s0) -/* f0107e0: ae19000c */ sw $t9,0xc($s0) -/* f0107e4: 8ccf0040 */ lw $t7,0x40($a2) -.L0f0107e8: -/* f0107e8: 01f55824 */ and $t3,$t7,$s5 -/* f0107ec: 11600018 */ beqz $t3,.L0f010850 -/* f0107f0: 00000000 */ nop -/* f0107f4: 0c006174 */ jal func000185d0 -/* f0107f8: 00002825 */ or $a1,$zero,$zero -/* f0107fc: 10000014 */ b .L0f010850 -/* f010800: 00000000 */ nop -/* f010804: 8e420004 */ lw $v0,0x4($s2) -/* f010808: 0fc24908 */ jal setupCommandGetObject -/* f01080c: 02622021 */ addu $a0,$s3,$v0 -/* f010810: 1040000f */ beqz $v0,.L0f010850 -/* f010814: 00408025 */ or $s0,$v0,$zero -/* f010818: 8c4c0014 */ lw $t4,0x14($v0) -/* f01081c: 02402025 */ or $a0,$s2,$zero -/* f010820: 1180000b */ beqz $t4,.L0f010850 -/* f010824: 00000000 */ nop -/* f010828: 0fc0331d */ jal func0f00cc74 -/* f01082c: ae420004 */ sw $v0,0x4($s2) -/* f010830: 8e0d0040 */ lw $t5,0x40($s0) -/* f010834: 02002025 */ or $a0,$s0,$zero -/* f010838: 01b57025 */ or $t6,$t5,$s5 -/* f01083c: 000ec9c0 */ sll $t9,$t6,0x7 -/* f010840: 07210003 */ bgez $t9,.L0f010850 -/* f010844: ae0e0040 */ sw $t6,0x40($s0) -/* f010848: 0c006174 */ jal func000185d0 -/* f01084c: 00002825 */ or $a1,$zero,$zero -.L0f010850: -/* f010850: 0fc24784 */ jal setupGetCommandLength -/* f010854: 02402025 */ or $a0,$s2,$zero -/* f010858: 00027880 */ sll $t7,$v0,0x2 -/* f01085c: 01f29021 */ addu $s2,$t7,$s2 -/* f010860: 92430003 */ lbu $v1,0x3($s2) -/* f010864: 24010034 */ addiu $at,$zero,0x34 -/* f010868: 26730001 */ addiu $s3,$s3,0x1 -/* f01086c: 5461fef4 */ bnel $v1,$at,.L0f010440 -/* f010870: 246bfffd */ addiu $t3,$v1,-3 -/* f010874: 10000003 */ b .L0f010884 -/* f010878: 00000000 */ nop -.L0f01087c: -/* f01087c: 0fc02d8b */ jal func0f00b62c -/* f010880: 00002025 */ or $a0,$zero,$zero -.L0f010884: -/* f010884: 0fc02ef2 */ jal func0f00bbc8 -/* f010888: 00000000 */ nop -/* f01088c: 8fbf004c */ lw $ra,0x4c($sp) -/* f010890: d7b40018 */ ldc1 $f20,0x18($sp) -/* f010894: d7b60020 */ ldc1 $f22,0x20($sp) -/* f010898: 8fb00028 */ lw $s0,0x28($sp) -/* f01089c: 8fb1002c */ lw $s1,0x2c($sp) -/* f0108a0: 8fb20030 */ lw $s2,0x30($sp) -/* f0108a4: 8fb30034 */ lw $s3,0x34($sp) -/* f0108a8: 8fb40038 */ lw $s4,0x38($sp) -/* f0108ac: 8fb5003c */ lw $s5,0x3c($sp) -/* f0108b0: 8fb60040 */ lw $s6,0x40($sp) -/* f0108b4: 8fb70044 */ lw $s7,0x44($sp) -/* f0108b8: 8fbe0048 */ lw $s8,0x48($sp) -/* f0108bc: 03e00008 */ jr $ra -/* f0108c0: 27bd0248 */ addiu $sp,$sp,0x248 -/* f0108c4: 00000000 */ nop -/* f0108c8: 00000000 */ nop -/* f0108cc: 00000000 */ nop -); +void setupParseObjects(s32 stagenum) +{ + s32 withchrs = !func00013010(1, "-nochr") && !func00013010(1, "-noprop"); + s32 withobjs = !func00013010(1, "-noobj") && !func00013010(1, "-noprop"); + s32 withhovercars; + s32 escstepx; + s32 escstepy; + struct defaultobj *obj; + s32 i; + s32 j; + + withhovercars = !(stagenum == STAGE_EXTRACTION || stagenum == STAGE_DEFECTION) + || !(g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0); + + escstepx = 0; + escstepy = 0; + g_Vars.textoverrides = NULL; + + for (j = 0; j != 6; j++) { + g_Briefing.objectivenames[j + 1] = 0; + g_Briefing.objectivedifficulties[j + 1] = 0; + } + + g_Briefing.objectivenames[0] = L_MISC(42); // "No briefing for this mission" + + if (stagenum < STAGE_TITLE) { + if (g_StageSetup.padfiledata) { + func0f012aa0(); + } + + func0f012d50(); + + if (withchrs) { + s32 numchrs = 0; + + numchrs += setupCountCommandType(OBJTYPE_CHR); + + if (g_Vars.normmplayerisrunning == false + && g_MissionConfig.iscoop + && g_Vars.numaibuddies > 0) { + numchrs += g_Vars.numaibuddies; + } + + func0f00b62c(numchrs); + } else { + func0f00b62c(0); + } + + for (j = 0; j < PLAYERCOUNT(); j++) { + setCurrentPlayerNum(j); + func0f012530(setupCountCommandType(OBJTYPE_LINKGUNS)); + } + + if (g_StageSetup.props) { + u32 diffflag = 0; + s32 index; + + diffflag |= 1 << (getDifficulty() + 4); + + if (g_Vars.mplayerisrunning) { + if (PLAYERCOUNT() == 2) { + diffflag |= OBJFLAG2_EXCLUDE_2P; + } else if (PLAYERCOUNT() == 3) { + diffflag |= OBJFLAG2_EXCLUDE_3P; + } else if (PLAYERCOUNT() == 4) { + diffflag |= OBJFLAG2_EXCLUDE_4P; + } + } + + mpRemoveAllSimulants(); + index = 0; + + obj = (struct defaultobj *)g_StageSetup.props; + + while (obj->type != OBJTYPE_END) { + switch (obj->type) { + case OBJTYPE_GRENADEPROB: + { + struct grenadeprobobj *grenadeprob = (struct grenadeprobobj *)obj; + u8 probability = grenadeprob->probability; + struct chrdata *chr = chrFindByLiteralId(grenadeprob->chrnum); + + if (chr && chr->prop && chr->model) { + chr->grenadeprob = probability; + } + } + break; + case OBJTYPE_CHR: + if (withchrs) { + chrUnpack(stagenum, obj, index); + } + break; + case OBJTYPE_DOOR: + if (withobjs && (obj->flags2 & diffflag) == 0) { + setupDoor((struct doorobj *)obj, index); + } + break; + case OBJTYPE_DOORSCALE: + { + struct doorscaleobj *scale = (struct doorscaleobj *)obj; + g_DoorScale = scale->scale / 65536.0f; + } + break; + case OBJTYPE_WEAPON: + if (withchrs && (obj->flags2 & diffflag) == 0) { + weaponAssignToHome((struct weaponobj *)obj, index); + } + break; + case OBJTYPE_KEY: + if (withchrs && (obj->flags2 & diffflag) == 0) { + setupKey((struct keyobj *)obj, index); + } + break; + case OBJTYPE_HAT: + if (withchrs && (obj->flags2 & diffflag) == 0) { + setupHat((struct hatobj *)obj, index); + } + break; + case OBJTYPE_CAMERA: + if (withobjs && (obj->flags2 & diffflag) == 0) { + setupCamera((struct cameraobj *)obj, index); + } + break; + case OBJTYPE_AUTOGUN: + if (withobjs && (obj->flags2 & diffflag) == 0) { + setupAutogun((struct autogunobj *)obj, index); + } + break; + case OBJTYPE_HANGINGMONITORS: + if (withobjs && (obj->flags2 & diffflag) == 0) { + setupHangingMonitors((struct hangingmonitorsobj *)obj, index); + } + break; + case OBJTYPE_SINGLEMONITOR: + if (withobjs && (obj->flags2 & diffflag) == 0) { + setupSingleMonitor((struct singlemonitorobj *)obj, index); + } + break; + case OBJTYPE_MULTIMONITOR: + if (withobjs && (obj->flags2 & diffflag) == 0) { + setupMultiMonitor((struct multimonitorobj *)obj, index); + } + break; + case OBJTYPE_SHIELD: + if (withobjs) { + if ((obj->flags2 & diffflag) == 0 || g_LanguageId != LANGUAGE_ENGLISH) { + struct shieldobj *shield = (struct shieldobj *)obj; + shield->initialamount = *(s32 *)&shield->initialamount / 65536.0f; + shield->amount = shield->initialamount; + setupGenericObject(obj, index); + } + } + break; + case OBJTYPE_TINTEDGLASS: + if (withobjs && (obj->flags2 & diffflag) == 0) { + if (obj->flags & OBJFLAG_DEACTIVATED) { + struct tintedglassobj *glass = (struct tintedglassobj *)obj; + glass->portalnum = func0f00e1f8(obj->pad); + glass->unk64 = *(s32 *)&glass->unk64 / 65536.0f; + } + + setupGenericObject(obj, index); + } + break; + case OBJTYPE_LIFT: + if (withobjs && (obj->flags2 & diffflag) == 0) { + struct liftobj *lift = (struct liftobj *)obj; + struct propdefinition *propdef; + s32 modelnum = obj->modelnum; + struct prop *prop; + s32 i; + + lift->dist = 0; + lift->speed = 0; + lift->levelcur = 0; + lift->levelaim = 0; + lift->accel = *(s32 *)&lift->accel / 65536.0f; + lift->maxspeed = *(s32 *)&lift->maxspeed / 65536.0f; + + for (i = 0; i < 4; i++) { + if (lift->doors[i]) { + lift->doors[i] = (struct doorobj *)setupGetPtrToCommandByIndex(index + *(s32*)&lift->doors[i]); + } + } + + obj->numtiles = 1; + propLoad(modelnum); + propdef = &g_Props[modelnum]; + + if (propdef->filedata) { + if (modelGetPartNodeData(propdef->filedata, 1)) { + obj->numtiles++; + } + if (modelGetPartNodeData(propdef->filedata, 2)) { + obj->numtiles++; + } + if (modelGetPartNodeData(propdef->filedata, 3)) { + obj->numtiles++; + } + if (modelGetPartNodeData(propdef->filedata, 4)) { + obj->numtiles++; + } + if (modelGetPartNodeData(propdef->filedata, 6)) { + obj->numtiles++; + } + } + + obj->flags &= ~OBJFLAG_00000100; + + setupGenericObject(obj, index); + + prop = obj->prop; + + if (prop) { + lift->prevpos.x = prop->pos.x; + lift->prevpos.y = prop->pos.y; + lift->prevpos.z = prop->pos.z; + + func0f070f08(lift, true); + } + } + break; + case OBJTYPE_HOVERPROP: + if (withobjs && (obj->flags2 & diffflag) == 0) { + struct hoverpropobj *hoverprop = (struct hoverpropobj *)obj; + + setupGenericObject(obj, index); + setupHov(obj, &hoverprop->hov); + } + break; + case OBJTYPE_HOVERBIKE: + if (withobjs && (obj->flags2 & diffflag) == 0) { + struct hoverbikeobj *bike = (struct hoverbikeobj *)obj; + + setupGenericObject(obj, index); + setupHov(obj, &bike->hov); + + bike->speed[0] = 0; + bike->speed[1] = 0; + bike->w = 0; + bike->rels[0] = 0; + bike->rels[1] = 0; + bike->exreal = 0; + bike->ezreal = 0; + bike->ezreal2 = 0; + bike->leanspeed = 0; + bike->leandiff = 0; + bike->maxspeedtime240 = 0; + bike->speedabs[0] = 0; + bike->speedabs[1] = 0; + bike->speedrel[0] = 0; + bike->speedrel[1] = 0; + } + break; + case OBJTYPE_FAN: + if (withobjs && (obj->flags2 & diffflag) == 0) { + struct fanobj *fan = (struct fanobj *)obj; + + fan->yrot = 0; + fan->ymaxspeed = *(s32 *)&fan->ymaxspeed / 65536.0f; + fan->yaccel = *(s32 *)&fan->yaccel / 65536.0f; + + setupGenericObject(obj, index); + } + break; + case OBJTYPE_GLASS: + if (withobjs && (obj->flags2 & diffflag) == 0) { + if (obj->flags & OBJFLAG_DEACTIVATED) { + struct glassobj *glass = (struct glassobj *)obj; + glass->portalnum = func0f00e1f8(obj->pad); + } + + setupGenericObject(obj, index); + } + break; + case OBJTYPE_ESCALATOR: + if (withobjs && (obj->flags2 & diffflag) == 0) { + struct escalatorobj *step = (struct escalatorobj *)obj; + struct prop *prop; + f32 sp1a8[12]; + f32 sp184[9]; + + setupGenericObject(obj, index); + + prop = obj->prop; + + if (prop) { + step->prevpos.x = prop->pos.x; + step->prevpos.y = prop->pos.y; + step->prevpos.z = prop->pos.z; + } + + if (obj->flags & OBJFLAG_DEACTIVATED) { + step->frame = escstepy; + escstepy += 40; + func00016374(4.7116389274597f, sp1a8); + func00015da0(sp1a8, sp184); + func00016110(sp184, obj->realrot); + } else { + step->frame = escstepx; + escstepx += 40; + func00016374(M_BADPI, sp1a8); + func00015da0(sp1a8, sp184); + func00016110(sp184, obj->realrot); + } + } + break; + case OBJTYPE_BASIC: + case OBJTYPE_ALARM: + case OBJTYPE_AMMOCRATE: + case OBJTYPE_DEBRIS: + case OBJTYPE_24: + case OBJTYPE_29: + case OBJTYPE_SAFE: + if (withobjs && (obj->flags2 & diffflag) == 0) { + setupGenericObject(obj, index); + } + break; + case OBJTYPE_MULTIAMMOCRATE: + { + struct multiammocrateobj *crate = (struct multiammocrateobj *)obj; + s32 ammoqty = 1; + s32 i; + + if (g_Vars.normmplayerisrunning && var8009cc30 >= 0) { + struct mpweapon *mpweapon = func0f188e24(var8009cc30); + ammoqty = mpweapon->weapon1ammoqty; + + if (mpweapon->weapon1ammotypeminusone > 0 && mpweapon->weapon1ammotypeminusone < 20) { + crate->quantities[mpweapon->weapon1ammotypeminusone - 1].unk02 = ammoqty; + } + + if (mpweapon->weapon2ammotypeminusone > 0 && mpweapon->weapon2ammotypeminusone < 20) { + crate->quantities[mpweapon->weapon2ammotypeminusone - 1].unk02 = mpweapon->weapon2ammoqty; + } + } + + if (ammoqty > 0 && withobjs && (obj->flags2 & diffflag) == 0) { + for (i = 0; i < 19; i++) { + if (crate->quantities[i].unk02 > 0 && crate->quantities[i].unk00 != 0xffff) { + propLoad(crate->quantities[i].unk00); + } + } + + setupGenericObject(obj, index); + } + } + break; + case OBJTYPE_TRUCK: + if (withobjs && (obj->flags2 & diffflag) == 0) { + struct truckobj *truck = (struct truckobj *)obj; + + setupGenericObject(obj, index); + + if (obj->model) { + struct modelnode *node = modelGetPart(obj->model->unk08, 5); + + if (node) { + struct modeldata_05 *data = modelGetNodeData(obj->model, node); + data->unk00 = ((obj->flags & OBJFLAG_DEACTIVATED) == 0); + } + } + + truck->speed = 0; + truck->wheelxrot = 0; + truck->wheelyrot = 0; + truck->speedaim = 0; + truck->speedtime60 = -1; + truck->turnrot60 = 0; + truck->roty = 0; + truck->ailist = ailistFindById((u32)truck->ailist); + truck->aioffset = 0; + truck->aireturnlist = -1; + truck->path = NULL; + truck->nextstep = 0; + } + break; + case OBJTYPE_HOVERCAR: + if (withhovercars && withobjs && (obj->flags2 & diffflag) == 0) { + struct hovercarobj *car = (struct hovercarobj *)obj; + struct prop *prop; + + setupGenericObject(obj, index); + + prop = obj->prop; + + car->speed = 0; + car->speedaim = 0; + car->turnrot60 = 0; + car->roty = 0; + car->rotx = 0; + car->speedtime60 = -1; + car->ailist = ailistFindById((s32)car->ailist); + car->aioffset = 0; + car->aireturnlist = -1; + car->path = NULL; + car->nextstep = 0; + + if (obj->flags & OBJFLAG_CHOPPER_INACTIVE) { + prop->pos.y = func0002a36c(&prop->pos, prop->rooms, NULL, 0) + 30; + } + + prop->unk3f_02 = true; + } + break; + case OBJTYPE_CHOPPER: + if (withobjs && (obj->flags2 & diffflag) == 0) { + struct chopperobj *chopper = (struct chopperobj *)obj; + + setupGenericObject(obj, index); + + obj->flags |= OBJFLAG_20000000; + obj->prop->unk3f_02 = true; + + chopper->turnrot60 = 0; + chopper->roty = 0; + chopper->rotx = 0; + chopper->gunroty = 0; + chopper->gunrotx = 0; + chopper->barrelrot = 0; + chopper->barrelrotspeed = 0; + chopper->ailist = ailistFindById((u32)chopper->ailist); + chopper->aioffset = 0; + chopper->aireturnlist = -1; + chopper->path = NULL; + chopper->nextstep = 0; + chopper->target = -1; + chopper->targetvisible = false; + chopper->attackmode = 0; + chopper->vz = 0; + chopper->vy = 0; + chopper->vx = 0; + chopper->otz = 0; + chopper->oty = 0; + chopper->otx = 0; + chopper->power = 0; + chopper->bob = 0; + chopper->bobstrength = 0.05f; + chopper->timer60 = 0; + chopper->patroltimer60 = 0; + chopper->cw = 0; + chopper->weaponsarmed = true; + chopper->fireslotthing = malloc(sizeof(struct fireslotthing), 4); + chopper->fireslotthing->bullettail = malloc(ALIGN16(sizeof(struct bullettail)), 4); + chopper->fireslotthing->bullettail->age = -1; + chopper->fireslotthing->unk08 = -1; + chopper->fireslotthing->unk00 = 0; + chopper->fireslotthing->unk01 = 0; + chopper->fireslotthing->unk0c = 0.85f; + chopper->fireslotthing->unk10 = 0.2f; + chopper->fireslotthing->unk14 = 0; + chopper->dead = false; + } + break; + case OBJTYPE_HELI: + if (withobjs && (obj->flags2 & diffflag) == 0) { + struct heliobj *heli = (struct heliobj *)obj; + + setupGenericObject(obj, index); + + heli->speed = 0; + heli->speedaim = 0; + heli->rotoryrot = 0; + heli->rotoryspeed = 0; + heli->rotoryspeedaim = 0; + heli->yrot = 0; + heli->speedtime60 = -1; + heli->rotoryspeedtime = -1; + heli->ailist = ailistFindById((u32)heli->ailist); + heli->aioffset = 0; + heli->aireturnlist = -1; + heli->path = NULL; + heli->nextstep = 0; + } + break; + case OBJTYPE_TAG: + { + struct tag *tag = (struct tag *)obj; + struct defaultobj *taggedobj = setupCommandGetObject(index + tag->cmdoffset); + tag->obj = taggedobj; + + if (taggedobj) { + taggedobj->hidden |= OBJHFLAG_TAGGED; + } + + tagInsert(tag); + } + break; + case OBJTYPE_RENAMEOBJ: + { + struct textoverride *override = (struct textoverride *)obj; + struct defaultobj *targetobj = setupCommandGetObject(override->objoffset + index); + override->obj = targetobj; + + if (targetobj) { + targetobj->hidden |= OBJHFLAG_HASTEXTOVERRIDE; + } + + textoverrideInsert(override); + } + break; + case OBJTYPE_BRIEFING: + { + struct briefingobj *briefing = (struct briefingobj *)obj; + s32 wanttype = BRIEFINGTYPE_TEXT_PA; + + briefingInsert(briefing); + + if (getDifficulty() == DIFF_A) { + wanttype = BRIEFINGTYPE_TEXT_A; + } + + if (getDifficulty() == DIFF_SA) { + wanttype = BRIEFINGTYPE_TEXT_SA; + } + + if (briefing->type == wanttype) { + g_Briefing.objectivenames[0] = briefing->text; + } + } + break; + case OBJTYPE_CAMERA2: + { + struct camera2obj *camera = (struct camera2obj *)obj; + camera->unk04 = *(s32 *)&camera->unk04 / 100.0f; + camera->unk08 = *(s32 *)&camera->unk08 / 100.0f; + camera->unk0c = *(s32 *)&camera->unk0c / 100.0f; + camera->unk10 = *(s32 *)&camera->unk10 / 65536.0f; + camera->unk14 = *(s32 *)&camera->unk14 / 65536.0f; + } + break; + case OBJTYPE_BEGINOBJECTIVE: + { + struct beginobjectiveobj *objective = (struct beginobjectiveobj *)obj; + + func0f010a98(obj); + + if (objective->index < 7) { + g_Briefing.objectivenames[objective->index + 1] = objective->text; + g_Briefing.objectivedifficulties[objective->index + 1] = (s8)objective->difficulty; + } + } + break; + case OBJECTIVETYPE_ENTERROOM: + objectiveAddRoomEnteredCriteria((struct criteria_roomentered *)obj); + break; + case OBJECTIVETYPE_ATTACHOBJ: + objectiveAddMultiroomEnteredCriteria((struct criteria_multiroomentered *)obj); + break; + case OBJECTIVETYPE_HOLOGRAPH: + objectiveAddHolographCriteria((struct criteria_holograph *)obj); + break; + case OBJTYPE_PADEFFECT: + { + struct padeffectobj *padeffect = (struct padeffectobj *)obj; + if (var80069964 == -1) { + var80069960 = padeffect; + } + var80069964++; + } + break; + case OBJTYPE_MINE: + if (withobjs && (obj->flags2 & diffflag) == 0) { + setupMine((struct mineobj *)obj, index); + } + break; + } + + obj = (struct defaultobj *)((u32 *)obj + setupGetCommandLength((u32 *)obj)); + index++; + } + + index = 0; + + if (g_Vars.normmplayerisrunning && mpHasSimulants()) { + u32 stack[4]; + s32 i; + s32 slotsdone[8]; + s32 someindex = 0; + s32 maxsimulants; + s32 slotnum; + + if (mpIsChallengeComplete(CHALLENGE_UNK64)) { + maxsimulants = 8; + } else { + maxsimulants = 4; + } + + for (i = 0; i < 8; i++) { + slotsdone[i] = false; + } + + for (i = 0; i < maxsimulants; i++) { + slotnum = random() % maxsimulants; + + while (slotsdone[slotnum]) { + slotnum = (slotnum + 1) % maxsimulants; + } + + if ((g_MpSetup.chrslots & (1 << (slotnum + 4))) + && mpIsSimSlotEnabled(slotnum)) { + func0f014848(someindex, slotnum); + someindex++; + } + + slotsdone[slotnum] = true; + } + } + + if (g_Vars.normmplayerisrunning) { + scenarioReset(); + } + + obj = (struct defaultobj *)g_StageSetup.props; + + while (obj->type != OBJTYPE_END) { + switch (obj->type) { + case OBJTYPE_BASIC: + case OBJTYPE_KEY: + case OBJTYPE_AMMOCRATE: + case OBJTYPE_WEAPON: + case OBJTYPE_SINGLEMONITOR: + case OBJTYPE_DEBRIS: + case OBJTYPE_MULTIAMMOCRATE: + case OBJTYPE_SHIELD: + case OBJTYPE_24: + case OBJTYPE_29: + case OBJTYPE_GLASS: + case OBJTYPE_SAFE: + case OBJTYPE_TINTEDGLASS: + if (obj->prop && (obj->flags & OBJFLAG_00008000)) { + s32 offset = obj->pad; + struct defaultobj *owner = setupCommandGetObject(index + offset); + + if (owner && owner->prop) { + obj->hidden |= OBJHFLAG_HASOWNER; + modelSetUnk14(obj->model, obj->model->unk14); + propReparent(obj->prop, owner->prop); + } + } + break; + case OBJTYPE_LINKGUNS: + { + struct linkgunsobj *link = (struct linkgunsobj *)obj; + struct weaponobj *gun1 = (struct weaponobj *)setupGetPtrToCommandByIndex(link->offset1 + index); + struct weaponobj *gun2 = (struct weaponobj *)setupGetPtrToCommandByIndex(link->offset2 + index); + + if (gun1 && gun2 + && gun1->base.type == OBJTYPE_WEAPON + && gun2->base.type == OBJTYPE_WEAPON) { + propweaponSetDual(gun1, gun2); + } + } + break; + case OBJTYPE_LINKLIFTDOOR: + { + struct linkliftdoorobj *link = (struct linkliftdoorobj *)obj; + s32 dooroffset = (s32)link->door; + s32 liftoffset = (s32)link->lift; + struct defaultobj *door = setupCommandGetObject(index + dooroffset); + struct defaultobj *lift = setupCommandGetObject(index + liftoffset); + + if (door && door->prop && lift && lift->prop) { + link->door = door->prop; + link->lift = lift->prop; + + addLiftDoor(link); + + door->hidden |= OBJHFLAG_LIFTDOOR; + } + } + break; + case OBJTYPE_SAFEITEM: + { + struct safeitemobj *link = (struct safeitemobj *)obj; + s32 itemoffset = (s32)link->item; + s32 safeoffset = (s32)link->safe; + s32 dooroffset = (s32)link->door; + struct defaultobj *item = setupCommandGetObject(index + itemoffset); + struct defaultobj *safe = setupCommandGetObject(index + safeoffset); + struct defaultobj *door = setupCommandGetObject(index + dooroffset); + + if (item && item->prop + && safe && safe->prop && safe->type == OBJTYPE_SAFE + && door && door->prop && door->type == OBJTYPE_DOOR) { + link->item = item; + link->safe = (struct safeobj *)safe; + link->door = (struct doorobj *)door; + + addSafeItem(link); + + item->flags2 |= OBJFLAG2_LINKEDTOSAFE; + door->flags2 |= OBJFLAG2_LINKEDTOSAFE; + } + } + break; + case OBJTYPE_PADLOCKEDDOOR: + { + struct padlockeddoorobj *link = (struct padlockeddoorobj *)obj; + s32 dooroffset = (s32)link->door; + s32 lockoffset = (s32)link->lock; + struct defaultobj *door = setupCommandGetObject(index + dooroffset); + struct defaultobj *lock = setupCommandGetObject(index + lockoffset); + + if (door && door->prop && lock && lock->prop + && door->type == OBJTYPE_DOOR) { + link->door = (struct doorobj *)door; + link->lock = lock; + + addPadlockedDoor(link); + + door->hidden |= OBJHFLAG_PADLOCKEDDOOR; + } + } + break; + case OBJTYPE_CONDITIONALSCENERY: + { + struct linksceneryobj *link = (struct linksceneryobj *)obj; + s32 triggeroffset = (s32)link->trigger; + s32 unexpoffset = (s32)link->unexp; + s32 expoffset = (s32)link->exp; + struct defaultobj *trigger = setupCommandGetObject(index + triggeroffset); + struct defaultobj *unexp = NULL; + struct defaultobj *exp = NULL; + s32 alwayszero = 0; + + if (unexpoffset) { + unexp = setupCommandGetObject(index + unexpoffset); + } + + if (expoffset) { + exp = setupCommandGetObject(index + expoffset); + } + + if (trigger && trigger->prop + && (unexpoffset == 0 || (unexp && unexp->prop)) + && (expoffset == 0 || (exp && exp->prop))) { + link->trigger = trigger; + link->unexp = unexp; + link->exp = exp; + + addConditionalScenery(link); + + trigger->hidden |= OBJHFLAG_01000000; + + if (unexpoffset) { + unexp->hidden |= OBJHFLAG_01000000; + } + + // This gets optimised out but makes v0 unavailable + // for storing OBJHFLAG_01000000, which is required + // for a match. Any function call would work; I just + // copied the one above. + if (alwayszero) { + addConditionalScenery(link); + } + + if (expoffset) { + exp->hidden |= OBJHFLAG_01000000; + exp->flags2 |= OBJFLAG2_INVISIBLE; + } + + if (trigger->hidden & OBJHFLAG_02000000) { + func000185d0(trigger, false); + } + } + } + break; + case OBJTYPE_BLOCKEDPATH: + { + struct blockedpathobj *blockedpath = (struct blockedpathobj *)obj; + s32 objoffset = (s32)blockedpath->blocker; + struct defaultobj *blocker = setupCommandGetObject(index + objoffset); + + if (blocker && blocker->prop) { + blockedpath->blocker = blocker; + + addBlockedPath(blockedpath); + + blocker->hidden |= OBJHFLAG_02000000; + + if (blocker->hidden & OBJHFLAG_01000000) { + func000185d0(blocker, false); + } + } + } + break; + } + + obj = (struct defaultobj *)((u32 *)obj + setupGetCommandLength((u32 *)obj)); + index++; + } + } + } else { + func0f00b62c(0); + } + + func0f00bbc8(); +} diff --git a/src/game/game_0109d0.c b/src/game/game_0109d0.c index ad11734fb..578b20d4d 100644 --- a/src/game/game_0109d0.c +++ b/src/game/game_0109d0.c @@ -58,7 +58,7 @@ glabel func0f0109d0 ); GLOBAL_ASM( -glabel func0f010a68 +glabel tagInsert /* f010a68: 3c02800a */ lui $v0,%hi(g_TagsLinkedList) /* f010a6c: 2442d0b0 */ addiu $v0,$v0,%lo(g_TagsLinkedList) /* f010a70: 8c4e0000 */ lw $t6,0x0($v0) @@ -68,7 +68,7 @@ glabel func0f010a68 ); GLOBAL_ASM( -glabel func0f010a80 +glabel briefingInsert /* f010a80: 3c02800a */ lui $v0,%hi(var8009d0b4) /* f010a84: 2442d0b4 */ addiu $v0,$v0,%lo(var8009d0b4) /* f010a88: 8c4e0000 */ lw $t6,0x0($v0) diff --git a/src/game/game_015010.c b/src/game/game_015010.c index 30309193e..95d018bcf 100644 --- a/src/game/game_015010.c +++ b/src/game/game_015010.c @@ -13,7 +13,7 @@ #include "gvars/gvars.h" #include "types.h" -void setupParseObjects(void) +void func0f015010(void) { u32 *ptr = g_StageSetup.props; @@ -29,9 +29,9 @@ void setupParseObjects(void) case OBJTYPE_WEAPON: case OBJTYPE_SINGLEMONITOR: case OBJTYPE_MULTIMONITOR: - case OBJTYPE_0C: + case OBJTYPE_HANGINGMONITORS: case OBJTYPE_AUTOGUN: - case OBJTYPE_11: + case OBJTYPE_HAT: case OBJTYPE_MULTIAMMOCRATE: case OBJTYPE_SHIELD: case OBJTYPE_24: @@ -39,7 +39,7 @@ void setupParseObjects(void) case OBJTYPE_HELI: case OBJTYPE_29: case OBJTYPE_GLASS: - case OBJTYPE_2B: + case OBJTYPE_SAFE: case OBJTYPE_2D: case OBJTYPE_TINTEDGLASS: case OBJTYPE_LIFT: @@ -49,15 +49,15 @@ void setupParseObjects(void) case OBJTYPE_HOVERCAR: case OBJTYPE_CHOPPER: case OBJTYPE_ESCALATOR: - setupParseObjectWithArg2False(ptr, 1); + func0f06b34c(ptr, 1); break; case OBJTYPE_DOORSCALE: case OBJTYPE_CHR: case OBJTYPE_LINKGUNS: case OBJTYPE_DEBRIS: case OBJTYPE_10: - case OBJTYPE_12: - case OBJTYPE_LINKOBJS: + case OBJTYPE_GRENADEPROB: + case OBJTYPE_LINKLIFTDOOR: case OBJTYPE_TAG: case OBJTYPE_BEGINOBJECTIVE: case OBJTYPE_ENDOBJECTIVE: @@ -73,11 +73,11 @@ void setupParseObjects(void) case OBJTYPE_22: case OBJTYPE_BRIEFING: case OBJTYPE_RENAMEOBJ: - case OBJTYPE_26: - case OBJTYPE_2C: + case OBJTYPE_PADLOCKEDDOOR: + case OBJTYPE_SAFEITEM: case OBJTYPE_CAMERA2: - case OBJTYPE_LINKSCENERY: - case OBJTYPE_LINKPATHS: + case OBJTYPE_CONDITIONALSCENERY: + case OBJTYPE_BLOCKEDPATH: case OBJTYPE_END: case OBJTYPE_PADEFFECT: case OBJTYPE_MINE: diff --git a/src/game/game_02cde0.c b/src/game/game_02cde0.c index cf43dfbb4..a8afd55ba 100644 --- a/src/game/game_02cde0.c +++ b/src/game/game_02cde0.c @@ -462,7 +462,7 @@ u32 bodyGetHead(u32 bodynum) } GLOBAL_ASM( -glabel func0f02d4fc +glabel chrUnpack /* f02d4fc: 27bdff48 */ addiu $sp,$sp,-184 /* f02d500: afb00028 */ sw $s0,0x28($sp) /* f02d504: afbf002c */ sw $ra,0x2c($sp) diff --git a/src/game/game_091e10.c b/src/game/game_091e10.c index 1e567c360..c0b89fbdf 100644 --- a/src/game/game_091e10.c +++ b/src/game/game_091e10.c @@ -20,62 +20,62 @@ u32 setupGetCommandLength(u32 *cmd) { switch ((u8)cmd[0]) { - case OBJTYPE_CHR: return 11; - case OBJTYPE_DOOR: return 55; - case OBJTYPE_DOORSCALE: return 2; - case OBJTYPE_BASIC: return 23; - case OBJTYPE_DEBRIS: return 23; - case OBJTYPE_GLASS: return 24; - case OBJTYPE_TINTEDGLASS: return 26; - case OBJTYPE_2B: return 23; - case OBJTYPE_24: return 23; - case OBJTYPE_KEY: return 24; - case OBJTYPE_ALARM: return 23; - case OBJTYPE_CAMERA: return 49; - case OBJTYPE_AMMOCRATE: return 24; - case OBJTYPE_WEAPON: return 26; - case OBJTYPE_SINGLEMONITOR: return 53; - case OBJTYPE_MULTIMONITOR: return 140; - case OBJTYPE_0C: return 23; - case OBJTYPE_AUTOGUN: return 43; - case OBJTYPE_LINKGUNS: return 2; - case OBJTYPE_11: return 23; - case OBJTYPE_12: return 2; - case OBJTYPE_LINKOBJS: return 5; - case OBJTYPE_2C: return 5; - case OBJTYPE_MULTIAMMOCRATE: return 42; - case OBJTYPE_SHIELD: return 26; - case OBJTYPE_TAG: return 4; - case OBJTYPE_RENAMEOBJ: return 10; - case OBJTYPE_BEGINOBJECTIVE: return 4; - case OBJTYPE_ENDOBJECTIVE: return 1; - case OBJECTIVETYPE_DESTROYOBJ: return 2; - case OBJECTIVETYPE_COMPFLAGS: return 2; - case OBJECTIVETYPE_FAILFLAGS: return 2; - case OBJECTIVETYPE_COLLECTOBJ: return 2; - case OBJECTIVETYPE_THROWOBJ: return 2; - case OBJECTIVETYPE_HOLOGRAPH: return 4; - case OBJECTIVETYPE_1F: return 1; - case OBJECTIVETYPE_ENTERROOM: return 4; - case OBJECTIVETYPE_ATTACHOBJ: return 5; - case OBJTYPE_22: return 1; - case OBJTYPE_BRIEFING: return 4; - case OBJTYPE_26: return 4; - case OBJTYPE_TRUCK: return 34; - case OBJTYPE_HELI: return 35; - case OBJTYPE_2D: return 32; - case OBJTYPE_CAMERA2: return 7; - case OBJTYPE_LIFT: return 37; - case OBJTYPE_LINKSCENERY: return 5; - case OBJTYPE_LINKPATHS: return 4; - case OBJTYPE_HOVERBIKE: return 56; - case OBJTYPE_HOVERPROP: return 39; - case OBJTYPE_FAN: return 29; - case OBJTYPE_HOVERCAR: return 38; - case OBJTYPE_CHOPPER: return 58; - case OBJTYPE_PADEFFECT: return 3; - case OBJTYPE_MINE: return 26; - case OBJTYPE_ESCALATOR: return 27; + case OBJTYPE_CHR: return 11; + case OBJTYPE_DOOR: return 55; + case OBJTYPE_DOORSCALE: return 2; + case OBJTYPE_BASIC: return 23; + case OBJTYPE_DEBRIS: return 23; + case OBJTYPE_GLASS: return 24; + case OBJTYPE_TINTEDGLASS: return 26; + case OBJTYPE_SAFE: return 23; + case OBJTYPE_24: return 23; + case OBJTYPE_KEY: return 24; + case OBJTYPE_ALARM: return 23; + case OBJTYPE_CAMERA: return 49; + case OBJTYPE_AMMOCRATE: return 24; + case OBJTYPE_WEAPON: return 26; + case OBJTYPE_SINGLEMONITOR: return 53; + case OBJTYPE_MULTIMONITOR: return 140; + case OBJTYPE_HANGINGMONITORS: return 23; + case OBJTYPE_AUTOGUN: return 43; + case OBJTYPE_LINKGUNS: return 2; + case OBJTYPE_HAT: return 23; + case OBJTYPE_GRENADEPROB: return 2; + case OBJTYPE_LINKLIFTDOOR: return 5; + case OBJTYPE_SAFEITEM: return 5; + case OBJTYPE_MULTIAMMOCRATE: return 42; + case OBJTYPE_SHIELD: return 26; + case OBJTYPE_TAG: return 4; + case OBJTYPE_RENAMEOBJ: return 10; + case OBJTYPE_BEGINOBJECTIVE: return 4; + case OBJTYPE_ENDOBJECTIVE: return 1; + case OBJECTIVETYPE_DESTROYOBJ: return 2; + case OBJECTIVETYPE_COMPFLAGS: return 2; + case OBJECTIVETYPE_FAILFLAGS: return 2; + case OBJECTIVETYPE_COLLECTOBJ: return 2; + case OBJECTIVETYPE_THROWOBJ: return 2; + case OBJECTIVETYPE_HOLOGRAPH: return 4; + case OBJECTIVETYPE_1F: return 1; + case OBJECTIVETYPE_ENTERROOM: return 4; + case OBJECTIVETYPE_ATTACHOBJ: return 5; + case OBJTYPE_22: return 1; + case OBJTYPE_BRIEFING: return 4; + case OBJTYPE_PADLOCKEDDOOR: return 4; + case OBJTYPE_TRUCK: return 34; + case OBJTYPE_HELI: return 35; + case OBJTYPE_2D: return 32; + case OBJTYPE_CAMERA2: return 7; + case OBJTYPE_LIFT: return 37; + case OBJTYPE_CONDITIONALSCENERY: return 5; + case OBJTYPE_BLOCKEDPATH: return 4; + case OBJTYPE_HOVERBIKE: return 56; + case OBJTYPE_HOVERPROP: return 39; + case OBJTYPE_FAN: return 29; + case OBJTYPE_HOVERCAR: return 38; + case OBJTYPE_CHOPPER: return 58; + case OBJTYPE_PADEFFECT: return 3; + case OBJTYPE_MINE: return 26; + case OBJTYPE_ESCALATOR: return 27; } return 1; @@ -314,10 +314,10 @@ struct defaultobj *setupCommandGetObject(u32 cmdindex) case OBJTYPE_WEAPON: case OBJTYPE_SINGLEMONITOR: case OBJTYPE_MULTIMONITOR: - case OBJTYPE_0C: + case OBJTYPE_HANGINGMONITORS: case OBJTYPE_AUTOGUN: case OBJTYPE_DEBRIS: - case OBJTYPE_11: + case OBJTYPE_HAT: case OBJTYPE_MULTIAMMOCRATE: case OBJTYPE_SHIELD: case OBJTYPE_24: @@ -325,7 +325,7 @@ struct defaultobj *setupCommandGetObject(u32 cmdindex) case OBJTYPE_HELI: case OBJTYPE_29: case OBJTYPE_GLASS: - case OBJTYPE_2B: + case OBJTYPE_SAFE: case OBJTYPE_2D: case OBJTYPE_TINTEDGLASS: case OBJTYPE_LIFT: @@ -339,8 +339,8 @@ struct defaultobj *setupCommandGetObject(u32 cmdindex) case OBJTYPE_DOORSCALE: case OBJTYPE_CHR: case OBJTYPE_LINKGUNS: - case OBJTYPE_12: - case OBJTYPE_LINKOBJS: + case OBJTYPE_GRENADEPROB: + case OBJTYPE_LINKLIFTDOOR: case OBJTYPE_TAG: case OBJTYPE_BEGINOBJECTIVE: case OBJTYPE_ENDOBJECTIVE: @@ -356,11 +356,11 @@ struct defaultobj *setupCommandGetObject(u32 cmdindex) case OBJTYPE_22: case OBJTYPE_BRIEFING: case OBJTYPE_RENAMEOBJ: - case OBJTYPE_26: - case OBJTYPE_2C: + case OBJTYPE_PADLOCKEDDOOR: + case OBJTYPE_SAFEITEM: case OBJTYPE_CAMERA2: - case OBJTYPE_LINKSCENERY: - case OBJTYPE_LINKPATHS: + case OBJTYPE_CONDITIONALSCENERY: + case OBJTYPE_BLOCKEDPATH: case OBJTYPE_PADEFFECT: return NULL; } diff --git a/src/game/game_095320.c b/src/game/game_095320.c index 072a5b1b7..d5f62a0a9 100644 --- a/src/game/game_095320.c +++ b/src/game/game_095320.c @@ -128,7 +128,7 @@ s32 objGetTagNum(struct defaultobj *obj) { struct tag *tag = g_TagsLinkedList; - if (obj && (obj->hidden & OBJHFLAG_00000010)) { + if (obj && (obj->hidden & OBJHFLAG_TAGGED)) { while (tag) { if (obj == tag->obj) { return tag->tagnum; @@ -150,7 +150,7 @@ struct defaultobj *objFindByTagId(s32 tag_id) obj = tag->obj; } - if (obj && (obj->hidden & OBJHFLAG_00000010) == 0) { + if (obj && (obj->hidden & OBJHFLAG_TAGGED) == 0) { obj = NULL; } diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 0e8b8f8ae..509555617 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -10067,7 +10067,7 @@ glabel func0f09fa20 /* f09fa58: 24050001 */ addiu $a1,$zero,0x1 /* f09fa5c: 10c00005 */ beqz $a2,.L0f09fa74 /* f09fa60: 00c02025 */ or $a0,$a2,$zero -/* f09fa64: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f09fa64: 0fc1acd3 */ jal func0f06b34c /* f09fa68: afa2001c */ sw $v0,0x1c($sp) /* f09fa6c: 8fa2001c */ lw $v0,0x1c($sp) /* f09fa70: ac400218 */ sw $zero,0x218($v0) diff --git a/src/game/game_0b63b0.c b/src/game/game_0b63b0.c index 452773ee5..89848464f 100644 --- a/src/game/game_0b63b0.c +++ b/src/game/game_0b63b0.c @@ -14243,7 +14243,7 @@ glabel var7f1ad710 /* f0c29ec: 33190004 */ andi $t9,$t8,0x4 /* f0c29f0: 53200004 */ beqzl $t9,.L0f0c2a04 /* f0c29f4: 8e020174 */ lw $v0,0x174($s0) -/* f0c29f8: 0fc1ab4b */ jal setupParseObject +/* f0c29f8: 0fc1ab4b */ jal func0f06ad2c /* f0c29fc: 00003025 */ or $a2,$zero,$zero /* f0c2a00: 8e020174 */ lw $v0,0x174($s0) .L0f0c2a04: @@ -14255,7 +14255,7 @@ glabel var7f1ad710 /* f0c2a18: 31090004 */ andi $t1,$t0,0x4 /* f0c2a1c: 51200004 */ beqzl $t1,.L0f0c2a30 /* f0c2a20: 8faa0100 */ lw $t2,0x100($sp) -/* f0c2a24: 0fc1ab4b */ jal setupParseObject +/* f0c2a24: 0fc1ab4b */ jal func0f06ad2c /* f0c2a28: 00003025 */ or $a2,$zero,$zero /* f0c2a2c: 8faa0100 */ lw $t2,0x100($sp) .L0f0c2a30: diff --git a/src/game/game_111600.c b/src/game/game_111600.c index af9d1e0fd..bb5318acf 100644 --- a/src/game/game_111600.c +++ b/src/game/game_111600.c @@ -1213,7 +1213,7 @@ s32 currentPlayerGetNumInvItems(void) if (obj) { if (prop->type == PROPTYPE_WEAPON) { - if (obj->hidden & OBJHFLAG_00000400) { + if (obj->hidden & OBJHFLAG_HASTEXTOVERRIDE) { numitems++; } } else if (prop->type == PROPTYPE_OBJ) { @@ -1263,7 +1263,7 @@ struct invitem *currentPlayerGetInvItemByIndex(s32 index) if (obj) { if (prop->type == PROPTYPE_WEAPON) { - if (obj->hidden & OBJHFLAG_00000400) { + if (obj->hidden & OBJHFLAG_HASTEXTOVERRIDE) { if (index == 0) { return item; } @@ -1319,7 +1319,7 @@ struct textoverride *weaponGetTextOverride(s32 weaponnum) struct textoverride *override = g_Vars.textoverrides; while (override) { - if (override->unk04 == 0 && override->weapon == weaponnum) { + if (override->objoffset == 0 && override->weapon == weaponnum) { return override; } diff --git a/src/game/game_167ae0.c b/src/game/game_167ae0.c index 7e8703d00..3c5191b2d 100644 --- a/src/game/game_167ae0.c +++ b/src/game/game_167ae0.c @@ -356,7 +356,7 @@ void func0f167e7c(s32 stagenum) func0f00c490(); func0f00b510(); func0f00b820(stagenum); - func0f00f174(stagenum); + setupParseObjects(stagenum); tagsAllocatePtrs(); func0f013010(); func0f013130(); @@ -4467,7 +4467,7 @@ void stageLoad(void) func0f015420(); func0f0153f0(); func0f014fe0(); - setupParseObjects(); + func0f015010(); weatherFree(); func0f0151f0(); func0f015260(); diff --git a/src/game/game_17f930.c b/src/game/game_17f930.c index 60487f4d8..88e687e35 100644 --- a/src/game/game_17f930.c +++ b/src/game/game_17f930.c @@ -6567,7 +6567,7 @@ glabel func0f186508 /* f186678: 44cbf800 */ ctc1 $t3,$31 /* f18667c: a44a0000 */ sh $t2,0x0($v0) /* f186680: 3189fffb */ andi $t1,$t4,0xfffb -/* f186684: 0fc033b9 */ jal func0f00cee4 +/* f186684: 0fc033b9 */ jal setupGenericObject /* f186688: a0490002 */ sb $t1,0x2($v0) /* f18668c: 8fad0018 */ lw $t5,0x18($sp) /* f186690: 0fc1812f */ jal func0f0604bc @@ -6917,7 +6917,7 @@ glabel chrGiveBriefcase .L0f186b44: /* f186b44: 00002825 */ or $a1,$zero,$zero /* f186b48: 30cf0004 */ andi $t7,$a2,0x4 -/* f186b4c: 0fc1ab4b */ jal setupParseObject +/* f186b4c: 0fc1ab4b */ jal func0f06ad2c /* f186b50: 01e03025 */ or $a2,$t7,$zero /* f186b54: 100001c7 */ b .L0f187274 /* f186b58: 24020001 */ addiu $v0,$zero,0x1 @@ -7402,7 +7402,7 @@ glabel chrGiveBriefcase /* f187220: 00002825 */ or $a1,$zero,$zero /* f187224: 90860002 */ lbu $a2,0x2($a0) /* f187228: 30ca0004 */ andi $t2,$a2,0x4 -/* f18722c: 0fc1ab4b */ jal setupParseObject +/* f18722c: 0fc1ab4b */ jal func0f06ad2c /* f187230: 01403025 */ or $a2,$t2,$zero /* f187234: 1000000f */ b .L0f187274 /* f187238: 24020001 */ addiu $v0,$zero,0x1 @@ -7586,7 +7586,7 @@ bool chrGiveUplink(struct chrdata *chr, struct prop *prop) currentPlayerGiveWeapon(WEAPON_DATAUPLINK); currentPlayerQueuePickupWeaponHudmsg(WEAPON_DATAUPLINK, false); func0f087d10(WEAPON_DATAUPLINK); - setupParseObject(obj, 0, obj->hidden2 & OBJH2FLAG_04); + func0f06ad2c(obj, 0, obj->hidden2 & OBJH2FLAG_04); return true; } } else if (chr->aibot) { diff --git a/src/game/game_190260.c b/src/game/game_190260.c index 3d90eaedf..b9fb1e9ff 100644 --- a/src/game/game_190260.c +++ b/src/game/game_190260.c @@ -495,7 +495,7 @@ u32 propobjHandlePickupByAibot(struct prop *prop, struct chrdata *chr) func0f0939f8(NULL, prop, 0xea, -1, -1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1); - setupParseObject(obj, 0, obj->hidden2 & OBJH2FLAG_04); + func0f06ad2c(obj, 0, obj->hidden2 & OBJH2FLAG_04); if (qty) { dprint(); @@ -531,7 +531,7 @@ u32 propobjHandlePickupByAibot(struct prop *prop, struct chrdata *chr) dprint(); for (i = 0; i != 19; i++) { - qty = (u16)crate->quantities[i]; + qty = crate->quantities[i].unk02; if (qty) { dprint(); @@ -546,7 +546,7 @@ u32 propobjHandlePickupByAibot(struct prop *prop, struct chrdata *chr) func0f0939f8(NULL, prop, 0xea, -1, -1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1); - setupParseObject(obj, 0, obj->hidden2 & OBJH2FLAG_04); + func0f06ad2c(obj, 0, obj->hidden2 & OBJH2FLAG_04); } return 2; case OBJTYPE_WEAPON: @@ -587,7 +587,7 @@ u32 propobjHandlePickupByAibot(struct prop *prop, struct chrdata *chr) result = 1; } - setupParseObject(obj, 0, obj->hidden2 & OBJH2FLAG_04); + func0f06ad2c(obj, 0, obj->hidden2 & OBJH2FLAG_04); } return result; @@ -601,7 +601,7 @@ u32 propobjHandlePickupByAibot(struct prop *prop, struct chrdata *chr) -1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1); chrSetShield(chr, shield->amount * 8); - setupParseObject(obj, 0, obj->hidden2 & OBJH2FLAG_04); + func0f06ad2c(obj, 0, obj->hidden2 & OBJH2FLAG_04); } return 3; case OBJTYPE_BASIC: @@ -610,26 +610,26 @@ u32 propobjHandlePickupByAibot(struct prop *prop, struct chrdata *chr) case OBJTYPE_CHR: case OBJTYPE_SINGLEMONITOR: case OBJTYPE_MULTIMONITOR: - case OBJTYPE_0C: + case OBJTYPE_HANGINGMONITORS: case OBJTYPE_AUTOGUN: case OBJTYPE_LINKGUNS: case OBJTYPE_DEBRIS: case OBJTYPE_10: - case OBJTYPE_11: - case OBJTYPE_12: - case OBJTYPE_LINKOBJS: + case OBJTYPE_HAT: + case OBJTYPE_GRENADEPROB: + case OBJTYPE_LINKLIFTDOOR: case OBJTYPE_TAG: case OBJTYPE_22: case OBJTYPE_BRIEFING: case OBJTYPE_24: case OBJTYPE_RENAMEOBJ: - case OBJTYPE_26: + case OBJTYPE_PADLOCKEDDOOR: case OBJTYPE_TRUCK: case OBJTYPE_HELI: case OBJTYPE_29: case OBJTYPE_GLASS: - case OBJTYPE_2B: - case OBJTYPE_2C: + case OBJTYPE_SAFE: + case OBJTYPE_SAFEITEM: case OBJTYPE_2D: case OBJTYPE_CAMERA2: case OBJTYPE_TINTEDGLASS: diff --git a/src/game/propobj.c b/src/game/propobj.c index deca74603..cb69a9fb1 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -116,11 +116,11 @@ f32 g_CountdownTimerValue = 0; // 8006990c u32 var80069910 = 0x00000000; u32 var80069914 = 0x00000000; u32 var80069918 = 0x00000000; -struct var8006991c *var8006991c = NULL; -struct padlockeddoor *g_PadlockedDoors = NULL; -struct var80069924 *var80069924 = NULL; -struct var80069928 *var80069928 = NULL; -struct var8006992c *var8006992c = NULL; +struct linkliftdoorobj *g_LiftDoors = NULL; +struct padlockeddoorobj *g_PadlockedDoors = NULL; +struct safeitemobj *g_SafeItems = NULL; +struct linksceneryobj *g_LinkedScenery = NULL; +struct blockedpathobj *g_BlockedPaths = NULL; u32 var80069930 = 0x00000000; u32 var80069934 = 0x00000000; u32 var80069938 = 0x00000000; @@ -133,8 +133,8 @@ u32 var80069950 = 0x3f800000; u32 var80069954 = 0x3f800000; u32 var80069958 = 0x3f800000; f32 g_AmmoMultiplier = 1; -u32 var80069960 = 0x00000000; -u32 var80069964 = 0xffffffff; +struct padeffectobj *var80069960 = NULL; +s32 var80069964 = -1; struct autogunobj *g_ThrownLaptops = NULL; u32 var8006996c = 0x00000000; u32 var80069970 = 0x00000000; @@ -376,11 +376,11 @@ glabel func0f066310 /* f066344: 00a0f025 */ or $s8,$a1,$zero /* f066348: 0000b825 */ or $s7,$zero,$zero /* f06634c: 8ecf0040 */ lw $t7,0x40($s6) -/* f066350: 3c138007 */ lui $s3,%hi(var8006991c) +/* f066350: 3c138007 */ lui $s3,%hi(g_LiftDoors) /* f066354: 31f80001 */ andi $t8,$t7,0x1 /* f066358: 53000088 */ beqzl $t8,.L0f06657c /* f06635c: 8fbf003c */ lw $ra,0x3c($sp) -/* f066360: 8e73991c */ lw $s3,%lo(var8006991c)($s3) +/* f066360: 8e73991c */ lw $s3,%lo(g_LiftDoors)($s3) /* f066364: 3c14800a */ lui $s4,%hi(g_Vars) /* f066368: 26949fc0 */ addiu $s4,$s4,%lo(g_Vars) /* f06636c: 12600082 */ beqz $s3,.L0f066578 @@ -551,20 +551,16 @@ glabel func0f066310 /* f0665a8: 27bd0040 */ addiu $sp,$sp,0x40 ); -/** - * This function is a leftover from GoldenEye. - * It is called in PD, but g_PadlockedDoors is always null. - */ bool doorIsPadlockFree(struct doorobj *door) { - if (door->base.hidden & OBJHFLAG_00002000) { - struct padlockeddoor *padlockeddoor = g_PadlockedDoors; + if (door->base.hidden & OBJHFLAG_PADLOCKEDDOOR) { + struct padlockeddoorobj *padlockeddoor = g_PadlockedDoors; while (padlockeddoor) { if (door == padlockeddoor->door - && padlockeddoor->padlock - && padlockeddoor->padlock->prop - && objIsHealthy(padlockeddoor->padlock)) { + && padlockeddoor->lock + && padlockeddoor->lock->prop + && objIsHealthy(padlockeddoor->lock)) { return false; } @@ -578,11 +574,11 @@ bool doorIsPadlockFree(struct doorobj *door) GLOBAL_ASM( glabel func0f066640 /* f066640: 8c8e000c */ lw $t6,0xc($a0) -/* f066644: 3c028007 */ lui $v0,%hi(var80069924) +/* f066644: 3c028007 */ lui $v0,%hi(g_SafeItems) /* f066648: 31cf0400 */ andi $t7,$t6,0x400 /* f06664c: 51e0001d */ beqzl $t7,.L0f0666c4 /* f066650: 24020001 */ addiu $v0,$zero,0x1 -/* f066654: 8c429924 */ lw $v0,%lo(var80069924)($v0) +/* f066654: 8c429924 */ lw $v0,%lo(g_SafeItems)($v0) /* f066658: 3c013f00 */ lui $at,0x3f00 /* f06665c: 50400019 */ beqzl $v0,.L0f0666c4 /* f066660: 24020001 */ addiu $v0,$zero,0x1 @@ -626,11 +622,11 @@ glabel func0f0666cc /* f0666dc: 05e30030 */ bgezl $t7,.L0f0667a0 /* f0666e0: 8fbf0014 */ lw $ra,0x14($sp) /* f0666e4: 8c980008 */ lw $t8,0x8($a0) -/* f0666e8: 3c028007 */ lui $v0,%hi(var80069928) +/* f0666e8: 3c028007 */ lui $v0,%hi(g_LinkedScenery) /* f0666ec: 0018cb80 */ sll $t9,$t8,0xe /* f0666f0: 0722002b */ bltzl $t9,.L0f0667a0 /* f0666f4: 8fbf0014 */ lw $ra,0x14($sp) -/* f0666f8: 8c429928 */ lw $v0,%lo(var80069928)($v0) +/* f0666f8: 8c429928 */ lw $v0,%lo(g_LinkedScenery)($v0) /* f0666fc: 50400028 */ beqzl $v0,.L0f0667a0 /* f066700: 8fbf0014 */ lw $ra,0x14($sp) /* f066704: 8c480004 */ lw $t0,0x4($v0) @@ -5743,7 +5739,7 @@ glabel func0f06ac90 ); GLOBAL_ASM( -glabel setupParseObject +glabel func0f06ad2c /* f06ad2c: 27bdffa0 */ addiu $sp,$sp,-96 /* f06ad30: afbf0024 */ sw $ra,0x24($sp) /* f06ad34: afb20020 */ sw $s2,0x20($sp) @@ -6130,7 +6126,7 @@ glabel setupParseObject .L0f06b290: /* f06b290: 8c440004 */ lw $a0,0x4($v0) /* f06b294: 24050001 */ addiu $a1,$zero,0x1 -/* f06b298: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f06b298: 0fc1acd3 */ jal func0f06b34c /* f06b29c: afa3002c */ sw $v1,0x2c($sp) /* f06b2a0: 8fa2002c */ lw $v0,0x2c($sp) /* f06b2a4: 5440fffa */ bnezl $v0,.L0f06b290 @@ -6185,11 +6181,11 @@ glabel setupParseObject /** * When called with arg1 = true, the object is removed. * I'm unsure if that's due to arg1 being true or whether - * removing is determined by setupParseObject's arg2 being false. + * removing is determined by func0f06ad2c's arg2 being false. */ -void setupParseObjectWithArg2False(void *ptr, s32 arg1) +void func0f06b34c(void *ptr, s32 arg1) { - setupParseObject(ptr, arg1, false); + func0f06ad2c(ptr, arg1, false); } GLOBAL_ASM( @@ -12104,7 +12100,7 @@ void func0f0706f8(struct prop *prop, bool arg1) struct prop *child; if (obj->hidden & OBJHFLAG_00000004) { - setupParseObject(obj, true, obj->hidden2 & OBJHFLAG_00000004); + func0f06ad2c(obj, true, obj->hidden2 & OBJHFLAG_00000004); } else { prop->flags &= ~PROPFLAG_02; func0f07063c(prop, arg1); @@ -12139,7 +12135,7 @@ glabel func0f07079c /* f0707d4: 02202025 */ or $a0,$s1,$zero /* f0707d8: 24050001 */ addiu $a1,$zero,0x1 /* f0707dc: 30cf0004 */ andi $t7,$a2,0x4 -/* f0707e0: 0fc1ab4b */ jal setupParseObject +/* f0707e0: 0fc1ab4b */ jal func0f06ad2c /* f0707e4: 01e03025 */ or $a2,$t7,$zero /* f0707e8: 1000004b */ b .L0f070918 /* f0707ec: 8fbf0024 */ lw $ra,0x24($sp) @@ -27964,7 +27960,7 @@ s32 objTick(struct prop *prop) if (!pass) { func0f070698(prop, true); - setupParseObject(obj, false, obj->hidden2 & OBJH2FLAG_04); + func0f06ad2c(obj, false, obj->hidden2 & OBJH2FLAG_04); return 1; } } @@ -34995,13 +34991,13 @@ bool func0f085158(struct defaultobj *obj) case OBJTYPE_CAMERA: case OBJTYPE_SINGLEMONITOR: case OBJTYPE_MULTIMONITOR: - case OBJTYPE_0C: + case OBJTYPE_HANGINGMONITORS: case OBJTYPE_AUTOGUN: case OBJTYPE_DEBRIS: case OBJTYPE_24: case OBJTYPE_29: case OBJTYPE_GLASS: - case OBJTYPE_2B: + case OBJTYPE_SAFE: case OBJTYPE_TINTEDGLASS: case OBJTYPE_LIFT: case OBJTYPE_HOVERBIKE: @@ -35021,7 +35017,7 @@ bool func0f085194(struct defaultobj *obj) case OBJTYPE_KEY: case OBJTYPE_AMMOCRATE: case OBJTYPE_WEAPON: - case OBJTYPE_11: + case OBJTYPE_HAT: case OBJTYPE_MULTIAMMOCRATE: case OBJTYPE_SHIELD: case OBJTYPE_ESCALATOR: @@ -38650,7 +38646,7 @@ glabel var7f1aae70 /* f088fc4: 01a02025 */ or $a0,$t5,$zero /* f088fc8: 00002825 */ or $a1,$zero,$zero /* f088fcc: 30cf0004 */ andi $t7,$a2,0x4 -/* f088fd0: 0fc1ab4b */ jal setupParseObject +/* f088fd0: 0fc1ab4b */ jal func0f06ad2c /* f088fd4: 01e03025 */ or $a2,$t7,$zero /* f088fd8: 1000000a */ b .L0f089004 /* f088fdc: 24020001 */ addiu $v0,$zero,0x1 @@ -38770,7 +38766,7 @@ glabel var7f1aae70 // } // // // af4 -// if (obj->hidden & OBJHFLAG_00000400) { +// if (obj->hidden & OBJHFLAG_HASTEXTOVERRIDE) { // if (weapon->weaponnum <= WEAPON_PSYCHOSISGUN) { // count = func0f1120f0(prop); // sp148[0] = 1; @@ -38963,8 +38959,8 @@ glabel var7f1aae70 // } // // // fa4 -// if (v0 == 1 && (obj->hidden & OBJHFLAG_00000010) == 0) { -// setupParseObject(obj, 0, obj->hidden2 & OBJHFLAG_00000004); +// if (v0 == 1 && (obj->hidden & OBJHFLAG_TAGGED) == 0) { +// func0f06ad2c(obj, 0, obj->hidden2 & OBJHFLAG_00000004); // return 1; // } // @@ -39975,7 +39971,7 @@ glabel func0f089d64 ); GLOBAL_ASM( -glabel func0f089db8 +glabel hatAssignToChr /* f089db8: 27bdffe8 */ addiu $sp,$sp,-24 /* f089dbc: afbf0014 */ sw $ra,0x14($sp) /* f089dc0: 0fc22759 */ jal func0f089d64 @@ -40286,7 +40282,7 @@ glabel func0f089f8c /* f08a204: 00000000 */ nop /* f08a208: 02092021 */ addu $a0,$s0,$t1 /* f08a20c: 24050001 */ addiu $a1,$zero,0x1 -/* f08a210: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a210: 0fc1acd3 */ jal func0f06b34c /* f08a214: afaa0040 */ sw $t2,0x40($sp) /* f08a218: 3c09800a */ lui $t1,%hi(var8009ce58) /* f08a21c: 8d29ce58 */ lw $t1,%lo(var8009ce58)($t1) @@ -40320,7 +40316,7 @@ glabel func0f089f8c /* f08a27c: 01a02025 */ or $a0,$t5,$zero /* f08a280: 11e00003 */ beqz $t7,.L0f08a290 /* f08a284: 00000000 */ nop -/* f08a288: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a288: 0fc1acd3 */ jal func0f06b34c /* f08a28c: 24050001 */ addiu $a1,$zero,0x1 .L0f08a290: /* f08a290: 1000002f */ b .L0f08a350 @@ -40338,7 +40334,7 @@ glabel func0f089f8c /* f08a2bc: 00000000 */ nop /* f08a2c0: 02092021 */ addu $a0,$s0,$t1 /* f08a2c4: 24050001 */ addiu $a1,$zero,0x1 -/* f08a2c8: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a2c8: 0fc1acd3 */ jal func0f06b34c /* f08a2cc: afab003c */ sw $t3,0x3c($sp) /* f08a2d0: 3c09800a */ lui $t1,%hi(var8009ce58) /* f08a2d4: 8d29ce58 */ lw $t1,%lo(var8009ce58)($t1) @@ -40372,7 +40368,7 @@ glabel func0f089f8c /* f08a334: 01c02025 */ or $a0,$t6,$zero /* f08a338: 13000003 */ beqz $t8,.L0f08a348 /* f08a33c: 00000000 */ nop -/* f08a340: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a340: 0fc1acd3 */ jal func0f06b34c /* f08a344: 24050001 */ addiu $a1,$zero,0x1 .L0f08a348: /* f08a348: 10000001 */ b .L0f08a350 @@ -40548,7 +40544,7 @@ glabel func0f08a38c /* f08a5a0: 51600007 */ beqzl $t3,.L0f08a5c0 /* f08a5a4: 8e8d0000 */ lw $t5,0x0($s4) /* f08a5a8: 02282021 */ addu $a0,$s1,$t0 -/* f08a5ac: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a5ac: 0fc1acd3 */ jal func0f06b34c /* f08a5b0: 24050001 */ addiu $a1,$zero,0x1 /* f08a5b4: 3c08800a */ lui $t0,%hi(var8009ce5c) /* f08a5b8: 8d08ce5c */ lw $t0,%lo(var8009ce5c)($t0) @@ -40580,7 +40576,7 @@ glabel func0f08a38c /* f08a610: 01e02025 */ or $a0,$t7,$zero /* f08a614: 13000003 */ beqz $t8,.L0f08a624 /* f08a618: 00000000 */ nop -/* f08a61c: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a61c: 0fc1acd3 */ jal func0f06b34c /* f08a620: 24050001 */ addiu $a1,$zero,0x1 .L0f08a624: /* f08a624: 1000002d */ b .L0f08a6dc @@ -40597,7 +40593,7 @@ glabel func0f08a38c /* f08a64c: 51400007 */ beqzl $t2,.L0f08a66c /* f08a650: 8e8c0000 */ lw $t4,0x0($s4) /* f08a654: 02082021 */ addu $a0,$s0,$t0 -/* f08a658: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a658: 0fc1acd3 */ jal func0f06b34c /* f08a65c: 24050001 */ addiu $a1,$zero,0x1 /* f08a660: 3c08800a */ lui $t0,%hi(var8009ce5c) /* f08a664: 8d08ce5c */ lw $t0,%lo(var8009ce5c)($t0) @@ -40629,7 +40625,7 @@ glabel func0f08a38c /* f08a6bc: 01c02025 */ or $a0,$t6,$zero /* f08a6c0: 13000003 */ beqz $t8,.L0f08a6d0 /* f08a6c4: 00000000 */ nop -/* f08a6c8: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a6c8: 0fc1acd3 */ jal func0f06b34c /* f08a6cc: 24050001 */ addiu $a1,$zero,0x1 .L0f08a6d0: /* f08a6d0: 10000002 */ b .L0f08a6dc @@ -40707,7 +40703,7 @@ glabel func0f08a724 /* f08a7c8: 15600009 */ bnez $t3,.L0f08a7f0 /* f08a7cc: 00c72021 */ addu $a0,$a2,$a3 /* f08a7d0: 24050001 */ addiu $a1,$zero,0x1 -/* f08a7d4: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a7d4: 0fc1acd3 */ jal func0f06b34c /* f08a7d8: afa60018 */ sw $a2,0x18($sp) /* f08a7dc: 3c0c800a */ lui $t4,%hi(var8009ce60) /* f08a7e0: 8fa60018 */ lw $a2,0x18($sp) @@ -40742,7 +40738,7 @@ glabel func0f08a724 /* f08a844: 15000009 */ bnez $t0,.L0f08a86c /* f08a848: 00c72021 */ addu $a0,$a2,$a3 /* f08a84c: 24050001 */ addiu $a1,$zero,0x1 -/* f08a850: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a850: 0fc1acd3 */ jal func0f06b34c /* f08a854: afa60018 */ sw $a2,0x18($sp) /* f08a858: 3c09800a */ lui $t1,%hi(var8009ce60) /* f08a85c: 8fa60018 */ lw $a2,0x18($sp) @@ -40813,7 +40809,7 @@ glabel func0f08a88c /* f08a930: 15600009 */ bnez $t3,.L0f08a958 /* f08a934: 00c72021 */ addu $a0,$a2,$a3 /* f08a938: 24050001 */ addiu $a1,$zero,0x1 -/* f08a93c: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a93c: 0fc1acd3 */ jal func0f06b34c /* f08a940: afa60018 */ sw $a2,0x18($sp) /* f08a944: 3c0c800a */ lui $t4,%hi(var8009ce64) /* f08a948: 8fa60018 */ lw $a2,0x18($sp) @@ -40848,7 +40844,7 @@ glabel func0f08a88c /* f08a9ac: 15000009 */ bnez $t0,.L0f08a9d4 /* f08a9b0: 00c72021 */ addu $a0,$a2,$a3 /* f08a9b4: 24050001 */ addiu $a1,$zero,0x1 -/* f08a9b8: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08a9b8: 0fc1acd3 */ jal func0f06b34c /* f08a9bc: afa60018 */ sw $a2,0x18($sp) /* f08a9c0: 3c09800a */ lui $t1,%hi(var8009ce64) /* f08a9c4: 8fa60018 */ lw $a2,0x18($sp) @@ -41561,7 +41557,7 @@ glabel var7f1aae98 /* f08b340: 0fc4a640 */ jal explosionCreateSimple /* f08b344: afaa0010 */ sw $t2,0x10($sp) /* f08b348: 02002025 */ or $a0,$s0,$zero -/* f08b34c: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f08b34c: 0fc1acd3 */ jal func0f06b34c /* f08b350: 24050001 */ addiu $a1,$zero,0x1 .L0f08b354: /* f08b354: 0fc180d6 */ jal propAllocate @@ -47464,7 +47460,7 @@ glabel func0f091030 /* f091074: 30680080 */ andi $t0,$v1,0x80 /* f091078: 51000006 */ beqzl $t0,.L0f091094 /* f09107c: 8c420020 */ lw $v0,0x20($v0) -/* f091080: 0fc1acd3 */ jal setupParseObjectWithArg2False +/* f091080: 0fc1acd3 */ jal func0f06b34c /* f091084: 24050001 */ addiu $a1,$zero,0x1 /* f091088: 10000005 */ b .L0f0910a0 /* f09108c: 8fbf0014 */ lw $ra,0x14($sp) diff --git a/src/game/training.c b/src/game/training.c index 8819cb93b..c85cf0d0d 100644 --- a/src/game/training.c +++ b/src/game/training.c @@ -1557,7 +1557,7 @@ void frInitTargets(void) if (prop) { obj = prop->obj; - setupParseObject(obj, false, true); + func0f06ad2c(obj, false, true); obj->damage = 0; prop->timetoregen = 0; @@ -1913,7 +1913,7 @@ void frEndSession(bool hidetargets) } if (g_ThrownLaptops->base.prop) { - setupParseObjectWithArg2False(g_ThrownLaptops, true); + func0f06b34c(g_ThrownLaptops, true); } roomsCopy(g_Vars.currentplayer->prop->rooms, rooms); @@ -1936,7 +1936,7 @@ void frEndSession(bool hidetargets) if (prop->type == PROPTYPE_WEAPON) { if (obj->type == OBJTYPE_AUTOGUN) { - setupParseObjectWithArg2False(obj, true); + func0f06b34c(obj, true); } if (obj->type == OBJTYPE_WEAPON) { @@ -1955,7 +1955,7 @@ void frEndSession(bool hidetargets) || weapon->weaponnum == WEAPON_ROCKET2 || (weapon->weaponnum == WEAPON_DRAGON && weapon->thrown == true) || (weapon->weaponnum == WEAPON_LAPTOPGUN && weapon->thrown == true)) { - setupParseObjectWithArg2False(obj, true); + func0f06b34c(obj, true); } } } @@ -4673,7 +4673,7 @@ void dtRestorePlayer(void) playersSetPassiveMode(true); if (g_DtData.obj) { - setupParseObjectWithArg2False(g_DtData.obj, true); + func0f06b34c(g_DtData.obj, true); } g_DtData.obj = NULL; @@ -5047,7 +5047,7 @@ void htEnd(void) struct defaultobj *obj = prop->obj; if (obj->type == OBJTYPE_WEAPON) { - setupParseObjectWithArg2False(obj, true); + func0f06b34c(obj, true); } } diff --git a/src/include/constants.h b/src/include/constants.h index efe11c61c..f4c52e771 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -222,6 +222,11 @@ #define BANK_0 0 #define BANK_1 1 +#define BRIEFINGTYPE_LOCATION 0 +#define BRIEFINGTYPE_TEXT_PA 1 +#define BRIEFINGTYPE_TEXT_SA 2 +#define BRIEFINGTYPE_TEXT_A 3 + #define CAMERAMODE_DEFAULT 0 #define CAMERAMODE_THIRDPERSON 1 #define CAMERAMODE_EYESPY 2 @@ -1583,6 +1588,7 @@ #define MODELNODETYPE_ROOT 0x01 #define MODELNODETYPE_POSITION 0x02 +#define MODELNODETYPE_05 0x05 #define MODELNODETYPE_NEARFAR 0x08 #define MODELNODETYPE_HAT 0x09 #define MODELNODETYPE_0B 0x0b @@ -2111,20 +2117,20 @@ #define OBJFLAG_20000000 0x20000000 // Editor: "Door Opens Backwards/Special Function/Conceal Weapon" #define OBJFLAG_DOOR_KEEPOPEN 0x40000000 // Editor: "Door open by default/Empty weapon" #define OBJFLAG_LIFT_TRIGGERDISABLE 0x40000000 -#define OBJFLAG_CHOPPER_INACTIVE 0x80000000 // Or lift disabled +#define OBJFLAG_CHOPPER_INACTIVE 0x80000000 // Or lift disabled, or hovercar something // obj->flags2 #define OBJFLAG2_00000001 0x00000001 // Used only in CI Training #define OBJFLAG2_00000002 0x00000002 // Ruins spikes #define OBJFLAG2_00000004 0x00000004 // Defense hostage doors - openable by AI? #define OBJFLAG2_00000008 0x00000008 // Editor: "Don't load in Multiplayer" -#define OBJFLAG2_00000010 0x00000010 // Editor: "Don't Load on Agent Mode" -#define OBJFLAG2_00000020 0x00000020 // Editor: "Don't Load on Secret Agent Mode" -#define OBJFLAG2_00000040 0x00000040 // Editor: "Don't Load on Perfect Agent Mode" -#define OBJFLAG2_00000080 0x00000080 // Not used in scripts +#define OBJFLAG2_EXCLUDE_A 0x00000010 +#define OBJFLAG2_EXCLUDE_SA 0x00000020 +#define OBJFLAG2_EXCLUDE_PA 0x00000040 +#define OBJFLAG2_EXCLUDE_PD 0x00000080 #define OBJFLAG2_00000100 0x00000100 // Editor: "Immobile" #define OBJFLAG2_00000200 0x00000200 // Editor: "Mines" -#define OBJFLAG2_00000400 0x00000400 // Not used in scripts +#define OBJFLAG2_LINKEDTOSAFE 0x00000400 // Applied to safe door and item #define OBJFLAG2_00000800 0x00000800 // Editor: "Don't activate if clipping gap Jo/Object" #define OBJFLAG2_00001000 0x00001000 // Investigation CMP150s, Air Base safe item and shield #define OBJFLAG2_00002000 0x00002000 // Ruins commhub - used as a "shown message" flag @@ -2136,9 +2142,9 @@ #define OBJFLAG2_INVISIBLE 0x00080000 #define OBJFLAG2_00100000 0x00100000 // Editor: "Bulletproof Glass" #define OBJFLAG2_00200000 0x00200000 // Editor: "Immune to Explosions" (Ruins spikes) -#define OBJFLAG2_00400000 0x00400000 // Editor: "Don't load on 2P (coop/anti)" -#define OBJFLAG2_00800000 0x00800000 // Editor: "Don't load on 3P" -#define OBJFLAG2_01000000 0x01000000 // Editor: "Don't load on 4P" +#define OBJFLAG2_EXCLUDE_2P 0x00400000 +#define OBJFLAG2_EXCLUDE_3P 0x00800000 +#define OBJFLAG2_EXCLUDE_4P 0x01000000 #define OBJFLAG2_THROWTHROUGH 0x02000000 // Rockets/mines/grenades etc pass through object #define OBJFLAG2_04000000 0x04000000 // Used quite a lot - gravity? #define OBJFLAG2_LOCKEDFRONT 0x08000000 // One-way door lock @@ -2182,22 +2188,26 @@ #define OBJFLAG3_80000000 0x80000000 // Not used in scripts // obj->hidden +#define OBJHFLAG_LIFTDOOR 0x00000001 #define OBJHFLAG_00000004 0x00000004 #define OBJHFLAG_00000008 0x00000008 -#define OBJHFLAG_00000010 0x00000010 +#define OBJHFLAG_TAGGED 0x00000010 #define OBJHFLAG_00000040 0x00000040 #define OBJHFLAG_00000080 0x00000080 #define OBJHFLAG_00000100 0x00000100 #define OBJHFLAG_00000200 0x00000200 -#define OBJHFLAG_00000400 0x00000400 +#define OBJHFLAG_HASTEXTOVERRIDE 0x00000400 #define OBJHFLAG_00000800 0x00000800 #define OBJHFLAG_00001000 0x00001000 -#define OBJHFLAG_00002000 0x00002000 +#define OBJHFLAG_PADLOCKEDDOOR 0x00002000 #define OBJHFLAG_ACTIVATED_BY_BOND 0x00004000 #define OBJHFLAG_ACTIVATED_BY_COOP 0x00040000 +#define OBJHFLAG_HASOWNER 0x00080000 #define OBJHFLAG_00100000 0x00100000 #define OBJHFLAG_00200000 0x00200000 // Occupied chair? #define OBJHFLAG_00400000 0x00400000 +#define OBJHFLAG_01000000 0x01000000 +#define OBJHFLAG_02000000 0x02000000 #define OBJHFLAG_04000000 0x04000000 #define OBJHFLAG_GRABBED 0x08000000 #define OBJHFLAG_20000000 0x20000000 // upper nibble might be a single 4-bit value @@ -2208,65 +2218,65 @@ #define OBJH2FLAG_10 0x10 #define OBJH2FLAG_40 0x40 -#define OBJTYPE_DOOR 0x01 -#define OBJTYPE_DOORSCALE 0x02 -#define OBJTYPE_BASIC 0x03 -#define OBJTYPE_KEY 0x04 -#define OBJTYPE_ALARM 0x05 -#define OBJTYPE_CAMERA 0x06 -#define OBJTYPE_AMMOCRATE 0x07 -#define OBJTYPE_WEAPON 0x08 -#define OBJTYPE_CHR 0x09 -#define OBJTYPE_SINGLEMONITOR 0x0a -#define OBJTYPE_MULTIMONITOR 0x0b -#define OBJTYPE_0C 0x0c -#define OBJTYPE_AUTOGUN 0x0d -#define OBJTYPE_LINKGUNS 0x0e -#define OBJTYPE_DEBRIS 0x0f -#define OBJTYPE_10 0x10 -#define OBJTYPE_11 0x11 -#define OBJTYPE_12 0x12 -#define OBJTYPE_LINKOBJS 0x13 -#define OBJTYPE_MULTIAMMOCRATE 0x14 -#define OBJTYPE_SHIELD 0x15 -#define OBJTYPE_TAG 0x16 -#define OBJTYPE_BEGINOBJECTIVE 0x17 -#define OBJTYPE_ENDOBJECTIVE 0x18 -#define OBJECTIVETYPE_DESTROYOBJ 0x19 -#define OBJECTIVETYPE_COMPFLAGS 0x1a -#define OBJECTIVETYPE_FAILFLAGS 0x1b -#define OBJECTIVETYPE_COLLECTOBJ 0x1c -#define OBJECTIVETYPE_THROWOBJ 0x1d -#define OBJECTIVETYPE_HOLOGRAPH 0x1e -#define OBJECTIVETYPE_1F 0x1f -#define OBJECTIVETYPE_ENTERROOM 0x20 -#define OBJECTIVETYPE_ATTACHOBJ 0x21 -#define OBJTYPE_22 0x22 -#define OBJTYPE_BRIEFING 0x23 -#define OBJTYPE_24 0x24 -#define OBJTYPE_RENAMEOBJ 0x25 -#define OBJTYPE_26 0x26 -#define OBJTYPE_TRUCK 0x27 -#define OBJTYPE_HELI 0x28 -#define OBJTYPE_29 0x29 -#define OBJTYPE_GLASS 0x2a -#define OBJTYPE_2B 0x2b -#define OBJTYPE_2C 0x2c -#define OBJTYPE_2D 0x2d -#define OBJTYPE_CAMERA2 0x2e -#define OBJTYPE_TINTEDGLASS 0x2f -#define OBJTYPE_LIFT 0x30 -#define OBJTYPE_LINKSCENERY 0x31 -#define OBJTYPE_LINKPATHS 0x32 -#define OBJTYPE_HOVERBIKE 0x33 -#define OBJTYPE_END 0x34 -#define OBJTYPE_HOVERPROP 0x35 // Hovercrates and hoverbeds -#define OBJTYPE_FAN 0x36 -#define OBJTYPE_HOVERCAR 0x37 // Datadyne cars, Chicago taxi and limo, and hoverbots -#define OBJTYPE_PADEFFECT 0x38 -#define OBJTYPE_CHOPPER 0x39 // Extraction hovercopter and A51 interceptors -#define OBJTYPE_MINE 0x3a -#define OBJTYPE_ESCALATOR 0x3b +#define OBJTYPE_DOOR 0x01 +#define OBJTYPE_DOORSCALE 0x02 +#define OBJTYPE_BASIC 0x03 +#define OBJTYPE_KEY 0x04 +#define OBJTYPE_ALARM 0x05 +#define OBJTYPE_CAMERA 0x06 +#define OBJTYPE_AMMOCRATE 0x07 +#define OBJTYPE_WEAPON 0x08 +#define OBJTYPE_CHR 0x09 +#define OBJTYPE_SINGLEMONITOR 0x0a +#define OBJTYPE_MULTIMONITOR 0x0b +#define OBJTYPE_HANGINGMONITORS 0x0c +#define OBJTYPE_AUTOGUN 0x0d +#define OBJTYPE_LINKGUNS 0x0e +#define OBJTYPE_DEBRIS 0x0f +#define OBJTYPE_10 0x10 +#define OBJTYPE_HAT 0x11 +#define OBJTYPE_GRENADEPROB 0x12 +#define OBJTYPE_LINKLIFTDOOR 0x13 +#define OBJTYPE_MULTIAMMOCRATE 0x14 +#define OBJTYPE_SHIELD 0x15 +#define OBJTYPE_TAG 0x16 +#define OBJTYPE_BEGINOBJECTIVE 0x17 +#define OBJTYPE_ENDOBJECTIVE 0x18 +#define OBJECTIVETYPE_DESTROYOBJ 0x19 +#define OBJECTIVETYPE_COMPFLAGS 0x1a +#define OBJECTIVETYPE_FAILFLAGS 0x1b +#define OBJECTIVETYPE_COLLECTOBJ 0x1c +#define OBJECTIVETYPE_THROWOBJ 0x1d +#define OBJECTIVETYPE_HOLOGRAPH 0x1e +#define OBJECTIVETYPE_1F 0x1f +#define OBJECTIVETYPE_ENTERROOM 0x20 +#define OBJECTIVETYPE_ATTACHOBJ 0x21 +#define OBJTYPE_22 0x22 +#define OBJTYPE_BRIEFING 0x23 +#define OBJTYPE_24 0x24 +#define OBJTYPE_RENAMEOBJ 0x25 +#define OBJTYPE_PADLOCKEDDOOR 0x26 +#define OBJTYPE_TRUCK 0x27 +#define OBJTYPE_HELI 0x28 +#define OBJTYPE_29 0x29 +#define OBJTYPE_GLASS 0x2a +#define OBJTYPE_SAFE 0x2b +#define OBJTYPE_SAFEITEM 0x2c +#define OBJTYPE_2D 0x2d +#define OBJTYPE_CAMERA2 0x2e +#define OBJTYPE_TINTEDGLASS 0x2f +#define OBJTYPE_LIFT 0x30 +#define OBJTYPE_CONDITIONALSCENERY 0x31 +#define OBJTYPE_BLOCKEDPATH 0x32 +#define OBJTYPE_HOVERBIKE 0x33 +#define OBJTYPE_END 0x34 +#define OBJTYPE_HOVERPROP 0x35 // Hovercrates and hoverbeds +#define OBJTYPE_FAN 0x36 +#define OBJTYPE_HOVERCAR 0x37 // Datadyne cars, Chicago taxi and limo, and hoverbots +#define OBJTYPE_PADEFFECT 0x38 +#define OBJTYPE_CHOPPER 0x39 // Extraction hovercopter and A51 interceptors +#define OBJTYPE_MINE 0x3a +#define OBJTYPE_ESCALATOR 0x3b #define OPERATOR_LESS_THAN 0 #define OPERATOR_GREATER_THAN 1 diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index a430d3c98..c613c0ca1 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -217,7 +217,7 @@ /*0x00d4*/ bool ai00d4(void); /*0x00d5*/ bool aiHovercarBeginPath(void); /*0x00d6*/ bool aiSetVehicleSpeed(void); -/*0x00d7*/ bool aiSetRotarySpeed(void); +/*0x00d7*/ bool aiSetRotorSpeed(void); /*0x00d8*/ bool aiNoOp00d8(void); /*0x00d9*/ bool aiNoOp00d9(void); /*0x00da*/ bool aiSetObjImage(void); diff --git a/src/include/game/data/data_000000.h b/src/include/game/data/data_000000.h index dbabc278a..b3212acfd 100644 --- a/src/include/game/data/data_000000.h +++ b/src/include/game/data/data_000000.h @@ -216,6 +216,7 @@ extern u32 var80061710; extern u32 var80061a80; extern u32 var80061af4; extern u32 var80061b68; +extern f32 g_DoorScale; extern u32 var80061bf0; #endif diff --git a/src/include/game/data/data_00e460.h b/src/include/game/data/data_00e460.h index 46b417c94..bd4e3bc89 100644 --- a/src/include/game/data/data_00e460.h +++ b/src/include/game/data/data_00e460.h @@ -37,14 +37,15 @@ extern u32 var800698fc; extern u32 var80069900; extern u32 var80069910; extern u32 var80069918; -extern struct var8006991c *var8006991c; -extern struct padlockeddoor *g_PadlockedDoors; -extern struct var80069924 *var80069924; -extern struct var80069928 *var80069928; -extern struct var8006992c *var8006992c; +extern struct linkliftdoorobj *g_LiftDoors; +extern struct padlockeddoorobj *g_PadlockedDoors; +extern struct safeitemobj *g_SafeItems; +extern struct linksceneryobj *g_LinkedScenery; +extern struct blockedpathobj *g_BlockedPaths; extern u32 var8006993c; extern f32 g_AmmoMultiplier; -extern u32 var80069964; +extern struct padeffectobj *var80069960; +extern s32 var80069964; extern struct autogunobj *g_ThrownLaptops; extern u32 var80069970; extern u32 var80069974; diff --git a/src/include/game/game_00b820.h b/src/include/game/game_00b820.h index eed772a83..91e5c8b7a 100644 --- a/src/include/game/game_00b820.h +++ b/src/include/game/game_00b820.h @@ -5,6 +5,6 @@ void func0f00b820(s32 stagenum); void resetSomeStageThings(void); -u32 func0f00bbc8(void); +void func0f00bbc8(void); #endif diff --git a/src/include/game/game_00c490.h b/src/include/game/game_00c490.h index c661dc4dd..06e1df496 100644 --- a/src/include/game/game_00c490.h +++ b/src/include/game/game_00c490.h @@ -4,30 +4,30 @@ #include "types.h" void func0f00c490(void); -void func0f00cc14(struct var8006991c *thing); -void func0f00cc2c(struct padlockeddoor *door); -void func0f00cc44(struct var80069924 *thing); -void func0f00cc5c(struct var80069928 *thing); -void func0f00cc74(struct var8006992c *thing); +void addLiftDoor(struct linkliftdoorobj *link); +void addPadlockedDoor(struct padlockeddoorobj *link); +void addSafeItem(struct safeitemobj *link); +void addConditionalScenery(struct linksceneryobj *link); +void addBlockedPath(struct blockedpathobj *link); u32 func0f00cc8c(void); void setupClearProxyMines(void); -u32 setupCountCommandType(u8 type); -void func0f00cee4(struct defaultobj *obj, u32 arg1); -void weaponAssignToHome(struct weaponobj *weapon, u32 arg1); -void func0f00d904(struct defaultobj *obj, u32 arg1); -void func0f00d978(struct defaultobj *obj, u32 arg1); -void func0f00d998(struct defaultobj *obj, u32 arg1); -u32 func0f00da10(void); -u32 func0f00dc00(void); -void func0f00dd9c(struct defaultobj *obj, u32 arg1); -u32 func0f00ddbc(void); -u32 func0f00e084(void); -void func0f00e1f8(s32 padnum); -void func0f00e2b0(s32 padnum); -u32 func0f00e368(void); -u32 func0f00e90c(void); +s32 setupCountCommandType(u8 type); +void setupGenericObject(struct defaultobj *obj, s32 cmdindex); +void weaponAssignToHome(struct weaponobj *weapon, s32 cmdindex); +void setupHat(struct hatobj *hat, s32 cmdindex); +void setupKey(struct keyobj *key, s32 cmdindex); +void setupMine(struct mineobj *mine, s32 cmdindex); +void setupCamera(struct cameraobj *camera, s32 cmdindex); +void setupAutogun(struct autogunobj *autogun, s32 cmdindex); +void setupHangingMonitors(struct hangingmonitorsobj *monitors, s32 cmdindex); +void setupSingleMonitor(struct singlemonitorobj *monitor, s32 cmdindex); +void setupMultiMonitor(struct multimonitorobj *monitor, s32 cmdindex); +s32 func0f00e1f8(s32 padnum); +s32 func0f00e2b0(s32 padnum); +void setupDoor(struct doorobj *door, s32 cmdindex); +void setupHov(struct defaultobj *obj, struct hov *hov); void func0f00e980(s32 stagenum, s32 arg0, s32 arg1, struct briefing *briefing); void func0f00eb64(s32 stagenum); -void func0f00f174(s32 stagenum); +void setupParseObjects(s32 stagenum); #endif diff --git a/src/include/game/game_0109d0.h b/src/include/game/game_0109d0.h index c59aa8a48..b083e9f75 100644 --- a/src/include/game/game_0109d0.h +++ b/src/include/game/game_0109d0.h @@ -4,9 +4,9 @@ #include "types.h" void func0f0109d0(void); -u32 func0f010a68(void); -u32 func0f010a80(void); -u32 func0f010a98(void); +void tagInsert(struct tag *tag); +void briefingInsert(struct briefingobj *obj); +void func0f010a98(struct defaultobj *obj); void objectiveAddRoomEnteredCriteria(struct criteria_roomentered *criteria); void objectiveAddMultiroomEnteredCriteria(struct criteria_multiroomentered *criteria); void objectiveAddHolographCriteria(struct criteria_holograph *criteria); diff --git a/src/include/game/game_0125a0.h b/src/include/game/game_0125a0.h index 7495eb049..fd4afc8f0 100644 --- a/src/include/game/game_0125a0.h +++ b/src/include/game/game_0125a0.h @@ -5,6 +5,6 @@ u32 func0f0125a0(void); void func0f012684(void); -u32 func0f012aa0(void); +void func0f012aa0(void); #endif diff --git a/src/include/game/game_012d50.h b/src/include/game/game_012d50.h index 045f08ede..2a42c18e0 100644 --- a/src/include/game/game_012d50.h +++ b/src/include/game/game_012d50.h @@ -3,6 +3,6 @@ #include #include "types.h" -u32 func0f012d50(void); +void func0f012d50(void); #endif diff --git a/src/include/game/game_0147d0.h b/src/include/game/game_0147d0.h index 73c540e82..72b9e7ecc 100644 --- a/src/include/game/game_0147d0.h +++ b/src/include/game/game_0147d0.h @@ -6,7 +6,7 @@ void func0f0147d0(void); void func0f0147f8(void); void mpRemoveAllSimulants(void); -u32 func0f014848(void); +void func0f014848(s32 arg0, s32 arg1); void aibotAllocateUnk014(struct chrdata *chr, s32 count); #endif diff --git a/src/include/game/game_015010.h b/src/include/game/game_015010.h index 2d85ccc8c..4138ff9cf 100644 --- a/src/include/game/game_015010.h +++ b/src/include/game/game_015010.h @@ -3,6 +3,6 @@ #include #include "types.h" -void setupParseObjects(void); +void func0f015010(void); #endif diff --git a/src/include/game/game_02cde0.h b/src/include/game/game_02cde0.h index 23f1179ec..98d344b14 100644 --- a/src/include/game/game_02cde0.h +++ b/src/include/game/game_02cde0.h @@ -10,7 +10,7 @@ struct model *func0f02d338(u32 bodynum, u32 headnum, u32 arg2, u32 arg3, bool ar struct model *modelAllocateChr(u32 bodynum, u32 headnum, u32 flags); u32 func0f02d3f8(void); u32 bodyGetHead(u32 bodynum); -u32 func0f02d4fc(void); +void chrUnpack(s32 stagenum, void *cmddata, s32 cmdindex); struct prop *propAllocateEyespy(struct pad *pad, s16 room); u32 func0f02ddbc(void); diff --git a/src/include/game/game_157db0.h b/src/include/game/game_157db0.h index 97fac053b..7d9d9f6b6 100644 --- a/src/include/game/game_157db0.h +++ b/src/include/game/game_157db0.h @@ -97,7 +97,7 @@ void portalSwapProps(u32 portal); u32 func0f164ab8(void); u32 func0f164c64(void); void portalSetEnabled(s32 portal, bool enable); -void func0f164e8c(struct coord *arg0, struct coord *arg1); +s32 func0f164e8c(struct coord *arg0, struct coord *arg1); u32 func0f164f9c(void); u32 func0f165004(void); void func0f1650d0(struct coord *lower, struct coord *upper, s16 *rooms, s32 arg3, s32 arg4); diff --git a/src/include/game/mplayer.h b/src/include/game/mplayer.h index 3083f0d8a..09ebcbecf 100644 --- a/src/include/game/mplayer.h +++ b/src/include/game/mplayer.h @@ -24,7 +24,7 @@ u32 mpGetNumWeaponOptions(void); char *mpGetWeaponLabel(s32 weaponnum); void mpSetWeaponSlot(s32 slot, s32 mpweaponnum); s32 mpGetWeaponSlot(s32 slot); -struct mpweapon *func0f188e24(u32 arg0); +struct mpweapon *func0f188e24(s32 arg0); s32 mpCountWeaponSetThing(s32 weaponsetindex); s32 func0f188f9c(s32 arg0); s32 func0f189058(s32 arg0); diff --git a/src/include/game/propobj.h b/src/include/game/propobj.h index 2a1199356..92380aa9e 100644 --- a/src/include/game/propobj.h +++ b/src/include/game/propobj.h @@ -93,8 +93,8 @@ void func0f06a730(struct defaultobj *obj, struct pad *newpad, f32 *matrix, s16 * u32 func0f06ab60(void); void func0f06ac40(struct defaultobj *obj); void func0f06ac90(struct prop *prop); -void setupParseObject(void *ptr, bool arg1, bool arg2); -void setupParseObjectWithArg2False(void *ptr, s32 arg1); +void func0f06ad2c(void *ptr, bool arg1, bool arg2); +void func0f06b34c(void *ptr, s32 arg1); u32 func0f06b36c(void); bool func0f06b39c(struct coord *arg0, struct coord *arg1, struct coord *arg2, f32 arg3); u32 func0f06b488(void); @@ -252,7 +252,7 @@ bool func0f0899dc(struct prop *prop, f32 *arg0, f32 *arg1, f32 *arg2); void func0f089a94(bool arg0, struct model *model); u32 func0f089c70(void); u32 func0f089d64(void); -void func0f089db8(struct defaultobj *obj, struct chrdata *chr); +void hatAssignToChr(struct hatobj *hat, struct chrdata *chr); u32 chrTryEquipHat(struct chrdata *chr, u32 model, u32 flags); u32 func0f089f8c(void); u32 func0f08a38c(void); diff --git a/src/include/lib/lib_16110.h b/src/include/lib/lib_16110.h index 6711a0888..5309c39d5 100644 --- a/src/include/lib/lib_16110.h +++ b/src/include/lib/lib_16110.h @@ -4,7 +4,7 @@ #include "types.h" u8 *ailistFindById(s32 ailistid); -u32 func00016110(void); +void func00016110(f32 *matrix1, f32 *matrix2); u32 func00016140(void); u32 func000161b0(void); void func00016208(f32 *matrix, struct coord *coord); @@ -42,7 +42,7 @@ u32 func00017ce0(void); u32 func00017dc4(void); u32 func00017e30(void); u32 func00018148(void); -u32 func000185d0(void); +void func000185d0(struct defaultobj *obj, s32 arg1); u32 func00018680(void); u32 func00019634(void); u32 func000198dc(void); diff --git a/src/include/props.h b/src/include/props.h index 18e240b62..5f205103f 100644 --- a/src/include/props.h +++ b/src/include/props.h @@ -24,8 +24,7 @@ u48, u49, u50, u51, #define door_scale(scale) \ - 0x02, \ - scale, + 0x02, scale, #define stdobject(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) \ _generic_object(0x03, scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), @@ -118,16 +117,18 @@ u32, u33, u34, u35, \ u36, u37, u38, u39, -#define link_collectibles(a, b) \ - 0x0e, \ - _mkword(a, b), +/** + * Link two guns together, which allows them to be dual wielded once both have + * been collected. + */ +#define link_guns(gun1offset, gun2offset) \ + 0x0e, _mkword(gun1offset, gun2offset), #define debris(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) \ _generic_object(0x0f, scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), -#define link_objects(u1, u2, u3, u4) \ - 0x13, \ - u1, u2, u3, u4, +#define lift_door(dooroffset, liftoffset, stopnum) \ + 0x13, dooroffset, liftoffset, 0, stopnum, #define ammocratemulti(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35, u36, u37, u38) \ _generic_object(0x14, scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ @@ -142,81 +143,59 @@ u20, u21, u22, #define tag(id, value) \ - 0x16, \ - _mkword(id, value), \ - 0, \ - 0, + 0x16, _mkword(id, value), 0, 0, #define beginobjective(value, text, diffbit) \ - 0x17, \ - value, \ - text, \ - diffbit, + 0x17, value, text, diffbit, #define endobjective \ 0x18, #define require_object_destroyed(object) \ - 0x19, \ - object, + 0x19, object, #define complete_flags(stageflag) \ - 0x1a, \ - stageflag, + 0x1a, stageflag, #define fail_flags(stageflag) \ - 0x1b, \ - stageflag, + 0x1b, stageflag, #define require_object_collected(object) \ - 0x1c, \ - object, + 0x1c, object, #define require_object_thrown(object) \ - 0x1d, \ - object, + 0x1d, object, #define require_object_holographed(object, u1, u2) \ - 0x1e, \ - object, \ - u1, \ - u2, + 0x1e, object, u1, u2, #define require_room_entered(room) \ - 0x20, \ - room, + 0x20, room, #define require_object_thrown_on_target(throw_object, target_object, u1) \ - 0x21, \ - throw_object, \ - target_object, \ - u1, + 0x21, throw_object, target_object, u1, -#define briefing(value, text1) \ - 0x23, \ - value, \ - text1, \ - 0, +#define briefing(value, text) \ + 0x23, value, text, 0, #define rename_object(u1, id, text, text2, text3, text4, text5, u2, u3) \ - 0x25, \ - u1, \ - id, \ - text, \ - text2, \ - text3, \ - text4, \ - text5, \ - u2, u3, + 0x25, u1, id, text, text2, text3, text4, text5, u2, u3, + +#define padlocked_door(dooroffset, lockoffset) \ + 0x26, door, lock, 0, #define glass(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20) \ _generic_object(0x2a, scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ u20, +#define safe(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) \ + _generic_object(0x2b, scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), + +#define safeitem(item, safe, door) \ + 0x2c, item, safe, door, + #define camera2(scale, u1, u2, u3, u4, u5, u6) \ - _mkword(scale, 0x2e), \ - u1, u2, u3, u4, \ - u5, u6, + _mkword(scale, 0x2e), u1, u2, u3, u4, u5, u6, #define tinted_glass(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22) \ _generic_object(0x2f, scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ @@ -230,14 +209,30 @@ u28, u29, u30, u31, \ u32, -#define link_scenery(unk1, unk2, unk3) \ - 0x31, \ - unk1, unk2, unk3, \ - 0, +/** + * Link some scenery objects together so they can be toggled as a group. + * + * The three arguments are all offsets to other objects. + * + * trigger - is the offset to the destructible object. + * unexp - will be visible when trigger is healthy. + * exp - will be visible when trigger is destroyed. + * + * Both unexp and exp are optional. Use 0 to disable. + * + * Note that the trigger itself can disappear when destroyed, so unexp works as + * an additional object which should be hidden. + */ +#define conditional_scenery(trigger, unexp, exp) \ + 0x31, trigger, unexp, exp, 0, -#define link_paths(u1, u2, u3) \ - 0x32, \ - u1, u2, u3, +/** + * Define two waypoints which start off unlinked and become linked once an + * object is destroyed. It's used to activate a path through exploded walls in + * Rescue and Escape. + */ +#define blocked_path(objoffset, waypoint1, waypoint2) \ + 0x32, objoffset, _mkword(waypoint1, waypoint2), 0, #define hoverbike(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52) \ _generic_object(0x33, scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ @@ -274,9 +269,7 @@ u32, u33, u34, #define pad_effect(effect, pad) \ - 0x38, \ - effect, \ - pad, + 0x38, effect, pad, #define chopper(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u32, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54) \ _generic_object(0x39, scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19), \ diff --git a/src/include/types.h b/src/include/types.h index b5978eba9..d62ff2b3d 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -261,7 +261,7 @@ struct modelnode { struct modelnode *relation; // unsure if parent or child }; -struct model08 { +struct model08 { // raw model file data struct modelnode *rootnode; struct stagethinglist *unk04; @@ -328,6 +328,10 @@ struct modeldata_partid { // type 0x12 } visible; }; +struct modeldata_05 { + bool unk00; +}; + struct modeldata_headspot { // type 0x17 struct model08 *model08; void *datas; @@ -1103,6 +1107,15 @@ struct obj48 { /*0x105*/ u8 unk105; }; +struct image { + /*0x00*/ u32 unk00; + /*0x04*/ u32 unk04; + /*0x08*/ u32 unk08; + /*0x0c*/ u32 unk0c; + /*0x10*/ u32 unk10; + /*0x14*/ u32 unk14; +}; + // I get the feeling this struct might be a regular f32 matrix... struct hov { /*0x00*/ u32 unk00; @@ -1143,7 +1156,7 @@ struct defaultobj { /*0x50*/ u8 shadecol[4]; /*0x54*/ u8 nextcol[4]; /*0x58*/ u16 floorcol; - /*0x5a*/ u8 numtiles; + /*0x5a*/ s8 numtiles; }; struct doorobj { // objtype 0x01 @@ -1183,18 +1196,44 @@ struct doorobj { // objtype 0x01 /*0xcc*/ u8 laserfade; }; +struct doorscaleobj { // objtype 0x02 + u32 unk00; + s32 scale; +}; + struct keyobj { // objtype 0x04 struct defaultobj base; u32 keyflags; }; -struct image { - /*0x00*/ u32 unk00; - /*0x04*/ u32 unk04; - /*0x08*/ u32 unk08; - /*0x0c*/ u32 unk0c; - /*0x10*/ u32 unk10; - /*0x14*/ u32 unk14; +struct cameraobj { // objtype 0x06 + struct defaultobj base; + /*0x5c*/ u32 unk5c; + /*0x60*/ u32 unk60; + /*0x64*/ u32 unk64; + /*0x68*/ u32 unk68; + /*0x6c*/ u32 unk6c; + /*0x70*/ u32 unk70; + /*0x74*/ u32 unk74; + /*0x78*/ u32 unk78; + /*0x7c*/ u32 unk7c; + /*0x80*/ u32 unk80; + /*0x84*/ u32 unk84; + /*0x88*/ u32 unk88; + /*0x8c*/ u32 unk8c; + /*0x90*/ u32 unk90; + /*0x94*/ u32 unk94; + /*0x98*/ u32 unk98; + /*0x9c*/ u32 unk9c; + /*0xa0*/ u32 unka0; + /*0xa4*/ u32 unka4; + /*0xa8*/ u32 unka8; + /*0xac*/ u32 unkac; + /*0xb0*/ u32 unkb0; + /*0xb4*/ u32 unkb4; + /*0xb8*/ u32 unkb8; + /*0xbc*/ u32 unkbc; + /*0xc0*/ u32 unkc0; }; struct ammocrateobj { // objtype 0x07 @@ -1246,11 +1285,15 @@ struct singlemonitorobj { // objtype 0x0a /*0x5c*/ struct image image; }; -struct multimonitorobj { // objtype 0b +struct multimonitorobj { // objtype 0x0b struct singlemonitorobj subobjs[4]; }; -struct autogunobj { // objtype 0d +struct hangingmonitorsobj { // objtype 0x0c + struct defaultobj base; +}; + +struct autogunobj { // objtype 0x0d struct defaultobj base; /*0x5c*/ u32 unk5c; /*0x60*/ u32 unk60; @@ -1275,55 +1318,142 @@ struct autogunobj { // objtype 0d /*0xa9*/ u8 ammoquantity; }; -struct multiammocrateobj { // objtype 14 - struct defaultobj base; - /*0x5c*/ u32 quantities[19]; // indexed by ammotype minus 1 +struct linkgunsobj { // objtype 0x0e + u32 unk00; + s16 offset1; + s16 offset2; }; -struct shieldobj { // objtype 15 +struct hatobj { // objtype 0x11 + struct defaultobj base; +}; + +struct grenadeprobobj { // objtype 0x12 + u32 unk00; + s16 chrnum; + u16 probability; +}; + +struct linkliftdoorobj { + u32 unk00; + struct prop *door; + struct prop *lift; + struct linkliftdoorobj *next; + u32 stopnum; +}; + +struct multiammocrateslot { + u16 unk00; + u16 unk02; +}; + +struct multiammocrateobj { // objtype 0x14 + struct defaultobj base; + /*0x5c*/ struct multiammocrateslot quantities[19]; // indexed by ammotype minus 1 +}; + +struct shieldobj { // objtype 0x15 struct defaultobj base; /*0x5c*/ f32 initialamount; /*0x60*/ f32 amount; }; -struct truckobj { +struct tag { // objtype 0x16 + /*0x00*/ u32 identifier; // always 0x00000016 + /*0x04*/ u16 tagnum; + /*0x06*/ s16 cmdoffset; + /*0x08*/ struct tag *next; + /*0x0c*/ struct defaultobj *obj; +}; + +struct beginobjectiveobj { // objtype 0x17 + u32 unk00; + u32 index; + u32 text; + u32 difficulty; +}; + +struct briefingobj { // objtype 0x23 + u32 unk00; + u32 type; + u32 text; +}; + +struct padlockeddoorobj { // objtype 0x26 + u32 unk00; + struct doorobj *door; + struct defaultobj *lock; + struct padlockeddoorobj *next; +}; + +struct truckobj { // objtype 0x27 struct defaultobj base; /*0x5c*/ u8 *ailist; /*0x60*/ u16 aioffset; /*0x62*/ s16 aireturnlist; - /*0x64*/ u32 unk64; - /*0x68*/ u32 unk68; - /*0x6c*/ u32 unk6c; + /*0x64*/ f32 speed; + /*0x68*/ f32 wheelxrot; + /*0x6c*/ f32 wheelyrot; /*0x70*/ f32 speedaim; /*0x74*/ f32 speedtime60; - /*0x78*/ u32 unk78; - /*0x7c*/ u32 unk7c; + /*0x78*/ f32 turnrot60; + /*0x7c*/ f32 roty; /*0x80*/ struct path *path; /*0x84*/ s32 nextstep; }; -struct heliobj { +struct heliobj { // objtype 0x28 struct defaultobj base; /*0x5c*/ u8 *ailist; /*0x60*/ u16 aioffset; /*0x62*/ s16 aireturnlist; - /*0x64*/ u32 unk64; - /*0x68*/ f32 rotaryspeed; - /*0x6c*/ f32 rotaryspeedaim; - /*0x70*/ f32 rotaryspeedtime; + /*0x64*/ f32 rotoryrot; + /*0x68*/ f32 rotoryspeed; + /*0x6c*/ f32 rotoryspeedaim; + /*0x70*/ f32 rotoryspeedtime; /*0x74*/ f32 speed; /*0x78*/ f32 speedaim; /*0x7c*/ f32 speedtime60; + /*0x80*/ f32 yrot; + /*0x84*/ struct path *path; + /*0x88*/ s32 nextstep; }; -struct tintedglassobj { // objtype 2f +struct glassobj { // objtype 0x2a + struct defaultobj base; + /*0x5c*/ s16 portalnum; +}; + +struct safeobj { // objtype 0x2b + u32 unk00; +}; + +struct safeitemobj { + u32 unk00; + struct defaultobj *item; + struct safeobj *safe; + struct doorobj *door; + struct safeitemobj *next; +}; + +struct camera2obj { // objtype 0x2e + u32 unk00; + f32 unk04; + f32 unk08; + f32 unk0c; + f32 unk10; + f32 unk14; +}; + +struct tintedglassobj { // objtype 0x2f struct defaultobj base; /*0x5c*/ u32 unk5c; /*0x60*/ u16 unk60; /*0x62*/ s16 portalnum; + /*0x64*/ f32 unk64; }; -struct liftobj { // objtype 30 +struct liftobj { // objtype 0x30 struct defaultobj base; /*0x5c*/ s16 pads[4]; /*0x64*/ struct doorobj *doors[4]; @@ -1337,29 +1467,45 @@ struct liftobj { // objtype 30 /*0x88*/ struct coord prevpos; }; -struct hoverbikeobj { // objtype 33 +struct linksceneryobj { // objtype 0x31 + u32 unk00; + struct defaultobj *trigger; + struct defaultobj *unexp; + struct defaultobj *exp; + struct linksceneryobj *next; +}; + +struct blockedpathobj { // objtype 0x32 + u32 unk00; + struct defaultobj *blocker; + s16 waypoint1; + s16 waypoint2; + struct blockedpathobj *next; +}; + +struct hoverbikeobj { // objtype 0x33 struct defaultobj base; struct hov hov; /*0x09c*/ f32 speed[2]; /*0x0a4*/ f32 prevpos[2]; /*0x0ac*/ f32 w; - /*0x0b0*/ u32 rels[2]; + /*0x0b0*/ f32 rels[2]; /*0x0b8*/ f32 exreal; /*0x0bc*/ f32 ezreal; /*0x0c0*/ f32 ezreal2; - /*0x0c4*/ u32 leanspeed; - /*0x0c8*/ u32 leandiff; + /*0x0c4*/ f32 leanspeed; + /*0x0c8*/ f32 leandiff; /*0x0cc*/ u32 maxspeedtime240; - /*0x0d0*/ u32 speedabs[2]; - /*0x0d8*/ u32 speedrel[2]; + /*0x0d0*/ f32 speedabs[2]; + /*0x0d8*/ f32 speedrel[2]; }; -struct hoverpropobj { // objtype 35 +struct hoverpropobj { // objtype 0x35 struct defaultobj base; struct hov hov; }; -struct fanobj { // objtype 36 +struct fanobj { // objtype 0x36 struct defaultobj base; /*0x5c*/ f32 yrot; /*0x60*/ f32 yrotprev; @@ -1369,14 +1515,29 @@ struct fanobj { // objtype 36 /*0x70*/ s8 on; }; -struct hovercarobj { +struct hovercarobj { // objtype 0x37 struct defaultobj base; /*0x5c*/ u8 *ailist; /*0x60*/ u16 aioffset; /*0x62*/ s16 aireturnlist; + /*0x64*/ f32 speed; + /*0x68*/ f32 speedaim; + /*0x6c*/ f32 speedtime60; + /*0x70*/ f32 turnyspeed60; + /*0x74*/ f32 turnxspeed60; + /*0x78*/ f32 turnrot60; + /*0x7c*/ f32 roty; + /*0x80*/ f32 rotx; + /*0x84*/ f32 rotz; + /*0x88*/ struct path *path; + /*0x8c*/ s32 nextstep; }; -struct chopperobj { +struct padeffectobj { // objtype 0x38 + u32 unk00; +}; + +struct chopperobj { // objtype 0x39 struct defaultobj base; /*0x5c*/ u8 *ailist; /*0x60*/ u16 aioffset; @@ -1419,12 +1580,14 @@ struct chopperobj { /*0xe4*/ bool dead; }; -struct tag { - /*0x00*/ u32 identifier; // always 0x00000016 - /*0x04*/ u16 tagnum; - /*0x06*/ s16 cmdoffset; - /*0x08*/ struct tag *next; - /*0x0c*/ struct defaultobj *obj; +struct mineobj { // objtype 0x3a + struct defaultobj base; +}; + +struct escalatorobj { // objtype 0x3b + struct defaultobj base; + /*0x5c*/ u32 frame; + /*0x60*/ struct coord prevpos; }; struct eyespy { @@ -3574,23 +3737,30 @@ struct room { }; struct bullettail { - s8 age; - s8 unk01; - u32 unk04; - u32 unk08; - u32 unk0c; - u32 unk10; - u32 unk14; - u32 unk18; - f32 maxdist; - f32 speed; - u32 unk24; - f32 dist; + /*0x00*/ s8 age; + /*0x01*/ s8 unk01; + /*0x04*/ u32 unk04; + /*0x08*/ u32 unk08; + /*0x0c*/ u32 unk0c; + /*0x10*/ u32 unk10; + /*0x14*/ u32 unk14; + /*0x18*/ u32 unk18; + /*0x1c*/ f32 maxdist; + /*0x20*/ f32 speed; + /*0x24*/ u32 unk24; + /*0x28*/ f32 dist; }; struct fireslotthing { - /*0x00*/ u32 unk00; + /*0x00*/ u8 unk00; + /*0x01*/ u8 unk01; /*0x04*/ struct bullettail *bullettail; + /*0x08*/ s32 unk08; + /*0x0c*/ f32 unk0c; + /*0x10*/ f32 unk10; + /*0x14*/ f32 unk14; + /*0x18*/ u32 unk18; + /*0x1c*/ u32 unk1c; }; struct fireslot { @@ -4956,7 +5126,7 @@ struct objective { // representation of setup file beginobjective macro }; struct briefing { - u16 objectivenames[6]; + u16 objectivenames[6]; // index 0 is the briefing, and the rest of objectives u16 objectivedifficulties[6]; }; @@ -5084,7 +5254,7 @@ struct smoke { struct textoverride { /*0x00*/ u32 unk00; - /*0x04*/ u32 unk04; + /*0x04*/ s32 objoffset; /*0x08*/ s32 weapon; /*0x0c*/ u32 unk0c; /*0x10*/ u32 unk10; @@ -5327,7 +5497,7 @@ struct chrnumaction { }; struct propdefinition { - void *filedata; + struct model08 *filedata; u16 fileid; u16 scale; }; @@ -6152,10 +6322,10 @@ struct mpconfig { struct mpweapon { /*0x00*/ u8 weaponnum; - /*0x01*/ u8 unk01; - /*0x02*/ u8 unk02; - /*0x03*/ u8 unk03; - /*0x04*/ u8 unk04; + /*0x01*/ s8 weapon1ammotypeminusone; + /*0x02*/ u8 weapon1ammoqty; + /*0x03*/ s8 weapon2ammotypeminusone; + /*0x04*/ u8 weapon2ammoqty; /*0x05*/ u8 giveweapon : 1; /*0x05*/ u8 unlock : 7; /*0x06*/ s16 model; @@ -6346,43 +6516,6 @@ struct healthdamagetype { s32 unk10; }; -struct var8006991c { - u32 unk00; - u32 unk04; - u32 unk08; - struct var8006991c *next; -}; - -struct padlockeddoor { - u32 unk00; - struct doorobj *door; - struct defaultobj *padlock; - struct padlockeddoor *next; -}; - -struct var80069924 { - u32 unk00; - u32 unk04; - u32 unk08; - u32 unk0c; - struct var80069924 *next; -}; - -struct var80069928 { - u32 unk00; - u32 unk04; - u32 unk08; - u32 unk0c; - struct var80069928 *next; -}; - -struct var8006992c { - u32 unk00; - u32 unk04; - u32 unk08; - struct var8006992c *next; -}; - struct model08thing { u32 unk00; f32 unk04[4]; diff --git a/src/lib/lib_16110.c b/src/lib/lib_16110.c index ad5be72e0..142dd9945 100644 --- a/src/lib/lib_16110.c +++ b/src/lib/lib_16110.c @@ -2605,11 +2605,11 @@ glabel func000185d0 /* 185d0: 27bdffe8 */ addiu $sp,$sp,-24 /* 185d4: afbf0014 */ sw $ra,0x14($sp) /* 185d8: 8c8e0040 */ lw $t6,0x40($a0) -/* 185dc: 3c028007 */ lui $v0,%hi(var8006992c) +/* 185dc: 3c028007 */ lui $v0,%hi(g_BlockedPaths) /* 185e0: 000e7980 */ sll $t7,$t6,0x6 /* 185e4: 05e30023 */ bgezl $t7,.L00018674 /* 185e8: 8fbf0014 */ lw $ra,0x14($sp) -/* 185ec: 8c42992c */ lw $v0,%lo(var8006992c)($v0) +/* 185ec: 8c42992c */ lw $v0,%lo(g_BlockedPaths)($v0) /* 185f0: 3c03800a */ lui $v1,%hi(g_StageSetup) /* 185f4: 5040001f */ beqzl $v0,.L00018674 /* 185f8: 8fbf0014 */ lw $ra,0x14($sp)