mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-04 20:15:28 -04:00
28838 lines
1.0 MiB
Plaintext
28838 lines
1.0 MiB
Plaintext
#include <ultra64.h>
|
|
#include "constants.h"
|
|
#include "game/chr/chraction.h"
|
|
#include "game/chr/chrai.h"
|
|
#include "game/debug.h"
|
|
#include "game/dlights.h"
|
|
#include "game/game_005fd0.h"
|
|
#include "game/game_01b0a0.h"
|
|
#include "game/chr/chr.h"
|
|
#include "game/game_02cde0.h"
|
|
#include "game/prop.h"
|
|
#include "game/game_092610.h"
|
|
#include "game/game_095320.h"
|
|
#include "game/atan2f.h"
|
|
#include "game/game_0969d0.h"
|
|
#include "game/game_097ba0.h"
|
|
#include "game/game_0abe70.h"
|
|
#include "game/game_0b0fd0.h"
|
|
#include "game/game_0b28d0.h"
|
|
#include "game/game_0b3350.h"
|
|
#include "game/game_0b69d0.h"
|
|
#include "game/inventory/inventory.h"
|
|
#include "game/game_127910.h"
|
|
#include "game/explosions/explosions.h"
|
|
#include "game/sparks/sparks.h"
|
|
#include "game/room.h"
|
|
#include "game/game_1655c0.h"
|
|
#include "game/game_165670.h"
|
|
#include "game/core.h"
|
|
#include "game/game_190260.h"
|
|
#include "game/game_197600.h"
|
|
#include "game/game_1999b0.h"
|
|
#include "game/mplayer/mplayer.h"
|
|
#include "game/pad.h"
|
|
#include "game/padhalllv.h"
|
|
#include "game/pak/pak.h"
|
|
#include "game/propobj.h"
|
|
#include "game/wallhit.h"
|
|
#include "game/mpstats.h"
|
|
#include "gvars/gvars.h"
|
|
#include "lib/main.h"
|
|
#include "lib/model.h"
|
|
#include "lib/lib_0e9d0.h"
|
|
#include "lib/rng.h"
|
|
#include "lib/lib_159b0.h"
|
|
#include "lib/lib_16110.h"
|
|
#include "lib/lib_233c0.h"
|
|
#include "data.h"
|
|
#include "types.h"
|
|
|
|
const char var7f1a8ac0[] = "chraction.c";
|
|
const char var7f1a8acc[] = "chraction.c";
|
|
|
|
s32 g_RecentQuipsPlayed[5];
|
|
u32 var8009cd84;
|
|
u32 var8009cd88;
|
|
u32 var8009cd8c;
|
|
u32 var8009cd90;
|
|
u32 var8009cd94;
|
|
u8 g_RecentQuipsIndex;
|
|
|
|
f32 var80062ca0 = 1;
|
|
f32 var80062ca4 = 1;
|
|
f32 var80062ca8 = 1;
|
|
f32 var80062cac = 1;
|
|
u32 var80062cb0 = 0x00000000;
|
|
u32 var80062cb4 = 0x00000000;
|
|
u32 var80062cb8 = 0x00000000;
|
|
s32 var80062cbc = 0;
|
|
|
|
struct somedruggedracethingdeep var80062cc0[] = {
|
|
{ 0x0020, 0, -1, 0.5, 0, 26, -1 },
|
|
{ 0, 0, 0, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80062cf8[] = {
|
|
{ 0x0020, 0, -1, 0.5, 0, 26, -1 },
|
|
{ 0, 0, 0, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80062d30[] = {
|
|
{ 0x0020, 0, -1, 0.5, 1, 26, -1 },
|
|
{ 0x0039, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0092, 1, -1, 0.4, 0, 42, 103 },
|
|
{ 0x0258, 1, -1, 0.5, 0, 43, 100 },
|
|
{ 0, 0, 0, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80062dbc[] = {
|
|
{ 0x0020, 1, -1, 0.5, 0, 26, -1 },
|
|
{ 0, 0, 0, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80062df4[] = {
|
|
{ 0x0020, 1, -1, 0.5, 0, 26, -1 },
|
|
{ 0, 0, 0, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80062e2c[] = {
|
|
{ 0x0020, 1, -1, 0.5, 1, 26, -1 },
|
|
{ 0x0039, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0092, 0, -1, 0.4, 0, 42, 103 },
|
|
{ 0x0258, 0, -1, 0.5, 0, 43, 100 },
|
|
{ 0, 0, 0, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80062eb8[] = {
|
|
{ 0x001a, 0, -1, 0.5, 0, 55, 39 },
|
|
{ 0x001a, 1, -1, 0.5, 0, 55, 39 },
|
|
{ 0x001c, 0, -1, 0.5, 1, 29, -1 },
|
|
{ 0x001c, 1, -1, 0.5, 1, 29, -1 },
|
|
{ 0x0021, 0, -1, 0.5, 0, 97, 64 },
|
|
{ 0x0021, 1, -1, 0.5, 0, 97, 64 },
|
|
{ 0x0023, 0, -1, 0.5, 0, 31, -1 },
|
|
{ 0x0023, 1, -1, 0.5, 0, 31, -1 },
|
|
{ 0x0024, 0, -1, 0.5, 0, 36, -1 },
|
|
{ 0x0024, 1, -1, 0.5, 0, 36, -1 },
|
|
{ 0x0025, 0, -1, 0.5, 0, 28, -1 },
|
|
{ 0x0025, 1, -1, 0.5, 0, 28, -1 },
|
|
{ 0x0090, 0, -1, 0.6, 0, 157, 234 },
|
|
{ 0x0090, 1, -1, 0.6, 0, 157, 234 },
|
|
{ 0x0091, 0, -1, 0.6, 0, 75, 265 },
|
|
{ 0x0091, 1, -1, 0.6, 0, 75, 265 },
|
|
{ 0x0250, 0, -1, 0.5, 0, 65, 105 },
|
|
{ 0x0250, 1, -1, 0.5, 0, 65, 105 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800630cc[] = {
|
|
{ 0x001a, 0, -1, 0.5, 0, 55, 39 },
|
|
{ 0x001a, 1, -1, 0.5, 0, 55, 39 },
|
|
{ 0x001c, 0, -1, 0.5, 1, 29, -1 },
|
|
{ 0x001c, 1, -1, 0.5, 1, 29, -1 },
|
|
{ 0x0020, 0, -1, 0.5, 1, 26, -1 },
|
|
{ 0x0020, 1, -1, 0.5, 1, 26, -1 },
|
|
{ 0x0021, 0, -1, 0.5, 0, 97, 64 },
|
|
{ 0x0021, 1, -1, 0.5, 0, 97, 64 },
|
|
{ 0x0022, 0, -1, 0.5, 0, 94, 66 },
|
|
{ 0x0022, 1, -1, 0.5, 0, 94, 66 },
|
|
{ 0x0023, 0, -1, 0.5, 0, 31, -1 },
|
|
{ 0x0023, 1, -1, 0.5, 0, 31, -1 },
|
|
{ 0x0024, 0, -1, 0.5, 0, 36, -1 },
|
|
{ 0x0024, 1, -1, 0.5, 0, 36, -1 },
|
|
{ 0x0025, 0, -1, 0.5, 0, 28, -1 },
|
|
{ 0x0025, 1, -1, 0.5, 0, 28, -1 },
|
|
{ 0x0038, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0038, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0251, 0, -1, 0.5, 0, 132, 201 },
|
|
{ 0x0251, 1, -1, 0.5, 0, 132, 201 },
|
|
{ 0x0252, 0, -1, 0.5, 0, 83, 150 },
|
|
{ 0x0252, 1, -1, 0.5, 0, 83, 150 },
|
|
{ 0x0256, 0, -1, 0.5, 0, 63, -1 },
|
|
{ 0x0256, 1, -1, 0.5, 0, 63, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063388[] = {
|
|
{ 0x0020, 0, -1, 0.5, 0, 26, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800633c0[] = {
|
|
{ 0x0020, 0, -1, 0.5, 0, 26, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800633f8[] = {
|
|
{ 0x0020, 0, -1, 0.5, 1, 26, -1 },
|
|
{ 0x008f, 1, -1, 0.45, 1, 52, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var8006344c[] = {
|
|
{ 0x0020, 1, -1, 0.5, 0, 26, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063484[] = {
|
|
{ 0x0020, 1, -1, 0.5, 0, 26, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800634bc[] = {
|
|
{ 0x0020, 1, -1, 0.5, 1, 26, -1 },
|
|
{ 0x008f, 0, -1, 0.45, 1, 52, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063510[] = {
|
|
{ 0x001a, 0, -1, 0.5, 0, 55, 39 },
|
|
{ 0x001a, 1, -1, 0.5, 0, 55, 39 },
|
|
{ 0x001c, 0, -1, 0.5, 1, 29, -1 },
|
|
{ 0x001c, 1, -1, 0.5, 1, 29, -1 },
|
|
{ 0x0020, 0, -1, 0.5, 1, 26, -1 },
|
|
{ 0x0020, 1, -1, 0.5, 1, 26, -1 },
|
|
{ 0x0021, 0, -1, 0.5, 0, 97, 64 },
|
|
{ 0x0021, 1, -1, 0.5, 0, 97, 64 },
|
|
{ 0x0022, 0, -1, 0.5, 0, 94, 66 },
|
|
{ 0x0022, 1, -1, 0.5, 0, 94, 66 },
|
|
{ 0x0023, 0, -1, 0.5, 0, 31, -1 },
|
|
{ 0x0023, 1, -1, 0.5, 0, 31, -1 },
|
|
{ 0x0024, 0, -1, 0.5, 0, 36, -1 },
|
|
{ 0x0024, 1, -1, 0.5, 0, 36, -1 },
|
|
{ 0x0025, 0, -1, 0.5, 0, 28, -1 },
|
|
{ 0x0025, 1, -1, 0.5, 0, 28, -1 },
|
|
{ 0x024e, 0, -1, 0.4, 0, 60, -1 },
|
|
{ 0x024e, 1, -1, 0.4, 0, 60, -1 },
|
|
{ 0x024f, 0, -1, 0.5, 0, 49, 80 },
|
|
{ 0x024f, 1, -1, 0.5, 0, 49, 80 },
|
|
{ 0x0253, 0, -1, 0.5, 1, 22, -1 },
|
|
{ 0x0253, 1, -1, 0.5, 1, 22, -1 },
|
|
{ 0x0254, 0, -1, 0.5, 0, 52, 75 },
|
|
{ 0x0254, 1, -1, 0.5, 0, 52, 75 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800637cc[] = {
|
|
{ 0x001a, 0, -1, 0.5, 0, 55, 39 },
|
|
{ 0x001a, 1, -1, 0.5, 0, 55, 39 },
|
|
{ 0x001c, 0, -1, 0.5, 1, 29, -1 },
|
|
{ 0x001c, 1, -1, 0.5, 1, 29, -1 },
|
|
{ 0x0021, 0, -1, 0.5, 0, 97, 64 },
|
|
{ 0x0021, 1, -1, 0.5, 0, 97, 64 },
|
|
{ 0x0022, 0, -1, 0.5, 0, 94, 66 },
|
|
{ 0x0022, 1, -1, 0.5, 0, 94, 66 },
|
|
{ 0x0023, 0, -1, 0.5, 0, 31, -1 },
|
|
{ 0x0023, 1, -1, 0.5, 0, 31, -1 },
|
|
{ 0x0024, 0, -1, 0.5, 0, 36, -1 },
|
|
{ 0x0024, 1, -1, 0.5, 0, 36, -1 },
|
|
{ 0x0025, 0, -1, 0.5, 0, 28, -1 },
|
|
{ 0x0025, 1, -1, 0.5, 0, 28, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0019, 0, -1, 0.5, 0, 67, 54 },
|
|
{ 0x0019, 1, -1, 0.5, 0, 67, 54 },
|
|
{ 0x0257, 0, -1, 0.5, 0, 15, 80 },
|
|
{ 0x0257, 1, -1, 0.5, 0, 15, 80 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800639fc[] = {
|
|
{ 0x0014, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0015, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063a50[] = {
|
|
{ 0x0014, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0015, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00bc, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00bd, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063adc[] = {
|
|
{ 0x0014, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0015, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0039, 1, 20, 0.4, 0, -1, -1 },
|
|
{ 0x00ba, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063b68[] = {
|
|
{ 0x0015, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0014, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0236, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063bd8[] = {
|
|
{ 0x0015, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0014, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00be, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063c48[] = {
|
|
{ 0x0015, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0014, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0039, 0, 20, 0.4, 0, -1, -1 },
|
|
{ 0x00bf, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063cd4[] = {
|
|
{ 0x0022, 0, 20, 0.5, 0, -1, -1 },
|
|
{ 0x0022, 1, 20, 0.5, 0, -1, -1 },
|
|
{ 0x001a, 0, 15, 0.5, 0, -1, -1 },
|
|
{ 0x001a, 1, 15, 0.5, 0, -1, -1 },
|
|
{ 0x0023, 0, 10, 0.25, 0, -1, -1 },
|
|
{ 0x0023, 1, 10, 0.25, 0, -1, -1 },
|
|
{ 0x00da, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00f4, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063dd0[] = {
|
|
{ 0x0022, 0, 20, 0.5, 0, -1, -1 },
|
|
{ 0x0022, 1, 20, 0.5, 0, -1, -1 },
|
|
{ 0x001a, 0, 15, 0.5, 0, -1, -1 },
|
|
{ 0x001a, 1, 15, 0.5, 0, -1, -1 },
|
|
{ 0x00f8, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00fb, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0101, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0113, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063ecc[] = {
|
|
{ 0x0012, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0013, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00b8, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063f3c[] = {
|
|
{ 0x0010, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0011, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00b4, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x021b, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80063fc8[] = {
|
|
{ 0x000e, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x000f, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0022, 0, 20, 0.5, 0, -1, -1 },
|
|
{ 0x00b0, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00b1, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x021c, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00b5, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800640a8[] = {
|
|
{ 0x0013, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0012, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00b9, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064118[] = {
|
|
{ 0x0011, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0010, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var8006416c[] = {
|
|
{ 0x000f, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x000e, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0022, 1, 20, 0.5, 0, -1, -1 },
|
|
{ 0x0190, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00b2, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00b3, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00b6, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x00b7, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064268[] = {
|
|
{ 0x0022, 0, 20, 0.5, 0, -1, -1 },
|
|
{ 0x0022, 1, 20, 0.5, 0, -1, -1 },
|
|
{ 0x001a, 0, 15, 0.5, 0, -1, -1 },
|
|
{ 0x001a, 1, 15, 0.5, 0, -1, -1 },
|
|
{ 0x0114, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0130, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var8006432c[] = {
|
|
{ 0x0022, 0, 20, 0.5, 0, -1, -1 },
|
|
{ 0x0022, 1, 20, 0.5, 0, -1, -1 },
|
|
{ 0x001a, 0, 15, 0.5, 0, -1, -1 },
|
|
{ 0x001a, 1, 15, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800643b8[] = {
|
|
{ 0x0337, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033c, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033b, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064428[] = {
|
|
{ 0x0337, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033c, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033b, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064498[] = {
|
|
{ 0x0337, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033c, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033b, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064508[] = {
|
|
{ 0x0337, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033c, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033b, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064578[] = {
|
|
{ 0x0337, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033c, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033b, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800645e8[] = {
|
|
{ 0x0337, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033c, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033b, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064658[] = {
|
|
{ 0x0336, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064690[] = {
|
|
{ 0x0339, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0338, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033a, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064700[] = {
|
|
{ 0x0336, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033d, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064754[] = {
|
|
{ 0x0336, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033d, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800647a8[] = {
|
|
{ 0x0336, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033d, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800647fc[] = {
|
|
{ 0x0336, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033d, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064850[] = {
|
|
{ 0x0336, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033d, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800648a4[] = {
|
|
{ 0x0336, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033d, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800648f8[] = {
|
|
{ 0x0336, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033d, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var8006494c[] = {
|
|
{ 0x0336, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033d, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800649a0[] = {
|
|
{ 0x0336, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x033d, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var800649f4[] = {
|
|
{ 0x038e, 0, -1, 1, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064a2c[] = {
|
|
{ 0x0390, 0, -1, 0.9, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064a64[] = {
|
|
{ 0x0390, 0, -1, 0.9, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064a9c[] = {
|
|
{ 0x038e, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064ad4[] = {
|
|
{ 0x0390, 1, -1, 0.9, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064b0c[] = {
|
|
{ 0x0390, 1, -1, 0.9, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064b44[] = {
|
|
{ 0x038c, 0, -1, 0.9, 0, -1, -1 },
|
|
{ 0x038c, 1, -1, 0.9, 0, -1, -1 },
|
|
{ 0x0341, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064bb4[] = {
|
|
{ 0x0341, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064bec[] = {
|
|
{ 0x0343, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064c24[] = {
|
|
{ 0x038b, 0, -1, 0.9, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064c5c[] = {
|
|
{ 0x038b, 0, -1, 0.9, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064c94[] = {
|
|
{ 0x0343, 1, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064ccc[] = {
|
|
{ 0x038b, 1, -1, 0.9, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064d04[] = {
|
|
{ 0x038b, 1, -1, 0.9, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064d3c[] = {
|
|
{ 0x038c, 0, -1, 0.9, 0, -1, -1 },
|
|
{ 0x038c, 1, -1, 0.9, 0, -1, -1 },
|
|
{ 0x0341, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064dac[] = {
|
|
{ 0x0343, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracethingdeep var80064de4[] = {
|
|
{ 0x0341, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
{ 0x0261, 0, -1, 0.5, 0, 149, 175 },
|
|
{ 0x0262, 0, -1, 0.5, 0, 115, 152 },
|
|
{ 0x0263, 0, -1, 0.5, 0, 115, 152 },
|
|
{ 0x0267, 0, -1, 0.5, 0, 115, 152 },
|
|
{ 0x0268, 0, -1, 0.5, 0, 83, 99 },
|
|
{ 0x022b, 0, -1, 0.5, 0, 0, 0 },
|
|
{ 0x022c, 0, -1, 0.5, 0, 0, 0 },
|
|
{ 0x022d, 0, -1, 0.5, 0, 0, 0 },
|
|
{ 0x022e, 0, -1, 0.5, 0, 0, 0 },
|
|
{ 0, 0, -1, 0.5, 0, -1, -1 },
|
|
};
|
|
|
|
struct somedruggedracething var80064f34[] = {
|
|
{ 0, NULL, NULL, 0, 0 },
|
|
{ 1, var80062cc0, var800639fc, 0, 0 },
|
|
{ 2, var80062cf8, var80063a50, 0, 0 },
|
|
{ 3, var80062d30, var80063adc, 0, 0 },
|
|
{ 4, var80062dbc, var80063b68, 0, 0 },
|
|
{ 5, var80062df4, var80063bd8, 0, 0 },
|
|
{ 6, var80062e2c, var80063c48, 0, 0 },
|
|
{ 7, var80062eb8, var80063cd4, 0, 0 },
|
|
{ 8, var800630cc, var80063dd0, 0, 0 },
|
|
{ 9, var80063388, var80063ecc, 0, 0 },
|
|
{ 10, var800633c0, var80063f3c, 0, 0 },
|
|
{ 11, var800633f8, var80063fc8, 0, 0 },
|
|
{ 12, var8006344c, var800640a8, 0, 0 },
|
|
{ 13, var80063484, var80064118, 0, 0 },
|
|
{ 14, var800634bc, var8006416c, 0, 0 },
|
|
{ 15, var80063510, var80064268, 0, 0 },
|
|
{ 100, var800637cc, var8006432c, 0, 0 },
|
|
{ 110, NULL, NULL, 0, 0 },
|
|
{ -1, NULL, NULL, 0, 0 },
|
|
};
|
|
|
|
struct somedruggedracething var800650b0[] = {
|
|
{ 0, NULL, NULL, 0, 0 },
|
|
{ 1, var800643b8, var800649f4, 0, 0 },
|
|
{ 2, var80064428, var80064a2c, 0, 0 },
|
|
{ 3, var80064498, var80064a64, 0, 0 },
|
|
{ 4, var80064508, var80064a9c, 0, 0 },
|
|
{ 5, var80064578, var80064ad4, 0, 0 },
|
|
{ 6, var800645e8, var80064b0c, 0, 0 },
|
|
{ 7, var80064658, var80064b44, 0, 0 },
|
|
{ 8, var80064690, var80064bb4, 0, 0 },
|
|
{ 9, var80064700, var80064bec, 0, 0 },
|
|
{ 10, var80064754, var80064c24, 0, 0 },
|
|
{ 11, var800647a8, var80064c5c, 0, 0 },
|
|
{ 12, var800647fc, var80064c94, 0, 0 },
|
|
{ 13, var80064850, var80064ccc, 0, 0 },
|
|
{ 14, var800648a4, var80064d04, 0, 0 },
|
|
{ 15, var800648f8, var80064d3c, 0, 0 },
|
|
{ 100, var8006494c, var80064dac, 0, 0 },
|
|
{ 110, var80064690, var80064bb4, 0, 0 },
|
|
{ 16, var800649a0, var80064de4, 0, 0 },
|
|
{ -1, NULL, NULL, 0, 0 },
|
|
};
|
|
|
|
struct somedruggedracething var80065240[] = {
|
|
{ 0, NULL, NULL, 0, 0 },
|
|
{ -1, NULL, NULL, 0, 0 },
|
|
};
|
|
|
|
struct somedruggedracething var80065268[] = {
|
|
{ 0, NULL, NULL, 0, 0 },
|
|
{ -1, NULL, NULL, 0, 0 },
|
|
};
|
|
|
|
struct somedruggedracething var80065290[] = {
|
|
{ 0, NULL, NULL, 0, 0 },
|
|
{ -1, NULL, NULL, 0, 0 },
|
|
};
|
|
|
|
struct somedruggedracething *var800652b8[NUM_RACES] = {
|
|
var80064f34,
|
|
var800650b0,
|
|
var80065240,
|
|
var80065268,
|
|
var80065290,
|
|
};
|
|
|
|
u32 var800652cc = 0x00820000;
|
|
u32 var800652d0 = 0x00000000;
|
|
u32 var800652d4 = 0x3f000000;
|
|
u32 var800652d8 = 0x41100000;
|
|
u32 var800652dc = 0x41e80000;
|
|
u32 var800652e0 = 0xbf800000;
|
|
u32 var800652e4 = 0x00820000;
|
|
u32 var800652e8 = 0x00000001;
|
|
u32 var800652ec = 0x3f000000;
|
|
u32 var800652f0 = 0x41100000;
|
|
u32 var800652f4 = 0x41e80000;
|
|
u32 var800652f8 = 0xbf800000;
|
|
u32 var800652fc = 0x008a0000;
|
|
u32 var80065300 = 0x00000000;
|
|
u32 var80065304 = 0x3f000000;
|
|
u32 var80065308 = 0x41300000;
|
|
u32 var8006530c = 0x41f80000;
|
|
u32 var80065310 = 0xbf800000;
|
|
u32 var80065314 = 0x008a0000;
|
|
u32 var80065318 = 0x00000001;
|
|
u32 var8006531c = 0x3f000000;
|
|
u32 var80065320 = 0x41300000;
|
|
u32 var80065324 = 0x41f80000;
|
|
u32 var80065328 = 0xbf800000;
|
|
u32 var8006532c = 0x00890000;
|
|
u32 var80065330 = 0x00000000;
|
|
u32 var80065334 = 0x3f000000;
|
|
u32 var80065338 = 0x40c00000;
|
|
u32 var8006533c = 0x41d80000;
|
|
u32 var80065340 = 0xbf800000;
|
|
u32 var80065344 = 0x00890000;
|
|
u32 var80065348 = 0x00000001;
|
|
u32 var8006534c = 0x3f000000;
|
|
u32 var80065350 = 0x40c00000;
|
|
u32 var80065354 = 0x41d80000;
|
|
u32 var80065358 = 0xbf800000;
|
|
u32 var8006535c = 0x008c0000;
|
|
u32 var80065360 = 0x00000000;
|
|
u32 var80065364 = 0x3f000000;
|
|
u32 var80065368 = 0x41e80000;
|
|
u32 var8006536c = 0x42400000;
|
|
u32 var80065370 = 0xbf800000;
|
|
u32 var80065374 = 0x008c0000;
|
|
u32 var80065378 = 0x00000001;
|
|
u32 var8006537c = 0x3f000000;
|
|
u32 var80065380 = 0x41e80000;
|
|
u32 var80065384 = 0x42400000;
|
|
u32 var80065388 = 0xbf800000;
|
|
u32 var8006538c = 0x008d0000;
|
|
u32 var80065390 = 0x00000000;
|
|
u32 var80065394 = 0x3f000000;
|
|
u32 var80065398 = 0x41e80000;
|
|
u32 var8006539c = 0x42440000;
|
|
u32 var800653a0 = 0xbf800000;
|
|
u32 var800653a4 = 0x008d0000;
|
|
u32 var800653a8 = 0x00000001;
|
|
u32 var800653ac = 0x3f000000;
|
|
u32 var800653b0 = 0x41e80000;
|
|
u32 var800653b4 = 0x42440000;
|
|
u32 var800653b8 = 0xbf800000;
|
|
u32 var800653bc = 0x008e0000;
|
|
u32 var800653c0 = 0x00000000;
|
|
u32 var800653c4 = 0x3f000000;
|
|
u32 var800653c8 = 0x41980000;
|
|
u32 var800653cc = 0x42280000;
|
|
u32 var800653d0 = 0xbf800000;
|
|
u32 var800653d4 = 0x008e0000;
|
|
u32 var800653d8 = 0x00000001;
|
|
u32 var800653dc = 0x3f000000;
|
|
u32 var800653e0 = 0x41980000;
|
|
u32 var800653e4 = 0x42280000;
|
|
u32 var800653e8 = 0xbf800000;
|
|
u32 var800653ec = 0x00860000;
|
|
u32 var800653f0 = 0x00000000;
|
|
u32 var800653f4 = 0x3f000000;
|
|
u32 var800653f8 = 0x00000000;
|
|
u32 var800653fc = 0x42700000;
|
|
u32 var80065400 = 0xbf800000;
|
|
u32 var80065404 = 0x00860000;
|
|
u32 var80065408 = 0x00000001;
|
|
u32 var8006540c = 0x3f000000;
|
|
u32 var80065410 = 0x00000000;
|
|
u32 var80065414 = 0x42700000;
|
|
u32 var80065418 = 0xbf800000;
|
|
u32 var8006541c = 0x00870000;
|
|
u32 var80065420 = 0x00000000;
|
|
u32 var80065424 = 0x3f000000;
|
|
u32 var80065428 = 0x40c00000;
|
|
u32 var8006542c = 0x41e80000;
|
|
u32 var80065430 = 0xbf800000;
|
|
u32 var80065434 = 0x00870000;
|
|
u32 var80065438 = 0x00000001;
|
|
u32 var8006543c = 0x3f000000;
|
|
u32 var80065440 = 0x40c00000;
|
|
u32 var80065444 = 0x41e80000;
|
|
u32 var80065448 = 0xbf800000;
|
|
u32 var8006544c = 0x00840000;
|
|
u32 var80065450 = 0x00000000;
|
|
u32 var80065454 = 0x3f000000;
|
|
u32 var80065458 = 0x41000000;
|
|
u32 var8006545c = 0x41c80000;
|
|
u32 var80065460 = 0xbf800000;
|
|
u32 var80065464 = 0x00840000;
|
|
u32 var80065468 = 0x00000001;
|
|
u32 var8006546c = 0x3f000000;
|
|
u32 var80065470 = 0x41000000;
|
|
u32 var80065474 = 0x41c80000;
|
|
u32 var80065478 = 0xbf800000;
|
|
u32 var8006547c = 0x00850000;
|
|
u32 var80065480 = 0x00000000;
|
|
u32 var80065484 = 0x3f000000;
|
|
u32 var80065488 = 0x41000000;
|
|
u32 var8006548c = 0x41c80000;
|
|
u32 var80065490 = 0xbf800000;
|
|
u32 var80065494 = 0x00850000;
|
|
u32 var80065498 = 0x00000001;
|
|
u32 var8006549c = 0x3f000000;
|
|
u32 var800654a0 = 0x41000000;
|
|
u32 var800654a4 = 0x41c80000;
|
|
u32 var800654a8 = 0xbf800000;
|
|
u32 var800654ac = 0x00880000;
|
|
u32 var800654b0 = 0x00000000;
|
|
u32 var800654b4 = 0x3f000000;
|
|
u32 var800654b8 = 0x41400000;
|
|
u32 var800654bc = 0x41e80000;
|
|
u32 var800654c0 = 0xbf800000;
|
|
u32 var800654c4 = 0x00880000;
|
|
u32 var800654c8 = 0x00000001;
|
|
u32 var800654cc = 0x3f000000;
|
|
u32 var800654d0 = 0x41400000;
|
|
u32 var800654d4 = 0x41e80000;
|
|
u32 var800654d8 = 0xbf800000;
|
|
u32 var800654dc = 0x008b0000;
|
|
u32 var800654e0 = 0x00000000;
|
|
u32 var800654e4 = 0x3f000000;
|
|
u32 var800654e8 = 0x41b00000;
|
|
u32 var800654ec = 0x42240000;
|
|
u32 var800654f0 = 0xbf800000;
|
|
u32 var800654f4 = 0x008b0000;
|
|
u32 var800654f8 = 0x00000001;
|
|
u32 var800654fc = 0x3f000000;
|
|
u32 var80065500 = 0x41b00000;
|
|
u32 var80065504 = 0x42240000;
|
|
u32 var80065508 = 0xbf800000;
|
|
u32 var8006550c = 0x00000000;
|
|
u32 var80065510 = 0x00000000;
|
|
u32 var80065514 = 0x3f000000;
|
|
u32 var80065518 = 0x00000000;
|
|
u32 var8006551c = 0x00000000;
|
|
u32 var80065520 = 0xbf800000;
|
|
u32 var80065524 = 0x00010203;
|
|
u32 var80065528 = 0x04050000;
|
|
u32 var8006552c = 0x07090b00;
|
|
u32 var80065530 = 0x06080a00;
|
|
u32 var80065534 = 0x0c0f0000;
|
|
u32 var80065538 = 0x0d0e0000;
|
|
u32 var8006553c = 0x12131415;
|
|
u32 var80065540 = 0x10160000;
|
|
u32 var80065544 = 0x11170000;
|
|
u32 var80065548 = 0x033f0000;
|
|
u32 var8006554c = 0x00000000;
|
|
u32 var80065550 = 0x3f000000;
|
|
u32 var80065554 = 0x00000000;
|
|
u32 var80065558 = 0xbf800000;
|
|
u32 var8006555c = 0xbf800000;
|
|
u32 var80065560 = 0x033f0000;
|
|
u32 var80065564 = 0x00000000;
|
|
u32 var80065568 = 0x3f000000;
|
|
u32 var8006556c = 0x00000000;
|
|
u32 var80065570 = 0xbf800000;
|
|
u32 var80065574 = 0xbf800000;
|
|
u32 var80065578 = 0x033f0000;
|
|
u32 var8006557c = 0x00000000;
|
|
u32 var80065580 = 0x3f000000;
|
|
u32 var80065584 = 0x00000000;
|
|
u32 var80065588 = 0xbf800000;
|
|
u32 var8006558c = 0xbf800000;
|
|
u32 var80065590 = 0x033f0000;
|
|
u32 var80065594 = 0x00000000;
|
|
u32 var80065598 = 0x3f000000;
|
|
u32 var8006559c = 0x00000000;
|
|
u32 var800655a0 = 0xbf800000;
|
|
u32 var800655a4 = 0xbf800000;
|
|
u32 var800655a8 = 0x033f0000;
|
|
u32 var800655ac = 0x00000000;
|
|
u32 var800655b0 = 0x3f000000;
|
|
u32 var800655b4 = 0x00000000;
|
|
u32 var800655b8 = 0xbf800000;
|
|
u32 var800655bc = 0xbf800000;
|
|
u32 var800655c0 = 0x033f0000;
|
|
u32 var800655c4 = 0x00000000;
|
|
u32 var800655c8 = 0x3f000000;
|
|
u32 var800655cc = 0x00000000;
|
|
u32 var800655d0 = 0xbf800000;
|
|
u32 var800655d4 = 0xbf800000;
|
|
u32 var800655d8 = 0x033f0000;
|
|
u32 var800655dc = 0x00000000;
|
|
u32 var800655e0 = 0x3f000000;
|
|
u32 var800655e4 = 0x00000000;
|
|
u32 var800655e8 = 0xbf800000;
|
|
u32 var800655ec = 0xbf800000;
|
|
u32 var800655f0 = 0x033f0000;
|
|
u32 var800655f4 = 0x00000000;
|
|
u32 var800655f8 = 0x3f000000;
|
|
u32 var800655fc = 0x00000000;
|
|
u32 var80065600 = 0xbf800000;
|
|
u32 var80065604 = 0xbf800000;
|
|
u32 var80065608 = 0x00000000;
|
|
u32 var8006560c = 0x00000000;
|
|
u32 var80065610 = 0x3f000000;
|
|
u32 var80065614 = 0x00000000;
|
|
u32 var80065618 = 0x00000000;
|
|
u32 var8006561c = 0xbf800000;
|
|
u32 var80065620 = 0x00000000;
|
|
u32 var80065624 = 0x01000000;
|
|
u32 var80065628 = 0x02000000;
|
|
u32 var8006562c = 0x03000000;
|
|
u32 var80065630 = 0x04000000;
|
|
u32 var80065634 = 0x07000000;
|
|
u32 var80065638 = 0x05000000;
|
|
u32 var8006563c = 0x06000000;
|
|
u32 var80065640 = (u32) &var80065524;
|
|
u32 var80065644 = 0x00000006;
|
|
u32 var80065648 = (u32) &var8006552c;
|
|
u32 var8006564c = 0x00000003;
|
|
u32 var80065650 = (u32) &var80065534;
|
|
u32 var80065654 = 0x00000003;
|
|
u32 var80065658 = (u32) &var80065540;
|
|
u32 var8006565c = 0x00000002;
|
|
u32 var80065660 = (u32) &var8006553c;
|
|
u32 var80065664 = 0x00000004;
|
|
u32 var80065668 = (u32) &var80065544;
|
|
u32 var8006566c = 0x00000002;
|
|
u32 var80065670 = (u32) &var80065538;
|
|
u32 var80065674 = 0x00000003;
|
|
u32 var80065678 = (u32) &var80065530;
|
|
u32 var8006567c = 0x00000003;
|
|
u32 var80065680 = (u32) &var80065620;
|
|
u32 var80065684 = 0x00000001;
|
|
u32 var80065688 = (u32) &var80065624;
|
|
u32 var8006568c = 0x00000001;
|
|
u32 var80065690 = (u32) &var8006562c;
|
|
u32 var80065694 = 0x00000001;
|
|
u32 var80065698 = (u32) &var80065638;
|
|
u32 var8006569c = 0x00000001;
|
|
u32 var800656a0 = (u32) &var80065634;
|
|
u32 var800656a4 = 0x00000001;
|
|
u32 var800656a8 = (u32) &var8006563c;
|
|
u32 var800656ac = 0x00000001;
|
|
u32 var800656b0 = (u32) &var80065630;
|
|
u32 var800656b4 = 0x00000001;
|
|
u32 var800656b8 = (u32) &var80065628;
|
|
u32 var800656bc = 0x00000001;
|
|
|
|
struct animfloats var800656c0[] = {
|
|
{ 0x0002, 28, 0, 0, 0, -1, 23, 54, -1, -1, 18, 54, 0.87252569198608, -0.52351540327072, 1.0470308065414, -0.34901028871536, 1.6000000238419, 1.7999999523163 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80065750 = { var800656c0, 0xffffffff };
|
|
|
|
struct animfloats var80065758[] = {
|
|
{ 0x0032, 37, 0, 0, 0, -1, 30, 81, -1, -1, 25, 81, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.69802057743073, 1.6000000238419, 1.75 },
|
|
{ 0x0003, 27, 0, 0, 0, -1, 22, 61, -1, -1, 17, 61, 0.87252569198608, -0.26175770163536, 0.69802057743073, -0.69802057743073, 2, 1 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80065830 = { var80065758, 0xffffffff };
|
|
|
|
struct animfloats var80065838[] = {
|
|
{ 0x0032, 37, 0, 0, 0, -1, 30, 81, -1, -1, 25, 81, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.69802057743073, 1.6000000238419, 1.75 },
|
|
{ 0x0003, 27, 0, 0, 0, -1, 22, 61, -1, -1, 17, 61, 0.87252569198608, -0.26175770163536, 0.69802057743073, -0.69802057743073, 2, 1 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80065910 = { var80065838, 0xffffffff };
|
|
|
|
struct animfloats var80065918[] = {
|
|
{ 0x0004, 19, 0, 1.5707963705063, 0, -1, 19, 61, -1, -1, 14, 61, 0.87252569198608, -0.34901028871536, 0.43626284599304, -1.0470308065414, 2.5, 2.5 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var800659a8 = { var80065918, 0xffffffff };
|
|
|
|
struct animfloats var800659b0[] = {
|
|
{ 0x0006, 27, 0, 0, 0, -1, 39, 74, -1, -1, 34, 74, 0.87252569198608, -0.69802057743073, 0.7852731347084, -0.69802057743073, 1.5, 1.5 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80065a40 = { var800659b0, 0xffffffff };
|
|
|
|
struct animfloats var80065a48[] = {
|
|
{ 0x034a, 20, 0, 0, 0, -1, 25, 50, -1, -1, 10, 50, 0.34901028871536, -0.34901028871536, 0.52351540327072, -0.52351540327072, 1, 1 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80065ad8 = { var80065a48, 0xffffffff };
|
|
|
|
struct var80065750 *var80065ae0[][32] = {
|
|
{
|
|
// RACE_HUMAN
|
|
&var80065750, &var80065830, &var80065830, &var80065830,
|
|
&var80065830, &var80065830, &var80065830, &var80065830,
|
|
&var80065830, &var80065830, &var800659a8, &var800659a8,
|
|
&var800659a8, &var800659a8, &var800659a8, &var800659a8,
|
|
&var80065a40, &var80065a40, &var80065a40, &var80065a40,
|
|
&var80065a40, &var80065a40, &var80065910, &var80065910,
|
|
&var80065910, &var80065910, &var80065910, &var80065910,
|
|
&var80065910, &var80065910, &var80065910, &var80065750,
|
|
}, {
|
|
// RACE_SKEDAR
|
|
&var80065ad8, &var80065ad8, &var80065ad8, &var80065ad8,
|
|
&var80065ad8, &var80065ad8, &var80065ad8, &var80065ad8,
|
|
&var80065ad8, &var80065ad8, &var80065ad8, &var80065ad8,
|
|
&var80065ad8, &var80065ad8, &var80065ad8, &var80065ad8,
|
|
&var80065ad8, &var80065ad8, &var80065ad8, &var80065ad8,
|
|
&var80065ad8, &var80065ad8, &var80065ad8, &var80065ad8,
|
|
&var80065ad8, &var80065ad8, &var80065ad8, &var80065ad8,
|
|
&var80065ad8, &var80065ad8, &var80065ad8, &var80065ad8,
|
|
},
|
|
};
|
|
|
|
struct animfloats var80065be0[] = {
|
|
{ 0x0041, 26, 0, 0, 12, 140, 58, 92, 60, 79, 20, 120, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.69802057743073, 0, 0 },
|
|
{ 0x0044, 0, 0, 0, 17, 100, 25, 87, 30, 55, 20, 93, 0.87252569198608, -0.69802057743073, 0.69802057743073, -1.0470308065414, 0, 0 },
|
|
{ 0x0045, 0, 0, 0, 12, 64, 19, 51, 24, 46, 14, 58, 0.87252569198608, -0.69802057743073, 0.52351540327072, -0.7852731347084, 0, 0 },
|
|
{ 0x0046, 22, 0, 0, 4, 69, 22, 49, 22, 33, 8, 58, 0.87252569198608, -0.69802057743073, 0.43626284599304, -0.7852731347084, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80065d48 = { var80065be0, 0xffffffff };
|
|
|
|
struct animfloats var80065d50[] = {
|
|
{ 0x0041, 26, 0, 0, 12, 140, 58, 92, 60, 79, 20, 120, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.69802057743073, 0, 0 },
|
|
{ 0x0046, 22, 0, 0, 4, 69, 22, 49, 22, 33, 8, 58, 0.87252569198608, -0.69802057743073, 0.43626284599304, -0.7852731347084, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80065e28 = { var80065d50, 0xffffffff };
|
|
|
|
struct animfloats var80065e30[] = {
|
|
{ 0x0041, 26, 0, 0, 12, 140, 58, 92, 60, 79, 20, 120, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.69802057743073, 0, 0 },
|
|
{ 0x0046, 22, 0, 0, 4, 69, 22, 49, 22, 33, 8, 58, 0.87252569198608, -0.69802057743073, 0.43626284599304, -0.7852731347084, 0, 0 },
|
|
{ 0x0049, 0, 0, 1.5707963705063, 7, 130, 45, 93, 56, 73, 26, 107, 0.87252569198608, -0.69802057743073, 0.34901028871536, -0.52351540327072, 0, 0 },
|
|
{ 0x004a, 15, 0, 1.5707963705063, 5, 76, 20, 31, 31, 38, 15, 49, 0.87252569198608, -0.69802057743073, 0.52351540327072, -1.0470308065414, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80065f98 = { var80065e30, 0xffffffff };
|
|
|
|
struct animfloats var80065fa0[] = {
|
|
{ 0x0041, 26, 0, 0, 12, 140, 58, 92, 60, 79, 20, 120, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.69802057743073, 0, 0 },
|
|
{ 0x0046, 22, 0, 0, 4, 69, 22, 49, 22, 33, 8, 58, 0.87252569198608, -0.69802057743073, 0.43626284599304, -0.7852731347084, 0, 0 },
|
|
{ 0x0047, 0, 0, 4.7123889923096, 7, 139, 54, 105, 61, 88, 26, 120, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.61076802015305, 0, 0 },
|
|
{ 0x0048, 19, 0, 4.7123889923096, 4, 79, 21, 50, 26, 42, 10, 64, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.61076802015305, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80066108 = { var80065fa0, 0xffffffff };
|
|
|
|
struct animfloats var80066110[] = {
|
|
{ 0x004a, 19, 0, 1.5707963705063, 5, 76, 20, 31, 31, 38, 15, 49, 0.87252569198608, -0.69802057743073, 0.52351540327072, -1.0470308065414, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var800661a0 = { var80066110, 0xffffffff };
|
|
|
|
struct animfloats var800661a8[] = {
|
|
{ 0x0048, 19, 0, 4.7123889923096, 4, 79, 21, 50, 26, 42, 10, 64, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.61076802015305, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80066238 = { var800661a8, 0xffffffff };
|
|
|
|
struct animfloats var80066240[] = {
|
|
{ 0x034a, 20, 0, 0, 0, -1, 25, 50, -1, -1, 10, 50, 0.34901028871536, -0.34901028871536, 0.52351540327072, -0.52351540327072, 1, 1 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var800662d0 = { var80066240, 0xffffffff };
|
|
|
|
struct var80065750 *var800662d8[][32] = {
|
|
{
|
|
// RACE_HUMAN
|
|
&var80065d48, &var80065d48, &var80065e28, &var80065e28,
|
|
&var80065e28, &var80065f98, &var80065f98, &var80065f98,
|
|
&var80065f98, &var80065f98, &var800661a0, &var800661a0,
|
|
&var800661a0, &var800661a0, &var800661a0, &var800661a0,
|
|
&var80066238, &var80066238, &var80066238, &var80066238,
|
|
&var80066238, &var80066238, &var80066108, &var80066108,
|
|
&var80066108, &var80066108, &var80066108, &var80065e28,
|
|
&var80065e28, &var80065e28, &var80065d48, &var80065d48,
|
|
}, {
|
|
// RACE_SKEDAR
|
|
&var800662d0, &var800662d0, &var800662d0, &var800662d0,
|
|
&var800662d0, &var800662d0, &var800662d0, &var800662d0,
|
|
&var800662d0, &var800662d0, &var800662d0, &var800662d0,
|
|
&var800662d0, &var800662d0, &var800662d0, &var800662d0,
|
|
&var800662d0, &var800662d0, &var800662d0, &var800662d0,
|
|
&var800662d0, &var800662d0, &var800662d0, &var800662d0,
|
|
&var800662d0, &var800662d0, &var800662d0, &var800662d0,
|
|
&var800662d0, &var800662d0, &var800662d0, &var800662d0,
|
|
},
|
|
};
|
|
|
|
|
|
struct animfloats var800663d8[] = {
|
|
{ 0x007a, 26, 0, 0, 7, 92, 28, 68, -1, -1, 11, 73, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.69802057743073, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80066468 = { var800663d8, 0xffffffff };
|
|
|
|
struct animfloats var80066470[] = {
|
|
{ 0x007b, 26, 0, 1.5707963705063, 9, 112, 38, 87, -1, -1, 19, 98, 0.87252569198608, -0.69802057743073, 0.43626284599304, -0.43626284599304, 0, 0 },
|
|
{ 0x007d, 25, 0, 1.5707963705063, 10, 112, 32, 86, -1, -1, 19, 97, 0.87252569198608, -0.69802057743073, 0.43626284599304, -0.43626284599304, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80066548 = { var80066470, 0xffffffff };
|
|
|
|
struct animfloats var80066550[] = {
|
|
{ 0x007c, 39, 0, 4.7123889923096, 22, 127, 44, 102, -1, -1, 28, 112, 0.87252569198608, -0.69802057743073, 0.43626284599304, -0.43626284599304, 0, 0 },
|
|
{ 0x007e, 39, 0, 4.7123889923096, 23, 130, 46, 100, -1, -1, 30, 110, 0.87252569198608, -0.69802057743073, 0.43626284599304, -0.43626284599304, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80066628 = { var80066550, 0xffffffff };
|
|
|
|
struct animfloats var80066630[] = {
|
|
{ 0x034a, 20, 0, 0, 0, -1, 25, 50, -1, -1, 10, 50, 0.34901028871536, -0.34901028871536, 0.52351540327072, -0.52351540327072, 1, 1 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var800666c0 = { var80066630, 0xffffffff };
|
|
|
|
u32 var800666c8 = (u32) &var80066468;
|
|
u32 var800666cc = (u32) &var80066468;
|
|
u32 var800666d0 = (u32) &var80066468;
|
|
u32 var800666d4 = (u32) &var80066468;
|
|
u32 var800666d8 = (u32) &var80066468;
|
|
u32 var800666dc = (u32) &var80066548;
|
|
u32 var800666e0 = (u32) &var80066548;
|
|
u32 var800666e4 = (u32) &var80066548;
|
|
u32 var800666e8 = (u32) &var80066548;
|
|
u32 var800666ec = (u32) &var80066548;
|
|
u32 var800666f0 = (u32) &var80066548;
|
|
u32 var800666f4 = (u32) &var80066548;
|
|
u32 var800666f8 = (u32) &var80066548;
|
|
u32 var800666fc = (u32) &var80066548;
|
|
u32 var80066700 = (u32) &var80066548;
|
|
u32 var80066704 = (u32) &var80066548;
|
|
u32 var80066708 = (u32) &var80066628;
|
|
u32 var8006670c = (u32) &var80066628;
|
|
u32 var80066710 = (u32) &var80066628;
|
|
u32 var80066714 = (u32) &var80066628;
|
|
u32 var80066718 = (u32) &var80066628;
|
|
u32 var8006671c = (u32) &var80066628;
|
|
u32 var80066720 = (u32) &var80066628;
|
|
u32 var80066724 = (u32) &var80066628;
|
|
u32 var80066728 = (u32) &var80066628;
|
|
u32 var8006672c = (u32) &var80066628;
|
|
u32 var80066730 = (u32) &var80066628;
|
|
u32 var80066734 = (u32) &var80066468;
|
|
u32 var80066738 = (u32) &var80066468;
|
|
u32 var8006673c = (u32) &var80066468;
|
|
u32 var80066740 = (u32) &var80066468;
|
|
u32 var80066744 = (u32) &var80066468;
|
|
u32 var80066748 = (u32) &var800666c0;
|
|
u32 var8006674c = (u32) &var800666c0;
|
|
u32 var80066750 = (u32) &var800666c0;
|
|
u32 var80066754 = (u32) &var800666c0;
|
|
u32 var80066758 = (u32) &var800666c0;
|
|
u32 var8006675c = (u32) &var800666c0;
|
|
u32 var80066760 = (u32) &var800666c0;
|
|
u32 var80066764 = (u32) &var800666c0;
|
|
u32 var80066768 = (u32) &var800666c0;
|
|
u32 var8006676c = (u32) &var800666c0;
|
|
u32 var80066770 = (u32) &var800666c0;
|
|
u32 var80066774 = (u32) &var800666c0;
|
|
u32 var80066778 = (u32) &var800666c0;
|
|
u32 var8006677c = (u32) &var800666c0;
|
|
u32 var80066780 = (u32) &var800666c0;
|
|
u32 var80066784 = (u32) &var800666c0;
|
|
u32 var80066788 = (u32) &var800666c0;
|
|
u32 var8006678c = (u32) &var800666c0;
|
|
u32 var80066790 = (u32) &var800666c0;
|
|
u32 var80066794 = (u32) &var800666c0;
|
|
u32 var80066798 = (u32) &var800666c0;
|
|
u32 var8006679c = (u32) &var800666c0;
|
|
u32 var800667a0 = (u32) &var800666c0;
|
|
u32 var800667a4 = (u32) &var800666c0;
|
|
u32 var800667a8 = (u32) &var800666c0;
|
|
u32 var800667ac = (u32) &var800666c0;
|
|
u32 var800667b0 = (u32) &var800666c0;
|
|
u32 var800667b4 = (u32) &var800666c0;
|
|
u32 var800667b8 = (u32) &var800666c0;
|
|
u32 var800667bc = (u32) &var800666c0;
|
|
u32 var800667c0 = (u32) &var800666c0;
|
|
u32 var800667c4 = (u32) &var800666c0;
|
|
|
|
struct animfloats var800667c8[] = {
|
|
{ 0x0007, 27, 0, 0, 0, -1, 35, 75, -1, -1, 31, 75, 0.87252569198608, -0.69802057743073, 0.90742671489716, -0.69802057743073, 1.5, 1.5 },
|
|
{ 0x0008, 24, 0, 0, 0, -1, 46, 98, -1, -1, 41, 98, 0.87252569198608, -0.52351540327072, 1.1342834234238, -0.69802057743073, 1.6000000238419, 1.6000000238419 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var800668a0 = { var800667c8, 0xffffffff };
|
|
|
|
struct animfloats var800668a8[] = {
|
|
{ 0x0009, 26, 0, 0, 0, -1, 34, 87, -1, -1, 29, 87, 0.87252569198608, -0.52351540327072, 0.69802057743073, -0.95977824926376, 1.6000000238419, 2 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80066938 = { var800668a8, 0xffffffff };
|
|
|
|
struct animfloats var80066940[] = {
|
|
{ 0x000a, 28, 0, 0, 0, -1, 36, 88, -1, -1, 31, 88, 0.87252569198608, -0.69802057743073, 0.87252569198608, -0.43626284599304, 1.6000000238419, 1.5 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var800669d0 = { var80066940, 0xffffffff };
|
|
|
|
struct animfloats var800669d8[] = {
|
|
{ 0x034a, 20, 0, 0, 0, -1, 25, 50, -1, -1, 10, 50, 0.34901028871536, -0.34901028871536, 0.52351540327072, -0.52351540327072, 1, 1 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80066a68 = { var800669d8, 0xffffffff };
|
|
|
|
struct var80065750 *var80066a70[][32] = {
|
|
{
|
|
&var800668a0, &var800668a0, &var800668a0, &var800668a0,
|
|
&var800668a0, &var800668a0, &var800668a0, &var800668a0,
|
|
&var800668a0, &var800668a0, &var80066938, &var80066938,
|
|
&var80066938, &var80066938, &var80066938, &var80066938,
|
|
&var800669d0, &var800669d0, &var800669d0, &var800669d0,
|
|
&var800669d0, &var800669d0, &var800668a0, &var800668a0,
|
|
&var800668a0, &var800668a0, &var800668a0, &var800668a0,
|
|
&var800668a0, &var800668a0, &var800668a0, &var800668a0,
|
|
}, {
|
|
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
|
|
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
|
|
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
|
|
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
|
|
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
|
|
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
|
|
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
|
|
&var80066a68, &var80066a68, &var80066a68, &var80066a68,
|
|
},
|
|
};
|
|
|
|
struct animfloats var80066b70[] = {
|
|
{ 0x004b, 25, 0, 0, 12, 132, 55, 87, 67, 87, 26, 111, 0.87252569198608, -0.69802057743073, 0.61076802015305, -0.7852731347084, 0, 0 },
|
|
{ 0x004c, 26, 0, 0, 8, 89, 31, 63, 41, 51, 21, 80, 0.87252569198608, -0.69802057743073, 0.34901028871536, -1.1342834234238, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80066c48 = { var80066b70, 0xffffffff };
|
|
|
|
struct animfloats var80066c50[] = {
|
|
{ 0x004f, 47, 0, 1.5707963705063, 7, 128, 33, 86, 47, 74, 23, 106, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.7852731347084, 0, 0 },
|
|
{ 0x0050, 18, 0, 1.5707963705063, 7, 78, 28, 52, 35, 45, 15, 66, 0.87252569198608, -0.087252572178841, 0.69802057743073, -0.7852731347084, 1.5, 1 },
|
|
{ 0x0051, 20, 0, 1.5707963705063, 13, 92, 37, 67, 42, 55, 25, 84, 0.87252569198608, -0.52351540327072, 0.34901028871536, -0.69802057743073, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80066d70 = { var80066c50, 0xffffffff };
|
|
|
|
struct animfloats var80066d78[] = {
|
|
{ 0x004d, 28, 0, 4.7123889923096, 15, 124, 38, 97, 60, 84, 20, 106, 0.87252569198608, -0.69802057743073, 0.52351540327072, -0.87252569198608, 0, 0 },
|
|
{ 0x004e, 23, 0, 4.7123889923096, 0, 85, 32, 38, 38, 60, 14, 71, 0.87252569198608, -0.69802057743073, 0.61076802015305, -0.95977824926376, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80066e50 = { var80066d78, 0xffffffff };
|
|
|
|
struct animfloats var80066e58[] = {
|
|
{ 0x034a, 20, 0, 0, 0, -1, 25, 50, -1, -1, 10, 50, 0.34901028871536, -0.34901028871536, 0.52351540327072, -0.52351540327072, 1, 1 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80066ee8 = { var80066e58, 0xffffffff };
|
|
|
|
struct var80065750 *var80066ef0[][32] = {
|
|
{
|
|
&var80066c48, &var80066c48, &var80066c48, &var80066c48,
|
|
&var80066c48, &var80066c48, &var80066c48, &var80066c48,
|
|
&var80066c48, &var80066c48, &var80066d70, &var80066d70,
|
|
&var80066d70, &var80066d70, &var80066d70, &var80066d70,
|
|
&var80066e50, &var80066e50, &var80066e50, &var80066e50,
|
|
&var80066e50, &var80066e50, &var80066c48, &var80066c48,
|
|
&var80066c48, &var80066c48, &var80066c48, &var80066c48,
|
|
&var80066c48, &var80066c48, &var80066c48, &var80066c48,
|
|
}, {
|
|
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
|
|
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
|
|
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
|
|
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
|
|
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
|
|
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
|
|
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
|
|
&var80066ee8, &var80066ee8, &var80066ee8, &var80066ee8,
|
|
},
|
|
};
|
|
|
|
struct animfloats var80066ff0[] = {
|
|
{ 0x0074, 22, 0, 0, 10, 111, 34, 87, -1, -1, 17, 104, 0.87252569198608, -0.69802057743073, 0.61076802015305, -0.7852731347084, 0, 0 },
|
|
{ 0x0077, 25, 0, 0, 9, 92, 33, 62, -1, -1, 18, 69, 0.87252569198608, -0.69802057743073, 0.61076802015305, -0.7852731347084, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var800670c8 = { var80066ff0, 0xffffffff };
|
|
|
|
struct animfloats var800670d0[] = {
|
|
{ 0x0075, 28, 0, 1.5707963705063, 15, 108, 34, 73, -1, -1, 17, 93, 0.87252569198608, -0.69802057743073, 0.52351540327072, -0.7852731347084, 0, 0 },
|
|
{ 0x0078, 19, 0, 1.5707963705063, 3, 95, 30, 64, -1, -1, 14, 71, 0.87252569198608, -0.69802057743073, 0.52351540327072, -0.7852731347084, 1.5, 1 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var800671a8 = { var800670d0, 0xffffffff };
|
|
|
|
struct animfloats var800671b0[] = {
|
|
{ 0x0076, 31, 0, 4.7123889923096, 14, 111, 40, 83, -1, -1, 21, 94, 0.87252569198608, -0.69802057743073, 0.52351540327072, -0.7852731347084, 0, 0 },
|
|
{ 0x0079, 26, 0, 4.7123889923096, 7, 89, 34, 60, -1, -1, 20, 68, 0.87252569198608, -0.69802057743073, 0.52351540327072, -0.7852731347084, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80067288 = { var800671b0, 0xffffffff };
|
|
|
|
struct animfloats var80067290[] = {
|
|
{ 0x034a, 20, 0, 0, 0, -1, 25, 50, -1, -1, 10, 50, 0.34901028871536, -0.34901028871536, 0.52351540327072, -0.52351540327072, 1, 1 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80067320 = { var80067290, 0xffffffff };
|
|
|
|
struct var80065750 *var80067328[][32] = {
|
|
{
|
|
&var800670c8, &var800670c8, &var800670c8, &var800670c8,
|
|
&var800670c8, &var800670c8, &var800670c8, &var800670c8,
|
|
&var800670c8, &var800670c8, &var800671a8, &var800671a8,
|
|
&var800671a8, &var800671a8, &var800671a8, &var800671a8,
|
|
&var80067288, &var80067288, &var80067288, &var80067288,
|
|
&var80067288, &var80067288, &var800670c8, &var800670c8,
|
|
&var800670c8, &var800670c8, &var800670c8, &var800670c8,
|
|
&var800670c8, &var800670c8, &var800670c8, &var800670c8,
|
|
}, {
|
|
&var80067320, &var80067320, &var80067320, &var80067320,
|
|
&var80067320, &var80067320, &var80067320, &var80067320,
|
|
&var80067320, &var80067320, &var80067320, &var80067320,
|
|
&var80067320, &var80067320, &var80067320, &var80067320,
|
|
&var80067320, &var80067320, &var80067320, &var80067320,
|
|
&var80067320, &var80067320, &var80067320, &var80067320,
|
|
&var80067320, &var80067320, &var80067320, &var80067320,
|
|
&var80067320, &var80067320, &var80067320, &var80067320,
|
|
},
|
|
};
|
|
|
|
struct animfloats var80067428 = { 0x000b, 76, 0, 0, 20, -1, 98, 161, -1, -1, 93, 161, 0.87252569198608, -0.52351540327072, 0.69802057743073, -0.69802057743073, 1.7000000476837, 2 };
|
|
struct animfloats var80067470 = { 0x000c, 58, 0, 0, 10, -1, 77, 104, -1, -1, 72, 104, 0.87252569198608, -0.34901028871536, 0.61076802015305, -0.69802057743073, 1.5499999523163, 1.5 };
|
|
struct animfloats var800674b8 = { 0x000d, 61, 0, 0, 10, -1, 83, 128, -1, -1, 78, 128, 0.87252569198608, -0.52351540327072, 0.87252569198608, -0.52351540327072, 1.2000000476837, 1.2999999523163 };
|
|
struct animfloats var80067500 = { 0x0027, 63, 0, 0, 10, -1, 73, 114, -1, -1, 68, 114, 0.87252569198608, -0.52351540327072, 0.61076802015305, -0.61076802015305, 1.6499999761581, 1.5 };
|
|
struct animfloats var80067548 = { 0x000b, 76, 0, 0, 20, 76, 98, 161, -1, -1, 93, 161, 0.87252569198608, -0.52351540327072, 0.69802057743073, -0.69802057743073, 1.7000000476837, 2 };
|
|
struct animfloats var80067590 = { 0x000c, 58, 0, 0, 10, 63, 77, 104, -1, -1, 72, 104, 0.87252569198608, -0.34901028871536, 0.61076802015305, -0.69802057743073, 1.5499999523163, 1.5 };
|
|
struct animfloats var800675d8 = { 0x000d, 61, 0, 0, 10, 56, 83, 128, -1, -1, 78, 128, 0.87252569198608, -0.52351540327072, 0.87252569198608, -0.52351540327072, 1.2000000476837, 1.2999999523163 };
|
|
struct animfloats var80067620 = { 0x0027, 63, 0, 0, 10, 50, 73, 114, -1, -1, 68, 114, 0.87252569198608, -0.52351540327072, 0.61076802015305, -0.61076802015305, 1.6499999761581, 1.5 };
|
|
struct animfloats var80067668 = { 0x0045, 0, 0, 0, 7, 64, 19, 51, 24, 46, 14, 58, 0.87252569198608, -0.69802057743073, 0.52351540327072, -0.7852731347084, 0, 0 };
|
|
struct animfloats var800676b0 = { 0x004a, 0, 0, 1.5707963705063, 14, 76, 26, 31, 31, 38, 15, 49, 0.87252569198608, -0.69802057743073, 0.52351540327072, -1.0470308065414, 0, 0 };
|
|
struct animfloats var800676f8 = { 0x004c, 26, 0, 0, 25, 89, 41, 63, 41, 51, 21, 80, 0.87252569198608, -0.69802057743073, 0.34901028871536, -1.1342834234238, 0, 0 };
|
|
struct animfloats var80067740 = { 0x0050, 18, 0, 1.5707963705063, 11, 78, 33, 52, 35, 45, 15, 66, 0.87252569198608, -0.087252572178841, 0.69802057743073, -0.7852731347084, 1.5, 1 };
|
|
struct animfloats var80067788 = { 0x007a, 26, 0, 0, 7, 92, 28, 68, -1, -1, 11, 73, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.69802057743073, 0, 0 };
|
|
struct animfloats var800677d0 = { 0x007b, 26, 0, 1.5707963705063, 9, 112, 38, 87, -1, -1, 19, 98, 0.87252569198608, -0.69802057743073, 0.43626284599304, -0.43626284599304, 0, 0 };
|
|
struct animfloats var80067818 = { 0x0074, 22, 0, 0, 10, 11, 34, 87, -1, -1, 17, 104, 0.87252569198608, -0.69802057743073, 0.61076802015305, -0.7852731347084, 0, 0 };
|
|
struct animfloats var80067860 = { 0x0075, 28, 0, 1.5707963705063, 15, 108, 34, 73, -1, -1, 17, 93, 0.87252569198608, -0.69802057743073, 0.52351540327072, -0.7852731347084, 0, 0 };
|
|
struct animfloats var800678a8 = { 0x007a, 26, 0, 0, 7, 92, 28, 68, -1, -1, 11, 73, 0.87252569198608, -0.69802057743073, 0.69802057743073, -0.69802057743073, 0, 0 };
|
|
struct animfloats var800678f0 = { 0x007d, 25, 0, 1.5707963705063, 10, 112, 32, 86, -1, -1, 19, 97, 0.87252569198608, -0.69802057743073, 0.43626284599304, -0.43626284599304, 0, 0 };
|
|
struct animfloats var80067938 = { 0x0077, 25, 0, 0, 9, 92, 33, 62, -1, -1, 18, 69, 0.87252569198608, -0.69802057743073, 0.61076802015305, -0.7852731347084, 0, 0 };
|
|
|
|
struct animfloats var80067980[] = {
|
|
{ 0x0078, 19, 0, 1.5707963705063, 3, 95, 30, 64, -1, -1, 14, 71, 0.87252569198608, -0.69802057743073, 0.52351540327072, -0.7852731347084, 1.5, 1 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct animfloats var80067a10 = { 0x0030, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 1.3999999761581, 1.2999999523163 };
|
|
struct animfloats var80067a58 = { 0x0031, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 1.1000000238419, 1.2000000476837 };
|
|
struct animfloats var80067aa0 = { 0x0052, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 0, 0 };
|
|
struct animfloats var80067ae8 = { 0x0055, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 0, 0 };
|
|
struct animfloats var80067b30 = { 0x006c, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 0, 0 };
|
|
struct animfloats var80067b78 = { 0x006e, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 0, 0 };
|
|
struct animfloats var80067bc0 = { 0x006d, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 0, 0 };
|
|
|
|
struct animfloats var80067c08[] = {
|
|
{ 0x006f, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 0, 0 },
|
|
{ 0x0057, 0, 0, 1.5707963705063, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 0, 0 },
|
|
{ 0x0056, 0, 0, 4.7123889923096, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct animfloats var80067d28[] = { 0x0269, 0, 0, 0, 0, 236, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 0, 0 };
|
|
|
|
struct animfloats var80067d70[] = {
|
|
{ 0x026a, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 0, 0 },
|
|
{ 0x026b, 0, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0.87252569198608, -0.52351540327072, 0.52351540327072, -0.52351540327072, 0, 0 },
|
|
{ 0x0000, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
};
|
|
|
|
struct var80065750 var80067e48 = { var80067d28, 0xffffffff };
|
|
|
|
u32 var80067e50 = (u32) &var80067e48;
|
|
|
|
u32 g_StageFlags = 0;
|
|
|
|
struct chrdata *g_BgChrs = NULL;
|
|
s16 *g_BgChrnums = NULL;
|
|
s32 g_NumBgChrs = 0;
|
|
|
|
s16 *g_TeamList = NULL;
|
|
s16 *g_SquadronList = NULL;
|
|
|
|
struct var80067e6c var80067e6c[] = {
|
|
{ 0x0028, 0 },
|
|
{ 0x002a, 0 },
|
|
{ 0x0029, 0 },
|
|
{ 0x006b, 0 },
|
|
{ 0x0059, 0 },
|
|
{ 0x005a, 0 },
|
|
{ 0x0072, 0 },
|
|
{ 0x0073, 0 },
|
|
{ 0x005a, 0 },
|
|
{ 0x006c, 0 },
|
|
{ 0x0030, 0 },
|
|
{ 0x0031, 0 },
|
|
{ 0x0052, 0 },
|
|
{ 0x0055, 0 },
|
|
{ 0x006e, 0 },
|
|
{ 0x006f, 0 },
|
|
{ 0x0057, 0 },
|
|
{ 0x0056, 0 },
|
|
{ 0x006d, 0 },
|
|
{ 0x0059, 0 },
|
|
{ 0x020a, 0 },
|
|
{ 0x020d, 0 },
|
|
{ 0x01f9, 0 },
|
|
{ 0x01f8, 0 },
|
|
{ 0x021d, 0 },
|
|
{ 0x0016, 0 },
|
|
{ 0x0018, 0 },
|
|
{ 0x001b, 0 },
|
|
{ 0x001d, 0 },
|
|
{ 0x001e, 0 },
|
|
{ 0x005c, 0 },
|
|
{ 0x005d, 0 },
|
|
{ 0x005e, 0 },
|
|
{ 0x005f, 0 },
|
|
{ -1 },
|
|
};
|
|
|
|
struct var80067e6c var80067f84[] = {
|
|
{ 0x0392, 0 },
|
|
{ 0x0393, 0 },
|
|
{ 0x0394, 0 },
|
|
{ -1 },
|
|
};
|
|
|
|
struct var80067e6c var80067fa4[] = {
|
|
{ 0x015f, 0 },
|
|
{ 0x0160, 0 },
|
|
{ -1 },
|
|
};
|
|
|
|
struct var80067e6c var80067fbc[] = {
|
|
{ 0x015f, 0 },
|
|
{ -1 },
|
|
};
|
|
|
|
struct var80067e6c var80067fcc[] = {
|
|
{ 0x0238, 0 },
|
|
{ -1 },
|
|
};
|
|
|
|
struct var80067e6c *var80067fdc[] = {
|
|
var80067e6c,
|
|
var80067f84,
|
|
var80067fa4,
|
|
var80067fbc,
|
|
var80067fcc,
|
|
};
|
|
|
|
// These are animation numbers
|
|
s16 var80067ff0[] = { 0x0001, 0x006a, -1 };
|
|
s16 var80067ff8[] = { 0x00c0, -1 };
|
|
s16 var80067ffc[] = { 0x013e, -1 };
|
|
s16 var80068000[] = { 0x013e, -1 };
|
|
s16 var80068004[] = { 0x0237, -1 };
|
|
|
|
s16 *var80068008[] = {
|
|
var80067ff0,
|
|
var80067ff8,
|
|
var80067ffc,
|
|
var80068000,
|
|
var80068004,
|
|
};
|
|
|
|
u32 var8006801c = 0x00000000;
|
|
u32 var80068020 = 0x00000000;
|
|
u32 var80068024 = 0x00000000;
|
|
u32 var80068028 = 0x00000000;
|
|
|
|
f32 func0f02dff0(s16 animnum)
|
|
{
|
|
s32 i;
|
|
|
|
for (i = 0; i < ARRAYCOUNT(var80067fdc); i++) {
|
|
s32 j = 0;
|
|
s16 thisanimnum = var80067fdc[i][j].animnum;
|
|
|
|
while (thisanimnum >= 0) {
|
|
if (thisanimnum == animnum) {
|
|
return var80067fdc[i][j].value;
|
|
}
|
|
|
|
j++;
|
|
thisanimnum = var80067fdc[i][j].animnum;
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
s32 func0f02e064(struct chrdata *chr)
|
|
{
|
|
if (chr->aibot) {
|
|
if (chr->actiontype == ACT_STAND
|
|
|| (chr->actiontype == ACT_GOPOS && (chr->act_gopos.flags & 0x20))) {
|
|
return true;
|
|
}
|
|
} else {
|
|
s16 animnum = modelGetAnimNum(chr->model);
|
|
s32 i;
|
|
|
|
for (i = 0; i < ARRAYCOUNT(var80068008); i++) {
|
|
s16 thisanimnum;
|
|
s32 j;
|
|
|
|
for (j = 0; (thisanimnum = var80068008[i][j]) >= 0; j++) {
|
|
if (thisanimnum == animnum) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool weaponIsOneHanded(struct prop *prop)
|
|
{
|
|
if (prop) {
|
|
struct weaponobj *weapon = prop->weapon;
|
|
return weaponHasFlag(weapon->weaponnum, WEAPONFLAG_ONEHANDED);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Returns a value between min and max based on the chr's speedrating property.
|
|
*
|
|
* chr->speedrating is between 0 and 100. The result is scaled between min and
|
|
* max accordingly.
|
|
*
|
|
* This function also applies the PD mode reaction speed, but the PD mode
|
|
* reaction speed is always zero because PD doesn't have it in the settings.
|
|
* It was used in GE but disabled in PD.
|
|
*/
|
|
f32 chrGetRangedSpeed(struct chrdata *chr, f32 min, f32 max)
|
|
{
|
|
f32 speedrating = chr->speedrating;
|
|
|
|
speedrating = pdmodeGetReaction() * (100.0f - speedrating) + speedrating;
|
|
|
|
return (max - min) * speedrating * 0.01f + min;
|
|
}
|
|
|
|
/**
|
|
* Calculates a percentage of how slow the chr is.
|
|
*
|
|
* percentage is expected to be between 0 and 100.
|
|
* chr->speedrating is between 0 and 100.
|
|
*
|
|
* This function takes the difference between the speedrating and the max (100),
|
|
* then multiplies that amount by the given percentage and returns it.
|
|
*
|
|
* For example, if the chr's speedrating is 10 (out of 100) and the given
|
|
* percentage is 50, the result will be 45.
|
|
*/
|
|
s32 chrGetPercentageOfSlowness(struct chrdata *chr, s32 percentage)
|
|
{
|
|
s32 speedrating = chr->speedrating;
|
|
s32 extra = pdmodeGetReaction() * (100 - speedrating);
|
|
|
|
speedrating = extra + speedrating;
|
|
|
|
return (100 - speedrating) * percentage / 100;
|
|
}
|
|
|
|
f32 chrGetRangedArghSpeed(struct chrdata *chr, f32 min, f32 max)
|
|
{
|
|
f32 arghrating = chr->arghrating;
|
|
|
|
arghrating = pdmodeGetReaction() * (100.0f - arghrating) + arghrating;
|
|
|
|
return (max - min) * arghrating * 0.01f + min;
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f02e2d0
|
|
.late_rodata
|
|
glabel var7f1a8cf8
|
|
.word 0x38c907a9
|
|
glabel var7f1a8cfc
|
|
.word 0x40c907a9
|
|
.text
|
|
/* f02e2d0: 27bdffb8 */ addiu $sp,$sp,-72
|
|
/* f02e2d4: 30ae0002 */ andi $t6,$a1,0x2
|
|
/* f02e2d8: 11c00004 */ beqz $t6,.L0f02e2ec
|
|
/* f02e2dc: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f02e2e0: 44800000 */ mtc1 $zero,$f0
|
|
/* f02e2e4: 1000001f */ b .L0f02e364
|
|
/* f02e2e8: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f02e2ec:
|
|
/* f02e2ec: 30af0010 */ andi $t7,$a1,0x10
|
|
/* f02e2f0: 11e00014 */ beqz $t7,.L0f02e344
|
|
/* f02e2f4: 27a70038 */ addiu $a3,$sp,0x38
|
|
/* f02e2f8: 44862000 */ mtc1 $a2,$f4
|
|
/* f02e2fc: 3c017f1b */ lui $at,%hi(var7f1a8cf8)
|
|
/* f02e300: c4288cf8 */ lwc1 $f8,%lo(var7f1a8cf8)($at)
|
|
/* f02e304: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f02e308: 46083302 */ mul.s $f12,$f6,$f8
|
|
/* f02e30c: 0fc0f917 */ jal chrGetInverseTheta
|
|
/* f02e310: e7ac0020 */ swc1 $f12,0x20($sp)
|
|
/* f02e314: c7ac0020 */ lwc1 $f12,0x20($sp)
|
|
/* f02e318: 44805000 */ mtc1 $zero,$f10
|
|
/* f02e31c: 3c017f1b */ lui $at,%hi(var7f1a8cfc)
|
|
/* f02e320: 46006081 */ sub.s $f2,$f12,$f0
|
|
/* f02e324: 460a103c */ c.lt.s $f2,$f10
|
|
/* f02e328: 00000000 */ nop
|
|
/* f02e32c: 45000003 */ bc1f .L0f02e33c
|
|
/* f02e330: 00000000 */ nop
|
|
/* f02e334: c4308cfc */ lwc1 $f16,%lo(var7f1a8cfc)($at)
|
|
/* f02e338: 46101080 */ add.s $f2,$f2,$f16
|
|
.L0f02e33c:
|
|
/* f02e33c: 10000008 */ b .L0f02e360
|
|
/* f02e340: 46001006 */ mov.s $f0,$f2
|
|
.L0f02e344:
|
|
/* f02e344: 27b80028 */ addiu $t8,$sp,0x28
|
|
/* f02e348: afb80010 */ sw $t8,0x10($sp)
|
|
/* f02e34c: 0fc122de */ jal func0f048b78
|
|
/* f02e350: afa40048 */ sw $a0,0x48($sp)
|
|
/* f02e354: 8fa40048 */ lw $a0,0x48($sp)
|
|
/* f02e358: 0fc122a1 */ jal chrGetAngleToPos
|
|
/* f02e35c: 27a50038 */ addiu $a1,$sp,0x38
|
|
.L0f02e360:
|
|
/* f02e360: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f02e364:
|
|
/* f02e364: 27bd0048 */ addiu $sp,$sp,0x48
|
|
/* f02e368: 03e00008 */ jr $ra
|
|
/* f02e36c: 00000000 */ nop
|
|
);
|
|
|
|
f32 chrGetDistanceToEntity(struct chrdata *chr, u32 entitytype, s32 entityid)
|
|
{
|
|
if (entitytype & ENTITYTYPE_TARGET) {
|
|
return chrGetDistanceToTarget(chr);
|
|
}
|
|
|
|
if (entitytype & ENTITYTYPE_CHR) {
|
|
return chrGetDistanceToChr(chr, entityid);
|
|
}
|
|
|
|
if (entitytype & ENTITYTYPE_PAD) {
|
|
return chrGetDistanceToPad(chr, entityid);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void func0f02e3dc(struct coord *a, struct coord *b,struct coord *c, struct coord *d, struct coord *dst)
|
|
{
|
|
f32 value = d->z * (b->x - a->x) - (b->z - a->z) * d->x;
|
|
|
|
if (value != 0) {
|
|
f32 tmp = ((b->z - a->z) * (c->x - a->x) + (a->z - c->z) * (b->x - a->x)) / value;
|
|
dst->x = d->x * tmp + c->x;
|
|
dst->y = d->y * tmp + c->y;
|
|
dst->z = d->z * tmp + c->z;
|
|
} else if (d->x == 0 && d->z == 0) {
|
|
dst->x = c->x;
|
|
dst->y = c->y;
|
|
dst->z = c->z;
|
|
} else {
|
|
dst->x = a->x;
|
|
dst->y = a->y;
|
|
dst->z = a->z;
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f02e4f8
|
|
/* f02e4f8: 27bdffc8 */ addiu $sp,$sp,-56
|
|
/* f02e4fc: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f02e500: afa40038 */ sw $a0,0x38($sp)
|
|
/* f02e504: afa5003c */ sw $a1,0x3c($sp)
|
|
/* f02e508: afa60040 */ sw $a2,0x40($sp)
|
|
/* f02e50c: 3c077f1b */ lui $a3,%hi(var7f1a8ac0)
|
|
/* f02e510: 24e78ac0 */ addiu $a3,$a3,%lo(var7f1a8ac0)
|
|
/* f02e514: 240608fa */ addiu $a2,$zero,0x8fa
|
|
/* f02e518: 27a50020 */ addiu $a1,$sp,0x20
|
|
/* f02e51c: 0c009393 */ jal func00024e4c
|
|
/* f02e520: 27a4002c */ addiu $a0,$sp,0x2c
|
|
/* f02e524: 8fae0040 */ lw $t6,0x40($sp)
|
|
/* f02e528: 27a4002c */ addiu $a0,$sp,0x2c
|
|
/* f02e52c: 27a50020 */ addiu $a1,$sp,0x20
|
|
/* f02e530: 8fa60038 */ lw $a2,0x38($sp)
|
|
/* f02e534: 8fa7003c */ lw $a3,0x3c($sp)
|
|
/* f02e538: 0fc0b8f7 */ jal func0f02e3dc
|
|
/* f02e53c: afae0010 */ sw $t6,0x10($sp)
|
|
/* f02e540: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f02e544: 27bd0038 */ addiu $sp,$sp,0x38
|
|
/* f02e548: 03e00008 */ jr $ra
|
|
/* f02e54c: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f02e550
|
|
/* f02e550: 27bdff98 */ addiu $sp,$sp,-104
|
|
/* f02e554: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f02e558: afb00028 */ sw $s0,0x28($sp)
|
|
/* f02e55c: afa5006c */ sw $a1,0x6c($sp)
|
|
/* f02e560: afa60070 */ sw $a2,0x70($sp)
|
|
/* f02e564: afa70074 */ sw $a3,0x74($sp)
|
|
/* f02e568: 8c8e0004 */ lw $t6,0x4($a0)
|
|
/* f02e56c: 00808025 */ or $s0,$a0,$zero
|
|
/* f02e570: c7ac006c */ lwc1 $f12,0x6c($sp)
|
|
/* f02e574: 0c0068f7 */ jal sinf
|
|
/* f02e578: afae004c */ sw $t6,0x4c($sp)
|
|
/* f02e57c: 44802000 */ mtc1 $zero,$f4
|
|
/* f02e580: e7a0005c */ swc1 $f0,0x5c($sp)
|
|
/* f02e584: c7ac006c */ lwc1 $f12,0x6c($sp)
|
|
/* f02e588: 0c0068f4 */ jal cosf
|
|
/* f02e58c: e7a40060 */ swc1 $f4,0x60($sp)
|
|
/* f02e590: c7a20070 */ lwc1 $f2,0x70($sp)
|
|
/* f02e594: c7a6005c */ lwc1 $f6,0x5c($sp)
|
|
/* f02e598: e7a00064 */ swc1 $f0,0x64($sp)
|
|
/* f02e59c: c60a0008 */ lwc1 $f10,0x8($s0)
|
|
/* f02e5a0: 46023202 */ mul.s $f8,$f6,$f2
|
|
/* f02e5a4: c7a40064 */ lwc1 $f4,0x64($sp)
|
|
/* f02e5a8: 8fa4004c */ lw $a0,0x4c($sp)
|
|
/* f02e5ac: 00002825 */ or $a1,$zero,$zero
|
|
/* f02e5b0: 46022182 */ mul.s $f6,$f4,$f2
|
|
/* f02e5b4: 460a4400 */ add.s $f16,$f8,$f10
|
|
/* f02e5b8: e7b00050 */ swc1 $f16,0x50($sp)
|
|
/* f02e5bc: c612000c */ lwc1 $f18,0xc($s0)
|
|
/* f02e5c0: e7b20054 */ swc1 $f18,0x54($sp)
|
|
/* f02e5c4: c6080010 */ lwc1 $f8,0x10($s0)
|
|
/* f02e5c8: 46083280 */ add.s $f10,$f6,$f8
|
|
/* f02e5cc: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f02e5d0: e7aa0058 */ swc1 $f10,0x58($sp)
|
|
/* f02e5d4: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f02e5d8: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f02e5dc: c600000c */ lwc1 $f0,0xc($s0)
|
|
/* f02e5e0: c7b00078 */ lwc1 $f16,0x78($sp)
|
|
/* f02e5e4: c7a4007c */ lwc1 $f4,0x7c($sp)
|
|
/* f02e5e8: 26040008 */ addiu $a0,$s0,0x8
|
|
/* f02e5ec: 46008481 */ sub.s $f18,$f16,$f0
|
|
/* f02e5f0: 26050028 */ addiu $a1,$s0,0x28
|
|
/* f02e5f4: 27a60050 */ addiu $a2,$sp,0x50
|
|
/* f02e5f8: 46002181 */ sub.s $f6,$f4,$f0
|
|
/* f02e5fc: e7b20014 */ swc1 $f18,0x14($sp)
|
|
/* f02e600: 8fa70074 */ lw $a3,0x74($sp)
|
|
/* f02e604: 0c00b5f0 */ jal func0002d7c0
|
|
/* f02e608: e7a60018 */ swc1 $f6,0x18($sp)
|
|
/* f02e60c: 10400003 */ beqz $v0,.L0f02e61c
|
|
/* f02e610: 27a4003c */ addiu $a0,$sp,0x3c
|
|
/* f02e614: 10000011 */ b .L0f02e65c
|
|
/* f02e618: c7a20070 */ lwc1 $f2,0x70($sp)
|
|
.L0f02e61c:
|
|
/* f02e61c: 3c067f1b */ lui $a2,%hi(var7f1a8acc)
|
|
/* f02e620: 24c68acc */ addiu $a2,$a2,%lo(var7f1a8acc)
|
|
/* f02e624: 0c0093af */ jal cdGetPos
|
|
/* f02e628: 24050949 */ addiu $a1,$zero,0x949
|
|
/* f02e62c: c7a8003c */ lwc1 $f8,0x3c($sp)
|
|
/* f02e630: c60a0008 */ lwc1 $f10,0x8($s0)
|
|
/* f02e634: c7b00044 */ lwc1 $f16,0x44($sp)
|
|
/* f02e638: c6120010 */ lwc1 $f18,0x10($s0)
|
|
/* f02e63c: 460a4001 */ sub.s $f0,$f8,$f10
|
|
/* f02e640: 46128081 */ sub.s $f2,$f16,$f18
|
|
/* f02e644: 46000102 */ mul.s $f4,$f0,$f0
|
|
/* f02e648: 00000000 */ nop
|
|
/* f02e64c: 46021182 */ mul.s $f6,$f2,$f2
|
|
/* f02e650: 0c012974 */ jal sqrtf
|
|
/* f02e654: 46062300 */ add.s $f12,$f4,$f6
|
|
/* f02e658: 46000086 */ mov.s $f2,$f0
|
|
.L0f02e65c:
|
|
/* f02e65c: 8fa4004c */ lw $a0,0x4c($sp)
|
|
/* f02e660: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f02e664: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f02e668: e7a20048 */ swc1 $f2,0x48($sp)
|
|
/* f02e66c: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f02e670: c7a20048 */ lwc1 $f2,0x48($sp)
|
|
/* f02e674: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f02e678: 27bd0068 */ addiu $sp,$sp,0x68
|
|
/* f02e67c: 03e00008 */ jr $ra
|
|
/* f02e680: 46001006 */ mov.s $f0,$f2
|
|
);
|
|
|
|
f32 func0f02e684(struct prop *prop, f32 arg1, f32 arg2)
|
|
{
|
|
f32 ymax;
|
|
f32 ymin;
|
|
f32 width;
|
|
|
|
propChrGetBbox(prop, &width, &ymax, &ymin);
|
|
|
|
return func0f02e550(prop, arg1, arg2, CDTYPE_ALL, ymax, ymin);
|
|
}
|
|
|
|
void chrStandChooseAnimation(struct chrdata *chr, f32 arg1)
|
|
{
|
|
struct prop *gun1 = chrGetEquippedWeaponProp(chr, 1);
|
|
struct prop *gun2 = chrGetEquippedWeaponProp(chr, 0);
|
|
s32 race = CHRRACE(chr);
|
|
s32 prevanimnum = modelGetAnimNum(chr->model);
|
|
|
|
if (chr->actiontype == ACT_GOPOS) {
|
|
chr->act_gopos.flags |= GOPOSFLAG_20;
|
|
}
|
|
|
|
if (chr->aibot) {
|
|
return;
|
|
}
|
|
|
|
if (race == RACE_EYESPY) {
|
|
modelSetAnimation(chr->model, 0x13e, 0, 0, 0, arg1);
|
|
} else if (race == RACE_HUMAN) {
|
|
if (prevanimnum == ANIM_SNIPING_0269
|
|
|| prevanimnum == ANIM_SNIPING_026B
|
|
|| prevanimnum == ANIM_SNIPING_026A) {
|
|
modelSetAnimation(chr->model, ANIM_SNIPING_026B, chr->model->anim->flip, -1, chrGetRangedSpeed(chr, 0.5, 0.8), 16);
|
|
} else if ((gun1 && gun2) || (!gun1 && !gun2)
|
|
|| weaponIsOneHanded(gun1)
|
|
|| weaponIsOneHanded(gun2)) {
|
|
modelSetAnimation(chr->model, 0x6a, random() % 2, 0, 0.25, arg1);
|
|
modelSetAnimLooping(chr->model, 0, 16);
|
|
} else if (gun2 || gun1) {
|
|
modelSetAnimation(chr->model, 0x01, gun1 != NULL, 0, 0.25, arg1);
|
|
modelSetAnimLooping(chr->model, 0, 16);
|
|
modelSetAnimEndFrame(chr->model, 120);
|
|
}
|
|
} else if (race == RACE_SKEDAR) {
|
|
modelSetAnimation(chr->model, 0xc0, random() % 2, 0, 0.5, arg1);
|
|
} else if (race == RACE_DRCAROLL) {
|
|
modelSetAnimation(chr->model, 0x13e, 0, 0, 0.5, arg1);
|
|
} else if (race == RACE_ROBOT) {
|
|
modelSetAnimation(chr->model, 0x237, 0, 0, 0.5, arg1);
|
|
}
|
|
}
|
|
|
|
void func0f02e9a0(struct chrdata *chr, f32 arg1)
|
|
{
|
|
f32 limit = 127;
|
|
f32 fsleep;
|
|
|
|
chrStopFiring(chr);
|
|
chr->actiontype = ACT_STAND;
|
|
chr->act_stand.unk02c = 0;
|
|
chr->act_stand.face_entitytype = 0;
|
|
chr->act_stand.face_entityid = 0;
|
|
chr->act_stand.unk038 = 0;
|
|
chr->act_stand.unk03c = 2;
|
|
chr->act_stand.unk040 = 0;
|
|
chr->act_stand.unk044 = random() % 120 + 180; // 180 to 299
|
|
chr->act_stand.unk048 = arg1;
|
|
chr->act_stand.face_target = false;
|
|
|
|
fsleep = arg1;
|
|
|
|
if (chr->model->anim->playspeed != 1.0f) {
|
|
fsleep *= 1.0f / chr->model->anim->playspeed;
|
|
}
|
|
|
|
if (fsleep > limit) {
|
|
fsleep = limit;
|
|
}
|
|
|
|
chr->sleep = fsleep;
|
|
|
|
if (modelIsAnimMerging(chr->model) && !chr->aibot) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
} else {
|
|
chrStandChooseAnimation(chr, arg1);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
}
|
|
|
|
void chrStand(struct chrdata *chr)
|
|
{
|
|
s32 race = CHRRACE(chr);
|
|
f32 result;
|
|
|
|
if (race != RACE_EYESPY) {
|
|
chrStopFiring(chr);
|
|
|
|
if (race == RACE_HUMAN && chr->actiontype == ACT_KNEEL) {
|
|
chrStopFiring(chr);
|
|
chr->actiontype = ACT_STAND;
|
|
chr->act_stand.unk02c = 1;
|
|
chr->act_stand.face_entitytype = 0;
|
|
chr->act_stand.face_entityid = 0;
|
|
chr->act_stand.unk038 = 0;
|
|
chr->act_stand.unk03c = 2;
|
|
chr->act_stand.unk040 = 0;
|
|
chr->act_stand.unk044 = random() % 120 + 180;
|
|
chr->sleep = 0;
|
|
chr->act_stand.face_target = false;
|
|
|
|
if (chr->aibot == NULL) {
|
|
if (modelGetAnimNum(chr->model) == ANIM_KNEEL_SHOOT_RIGHT_HAND) {
|
|
result = chrGetRangedSpeed(chr, 0.5, 0.8);
|
|
modelSetAnimation(chr->model, ANIM_KNEEL_SHOOT_RIGHT_HAND,
|
|
chr->model->anim->flip, 109, result, 16);
|
|
modelSetAnimEndFrame(chr->model, 140);
|
|
} else {
|
|
result = chrGetRangedSpeed(chr, 0.5, 0.8);
|
|
modelSetAnimation(chr->model, ANIM_KNEEL_TWO_HANDED_GUN,
|
|
chr->model->anim->flip, 120, result, 16);
|
|
modelSetAnimEndFrame(chr->model, 151);
|
|
}
|
|
}
|
|
} else if (race == RACE_DRCAROLL || race == RACE_ROBOT) {
|
|
chr->actiontype = ACT_STAND;
|
|
chr->act_stand.unk02c = 1;
|
|
chr->act_stand.face_entitytype = 0;
|
|
chr->act_stand.face_entityid = 0;
|
|
chr->act_stand.unk038 = 0;
|
|
chr->act_stand.unk03c = 2;
|
|
chr->act_stand.unk040 = 0;
|
|
chr->act_stand.unk044 = random() % 120 + 180;
|
|
chr->sleep = 0;
|
|
chr->act_stand.face_target = false;
|
|
|
|
func0f02e9a0(chr, 16);
|
|
} else {
|
|
func0f02e9a0(chr, 16);
|
|
}
|
|
}
|
|
}
|
|
|
|
bool chrFaceCover(struct chrdata *chr)
|
|
{
|
|
struct cover cover;
|
|
|
|
if (!coverUnpack(chr->cover, &cover)) {
|
|
return false;
|
|
}
|
|
|
|
chrStand(chr);
|
|
chr->act_stand.unk038 = 0;
|
|
chr->act_stand.face_entitytype = ENTITYTYPE_DIRECTION;
|
|
chr->act_stand.unk03c = 1;
|
|
//chr->act_stand.face_entityid = atan2f(-cover.look->x, -cover.look->z) * (0x4000 / BADDEG2RAD(90));
|
|
chr->act_stand.face_entityid = atan2f(-cover.look->x, -cover.look->z) * 10432.039f;
|
|
|
|
return true;
|
|
}
|
|
|
|
void func0f02ed28(struct chrdata *chr, f32 arg1)
|
|
{
|
|
func0f02e9a0(chr, arg1);
|
|
chr->act_stand.unk040 = 1;
|
|
}
|
|
|
|
void chrStop(struct chrdata *chr)
|
|
{
|
|
chrStand(chr);
|
|
chr->act_stand.unk040 = 1;
|
|
}
|
|
|
|
void chrKneelChooseAnimation(struct chrdata *chr)
|
|
{
|
|
struct prop *gun1 = chrGetEquippedWeaponProp(chr, 1);
|
|
struct prop *gun2 = chrGetEquippedWeaponProp(chr, 0);
|
|
|
|
if (chr->aibot == NULL) {
|
|
if ((gun1 && gun2)
|
|
|| (!gun1 && !gun2)
|
|
|| weaponIsOneHanded(gun1)
|
|
|| weaponIsOneHanded(gun2)) {
|
|
bool flip = random() % 2;
|
|
modelSetAnimation(chr->model, 0x4b, flip, 0, chrGetRangedSpeed(chr, 0.5, 0.8), 16);
|
|
modelSetAnimEndFrame(chr->model, 28);
|
|
} else if (gun2 || gun1) {
|
|
modelSetAnimation(chr->model, 0x08, gun1 != NULL, 0, chrGetRangedSpeed(chr, 0.5, 0.8), 16);
|
|
modelSetAnimEndFrame(chr->model, 27);
|
|
}
|
|
}
|
|
}
|
|
|
|
void chrKneel(struct chrdata *chr)
|
|
{
|
|
chrStopFiring(chr);
|
|
chr->actiontype = ACT_KNEEL;
|
|
chr->sleep = 0;
|
|
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
} else {
|
|
chrKneelChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
}
|
|
|
|
void chrStartAlarmChooseAnimation(struct chrdata *chr)
|
|
{
|
|
struct prop *gun1 = chrGetEquippedWeaponProp(chr, 1);
|
|
struct prop *gun2 = chrGetEquippedWeaponProp(chr, 0);
|
|
bool flip = false;
|
|
|
|
if (gun1 && !gun2) {
|
|
flip = true;
|
|
} else if ((gun1 && gun2) || (!gun1 && !gun2)) {
|
|
flip = random() % 2;
|
|
}
|
|
|
|
modelSetAnimation(chr->model, 0x3d, flip, 40, 1, 16);
|
|
modelSetAnimEndFrame(chr->model, 82);
|
|
}
|
|
|
|
void chrStartAlarm(struct chrdata *chr)
|
|
{
|
|
chrStopFiring(chr);
|
|
chr->actiontype = ACT_STARTALARM;
|
|
chr->sleep = 0;
|
|
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
} else {
|
|
chrStartAlarmChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
}
|
|
|
|
void chrThrowGrenadeChooseAnimation(struct chrdata *chr)
|
|
{
|
|
u32 rand = random();
|
|
|
|
if (chr->act_throwgrenade.needsequip) {
|
|
if (rand % 3 == 0) {
|
|
modelSetAnimation(chr->model, 0x244, chr->act_throwgrenade.hand != 0, 0, chrGetRangedSpeed(chr, 0.5, 1.2), 16);
|
|
} else if (rand % 3 == 1) {
|
|
modelSetAnimation(chr->model, 0x242, chr->act_throwgrenade.hand != 0, 0, chrGetRangedSpeed(chr, 0.5, 1.2), 16);
|
|
} else {
|
|
modelSetAnimation(chr->model, 0x3e, chr->act_throwgrenade.hand != 0, 0, chrGetRangedSpeed(chr, 0.5, 1.2), 16);
|
|
}
|
|
} else {
|
|
if (rand % 3 == 0) {
|
|
modelSetAnimation(chr->model, 0x244, chr->act_throwgrenade.hand != 0, 5, chrGetRangedSpeed(chr, 0.5, 1.2), 16);
|
|
} else if (rand % 3 == 1) {
|
|
modelSetAnimation(chr->model, 0x242, chr->act_throwgrenade.hand != 0, 6, chrGetRangedSpeed(chr, 0.5, 1.2), 16);
|
|
} else {
|
|
modelSetAnimation(chr->model, 0x3e, chr->act_throwgrenade.hand != 0, 84, chrGetRangedSpeed(chr, 0.5, 1.2), 16);
|
|
}
|
|
}
|
|
|
|
modelSetAnimEndFrame(chr->model, -1);
|
|
}
|
|
|
|
void chrThrowGrenade(struct chrdata *chr, s32 hand, s32 needsequip)
|
|
{
|
|
chrStopFiring(chr);
|
|
chr->actiontype = ACT_THROWGRENADE;
|
|
chr->act_throwgrenade.hand = hand;
|
|
chr->act_throwgrenade.needsequip = needsequip;
|
|
chr->sleep = 0;
|
|
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
} else {
|
|
chrThrowGrenadeChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
}
|
|
|
|
void chrSurprisedChooseAnimation(struct chrdata *chr)
|
|
{
|
|
if (chr->act_surprised.type == 1) {
|
|
struct prop *gun1 = chrGetEquippedWeaponProp(chr, 1);
|
|
struct prop *gun0 = chrGetEquippedWeaponProp(chr, 0);
|
|
s32 flip = 0;
|
|
|
|
if (gun1 != NULL && gun0 == NULL) {
|
|
flip = 1;
|
|
} else if ((gun1 != NULL && gun0 != NULL) || (gun1 == NULL && gun0 == NULL)) {
|
|
flip = random() & 1;
|
|
}
|
|
|
|
modelSetAnimation(chr->model, 0x3f, flip, 10, chrGetRangedSpeed(chr, 0.6f, 0.96000003f), 16);
|
|
modelSetAnimEndFrame(chr->model, 52);
|
|
} else if (chr->act_surprised.type == 2) {
|
|
modelSetAnimation(chr->model, ANIM_SURRENDER_002E, random() & 1, 0, chrGetRangedSpeed(chr, 0.35f, 0.56f), 16);
|
|
modelSetAnimEndFrame(chr->model, 7);
|
|
} else {
|
|
u32 part = random() % 3;
|
|
modelSetAnimation(chr->model, 0x40, random() & 1, 17, 0.6f, 16);
|
|
|
|
if (part == 0) {
|
|
modelSetAnimEndFrame(chr->model, chrGetRangedSpeed(chr, 38, 8));
|
|
} else if (part == 1) {
|
|
modelSetAnimEndFrame(chr->model, chrGetRangedSpeed(chr, 66, 8));
|
|
} else {
|
|
modelSetAnimEndFrame(chr->model, chrGetRangedSpeed(chr, 96, 8));
|
|
}
|
|
}
|
|
}
|
|
|
|
void chrDoSurprisedOneHand(struct chrdata *chr)
|
|
{
|
|
struct prop *prop = chrGetTargetProp(chr);
|
|
f32 angle = chrGetAngleToPos(chr, &prop->pos);
|
|
|
|
// BADDEG2RAD(10) doesn't match due to float precision :(
|
|
if (angle < 0.17450514435768f || angle > BADDEG2RAD(350)) {
|
|
chrStopFiring(chr);
|
|
chr->actiontype = ACT_SURPRISED;
|
|
chr->act_surprised.type = 1;
|
|
chr->sleep = 0;
|
|
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
} else {
|
|
chrSurprisedChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
} else if (!chrIsStopped(chr)) {
|
|
chrStand(chr);
|
|
}
|
|
}
|
|
|
|
void chrDoSurprisedSurrender(struct chrdata *chr)
|
|
{
|
|
chrStopFiring(chr);
|
|
chr->actiontype = ACT_SURPRISED;
|
|
chr->act_surprised.type = 2;
|
|
chr->sleep = 0;
|
|
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
} else {
|
|
chrSurprisedChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
}
|
|
|
|
void chrDoSurprisedLookAround(struct chrdata *chr)
|
|
{
|
|
chrStopFiring(chr);
|
|
chr->actiontype = ACT_SURPRISED;
|
|
chr->act_surprised.type = 3;
|
|
chr->sleep = 0;
|
|
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
} else {
|
|
chrSurprisedChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
}
|
|
|
|
void chrSurrenderChooseAnimation(struct chrdata *chr)
|
|
{
|
|
struct prop *gun1 = chrGetEquippedWeaponProp(chr, 1);
|
|
struct prop *gun0 = chrGetEquippedWeaponProp(chr, 0);
|
|
|
|
if (gun0 || gun1) {
|
|
modelSetAnimation(chr->model, ANIM_SURRENDER_002F, random() & 1, 0, 0.5, 16);
|
|
modelSetAnimLooping(chr->model, 40, 16);
|
|
|
|
if (gun1) {
|
|
propobjSetDropped(gun1, DROPREASON_2);
|
|
}
|
|
|
|
if (gun0) {
|
|
propobjSetDropped(gun0, DROPREASON_2);
|
|
}
|
|
|
|
chr->hidden |= CHRHFLAG_00000001;
|
|
} else {
|
|
modelSetAnimation(chr->model, ANIM_SURRENDER_002E, random() & 1, 0, 0.5, 16);
|
|
modelSetAnimLooping(chr->model, 30, 16);
|
|
}
|
|
|
|
chrDropItems(chr);
|
|
}
|
|
|
|
void chrSurrender(struct chrdata *chr)
|
|
{
|
|
u32 action = ACT_SURRENDER;
|
|
|
|
if (chr->actiontype != action) {
|
|
chrStopFiring(chr);
|
|
chr->actiontype = action;
|
|
chr->sleep = action;
|
|
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
} else {
|
|
chrSurrenderChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
}
|
|
}
|
|
|
|
void chrSidestepChooseAnimation(struct chrdata *chr)
|
|
{
|
|
struct prop *gun1 = chrGetEquippedWeaponProp(chr, 1);
|
|
struct prop *gun2 = chrGetEquippedWeaponProp(chr, 0);
|
|
bool flip = false;
|
|
bool allowflip = false;
|
|
u32 race = CHRRACE(chr);
|
|
|
|
if (gun1 && gun2) {
|
|
flip = random() % 2;
|
|
allowflip = random() % 2;
|
|
} else {
|
|
if (weaponIsOneHanded(gun1) == false
|
|
&& weaponIsOneHanded(gun2) == false
|
|
&& (gun1 || gun2)) {
|
|
flip = (gun1 != 0);
|
|
allowflip = random() % 2;
|
|
}
|
|
}
|
|
|
|
if (race == RACE_HUMAN) {
|
|
if (allowflip == false) {
|
|
if (chr->act_sidestep.side) {
|
|
modelSetAnimation(chr->model, 0x68, true, 5, chrGetRangedSpeed(chr, 0.55, 0.88000005), 16);
|
|
modelSetAnimEndFrame(chr->model, 36);
|
|
} else {
|
|
modelSetAnimation(chr->model, 0x68, false, 5, chrGetRangedSpeed(chr, 0.55, 0.88000005), 16);
|
|
modelSetAnimEndFrame(chr->model, 36);
|
|
}
|
|
} else {
|
|
if ((chr->act_sidestep.side && !flip) || (chr->act_sidestep.side == 0 && flip)) {
|
|
modelSetAnimation(chr->model, 0x3b, flip, 5, chrGetRangedSpeed(chr, 0.7, 1.12), 16);
|
|
modelSetAnimEndFrame(chr->model, 34);
|
|
} else {
|
|
modelSetAnimation(chr->model, 0x3a, flip, 5, chrGetRangedSpeed(chr, 0.7, 1.12), 16);
|
|
modelSetAnimEndFrame(chr->model, 32);
|
|
}
|
|
}
|
|
} else if (race == RACE_SKEDAR) {
|
|
if (chr->act_sidestep.side) {
|
|
modelSetAnimation(chr->model, 0x328, false, 5, chrGetRangedSpeed(chr, 0.55, 0.88000005), 16);
|
|
modelSetAnimEndFrame(chr->model, 27);
|
|
} else {
|
|
modelSetAnimation(chr->model, 0x328, true, 5, chrGetRangedSpeed(chr, 0.55, 0.88000005), 16);
|
|
modelSetAnimEndFrame(chr->model, 27);
|
|
}
|
|
}
|
|
}
|
|
|
|
void chrSidestep(struct chrdata *chr, bool side)
|
|
{
|
|
chrStopFiring(chr);
|
|
chr->actiontype = ACT_SIDESTEP;
|
|
chr->act_sidestep.side = side;
|
|
chr->sleep = 0;
|
|
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
} else {
|
|
chrSidestepChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
}
|
|
|
|
void chrJumpOutChooseAnimation(struct chrdata *chr)
|
|
{
|
|
struct prop *gun1 = chrGetEquippedWeaponProp(chr, 1);
|
|
struct prop *gun2 = chrGetEquippedWeaponProp(chr, 0);
|
|
bool flip = false;
|
|
|
|
if (gun1 && !gun2) {
|
|
flip = true;
|
|
} else if ((gun1 && gun2) || (!gun1 && !gun2)
|
|
|| weaponIsOneHanded(gun1) || weaponIsOneHanded(gun2)) {
|
|
flip = random() % 2;
|
|
}
|
|
|
|
if ((chr->act_jumpout.side && !flip) || (chr->act_jumpout.side == 0 && flip)) {
|
|
modelSetAnimation(chr->model, 0x68, true, 5, chrGetRangedSpeed(chr, 0.55, 0.88000005), 16);
|
|
modelSetAnimEndFrame(chr->model, 36);
|
|
} else {
|
|
modelSetAnimation(chr->model, 0x68, false, 5, chrGetRangedSpeed(chr, 0.55, 0.88000005), 16);
|
|
modelSetAnimEndFrame(chr->model, 36);
|
|
}
|
|
}
|
|
|
|
void chrJumpOut(struct chrdata *chr, bool side)
|
|
{
|
|
chrStopFiring(chr);
|
|
chr->actiontype = ACT_JUMPOUT;
|
|
chr->act_jumpout.side = side;
|
|
chr->sleep = 0;
|
|
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
} else {
|
|
chrJumpOutChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
}
|
|
|
|
void chrRunPosChooseAnimation(struct chrdata *chr)
|
|
{
|
|
f32 xdiff = chr->prop->pos.x - chr->act_runpos.pos.x;
|
|
f32 ydiff = chr->prop->pos.y - chr->act_runpos.pos.y;
|
|
f32 zdiff = chr->prop->pos.z - chr->act_runpos.pos.z;
|
|
f32 distance = sqrtf(xdiff * xdiff + zdiff * zdiff);
|
|
struct prop *gun1 = chrGetEquippedWeaponProp(chr, 1);
|
|
struct prop *gun2 = chrGetEquippedWeaponProp(chr, 0);
|
|
bool heavy = true;
|
|
bool flip;
|
|
s32 race = CHRRACE(chr);
|
|
|
|
if ((gun1 && gun2) || (!gun1 && !gun2)) {
|
|
heavy = false;
|
|
flip = random() % 2;
|
|
} else if (weaponIsOneHanded(gun1) || weaponIsOneHanded(gun2)) {
|
|
heavy = false;
|
|
flip = (bool)gun1 != false;
|
|
} else {
|
|
flip = (bool)gun1 != false;
|
|
}
|
|
|
|
if (race == RACE_HUMAN) {
|
|
if (heavy) {
|
|
f32 mult = 0.5;
|
|
chr->act_runpos.unk03c = (1.0f / (func0f02dff0(0x2a) * mult)) * distance;
|
|
modelSetAnimation(chr->model, 0x2a, flip, 0, mult, 16);
|
|
} else {
|
|
f32 mult = 0.5;
|
|
chr->act_runpos.unk03c = (1.0f / (func0f02dff0(0x59) * mult)) * distance;
|
|
modelSetAnimation(chr->model, 0x59, flip, 0, mult, 16);
|
|
}
|
|
} else if (race == RACE_SKEDAR) {
|
|
f32 mult = 0.5;
|
|
chr->act_runpos.unk03c = (1.0f / (func0f02dff0(0x394) * mult)) * distance;
|
|
modelSetAnimation(chr->model, 0x394, flip, 0, mult, 16);
|
|
}
|
|
}
|
|
|
|
void chrRunToPos(struct chrdata *chr, struct coord *pos)
|
|
{
|
|
chrStopFiring(chr);
|
|
chr->actiontype = ACT_RUNPOS;
|
|
chr->act_runpos.pos.x = pos->x;
|
|
chr->act_runpos.pos.y = pos->y;
|
|
chr->act_runpos.pos.z = pos->z;
|
|
chr->sleep = 0;
|
|
chr->act_runpos.unk038 = 30; // float
|
|
chr->act_runpos.unk040 = 0;
|
|
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
} else {
|
|
chrRunPosChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrAttackStand
|
|
/* f030120: 27bdffa8 */ addiu $sp,$sp,-88
|
|
/* f030124: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f030128: afa5005c */ sw $a1,0x5c($sp)
|
|
/* f03012c: afa40058 */ sw $a0,0x58($sp)
|
|
/* f030130: afa60060 */ sw $a2,0x60($sp)
|
|
/* f030134: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f030138: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03013c: afa20054 */ sw $v0,0x54($sp)
|
|
/* f030140: 8fa40058 */ lw $a0,0x58($sp)
|
|
/* f030144: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f030148: 00002825 */ or $a1,$zero,$zero
|
|
/* f03014c: 3c0f8007 */ lui $t7,%hi(var8006801c)
|
|
/* f030150: 25ef801c */ addiu $t7,$t7,%lo(var8006801c)
|
|
/* f030154: 8fa60058 */ lw $a2,0x58($sp)
|
|
/* f030158: 8de10000 */ lw $at,0x0($t7)
|
|
/* f03015c: 8de80004 */ lw $t0,0x4($t7)
|
|
/* f030160: 27ae0040 */ addiu $t6,$sp,0x40
|
|
/* f030164: 00402825 */ or $a1,$v0,$zero
|
|
/* f030168: adc10000 */ sw $at,0x0($t6)
|
|
/* f03016c: 10c00003 */ beqz $a2,.L0f03017c
|
|
/* f030170: adc80004 */ sw $t0,0x4($t6)
|
|
/* f030174: 10000002 */ b .L0f030180
|
|
/* f030178: 90c702fe */ lbu $a3,0x2fe($a2)
|
|
.L0f03017c:
|
|
/* f03017c: 00003825 */ or $a3,$zero,$zero
|
|
.L0f030180:
|
|
/* f030180: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f030184: 50800036 */ beqzl $a0,.L0f030260
|
|
/* f030188: afa50050 */ sw $a1,0x50($sp)
|
|
/* f03018c: 50400034 */ beqzl $v0,.L0f030260
|
|
/* f030190: afa50050 */ sw $a1,0x50($sp)
|
|
/* f030194: 00c02025 */ or $a0,$a2,$zero
|
|
/* f030198: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03019c: 0fc0a20d */ jal chrGetEquippedWeaponPropWithCheck
|
|
/* f0301a0: afa7003c */ sw $a3,0x3c($sp)
|
|
/* f0301a4: afa20038 */ sw $v0,0x38($sp)
|
|
/* f0301a8: 8fa40058 */ lw $a0,0x58($sp)
|
|
/* f0301ac: 0fc0a20d */ jal chrGetEquippedWeaponPropWithCheck
|
|
/* f0301b0: 00002825 */ or $a1,$zero,$zero
|
|
/* f0301b4: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f0301b8: 8fa7003c */ lw $a3,0x3c($sp)
|
|
/* f0301bc: 2c460001 */ sltiu $a2,$v0,0x1
|
|
/* f0301c0: 1120001f */ beqz $t1,.L0f030240
|
|
/* f0301c4: 000741c0 */ sll $t0,$a3,0x7
|
|
/* f0301c8: 1040001d */ beqz $v0,.L0f030240
|
|
/* f0301cc: 00000000 */ nop
|
|
/* f0301d0: 0c004b70 */ jal random
|
|
/* f0301d4: afa7003c */ sw $a3,0x3c($sp)
|
|
/* f0301d8: 30460001 */ andi $a2,$v0,0x1
|
|
/* f0301dc: 0c004b70 */ jal random
|
|
/* f0301e0: afa6004c */ sw $a2,0x4c($sp)
|
|
/* f0301e4: 24010003 */ addiu $at,$zero,0x3
|
|
/* f0301e8: 0041001b */ divu $zero,$v0,$at
|
|
/* f0301ec: 00005010 */ mfhi $t2
|
|
/* f0301f0: 8fa6004c */ lw $a2,0x4c($sp)
|
|
/* f0301f4: 15400009 */ bnez $t2,.L0f03021c
|
|
/* f0301f8: 8fa7003c */ lw $a3,0x3c($sp)
|
|
/* f0301fc: 3c0c8006 */ lui $t4,%hi(var800662d8)
|
|
/* f030200: 258c62d8 */ addiu $t4,$t4,%lo(var800662d8)
|
|
/* f030204: 000759c0 */ sll $t3,$a3,0x7
|
|
/* f030208: 2ccd0001 */ sltiu $t5,$a2,0x1
|
|
/* f03020c: 016c2821 */ addu $a1,$t3,$t4
|
|
/* f030210: afa60044 */ sw $a2,0x44($sp)
|
|
/* f030214: 1000002f */ b .L0f0302d4
|
|
/* f030218: afad0040 */ sw $t5,0x40($sp)
|
|
.L0f03021c:
|
|
/* f03021c: 3c188006 */ lui $t8,%hi(var800666c8)
|
|
/* f030220: 271866c8 */ addiu $t8,$t8,%lo(var800666c8)
|
|
/* f030224: 0007c9c0 */ sll $t9,$a3,0x7
|
|
/* f030228: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f03022c: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f030230: 03382821 */ addu $a1,$t9,$t8
|
|
/* f030234: afae0044 */ sw $t6,0x44($sp)
|
|
/* f030238: 10000026 */ b .L0f0302d4
|
|
/* f03023c: afaf0040 */ sw $t7,0x40($sp)
|
|
.L0f030240:
|
|
/* f030240: 3c098006 */ lui $t1,%hi(var800662d8)
|
|
/* f030244: 252962d8 */ addiu $t1,$t1,%lo(var800662d8)
|
|
/* f030248: 2cca0001 */ sltiu $t2,$a2,0x1
|
|
/* f03024c: 01092821 */ addu $a1,$t0,$t1
|
|
/* f030250: afa60044 */ sw $a2,0x44($sp)
|
|
/* f030254: 1000001f */ b .L0f0302d4
|
|
/* f030258: afaa0040 */ sw $t2,0x40($sp)
|
|
/* f03025c: afa50050 */ sw $a1,0x50($sp)
|
|
.L0f030260:
|
|
/* f030260: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f030264: afa7003c */ sw $a3,0x3c($sp)
|
|
/* f030268: 8fa50050 */ lw $a1,0x50($sp)
|
|
/* f03026c: 14400006 */ bnez $v0,.L0f030288
|
|
/* f030270: 8fa7003c */ lw $a3,0x3c($sp)
|
|
/* f030274: 00a02025 */ or $a0,$a1,$zero
|
|
/* f030278: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f03027c: afa7003c */ sw $a3,0x3c($sp)
|
|
/* f030280: 1040000b */ beqz $v0,.L0f0302b0
|
|
/* f030284: 8fa7003c */ lw $a3,0x3c($sp)
|
|
.L0f030288:
|
|
/* f030288: 8fa20054 */ lw $v0,0x54($sp)
|
|
/* f03028c: 3c0d8006 */ lui $t5,%hi(var800662d8)
|
|
/* f030290: 25ad62d8 */ addiu $t5,$t5,%lo(var800662d8)
|
|
/* f030294: 0002302b */ sltu $a2,$zero,$v0
|
|
/* f030298: 000761c0 */ sll $t4,$a3,0x7
|
|
/* f03029c: 2cd90001 */ sltiu $t9,$a2,0x1
|
|
/* f0302a0: 018d2821 */ addu $a1,$t4,$t5
|
|
/* f0302a4: afa60044 */ sw $a2,0x44($sp)
|
|
/* f0302a8: 1000000a */ b .L0f0302d4
|
|
/* f0302ac: afb90040 */ sw $t9,0x40($sp)
|
|
.L0f0302b0:
|
|
/* f0302b0: 8fa20054 */ lw $v0,0x54($sp)
|
|
/* f0302b4: 3c0f8006 */ lui $t7,%hi(var80065ae0)
|
|
/* f0302b8: 25ef5ae0 */ addiu $t7,$t7,%lo(var80065ae0)
|
|
/* f0302bc: 0002302b */ sltu $a2,$zero,$v0
|
|
/* f0302c0: 000771c0 */ sll $t6,$a3,0x7
|
|
/* f0302c4: 2cc80001 */ sltiu $t0,$a2,0x1
|
|
/* f0302c8: 01cf2821 */ addu $a1,$t6,$t7
|
|
/* f0302cc: afa60044 */ sw $a2,0x44($sp)
|
|
/* f0302d0: afa80040 */ sw $t0,0x40($sp)
|
|
.L0f0302d4:
|
|
/* f0302d4: 8fa9005c */ lw $t1,0x5c($sp)
|
|
/* f0302d8: 8faa0060 */ lw $t2,0x60($sp)
|
|
/* f0302dc: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f0302e0: afab0018 */ sw $t3,0x18($sp)
|
|
/* f0302e4: 8fa40058 */ lw $a0,0x58($sp)
|
|
/* f0302e8: 27a70040 */ addiu $a3,$sp,0x40
|
|
/* f0302ec: afa90010 */ sw $t1,0x10($sp)
|
|
/* f0302f0: 0fc0c4e1 */ jal func0f031384
|
|
/* f0302f4: afaa0014 */ sw $t2,0x14($sp)
|
|
/* f0302f8: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f0302fc: 27bd0058 */ addiu $sp,$sp,0x58
|
|
/* f030300: 03e00008 */ jr $ra
|
|
/* f030304: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrAttackLie
|
|
/* f030308: 27bdffb8 */ addiu $sp,$sp,-72
|
|
/* f03030c: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f030310: afa5004c */ sw $a1,0x4c($sp)
|
|
/* f030314: afa60050 */ sw $a2,0x50($sp)
|
|
/* f030318: 00002825 */ or $a1,$zero,$zero
|
|
/* f03031c: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f030320: afa40048 */ sw $a0,0x48($sp)
|
|
/* f030324: 3c0e8007 */ lui $t6,%hi(var80068024)
|
|
/* f030328: 25ce8024 */ addiu $t6,$t6,%lo(var80068024)
|
|
/* f03032c: 8dc10000 */ lw $at,0x0($t6)
|
|
/* f030330: 8fa9004c */ lw $t1,0x4c($sp)
|
|
/* f030334: 8fa40048 */ lw $a0,0x48($sp)
|
|
/* f030338: 27a70034 */ addiu $a3,$sp,0x34
|
|
/* f03033c: ace10000 */ sw $at,0x0($a3)
|
|
/* f030340: 8dd90004 */ lw $t9,0x4($t6)
|
|
/* f030344: 312a0020 */ andi $t2,$t1,0x20
|
|
/* f030348: 00404025 */ or $t0,$v0,$zero
|
|
/* f03034c: 11400004 */ beqz $t2,.L0f030360
|
|
/* f030350: acf90004 */ sw $t9,0x4($a3)
|
|
/* f030354: afa00038 */ sw $zero,0x38($sp)
|
|
/* f030358: 10000005 */ b .L0f030370
|
|
/* f03035c: afa00034 */ sw $zero,0x34($sp)
|
|
.L0f030360:
|
|
/* f030360: 2c430001 */ sltiu $v1,$v0,0x1
|
|
/* f030364: 2c6b0001 */ sltiu $t3,$v1,0x1
|
|
/* f030368: afa30038 */ sw $v1,0x38($sp)
|
|
/* f03036c: afab0034 */ sw $t3,0x34($sp)
|
|
.L0f030370:
|
|
/* f030370: 8fac0050 */ lw $t4,0x50($sp)
|
|
/* f030374: 3c058006 */ lui $a1,%hi(var80067e50)
|
|
/* f030378: 24a57e50 */ addiu $a1,$a1,%lo(var80067e50)
|
|
/* f03037c: 2d060001 */ sltiu $a2,$t0,0x1
|
|
/* f030380: afa90010 */ sw $t1,0x10($sp)
|
|
/* f030384: afa00018 */ sw $zero,0x18($sp)
|
|
/* f030388: 0fc0c4e1 */ jal func0f031384
|
|
/* f03038c: afac0014 */ sw $t4,0x14($sp)
|
|
/* f030390: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f030394: 27bd0048 */ addiu $sp,$sp,0x48
|
|
/* f030398: 03e00008 */ jr $ra
|
|
/* f03039c: 00000000 */ nop
|
|
);
|
|
|
|
// Mismatch because some instructions are swapped
|
|
//void chrAttackLie(struct chrdata *chr, s32 entitytype, s32 entityid)
|
|
//{
|
|
// u32 stack1[2];
|
|
// struct prop *gun = chrGetEquippedWeaponProp(chr, 0);
|
|
// s32 firing[2] = {false, false};
|
|
// u32 stack2[2];
|
|
//
|
|
// if (entitytype & 0x20) {
|
|
// firing[1] = false;
|
|
// firing[0] = false;
|
|
// } else {
|
|
// firing[1] = gun == NULL;
|
|
// firing[0] = !firing[1];
|
|
// }
|
|
//
|
|
// func0f031384(chr, &var80067e50, gun == NULL, firing, entitytype, entityid, 0);
|
|
//}
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrAttackKneel
|
|
/* f0303a0: 27bdffa8 */ addiu $sp,$sp,-88
|
|
/* f0303a4: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f0303a8: afa5005c */ sw $a1,0x5c($sp)
|
|
/* f0303ac: afa40058 */ sw $a0,0x58($sp)
|
|
/* f0303b0: afa60060 */ sw $a2,0x60($sp)
|
|
/* f0303b4: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f0303b8: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f0303bc: afa20054 */ sw $v0,0x54($sp)
|
|
/* f0303c0: 8fa40058 */ lw $a0,0x58($sp)
|
|
/* f0303c4: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f0303c8: 00002825 */ or $a1,$zero,$zero
|
|
/* f0303cc: 3c0f8007 */ lui $t7,%hi(var8006802c)
|
|
/* f0303d0: 25ef802c */ addiu $t7,$t7,%lo(var8006802c)
|
|
/* f0303d4: 8fa60058 */ lw $a2,0x58($sp)
|
|
/* f0303d8: 8de10000 */ lw $at,0x0($t7)
|
|
/* f0303dc: 8de80004 */ lw $t0,0x4($t7)
|
|
/* f0303e0: 27ae0040 */ addiu $t6,$sp,0x40
|
|
/* f0303e4: 00402825 */ or $a1,$v0,$zero
|
|
/* f0303e8: adc10000 */ sw $at,0x0($t6)
|
|
/* f0303ec: 10c00003 */ beqz $a2,.L0f0303fc
|
|
/* f0303f0: adc80004 */ sw $t0,0x4($t6)
|
|
/* f0303f4: 10000002 */ b .L0f030400
|
|
/* f0303f8: 90c702fe */ lbu $a3,0x2fe($a2)
|
|
.L0f0303fc:
|
|
/* f0303fc: 00003825 */ or $a3,$zero,$zero
|
|
.L0f030400:
|
|
/* f030400: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f030404: 50800036 */ beqzl $a0,.L0f0304e0
|
|
/* f030408: afa50050 */ sw $a1,0x50($sp)
|
|
/* f03040c: 50400034 */ beqzl $v0,.L0f0304e0
|
|
/* f030410: afa50050 */ sw $a1,0x50($sp)
|
|
/* f030414: 00c02025 */ or $a0,$a2,$zero
|
|
/* f030418: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03041c: 0fc0a20d */ jal chrGetEquippedWeaponPropWithCheck
|
|
/* f030420: afa7003c */ sw $a3,0x3c($sp)
|
|
/* f030424: afa20038 */ sw $v0,0x38($sp)
|
|
/* f030428: 8fa40058 */ lw $a0,0x58($sp)
|
|
/* f03042c: 0fc0a20d */ jal chrGetEquippedWeaponPropWithCheck
|
|
/* f030430: 00002825 */ or $a1,$zero,$zero
|
|
/* f030434: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f030438: 8fa7003c */ lw $a3,0x3c($sp)
|
|
/* f03043c: 2c460001 */ sltiu $a2,$v0,0x1
|
|
/* f030440: 1120001f */ beqz $t1,.L0f0304c0
|
|
/* f030444: 000741c0 */ sll $t0,$a3,0x7
|
|
/* f030448: 1040001d */ beqz $v0,.L0f0304c0
|
|
/* f03044c: 00000000 */ nop
|
|
/* f030450: 0c004b70 */ jal random
|
|
/* f030454: afa7003c */ sw $a3,0x3c($sp)
|
|
/* f030458: 30460001 */ andi $a2,$v0,0x1
|
|
/* f03045c: 0c004b70 */ jal random
|
|
/* f030460: afa6004c */ sw $a2,0x4c($sp)
|
|
/* f030464: 24010003 */ addiu $at,$zero,0x3
|
|
/* f030468: 0041001b */ divu $zero,$v0,$at
|
|
/* f03046c: 00005010 */ mfhi $t2
|
|
/* f030470: 8fa6004c */ lw $a2,0x4c($sp)
|
|
/* f030474: 15400009 */ bnez $t2,.L0f03049c
|
|
/* f030478: 8fa7003c */ lw $a3,0x3c($sp)
|
|
/* f03047c: 3c0c8006 */ lui $t4,%hi(var80066ef0)
|
|
/* f030480: 258c6ef0 */ addiu $t4,$t4,%lo(var80066ef0)
|
|
/* f030484: 000759c0 */ sll $t3,$a3,0x7
|
|
/* f030488: 2ccd0001 */ sltiu $t5,$a2,0x1
|
|
/* f03048c: 016c2821 */ addu $a1,$t3,$t4
|
|
/* f030490: afa60044 */ sw $a2,0x44($sp)
|
|
/* f030494: 1000002f */ b .L0f030554
|
|
/* f030498: afad0040 */ sw $t5,0x40($sp)
|
|
.L0f03049c:
|
|
/* f03049c: 3c188006 */ lui $t8,%hi(var80067328)
|
|
/* f0304a0: 27187328 */ addiu $t8,$t8,%lo(var80067328)
|
|
/* f0304a4: 0007c9c0 */ sll $t9,$a3,0x7
|
|
/* f0304a8: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0304ac: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f0304b0: 03382821 */ addu $a1,$t9,$t8
|
|
/* f0304b4: afae0044 */ sw $t6,0x44($sp)
|
|
/* f0304b8: 10000026 */ b .L0f030554
|
|
/* f0304bc: afaf0040 */ sw $t7,0x40($sp)
|
|
.L0f0304c0:
|
|
/* f0304c0: 3c098006 */ lui $t1,%hi(var80066ef0)
|
|
/* f0304c4: 25296ef0 */ addiu $t1,$t1,%lo(var80066ef0)
|
|
/* f0304c8: 2cca0001 */ sltiu $t2,$a2,0x1
|
|
/* f0304cc: 01092821 */ addu $a1,$t0,$t1
|
|
/* f0304d0: afa60044 */ sw $a2,0x44($sp)
|
|
/* f0304d4: 1000001f */ b .L0f030554
|
|
/* f0304d8: afaa0040 */ sw $t2,0x40($sp)
|
|
/* f0304dc: afa50050 */ sw $a1,0x50($sp)
|
|
.L0f0304e0:
|
|
/* f0304e0: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f0304e4: afa7003c */ sw $a3,0x3c($sp)
|
|
/* f0304e8: 8fa50050 */ lw $a1,0x50($sp)
|
|
/* f0304ec: 14400006 */ bnez $v0,.L0f030508
|
|
/* f0304f0: 8fa7003c */ lw $a3,0x3c($sp)
|
|
/* f0304f4: 00a02025 */ or $a0,$a1,$zero
|
|
/* f0304f8: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f0304fc: afa7003c */ sw $a3,0x3c($sp)
|
|
/* f030500: 1040000b */ beqz $v0,.L0f030530
|
|
/* f030504: 8fa7003c */ lw $a3,0x3c($sp)
|
|
.L0f030508:
|
|
/* f030508: 8fa20054 */ lw $v0,0x54($sp)
|
|
/* f03050c: 3c0d8006 */ lui $t5,%hi(var80066ef0)
|
|
/* f030510: 25ad6ef0 */ addiu $t5,$t5,%lo(var80066ef0)
|
|
/* f030514: 0002302b */ sltu $a2,$zero,$v0
|
|
/* f030518: 000761c0 */ sll $t4,$a3,0x7
|
|
/* f03051c: 2cd90001 */ sltiu $t9,$a2,0x1
|
|
/* f030520: 018d2821 */ addu $a1,$t4,$t5
|
|
/* f030524: afa60044 */ sw $a2,0x44($sp)
|
|
/* f030528: 1000000a */ b .L0f030554
|
|
/* f03052c: afb90040 */ sw $t9,0x40($sp)
|
|
.L0f030530:
|
|
/* f030530: 8fa20054 */ lw $v0,0x54($sp)
|
|
/* f030534: 3c0f8006 */ lui $t7,%hi(var80066a70)
|
|
/* f030538: 25ef6a70 */ addiu $t7,$t7,%lo(var80066a70)
|
|
/* f03053c: 0002302b */ sltu $a2,$zero,$v0
|
|
/* f030540: 000771c0 */ sll $t6,$a3,0x7
|
|
/* f030544: 2cc80001 */ sltiu $t0,$a2,0x1
|
|
/* f030548: 01cf2821 */ addu $a1,$t6,$t7
|
|
/* f03054c: afa60044 */ sw $a2,0x44($sp)
|
|
/* f030550: afa80040 */ sw $t0,0x40($sp)
|
|
.L0f030554:
|
|
/* f030554: 8fa9005c */ lw $t1,0x5c($sp)
|
|
/* f030558: 8faa0060 */ lw $t2,0x60($sp)
|
|
/* f03055c: 8fa40058 */ lw $a0,0x58($sp)
|
|
/* f030560: 27a70040 */ addiu $a3,$sp,0x40
|
|
/* f030564: afa00018 */ sw $zero,0x18($sp)
|
|
/* f030568: afa90010 */ sw $t1,0x10($sp)
|
|
/* f03056c: 0fc0c4e1 */ jal func0f031384
|
|
/* f030570: afaa0014 */ sw $t2,0x14($sp)
|
|
/* f030574: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f030578: 27bd0058 */ addiu $sp,$sp,0x58
|
|
/* f03057c: 03e00008 */ jr $ra
|
|
/* f030580: 00000000 */ nop
|
|
);
|
|
|
|
//void chrAttackKneel(struct chrdata *chr, s32 entitytype, s32 entityid)
|
|
//{
|
|
// struct prop *leftprop = chrGetEquippedWeaponProp(chr, HAND_LEFT); // 54
|
|
// struct prop *rightprop = chrGetEquippedWeaponProp(chr, HAND_RIGHT); // 50
|
|
// s32 sp4c;
|
|
// s32 sp48;
|
|
// bool firing[2] = {false, false}; // 40, 44 (var8006802c and var80068030)
|
|
// s32 race = CHRRACE(chr); // 3c
|
|
// struct prop *leftprop2; // 38
|
|
// struct prop *rightprop2;
|
|
// struct var80065750 **iVar5;
|
|
//
|
|
// if (leftprop && rightprop) {
|
|
// // Holding two items
|
|
// leftprop2 = chrGetEquippedWeaponPropWithCheck(chr, HAND_LEFT);
|
|
// rightprop2 = chrGetEquippedWeaponPropWithCheck(chr, HAND_RIGHT);
|
|
//
|
|
// if (leftprop2 && rightprop2) {
|
|
// // And both are capable of firing
|
|
// sp48 = random() % 2;
|
|
//
|
|
// if (random() % 3 == 0) {
|
|
// // 1 in 4 chance of firing just one of them (50/50 as to which)
|
|
// iVar5 = var80066ef0[race];
|
|
// firing[HAND_LEFT] = sp48;
|
|
// firing[HAND_RIGHT] = !firing[HAND_LEFT];
|
|
// } else {
|
|
// // 3 in 4 chance of firing both
|
|
// iVar5 = var80067328[race];
|
|
// firing[HAND_LEFT] = true;
|
|
// firing[HAND_RIGHT] = true;
|
|
// }
|
|
// } else {
|
|
// // Fire whichever one is capable
|
|
// sp48 = !rightprop2;
|
|
// iVar5 = var80066ef0[race];
|
|
// firing[HAND_LEFT] = !rightprop2;
|
|
// firing[HAND_RIGHT] = !firing[HAND_LEFT];
|
|
// }
|
|
// } else {
|
|
// if (weaponIsOneHanded(leftprop) || weaponIsOneHanded(rightprop)) {
|
|
// // Light weight weapon
|
|
// iVar5 = var80066ef0[race];
|
|
// sp48 = (bool)leftprop;
|
|
// } else {
|
|
// // Heavy weapon
|
|
// iVar5 = var80066a70[race];
|
|
// sp48 = (bool)leftprop;
|
|
// }
|
|
//
|
|
// firing[HAND_LEFT] = (bool)leftprop;
|
|
// firing[HAND_RIGHT] = !firing[HAND_LEFT];
|
|
// }
|
|
//
|
|
// func0f031384(chr, iVar5, sp48, firing, entitytype, entityid, 0);
|
|
//}
|
|
|
|
void chrAttackWalkChooseAnimation(struct chrdata *chr)
|
|
{
|
|
if (chr->aibot == NULL) {
|
|
modelSetAnimation(chr->model, chr->act_attackwalk.animfloats->animnum,
|
|
chr->act_attackwalk.flip, chr->act_attackwalk.animfloats->unk10, 0.5, 16);
|
|
}
|
|
}
|
|
|
|
u32 var8006802c = 0x00000000;
|
|
u32 var80068030 = 0x00000000;
|
|
u32 var80068034 = 0x00000000;
|
|
u32 var80068038 = 0x00000000;
|
|
u32 var8006803c = 0x00000000;
|
|
u32 var80068040 = 0x00000000;
|
|
u32 var80068044 = 0x00000000;
|
|
u32 var80068048 = 0x00000000;
|
|
u32 var8006804c = 0x00000000;
|
|
u32 var80068050 = 0x00000000;
|
|
u32 var80068054 = 0x00000000;
|
|
u32 var80068058 = 0x00000000;
|
|
u32 var8006805c = 0x00000000;
|
|
u32 var80068060 = 0x00000000;
|
|
u32 var80068064 = 0x00000000;
|
|
u32 var80068068 = 0x00000000;
|
|
u32 var8006806c = 0x00000000;
|
|
u32 var80068070 = 0x00000000;
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrAttackWalk
|
|
/* f0305e0: 27bdff88 */ addiu $sp,$sp,-120
|
|
/* f0305e4: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f0305e8: afb10018 */ sw $s1,0x18($sp)
|
|
/* f0305ec: afa5007c */ sw $a1,0x7c($sp)
|
|
/* f0305f0: 00808825 */ or $s1,$a0,$zero
|
|
/* f0305f4: afb00014 */ sw $s0,0x14($sp)
|
|
/* f0305f8: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f0305fc: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f030600: 00408025 */ or $s0,$v0,$zero
|
|
/* f030604: 02202025 */ or $a0,$s1,$zero
|
|
/* f030608: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f03060c: 00002825 */ or $a1,$zero,$zero
|
|
/* f030610: 3c0f8007 */ lui $t7,%hi(var80068034)
|
|
/* f030614: 25ef8034 */ addiu $t7,$t7,%lo(var80068034)
|
|
/* f030618: 8de10000 */ lw $at,0x0($t7)
|
|
/* f03061c: 8de80004 */ lw $t0,0x4($t7)
|
|
/* f030620: 27ae0060 */ addiu $t6,$sp,0x60
|
|
/* f030624: 3c0a8007 */ lui $t2,%hi(var8006803c)
|
|
/* f030628: 254a803c */ addiu $t2,$t2,%lo(var8006803c)
|
|
/* f03062c: adc10000 */ sw $at,0x0($t6)
|
|
/* f030630: adc80004 */ sw $t0,0x4($t6)
|
|
/* f030634: 8d4d0004 */ lw $t5,0x4($t2)
|
|
/* f030638: 8d410000 */ lw $at,0x0($t2)
|
|
/* f03063c: 27a90058 */ addiu $t1,$sp,0x58
|
|
/* f030640: 3c188007 */ lui $t8,%hi(var80068044)
|
|
/* f030644: 27188044 */ addiu $t8,$t8,%lo(var80068044)
|
|
/* f030648: ad2d0004 */ sw $t5,0x4($t1)
|
|
/* f03064c: ad210000 */ sw $at,0x0($t1)
|
|
/* f030650: 8f080004 */ lw $t0,0x4($t8)
|
|
/* f030654: 8f010000 */ lw $at,0x0($t8)
|
|
/* f030658: 27b90050 */ addiu $t9,$sp,0x50
|
|
/* f03065c: 00402825 */ or $a1,$v0,$zero
|
|
/* f030660: af280004 */ sw $t0,0x4($t9)
|
|
/* f030664: 12000048 */ beqz $s0,.L0f030788
|
|
/* f030668: af210000 */ sw $at,0x0($t9)
|
|
/* f03066c: 10400046 */ beqz $v0,.L0f030788
|
|
/* f030670: 02202025 */ or $a0,$s1,$zero
|
|
/* f030674: 0fc0a20d */ jal chrGetEquippedWeaponPropWithCheck
|
|
/* f030678: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03067c: 00408025 */ or $s0,$v0,$zero
|
|
/* f030680: 02202025 */ or $a0,$s1,$zero
|
|
/* f030684: 0fc0a20d */ jal chrGetEquippedWeaponPropWithCheck
|
|
/* f030688: 00002825 */ or $a1,$zero,$zero
|
|
/* f03068c: 1200000d */ beqz $s0,.L0f0306c4
|
|
/* f030690: 00001825 */ or $v1,$zero,$zero
|
|
/* f030694: 5040000c */ beqzl $v0,.L0f0306c8
|
|
/* f030698: 2c4b0001 */ sltiu $t3,$v0,0x1
|
|
/* f03069c: 0c004b70 */ jal random
|
|
/* f0306a0: 00000000 */ nop
|
|
/* f0306a4: 304c0001 */ andi $t4,$v0,0x1
|
|
/* f0306a8: 0c004b70 */ jal random
|
|
/* f0306ac: afac0068 */ sw $t4,0x68($sp)
|
|
/* f0306b0: 24010003 */ addiu $at,$zero,0x3
|
|
/* f0306b4: 0041001b */ divu $zero,$v0,$at
|
|
/* f0306b8: 00001810 */ mfhi $v1
|
|
/* f0306bc: 10000003 */ b .L0f0306cc
|
|
/* f0306c0: 00000000 */ nop
|
|
.L0f0306c4:
|
|
/* f0306c4: 2c4b0001 */ sltiu $t3,$v0,0x1
|
|
.L0f0306c8:
|
|
/* f0306c8: afab0068 */ sw $t3,0x68($sp)
|
|
.L0f0306cc:
|
|
/* f0306cc: 14600013 */ bnez $v1,.L0f03071c
|
|
/* f0306d0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0306d4: 8fa9007c */ lw $t1,0x7c($sp)
|
|
/* f0306d8: 3c0d8006 */ lui $t5,%hi(var80067aa0)
|
|
/* f0306dc: 3c0a8006 */ lui $t2,%hi(var80067ae8)
|
|
/* f0306e0: 11200004 */ beqz $t1,.L0f0306f4
|
|
/* f0306e4: 25ad7aa0 */ addiu $t5,$t5,%lo(var80067aa0)
|
|
/* f0306e8: 254a7ae8 */ addiu $t2,$t2,%lo(var80067ae8)
|
|
/* f0306ec: 10000002 */ b .L0f0306f8
|
|
/* f0306f0: afaa0074 */ sw $t2,0x74($sp)
|
|
.L0f0306f4:
|
|
/* f0306f4: afad0074 */ sw $t5,0x74($sp)
|
|
.L0f0306f8:
|
|
/* f0306f8: 8faf0068 */ lw $t7,0x68($sp)
|
|
/* f0306fc: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f030700: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f030704: 11e00003 */ beqz $t7,.L0f030714
|
|
/* f030708: 00000000 */ nop
|
|
/* f03070c: 1000004a */ b .L0f030838
|
|
/* f030710: afae0064 */ sw $t6,0x64($sp)
|
|
.L0f030714:
|
|
/* f030714: 10000048 */ b .L0f030838
|
|
/* f030718: afa20060 */ sw $v0,0x60($sp)
|
|
.L0f03071c:
|
|
/* f03071c: 1461000e */ bne $v1,$at,.L0f030758
|
|
/* f030720: 8fac007c */ lw $t4,0x7c($sp)
|
|
/* f030724: 8fb9007c */ lw $t9,0x7c($sp)
|
|
/* f030728: 3c088006 */ lui $t0,%hi(var80067b30)
|
|
/* f03072c: 25087b30 */ addiu $t0,$t0,%lo(var80067b30)
|
|
/* f030730: 13200005 */ beqz $t9,.L0f030748
|
|
/* f030734: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f030738: 3c188006 */ lui $t8,%hi(var80067b78)
|
|
/* f03073c: 27187b78 */ addiu $t8,$t8,%lo(var80067b78)
|
|
/* f030740: 10000002 */ b .L0f03074c
|
|
/* f030744: afb80074 */ sw $t8,0x74($sp)
|
|
.L0f030748:
|
|
/* f030748: afa80074 */ sw $t0,0x74($sp)
|
|
.L0f03074c:
|
|
/* f03074c: afa20064 */ sw $v0,0x64($sp)
|
|
/* f030750: 10000039 */ b .L0f030838
|
|
/* f030754: afa20060 */ sw $v0,0x60($sp)
|
|
.L0f030758:
|
|
/* f030758: 11800005 */ beqz $t4,.L0f030770
|
|
/* f03075c: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f030760: 3c0b8006 */ lui $t3,%hi(var80067c08)
|
|
/* f030764: 256b7c08 */ addiu $t3,$t3,%lo(var80067c08)
|
|
/* f030768: 10000004 */ b .L0f03077c
|
|
/* f03076c: afab0074 */ sw $t3,0x74($sp)
|
|
.L0f030770:
|
|
/* f030770: 3c098006 */ lui $t1,%hi(var80067bc0)
|
|
/* f030774: 25297bc0 */ addiu $t1,$t1,%lo(var80067bc0)
|
|
/* f030778: afa90074 */ sw $t1,0x74($sp)
|
|
.L0f03077c:
|
|
/* f03077c: afa20064 */ sw $v0,0x64($sp)
|
|
/* f030780: 1000002d */ b .L0f030838
|
|
/* f030784: afa20060 */ sw $v0,0x60($sp)
|
|
.L0f030788:
|
|
/* f030788: 02002025 */ or $a0,$s0,$zero
|
|
/* f03078c: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f030790: afa5006c */ sw $a1,0x6c($sp)
|
|
/* f030794: 14400005 */ bnez $v0,.L0f0307ac
|
|
/* f030798: 8fa5006c */ lw $a1,0x6c($sp)
|
|
/* f03079c: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f0307a0: 00a02025 */ or $a0,$a1,$zero
|
|
/* f0307a4: 50400014 */ beqzl $v0,.L0f0307f8
|
|
/* f0307a8: 8fb9007c */ lw $t9,0x7c($sp)
|
|
.L0f0307ac:
|
|
/* f0307ac: 8faa007c */ lw $t2,0x7c($sp)
|
|
/* f0307b0: 0010102b */ sltu $v0,$zero,$s0
|
|
/* f0307b4: afa20068 */ sw $v0,0x68($sp)
|
|
/* f0307b8: 11400005 */ beqz $t2,.L0f0307d0
|
|
/* f0307bc: 3c0f8006 */ lui $t7,%hi(var80067aa0)
|
|
/* f0307c0: 3c0d8006 */ lui $t5,%hi(var80067ae8)
|
|
/* f0307c4: 25ad7ae8 */ addiu $t5,$t5,%lo(var80067ae8)
|
|
/* f0307c8: 10000003 */ b .L0f0307d8
|
|
/* f0307cc: afad0074 */ sw $t5,0x74($sp)
|
|
.L0f0307d0:
|
|
/* f0307d0: 25ef7aa0 */ addiu $t7,$t7,%lo(var80067aa0)
|
|
/* f0307d4: afaf0074 */ sw $t7,0x74($sp)
|
|
.L0f0307d8:
|
|
/* f0307d8: 10400003 */ beqz $v0,.L0f0307e8
|
|
/* f0307dc: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0307e0: 10000015 */ b .L0f030838
|
|
/* f0307e4: afae0064 */ sw $t6,0x64($sp)
|
|
.L0f0307e8:
|
|
/* f0307e8: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0307ec: 10000012 */ b .L0f030838
|
|
/* f0307f0: afa20060 */ sw $v0,0x60($sp)
|
|
/* f0307f4: 8fb9007c */ lw $t9,0x7c($sp)
|
|
.L0f0307f8:
|
|
/* f0307f8: 0010102b */ sltu $v0,$zero,$s0
|
|
/* f0307fc: afa20068 */ sw $v0,0x68($sp)
|
|
/* f030800: 13200005 */ beqz $t9,.L0f030818
|
|
/* f030804: 3c088006 */ lui $t0,%hi(var80067a10)
|
|
/* f030808: 3c188006 */ lui $t8,%hi(var80067a58)
|
|
/* f03080c: 27187a58 */ addiu $t8,$t8,%lo(var80067a58)
|
|
/* f030810: 10000003 */ b .L0f030820
|
|
/* f030814: afb80074 */ sw $t8,0x74($sp)
|
|
.L0f030818:
|
|
/* f030818: 25087a10 */ addiu $t0,$t0,%lo(var80067a10)
|
|
/* f03081c: afa80074 */ sw $t0,0x74($sp)
|
|
.L0f030820:
|
|
/* f030820: 10400003 */ beqz $v0,.L0f030830
|
|
/* f030824: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f030828: 10000003 */ b .L0f030838
|
|
/* f03082c: afac0064 */ sw $t4,0x64($sp)
|
|
.L0f030830:
|
|
/* f030830: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f030834: afa20060 */ sw $v0,0x60($sp)
|
|
.L0f030838:
|
|
/* f030838: 00008025 */ or $s0,$zero,$zero
|
|
/* f03083c: 00003025 */ or $a2,$zero,$zero
|
|
/* f030840: 27a70060 */ addiu $a3,$sp,0x60
|
|
.L0f030844:
|
|
/* f030844: 8ceb0000 */ lw $t3,0x0($a3)
|
|
/* f030848: 02202025 */ or $a0,$s1,$zero
|
|
/* f03084c: 02002825 */ or $a1,$s0,$zero
|
|
/* f030850: 51600032 */ beqzl $t3,.L0f03091c
|
|
/* f030854: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f030858: afa60034 */ sw $a2,0x34($sp)
|
|
/* f03085c: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f030860: afa70030 */ sw $a3,0x30($sp)
|
|
/* f030864: 8c430004 */ lw $v1,0x4($v0)
|
|
/* f030868: 9064005c */ lbu $a0,0x5c($v1)
|
|
/* f03086c: 9065005f */ lbu $a1,0x5f($v1)
|
|
/* f030870: 0fc2c7ba */ jal weaponGetMaxFireRatePerTick
|
|
/* f030874: afa30044 */ sw $v1,0x44($sp)
|
|
/* f030878: 8fa30044 */ lw $v1,0x44($sp)
|
|
/* f03087c: 8fa60034 */ lw $a2,0x34($sp)
|
|
/* f030880: 1c400004 */ bgtz $v0,.L0f030894
|
|
/* f030884: 8fa70030 */ lw $a3,0x30($sp)
|
|
/* f030888: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f03088c: 03a65021 */ addu $t2,$sp,$a2
|
|
/* f030890: ad490058 */ sw $t1,0x58($t2)
|
|
.L0f030894:
|
|
/* f030894: 9062005c */ lbu $v0,0x5c($v1)
|
|
/* f030898: 24010018 */ addiu $at,$zero,0x18
|
|
/* f03089c: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f0308a0: 1041001c */ beq $v0,$at,.L0f030914
|
|
/* f0308a4: 03a67821 */ addu $t7,$sp,$a2
|
|
/* f0308a8: 24010034 */ addiu $at,$zero,0x34
|
|
/* f0308ac: 10410019 */ beq $v0,$at,.L0f030914
|
|
/* f0308b0: 24010019 */ addiu $at,$zero,0x19
|
|
/* f0308b4: 10410017 */ beq $v0,$at,.L0f030914
|
|
/* f0308b8: 24010017 */ addiu $at,$zero,0x17
|
|
/* f0308bc: 10410015 */ beq $v0,$at,.L0f030914
|
|
/* f0308c0: 3c04800a */ lui $a0,%hi(g_Vars+0x318)
|
|
/* f0308c4: 8c84a2d8 */ lw $a0,%lo(g_Vars+0x318)($a0)
|
|
/* f0308c8: 24010008 */ addiu $at,$zero,0x8
|
|
/* f0308cc: 14800009 */ bnez $a0,.L0f0308f4
|
|
/* f0308d0: 00000000 */ nop
|
|
/* f0308d4: 14410007 */ bne $v0,$at,.L0f0308f4
|
|
/* f0308d8: 00000000 */ nop
|
|
/* f0308dc: 82230006 */ lb $v1,0x6($s1)
|
|
/* f0308e0: 24010028 */ addiu $at,$zero,0x28
|
|
/* f0308e4: 10610003 */ beq $v1,$at,.L0f0308f4
|
|
/* f0308e8: 24010013 */ addiu $at,$zero,0x13
|
|
/* f0308ec: 5461000a */ bnel $v1,$at,.L0f030918
|
|
/* f0308f0: aded0050 */ sw $t5,0x50($t7)
|
|
.L0f0308f4:
|
|
/* f0308f4: 14800003 */ bnez $a0,.L0f030904
|
|
/* f0308f8: 24010009 */ addiu $at,$zero,0x9
|
|
/* f0308fc: 50410006 */ beql $v0,$at,.L0f030918
|
|
/* f030900: aded0050 */ sw $t5,0x50($t7)
|
|
.L0f030904:
|
|
/* f030904: 14800004 */ bnez $a0,.L0f030918
|
|
/* f030908: 24010013 */ addiu $at,$zero,0x13
|
|
/* f03090c: 54410003 */ bnel $v0,$at,.L0f03091c
|
|
/* f030910: 26100001 */ addiu $s0,$s0,0x1
|
|
.L0f030914:
|
|
/* f030914: aded0050 */ sw $t5,0x50($t7)
|
|
.L0f030918:
|
|
/* f030918: 26100001 */ addiu $s0,$s0,0x1
|
|
.L0f03091c:
|
|
/* f03091c: 24010002 */ addiu $at,$zero,0x2
|
|
/* f030920: 24c60004 */ addiu $a2,$a2,0x4
|
|
/* f030924: 1601ffc7 */ bne $s0,$at,.L0f030844
|
|
/* f030928: 24e70004 */ addiu $a3,$a3,0x4
|
|
/* f03092c: 240e0009 */ addiu $t6,$zero,0x9
|
|
/* f030930: a22e0007 */ sb $t6,0x7($s1)
|
|
/* f030934: 0c004b70 */ jal random
|
|
/* f030938: ae200030 */ sw $zero,0x30($s1)
|
|
/* f03093c: 3c0143c8 */ lui $at,0x43c8
|
|
/* f030940: 44812000 */ mtc1 $at,$f4
|
|
/* f030944: 3c018006 */ lui $at,%hi(var80062cac)
|
|
/* f030948: c4262cac */ lwc1 $f6,%lo(var80062cac)($at)
|
|
/* f03094c: ae200038 */ sw $zero,0x38($s1)
|
|
/* f030950: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f030954: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f030958: 44185000 */ mfc1 $t8,$f10
|
|
/* f03095c: 00000000 */ nop
|
|
/* f030960: 0058001b */ divu $zero,$v0,$t8
|
|
/* f030964: 00004010 */ mfhi $t0
|
|
/* f030968: 250c0078 */ addiu $t4,$t0,0x78
|
|
/* f03096c: ae2c0034 */ sw $t4,0x34($s1)
|
|
/* f030970: 8fab0074 */ lw $t3,0x74($sp)
|
|
/* f030974: 17000002 */ bnez $t8,.L0f030980
|
|
/* f030978: 00000000 */ nop
|
|
/* f03097c: 0007000d */ break 0x7
|
|
.L0f030980:
|
|
/* f030980: ae200040 */ sw $zero,0x40($s1)
|
|
/* f030984: 0c004b70 */ jal random
|
|
/* f030988: ae2b003c */ sw $t3,0x3c($s1)
|
|
/* f03098c: 30490001 */ andi $t1,$v0,0x1
|
|
/* f030990: ae290044 */ sw $t1,0x44($s1)
|
|
/* f030994: 8faa0064 */ lw $t2,0x64($sp)
|
|
/* f030998: 44808000 */ mtc1 $zero,$f16
|
|
/* f03099c: 8e2c0018 */ lw $t4,0x18($s1)
|
|
/* f0309a0: a22a0049 */ sb $t2,0x49($s1)
|
|
/* f0309a4: 8fad0060 */ lw $t5,0x60($sp)
|
|
/* f0309a8: 3c017fff */ lui $at,0x7fff
|
|
/* f0309ac: 3421ffff */ ori $at,$at,0xffff
|
|
/* f0309b0: a22d0048 */ sb $t5,0x48($s1)
|
|
/* f0309b4: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0309b8: 01815824 */ and $t3,$t4,$at
|
|
/* f0309bc: 8e240020 */ lw $a0,0x20($s1)
|
|
/* f0309c0: a22f004b */ sb $t7,0x4b($s1)
|
|
/* f0309c4: 8fae0058 */ lw $t6,0x58($sp)
|
|
/* f0309c8: a22e004a */ sb $t6,0x4a($s1)
|
|
/* f0309cc: 8fb90054 */ lw $t9,0x54($sp)
|
|
/* f0309d0: a239004d */ sb $t9,0x4d($s1)
|
|
/* f0309d4: 8fb80050 */ lw $t8,0x50($sp)
|
|
/* f0309d8: e6300054 */ swc1 $f16,0x54($s1)
|
|
/* f0309dc: a238004c */ sb $t8,0x4c($s1)
|
|
/* f0309e0: 8fa80068 */ lw $t0,0x68($sp)
|
|
/* f0309e4: a2200008 */ sb $zero,0x8($s1)
|
|
/* f0309e8: ae2b0018 */ sw $t3,0x18($s1)
|
|
/* f0309ec: 0c0076e5 */ jal modelIsAnimMerging
|
|
/* f0309f0: a228004e */ sb $t0,0x4e($s1)
|
|
/* f0309f4: 10400006 */ beqz $v0,.L0f030a10
|
|
/* f0309f8: 00000000 */ nop
|
|
/* f0309fc: 8e290014 */ lw $t1,0x14($s1)
|
|
/* f030a00: 3c010020 */ lui $at,0x20
|
|
/* f030a04: 01215025 */ or $t2,$t1,$at
|
|
/* f030a08: 10000008 */ b .L0f030a2c
|
|
/* f030a0c: ae2a0014 */ sw $t2,0x14($s1)
|
|
.L0f030a10:
|
|
/* f030a10: 0fc0c161 */ jal chrAttackWalkChooseAnimation
|
|
/* f030a14: 02202025 */ or $a0,$s1,$zero
|
|
/* f030a18: 8e2d0014 */ lw $t5,0x14($s1)
|
|
/* f030a1c: 3c01ffdf */ lui $at,0xffdf
|
|
/* f030a20: 3421ffff */ ori $at,$at,0xffff
|
|
/* f030a24: 01a17824 */ and $t7,$t5,$at
|
|
/* f030a28: ae2f0014 */ sw $t7,0x14($s1)
|
|
.L0f030a2c:
|
|
/* f030a2c: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f030a30: 8fb00014 */ lw $s0,0x14($sp)
|
|
/* f030a34: 8fb10018 */ lw $s1,0x18($sp)
|
|
/* f030a38: 03e00008 */ jr $ra
|
|
/* f030a3c: 27bd0078 */ addiu $sp,$sp,0x78
|
|
);
|
|
|
|
void chrAttackRollChooseAnimation(struct chrdata *chr)
|
|
{
|
|
modelSetAnimation(chr->model,chr->act_attackroll.animfloats->animnum, chr->act_attackroll.flip,
|
|
chr->act_attackroll.animfloats->unk10, chrGetRangedSpeed(chr, 0.5, 0.8), 16);
|
|
|
|
if (chr->act_attackroll.unk035 == 0) {
|
|
if (chr->act_attackroll.unk036) {
|
|
if (chr->act_attackroll.animfloats->unk24 >= 0) {
|
|
modelSetAnimEndFrame(chr->model, chr->act_attackroll.animfloats->unk24);
|
|
} else {
|
|
modelSetAnimEndFrame(chr->model, chr->act_attackroll.animfloats->unk1c);
|
|
}
|
|
} else {
|
|
if (chr->act_attackroll.animfloats->unk20 >= 0) {
|
|
modelSetAnimEndFrame(chr->model, chr->act_attackroll.animfloats->unk20);
|
|
} else if (chr->act_attackroll.animfloats->unk14 >= 0) {
|
|
modelSetAnimEndFrame(chr->model, chr->act_attackroll.animfloats->unk14);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrAttackRoll
|
|
/* f030b48: 27bdff78 */ addiu $sp,$sp,-136
|
|
/* f030b4c: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f030b50: afb10018 */ sw $s1,0x18($sp)
|
|
/* f030b54: afa5008c */ sw $a1,0x8c($sp)
|
|
/* f030b58: 00808825 */ or $s1,$a0,$zero
|
|
/* f030b5c: afb30020 */ sw $s3,0x20($sp)
|
|
/* f030b60: afb2001c */ sw $s2,0x1c($sp)
|
|
/* f030b64: afb00014 */ sw $s0,0x14($sp)
|
|
/* f030b68: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f030b6c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f030b70: 00408025 */ or $s0,$v0,$zero
|
|
/* f030b74: 02202025 */ or $a0,$s1,$zero
|
|
/* f030b78: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f030b7c: 00002825 */ or $a1,$zero,$zero
|
|
/* f030b80: 3c0f8007 */ lui $t7,%hi(var8006804c)
|
|
/* f030b84: afa00074 */ sw $zero,0x74($sp)
|
|
/* f030b88: 25ef804c */ addiu $t7,$t7,%lo(var8006804c)
|
|
/* f030b8c: 8de10000 */ lw $at,0x0($t7)
|
|
/* f030b90: 8de80004 */ lw $t0,0x4($t7)
|
|
/* f030b94: 27ae0060 */ addiu $t6,$sp,0x60
|
|
/* f030b98: 3c0a8007 */ lui $t2,%hi(var80068054)
|
|
/* f030b9c: adc10000 */ sw $at,0x0($t6)
|
|
/* f030ba0: adc80004 */ sw $t0,0x4($t6)
|
|
/* f030ba4: afa00058 */ sw $zero,0x58($sp)
|
|
/* f030ba8: 254a8054 */ addiu $t2,$t2,%lo(var80068054)
|
|
/* f030bac: 8d410000 */ lw $at,0x0($t2)
|
|
/* f030bb0: 8d4d0004 */ lw $t5,0x4($t2)
|
|
/* f030bb4: 27a90050 */ addiu $t1,$sp,0x50
|
|
/* f030bb8: 3c188007 */ lui $t8,%hi(var8006805c)
|
|
/* f030bbc: 2718805c */ addiu $t8,$t8,%lo(var8006805c)
|
|
/* f030bc0: ad210000 */ sw $at,0x0($t1)
|
|
/* f030bc4: ad2d0004 */ sw $t5,0x4($t1)
|
|
/* f030bc8: 8f080004 */ lw $t0,0x4($t8)
|
|
/* f030bcc: 8f010000 */ lw $at,0x0($t8)
|
|
/* f030bd0: 27b90048 */ addiu $t9,$sp,0x48
|
|
/* f030bd4: 00409025 */ or $s2,$v0,$zero
|
|
/* f030bd8: 24130001 */ addiu $s3,$zero,0x1
|
|
/* f030bdc: af280004 */ sw $t0,0x4($t9)
|
|
/* f030be0: 12000029 */ beqz $s0,.L0f030c88
|
|
/* f030be4: af210000 */ sw $at,0x0($t9)
|
|
/* f030be8: 10400027 */ beqz $v0,.L0f030c88
|
|
/* f030bec: 02202025 */ or $a0,$s1,$zero
|
|
/* f030bf0: 0fc0a20d */ jal chrGetEquippedWeaponPropWithCheck
|
|
/* f030bf4: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f030bf8: 00408025 */ or $s0,$v0,$zero
|
|
/* f030bfc: 02202025 */ or $a0,$s1,$zero
|
|
/* f030c00: 0fc0a20d */ jal chrGetEquippedWeaponPropWithCheck
|
|
/* f030c04: 00002825 */ or $a1,$zero,$zero
|
|
/* f030c08: 12000018 */ beqz $s0,.L0f030c6c
|
|
/* f030c0c: 2c430001 */ sltiu $v1,$v0,0x1
|
|
/* f030c10: 50400017 */ beqzl $v0,.L0f030c70
|
|
/* f030c14: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f030c18: 0c004b70 */ jal random
|
|
/* f030c1c: 00000000 */ nop
|
|
/* f030c20: 304c0001 */ andi $t4,$v0,0x1
|
|
/* f030c24: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f030c28: afac0078 */ sw $t4,0x78($sp)
|
|
/* f030c2c: 0c004b70 */ jal random
|
|
/* f030c30: afab0074 */ sw $t3,0x74($sp)
|
|
/* f030c34: 24010003 */ addiu $at,$zero,0x3
|
|
/* f030c38: 0041001b */ divu $zero,$v0,$at
|
|
/* f030c3c: 00004810 */ mfhi $t1
|
|
/* f030c40: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f030c44: 15200006 */ bnez $t1,.L0f030c60
|
|
/* f030c48: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f030c4c: 8faa0078 */ lw $t2,0x78($sp)
|
|
/* f030c50: 2d4d0001 */ sltiu $t5,$t2,0x1
|
|
/* f030c54: afad0060 */ sw $t5,0x60($sp)
|
|
/* f030c58: 1000001f */ b .L0f030cd8
|
|
/* f030c5c: afaa0064 */ sw $t2,0x64($sp)
|
|
.L0f030c60:
|
|
/* f030c60: afaf0064 */ sw $t7,0x64($sp)
|
|
/* f030c64: 1000001c */ b .L0f030cd8
|
|
/* f030c68: afae0060 */ sw $t6,0x60($sp)
|
|
.L0f030c6c:
|
|
/* f030c6c: 24190001 */ addiu $t9,$zero,0x1
|
|
.L0f030c70:
|
|
/* f030c70: 2c780001 */ sltiu $t8,$v1,0x1
|
|
/* f030c74: afa30078 */ sw $v1,0x78($sp)
|
|
/* f030c78: afb90074 */ sw $t9,0x74($sp)
|
|
/* f030c7c: afa30064 */ sw $v1,0x64($sp)
|
|
/* f030c80: 10000015 */ b .L0f030cd8
|
|
/* f030c84: afb80060 */ sw $t8,0x60($sp)
|
|
.L0f030c88:
|
|
/* f030c88: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f030c8c: 02002025 */ or $a0,$s0,$zero
|
|
/* f030c90: 54400005 */ bnezl $v0,.L0f030ca8
|
|
/* f030c94: 0010102b */ sltu $v0,$zero,$s0
|
|
/* f030c98: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f030c9c: 02402025 */ or $a0,$s2,$zero
|
|
/* f030ca0: 10400008 */ beqz $v0,.L0f030cc4
|
|
/* f030ca4: 0010102b */ sltu $v0,$zero,$s0
|
|
.L0f030ca8:
|
|
/* f030ca8: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f030cac: 2c4c0001 */ sltiu $t4,$v0,0x1
|
|
/* f030cb0: afa20078 */ sw $v0,0x78($sp)
|
|
/* f030cb4: afa80074 */ sw $t0,0x74($sp)
|
|
/* f030cb8: afa20064 */ sw $v0,0x64($sp)
|
|
/* f030cbc: 10000006 */ b .L0f030cd8
|
|
/* f030cc0: afac0060 */ sw $t4,0x60($sp)
|
|
.L0f030cc4:
|
|
/* f030cc4: 0010102b */ sltu $v0,$zero,$s0
|
|
/* f030cc8: 2c4b0001 */ sltiu $t3,$v0,0x1
|
|
/* f030ccc: afa20078 */ sw $v0,0x78($sp)
|
|
/* f030cd0: afa20064 */ sw $v0,0x64($sp)
|
|
/* f030cd4: afab0060 */ sw $t3,0x60($sp)
|
|
.L0f030cd8:
|
|
/* f030cd8: 8fa2008c */ lw $v0,0x8c($sp)
|
|
/* f030cdc: 8fa90078 */ lw $t1,0x78($sp)
|
|
/* f030ce0: 10400003 */ beqz $v0,.L0f030cf0
|
|
/* f030ce4: 00000000 */ nop
|
|
/* f030ce8: 11200005 */ beqz $t1,.L0f030d00
|
|
/* f030cec: 00000000 */ nop
|
|
.L0f030cf0:
|
|
/* f030cf0: 1440000f */ bnez $v0,.L0f030d30
|
|
/* f030cf4: 8faa0078 */ lw $t2,0x78($sp)
|
|
/* f030cf8: 1140000d */ beqz $t2,.L0f030d30
|
|
/* f030cfc: 00000000 */ nop
|
|
.L0f030d00:
|
|
/* f030d00: 0c004b70 */ jal random
|
|
/* f030d04: 00000000 */ nop
|
|
/* f030d08: 304d0001 */ andi $t5,$v0,0x1
|
|
/* f030d0c: 11a00005 */ beqz $t5,.L0f030d24
|
|
/* f030d10: 3c0e8006 */ lui $t6,%hi(var800674b8)
|
|
/* f030d14: 3c0f8006 */ lui $t7,%hi(var80067428)
|
|
/* f030d18: 25ef7428 */ addiu $t7,$t7,%lo(var80067428)
|
|
/* f030d1c: 1000000f */ b .L0f030d5c
|
|
/* f030d20: afaf0084 */ sw $t7,0x84($sp)
|
|
.L0f030d24:
|
|
/* f030d24: 25ce74b8 */ addiu $t6,$t6,%lo(var800674b8)
|
|
/* f030d28: 1000000c */ b .L0f030d5c
|
|
/* f030d2c: afae0084 */ sw $t6,0x84($sp)
|
|
.L0f030d30:
|
|
/* f030d30: 0c004b70 */ jal random
|
|
/* f030d34: 00000000 */ nop
|
|
/* f030d38: 30590001 */ andi $t9,$v0,0x1
|
|
/* f030d3c: 13200005 */ beqz $t9,.L0f030d54
|
|
/* f030d40: 3c088006 */ lui $t0,%hi(var80067500)
|
|
/* f030d44: 3c188006 */ lui $t8,%hi(var80067470)
|
|
/* f030d48: 27187470 */ addiu $t8,$t8,%lo(var80067470)
|
|
/* f030d4c: 10000003 */ b .L0f030d5c
|
|
/* f030d50: afb80084 */ sw $t8,0x84($sp)
|
|
.L0f030d54:
|
|
/* f030d54: 25087500 */ addiu $t0,$t0,%lo(var80067500)
|
|
/* f030d58: afa80084 */ sw $t0,0x84($sp)
|
|
.L0f030d5c:
|
|
/* f030d5c: 8fac0074 */ lw $t4,0x74($sp)
|
|
/* f030d60: 00008025 */ or $s0,$zero,$zero
|
|
/* f030d64: 00003025 */ or $a2,$zero,$zero
|
|
/* f030d68: 11800004 */ beqz $t4,.L0f030d7c
|
|
/* f030d6c: 27a70060 */ addiu $a3,$sp,0x60
|
|
/* f030d70: 8fab0084 */ lw $t3,0x84($sp)
|
|
/* f030d74: 25690120 */ addiu $t1,$t3,0x120
|
|
/* f030d78: afa90084 */ sw $t1,0x84($sp)
|
|
.L0f030d7c:
|
|
/* f030d7c: 24120001 */ addiu $s2,$zero,0x1
|
|
.L0f030d80:
|
|
/* f030d80: 8cea0000 */ lw $t2,0x0($a3)
|
|
/* f030d84: 02202025 */ or $a0,$s1,$zero
|
|
/* f030d88: 02002825 */ or $a1,$s0,$zero
|
|
/* f030d8c: 51400038 */ beqzl $t2,.L0f030e70
|
|
/* f030d90: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f030d94: afa60038 */ sw $a2,0x38($sp)
|
|
/* f030d98: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f030d9c: afa70034 */ sw $a3,0x34($sp)
|
|
/* f030da0: 8c430004 */ lw $v1,0x4($v0)
|
|
/* f030da4: 9064005c */ lbu $a0,0x5c($v1)
|
|
/* f030da8: 9065005f */ lbu $a1,0x5f($v1)
|
|
/* f030dac: 0fc2c7ba */ jal weaponGetMaxFireRatePerTick
|
|
/* f030db0: afa3006c */ sw $v1,0x6c($sp)
|
|
/* f030db4: 8fa3006c */ lw $v1,0x6c($sp)
|
|
/* f030db8: 8fa60038 */ lw $a2,0x38($sp)
|
|
/* f030dbc: 1c400009 */ bgtz $v0,.L0f030de4
|
|
/* f030dc0: 8fa70034 */ lw $a3,0x34($sp)
|
|
/* f030dc4: 03a66821 */ addu $t5,$sp,$a2
|
|
/* f030dc8: adb20050 */ sw $s2,0x50($t5)
|
|
/* f030dcc: 9062005c */ lbu $v0,0x5c($v1)
|
|
/* f030dd0: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f030dd4: 54410007 */ bnel $v0,$at,.L0f030df4
|
|
/* f030dd8: 24010018 */ addiu $at,$zero,0x18
|
|
/* f030ddc: 10000004 */ b .L0f030df0
|
|
/* f030de0: 00009825 */ or $s3,$zero,$zero
|
|
.L0f030de4:
|
|
/* f030de4: afb20058 */ sw $s2,0x58($sp)
|
|
/* f030de8: 00009825 */ or $s3,$zero,$zero
|
|
/* f030dec: 9062005c */ lbu $v0,0x5c($v1)
|
|
.L0f030df0:
|
|
/* f030df0: 24010018 */ addiu $at,$zero,0x18
|
|
.L0f030df4:
|
|
/* f030df4: 1041001c */ beq $v0,$at,.L0f030e68
|
|
/* f030df8: 03a67821 */ addu $t7,$sp,$a2
|
|
/* f030dfc: 24010034 */ addiu $at,$zero,0x34
|
|
/* f030e00: 10410019 */ beq $v0,$at,.L0f030e68
|
|
/* f030e04: 24010019 */ addiu $at,$zero,0x19
|
|
/* f030e08: 10410017 */ beq $v0,$at,.L0f030e68
|
|
/* f030e0c: 24010017 */ addiu $at,$zero,0x17
|
|
/* f030e10: 10410015 */ beq $v0,$at,.L0f030e68
|
|
/* f030e14: 3c04800a */ lui $a0,%hi(g_Vars+0x318)
|
|
/* f030e18: 8c84a2d8 */ lw $a0,%lo(g_Vars+0x318)($a0)
|
|
/* f030e1c: 24010008 */ addiu $at,$zero,0x8
|
|
/* f030e20: 14800009 */ bnez $a0,.L0f030e48
|
|
/* f030e24: 00000000 */ nop
|
|
/* f030e28: 14410007 */ bne $v0,$at,.L0f030e48
|
|
/* f030e2c: 00000000 */ nop
|
|
/* f030e30: 82230006 */ lb $v1,0x6($s1)
|
|
/* f030e34: 24010028 */ addiu $at,$zero,0x28
|
|
/* f030e38: 10610003 */ beq $v1,$at,.L0f030e48
|
|
/* f030e3c: 24010013 */ addiu $at,$zero,0x13
|
|
/* f030e40: 5461000a */ bnel $v1,$at,.L0f030e6c
|
|
/* f030e44: adf20048 */ sw $s2,0x48($t7)
|
|
.L0f030e48:
|
|
/* f030e48: 14800003 */ bnez $a0,.L0f030e58
|
|
/* f030e4c: 24010009 */ addiu $at,$zero,0x9
|
|
/* f030e50: 50410006 */ beql $v0,$at,.L0f030e6c
|
|
/* f030e54: adf20048 */ sw $s2,0x48($t7)
|
|
.L0f030e58:
|
|
/* f030e58: 14800004 */ bnez $a0,.L0f030e6c
|
|
/* f030e5c: 24010013 */ addiu $at,$zero,0x13
|
|
/* f030e60: 54410003 */ bnel $v0,$at,.L0f030e70
|
|
/* f030e64: 26100001 */ addiu $s0,$s0,0x1
|
|
.L0f030e68:
|
|
/* f030e68: adf20048 */ sw $s2,0x48($t7)
|
|
.L0f030e6c:
|
|
/* f030e6c: 26100001 */ addiu $s0,$s0,0x1
|
|
.L0f030e70:
|
|
/* f030e70: 24010002 */ addiu $at,$zero,0x2
|
|
/* f030e74: 24c60004 */ addiu $a2,$a2,0x4
|
|
/* f030e78: 1601ffc1 */ bne $s0,$at,.L0f030d80
|
|
/* f030e7c: 24e70004 */ addiu $a3,$a3,0x4
|
|
/* f030e80: 240e000a */ addiu $t6,$zero,0xa
|
|
/* f030e84: a22e0007 */ sb $t6,0x7($s1)
|
|
/* f030e88: 8fb90084 */ lw $t9,0x84($sp)
|
|
/* f030e8c: a2200031 */ sb $zero,0x31($s1)
|
|
/* f030e90: 0c004b70 */ jal random
|
|
/* f030e94: ae39002c */ sw $t9,0x2c($s1)
|
|
/* f030e98: 30580001 */ andi $t8,$v0,0x1
|
|
/* f030e9c: a2380032 */ sb $t8,0x32($s1)
|
|
/* f030ea0: 8fa80064 */ lw $t0,0x64($sp)
|
|
/* f030ea4: a2280039 */ sb $t0,0x39($s1)
|
|
/* f030ea8: 8fac0060 */ lw $t4,0x60($sp)
|
|
/* f030eac: a22c0038 */ sb $t4,0x38($s1)
|
|
/* f030eb0: 8fab0054 */ lw $t3,0x54($sp)
|
|
/* f030eb4: a22b003b */ sb $t3,0x3b($s1)
|
|
/* f030eb8: 8fa90050 */ lw $t1,0x50($sp)
|
|
/* f030ebc: a229003a */ sb $t1,0x3a($s1)
|
|
/* f030ec0: 8faa004c */ lw $t2,0x4c($sp)
|
|
/* f030ec4: a22a003d */ sb $t2,0x3d($s1)
|
|
/* f030ec8: 8fad0048 */ lw $t5,0x48($sp)
|
|
/* f030ecc: a2330036 */ sb $s3,0x36($s1)
|
|
/* f030ed0: a22d003c */ sb $t5,0x3c($s1)
|
|
/* f030ed4: 8faf0058 */ lw $t7,0x58($sp)
|
|
/* f030ed8: a22f0037 */ sb $t7,0x37($s1)
|
|
/* f030edc: 8fae0074 */ lw $t6,0x74($sp)
|
|
/* f030ee0: ae200040 */ sw $zero,0x40($s1)
|
|
/* f030ee4: a2200033 */ sb $zero,0x33($s1)
|
|
/* f030ee8: a2320030 */ sb $s2,0x30($s1)
|
|
/* f030eec: a22e0035 */ sb $t6,0x35($s1)
|
|
/* f030ef0: 8fb9004c */ lw $t9,0x4c($sp)
|
|
/* f030ef4: 8fb80048 */ lw $t8,0x48($sp)
|
|
/* f030ef8: 8fa8004c */ lw $t0,0x4c($sp)
|
|
/* f030efc: 17200003 */ bnez $t9,.L0f030f0c
|
|
/* f030f00: 00000000 */ nop
|
|
/* f030f04: 13000009 */ beqz $t8,.L0f030f2c
|
|
/* f030f08: 00000000 */ nop
|
|
.L0f030f0c:
|
|
/* f030f0c: 11000005 */ beqz $t0,.L0f030f24
|
|
/* f030f10: 8fac0048 */ lw $t4,0x48($sp)
|
|
/* f030f14: 11800003 */ beqz $t4,.L0f030f24
|
|
/* f030f18: 240b0002 */ addiu $t3,$zero,0x2
|
|
/* f030f1c: 10000015 */ b .L0f030f74
|
|
/* f030f20: a22b0034 */ sb $t3,0x34($s1)
|
|
.L0f030f24:
|
|
/* f030f24: 10000013 */ b .L0f030f74
|
|
/* f030f28: a2320034 */ sb $s2,0x34($s1)
|
|
.L0f030f2c:
|
|
/* f030f2c: 0c004b70 */ jal random
|
|
/* f030f30: 00000000 */ nop
|
|
/* f030f34: 30490003 */ andi $t1,$v0,0x3
|
|
/* f030f38: 252a0002 */ addiu $t2,$t1,0x2
|
|
/* f030f3c: a22a0034 */ sb $t2,0x34($s1)
|
|
/* f030f40: 8fad0060 */ lw $t5,0x60($sp)
|
|
/* f030f44: 8faf0064 */ lw $t7,0x64($sp)
|
|
/* f030f48: 51a0000b */ beqzl $t5,.L0f030f78
|
|
/* f030f4c: 240c0200 */ addiu $t4,$zero,0x200
|
|
/* f030f50: 51e00009 */ beqzl $t7,.L0f030f78
|
|
/* f030f54: 240c0200 */ addiu $t4,$zero,0x200
|
|
/* f030f58: 0c004b70 */ jal random
|
|
/* f030f5c: 00000000 */ nop
|
|
/* f030f60: 822e0034 */ lb $t6,0x34($s1)
|
|
/* f030f64: 30590003 */ andi $t9,$v0,0x3
|
|
/* f030f68: 01d9c021 */ addu $t8,$t6,$t9
|
|
/* f030f6c: 27080002 */ addiu $t0,$t8,0x2
|
|
/* f030f70: a2280034 */ sb $t0,0x34($s1)
|
|
.L0f030f74:
|
|
/* f030f74: 240c0200 */ addiu $t4,$zero,0x200
|
|
.L0f030f78:
|
|
/* f030f78: ae2c004c */ sw $t4,0x4c($s1)
|
|
/* f030f7c: ae200050 */ sw $zero,0x50($s1)
|
|
/* f030f80: ae320054 */ sw $s2,0x54($s1)
|
|
/* f030f84: ae200058 */ sw $zero,0x58($s1)
|
|
/* f030f88: ae200044 */ sw $zero,0x44($s1)
|
|
/* f030f8c: ae200048 */ sw $zero,0x48($s1)
|
|
/* f030f90: 8fab0078 */ lw $t3,0x78($sp)
|
|
/* f030f94: a2200008 */ sb $zero,0x8($s1)
|
|
/* f030f98: 8e240020 */ lw $a0,0x20($s1)
|
|
/* f030f9c: 0c0076e5 */ jal modelIsAnimMerging
|
|
/* f030fa0: a22b003e */ sb $t3,0x3e($s1)
|
|
/* f030fa4: 10400006 */ beqz $v0,.L0f030fc0
|
|
/* f030fa8: 00000000 */ nop
|
|
/* f030fac: 8e290014 */ lw $t1,0x14($s1)
|
|
/* f030fb0: 3c010020 */ lui $at,0x20
|
|
/* f030fb4: 01215025 */ or $t2,$t1,$at
|
|
/* f030fb8: 10000008 */ b .L0f030fdc
|
|
/* f030fbc: ae2a0014 */ sw $t2,0x14($s1)
|
|
.L0f030fc0:
|
|
/* f030fc0: 0fc0c290 */ jal chrAttackRollChooseAnimation
|
|
/* f030fc4: 02202025 */ or $a0,$s1,$zero
|
|
/* f030fc8: 8e2d0014 */ lw $t5,0x14($s1)
|
|
/* f030fcc: 3c01ffdf */ lui $at,0xffdf
|
|
/* f030fd0: 3421ffff */ ori $at,$at,0xffff
|
|
/* f030fd4: 01a17824 */ and $t7,$t5,$at
|
|
/* f030fd8: ae2f0014 */ sw $t7,0x14($s1)
|
|
.L0f030fdc:
|
|
/* f030fdc: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f030fe0: 8fb00014 */ lw $s0,0x14($sp)
|
|
/* f030fe4: 8fb10018 */ lw $s1,0x18($sp)
|
|
/* f030fe8: 8fb2001c */ lw $s2,0x1c($sp)
|
|
/* f030fec: 8fb30020 */ lw $s3,0x20($sp)
|
|
/* f030ff0: 03e00008 */ jr $ra
|
|
/* f030ff4: 27bd0088 */ addiu $sp,$sp,0x88
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f030ff8
|
|
/* f030ff8: 27bdffc8 */ addiu $sp,$sp,-56
|
|
/* f030ffc: afb00020 */ sw $s0,0x20($sp)
|
|
/* f031000: 00808025 */ or $s0,$a0,$zero
|
|
/* f031004: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f031008: afa5003c */ sw $a1,0x3c($sp)
|
|
/* f03100c: afa60040 */ sw $a2,0x40($sp)
|
|
/* f031010: 1080005d */ beqz $a0,.L0f031188
|
|
/* f031014: afa70044 */ sw $a3,0x44($sp)
|
|
/* f031018: 8c8e0020 */ lw $t6,0x20($a0)
|
|
/* f03101c: 93a2004b */ lbu $v0,0x4b($sp)
|
|
/* f031020: 24010002 */ addiu $at,$zero,0x2
|
|
/* f031024: 11c00058 */ beqz $t6,.L0f031188
|
|
/* f031028: 304f0080 */ andi $t7,$v0,0x80
|
|
/* f03102c: 11e00003 */ beqz $t7,.L0f03103c
|
|
/* f031030: c7a40050 */ lwc1 $f4,0x50($sp)
|
|
/* f031034: 46002187 */ neg.s $f6,$f4
|
|
/* f031038: e7a60050 */ swc1 $f6,0x50($sp)
|
|
.L0f03103c:
|
|
/* f03103c: 12000003 */ beqz $s0,.L0f03104c
|
|
/* f031040: 00001825 */ or $v1,$zero,$zero
|
|
/* f031044: 10000001 */ b .L0f03104c
|
|
/* f031048: 920302fe */ lbu $v1,0x2fe($s0)
|
|
.L0f03104c:
|
|
/* f03104c: 10610004 */ beq $v1,$at,.L0f031060
|
|
/* f031050: 02002025 */ or $a0,$s0,$zero
|
|
/* f031054: 0fc0fe3d */ jal chrStopFiring
|
|
/* f031058: afa2002c */ sw $v0,0x2c($sp)
|
|
/* f03105c: 8fa2002c */ lw $v0,0x2c($sp)
|
|
.L0f031060:
|
|
/* f031060: 24180003 */ addiu $t8,$zero,0x3
|
|
/* f031064: a2180007 */ sb $t8,0x7($s0)
|
|
/* f031068: 30590002 */ andi $t9,$v0,0x2
|
|
/* f03106c: 30490004 */ andi $t1,$v0,0x4
|
|
/* f031070: 304b0008 */ andi $t3,$v0,0x8
|
|
/* f031074: 304d0010 */ andi $t5,$v0,0x10
|
|
/* f031078: 304f0040 */ andi $t7,$v0,0x40
|
|
/* f03107c: 0019402b */ sltu $t0,$zero,$t9
|
|
/* f031080: 0009502b */ sltu $t2,$zero,$t1
|
|
/* f031084: 000b602b */ sltu $t4,$zero,$t3
|
|
/* f031088: 000d702b */ sltu $t6,$zero,$t5
|
|
/* f03108c: 000fc02b */ sltu $t8,$zero,$t7
|
|
/* f031090: ae08002c */ sw $t0,0x2c($s0)
|
|
/* f031094: ae0a0030 */ sw $t2,0x30($s0)
|
|
/* f031098: ae0c0034 */ sw $t4,0x34($s0)
|
|
/* f03109c: ae0e0038 */ sw $t6,0x38($s0)
|
|
/* f0310a0: ae18003c */ sw $t8,0x3c($s0)
|
|
/* f0310a4: a2000040 */ sb $zero,0x40($s0)
|
|
/* f0310a8: 8fb9003c */ lw $t9,0x3c($sp)
|
|
/* f0310ac: 30460001 */ andi $a2,$v0,0x1
|
|
/* f0310b0: 0006402b */ sltu $t0,$zero,$a2
|
|
/* f0310b4: a208004a */ sb $t0,0x4a($s0)
|
|
/* f0310b8: a6190048 */ sh $t9,0x48($s0)
|
|
/* f0310bc: c7a80040 */ lwc1 $f8,0x40($sp)
|
|
/* f0310c0: 01003025 */ or $a2,$t0,$zero
|
|
/* f0310c4: e608004c */ swc1 $f8,0x4c($s0)
|
|
/* f0310c8: c7aa0044 */ lwc1 $f10,0x44($sp)
|
|
/* f0310cc: e60a0050 */ swc1 $f10,0x50($s0)
|
|
/* f0310d0: 8fa2004c */ lw $v0,0x4c($sp)
|
|
/* f0310d4: c7b00050 */ lwc1 $f16,0x50($sp)
|
|
/* f0310d8: 44829000 */ mtc1 $v0,$f18
|
|
/* f0310dc: e6100054 */ swc1 $f16,0x54($s0)
|
|
/* f0310e0: 46809020 */ cvt.s.w $f0,$f18
|
|
/* f0310e4: 11c00003 */ beqz $t6,.L0f0310f4
|
|
/* f0310e8: e6000058 */ swc1 $f0,0x58($s0)
|
|
/* f0310ec: 10000002 */ b .L0f0310f8
|
|
/* f0310f0: a2020008 */ sb $v0,0x8($s0)
|
|
.L0f0310f4:
|
|
/* f0310f4: a2000008 */ sb $zero,0x8($s0)
|
|
.L0f0310f8:
|
|
/* f0310f8: 5840000e */ blezl $v0,.L0f031134
|
|
/* f0310fc: c7a40050 */ lwc1 $f4,0x50($sp)
|
|
/* f031100: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f031104: e7a0002c */ swc1 $f0,0x2c($sp)
|
|
/* f031108: 0c0076e5 */ jal modelIsAnimMerging
|
|
/* f03110c: afa60028 */ sw $a2,0x28($sp)
|
|
/* f031110: 8fa60028 */ lw $a2,0x28($sp)
|
|
/* f031114: 10400006 */ beqz $v0,.L0f031130
|
|
/* f031118: c7a0002c */ lwc1 $f0,0x2c($sp)
|
|
/* f03111c: 8e0a0014 */ lw $t2,0x14($s0)
|
|
/* f031120: 3c010020 */ lui $at,0x20
|
|
/* f031124: 01415825 */ or $t3,$t2,$at
|
|
/* f031128: 10000017 */ b .L0f031188
|
|
/* f03112c: ae0b0014 */ sw $t3,0x14($s0)
|
|
.L0f031130:
|
|
/* f031130: c7a40050 */ lwc1 $f4,0x50($sp)
|
|
.L0f031134:
|
|
/* f031134: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f031138: e7a00014 */ swc1 $f0,0x14($sp)
|
|
/* f03113c: 87a5003e */ lh $a1,0x3e($sp)
|
|
/* f031140: 8fa70040 */ lw $a3,0x40($sp)
|
|
/* f031144: 0c007733 */ jal modelSetAnimation
|
|
/* f031148: e7a40010 */ swc1 $f4,0x10($sp)
|
|
/* f03114c: c7a60044 */ lwc1 $f6,0x44($sp)
|
|
/* f031150: 44804000 */ mtc1 $zero,$f8
|
|
/* f031154: 00000000 */ nop
|
|
/* f031158: 4606403e */ c.le.s $f8,$f6
|
|
/* f03115c: 00000000 */ nop
|
|
/* f031160: 45020005 */ bc1fl .L0f031178
|
|
/* f031164: 8e0c0014 */ lw $t4,0x14($s0)
|
|
/* f031168: 44053000 */ mfc1 $a1,$f6
|
|
/* f03116c: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f031170: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f031174: 8e0c0014 */ lw $t4,0x14($s0)
|
|
.L0f031178:
|
|
/* f031178: 3c01ffdf */ lui $at,0xffdf
|
|
/* f03117c: 3421ffff */ ori $at,$at,0xffff
|
|
/* f031180: 01816824 */ and $t5,$t4,$at
|
|
/* f031184: ae0d0014 */ sw $t5,0x14($s0)
|
|
.L0f031188:
|
|
/* f031188: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f03118c: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f031190: 27bd0038 */ addiu $sp,$sp,0x38
|
|
/* f031194: 03e00008 */ jr $ra
|
|
/* f031198: 00000000 */ nop
|
|
);
|
|
|
|
void chrBeginDead(struct chrdata *chr)
|
|
{
|
|
if (chr->actiontype != ACT_DEAD) {
|
|
chrStopFiring(chr);
|
|
|
|
if (chr->cover != -1) {
|
|
coverSetInUse(chr->cover, false);
|
|
chr->cover = -1;
|
|
}
|
|
|
|
chr->actiontype = ACT_DEAD;
|
|
chr->act_dead.fadetimer = chr->aibot ? 0 : -1;
|
|
chr->act_dead.allowfade = false;
|
|
chr->act_dead.allowreap = false;
|
|
chr->act_dead.reaptimer = 0;
|
|
chr->act_dead.notifychrindex = 0;
|
|
chr->sleep = 0;
|
|
|
|
if (chr->race == RACE_DRCAROLL) {
|
|
chr->drcarollimage_left = DRCAROLLIMAGE_STATIC;
|
|
chr->drcarollimage_right = DRCAROLLIMAGE_STATIC;
|
|
}
|
|
}
|
|
}
|
|
|
|
void func0f031254(struct chrdata *chr)
|
|
{
|
|
struct model *model = chr->model;
|
|
f32 *floats = chr->act_attack.unk02c;
|
|
|
|
if (chr->act_attack.entitytype & ENTITYTYPE_AIMONLY) {
|
|
if (floats[8] >= 0 && floats[8] < floats[6]) {
|
|
modelSetAnimEndFrame(model, floats[8]);
|
|
} else {
|
|
modelSetAnimEndFrame(model, floats[6]);
|
|
}
|
|
} else if (chr->act_attack.unk036) {
|
|
if (floats[8] >= 0) {
|
|
modelSetAnimEndFrame(model, floats[8]);
|
|
} else {
|
|
modelSetAnimEndFrame(model, floats[6]);
|
|
}
|
|
} else {
|
|
if (floats[8] >= 0) {
|
|
modelSetAnimEndFrame(model, floats[8]);
|
|
} else if (floats[5] >= 0) {
|
|
modelSetAnimEndFrame(model, floats[5]);
|
|
} else {
|
|
modelSetAnimEndFrame(model, -1);
|
|
}
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f031384
|
|
.late_rodata
|
|
glabel var7f1a8d10
|
|
.word 0x40c907a9
|
|
glabel var7f1a8d14
|
|
.word 0x40a30028
|
|
glabel var7f1a8d18
|
|
.word 0x40a30028
|
|
.text
|
|
/* f031384: 27bdff70 */ addiu $sp,$sp,-144
|
|
/* f031388: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f03138c: afb30028 */ sw $s3,0x28($sp)
|
|
/* f031390: afb20024 */ sw $s2,0x24($sp)
|
|
/* f031394: afb10020 */ sw $s1,0x20($sp)
|
|
/* f031398: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f03139c: afa60098 */ sw $a2,0x98($sp)
|
|
/* f0313a0: afa7009c */ sw $a3,0x9c($sp)
|
|
/* f0313a4: 8c8e0020 */ lw $t6,0x20($a0)
|
|
/* f0313a8: 3c188007 */ lui $t8,%hi(var80068064)
|
|
/* f0313ac: afa00070 */ sw $zero,0x70($sp)
|
|
/* f0313b0: 27188064 */ addiu $t8,$t8,%lo(var80068064)
|
|
/* f0313b4: afae008c */ sw $t6,0x8c($sp)
|
|
/* f0313b8: 8f0a0004 */ lw $t2,0x4($t8)
|
|
/* f0313bc: 8f010000 */ lw $at,0x0($t8)
|
|
/* f0313c0: 27af0064 */ addiu $t7,$sp,0x64
|
|
/* f0313c4: 3c0c8007 */ lui $t4,%hi(var8006806c)
|
|
/* f0313c8: 258c806c */ addiu $t4,$t4,%lo(var8006806c)
|
|
/* f0313cc: adea0004 */ sw $t2,0x4($t7)
|
|
/* f0313d0: ade10000 */ sw $at,0x0($t7)
|
|
/* f0313d4: 8d890004 */ lw $t1,0x4($t4)
|
|
/* f0313d8: 8d810000 */ lw $at,0x0($t4)
|
|
/* f0313dc: 27ab005c */ addiu $t3,$sp,0x5c
|
|
/* f0313e0: 00808825 */ or $s1,$a0,$zero
|
|
/* f0313e4: 00a09025 */ or $s2,$a1,$zero
|
|
/* f0313e8: 24130001 */ addiu $s3,$zero,0x1
|
|
/* f0313ec: ad690004 */ sw $t1,0x4($t3)
|
|
/* f0313f0: 10800003 */ beqz $a0,.L0f031400
|
|
/* f0313f4: ad610000 */ sw $at,0x0($t3)
|
|
/* f0313f8: 10000002 */ b .L0f031404
|
|
/* f0313fc: 908202fe */ lbu $v0,0x2fe($a0)
|
|
.L0f031400:
|
|
/* f031400: 00001025 */ or $v0,$zero,$zero
|
|
.L0f031404:
|
|
/* f031404: 24010002 */ addiu $at,$zero,0x2
|
|
/* f031408: 10410124 */ beq $v0,$at,.L0f03189c
|
|
/* f03140c: a3a00053 */ sb $zero,0x53($sp)
|
|
/* f031410: 24010003 */ addiu $at,$zero,0x3
|
|
/* f031414: 10410121 */ beq $v0,$at,.L0f03189c
|
|
/* f031418: 24010004 */ addiu $at,$zero,0x4
|
|
/* f03141c: 1041011f */ beq $v0,$at,.L0f03189c
|
|
/* f031420: 24190008 */ addiu $t9,$zero,0x8
|
|
/* f031424: 3c0f8006 */ lui $t7,%hi(var80067e50)
|
|
/* f031428: 25ef7e50 */ addiu $t7,$t7,%lo(var80067e50)
|
|
/* f03142c: 164f0023 */ bne $s2,$t7,.L0f0314bc
|
|
/* f031430: a2390007 */ sb $t9,0x7($s1)
|
|
/* f031434: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f031438: a3b80053 */ sb $t8,0x53($sp)
|
|
/* f03143c: 0c00744f */ jal modelGetAnimNum
|
|
/* f031440: 8e240020 */ lw $a0,0x20($s1)
|
|
/* f031444: 2401026a */ addiu $at,$zero,0x26a
|
|
/* f031448: 10410019 */ beq $v0,$at,.L0f0314b0
|
|
/* f03144c: 3c0e8006 */ lui $t6,%hi(var80067d70)
|
|
/* f031450: 3c0a8006 */ lui $t2,%hi(var80067d28)
|
|
/* f031454: 254a7d28 */ addiu $t2,$t2,%lo(var80067d28)
|
|
/* f031458: 3c063f4c */ lui $a2,0x3f4c
|
|
/* f03145c: afaa0080 */ sw $t2,0x80($sp)
|
|
/* f031460: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f031464: 02202025 */ or $a0,$s1,$zero
|
|
/* f031468: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f03146c: 3c053f00 */ lui $a1,0x3f00
|
|
/* f031470: 3c014180 */ lui $at,0x4180
|
|
/* f031474: 44812000 */ mtc1 $at,$f4
|
|
/* f031478: 3c058006 */ lui $a1,%hi(var80067d28)
|
|
/* f03147c: 3c078006 */ lui $a3,%hi(var80067d28+0x10)
|
|
/* f031480: 8ce77d38 */ lw $a3,%lo(var80067d28+0x10)($a3)
|
|
/* f031484: 84a57d28 */ lh $a1,%lo(var80067d28)($a1)
|
|
/* f031488: 8fa4008c */ lw $a0,0x8c($sp)
|
|
/* f03148c: 8fa60098 */ lw $a2,0x98($sp)
|
|
/* f031490: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f031494: 0c007733 */ jal modelSetAnimation
|
|
/* f031498: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f03149c: 8fa4008c */ lw $a0,0x8c($sp)
|
|
/* f0314a0: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f0314a4: 3c05436c */ lui $a1,0x436c
|
|
/* f0314a8: 10000038 */ b .L0f03158c
|
|
/* f0314ac: 00008025 */ or $s0,$zero,$zero
|
|
.L0f0314b0:
|
|
/* f0314b0: 25ce7d70 */ addiu $t6,$t6,%lo(var80067d70)
|
|
/* f0314b4: 10000034 */ b .L0f031588
|
|
/* f0314b8: afae0080 */ sw $t6,0x80($sp)
|
|
.L0f0314bc:
|
|
/* f0314bc: 02202025 */ or $a0,$s1,$zero
|
|
/* f0314c0: 8fa500a0 */ lw $a1,0xa0($sp)
|
|
/* f0314c4: 0fc0b8b4 */ jal func0f02e2d0
|
|
/* f0314c8: 8fa600a4 */ lw $a2,0xa4($sp)
|
|
/* f0314cc: 8fad0098 */ lw $t5,0x98($sp)
|
|
/* f0314d0: 3c017f1b */ lui $at,%hi(var7f1a8d10)
|
|
/* f0314d4: 11a0000e */ beqz $t5,.L0f031510
|
|
/* f0314d8: 00000000 */ nop
|
|
/* f0314dc: 3c017f1b */ lui $at,%hi(var7f1a8d14)
|
|
/* f0314e0: c4268d10 */ lwc1 $f6,%lo(var7f1a8d10)($at)
|
|
/* f0314e4: 3c017f1b */ lui $at,%hi(var7f1a8d18)
|
|
/* f0314e8: c42a8d14 */ lwc1 $f10,%lo(var7f1a8d14)($at)
|
|
/* f0314ec: 46003201 */ sub.s $f8,$f6,$f0
|
|
/* f0314f0: 3c013f00 */ lui $at,0x3f00
|
|
/* f0314f4: 44819000 */ mtc1 $at,$f18
|
|
/* f0314f8: 460a4402 */ mul.s $f16,$f8,$f10
|
|
/* f0314fc: 46128100 */ add.s $f4,$f16,$f18
|
|
/* f031500: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f031504: 44103000 */ mfc1 $s0,$f6
|
|
/* f031508: 10000009 */ b .L0f031530
|
|
/* f03150c: 00000000 */ nop
|
|
.L0f031510:
|
|
/* f031510: c4288d18 */ lwc1 $f8,%lo(var7f1a8d18)($at)
|
|
/* f031514: 3c013f00 */ lui $at,0x3f00
|
|
/* f031518: 44818000 */ mtc1 $at,$f16
|
|
/* f03151c: 46080282 */ mul.s $f10,$f0,$f8
|
|
/* f031520: 46105480 */ add.s $f18,$f10,$f16
|
|
/* f031524: 4600910d */ trunc.w.s $f4,$f18
|
|
/* f031528: 44102000 */ mfc1 $s0,$f4
|
|
/* f03152c: 00000000 */ nop
|
|
.L0f031530:
|
|
/* f031530: 06000003 */ bltz $s0,.L0f031540
|
|
/* f031534: 2a010020 */ slti $at,$s0,0x20
|
|
/* f031538: 14200002 */ bnez $at,.L0f031544
|
|
/* f03153c: 00000000 */ nop
|
|
.L0f031540:
|
|
/* f031540: 00008025 */ or $s0,$zero,$zero
|
|
.L0f031544:
|
|
/* f031544: 0c004b70 */ jal random
|
|
/* f031548: 00000000 */ nop
|
|
/* f03154c: 00104880 */ sll $t1,$s0,0x2
|
|
/* f031550: 0249c821 */ addu $t9,$s2,$t1
|
|
/* f031554: 8f230000 */ lw $v1,0x0($t9)
|
|
/* f031558: 8c6f0004 */ lw $t7,0x4($v1)
|
|
/* f03155c: 8c780000 */ lw $t8,0x0($v1)
|
|
/* f031560: 004f001b */ divu $zero,$v0,$t7
|
|
/* f031564: 00002010 */ mfhi $a0
|
|
/* f031568: 000450c0 */ sll $t2,$a0,0x3
|
|
/* f03156c: 01445021 */ addu $t2,$t2,$a0
|
|
/* f031570: 000a50c0 */ sll $t2,$t2,0x3
|
|
/* f031574: 030a7021 */ addu $t6,$t8,$t2
|
|
/* f031578: afae0080 */ sw $t6,0x80($sp)
|
|
/* f03157c: 15e00002 */ bnez $t7,.L0f031588
|
|
/* f031580: 00000000 */ nop
|
|
/* f031584: 0007000d */ break 0x7
|
|
.L0f031588:
|
|
/* f031588: 00008025 */ or $s0,$zero,$zero
|
|
.L0f03158c:
|
|
/* f03158c: 00003825 */ or $a3,$zero,$zero
|
|
/* f031590: 8fa8009c */ lw $t0,0x9c($sp)
|
|
/* f031594: 24120001 */ addiu $s2,$zero,0x1
|
|
.L0f031598:
|
|
/* f031598: 8d0d0000 */ lw $t5,0x0($t0)
|
|
/* f03159c: 02202025 */ or $a0,$s1,$zero
|
|
/* f0315a0: 02002825 */ or $a1,$s0,$zero
|
|
/* f0315a4: 51a00043 */ beqzl $t5,.L0f0316b4
|
|
/* f0315a8: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f0315ac: afa70044 */ sw $a3,0x44($sp)
|
|
/* f0315b0: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f0315b4: afa80040 */ sw $t0,0x40($sp)
|
|
/* f0315b8: 8fa70044 */ lw $a3,0x44($sp)
|
|
/* f0315bc: 8fa80040 */ lw $t0,0x40($sp)
|
|
/* f0315c0: 14400006 */ bnez $v0,.L0f0315dc
|
|
/* f0315c4: 00403025 */ or $a2,$v0,$zero
|
|
/* f0315c8: 02202025 */ or $a0,$s1,$zero
|
|
/* f0315cc: 0fc0b9b7 */ jal chrStandChooseAnimation
|
|
/* f0315d0: 3c054180 */ lui $a1,0x4180
|
|
/* f0315d4: 100000b2 */ b .L0f0318a0
|
|
/* f0315d8: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f0315dc:
|
|
/* f0315dc: 8cc30004 */ lw $v1,0x4($a2)
|
|
/* f0315e0: 9064005c */ lbu $a0,0x5c($v1)
|
|
/* f0315e4: 9065005f */ lbu $a1,0x5f($v1)
|
|
/* f0315e8: afa80040 */ sw $t0,0x40($sp)
|
|
/* f0315ec: afa70044 */ sw $a3,0x44($sp)
|
|
/* f0315f0: 0fc2c7ba */ jal weaponGetMaxFireRatePerTick
|
|
/* f0315f4: afa30078 */ sw $v1,0x78($sp)
|
|
/* f0315f8: 8fa30078 */ lw $v1,0x78($sp)
|
|
/* f0315fc: 8fa70044 */ lw $a3,0x44($sp)
|
|
/* f031600: 1c400009 */ bgtz $v0,.L0f031628
|
|
/* f031604: 8fa80040 */ lw $t0,0x40($sp)
|
|
/* f031608: 03a75821 */ addu $t3,$sp,$a3
|
|
/* f03160c: ad720064 */ sw $s2,0x64($t3)
|
|
/* f031610: 9062005c */ lbu $v0,0x5c($v1)
|
|
/* f031614: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f031618: 54410007 */ bnel $v0,$at,.L0f031638
|
|
/* f03161c: 24010018 */ addiu $at,$zero,0x18
|
|
/* f031620: 10000004 */ b .L0f031634
|
|
/* f031624: 00009825 */ or $s3,$zero,$zero
|
|
.L0f031628:
|
|
/* f031628: afb20070 */ sw $s2,0x70($sp)
|
|
/* f03162c: 00009825 */ or $s3,$zero,$zero
|
|
/* f031630: 9062005c */ lbu $v0,0x5c($v1)
|
|
.L0f031634:
|
|
/* f031634: 24010018 */ addiu $at,$zero,0x18
|
|
.L0f031638:
|
|
/* f031638: 1041001c */ beq $v0,$at,.L0f0316ac
|
|
/* f03163c: 03a76021 */ addu $t4,$sp,$a3
|
|
/* f031640: 24010034 */ addiu $at,$zero,0x34
|
|
/* f031644: 10410019 */ beq $v0,$at,.L0f0316ac
|
|
/* f031648: 24010019 */ addiu $at,$zero,0x19
|
|
/* f03164c: 10410017 */ beq $v0,$at,.L0f0316ac
|
|
/* f031650: 24010017 */ addiu $at,$zero,0x17
|
|
/* f031654: 10410015 */ beq $v0,$at,.L0f0316ac
|
|
/* f031658: 3c04800a */ lui $a0,%hi(g_Vars+0x318)
|
|
/* f03165c: 8c84a2d8 */ lw $a0,%lo(g_Vars+0x318)($a0)
|
|
/* f031660: 24010008 */ addiu $at,$zero,0x8
|
|
/* f031664: 14800009 */ bnez $a0,.L0f03168c
|
|
/* f031668: 00000000 */ nop
|
|
/* f03166c: 14410007 */ bne $v0,$at,.L0f03168c
|
|
/* f031670: 00000000 */ nop
|
|
/* f031674: 82230006 */ lb $v1,0x6($s1)
|
|
/* f031678: 24010028 */ addiu $at,$zero,0x28
|
|
/* f03167c: 10610003 */ beq $v1,$at,.L0f03168c
|
|
/* f031680: 24010013 */ addiu $at,$zero,0x13
|
|
/* f031684: 5461000a */ bnel $v1,$at,.L0f0316b0
|
|
/* f031688: ad92005c */ sw $s2,0x5c($t4)
|
|
.L0f03168c:
|
|
/* f03168c: 14800003 */ bnez $a0,.L0f03169c
|
|
/* f031690: 24010009 */ addiu $at,$zero,0x9
|
|
/* f031694: 50410006 */ beql $v0,$at,.L0f0316b0
|
|
/* f031698: ad92005c */ sw $s2,0x5c($t4)
|
|
.L0f03169c:
|
|
/* f03169c: 14800004 */ bnez $a0,.L0f0316b0
|
|
/* f0316a0: 24010013 */ addiu $at,$zero,0x13
|
|
/* f0316a4: 54410003 */ bnel $v0,$at,.L0f0316b4
|
|
/* f0316a8: 26100001 */ addiu $s0,$s0,0x1
|
|
.L0f0316ac:
|
|
/* f0316ac: ad92005c */ sw $s2,0x5c($t4)
|
|
.L0f0316b0:
|
|
/* f0316b0: 26100001 */ addiu $s0,$s0,0x1
|
|
.L0f0316b4:
|
|
/* f0316b4: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0316b8: 24e70004 */ addiu $a3,$a3,4
|
|
/* f0316bc: 1601ffb6 */ bne $s0,$at,.L0f031598
|
|
/* f0316c0: 25080004 */ addiu $t0,$t0,0x4
|
|
/* f0316c4: a2320030 */ sb $s2,0x30($s1)
|
|
/* f0316c8: 8fa90080 */ lw $t1,0x80($sp)
|
|
/* f0316cc: a2200031 */ sb $zero,0x31($s1)
|
|
/* f0316d0: 0c004b70 */ jal random
|
|
/* f0316d4: ae29002c */ sw $t1,0x2c($s1)
|
|
/* f0316d8: 30590001 */ andi $t9,$v0,0x1
|
|
/* f0316dc: a2390032 */ sb $t9,0x32($s1)
|
|
/* f0316e0: 8faf009c */ lw $t7,0x9c($sp)
|
|
/* f0316e4: 8df80004 */ lw $t8,0x4($t7)
|
|
/* f0316e8: a2380039 */ sb $t8,0x39($s1)
|
|
/* f0316ec: 8faa009c */ lw $t2,0x9c($sp)
|
|
/* f0316f0: 8d4e0000 */ lw $t6,0x0($t2)
|
|
/* f0316f4: a22e0038 */ sb $t6,0x38($s1)
|
|
/* f0316f8: 8fad0068 */ lw $t5,0x68($sp)
|
|
/* f0316fc: a22d003b */ sb $t5,0x3b($s1)
|
|
/* f031700: 8fab0064 */ lw $t3,0x64($sp)
|
|
/* f031704: a22b003a */ sb $t3,0x3a($s1)
|
|
/* f031708: 8fac0060 */ lw $t4,0x60($sp)
|
|
/* f03170c: a22c003d */ sb $t4,0x3d($s1)
|
|
/* f031710: 8fa9005c */ lw $t1,0x5c($sp)
|
|
/* f031714: a2330036 */ sb $s3,0x36($s1)
|
|
/* f031718: a229003c */ sb $t1,0x3c($s1)
|
|
/* f03171c: 8fb90070 */ lw $t9,0x70($sp)
|
|
/* f031720: ae200040 */ sw $zero,0x40($s1)
|
|
/* f031724: a2200033 */ sb $zero,0x33($s1)
|
|
/* f031728: a2390037 */ sb $t9,0x37($s1)
|
|
/* f03172c: 8faf0060 */ lw $t7,0x60($sp)
|
|
/* f031730: 8fb8005c */ lw $t8,0x5c($sp)
|
|
/* f031734: 8faa0060 */ lw $t2,0x60($sp)
|
|
/* f031738: 15e00003 */ bnez $t7,.L0f031748
|
|
/* f03173c: 00000000 */ nop
|
|
/* f031740: 13000009 */ beqz $t8,.L0f031768
|
|
/* f031744: 8fab00a0 */ lw $t3,0xa0($sp)
|
|
.L0f031748:
|
|
/* f031748: 11400005 */ beqz $t2,.L0f031760
|
|
/* f03174c: 8fae005c */ lw $t6,0x5c($sp)
|
|
/* f031750: 11c00003 */ beqz $t6,.L0f031760
|
|
/* f031754: 240d0002 */ addiu $t5,$zero,0x2
|
|
/* f031758: 1000001b */ b .L0f0317c8
|
|
/* f03175c: a22d0034 */ sb $t5,0x34($s1)
|
|
.L0f031760:
|
|
/* f031760: 10000019 */ b .L0f0317c8
|
|
/* f031764: a2320034 */ sb $s2,0x34($s1)
|
|
.L0f031768:
|
|
/* f031768: 316c0080 */ andi $t4,$t3,0x80
|
|
/* f03176c: 11800003 */ beqz $t4,.L0f03177c
|
|
/* f031770: 00000000 */ nop
|
|
/* f031774: 10000006 */ b .L0f031790
|
|
/* f031778: a2320034 */ sb $s2,0x34($s1)
|
|
.L0f03177c:
|
|
/* f03177c: 0c004b70 */ jal random
|
|
/* f031780: 00000000 */ nop
|
|
/* f031784: 30490003 */ andi $t1,$v0,0x3
|
|
/* f031788: 25390002 */ addiu $t9,$t1,0x2
|
|
/* f03178c: a2390034 */ sb $t9,0x34($s1)
|
|
.L0f031790:
|
|
/* f031790: 8faf009c */ lw $t7,0x9c($sp)
|
|
/* f031794: 8df80000 */ lw $t8,0x0($t7)
|
|
/* f031798: 5300000c */ beqzl $t8,.L0f0317cc
|
|
/* f03179c: 8fa900a0 */ lw $t1,0xa0($sp)
|
|
/* f0317a0: 8dea0004 */ lw $t2,0x4($t7)
|
|
/* f0317a4: 51400009 */ beqzl $t2,.L0f0317cc
|
|
/* f0317a8: 8fa900a0 */ lw $t1,0xa0($sp)
|
|
/* f0317ac: 0c004b70 */ jal random
|
|
/* f0317b0: 00000000 */ nop
|
|
/* f0317b4: 822e0034 */ lb $t6,0x34($s1)
|
|
/* f0317b8: 304d0003 */ andi $t5,$v0,0x3
|
|
/* f0317bc: 01cd5821 */ addu $t3,$t6,$t5
|
|
/* f0317c0: 256c0002 */ addiu $t4,$t3,0x2
|
|
/* f0317c4: a22c0034 */ sb $t4,0x34($s1)
|
|
.L0f0317c8:
|
|
/* f0317c8: 8fa900a0 */ lw $t1,0xa0($sp)
|
|
.L0f0317cc:
|
|
/* f0317cc: 8e2a0018 */ lw $t2,0x18($s1)
|
|
/* f0317d0: 3c017fff */ lui $at,0x7fff
|
|
/* f0317d4: ae29004c */ sw $t1,0x4c($s1)
|
|
/* f0317d8: 8fb900a4 */ lw $t9,0xa4($sp)
|
|
/* f0317dc: 3421ffff */ ori $at,$at,0xffff
|
|
/* f0317e0: 01417024 */ and $t6,$t2,$at
|
|
/* f0317e4: ae390050 */ sw $t9,0x50($s1)
|
|
/* f0317e8: 8fb800a8 */ lw $t8,0xa8($sp)
|
|
/* f0317ec: ae200058 */ sw $zero,0x58($s1)
|
|
/* f0317f0: ae200044 */ sw $zero,0x44($s1)
|
|
/* f0317f4: ae200048 */ sw $zero,0x48($s1)
|
|
/* f0317f8: ae380054 */ sw $t8,0x54($s1)
|
|
/* f0317fc: 8faf0098 */ lw $t7,0x98($sp)
|
|
/* f031800: a2200008 */ sb $zero,0x8($s1)
|
|
/* f031804: ae2e0018 */ sw $t6,0x18($s1)
|
|
/* f031808: a22f003e */ sb $t7,0x3e($s1)
|
|
/* f03180c: 93ad0053 */ lbu $t5,0x53($sp)
|
|
/* f031810: 55a00023 */ bnezl $t5,.L0f0318a0
|
|
/* f031814: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f031818: 8e2b02d4 */ lw $t3,0x2d4($s1)
|
|
/* f03181c: 55600020 */ bnezl $t3,.L0f0318a0
|
|
/* f031820: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f031824: 0c0076e5 */ jal modelIsAnimMerging
|
|
/* f031828: 8e240020 */ lw $a0,0x20($s1)
|
|
/* f03182c: 10400006 */ beqz $v0,.L0f031848
|
|
/* f031830: 02202025 */ or $a0,$s1,$zero
|
|
/* f031834: 8e2c0014 */ lw $t4,0x14($s1)
|
|
/* f031838: 3c010020 */ lui $at,0x20
|
|
/* f03183c: 01814825 */ or $t1,$t4,$at
|
|
/* f031840: 10000016 */ b .L0f03189c
|
|
/* f031844: ae290014 */ sw $t1,0x14($s1)
|
|
.L0f031848:
|
|
/* f031848: 3c063f4c */ lui $a2,0x3f4c
|
|
/* f03184c: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f031850: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f031854: 3c053f00 */ lui $a1,0x3f00
|
|
/* f031858: 8fb90080 */ lw $t9,0x80($sp)
|
|
/* f03185c: 3c014180 */ lui $at,0x4180
|
|
/* f031860: 44813000 */ mtc1 $at,$f6
|
|
/* f031864: 87250000 */ lh $a1,0x0($t9)
|
|
/* f031868: 8f270010 */ lw $a3,0x10($t9)
|
|
/* f03186c: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f031870: 8fa4008c */ lw $a0,0x8c($sp)
|
|
/* f031874: 8fa60098 */ lw $a2,0x98($sp)
|
|
/* f031878: 0c007733 */ jal modelSetAnimation
|
|
/* f03187c: e7a60014 */ swc1 $f6,0x14($sp)
|
|
/* f031880: 0fc0c495 */ jal func0f031254
|
|
/* f031884: 02202025 */ or $a0,$s1,$zero
|
|
/* f031888: 8e380014 */ lw $t8,0x14($s1)
|
|
/* f03188c: 3c01ffdf */ lui $at,0xffdf
|
|
/* f031890: 3421ffff */ ori $at,$at,0xffff
|
|
/* f031894: 03017824 */ and $t7,$t8,$at
|
|
/* f031898: ae2f0014 */ sw $t7,0x14($s1)
|
|
.L0f03189c:
|
|
/* f03189c: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f0318a0:
|
|
/* f0318a0: 8fb0001c */ lw $s0,0x1c($sp)
|
|
/* f0318a4: 8fb10020 */ lw $s1,0x20($sp)
|
|
/* f0318a8: 8fb20024 */ lw $s2,0x24($sp)
|
|
/* f0318ac: 8fb30028 */ lw $s3,0x28($sp)
|
|
/* f0318b0: 03e00008 */ jr $ra
|
|
/* f0318b4: 27bd0090 */ addiu $sp,$sp,0x90
|
|
);
|
|
|
|
void chrAttackAmount(struct chrdata *chr, u32 entitytype, u32 entityid, u32 arg3)
|
|
{
|
|
u32 stack;
|
|
struct prop *prop = chrGetEquippedWeaponProp(chr, 0);
|
|
struct var80065750 **things = NULL;
|
|
bool firing[] = {false, false};
|
|
u32 race = CHRRACE(chr);
|
|
|
|
if (prop) {
|
|
things = weaponIsOneHanded(prop) ? var800662d8[race] : var80065ae0[race];
|
|
|
|
firing[1] = false;
|
|
firing[0] = true;
|
|
}
|
|
|
|
func0f031384(chr, things, false, firing, entitytype, entityid, 0);
|
|
|
|
chr->actiontype = ACT_ATTACKAMOUNT;
|
|
chr->act_attackamount.unk033 = 0;
|
|
chr->act_attackamount.unk034 = arg3;
|
|
chr->act_attackamount.unk037 = 0;
|
|
}
|
|
|
|
s32 g_DrCarollDyingTimer = 10;
|
|
u8 var80068080 = 50;
|
|
u32 var80068084 = 0x005b0000;
|
|
u32 var80068088 = 0x00000000;
|
|
u32 var8006808c = 0xbf800000;
|
|
u32 var80068090 = 0x3f19999a;
|
|
u32 var80068094 = 0x00000000;
|
|
u32 var80068098 = 0x41d80000;
|
|
u32 var8006809c = 0xbf800000;
|
|
u32 var800680a0 = 0x02550000;
|
|
u32 var800680a4 = 0x00000000;
|
|
u32 var800680a8 = 0xbf800000;
|
|
u32 var800680ac = 0x3f000000;
|
|
u32 var800680b0 = 0x00000000;
|
|
u32 var800680b4 = 0x41c80000;
|
|
u32 var800680b8 = 0xbf800000;
|
|
u32 var800680bc = 0x013b0000;
|
|
u32 var800680c0 = 0x00000000;
|
|
u32 var800680c4 = 0xbf800000;
|
|
u32 var800680c8 = 0x3f000000;
|
|
u32 var800680cc = 0x00000000;
|
|
u32 var800680d0 = 0xbf800000;
|
|
u32 var800680d4 = 0xbf800000;
|
|
u32 var800680d8 = 0x013c0000;
|
|
u32 var800680dc = 0x00000000;
|
|
u32 var800680e0 = 0xbf800000;
|
|
u32 var800680e4 = 0x3f000000;
|
|
u32 var800680e8 = 0x00000000;
|
|
u32 var800680ec = 0xbf800000;
|
|
u32 var800680f0 = 0xbf800000;
|
|
u32 var800680f4 = 0x013f0000;
|
|
u32 var800680f8 = 0x00000000;
|
|
u32 var800680fc = 0xbf800000;
|
|
u32 var80068100 = 0x3f000000;
|
|
u32 var80068104 = 0x00000000;
|
|
u32 var80068108 = 0xbf800000;
|
|
u32 var8006810c = 0xbf800000;
|
|
u32 var80068110 = 0x01420000;
|
|
u32 var80068114 = 0x00000000;
|
|
u32 var80068118 = 0xbf800000;
|
|
u32 var8006811c = 0x3f000000;
|
|
u32 var80068120 = 0x00000000;
|
|
u32 var80068124 = 0xbf800000;
|
|
u32 var80068128 = 0xbf800000;
|
|
u32 var8006812c = 0x01450000;
|
|
u32 var80068130 = 0x00000000;
|
|
u32 var80068134 = 0xbf800000;
|
|
u32 var80068138 = 0x3f000000;
|
|
u32 var8006813c = 0x00000000;
|
|
u32 var80068140 = 0xbf800000;
|
|
u32 var80068144 = 0xbf800000;
|
|
u32 var80068148 = 0x01480000;
|
|
u32 var8006814c = 0x00000000;
|
|
u32 var80068150 = 0xbf800000;
|
|
u32 var80068154 = 0x3f000000;
|
|
u32 var80068158 = 0x00000000;
|
|
u32 var8006815c = 0xbf800000;
|
|
u32 var80068160 = 0xbf800000;
|
|
u32 var80068164 = 0x00360000;
|
|
u32 var80068168 = 0x00000000;
|
|
u32 var8006816c = 0xbf800000;
|
|
u32 var80068170 = 0x3f000000;
|
|
u32 var80068174 = 0x00000000;
|
|
u32 var80068178 = 0xbf800000;
|
|
u32 var8006817c = 0xbf800000;
|
|
u32 var80068180 = 0x00370000;
|
|
u32 var80068184 = 0x00000000;
|
|
u32 var80068188 = 0xbf800000;
|
|
u32 var8006818c = 0x3f000000;
|
|
u32 var80068190 = 0x00000000;
|
|
u32 var80068194 = 0xbf800000;
|
|
u32 var80068198 = 0xbf800000;
|
|
u32 var8006819c = 0x0240024c;
|
|
u32 var800681a0 = 0x02500251;
|
|
u32 var800681a4 = 0x0259025a;
|
|
u32 var800681a8 = 0x05df05e0;
|
|
u32 var800681ac = 0x05e10000;
|
|
u32 var800681b0 = 0x05360537;
|
|
u32 var800681b4 = 0x05380539;
|
|
u32 var800681b8 = 0x053a0000;
|
|
u32 var800681bc = 0x052d052e;
|
|
u32 var800681c0 = 0x052f0000;
|
|
u32 var800681c4 = 0x00860088;
|
|
u32 var800681c8 = 0x008a008c;
|
|
u32 var800681cc = 0x008e0090;
|
|
u32 var800681d0 = 0x00920094;
|
|
u32 var800681d4 = 0x00960098;
|
|
u32 var800681d8 = 0x009a009c;
|
|
u32 var800681dc = 0x009e0087;
|
|
u32 var800681e0 = 0x00860087;
|
|
u32 var800681e4 = 0x00880089;
|
|
u32 var800681e8 = 0x008a008b;
|
|
u32 var800681ec = 0x008c008d;
|
|
u32 var800681f0 = 0x008e008f;
|
|
u32 var800681f4 = 0x00900091;
|
|
u32 var800681f8 = 0x00920093;
|
|
u32 var800681fc = 0x00940095;
|
|
u32 var80068200 = 0x00960097;
|
|
u32 var80068204 = 0x00980099;
|
|
u32 var80068208 = 0x009a009b;
|
|
u32 var8006820c = 0x009c009d;
|
|
u32 var80068210 = 0x009e0000;
|
|
u32 var80068214 = 0x02aa02ab;
|
|
u32 var80068218 = 0x02ac02ad;
|
|
u32 var8006821c = 0x02ae02af;
|
|
u32 var80068220 = 0x02b002b1;
|
|
u32 var80068224 = 0x02b202b3;
|
|
u32 var80068228 = 0x000d000e;
|
|
u32 var8006822c = 0x000f0000;
|
|
u32 var80068230 = 0x0000034e;
|
|
u32 var80068234 = 0x000005b1;
|
|
u32 var80068238 = 0x000005b2;
|
|
u32 var8006823c = 0x000005ab;
|
|
u32 var80068240 = 0x000005ac;
|
|
u32 var80068244 = 0x000005ad;
|
|
u32 var80068248 = 0x000005ae;
|
|
u32 var8006824c = 0x00000000;
|
|
u32 var80068250 = 0x00000000;
|
|
u32 var80068254 = 0x00000000;
|
|
u32 var80068258 = 0x00000000;
|
|
u32 var8006825c = 0x00000000;
|
|
u32 var80068260 = 0x00000000;
|
|
u32 var80068264 = 0x00000000;
|
|
u32 var80068268 = 0x807b8079;
|
|
u32 var8006826c = 0x807c0000;
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f0319a8
|
|
.late_rodata
|
|
glabel var7f1a8d1c
|
|
.word 0x3c23d70a
|
|
glabel var7f1a8d20
|
|
.word 0x3c23d70a
|
|
glabel var7f1a8d24
|
|
.word 0x3fc907a9
|
|
glabel var7f1a8d28
|
|
.word 0x4096c5bf
|
|
glabel var7f1a8d2c
|
|
.word 0x40c907a9
|
|
glabel var7f1a8d30
|
|
.word 0x405432c1
|
|
glabel var7f1a8d34
|
|
.word 0x403ddc91
|
|
glabel var7f1a8d38
|
|
.word 0x4016c5bf
|
|
glabel var7f1a8d3c
|
|
.word 0x407b4993
|
|
glabel var7f1a8d40
|
|
.word 0x4016c5bf
|
|
glabel var7f1a8d44
|
|
.word 0x407b4993
|
|
.text
|
|
/* f0319a8: 27bdfef0 */ addiu $sp,$sp,-272
|
|
/* f0319ac: 240effff */ addiu $t6,$zero,-1
|
|
/* f0319b0: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f0319b4: afb00028 */ sw $s0,0x28($sp)
|
|
/* f0319b8: afa50114 */ sw $a1,0x114($sp)
|
|
/* f0319bc: afa60118 */ sw $a2,0x118($sp)
|
|
/* f0319c0: afa7011c */ sw $a3,0x11c($sp)
|
|
/* f0319c4: afa0010c */ sw $zero,0x10c($sp)
|
|
/* f0319c8: afae0104 */ sw $t6,0x104($sp)
|
|
/* f0319cc: 8c8f001c */ lw $t7,0x1c($a0)
|
|
/* f0319d0: 00808025 */ or $s0,$a0,$zero
|
|
/* f0319d4: 00003825 */ or $a3,$zero,$zero
|
|
/* f0319d8: afaf00f8 */ sw $t7,0xf8($sp)
|
|
/* f0319dc: 8c980020 */ lw $t8,0x20($a0)
|
|
/* f0319e0: 10800003 */ beqz $a0,.L0f0319f0
|
|
/* f0319e4: afb800f4 */ sw $t8,0xf4($sp)
|
|
/* f0319e8: 10000001 */ b .L0f0319f0
|
|
/* f0319ec: 908702fe */ lbu $a3,0x2fe($a0)
|
|
.L0f0319f0:
|
|
/* f0319f0: afa000e8 */ sw $zero,0xe8($sp)
|
|
/* f0319f4: 82020007 */ lb $v0,0x7($s0)
|
|
/* f0319f8: 24010020 */ addiu $at,$zero,0x20
|
|
/* f0319fc: 10410004 */ beq $v0,$at,.L0f031a10
|
|
/* f031a00: 2401001e */ addiu $at,$zero,0x1e
|
|
/* f031a04: 10410002 */ beq $v0,$at,.L0f031a10
|
|
/* f031a08: 2401001f */ addiu $at,$zero,0x1f
|
|
/* f031a0c: 14410007 */ bne $v0,$at,.L0f031a2c
|
|
.L0f031a10:
|
|
/* f031a10: 2401001f */ addiu $at,$zero,0x1f
|
|
/* f031a14: 14410002 */ bne $v0,$at,.L0f031a20
|
|
/* f031a18: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f031a1c: afb900e8 */ sw $t9,0xe8($sp)
|
|
.L0f031a20:
|
|
/* f031a20: 0fc2c15d */ jal mpstatsDecrementTotalKnockoutCount
|
|
/* f031a24: afa700ec */ sw $a3,0xec($sp)
|
|
/* f031a28: 8fa700ec */ lw $a3,0xec($sp)
|
|
.L0f031a2c:
|
|
/* f031a2c: 24010003 */ addiu $at,$zero,0x3
|
|
/* f031a30: 14e100bd */ bne $a3,$at,.L0f031d28
|
|
/* f031a34: 0007c080 */ sll $t8,$a3,0x2
|
|
/* f031a38: 3c0d800a */ lui $t5,%hi(g_Vars+0x28c)
|
|
/* f031a3c: 8dada24c */ lw $t5,%lo(g_Vars+0x28c)($t5)
|
|
/* f031a40: 240effff */ addiu $t6,$zero,-1
|
|
/* f031a44: afae00dc */ sw $t6,0xdc($sp)
|
|
/* f031a48: 02002025 */ or $a0,$s0,$zero
|
|
/* f031a4c: 0fc0f011 */ jal chrToEyespy
|
|
/* f031a50: afad00e4 */ sw $t5,0xe4($sp)
|
|
/* f031a54: 3c0b800a */ lui $t3,%hi(g_Vars+0x6c)
|
|
/* f031a58: 8d6ba02c */ lw $t3,%lo(g_Vars+0x6c)($t3)
|
|
/* f031a5c: 240fffff */ addiu $t7,$zero,-1
|
|
/* f031a60: 00406025 */ or $t4,$v0,$zero
|
|
/* f031a64: afaf00d4 */ sw $t7,0xd4($sp)
|
|
/* f031a68: 11600003 */ beqz $t3,.L0f031a78
|
|
/* f031a6c: 00002025 */ or $a0,$zero,$zero
|
|
/* f031a70: 10000002 */ b .L0f031a7c
|
|
/* f031a74: 24070001 */ addiu $a3,$zero,0x1
|
|
.L0f031a78:
|
|
/* f031a78: 00003825 */ or $a3,$zero,$zero
|
|
.L0f031a7c:
|
|
/* f031a7c: 3c0a800a */ lui $t2,%hi(g_Vars+0x68)
|
|
/* f031a80: 8d4aa028 */ lw $t2,%lo(g_Vars+0x68)($t2)
|
|
/* f031a84: 3c09800a */ lui $t1,%hi(g_Vars+0x64)
|
|
/* f031a88: 3c08800a */ lui $t0,%hi(g_Vars+0x70)
|
|
/* f031a8c: 11400003 */ beqz $t2,.L0f031a9c
|
|
/* f031a90: 00002825 */ or $a1,$zero,$zero
|
|
/* f031a94: 10000001 */ b .L0f031a9c
|
|
/* f031a98: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f031a9c:
|
|
/* f031a9c: 8d29a024 */ lw $t1,%lo(g_Vars+0x64)($t1)
|
|
/* f031aa0: 00001025 */ or $v0,$zero,$zero
|
|
/* f031aa4: 00001825 */ or $v1,$zero,$zero
|
|
/* f031aa8: 11200003 */ beqz $t1,.L0f031ab8
|
|
/* f031aac: 00047080 */ sll $t6,$a0,0x2
|
|
/* f031ab0: 10000001 */ b .L0f031ab8
|
|
/* f031ab4: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f031ab8:
|
|
/* f031ab8: 8d08a030 */ lw $t0,%lo(g_Vars+0x70)($t0)
|
|
/* f031abc: 3c0f800a */ lui $t7,%hi(g_Vars)
|
|
/* f031ac0: 25ef9fc0 */ addiu $t7,$t7,%lo(g_Vars)
|
|
/* f031ac4: 11000003 */ beqz $t0,.L0f031ad4
|
|
/* f031ac8: 01cf3021 */ addu $a2,$t6,$t7
|
|
/* f031acc: 10000001 */ b .L0f031ad4
|
|
/* f031ad0: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f031ad4:
|
|
/* f031ad4: 0062c021 */ addu $t8,$v1,$v0
|
|
/* f031ad8: 0305c821 */ addu $t9,$t8,$a1
|
|
/* f031adc: 03276821 */ addu $t5,$t9,$a3
|
|
/* f031ae0: 19a0002e */ blez $t5,.L0f031b9c
|
|
/* f031ae4: 00000000 */ nop
|
|
/* f031ae8: 8cd80064 */ lw $t8,0x64($a2)
|
|
.L0f031aec:
|
|
/* f031aec: 8f190480 */ lw $t9,0x480($t8)
|
|
/* f031af0: 55990012 */ bnel $t4,$t9,.L0f031b3c
|
|
/* f031af4: afa400dc */ sw $a0,0xdc($sp)
|
|
/* f031af8: afa400e0 */ sw $a0,0xe0($sp)
|
|
/* f031afc: afa60030 */ sw $a2,0x30($sp)
|
|
/* f031b00: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f031b04: afac00d8 */ sw $t4,0xd8($sp)
|
|
/* f031b08: 3c0b800a */ lui $t3,%hi(g_Vars+0x6c)
|
|
/* f031b0c: 3c0a800a */ lui $t2,%hi(g_Vars+0x68)
|
|
/* f031b10: 3c09800a */ lui $t1,%hi(g_Vars+0x64)
|
|
/* f031b14: 3c08800a */ lui $t0,%hi(g_Vars+0x70)
|
|
/* f031b18: 8d08a030 */ lw $t0,%lo(g_Vars+0x70)($t0)
|
|
/* f031b1c: 8d29a024 */ lw $t1,%lo(g_Vars+0x64)($t1)
|
|
/* f031b20: 8d4aa028 */ lw $t2,%lo(g_Vars+0x68)($t2)
|
|
/* f031b24: 8d6ba02c */ lw $t3,%lo(g_Vars+0x6c)($t3)
|
|
/* f031b28: 8fa400e0 */ lw $a0,0xe0($sp)
|
|
/* f031b2c: 8fa60030 */ lw $a2,0x30($sp)
|
|
/* f031b30: 10000002 */ b .L0f031b3c
|
|
/* f031b34: 8fac00d8 */ lw $t4,0xd8($sp)
|
|
/* f031b38: afa400dc */ sw $a0,0xdc($sp)
|
|
.L0f031b3c:
|
|
/* f031b3c: 24840001 */ addiu $a0,$a0,0x1
|
|
/* f031b40: 11600003 */ beqz $t3,.L0f031b50
|
|
/* f031b44: 24c60004 */ addiu $a2,$a2,0x4
|
|
/* f031b48: 10000002 */ b .L0f031b54
|
|
/* f031b4c: 24070001 */ addiu $a3,$zero,0x1
|
|
.L0f031b50:
|
|
/* f031b50: 00003825 */ or $a3,$zero,$zero
|
|
.L0f031b54:
|
|
/* f031b54: 11400003 */ beqz $t2,.L0f031b64
|
|
/* f031b58: 00002825 */ or $a1,$zero,$zero
|
|
/* f031b5c: 10000001 */ b .L0f031b64
|
|
/* f031b60: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f031b64:
|
|
/* f031b64: 11200003 */ beqz $t1,.L0f031b74
|
|
/* f031b68: 00001025 */ or $v0,$zero,$zero
|
|
/* f031b6c: 10000001 */ b .L0f031b74
|
|
/* f031b70: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f031b74:
|
|
/* f031b74: 11000003 */ beqz $t0,.L0f031b84
|
|
/* f031b78: 00001825 */ or $v1,$zero,$zero
|
|
/* f031b7c: 10000001 */ b .L0f031b84
|
|
/* f031b80: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f031b84:
|
|
/* f031b84: 00626821 */ addu $t5,$v1,$v0
|
|
/* f031b88: 01a57021 */ addu $t6,$t5,$a1
|
|
/* f031b8c: 01c77821 */ addu $t7,$t6,$a3
|
|
/* f031b90: 008f082a */ slt $at,$a0,$t7
|
|
/* f031b94: 5420ffd5 */ bnezl $at,.L0f031aec
|
|
/* f031b98: 8cd80064 */ lw $t8,0x64($a2)
|
|
.L0f031b9c:
|
|
/* f031b9c: 3c18800a */ lui $t8,%hi(g_Vars+0x284)
|
|
/* f031ba0: 8f18a244 */ lw $t8,%lo(g_Vars+0x284)($t8)
|
|
/* f031ba4: 8f030480 */ lw $v1,0x480($t8)
|
|
/* f031ba8: 1060005b */ beqz $v1,.L0f031d18
|
|
/* f031bac: 00000000 */ nop
|
|
/* f031bb0: 80790037 */ lb $t9,0x37($v1)
|
|
/* f031bb4: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
|
/* f031bb8: 53200008 */ beqzl $t9,.L0f031bdc
|
|
/* f031bbc: 8e0f0014 */ lw $t7,0x14($s0)
|
|
/* f031bc0: a0600037 */ sb $zero,0x37($v1)
|
|
/* f031bc4: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
|
/* f031bc8: 2401fffb */ addiu $at,$zero,-5
|
|
/* f031bcc: 8c4d00c4 */ lw $t5,0xc4($v0)
|
|
/* f031bd0: 01a17024 */ and $t6,$t5,$at
|
|
/* f031bd4: ac4e00c4 */ sw $t6,0xc4($v0)
|
|
/* f031bd8: 8e0f0014 */ lw $t7,0x14($s0)
|
|
.L0f031bdc:
|
|
/* f031bdc: 3c19800a */ lui $t9,%hi(g_Vars+0x284)
|
|
/* f031be0: 24070002 */ addiu $a3,$zero,0x2
|
|
/* f031be4: 35f80020 */ ori $t8,$t7,0x20
|
|
/* f031be8: ae180014 */ sw $t8,0x14($s0)
|
|
/* f031bec: 8f39a244 */ lw $t9,%lo(g_Vars+0x284)($t9)
|
|
/* f031bf0: 8f2d0480 */ lw $t5,0x480($t9)
|
|
/* f031bf4: 8da40000 */ lw $a0,0x0($t5)
|
|
/* f031bf8: afa00010 */ sw $zero,0x10($sp)
|
|
/* f031bfc: 24850008 */ addiu $a1,$a0,0x8
|
|
/* f031c00: 0fc4a640 */ jal explosionCreateSimple
|
|
/* f031c04: 24860028 */ addiu $a2,$a0,0x28
|
|
/* f031c08: 0fc447a9 */ jal invRemoveItemByNum
|
|
/* f031c0c: 2404002e */ addiu $a0,$zero,0x2e
|
|
/* f031c10: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
|
|
/* f031c14: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
|
|
/* f031c18: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f031c1c: 3406ffff */ dli $a2,0xffff
|
|
/* f031c20: 8dcf0480 */ lw $t7,0x480($t6)
|
|
/* f031c24: 0fc249af */ jal func0f0926bc
|
|
/* f031c28: 8de40000 */ lw $a0,0x0($t7)
|
|
/* f031c2c: 3c18800a */ lui $t8,%hi(g_Vars+0x284)
|
|
/* f031c30: 8f18a244 */ lw $t8,%lo(g_Vars+0x284)($t8)
|
|
/* f031c34: af000480 */ sw $zero,0x480($t8)
|
|
/* f031c38: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f031c3c: 8fa400e4 */ lw $a0,0xe4($sp)
|
|
/* f031c40: 3c04800a */ lui $a0,%hi(g_Vars+0x4b4)
|
|
/* f031c44: 0fc59585 */ jal stageGetIndex
|
|
/* f031c48: 8c84a474 */ lw $a0,%lo(g_Vars+0x4b4)($a0)
|
|
/* f031c4c: 2401000a */ addiu $at,$zero,0xa
|
|
/* f031c50: 10410005 */ beq $v0,$at,.L0f031c68
|
|
/* f031c54: 2401001f */ addiu $at,$zero,0x1f
|
|
/* f031c58: 54410013 */ bnel $v0,$at,.L0f031ca8
|
|
/* f031c5c: 8faf00d4 */ lw $t7,0xd4($sp)
|
|
/* f031c60: 10000010 */ b .L0f031ca4
|
|
/* f031c64: afa000d4 */ sw $zero,0xd4($sp)
|
|
.L0f031c68:
|
|
/* f031c68: 0fc5b367 */ jal coreGetDifficulty
|
|
/* f031c6c: 00000000 */ nop
|
|
/* f031c70: 14400003 */ bnez $v0,.L0f031c80
|
|
/* f031c74: 24190002 */ addiu $t9,$zero,0x2
|
|
/* f031c78: 1000000a */ b .L0f031ca4
|
|
/* f031c7c: afb900d4 */ sw $t9,0xd4($sp)
|
|
.L0f031c80:
|
|
/* f031c80: 0fc5b367 */ jal coreGetDifficulty
|
|
/* f031c84: 00000000 */ nop
|
|
/* f031c88: 24010001 */ addiu $at,$zero,0x1
|
|
/* f031c8c: 14410004 */ bne $v0,$at,.L0f031ca0
|
|
/* f031c90: 240e0002 */ addiu $t6,$zero,0x2
|
|
/* f031c94: 240d0002 */ addiu $t5,$zero,0x2
|
|
/* f031c98: 10000002 */ b .L0f031ca4
|
|
/* f031c9c: afad00d4 */ sw $t5,0xd4($sp)
|
|
.L0f031ca0:
|
|
/* f031ca0: afae00d4 */ sw $t6,0xd4($sp)
|
|
.L0f031ca4:
|
|
/* f031ca4: 8faf00d4 */ lw $t7,0xd4($sp)
|
|
.L0f031ca8:
|
|
/* f031ca8: 8fb800dc */ lw $t8,0xdc($sp)
|
|
/* f031cac: 05e2000f */ bltzl $t7,.L0f031cec
|
|
/* f031cb0: 8faf00d4 */ lw $t7,0xd4($sp)
|
|
/* f031cb4: 0702000d */ bltzl $t8,.L0f031cec
|
|
/* f031cb8: 8faf00d4 */ lw $t7,0xd4($sp)
|
|
/* f031cbc: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f031cc0: 03002025 */ or $a0,$t8,$zero
|
|
/* f031cc4: 3c19800a */ lui $t9,%hi(g_Vars+0x284)
|
|
/* f031cc8: 8f39a244 */ lw $t9,%lo(g_Vars+0x284)($t9)
|
|
/* f031ccc: 240effff */ addiu $t6,$zero,-1
|
|
/* f031cd0: 8f2d0480 */ lw $t5,0x480($t9)
|
|
/* f031cd4: 11a00002 */ beqz $t5,.L0f031ce0
|
|
/* f031cd8: 00000000 */ nop
|
|
/* f031cdc: afae00d4 */ sw $t6,0xd4($sp)
|
|
.L0f031ce0:
|
|
/* f031ce0: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f031ce4: 8fa400e4 */ lw $a0,0xe4($sp)
|
|
/* f031ce8: 8faf00d4 */ lw $t7,0xd4($sp)
|
|
.L0f031cec:
|
|
/* f031cec: 05e0000a */ bltz $t7,.L0f031d18
|
|
/* f031cf0: 00000000 */ nop
|
|
/* f031cf4: 0fc255a1 */ jal objectiveCheck
|
|
/* f031cf8: 01e02025 */ or $a0,$t7,$zero
|
|
/* f031cfc: 24010001 */ addiu $at,$zero,0x1
|
|
/* f031d00: 10410005 */ beq $v0,$at,.L0f031d18
|
|
/* f031d04: 3c028006 */ lui $v0,%hi(g_StageFlags)
|
|
/* f031d08: 24427e54 */ addiu $v0,$v0,%lo(g_StageFlags)
|
|
/* f031d0c: 8c580000 */ lw $t8,0x0($v0)
|
|
/* f031d10: 37192000 */ ori $t9,$t8,0x2000
|
|
/* f031d14: ac590000 */ sw $t9,0x0($v0)
|
|
.L0f031d18:
|
|
/* f031d18: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f031d1c: 8fa400e4 */ lw $a0,0xe4($sp)
|
|
/* f031d20: 10000364 */ b .L0f032ab4
|
|
/* f031d24: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f031d28:
|
|
/* f031d28: 82030007 */ lb $v1,0x7($s0)
|
|
/* f031d2c: 3c198006 */ lui $t9,%hi(var800652b8)
|
|
/* f031d30: 273952b8 */ addiu $t9,$t9,%lo(var800652b8)
|
|
/* f031d34: 386d0006 */ xori $t5,$v1,0x6
|
|
/* f031d38: 2da30001 */ sltiu $v1,$t5,0x1
|
|
/* f031d3c: 10600006 */ beqz $v1,.L0f031d58
|
|
/* f031d40: 03194021 */ addu $t0,$t8,$t9
|
|
/* f031d44: 3c0e800a */ lui $t6,%hi(g_Vars+0x8)
|
|
/* f031d48: 8dce9fc8 */ lw $t6,%lo(g_Vars+0x8)($t6)
|
|
/* f031d4c: 8e0f0030 */ lw $t7,0x30($s0)
|
|
/* f031d50: 01cf1826 */ xor $v1,$t6,$t7
|
|
/* f031d54: 2c630001 */ sltiu $v1,$v1,0x1
|
|
.L0f031d58:
|
|
/* f031d58: 8d060000 */ lw $a2,0x0($t0)
|
|
/* f031d5c: afa30108 */ sw $v1,0x108($sp)
|
|
/* f031d60: 2405ffff */ addiu $a1,$zero,-1
|
|
/* f031d64: 8ccd0000 */ lw $t5,0x0($a2)
|
|
/* f031d68: 00002025 */ or $a0,$zero,$zero
|
|
/* f031d6c: 00c01025 */ or $v0,$a2,$zero
|
|
/* f031d70: 50ad000d */ beql $a1,$t5,.L0f031da8
|
|
/* f031d74: a60002d8 */ sh $zero,0x2d8($s0)
|
|
/* f031d78: 8cc30000 */ lw $v1,0x0($a2)
|
|
/* f031d7c: 8fae011c */ lw $t6,0x11c($sp)
|
|
.L0f031d80:
|
|
/* f031d80: 55c30004 */ bnel $t6,$v1,.L0f031d94
|
|
/* f031d84: 8c430014 */ lw $v1,0x14($v0)
|
|
/* f031d88: 10000006 */ b .L0f031da4
|
|
/* f031d8c: afa40104 */ sw $a0,0x104($sp)
|
|
/* f031d90: 8c430014 */ lw $v1,0x14($v0)
|
|
.L0f031d94:
|
|
/* f031d94: 24840001 */ addiu $a0,$a0,0x1
|
|
/* f031d98: 24420014 */ addiu $v0,$v0,20
|
|
/* f031d9c: 54a3fff8 */ bnel $a1,$v1,.L0f031d80
|
|
/* f031da0: 8fae011c */ lw $t6,0x11c($sp)
|
|
.L0f031da4:
|
|
/* f031da4: a60002d8 */ sh $zero,0x2d8($s0)
|
|
.L0f031da8:
|
|
/* f031da8: afa80040 */ sw $t0,0x40($sp)
|
|
/* f031dac: 0fc0fe3d */ jal chrStopFiring
|
|
/* f031db0: 02002025 */ or $a0,$s0,$zero
|
|
/* f031db4: 02002025 */ or $a0,$s0,$zero
|
|
/* f031db8: 0fc08946 */ jal chrUncloak
|
|
/* f031dbc: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f031dc0: 8e0f0018 */ lw $t7,0x18($s0)
|
|
/* f031dc4: 2401fbff */ addiu $at,$zero,-1025
|
|
/* f031dc8: 44802000 */ mtc1 $zero,$f4
|
|
/* f031dcc: 01e1c024 */ and $t8,$t7,$at
|
|
/* f031dd0: ae180018 */ sw $t8,0x18($s0)
|
|
/* f031dd4: 8fb90124 */ lw $t9,0x124($sp)
|
|
/* f031dd8: 24010001 */ addiu $at,$zero,0x1
|
|
/* f031ddc: 240e0004 */ addiu $t6,$zero,0x4
|
|
/* f031de0: 17210004 */ bne $t9,$at,.L0f031df4
|
|
/* f031de4: 240f002d */ addiu $t7,$zero,0x2d
|
|
/* f031de8: 240d001e */ addiu $t5,$zero,0x1e
|
|
/* f031dec: 10000002 */ b .L0f031df8
|
|
/* f031df0: a20d0007 */ sb $t5,0x7($s0)
|
|
.L0f031df4:
|
|
/* f031df4: a20e0007 */ sb $t6,0x7($s0)
|
|
.L0f031df8:
|
|
/* f031df8: 3c01bf80 */ lui $at,0xbf80
|
|
/* f031dfc: 44810000 */ mtc1 $at,$f0
|
|
/* f031e00: 921802fe */ lbu $t8,0x2fe($s0)
|
|
/* f031e04: 24010002 */ addiu $at,$zero,0x2
|
|
/* f031e08: ae00002c */ sw $zero,0x2c($s0)
|
|
/* f031e0c: e6040038 */ swc1 $f4,0x38($s0)
|
|
/* f031e10: a60f004c */ sh $t7,0x4c($s0)
|
|
/* f031e14: e6000030 */ swc1 $f0,0x30($s0)
|
|
/* f031e18: 17010030 */ bne $t8,$at,.L0f031edc
|
|
/* f031e1c: e6000034 */ swc1 $f0,0x34($s0)
|
|
/* f031e20: 0c004b70 */ jal random
|
|
/* f031e24: 00000000 */ nop
|
|
/* f031e28: 24010190 */ addiu $at,$zero,0x190
|
|
/* f031e2c: 0041001b */ divu $zero,$v0,$at
|
|
/* f031e30: 0000c810 */ mfhi $t9
|
|
/* f031e34: 44993000 */ mtc1 $t9,$f6
|
|
/* f031e38: 3c014f80 */ lui $at,0x4f80
|
|
/* f031e3c: 07210004 */ bgez $t9,.L0f031e50
|
|
/* f031e40: 46803220 */ cvt.s.w $f8,$f6
|
|
/* f031e44: 44815000 */ mtc1 $at,$f10
|
|
/* f031e48: 00000000 */ nop
|
|
/* f031e4c: 460a4200 */ add.s $f8,$f8,$f10
|
|
.L0f031e50:
|
|
/* f031e50: 3c017f1b */ lui $at,%hi(var7f1a8d1c)
|
|
/* f031e54: c4248d1c */ lwc1 $f4,%lo(var7f1a8d1c)($at)
|
|
/* f031e58: 46044182 */ mul.s $f6,$f8,$f4
|
|
/* f031e5c: 4600328d */ trunc.w.s $f10,$f6
|
|
/* f031e60: 440e5000 */ mfc1 $t6,$f10
|
|
/* f031e64: 00000000 */ nop
|
|
/* f031e68: 25d80001 */ addiu $t8,$t6,0x1
|
|
/* f031e6c: 920e0362 */ lbu $t6,0x362($s0)
|
|
/* f031e70: 00186900 */ sll $t5,$t8,0x4
|
|
/* f031e74: 31cfff0f */ andi $t7,$t6,0xff0f
|
|
/* f031e78: 01afc025 */ or $t8,$t5,$t7
|
|
/* f031e7c: 0c004b70 */ jal random
|
|
/* f031e80: a2180362 */ sb $t8,0x362($s0)
|
|
/* f031e84: 24010190 */ addiu $at,$zero,0x190
|
|
/* f031e88: 0041001b */ divu $zero,$v0,$at
|
|
/* f031e8c: 0000c810 */ mfhi $t9
|
|
/* f031e90: 44994000 */ mtc1 $t9,$f8
|
|
/* f031e94: 3c014f80 */ lui $at,0x4f80
|
|
/* f031e98: 07210004 */ bgez $t9,.L0f031eac
|
|
/* f031e9c: 46804120 */ cvt.s.w $f4,$f8
|
|
/* f031ea0: 44813000 */ mtc1 $at,$f6
|
|
/* f031ea4: 00000000 */ nop
|
|
/* f031ea8: 46062100 */ add.s $f4,$f4,$f6
|
|
.L0f031eac:
|
|
/* f031eac: 3c017f1b */ lui $at,%hi(var7f1a8d20)
|
|
/* f031eb0: c42a8d20 */ lwc1 $f10,%lo(var7f1a8d20)($at)
|
|
/* f031eb4: 920e0362 */ lbu $t6,0x362($s0)
|
|
/* f031eb8: 460a2202 */ mul.s $f8,$f4,$f10
|
|
/* f031ebc: 4600418d */ trunc.w.s $f6,$f8
|
|
/* f031ec0: 440d3000 */ mfc1 $t5,$f6
|
|
/* f031ec4: 00000000 */ nop
|
|
/* f031ec8: 25b80001 */ addiu $t8,$t5,0x1
|
|
/* f031ecc: 3319000f */ andi $t9,$t8,0xf
|
|
/* f031ed0: 31cdfff0 */ andi $t5,$t6,0xfff0
|
|
/* f031ed4: 032d7825 */ or $t7,$t9,$t5
|
|
/* f031ed8: a20f0362 */ sb $t7,0x362($s0)
|
|
.L0f031edc:
|
|
/* f031edc: 8fa20040 */ lw $v0,0x40($sp)
|
|
/* f031ee0: 3c188006 */ lui $t8,%hi(var800652b8+0x10)
|
|
/* f031ee4: 271852c8 */ addiu $t8,$t8,%lo(var800652b8+0x10)
|
|
/* f031ee8: 10580005 */ beq $v0,$t8,.L0f031f00
|
|
/* f031eec: a2000008 */ sb $zero,0x8($s0)
|
|
/* f031ef0: 3c0e8006 */ lui $t6,%hi(var800652b8+0x8)
|
|
/* f031ef4: 25ce52c0 */ addiu $t6,$t6,%lo(var800652b8+0x8)
|
|
/* f031ef8: 144e0035 */ bne $v0,$t6,.L0f031fd0
|
|
/* f031efc: 3c188006 */ lui $t8,%hi(var800652b8)
|
|
.L0f031f00:
|
|
/* f031f00: 0fc2c73a */ jal handGetSingleUnk34
|
|
/* f031f04: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f031f08: 3c013f00 */ lui $at,0x3f00
|
|
/* f031f0c: 44818000 */ mtc1 $at,$f16
|
|
/* f031f10: 44807000 */ mtc1 $zero,$f14
|
|
/* f031f14: 44802000 */ mtc1 $zero,$f4
|
|
/* f031f18: 46100082 */ mul.s $f2,$f0,$f16
|
|
/* f031f1c: 3c014040 */ lui $at,0x4040
|
|
/* f031f20: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f031f24: 24050164 */ addiu $a1,$zero,0x164
|
|
/* f031f28: 00003025 */ or $a2,$zero,$zero
|
|
/* f031f2c: 460e103e */ c.le.s $f2,$f14
|
|
/* f031f30: 00000000 */ nop
|
|
/* f031f34: 45020004 */ bc1fl .L0f031f48
|
|
/* f031f38: 46041032 */ c.eq.s $f2,$f4
|
|
/* f031f3c: 44811000 */ mtc1 $at,$f2
|
|
/* f031f40: 00000000 */ nop
|
|
/* f031f44: 46041032 */ c.eq.s $f2,$f4
|
|
.L0f031f48:
|
|
/* f031f48: 3c014170 */ lui $at,0x4170
|
|
/* f031f4c: 45030010 */ bc1tl .L0f031f90
|
|
/* f031f50: 8fb90040 */ lw $t9,0x40($sp)
|
|
/* f031f54: 44815000 */ mtc1 $at,$f10
|
|
/* f031f58: 8fa20114 */ lw $v0,0x114($sp)
|
|
/* f031f5c: e60e02ec */ swc1 $f14,0x2ec($s0)
|
|
/* f031f60: 460a1202 */ mul.s $f8,$f2,$f10
|
|
/* f031f64: e60802e8 */ swc1 $f8,0x2e8($s0)
|
|
/* f031f68: c4460000 */ lwc1 $f6,0x0($v0)
|
|
/* f031f6c: 46023102 */ mul.s $f4,$f6,$f2
|
|
/* f031f70: e60402f0 */ swc1 $f4,0x2f0($s0)
|
|
/* f031f74: c44a0004 */ lwc1 $f10,0x4($v0)
|
|
/* f031f78: 46025202 */ mul.s $f8,$f10,$f2
|
|
/* f031f7c: e60802f4 */ swc1 $f8,0x2f4($s0)
|
|
/* f031f80: c4460008 */ lwc1 $f6,0x8($v0)
|
|
/* f031f84: 46023102 */ mul.s $f4,$f6,$f2
|
|
/* f031f88: e60402f8 */ swc1 $f4,0x2f8($s0)
|
|
/* f031f8c: 8fb90040 */ lw $t9,0x40($sp)
|
|
.L0f031f90:
|
|
/* f031f90: 3c0d8006 */ lui $t5,%hi(var800652b8+0x8)
|
|
/* f031f94: 25ad52c0 */ addiu $t5,$t5,%lo(var800652b8+0x8)
|
|
/* f031f98: 172d02c5 */ bne $t9,$t5,.L0f032ab0
|
|
/* f031f9c: 3c018007 */ lui $at,%hi(g_DrCarollDyingTimer)
|
|
/* f031fa0: ac20807c */ sw $zero,%lo(g_DrCarollDyingTimer)($at)
|
|
/* f031fa4: 3c014180 */ lui $at,0x4180
|
|
/* f031fa8: 44815000 */ mtc1 $at,$f10
|
|
/* f031fac: ae000120 */ sw $zero,0x120($s0)
|
|
/* f031fb0: a20f02b1 */ sb $t7,0x2b1($s0)
|
|
/* f031fb4: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f031fb8: 44077000 */ mfc1 $a3,$f14
|
|
/* f031fbc: e7b00010 */ swc1 $f16,0x10($sp)
|
|
/* f031fc0: 0c007733 */ jal modelSetAnimation
|
|
/* f031fc4: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f031fc8: 100002ba */ b .L0f032ab4
|
|
/* f031fcc: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f031fd0:
|
|
/* f031fd0: 271852b8 */ addiu $t8,$t8,%lo(var800652b8)
|
|
/* f031fd4: 145801c9 */ bne $v0,$t8,.L0f0326fc
|
|
/* f031fd8: 3c198006 */ lui $t9,%hi(var800652b8+0x4)
|
|
/* f031fdc: 0c00744f */ jal modelGetAnimNum
|
|
/* f031fe0: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f031fe4: 24010269 */ addiu $at,$zero,0x269
|
|
/* f031fe8: 10410006 */ beq $v0,$at,.L0f032004
|
|
/* f031fec: 2405026c */ addiu $a1,$zero,0x26c
|
|
/* f031ff0: 2401026b */ addiu $at,$zero,0x26b
|
|
/* f031ff4: 10410003 */ beq $v0,$at,.L0f032004
|
|
/* f031ff8: 2401026a */ addiu $at,$zero,0x26a
|
|
/* f031ffc: 1441000d */ bne $v0,$at,.L0f032034
|
|
/* f032000: c7a00118 */ lwc1 $f0,0x118($sp)
|
|
.L0f032004:
|
|
/* f032004: 3c013f00 */ lui $at,0x3f00
|
|
/* f032008: 44818000 */ mtc1 $at,$f16
|
|
/* f03200c: 3c014180 */ lui $at,0x4180
|
|
/* f032010: 44814000 */ mtc1 $at,$f8
|
|
/* f032014: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f032018: 00003025 */ or $a2,$zero,$zero
|
|
/* f03201c: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f032020: e7b00010 */ swc1 $f16,0x10($sp)
|
|
/* f032024: 0c007733 */ jal modelSetAnimation
|
|
/* f032028: e7a80014 */ swc1 $f8,0x14($sp)
|
|
/* f03202c: 100001b1 */ b .L0f0326f4
|
|
/* f032030: 00000000 */ nop
|
|
.L0f032034:
|
|
/* f032034: 3c017f1b */ lui $at,%hi(var7f1a8d24)
|
|
/* f032038: c4268d24 */ lwc1 $f6,%lo(var7f1a8d24)($at)
|
|
/* f03203c: 3c017f1b */ lui $at,%hi(var7f1a8d28)
|
|
/* f032040: 4606003c */ c.lt.s $f0,$f6
|
|
/* f032044: 00000000 */ nop
|
|
/* f032048: 45010006 */ bc1t .L0f032064
|
|
/* f03204c: 00000000 */ nop
|
|
/* f032050: c4248d28 */ lwc1 $f4,%lo(var7f1a8d28)($at)
|
|
/* f032054: 4600203c */ c.lt.s $f4,$f0
|
|
/* f032058: 00000000 */ nop
|
|
/* f03205c: 45000072 */ bc1f .L0f032228
|
|
/* f032060: 00000000 */ nop
|
|
.L0f032064:
|
|
/* f032064: 0c004b70 */ jal random
|
|
/* f032068: 00000000 */ nop
|
|
/* f03206c: 24010014 */ addiu $at,$zero,0x14
|
|
/* f032070: 0041001b */ divu $zero,$v0,$at
|
|
/* f032074: 00007010 */ mfhi $t6
|
|
/* f032078: 15c0006b */ bnez $t6,.L0f032228
|
|
/* f03207c: 00000000 */ nop
|
|
/* f032080: 9219032f */ lbu $t9,0x32f($s0)
|
|
/* f032084: 17200068 */ bnez $t9,.L0f032228
|
|
/* f032088: 00000000 */ nop
|
|
/* f03208c: 0fc0f917 */ jal chrGetInverseTheta
|
|
/* f032090: 02002025 */ or $a0,$s0,$zero
|
|
/* f032094: 3c017f1b */ lui $at,%hi(var7f1a8d2c)
|
|
/* f032098: c4308d2c */ lwc1 $f16,%lo(var7f1a8d2c)($at)
|
|
/* f03209c: 3c017f1b */ lui $at,%hi(var7f1a8d30)
|
|
/* f0320a0: c42a8d30 */ lwc1 $f10,%lo(var7f1a8d30)($at)
|
|
/* f0320a4: 3c017f1b */ lui $at,%hi(var7f1a8d34)
|
|
/* f0320a8: c4288d34 */ lwc1 $f8,%lo(var7f1a8d34)($at)
|
|
/* f0320ac: 460a0080 */ add.s $f2,$f0,$f10
|
|
/* f0320b0: 8fa400f8 */ lw $a0,0xf8($sp)
|
|
/* f0320b4: 3c064316 */ lui $a2,0x4316
|
|
/* f0320b8: 46080300 */ add.s $f12,$f0,$f8
|
|
/* f0320bc: 46001386 */ mov.s $f14,$f2
|
|
/* f0320c0: 4602803e */ c.le.s $f16,$f2
|
|
/* f0320c4: 46006486 */ mov.s $f18,$f12
|
|
/* f0320c8: 45020003 */ bc1fl .L0f0320d8
|
|
/* f0320cc: 460c803e */ c.le.s $f16,$f12
|
|
/* f0320d0: 46101381 */ sub.s $f14,$f2,$f16
|
|
/* f0320d4: 460c803e */ c.le.s $f16,$f12
|
|
.L0f0320d8:
|
|
/* f0320d8: 44057000 */ mfc1 $a1,$f14
|
|
/* f0320dc: 45000002 */ bc1f .L0f0320e8
|
|
/* f0320e0: 00000000 */ nop
|
|
/* f0320e4: 46106481 */ sub.s $f18,$f12,$f16
|
|
.L0f0320e8:
|
|
/* f0320e8: 0fc0b9a1 */ jal func0f02e684
|
|
/* f0320ec: e7b200c0 */ swc1 $f18,0xc0($sp)
|
|
/* f0320f0: c7b200c0 */ lwc1 $f18,0xc0($sp)
|
|
/* f0320f4: 8fa400f8 */ lw $a0,0xf8($sp)
|
|
/* f0320f8: 3c064316 */ lui $a2,0x4316
|
|
/* f0320fc: 44059000 */ mfc1 $a1,$f18
|
|
/* f032100: 0fc0b9a1 */ jal func0f02e684
|
|
/* f032104: e7a000bc */ swc1 $f0,0xbc($sp)
|
|
/* f032108: 3c014316 */ lui $at,0x4316
|
|
/* f03210c: 44816000 */ mtc1 $at,$f12
|
|
/* f032110: c7a200bc */ lwc1 $f2,0xbc($sp)
|
|
/* f032114: 460c103c */ c.lt.s $f2,$f12
|
|
/* f032118: 00000000 */ nop
|
|
/* f03211c: 45000042 */ bc1f .L0f032228
|
|
/* f032120: 00000000 */ nop
|
|
/* f032124: 460c003c */ c.lt.s $f0,$f12
|
|
/* f032128: 3c014120 */ lui $at,0x4120
|
|
/* f03212c: 4500003e */ bc1f .L0f032228
|
|
/* f032130: 00000000 */ nop
|
|
/* f032134: 46001301 */ sub.s $f12,$f2,$f0
|
|
/* f032138: 44813000 */ mtc1 $at,$f6
|
|
/* f03213c: 3c01c120 */ lui $at,0xc120
|
|
/* f032140: 4606603c */ c.lt.s $f12,$f6
|
|
/* f032144: 00000000 */ nop
|
|
/* f032148: 45000037 */ bc1f .L0f032228
|
|
/* f03214c: 00000000 */ nop
|
|
/* f032150: 44812000 */ mtc1 $at,$f4
|
|
/* f032154: 8fad00e8 */ lw $t5,0xe8($sp)
|
|
/* f032158: 460c203c */ c.lt.s $f4,$f12
|
|
/* f03215c: 00000000 */ nop
|
|
/* f032160: 45000031 */ bc1f .L0f032228
|
|
/* f032164: 00000000 */ nop
|
|
/* f032168: 15a0002f */ bnez $t5,.L0f032228
|
|
/* f03216c: 00000000 */ nop
|
|
/* f032170: 0c004b70 */ jal random
|
|
/* f032174: 00000000 */ nop
|
|
/* f032178: 304f0003 */ andi $t7,$v0,0x3
|
|
/* f03217c: 000fc0c0 */ sll $t8,$t7,0x3
|
|
/* f032180: 030fc023 */ subu $t8,$t8,$t7
|
|
/* f032184: 3c0e8006 */ lui $t6,%hi(var800637cc+0x1a4)
|
|
/* f032188: 25ce3970 */ addiu $t6,$t6,%lo(var800637cc+0x1a4)
|
|
/* f03218c: 0018c080 */ sll $t8,$t8,0x2
|
|
/* f032190: 030e1821 */ addu $v1,$t8,$t6
|
|
/* f032194: c46a0014 */ lwc1 $f10,0x14($v1)
|
|
/* f032198: afa300b4 */ sw $v1,0xb4($sp)
|
|
/* f03219c: 3c014180 */ lui $at,0x4180
|
|
/* f0321a0: e60a0030 */ swc1 $f10,0x30($s0)
|
|
/* f0321a4: c4680018 */ lwc1 $f8,0x18($v1)
|
|
/* f0321a8: 44812000 */ mtc1 $at,$f4
|
|
/* f0321ac: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f0321b0: e6080034 */ swc1 $f8,0x34($s0)
|
|
/* f0321b4: 8fb90108 */ lw $t9,0x108($sp)
|
|
/* f0321b8: c466000c */ lwc1 $f6,0xc($v1)
|
|
/* f0321bc: 8c660004 */ lw $a2,0x4($v1)
|
|
/* f0321c0: 2f2d0001 */ sltiu $t5,$t9,0x1
|
|
/* f0321c4: afad0018 */ sw $t5,0x18($sp)
|
|
/* f0321c8: 84650000 */ lh $a1,0x0($v1)
|
|
/* f0321cc: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f0321d0: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f0321d4: 0c0076ff */ jal func0001dbfc
|
|
/* f0321d8: e7a60010 */ swc1 $f6,0x10($sp)
|
|
/* f0321dc: 8faf00b4 */ lw $t7,0xb4($sp)
|
|
/* f0321e0: 44805000 */ mtc1 $zero,$f10
|
|
/* f0321e4: c5e00008 */ lwc1 $f0,0x8($t7)
|
|
/* f0321e8: 4600503e */ c.le.s $f10,$f0
|
|
/* f0321ec: 00000000 */ nop
|
|
/* f0321f0: 45020005 */ bc1fl .L0f032208
|
|
/* f0321f4: 3c014120 */ lui $at,0x4120
|
|
/* f0321f8: 44050000 */ mfc1 $a1,$f0
|
|
/* f0321fc: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f032200: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f032204: 3c014120 */ lui $at,0x4120
|
|
.L0f032208:
|
|
/* f032208: 44814000 */ mtc1 $at,$f8
|
|
/* f03220c: 8e180018 */ lw $t8,0x18($s0)
|
|
/* f032210: 2401bfff */ addiu $at,$zero,-16385
|
|
/* f032214: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f032218: 03017024 */ and $t6,$t8,$at
|
|
/* f03221c: ae0e0018 */ sw $t6,0x18($s0)
|
|
/* f032220: e6080024 */ swc1 $f8,0x24($s0)
|
|
/* f032224: afb9010c */ sw $t9,0x10c($sp)
|
|
.L0f032228:
|
|
/* f032228: 3c017f1b */ lui $at,%hi(var7f1a8d38)
|
|
/* f03222c: c7a00118 */ lwc1 $f0,0x118($sp)
|
|
/* f032230: c4268d38 */ lwc1 $f6,%lo(var7f1a8d38)($at)
|
|
/* f032234: 3c017f1b */ lui $at,%hi(var7f1a8d3c)
|
|
/* f032238: 4600303c */ c.lt.s $f6,$f0
|
|
/* f03223c: 00000000 */ nop
|
|
/* f032240: 4502006a */ bc1fl .L0f0323ec
|
|
/* f032244: 8faf010c */ lw $t7,0x10c($sp)
|
|
/* f032248: c4248d3c */ lwc1 $f4,%lo(var7f1a8d3c)($at)
|
|
/* f03224c: 4604003c */ c.lt.s $f0,$f4
|
|
/* f032250: 00000000 */ nop
|
|
/* f032254: 45020065 */ bc1fl .L0f0323ec
|
|
/* f032258: 8faf010c */ lw $t7,0x10c($sp)
|
|
/* f03225c: 0c004b70 */ jal random
|
|
/* f032260: 00000000 */ nop
|
|
/* f032264: 24010005 */ addiu $at,$zero,0x5
|
|
/* f032268: 0041001b */ divu $zero,$v0,$at
|
|
/* f03226c: 00006810 */ mfhi $t5
|
|
/* f032270: 2da10002 */ sltiu $at,$t5,0x2
|
|
/* f032274: 5020005d */ beqzl $at,.L0f0323ec
|
|
/* f032278: 8faf010c */ lw $t7,0x10c($sp)
|
|
/* f03227c: 920f032f */ lbu $t7,0x32f($s0)
|
|
/* f032280: 27a20074 */ addiu $v0,$sp,0x74
|
|
/* f032284: 2404000b */ addiu $a0,$zero,0xb
|
|
/* f032288: 15e00057 */ bnez $t7,.L0f0323e8
|
|
/* f03228c: 8fa5011c */ lw $a1,0x11c($sp)
|
|
/* f032290: 3c188007 */ lui $t8,%hi(var80068084)
|
|
/* f032294: 27188084 */ addiu $t8,$t8,%lo(var80068084)
|
|
/* f032298: 27190030 */ addiu $t9,$t8,0x30
|
|
/* f03229c: 00406825 */ or $t5,$v0,$zero
|
|
.L0f0322a0:
|
|
/* f0322a0: 8f010000 */ lw $at,0x0($t8)
|
|
/* f0322a4: 2718000c */ addiu $t8,$t8,12
|
|
/* f0322a8: 25ad000c */ addiu $t5,$t5,12
|
|
/* f0322ac: ada1fff4 */ sw $at,-0xc($t5)
|
|
/* f0322b0: 8f01fff8 */ lw $at,-0x8($t8)
|
|
/* f0322b4: ada1fff8 */ sw $at,-0x8($t5)
|
|
/* f0322b8: 8f01fffc */ lw $at,-0x4($t8)
|
|
/* f0322bc: 1719fff8 */ bne $t8,$t9,.L0f0322a0
|
|
/* f0322c0: ada1fffc */ sw $at,-0x4($t5)
|
|
/* f0322c4: 8f010000 */ lw $at,0x0($t8)
|
|
/* f0322c8: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f0322cc: ada10000 */ sw $at,0x0($t5)
|
|
/* f0322d0: 8f190004 */ lw $t9,0x4($t8)
|
|
/* f0322d4: 2401000e */ addiu $at,$zero,0xe
|
|
/* f0322d8: adb90004 */ sw $t9,0x4($t5)
|
|
/* f0322dc: 8fa90108 */ lw $t1,0x108($sp)
|
|
/* f0322e0: afaf010c */ sw $t7,0x10c($sp)
|
|
/* f0322e4: 2d2e0001 */ sltiu $t6,$t1,0x1
|
|
/* f0322e8: 10a40003 */ beq $a1,$a0,.L0f0322f8
|
|
/* f0322ec: 01c04825 */ or $t1,$t6,$zero
|
|
/* f0322f0: 14a10007 */ bne $a1,$at,.L0f032310
|
|
/* f0322f4: 27a30090 */ addiu $v1,$sp,0x90
|
|
.L0f0322f8:
|
|
/* f0322f8: 14a40003 */ bne $a1,$a0,.L0f032308
|
|
/* f0322fc: 00401825 */ or $v1,$v0,$zero
|
|
/* f032300: 10000009 */ b .L0f032328
|
|
/* f032304: 24060001 */ addiu $a2,$zero,0x1
|
|
.L0f032308:
|
|
/* f032308: 10000007 */ b .L0f032328
|
|
/* f03230c: 00003025 */ or $a2,$zero,$zero
|
|
.L0f032310:
|
|
/* f032310: afa300ac */ sw $v1,0xac($sp)
|
|
/* f032314: 0c004b70 */ jal random
|
|
/* f032318: afa90038 */ sw $t1,0x38($sp)
|
|
/* f03231c: 8fa300ac */ lw $v1,0xac($sp)
|
|
/* f032320: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f032324: 30460001 */ andi $a2,$v0,0x1
|
|
.L0f032328:
|
|
/* f032328: c46a0014 */ lwc1 $f10,0x14($v1)
|
|
/* f03232c: 3c014180 */ lui $at,0x4180
|
|
/* f032330: 44812000 */ mtc1 $at,$f4
|
|
/* f032334: e60a0030 */ swc1 $f10,0x30($s0)
|
|
/* f032338: c4680018 */ lwc1 $f8,0x18($v1)
|
|
/* f03233c: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f032340: e6080034 */ swc1 $f8,0x34($s0)
|
|
/* f032344: c466000c */ lwc1 $f6,0xc($v1)
|
|
/* f032348: 84650000 */ lh $a1,0x0($v1)
|
|
/* f03234c: afa300ac */ sw $v1,0xac($sp)
|
|
/* f032350: afa90018 */ sw $t1,0x18($sp)
|
|
/* f032354: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f032358: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f03235c: 0c0076ff */ jal func0001dbfc
|
|
/* f032360: e7a60010 */ swc1 $f6,0x10($sp)
|
|
/* f032364: 8fa300ac */ lw $v1,0xac($sp)
|
|
/* f032368: 44805000 */ mtc1 $zero,$f10
|
|
/* f03236c: 02002025 */ or $a0,$s0,$zero
|
|
/* f032370: c4600008 */ lwc1 $f0,0x8($v1)
|
|
/* f032374: 4600503e */ c.le.s $f10,$f0
|
|
/* f032378: 00000000 */ nop
|
|
/* f03237c: 45000009 */ bc1f .L0f0323a4
|
|
/* f032380: 00000000 */ nop
|
|
/* f032384: 44050000 */ mfc1 $a1,$f0
|
|
/* f032388: 0fc0b898 */ jal chrGetRangedArghSpeed
|
|
/* f03238c: 3c064100 */ lui $a2,0x4100
|
|
/* f032390: 44050000 */ mfc1 $a1,$f0
|
|
/* f032394: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f032398: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f03239c: 1000000f */ b .L0f0323dc
|
|
/* f0323a0: 8e180018 */ lw $t8,0x18($s0)
|
|
.L0f0323a4:
|
|
/* f0323a4: 0c008dda */ jal animGetNumFrames
|
|
/* f0323a8: 84640000 */ lh $a0,0x0($v1)
|
|
/* f0323ac: 2459ffff */ addiu $t9,$v0,-1
|
|
/* f0323b0: 44994000 */ mtc1 $t9,$f8
|
|
/* f0323b4: 02002025 */ or $a0,$s0,$zero
|
|
/* f0323b8: 3c064100 */ lui $a2,0x4100
|
|
/* f0323bc: 46804220 */ cvt.s.w $f8,$f8
|
|
/* f0323c0: 44054000 */ mfc1 $a1,$f8
|
|
/* f0323c4: 0fc0b898 */ jal chrGetRangedArghSpeed
|
|
/* f0323c8: 00000000 */ nop
|
|
/* f0323cc: 44050000 */ mfc1 $a1,$f0
|
|
/* f0323d0: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f0323d4: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f0323d8: 8e180018 */ lw $t8,0x18($s0)
|
|
.L0f0323dc:
|
|
/* f0323dc: 2401bfff */ addiu $at,$zero,-16385
|
|
/* f0323e0: 03016824 */ and $t5,$t8,$at
|
|
/* f0323e4: ae0d0018 */ sw $t5,0x18($s0)
|
|
.L0f0323e8:
|
|
/* f0323e8: 8faf010c */ lw $t7,0x10c($sp)
|
|
.L0f0323ec:
|
|
/* f0323ec: 8fa20104 */ lw $v0,0x104($sp)
|
|
/* f0323f0: 15e000c0 */ bnez $t7,.L0f0326f4
|
|
/* f0323f4: 00000000 */ nop
|
|
/* f0323f8: 044000be */ bltz $v0,.L0f0326f4
|
|
/* f0323fc: 8fae0040 */ lw $t6,0x40($sp)
|
|
/* f032400: 8dd90000 */ lw $t9,0x0($t6)
|
|
/* f032404: 00023080 */ sll $a2,$v0,0x2
|
|
/* f032408: 00c23021 */ addu $a2,$a2,$v0
|
|
/* f03240c: 00063080 */ sll $a2,$a2,0x2
|
|
/* f032410: 03261821 */ addu $v1,$t9,$a2
|
|
/* f032414: 8c780004 */ lw $t8,0x4($v1)
|
|
/* f032418: 130000b6 */ beqz $t8,.L0f0326f4
|
|
/* f03241c: 00000000 */ nop
|
|
/* f032420: 8c6d000c */ lw $t5,0xc($v1)
|
|
/* f032424: 8faf00e8 */ lw $t7,0xe8($sp)
|
|
/* f032428: 19a000b2 */ blez $t5,.L0f0326f4
|
|
/* f03242c: 00000000 */ nop
|
|
/* f032430: 15e000b0 */ bnez $t7,.L0f0326f4
|
|
/* f032434: 8fa90108 */ lw $t1,0x108($sp)
|
|
/* f032438: 9204032f */ lbu $a0,0x32f($s0)
|
|
/* f03243c: 2d2e0001 */ sltiu $t6,$t1,0x1
|
|
/* f032440: 01c04825 */ or $t1,$t6,$zero
|
|
/* f032444: 14800017 */ bnez $a0,.L0f0324a4
|
|
/* f032448: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03244c: afa60034 */ sw $a2,0x34($sp)
|
|
/* f032450: 0c004b70 */ jal random
|
|
/* f032454: afae0038 */ sw $t6,0x38($sp)
|
|
/* f032458: 8fb90040 */ lw $t9,0x40($sp)
|
|
/* f03245c: 8fa60034 */ lw $a2,0x34($sp)
|
|
/* f032460: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f032464: 8f380000 */ lw $t8,0x0($t9)
|
|
/* f032468: 9204032f */ lbu $a0,0x32f($s0)
|
|
/* f03246c: 03061821 */ addu $v1,$t8,$a2
|
|
/* f032470: 8c6d000c */ lw $t5,0xc($v1)
|
|
/* f032474: 8c6f0004 */ lw $t7,0x4($v1)
|
|
/* f032478: 004d001b */ divu $zero,$v0,$t5
|
|
/* f03247c: 00002810 */ mfhi $a1
|
|
/* f032480: 000570c0 */ sll $t6,$a1,0x3
|
|
/* f032484: 01c57023 */ subu $t6,$t6,$a1
|
|
/* f032488: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f03248c: 15a00002 */ bnez $t5,.L0f032498
|
|
/* f032490: 00000000 */ nop
|
|
/* f032494: 0007000d */ break 0x7
|
|
.L0f032498:
|
|
/* f032498: 01ee4021 */ addu $t0,$t7,$t6
|
|
/* f03249c: 1000003e */ b .L0f032598
|
|
/* f0324a0: c5060014 */ lwc1 $f6,0x14($t0)
|
|
.L0f0324a4:
|
|
/* f0324a4: 14810035 */ bne $a0,$at,.L0f03257c
|
|
/* f0324a8: 0004c0c0 */ sll $t8,$a0,0x3
|
|
/* f0324ac: 0c004b70 */ jal random
|
|
/* f0324b0: afa90038 */ sw $t1,0x38($sp)
|
|
/* f0324b4: 920d032f */ lbu $t5,0x32f($s0)
|
|
/* f0324b8: 30590001 */ andi $t9,$v0,0x1
|
|
/* f0324bc: 0019c0c0 */ sll $t8,$t9,0x3
|
|
/* f0324c0: 0319c023 */ subu $t8,$t8,$t9
|
|
/* f0324c4: 000d78c0 */ sll $t7,$t5,0x3
|
|
/* f0324c8: 8e0402e4 */ lw $a0,0x2e4($s0)
|
|
/* f0324cc: 01ed7823 */ subu $t7,$t7,$t5
|
|
/* f0324d0: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f0324d4: 0018c080 */ sll $t8,$t8,0x2
|
|
/* f0324d8: 3c198006 */ lui $t9,%hi(var80064de4+0x38)
|
|
/* f0324dc: 27394e1c */ addiu $t9,$t9,%lo(var80064de4+0x38)
|
|
/* f0324e0: 030f7021 */ addu $t6,$t8,$t7
|
|
/* f0324e4: 01d94021 */ addu $t0,$t6,$t9
|
|
/* f0324e8: 04800022 */ bltz $a0,.L0f032574
|
|
/* f0324ec: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f0324f0: afa8006c */ sw $t0,0x6c($sp)
|
|
/* f0324f4: 0fc2556c */ jal objFindByTagId
|
|
/* f0324f8: afa90038 */ sw $t1,0x38($sp)
|
|
/* f0324fc: 8c4d0010 */ lw $t5,0x10($v0)
|
|
/* f032500: 8c4f0008 */ lw $t7,0x8($v0)
|
|
/* f032504: 2401fffe */ addiu $at,$zero,-2
|
|
/* f032508: 01a1c024 */ and $t8,$t5,$at
|
|
/* f03250c: 3c010002 */ lui $at,0x2
|
|
/* f032510: 8fa8006c */ lw $t0,0x6c($sp)
|
|
/* f032514: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f032518: 01e17025 */ or $t6,$t7,$at
|
|
/* f03251c: ac580010 */ sw $t8,0x10($v0)
|
|
/* f032520: 10400008 */ beqz $v0,.L0f032544
|
|
/* f032524: ac4e0008 */ sw $t6,0x8($v0)
|
|
/* f032528: 8c590014 */ lw $t9,0x14($v0)
|
|
/* f03252c: 53200006 */ beqzl $t9,.L0f032548
|
|
/* f032530: 84580004 */ lh $t8,0x4($v0)
|
|
/* f032534: 844d0004 */ lh $t5,0x4($v0)
|
|
/* f032538: 24010041 */ addiu $at,$zero,0x41
|
|
/* f03253c: 51a10006 */ beql $t5,$at,.L0f032558
|
|
/* f032540: 920f032f */ lbu $t7,0x32f($s0)
|
|
.L0f032544:
|
|
/* f032544: 84580004 */ lh $t8,0x4($v0)
|
|
.L0f032548:
|
|
/* f032548: 24010040 */ addiu $at,$zero,0x40
|
|
/* f03254c: 17010009 */ bne $t8,$at,.L0f032574
|
|
/* f032550: 00000000 */ nop
|
|
/* f032554: 920f032f */ lbu $t7,0x32f($s0)
|
|
.L0f032558:
|
|
/* f032558: 3c0d8006 */ lui $t5,%hi(var80064de4+0x38)
|
|
/* f03255c: 25ad4e1c */ addiu $t5,$t5,%lo(var80064de4+0x38)
|
|
/* f032560: 000f70c0 */ sll $t6,$t7,0x3
|
|
/* f032564: 01cf7023 */ subu $t6,$t6,$t7
|
|
/* f032568: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f03256c: 25d9ffe4 */ addiu $t9,$t6,-28
|
|
/* f032570: 032d4021 */ addu $t0,$t9,$t5
|
|
.L0f032574:
|
|
/* f032574: 10000007 */ b .L0f032594
|
|
/* f032578: 9204032f */ lbu $a0,0x32f($s0)
|
|
.L0f03257c:
|
|
/* f03257c: 0304c023 */ subu $t8,$t8,$a0
|
|
/* f032580: 0018c080 */ sll $t8,$t8,0x2
|
|
/* f032584: 3c0e8006 */ lui $t6,%hi(var80064de4+0x38)
|
|
/* f032588: 25ce4e1c */ addiu $t6,$t6,%lo(var80064de4+0x38)
|
|
/* f03258c: 270fffe4 */ addiu $t7,$t8,-28
|
|
/* f032590: 01ee4021 */ addu $t0,$t7,$t6
|
|
.L0f032594:
|
|
/* f032594: c5060014 */ lwc1 $f6,0x14($t0)
|
|
.L0f032598:
|
|
/* f032598: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f03259c: 3c0141f0 */ lui $at,0x41f0
|
|
/* f0325a0: e6060030 */ swc1 $f6,0x30($s0)
|
|
/* f0325a4: c5040018 */ lwc1 $f4,0x18($t0)
|
|
/* f0325a8: 1480000f */ bnez $a0,.L0f0325e8
|
|
/* f0325ac: e6040034 */ swc1 $f4,0x34($s0)
|
|
/* f0325b0: c50a000c */ lwc1 $f10,0xc($t0)
|
|
/* f0325b4: 85050000 */ lh $a1,0x0($t0)
|
|
/* f0325b8: 8d060004 */ lw $a2,0x4($t0)
|
|
/* f0325bc: 3c014180 */ lui $at,0x4180
|
|
/* f0325c0: 44814000 */ mtc1 $at,$f8
|
|
/* f0325c4: afa8006c */ sw $t0,0x6c($sp)
|
|
/* f0325c8: afa90018 */ sw $t1,0x18($sp)
|
|
/* f0325cc: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f0325d0: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f0325d4: e7aa0010 */ swc1 $f10,0x10($sp)
|
|
/* f0325d8: 0c0076ff */ jal func0001dbfc
|
|
/* f0325dc: e7a80014 */ swc1 $f8,0x14($sp)
|
|
/* f0325e0: 1000000c */ b .L0f032614
|
|
/* f0325e4: 8fa8006c */ lw $t0,0x6c($sp)
|
|
.L0f0325e8:
|
|
/* f0325e8: c506000c */ lwc1 $f6,0xc($t0)
|
|
/* f0325ec: 85050000 */ lh $a1,0x0($t0)
|
|
/* f0325f0: 8d060004 */ lw $a2,0x4($t0)
|
|
/* f0325f4: 44812000 */ mtc1 $at,$f4
|
|
/* f0325f8: afa8006c */ sw $t0,0x6c($sp)
|
|
/* f0325fc: afa90018 */ sw $t1,0x18($sp)
|
|
/* f032600: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f032604: e7a60010 */ swc1 $f6,0x10($sp)
|
|
/* f032608: 0c0076ff */ jal func0001dbfc
|
|
/* f03260c: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f032610: 8fa8006c */ lw $t0,0x6c($sp)
|
|
.L0f032614:
|
|
/* f032614: c5000008 */ lwc1 $f0,0x8($t0)
|
|
/* f032618: 44805000 */ mtc1 $zero,$f10
|
|
/* f03261c: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f032620: 4600503e */ c.le.s $f10,$f0
|
|
/* f032624: 00000000 */ nop
|
|
/* f032628: 45020006 */ bc1fl .L0f032644
|
|
/* f03262c: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f032630: 44050000 */ mfc1 $a1,$f0
|
|
/* f032634: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f032638: afa8006c */ sw $t0,0x6c($sp)
|
|
/* f03263c: 8fa8006c */ lw $t0,0x6c($sp)
|
|
/* f032640: 8fa40120 */ lw $a0,0x120($sp)
|
|
.L0f032644:
|
|
/* f032644: 0fc2c73a */ jal handGetSingleUnk34
|
|
/* f032648: afa8006c */ sw $t0,0x6c($sp)
|
|
/* f03264c: 44804000 */ mtc1 $zero,$f8
|
|
/* f032650: 8fa8006c */ lw $t0,0x6c($sp)
|
|
/* f032654: 46000086 */ mov.s $f2,$f0
|
|
/* f032658: 4608003e */ c.le.s $f0,$f8
|
|
/* f03265c: 00000000 */ nop
|
|
/* f032660: 45020009 */ bc1fl .L0f032688
|
|
/* f032664: 8d180010 */ lw $t8,0x10($t0)
|
|
/* f032668: 8e190018 */ lw $t9,0x18($s0)
|
|
/* f03266c: 3c0140c0 */ lui $at,0x40c0
|
|
/* f032670: 332d8000 */ andi $t5,$t9,0x8000
|
|
/* f032674: 51a00004 */ beqzl $t5,.L0f032688
|
|
/* f032678: 8d180010 */ lw $t8,0x10($t0)
|
|
/* f03267c: 44811000 */ mtc1 $at,$f2
|
|
/* f032680: 00000000 */ nop
|
|
/* f032684: 8d180010 */ lw $t8,0x10($t0)
|
|
.L0f032688:
|
|
/* f032688: 53000017 */ beqzl $t8,.L0f0326e8
|
|
/* f03268c: 8e0f0018 */ lw $t7,0x18($s0)
|
|
/* f032690: 44803000 */ mtc1 $zero,$f6
|
|
/* f032694: 3c014170 */ lui $at,0x4170
|
|
/* f032698: 4602303c */ c.lt.s $f6,$f2
|
|
/* f03269c: 00000000 */ nop
|
|
/* f0326a0: 45020011 */ bc1fl .L0f0326e8
|
|
/* f0326a4: 8e0f0018 */ lw $t7,0x18($s0)
|
|
/* f0326a8: 44812000 */ mtc1 $at,$f4
|
|
/* f0326ac: 8fa20114 */ lw $v0,0x114($sp)
|
|
/* f0326b0: 44804000 */ mtc1 $zero,$f8
|
|
/* f0326b4: 46041282 */ mul.s $f10,$f2,$f4
|
|
/* f0326b8: e608003c */ swc1 $f8,0x3c($s0)
|
|
/* f0326bc: e60a0038 */ swc1 $f10,0x38($s0)
|
|
/* f0326c0: c4460000 */ lwc1 $f6,0x0($v0)
|
|
/* f0326c4: 46023102 */ mul.s $f4,$f6,$f2
|
|
/* f0326c8: e6040040 */ swc1 $f4,0x40($s0)
|
|
/* f0326cc: c44a0004 */ lwc1 $f10,0x4($v0)
|
|
/* f0326d0: 46025202 */ mul.s $f8,$f10,$f2
|
|
/* f0326d4: e6080044 */ swc1 $f8,0x44($s0)
|
|
/* f0326d8: c4460008 */ lwc1 $f6,0x8($v0)
|
|
/* f0326dc: 46023102 */ mul.s $f4,$f6,$f2
|
|
/* f0326e0: e6040048 */ swc1 $f4,0x48($s0)
|
|
/* f0326e4: 8e0f0018 */ lw $t7,0x18($s0)
|
|
.L0f0326e8:
|
|
/* f0326e8: 2401bfff */ addiu $at,$zero,-16385
|
|
/* f0326ec: 01e17024 */ and $t6,$t7,$at
|
|
/* f0326f0: ae0e0018 */ sw $t6,0x18($s0)
|
|
.L0f0326f4:
|
|
/* f0326f4: 100000ae */ b .L0f0329b0
|
|
/* f0326f8: 8fa20040 */ lw $v0,0x40($sp)
|
|
.L0f0326fc:
|
|
/* f0326fc: 273952bc */ addiu $t9,$t9,%lo(var800652b8+0x4)
|
|
/* f032700: 145900ab */ bne $v0,$t9,.L0f0329b0
|
|
/* f032704: 3c017f1b */ lui $at,%hi(var7f1a8d40)
|
|
/* f032708: c42a8d40 */ lwc1 $f10,%lo(var7f1a8d40)($at)
|
|
/* f03270c: c7a80118 */ lwc1 $f8,0x118($sp)
|
|
/* f032710: 3c017f1b */ lui $at,%hi(var7f1a8d44)
|
|
/* f032714: 8faf0104 */ lw $t7,0x104($sp)
|
|
/* f032718: 4608503c */ c.lt.s $f10,$f8
|
|
/* f03271c: 00000000 */ nop
|
|
/* f032720: 4500003a */ bc1f .L0f03280c
|
|
/* f032724: 00000000 */ nop
|
|
/* f032728: c4268d44 */ lwc1 $f6,%lo(var7f1a8d44)($at)
|
|
/* f03272c: 4606403c */ c.lt.s $f8,$f6
|
|
/* f032730: 00000000 */ nop
|
|
/* f032734: 45000035 */ bc1f .L0f03280c
|
|
/* f032738: 00000000 */ nop
|
|
/* f03273c: 0c004b70 */ jal random
|
|
/* f032740: 00000000 */ nop
|
|
/* f032744: 0c004b70 */ jal random
|
|
/* f032748: afa20054 */ sw $v0,0x54($sp)
|
|
/* f03274c: 8fa30054 */ lw $v1,0x54($sp)
|
|
/* f032750: 24010006 */ addiu $at,$zero,0x6
|
|
/* f032754: 8fad0040 */ lw $t5,0x40($sp)
|
|
/* f032758: 0061001b */ divu $zero,$v1,$at
|
|
/* f03275c: 00007810 */ mfhi $t7
|
|
/* f032760: 24010003 */ addiu $at,$zero,0x3
|
|
/* f032764: 8db80000 */ lw $t8,0x0($t5)
|
|
/* f032768: 0041001b */ divu $zero,$v0,$at
|
|
/* f03276c: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f032770: 01cf7021 */ addu $t6,$t6,$t7
|
|
/* f032774: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f032778: 030ec821 */ addu $t9,$t8,$t6
|
|
/* f03277c: 00007810 */ mfhi $t7
|
|
/* f032780: 8f2d0018 */ lw $t5,0x18($t9)
|
|
/* f032784: 000fc0c0 */ sll $t8,$t7,0x3
|
|
/* f032788: 030fc023 */ subu $t8,$t8,$t7
|
|
/* f03278c: 0018c080 */ sll $t8,$t8,0x2
|
|
/* f032790: 030d4021 */ addu $t0,$t8,$t5
|
|
/* f032794: c5040014 */ lwc1 $f4,0x14($t0)
|
|
/* f032798: 3c014180 */ lui $at,0x4180
|
|
/* f03279c: 44813000 */ mtc1 $at,$f6
|
|
/* f0327a0: e6040030 */ swc1 $f4,0x30($s0)
|
|
/* f0327a4: c50a0018 */ lwc1 $f10,0x18($t0)
|
|
/* f0327a8: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f0327ac: e60a0034 */ swc1 $f10,0x34($s0)
|
|
/* f0327b0: 8fae0108 */ lw $t6,0x108($sp)
|
|
/* f0327b4: c508000c */ lwc1 $f8,0xc($t0)
|
|
/* f0327b8: 8d060004 */ lw $a2,0x4($t0)
|
|
/* f0327bc: 85050000 */ lh $a1,0x0($t0)
|
|
/* f0327c0: 2dd90001 */ sltiu $t9,$t6,0x1
|
|
/* f0327c4: afb90018 */ sw $t9,0x18($sp)
|
|
/* f0327c8: afa80060 */ sw $t0,0x60($sp)
|
|
/* f0327cc: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f0327d0: e7a60014 */ swc1 $f6,0x14($sp)
|
|
/* f0327d4: 0c0076ff */ jal func0001dbfc
|
|
/* f0327d8: e7a80010 */ swc1 $f8,0x10($sp)
|
|
/* f0327dc: 8fa80060 */ lw $t0,0x60($sp)
|
|
/* f0327e0: 44802000 */ mtc1 $zero,$f4
|
|
/* f0327e4: c5000008 */ lwc1 $f0,0x8($t0)
|
|
/* f0327e8: 4600203e */ c.le.s $f4,$f0
|
|
/* f0327ec: 00000000 */ nop
|
|
/* f0327f0: 4502006f */ bc1fl .L0f0329b0
|
|
/* f0327f4: 8fa20040 */ lw $v0,0x40($sp)
|
|
/* f0327f8: 44050000 */ mfc1 $a1,$f0
|
|
/* f0327fc: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f032800: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f032804: 1000006a */ b .L0f0329b0
|
|
/* f032808: 8fa20040 */ lw $v0,0x40($sp)
|
|
.L0f03280c:
|
|
/* f03280c: 05e0001e */ bltz $t7,.L0f032888
|
|
/* f032810: 000f3080 */ sll $a2,$t7,0x2
|
|
/* f032814: 8c580000 */ lw $t8,0x0($v0)
|
|
/* f032818: 00cf3021 */ addu $a2,$a2,$t7
|
|
/* f03281c: 00063080 */ sll $a2,$a2,0x2
|
|
/* f032820: 03061821 */ addu $v1,$t8,$a2
|
|
/* f032824: 8c6d0004 */ lw $t5,0x4($v1)
|
|
/* f032828: 51a00018 */ beqzl $t5,.L0f03288c
|
|
/* f03282c: 8c4f0000 */ lw $t7,0x0($v0)
|
|
/* f032830: 8c6e000c */ lw $t6,0xc($v1)
|
|
/* f032834: 59c00015 */ blezl $t6,.L0f03288c
|
|
/* f032838: 8c4f0000 */ lw $t7,0x0($v0)
|
|
/* f03283c: 0c004b70 */ jal random
|
|
/* f032840: afa60034 */ sw $a2,0x34($sp)
|
|
/* f032844: 8fb90040 */ lw $t9,0x40($sp)
|
|
/* f032848: 8fa60034 */ lw $a2,0x34($sp)
|
|
/* f03284c: 8f2f0000 */ lw $t7,0x0($t9)
|
|
/* f032850: 01e61821 */ addu $v1,$t7,$a2
|
|
/* f032854: 8c78000c */ lw $t8,0xc($v1)
|
|
/* f032858: 8c6d0004 */ lw $t5,0x4($v1)
|
|
/* f03285c: 0058001b */ divu $zero,$v0,$t8
|
|
/* f032860: 00002010 */ mfhi $a0
|
|
/* f032864: 000470c0 */ sll $t6,$a0,0x3
|
|
/* f032868: 01c47023 */ subu $t6,$t6,$a0
|
|
/* f03286c: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f032870: 17000002 */ bnez $t8,.L0f03287c
|
|
/* f032874: 00000000 */ nop
|
|
/* f032878: 0007000d */ break 0x7
|
|
.L0f03287c:
|
|
/* f03287c: 03201025 */ or $v0,$t9,$zero
|
|
/* f032880: 10000003 */ b .L0f032890
|
|
/* f032884: 01ae4021 */ addu $t0,$t5,$t6
|
|
.L0f032888:
|
|
/* f032888: 8c4f0000 */ lw $t7,0x0($v0)
|
|
.L0f03288c:
|
|
/* f03288c: 8de80004 */ lw $t0,0x4($t7)
|
|
.L0f032890:
|
|
/* f032890: c50a0014 */ lwc1 $f10,0x14($t0)
|
|
/* f032894: 3c014180 */ lui $at,0x4180
|
|
/* f032898: 44812000 */ mtc1 $at,$f4
|
|
/* f03289c: e60a0030 */ swc1 $f10,0x30($s0)
|
|
/* f0328a0: c5080018 */ lwc1 $f8,0x18($t0)
|
|
/* f0328a4: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f0328a8: e6080034 */ swc1 $f8,0x34($s0)
|
|
/* f0328ac: 8fb80108 */ lw $t8,0x108($sp)
|
|
/* f0328b0: c506000c */ lwc1 $f6,0xc($t0)
|
|
/* f0328b4: 8d060004 */ lw $a2,0x4($t0)
|
|
/* f0328b8: 85050000 */ lh $a1,0x0($t0)
|
|
/* f0328bc: 2f0d0001 */ sltiu $t5,$t8,0x1
|
|
/* f0328c0: afad0018 */ sw $t5,0x18($sp)
|
|
/* f0328c4: afa80060 */ sw $t0,0x60($sp)
|
|
/* f0328c8: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f0328cc: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f0328d0: 0c0076ff */ jal func0001dbfc
|
|
/* f0328d4: e7a60010 */ swc1 $f6,0x10($sp)
|
|
/* f0328d8: 8fa80060 */ lw $t0,0x60($sp)
|
|
/* f0328dc: 44805000 */ mtc1 $zero,$f10
|
|
/* f0328e0: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f0328e4: c5000008 */ lwc1 $f0,0x8($t0)
|
|
/* f0328e8: 4600503e */ c.le.s $f10,$f0
|
|
/* f0328ec: 00000000 */ nop
|
|
/* f0328f0: 45020006 */ bc1fl .L0f03290c
|
|
/* f0328f4: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0328f8: 44050000 */ mfc1 $a1,$f0
|
|
/* f0328fc: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f032900: afa80060 */ sw $t0,0x60($sp)
|
|
/* f032904: 8fa80060 */ lw $t0,0x60($sp)
|
|
/* f032908: 8fa40120 */ lw $a0,0x120($sp)
|
|
.L0f03290c:
|
|
/* f03290c: 0fc2c73a */ jal handGetSingleUnk34
|
|
/* f032910: afa80060 */ sw $t0,0x60($sp)
|
|
/* f032914: 44804000 */ mtc1 $zero,$f8
|
|
/* f032918: 8fa80060 */ lw $t0,0x60($sp)
|
|
/* f03291c: 46000086 */ mov.s $f2,$f0
|
|
/* f032920: 4608003e */ c.le.s $f0,$f8
|
|
/* f032924: 00000000 */ nop
|
|
/* f032928: 45020009 */ bc1fl .L0f032950
|
|
/* f03292c: 8d0f0010 */ lw $t7,0x10($t0)
|
|
/* f032930: 8e0e0018 */ lw $t6,0x18($s0)
|
|
/* f032934: 3c0140c0 */ lui $at,0x40c0
|
|
/* f032938: 31d98000 */ andi $t9,$t6,0x8000
|
|
/* f03293c: 53200004 */ beqzl $t9,.L0f032950
|
|
/* f032940: 8d0f0010 */ lw $t7,0x10($t0)
|
|
/* f032944: 44811000 */ mtc1 $at,$f2
|
|
/* f032948: 00000000 */ nop
|
|
/* f03294c: 8d0f0010 */ lw $t7,0x10($t0)
|
|
.L0f032950:
|
|
/* f032950: 51e00017 */ beqzl $t7,.L0f0329b0
|
|
/* f032954: 8fa20040 */ lw $v0,0x40($sp)
|
|
/* f032958: 44803000 */ mtc1 $zero,$f6
|
|
/* f03295c: 3c014170 */ lui $at,0x4170
|
|
/* f032960: 4602303c */ c.lt.s $f6,$f2
|
|
/* f032964: 00000000 */ nop
|
|
/* f032968: 45020011 */ bc1fl .L0f0329b0
|
|
/* f03296c: 8fa20040 */ lw $v0,0x40($sp)
|
|
/* f032970: 44812000 */ mtc1 $at,$f4
|
|
/* f032974: 8fa20114 */ lw $v0,0x114($sp)
|
|
/* f032978: 44804000 */ mtc1 $zero,$f8
|
|
/* f03297c: 46041282 */ mul.s $f10,$f2,$f4
|
|
/* f032980: e608003c */ swc1 $f8,0x3c($s0)
|
|
/* f032984: e60a0038 */ swc1 $f10,0x38($s0)
|
|
/* f032988: c4460000 */ lwc1 $f6,0x0($v0)
|
|
/* f03298c: 46023102 */ mul.s $f4,$f6,$f2
|
|
/* f032990: e6040040 */ swc1 $f4,0x40($s0)
|
|
/* f032994: c44a0004 */ lwc1 $f10,0x4($v0)
|
|
/* f032998: 46025202 */ mul.s $f8,$f10,$f2
|
|
/* f03299c: e6080044 */ swc1 $f8,0x44($s0)
|
|
/* f0329a0: c4460008 */ lwc1 $f6,0x8($v0)
|
|
/* f0329a4: 46023102 */ mul.s $f4,$f6,$f2
|
|
/* f0329a8: e6040048 */ swc1 $f4,0x48($s0)
|
|
/* f0329ac: 8fa20040 */ lw $v0,0x40($sp)
|
|
.L0f0329b0:
|
|
/* f0329b0: 3c18800a */ lui $t8,%hi(g_Vars+0x314)
|
|
/* f0329b4: 8f18a2d4 */ lw $t8,%lo(g_Vars+0x314)($t8)
|
|
/* f0329b8: 8fa40128 */ lw $a0,0x128($sp)
|
|
/* f0329bc: 13000008 */ beqz $t8,.L0f0329e0
|
|
/* f0329c0: 00000000 */ nop
|
|
/* f0329c4: 0fc633fe */ jal mpPlayerGetIndex
|
|
/* f0329c8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0329cc: 8fa40128 */ lw $a0,0x128($sp)
|
|
/* f0329d0: 0fc2c27d */ jal mpstatsRecordDeath
|
|
/* f0329d4: 00402825 */ or $a1,$v0,$zero
|
|
/* f0329d8: 1000000b */ b .L0f032a08
|
|
/* f0329dc: 8fa20040 */ lw $v0,0x40($sp)
|
|
.L0f0329e0:
|
|
/* f0329e0: 04800009 */ bltz $a0,.L0f032a08
|
|
/* f0329e4: 3c0d800a */ lui $t5,%hi(g_Vars+0x28c)
|
|
/* f0329e8: 8dada24c */ lw $t5,%lo(g_Vars+0x28c)($t5)
|
|
/* f0329ec: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f0329f0: afad0058 */ sw $t5,0x58($sp)
|
|
/* f0329f4: 0fc2c169 */ jal mpstatsRecordPlayerKill
|
|
/* f0329f8: 00000000 */ nop
|
|
/* f0329fc: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f032a00: 8fa40058 */ lw $a0,0x58($sp)
|
|
/* f032a04: 8fa20040 */ lw $v0,0x40($sp)
|
|
.L0f032a08:
|
|
/* f032a08: 8e0e0018 */ lw $t6,0x18($s0)
|
|
/* f032a0c: 000ecac0 */ sll $t9,$t6,0xb
|
|
/* f032a10: 07210004 */ bgez $t9,.L0f032a24
|
|
/* f032a14: 00000000 */ nop
|
|
/* f032a18: 0fc2c151 */ jal mpstatsIncrementTotalKillCount
|
|
/* f032a1c: 00000000 */ nop
|
|
/* f032a20: 8fa20040 */ lw $v0,0x40($sp)
|
|
.L0f032a24:
|
|
/* f032a24: 3c0f8006 */ lui $t7,%hi(var800652b8)
|
|
/* f032a28: 25ef52b8 */ addiu $t7,$t7,%lo(var800652b8)
|
|
/* f032a2c: 104f0004 */ beq $v0,$t7,.L0f032a40
|
|
/* f032a30: 3c188006 */ lui $t8,%hi(var800652b8+0x4)
|
|
/* f032a34: 271852bc */ addiu $t8,$t8,%lo(var800652b8+0x4)
|
|
/* f032a38: 5458001e */ bnel $v0,$t8,.L0f032ab4
|
|
/* f032a3c: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f032a40:
|
|
/* f032a40: 8e040170 */ lw $a0,0x170($s0)
|
|
/* f032a44: 5080000c */ beqzl $a0,.L0f032a78
|
|
/* f032a48: 8e040174 */ lw $a0,0x174($s0)
|
|
/* f032a4c: 8c8d0004 */ lw $t5,0x4($a0)
|
|
/* f032a50: 8dae0008 */ lw $t6,0x8($t5)
|
|
/* f032a54: 31d92000 */ andi $t9,$t6,0x2000
|
|
/* f032a58: 57200007 */ bnezl $t9,.L0f032a78
|
|
/* f032a5c: 8e040174 */ lw $a0,0x174($s0)
|
|
/* f032a60: 0fc20a59 */ jal propobjSetDropped
|
|
/* f032a64: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f032a68: 8e0f0014 */ lw $t7,0x14($s0)
|
|
/* f032a6c: 35f80001 */ ori $t8,$t7,0x1
|
|
/* f032a70: ae180014 */ sw $t8,0x14($s0)
|
|
/* f032a74: 8e040174 */ lw $a0,0x174($s0)
|
|
.L0f032a78:
|
|
/* f032a78: 1080000b */ beqz $a0,.L0f032aa8
|
|
/* f032a7c: 00000000 */ nop
|
|
/* f032a80: 8c8d0004 */ lw $t5,0x4($a0)
|
|
/* f032a84: 8dae0008 */ lw $t6,0x8($t5)
|
|
/* f032a88: 31d92000 */ andi $t9,$t6,0x2000
|
|
/* f032a8c: 17200006 */ bnez $t9,.L0f032aa8
|
|
/* f032a90: 00000000 */ nop
|
|
/* f032a94: 0fc20a59 */ jal propobjSetDropped
|
|
/* f032a98: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f032a9c: 8e0f0014 */ lw $t7,0x14($s0)
|
|
/* f032aa0: 35f80001 */ ori $t8,$t7,0x1
|
|
/* f032aa4: ae180014 */ sw $t8,0x14($s0)
|
|
.L0f032aa8:
|
|
/* f032aa8: 0fc09149 */ jal chrDropItems
|
|
/* f032aac: 02002025 */ or $a0,$s0,$zero
|
|
.L0f032ab0:
|
|
/* f032ab0: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f032ab4:
|
|
/* f032ab4: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f032ab8: 27bd0110 */ addiu $sp,$sp,0x110
|
|
/* f032abc: 03e00008 */ jr $ra
|
|
/* f032ac0: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f032ac4
|
|
.late_rodata
|
|
glabel var7f1a8d48
|
|
.word 0x4016c5bf
|
|
glabel var7f1a8d4c
|
|
.word 0x407b4993
|
|
.text
|
|
/* f032ac4: 27bdfea8 */ addiu $sp,$sp,-344
|
|
/* f032ac8: 240effff */ addiu $t6,$zero,-1
|
|
/* f032acc: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f032ad0: afb00028 */ sw $s0,0x28($sp)
|
|
/* f032ad4: 44856000 */ mtc1 $a1,$f12
|
|
/* f032ad8: afae014c */ sw $t6,0x14c($sp)
|
|
/* f032adc: 8c850020 */ lw $a1,0x20($a0)
|
|
/* f032ae0: 00808025 */ or $s0,$a0,$zero
|
|
/* f032ae4: 00004025 */ or $t0,$zero,$zero
|
|
/* f032ae8: 10800003 */ beqz $a0,.L0f032af8
|
|
/* f032aec: afa50148 */ sw $a1,0x148($sp)
|
|
/* f032af0: 10000002 */ b .L0f032afc
|
|
/* f032af4: 908302fe */ lbu $v1,0x2fe($a0)
|
|
.L0f032af8:
|
|
/* f032af8: 00001825 */ or $v1,$zero,$zero
|
|
.L0f032afc:
|
|
/* f032afc: 00a02025 */ or $a0,$a1,$zero
|
|
/* f032b00: afa30140 */ sw $v1,0x140($sp)
|
|
/* f032b04: afa60160 */ sw $a2,0x160($sp)
|
|
/* f032b08: afa80154 */ sw $t0,0x154($sp)
|
|
/* f032b0c: 0c00744f */ jal modelGetAnimNum
|
|
/* f032b10: e7ac015c */ swc1 $f12,0x15c($sp)
|
|
/* f032b14: 24010269 */ addiu $at,$zero,0x269
|
|
/* f032b18: 8fa30140 */ lw $v1,0x140($sp)
|
|
/* f032b1c: 8fa60160 */ lw $a2,0x160($sp)
|
|
/* f032b20: 8fa80154 */ lw $t0,0x154($sp)
|
|
/* f032b24: 10410006 */ beq $v0,$at,.L0f032b40
|
|
/* f032b28: c7ac015c */ lwc1 $f12,0x15c($sp)
|
|
/* f032b2c: 2401026b */ addiu $at,$zero,0x26b
|
|
/* f032b30: 10410003 */ beq $v0,$at,.L0f032b40
|
|
/* f032b34: 2401026a */ addiu $at,$zero,0x26a
|
|
/* f032b38: 54410006 */ bnel $v0,$at,.L0f032b54
|
|
/* f032b3c: 24010003 */ addiu $at,$zero,0x3
|
|
.L0f032b40:
|
|
/* f032b40: 0fc084cf */ jal func0f02133c
|
|
/* f032b44: 02002025 */ or $a0,$s0,$zero
|
|
/* f032b48: 10000122 */ b .L0f032fd4
|
|
/* f032b4c: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f032b50: 24010003 */ addiu $at,$zero,0x3
|
|
.L0f032b54:
|
|
/* f032b54: 5061011f */ beql $v1,$at,.L0f032fd4
|
|
/* f032b58: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f032b5c: 8e0f02d4 */ lw $t7,0x2d4($s0)
|
|
/* f032b60: 24010002 */ addiu $at,$zero,0x2
|
|
/* f032b64: 55e0011b */ bnezl $t7,.L0f032fd4
|
|
/* f032b68: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f032b6c: 1461001b */ bne $v1,$at,.L0f032bdc
|
|
/* f032b70: 00034880 */ sll $t1,$v1,0x2
|
|
/* f032b74: 24180006 */ addiu $t8,$zero,0x6
|
|
/* f032b78: a2180007 */ sb $t8,0x7($s0)
|
|
/* f032b7c: ae00002c */ sw $zero,0x2c($s0)
|
|
/* f032b80: 3c19800a */ lui $t9,%hi(g_Vars+0x8)
|
|
/* f032b84: 3c013f00 */ lui $at,0x3f00
|
|
/* f032b88: 8f399fc8 */ lw $t9,%lo(g_Vars+0x8)($t9)
|
|
/* f032b8c: 44812000 */ mtc1 $at,$f4
|
|
/* f032b90: 3c014180 */ lui $at,0x4180
|
|
/* f032b94: 44813000 */ mtc1 $at,$f6
|
|
/* f032b98: a2000008 */ sb $zero,0x8($s0)
|
|
/* f032b9c: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f032ba0: ae190030 */ sw $t9,0x30($s0)
|
|
/* f032ba4: 24050163 */ addiu $a1,$zero,0x163
|
|
/* f032ba8: 00003025 */ or $a2,$zero,$zero
|
|
/* f032bac: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f032bb0: e7a40010 */ swc1 $f4,0x10($sp)
|
|
/* f032bb4: 0c007733 */ jal modelSetAnimation
|
|
/* f032bb8: e7a60014 */ swc1 $f6,0x14($sp)
|
|
/* f032bbc: 92090362 */ lbu $t1,0x362($s0)
|
|
/* f032bc0: 312aff0f */ andi $t2,$t1,0xff0f
|
|
/* f032bc4: 354c0030 */ ori $t4,$t2,0x30
|
|
/* f032bc8: 318d00f0 */ andi $t5,$t4,0xf0
|
|
/* f032bcc: a20c0362 */ sb $t4,0x362($s0)
|
|
/* f032bd0: 35ae0003 */ ori $t6,$t5,0x3
|
|
/* f032bd4: 100000fe */ b .L0f032fd0
|
|
/* f032bd8: a20e0362 */ sb $t6,0x362($s0)
|
|
.L0f032bdc:
|
|
/* f032bdc: 82020007 */ lb $v0,0x7($s0)
|
|
/* f032be0: 3c0a8006 */ lui $t2,%hi(var800652b8)
|
|
/* f032be4: 254a52b8 */ addiu $t2,$t2,%lo(var800652b8)
|
|
/* f032be8: 384f0006 */ xori $t7,$v0,0x6
|
|
/* f032bec: 2de20001 */ sltiu $v0,$t7,0x1
|
|
/* f032bf0: 10400006 */ beqz $v0,.L0f032c0c
|
|
/* f032bf4: 012a5821 */ addu $t3,$t1,$t2
|
|
/* f032bf8: 3c18800a */ lui $t8,%hi(g_Vars+0x8)
|
|
/* f032bfc: 8f189fc8 */ lw $t8,%lo(g_Vars+0x8)($t8)
|
|
/* f032c00: 8e190030 */ lw $t9,0x30($s0)
|
|
/* f032c04: 03191026 */ xor $v0,$t8,$t9
|
|
/* f032c08: 2c420001 */ sltiu $v0,$v0,0x1
|
|
.L0f032c0c:
|
|
/* f032c0c: afa20150 */ sw $v0,0x150($sp)
|
|
/* f032c10: afab003c */ sw $t3,0x3c($sp)
|
|
/* f032c14: 8d670000 */ lw $a3,0x0($t3)
|
|
/* f032c18: 2405ffff */ addiu $a1,$zero,-1
|
|
/* f032c1c: 00002025 */ or $a0,$zero,$zero
|
|
/* f032c20: 8cec0000 */ lw $t4,0x0($a3)
|
|
/* f032c24: 24010007 */ addiu $at,$zero,0x7
|
|
/* f032c28: 00e01025 */ or $v0,$a3,$zero
|
|
/* f032c2c: 50ac0010 */ beql $a1,$t4,.L0f032c70
|
|
/* f032c30: 8fae003c */ lw $t6,0x3c($sp)
|
|
/* f032c34: 8ce30000 */ lw $v1,0x0($a3)
|
|
.L0f032c38:
|
|
/* f032c38: 54c30008 */ bnel $a2,$v1,.L0f032c5c
|
|
/* f032c3c: 8c430014 */ lw $v1,0x14($v0)
|
|
/* f032c40: afa4014c */ sw $a0,0x14c($sp)
|
|
/* f032c44: 920d02fd */ lbu $t5,0x2fd($s0)
|
|
/* f032c48: 55a00009 */ bnezl $t5,.L0f032c70
|
|
/* f032c4c: 8fae003c */ lw $t6,0x3c($sp)
|
|
/* f032c50: 10000006 */ b .L0f032c6c
|
|
/* f032c54: a20602fd */ sb $a2,0x2fd($s0)
|
|
/* f032c58: 8c430014 */ lw $v1,0x14($v0)
|
|
.L0f032c5c:
|
|
/* f032c5c: 24840001 */ addiu $a0,$a0,0x1
|
|
/* f032c60: 24420014 */ addiu $v0,$v0,0x14
|
|
/* f032c64: 14a3fff4 */ bne $a1,$v1,.L0f032c38
|
|
/* f032c68: 00000000 */ nop
|
|
.L0f032c6c:
|
|
/* f032c6c: 8fae003c */ lw $t6,0x3c($sp)
|
|
.L0f032c70:
|
|
/* f032c70: 3c0f8006 */ lui $t7,%hi(var800652b8)
|
|
/* f032c74: 25ef52b8 */ addiu $t7,$t7,%lo(var800652b8)
|
|
/* f032c78: 15cf0063 */ bne $t6,$t7,.L0f032e08
|
|
/* f032c7c: 00000000 */ nop
|
|
/* f032c80: 14c10061 */ bne $a2,$at,.L0f032e08
|
|
/* f032c84: 3c017f1b */ lui $at,%hi(var7f1a8d48)
|
|
/* f032c88: c4288d48 */ lwc1 $f8,%lo(var7f1a8d48)($at)
|
|
/* f032c8c: 3c017f1b */ lui $at,%hi(var7f1a8d4c)
|
|
/* f032c90: 460c403c */ c.lt.s $f8,$f12
|
|
/* f032c94: 00000000 */ nop
|
|
/* f032c98: 4500005b */ bc1f .L0f032e08
|
|
/* f032c9c: 00000000 */ nop
|
|
/* f032ca0: c42a8d4c */ lwc1 $f10,%lo(var7f1a8d4c)($at)
|
|
/* f032ca4: 460a603c */ c.lt.s $f12,$f10
|
|
/* f032ca8: 00000000 */ nop
|
|
/* f032cac: 45000056 */ bc1f .L0f032e08
|
|
/* f032cb0: 00000000 */ nop
|
|
/* f032cb4: 0c004b70 */ jal random
|
|
/* f032cb8: afa80154 */ sw $t0,0x154($sp)
|
|
/* f032cbc: 24010005 */ addiu $at,$zero,0x5
|
|
/* f032cc0: 0041001b */ divu $zero,$v0,$at
|
|
/* f032cc4: 0000c010 */ mfhi $t8
|
|
/* f032cc8: 2f010002 */ sltiu $at,$t8,0x2
|
|
/* f032ccc: 1020004e */ beqz $at,.L0f032e08
|
|
/* f032cd0: 8fa80154 */ lw $t0,0x154($sp)
|
|
/* f032cd4: 3c098007 */ lui $t1,%hi(var800680bc)
|
|
/* f032cd8: 252980bc */ addiu $t1,$t1,%lo(var800680bc)
|
|
/* f032cdc: 252b00d8 */ addiu $t3,$t1,0xd8
|
|
/* f032ce0: 27b90058 */ addiu $t9,$sp,0x58
|
|
.L0f032ce4:
|
|
/* f032ce4: 8d210000 */ lw $at,0x0($t1)
|
|
/* f032ce8: 2529000c */ addiu $t1,$t1,0xc
|
|
/* f032cec: 2739000c */ addiu $t9,$t9,12
|
|
/* f032cf0: af21fff4 */ sw $at,-0xc($t9)
|
|
/* f032cf4: 8d21fff8 */ lw $at,-0x8($t1)
|
|
/* f032cf8: af21fff8 */ sw $at,-0x8($t9)
|
|
/* f032cfc: 8d21fffc */ lw $at,-0x4($t1)
|
|
/* f032d00: 152bfff8 */ bne $t1,$t3,.L0f032ce4
|
|
/* f032d04: af21fffc */ sw $at,-0x4($t9)
|
|
/* f032d08: 8d210000 */ lw $at,0x0($t1)
|
|
/* f032d0c: 8d2b0004 */ lw $t3,0x4($t1)
|
|
/* f032d10: 02002025 */ or $a0,$s0,$zero
|
|
/* f032d14: af210000 */ sw $at,0x0($t9)
|
|
/* f032d18: 0fc0fe3d */ jal chrStopFiring
|
|
/* f032d1c: af2b0004 */ sw $t3,0x4($t9)
|
|
/* f032d20: 240c0006 */ addiu $t4,$zero,0x6
|
|
/* f032d24: a20c0007 */ sb $t4,0x7($s0)
|
|
/* f032d28: ae00002c */ sw $zero,0x2c($s0)
|
|
/* f032d2c: 3c0d800a */ lui $t5,%hi(g_Vars+0x8)
|
|
/* f032d30: 8dad9fc8 */ lw $t5,%lo(g_Vars+0x8)($t5)
|
|
/* f032d34: a2000008 */ sb $zero,0x8($s0)
|
|
/* f032d38: 0c004b70 */ jal random
|
|
/* f032d3c: ae0d0030 */ sw $t5,0x30($s0)
|
|
/* f032d40: 304e0007 */ andi $t6,$v0,0x7
|
|
/* f032d44: 000e78c0 */ sll $t7,$t6,0x3
|
|
/* f032d48: 01ee7823 */ subu $t7,$t7,$t6
|
|
/* f032d4c: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f032d50: 27b80058 */ addiu $t8,$sp,0x58
|
|
/* f032d54: 01f81821 */ addu $v1,$t7,$t8
|
|
/* f032d58: 8faa0150 */ lw $t2,0x150($sp)
|
|
/* f032d5c: c470000c */ lwc1 $f16,0xc($v1)
|
|
/* f032d60: 84650000 */ lh $a1,0x0($v1)
|
|
/* f032d64: 8c660004 */ lw $a2,0x4($v1)
|
|
/* f032d68: 3c014180 */ lui $at,0x4180
|
|
/* f032d6c: 44819000 */ mtc1 $at,$f18
|
|
/* f032d70: 2d4b0001 */ sltiu $t3,$t2,0x1
|
|
/* f032d74: afab0018 */ sw $t3,0x18($sp)
|
|
/* f032d78: afa30138 */ sw $v1,0x138($sp)
|
|
/* f032d7c: 8fa40148 */ lw $a0,0x148($sp)
|
|
/* f032d80: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f032d84: e7b00010 */ swc1 $f16,0x10($sp)
|
|
/* f032d88: 0c0076ff */ jal func0001dbfc
|
|
/* f032d8c: e7b20014 */ swc1 $f18,0x14($sp)
|
|
/* f032d90: 8fa80138 */ lw $t0,0x138($sp)
|
|
/* f032d94: 44802000 */ mtc1 $zero,$f4
|
|
/* f032d98: 02002025 */ or $a0,$s0,$zero
|
|
/* f032d9c: c5000008 */ lwc1 $f0,0x8($t0)
|
|
/* f032da0: 4600203e */ c.le.s $f4,$f0
|
|
/* f032da4: 00000000 */ nop
|
|
/* f032da8: 45000009 */ bc1f .L0f032dd0
|
|
/* f032dac: 00000000 */ nop
|
|
/* f032db0: 44050000 */ mfc1 $a1,$f0
|
|
/* f032db4: 0fc0b898 */ jal chrGetRangedArghSpeed
|
|
/* f032db8: 3c064100 */ lui $a2,0x4100
|
|
/* f032dbc: 44050000 */ mfc1 $a1,$f0
|
|
/* f032dc0: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f032dc4: 8fa40148 */ lw $a0,0x148($sp)
|
|
/* f032dc8: 1000000f */ b .L0f032e08
|
|
/* f032dcc: 24080001 */ addiu $t0,$zero,0x1
|
|
.L0f032dd0:
|
|
/* f032dd0: 0c008dda */ jal animGetNumFrames
|
|
/* f032dd4: 85040000 */ lh $a0,0x0($t0)
|
|
/* f032dd8: 2449ffff */ addiu $t1,$v0,-1
|
|
/* f032ddc: 44893000 */ mtc1 $t1,$f6
|
|
/* f032de0: 02002025 */ or $a0,$s0,$zero
|
|
/* f032de4: 3c064100 */ lui $a2,0x4100
|
|
/* f032de8: 468031a0 */ cvt.s.w $f6,$f6
|
|
/* f032dec: 44053000 */ mfc1 $a1,$f6
|
|
/* f032df0: 0fc0b898 */ jal chrGetRangedArghSpeed
|
|
/* f032df4: 00000000 */ nop
|
|
/* f032df8: 44050000 */ mfc1 $a1,$f0
|
|
/* f032dfc: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f032e00: 8fa40148 */ lw $a0,0x148($sp)
|
|
/* f032e04: 24080001 */ addiu $t0,$zero,0x1
|
|
.L0f032e08:
|
|
/* f032e08: 15000071 */ bnez $t0,.L0f032fd0
|
|
/* f032e0c: 8fb9014c */ lw $t9,0x14c($sp)
|
|
/* f032e10: 0720006f */ bltz $t9,.L0f032fd0
|
|
/* f032e14: 8fac003c */ lw $t4,0x3c($sp)
|
|
/* f032e18: 8d8d0000 */ lw $t5,0x0($t4)
|
|
/* f032e1c: 00193080 */ sll $a2,$t9,0x2
|
|
/* f032e20: 00d93021 */ addu $a2,$a2,$t9
|
|
/* f032e24: 00063080 */ sll $a2,$a2,0x2
|
|
/* f032e28: 01a61821 */ addu $v1,$t5,$a2
|
|
/* f032e2c: 8c6e0008 */ lw $t6,0x8($v1)
|
|
/* f032e30: 51c00068 */ beqzl $t6,.L0f032fd4
|
|
/* f032e34: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f032e38: 8c6f0010 */ lw $t7,0x10($v1)
|
|
/* f032e3c: 8fb80150 */ lw $t8,0x150($sp)
|
|
/* f032e40: 02002025 */ or $a0,$s0,$zero
|
|
/* f032e44: 19e00062 */ blez $t7,.L0f032fd0
|
|
/* f032e48: 2f0a0001 */ sltiu $t2,$t8,0x1
|
|
/* f032e4c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f032e50: afaa0038 */ sw $t2,0x38($sp)
|
|
/* f032e54: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f032e58: afa60034 */ sw $a2,0x34($sp)
|
|
/* f032e5c: afa20054 */ sw $v0,0x54($sp)
|
|
/* f032e60: 02002025 */ or $a0,$s0,$zero
|
|
/* f032e64: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f032e68: 00002825 */ or $a1,$zero,$zero
|
|
/* f032e6c: 8fab003c */ lw $t3,0x3c($sp)
|
|
/* f032e70: 3c098006 */ lui $t1,%hi(var800652b8)
|
|
/* f032e74: 252952b8 */ addiu $t1,$t1,%lo(var800652b8)
|
|
/* f032e78: 15690010 */ bne $t3,$t1,.L0f032ebc
|
|
/* f032e7c: 8fa60034 */ lw $a2,0x34($sp)
|
|
/* f032e80: 240100b4 */ addiu $at,$zero,0xb4
|
|
/* f032e84: 14c10006 */ bne $a2,$at,.L0f032ea0
|
|
/* f032e88: 8fb90054 */ lw $t9,0x54($sp)
|
|
/* f032e8c: 13200004 */ beqz $t9,.L0f032ea0
|
|
/* f032e90: 240c000a */ addiu $t4,$zero,0xa
|
|
/* f032e94: afac014c */ sw $t4,0x14c($sp)
|
|
/* f032e98: 10000008 */ b .L0f032ebc
|
|
/* f032e9c: 240600c8 */ addiu $a2,$zero,0xc8
|
|
.L0f032ea0:
|
|
/* f032ea0: 240100f0 */ addiu $at,$zero,0xf0
|
|
/* f032ea4: 14c10005 */ bne $a2,$at,.L0f032ebc
|
|
/* f032ea8: 00000000 */ nop
|
|
/* f032eac: 10400003 */ beqz $v0,.L0f032ebc
|
|
/* f032eb0: 240d000d */ addiu $t5,$zero,0xd
|
|
/* f032eb4: afad014c */ sw $t5,0x14c($sp)
|
|
/* f032eb8: 24060104 */ addiu $a2,$zero,0x104
|
|
.L0f032ebc:
|
|
/* f032ebc: 0c004b70 */ jal random
|
|
/* f032ec0: afa60034 */ sw $a2,0x34($sp)
|
|
/* f032ec4: 8fae003c */ lw $t6,0x3c($sp)
|
|
/* f032ec8: 8fa60034 */ lw $a2,0x34($sp)
|
|
/* f032ecc: 02002025 */ or $a0,$s0,$zero
|
|
/* f032ed0: 8dcf0000 */ lw $t7,0x0($t6)
|
|
/* f032ed4: 01e61821 */ addu $v1,$t7,$a2
|
|
/* f032ed8: 8c780010 */ lw $t8,0x10($v1)
|
|
/* f032edc: 8c6a0008 */ lw $t2,0x8($v1)
|
|
/* f032ee0: 0058001b */ divu $zero,$v0,$t8
|
|
/* f032ee4: 00002810 */ mfhi $a1
|
|
/* f032ee8: 000558c0 */ sll $t3,$a1,0x3
|
|
/* f032eec: 01655823 */ subu $t3,$t3,$a1
|
|
/* f032ef0: 000b5880 */ sll $t3,$t3,0x2
|
|
/* f032ef4: 17000002 */ bnez $t8,.L0f032f00
|
|
/* f032ef8: 00000000 */ nop
|
|
/* f032efc: 0007000d */ break 0x7
|
|
.L0f032f00:
|
|
/* f032f00: 014b4021 */ addu $t0,$t2,$t3
|
|
/* f032f04: 0fc0fe3d */ jal chrStopFiring
|
|
/* f032f08: afa80048 */ sw $t0,0x48($sp)
|
|
/* f032f0c: 8fa80048 */ lw $t0,0x48($sp)
|
|
/* f032f10: 24090006 */ addiu $t1,$zero,0x6
|
|
/* f032f14: a2090007 */ sb $t1,0x7($s0)
|
|
/* f032f18: ae00002c */ sw $zero,0x2c($s0)
|
|
/* f032f1c: 3c19800a */ lui $t9,%hi(g_Vars+0x8)
|
|
/* f032f20: 8f399fc8 */ lw $t9,%lo(g_Vars+0x8)($t9)
|
|
/* f032f24: a2000008 */ sb $zero,0x8($s0)
|
|
/* f032f28: 3c014180 */ lui $at,0x4180
|
|
/* f032f2c: ae190030 */ sw $t9,0x30($s0)
|
|
/* f032f30: 8fac0038 */ lw $t4,0x38($sp)
|
|
/* f032f34: 44815000 */ mtc1 $at,$f10
|
|
/* f032f38: c508000c */ lwc1 $f8,0xc($t0)
|
|
/* f032f3c: 8d060004 */ lw $a2,0x4($t0)
|
|
/* f032f40: 85050000 */ lh $a1,0x0($t0)
|
|
/* f032f44: 8fa40148 */ lw $a0,0x148($sp)
|
|
/* f032f48: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f032f4c: afac0018 */ sw $t4,0x18($sp)
|
|
/* f032f50: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f032f54: 0c0076ff */ jal func0001dbfc
|
|
/* f032f58: e7a80010 */ swc1 $f8,0x10($sp)
|
|
/* f032f5c: 8fa80048 */ lw $t0,0x48($sp)
|
|
/* f032f60: 44808000 */ mtc1 $zero,$f16
|
|
/* f032f64: 02002025 */ or $a0,$s0,$zero
|
|
/* f032f68: c5000008 */ lwc1 $f0,0x8($t0)
|
|
/* f032f6c: 4600803e */ c.le.s $f16,$f0
|
|
/* f032f70: 00000000 */ nop
|
|
/* f032f74: 45000009 */ bc1f .L0f032f9c
|
|
/* f032f78: 00000000 */ nop
|
|
/* f032f7c: 44050000 */ mfc1 $a1,$f0
|
|
/* f032f80: 0fc0b898 */ jal chrGetRangedArghSpeed
|
|
/* f032f84: 3c064100 */ lui $a2,0x4100
|
|
/* f032f88: 44050000 */ mfc1 $a1,$f0
|
|
/* f032f8c: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f032f90: 8fa40148 */ lw $a0,0x148($sp)
|
|
/* f032f94: 1000000f */ b .L0f032fd4
|
|
/* f032f98: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f032f9c:
|
|
/* f032f9c: 0c008dda */ jal animGetNumFrames
|
|
/* f032fa0: 85040000 */ lh $a0,0x0($t0)
|
|
/* f032fa4: 244dffff */ addiu $t5,$v0,-1
|
|
/* f032fa8: 448d9000 */ mtc1 $t5,$f18
|
|
/* f032fac: 02002025 */ or $a0,$s0,$zero
|
|
/* f032fb0: 3c064100 */ lui $a2,0x4100
|
|
/* f032fb4: 468094a0 */ cvt.s.w $f18,$f18
|
|
/* f032fb8: 44059000 */ mfc1 $a1,$f18
|
|
/* f032fbc: 0fc0b898 */ jal chrGetRangedArghSpeed
|
|
/* f032fc0: 00000000 */ nop
|
|
/* f032fc4: 44050000 */ mfc1 $a1,$f0
|
|
/* f032fc8: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f032fcc: 8fa40148 */ lw $a0,0x148($sp)
|
|
.L0f032fd0:
|
|
/* f032fd0: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f032fd4:
|
|
/* f032fd4: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f032fd8: 27bd0158 */ addiu $sp,$sp,0x158
|
|
/* f032fdc: 03e00008 */ jr $ra
|
|
/* f032fe0: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f032fe4
|
|
/* f032fe4: 27bdffc0 */ addiu $sp,$sp,-64
|
|
/* f032fe8: afb00028 */ sw $s0,0x28($sp)
|
|
/* f032fec: 00808025 */ or $s0,$a0,$zero
|
|
/* f032ff0: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f032ff4: afa50044 */ sw $a1,0x44($sp)
|
|
/* f032ff8: afa60048 */ sw $a2,0x48($sp)
|
|
/* f032ffc: 10800003 */ beqz $a0,.L0f03300c
|
|
/* f033000: afa7004c */ sw $a3,0x4c($sp)
|
|
/* f033004: 10000002 */ b .L0f033010
|
|
/* f033008: 908302fe */ lbu $v1,0x2fe($a0)
|
|
.L0f03300c:
|
|
/* f03300c: 00001825 */ or $v1,$zero,$zero
|
|
.L0f033010:
|
|
/* f033010: afa00038 */ sw $zero,0x38($sp)
|
|
/* f033014: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f033018: 0c00744f */ jal modelGetAnimNum
|
|
/* f03301c: afa3003c */ sw $v1,0x3c($sp)
|
|
/* f033020: 820e0007 */ lb $t6,0x7($s0)
|
|
/* f033024: 2401001f */ addiu $at,$zero,0x1f
|
|
/* f033028: 8fa3003c */ lw $v1,0x3c($sp)
|
|
/* f03302c: 15c10003 */ bne $t6,$at,.L0f03303c
|
|
/* f033030: 00402825 */ or $a1,$v0,$zero
|
|
/* f033034: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f033038: afaf0038 */ sw $t7,0x38($sp)
|
|
.L0f03303c:
|
|
/* f03303c: 24010003 */ addiu $at,$zero,0x3
|
|
/* f033040: 14610024 */ bne $v1,$at,.L0f0330d4
|
|
/* f033044: 8fa40050 */ lw $a0,0x50($sp)
|
|
/* f033048: afa3003c */ sw $v1,0x3c($sp)
|
|
/* f03304c: 0fc2c73a */ jal handGetSingleUnk34
|
|
/* f033050: afa50034 */ sw $a1,0x34($sp)
|
|
/* f033054: 02002025 */ or $a0,$s0,$zero
|
|
/* f033058: 0fc0f011 */ jal chrToEyespy
|
|
/* f03305c: e7a00030 */ swc1 $f0,0x30($sp)
|
|
/* f033060: 8fa3003c */ lw $v1,0x3c($sp)
|
|
/* f033064: 8fa50034 */ lw $a1,0x34($sp)
|
|
/* f033068: 1040001a */ beqz $v0,.L0f0330d4
|
|
/* f03306c: c7a20030 */ lwc1 $f2,0x30($sp)
|
|
/* f033070: 44806000 */ mtc1 $zero,$f12
|
|
/* f033074: 3c0140c0 */ lui $at,0x40c0
|
|
/* f033078: 460c103e */ c.le.s $f2,$f12
|
|
/* f03307c: 00000000 */ nop
|
|
/* f033080: 45020004 */ bc1fl .L0f033094
|
|
/* f033084: 3c014080 */ lui $at,0x4080
|
|
/* f033088: 44811000 */ mtc1 $at,$f2
|
|
/* f03308c: 00000000 */ nop
|
|
/* f033090: 3c014080 */ lui $at,0x4080
|
|
.L0f033094:
|
|
/* f033094: 44812000 */ mtc1 $at,$f4
|
|
/* f033098: 24180004 */ addiu $t8,$zero,0x4
|
|
/* f03309c: a0580069 */ sb $t8,0x69($v0)
|
|
/* f0330a0: 46041082 */ mul.s $f2,$f2,$f4
|
|
/* f0330a4: 8fb90044 */ lw $t9,0x44($sp)
|
|
/* f0330a8: c4460040 */ lwc1 $f6,0x40($v0)
|
|
/* f0330ac: c4520048 */ lwc1 $f18,0x48($v0)
|
|
/* f0330b0: c7280000 */ lwc1 $f8,0x0($t9)
|
|
/* f0330b4: 46024282 */ mul.s $f10,$f8,$f2
|
|
/* f0330b8: 460a3400 */ add.s $f16,$f6,$f10
|
|
/* f0330bc: e4500040 */ swc1 $f16,0x40($v0)
|
|
/* f0330c0: 8fa80044 */ lw $t0,0x44($sp)
|
|
/* f0330c4: c5040008 */ lwc1 $f4,0x8($t0)
|
|
/* f0330c8: 46022202 */ mul.s $f8,$f4,$f2
|
|
/* f0330cc: 46089180 */ add.s $f6,$f18,$f8
|
|
/* f0330d0: e4460048 */ swc1 $f6,0x48($v0)
|
|
.L0f0330d4:
|
|
/* f0330d4: c60a0100 */ lwc1 $f10,0x100($s0)
|
|
/* f0330d8: c6100104 */ lwc1 $f16,0x104($s0)
|
|
/* f0330dc: 02002025 */ or $a0,$s0,$zero
|
|
/* f0330e0: 8fa60048 */ lw $a2,0x48($sp)
|
|
/* f0330e4: 460a803e */ c.le.s $f16,$f10
|
|
/* f0330e8: 8fa7004c */ lw $a3,0x4c($sp)
|
|
/* f0330ec: 8fa90050 */ lw $t1,0x50($sp)
|
|
/* f0330f0: 24010269 */ addiu $at,$zero,0x269
|
|
/* f0330f4: 45000009 */ bc1f .L0f03311c
|
|
/* f0330f8: 00000000 */ nop
|
|
/* f0330fc: 8faa0054 */ lw $t2,0x54($sp)
|
|
/* f033100: 8fa50044 */ lw $a1,0x44($sp)
|
|
/* f033104: afa90010 */ sw $t1,0x10($sp)
|
|
/* f033108: afa00014 */ sw $zero,0x14($sp)
|
|
/* f03310c: 0fc0c66a */ jal func0f0319a8
|
|
/* f033110: afaa0018 */ sw $t2,0x18($sp)
|
|
/* f033114: 10000045 */ b .L0f03322c
|
|
/* f033118: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f03311c:
|
|
/* f03311c: 10a10005 */ beq $a1,$at,.L0f033134
|
|
/* f033120: 2401026b */ addiu $at,$zero,0x26b
|
|
/* f033124: 10a10003 */ beq $a1,$at,.L0f033134
|
|
/* f033128: 2401026a */ addiu $at,$zero,0x26a
|
|
/* f03312c: 54a10006 */ bnel $a1,$at,.L0f033148
|
|
/* f033130: 24010003 */ addiu $at,$zero,0x3
|
|
.L0f033134:
|
|
/* f033134: 0fc084cf */ jal func0f02133c
|
|
/* f033138: 02002025 */ or $a0,$s0,$zero
|
|
/* f03313c: 1000003b */ b .L0f03322c
|
|
/* f033140: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f033144: 24010003 */ addiu $at,$zero,0x3
|
|
.L0f033148:
|
|
/* f033148: 10610037 */ beq $v1,$at,.L0f033228
|
|
/* f03314c: 24020002 */ addiu $v0,$zero,0x2
|
|
/* f033150: 10620003 */ beq $v1,$v0,.L0f033160
|
|
/* f033154: 24010004 */ addiu $at,$zero,0x4
|
|
/* f033158: 1461002e */ bne $v1,$at,.L0f033214
|
|
/* f03315c: 8fab0038 */ lw $t3,0x38($sp)
|
|
.L0f033160:
|
|
/* f033160: 8fa40050 */ lw $a0,0x50($sp)
|
|
/* f033164: 0fc2c73a */ jal handGetSingleUnk34
|
|
/* f033168: afa3003c */ sw $v1,0x3c($sp)
|
|
/* f03316c: 8fa3003c */ lw $v1,0x3c($sp)
|
|
/* f033170: 24020002 */ addiu $v0,$zero,0x2
|
|
/* f033174: 44806000 */ mtc1 $zero,$f12
|
|
/* f033178: 14620006 */ bne $v1,$v0,.L0f033194
|
|
/* f03317c: 46000086 */ mov.s $f2,$f0
|
|
/* f033180: 3c013f00 */ lui $at,0x3f00
|
|
/* f033184: 44812000 */ mtc1 $at,$f4
|
|
/* f033188: 00000000 */ nop
|
|
/* f03318c: 46040082 */ mul.s $f2,$f0,$f4
|
|
/* f033190: 00000000 */ nop
|
|
.L0f033194:
|
|
/* f033194: 460c103e */ c.le.s $f2,$f12
|
|
/* f033198: 3c0140c0 */ lui $at,0x40c0
|
|
/* f03319c: 00003025 */ or $a2,$zero,$zero
|
|
/* f0331a0: 45020004 */ bc1fl .L0f0331b4
|
|
/* f0331a4: 4602603c */ c.lt.s $f12,$f2
|
|
/* f0331a8: 44811000 */ mtc1 $at,$f2
|
|
/* f0331ac: 00000000 */ nop
|
|
/* f0331b0: 4602603c */ c.lt.s $f12,$f2
|
|
.L0f0331b4:
|
|
/* f0331b4: 3c014170 */ lui $at,0x4170
|
|
/* f0331b8: 4500000f */ bc1f .L0f0331f8
|
|
/* f0331bc: 00000000 */ nop
|
|
/* f0331c0: 44819000 */ mtc1 $at,$f18
|
|
/* f0331c4: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0331c8: e60c02ec */ swc1 $f12,0x2ec($s0)
|
|
/* f0331cc: 46121202 */ mul.s $f8,$f2,$f18
|
|
/* f0331d0: e60802e8 */ swc1 $f8,0x2e8($s0)
|
|
/* f0331d4: c4860000 */ lwc1 $f6,0x0($a0)
|
|
/* f0331d8: 46023282 */ mul.s $f10,$f6,$f2
|
|
/* f0331dc: e60a02f0 */ swc1 $f10,0x2f0($s0)
|
|
/* f0331e0: c4900004 */ lwc1 $f16,0x4($a0)
|
|
/* f0331e4: 46028102 */ mul.s $f4,$f16,$f2
|
|
/* f0331e8: e60402f4 */ swc1 $f4,0x2f4($s0)
|
|
/* f0331ec: c4920008 */ lwc1 $f18,0x8($a0)
|
|
/* f0331f0: 46029202 */ mul.s $f8,$f18,$f2
|
|
/* f0331f4: e60802f8 */ swc1 $f8,0x2f8($s0)
|
|
.L0f0331f8:
|
|
/* f0331f8: 5462000c */ bnel $v1,$v0,.L0f03322c
|
|
/* f0331fc: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f033200: 44056000 */ mfc1 $a1,$f12
|
|
/* f033204: 0fc0cab1 */ jal func0f032ac4
|
|
/* f033208: 02002025 */ or $a0,$s0,$zero
|
|
/* f03320c: 10000007 */ b .L0f03322c
|
|
/* f033210: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f033214:
|
|
/* f033214: 15600004 */ bnez $t3,.L0f033228
|
|
/* f033218: 02002025 */ or $a0,$s0,$zero
|
|
/* f03321c: 8fa50048 */ lw $a1,0x48($sp)
|
|
/* f033220: 0fc0cab1 */ jal func0f032ac4
|
|
/* f033224: 8fa6004c */ lw $a2,0x4c($sp)
|
|
.L0f033228:
|
|
/* f033228: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f03322c:
|
|
/* f03322c: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f033230: 27bd0040 */ addiu $sp,$sp,0x40
|
|
/* f033234: 03e00008 */ jr $ra
|
|
/* f033238: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03323c
|
|
.late_rodata
|
|
glabel var7f1a8d50
|
|
.word 0x40c907a9
|
|
glabel var7f1a8d54
|
|
.word 0x3fa30028
|
|
glabel var7f1a8d58
|
|
.word 0x3c23d70a
|
|
glabel var7f1a8d5c
|
|
.word 0x3c23d70a
|
|
.text
|
|
/* f03323c: 27bdffa0 */ addiu $sp,$sp,-96
|
|
/* f033240: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f033244: afb00020 */ sw $s0,0x20($sp)
|
|
/* f033248: afa60068 */ sw $a2,0x68($sp)
|
|
/* f03324c: 8c8e0020 */ lw $t6,0x20($a0)
|
|
/* f033250: 00808025 */ or $s0,$a0,$zero
|
|
/* f033254: 24010002 */ addiu $at,$zero,0x2
|
|
/* f033258: afae005c */ sw $t6,0x5c($sp)
|
|
/* f03325c: 10800003 */ beqz $a0,.L0f03326c
|
|
/* f033260: 8c82001c */ lw $v0,0x1c($a0)
|
|
/* f033264: 10000002 */ b .L0f033270
|
|
/* f033268: 908702fe */ lbu $a3,0x2fe($a0)
|
|
.L0f03326c:
|
|
/* f03326c: 00003825 */ or $a3,$zero,$zero
|
|
.L0f033270:
|
|
/* f033270: 10e100f3 */ beq $a3,$at,.L0f033640
|
|
/* f033274: 24010003 */ addiu $at,$zero,0x3
|
|
/* f033278: 10e100f1 */ beq $a3,$at,.L0f033640
|
|
/* f03327c: 24010004 */ addiu $at,$zero,0x4
|
|
/* f033280: 10e100ef */ beq $a3,$at,.L0f033640
|
|
/* f033284: 02002025 */ or $a0,$s0,$zero
|
|
/* f033288: afa20058 */ sw $v0,0x58($sp)
|
|
/* f03328c: afa50064 */ sw $a1,0x64($sp)
|
|
/* f033290: 0fc0f917 */ jal chrGetInverseTheta
|
|
/* f033294: afa7002c */ sw $a3,0x2c($sp)
|
|
/* f033298: 8fa20058 */ lw $v0,0x58($sp)
|
|
/* f03329c: 8fa50064 */ lw $a1,0x64($sp)
|
|
/* f0332a0: e7a00054 */ swc1 $f0,0x54($sp)
|
|
/* f0332a4: c4480010 */ lwc1 $f8,0x10($v0)
|
|
/* f0332a8: c4440008 */ lwc1 $f4,0x8($v0)
|
|
/* f0332ac: c4aa0008 */ lwc1 $f10,0x8($a1)
|
|
/* f0332b0: c4a60000 */ lwc1 $f6,0x0($a1)
|
|
/* f0332b4: 460a4381 */ sub.s $f14,$f8,$f10
|
|
/* f0332b8: 0fc259d4 */ jal atan2f
|
|
/* f0332bc: 46062301 */ sub.s $f12,$f4,$f6
|
|
/* f0332c0: 8fa20058 */ lw $v0,0x58($sp)
|
|
/* f0332c4: 8fa50064 */ lw $a1,0x64($sp)
|
|
/* f0332c8: 44801000 */ mtc1 $zero,$f2
|
|
/* f0332cc: c4440008 */ lwc1 $f4,0x8($v0)
|
|
/* f0332d0: c4a60000 */ lwc1 $f6,0x0($a1)
|
|
/* f0332d4: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f0332d8: 46000406 */ mov.s $f16,$f0
|
|
/* f0332dc: 46062201 */ sub.s $f8,$f4,$f6
|
|
/* f0332e0: e7a80034 */ swc1 $f8,0x34($sp)
|
|
/* f0332e4: c44a000c */ lwc1 $f10,0xc($v0)
|
|
/* f0332e8: c4a40004 */ lwc1 $f4,0x4($a1)
|
|
/* f0332ec: 46045181 */ sub.s $f6,$f10,$f4
|
|
/* f0332f0: e7a60038 */ swc1 $f6,0x38($sp)
|
|
/* f0332f4: c7a60034 */ lwc1 $f6,0x34($sp)
|
|
/* f0332f8: c4480010 */ lwc1 $f8,0x10($v0)
|
|
/* f0332fc: c4aa0008 */ lwc1 $f10,0x8($a1)
|
|
/* f033300: 46061032 */ c.eq.s $f2,$f6
|
|
/* f033304: c7ae0038 */ lwc1 $f14,0x38($sp)
|
|
/* f033308: 460a4101 */ sub.s $f4,$f8,$f10
|
|
/* f03330c: 4500000c */ bc1f .L0f033340
|
|
/* f033310: e7a4003c */ swc1 $f4,0x3c($sp)
|
|
/* f033314: 460e1032 */ c.eq.s $f2,$f14
|
|
/* f033318: c7b2003c */ lwc1 $f18,0x3c($sp)
|
|
/* f03331c: 45020009 */ bc1fl .L0f033344
|
|
/* f033320: c7a00034 */ lwc1 $f0,0x34($sp)
|
|
/* f033324: 46121032 */ c.eq.s $f2,$f18
|
|
/* f033328: 3c013f80 */ lui $at,0x3f80
|
|
/* f03332c: 45020005 */ bc1fl .L0f033344
|
|
/* f033330: c7a00034 */ lwc1 $f0,0x34($sp)
|
|
/* f033334: 44819000 */ mtc1 $at,$f18
|
|
/* f033338: 00000000 */ nop
|
|
/* f03333c: e7b2003c */ swc1 $f18,0x3c($sp)
|
|
.L0f033340:
|
|
/* f033340: c7a00034 */ lwc1 $f0,0x34($sp)
|
|
.L0f033344:
|
|
/* f033344: c7ae0038 */ lwc1 $f14,0x38($sp)
|
|
/* f033348: c7b2003c */ lwc1 $f18,0x3c($sp)
|
|
/* f03334c: 46000202 */ mul.s $f8,$f0,$f0
|
|
/* f033350: afa7002c */ sw $a3,0x2c($sp)
|
|
/* f033354: e7b00050 */ swc1 $f16,0x50($sp)
|
|
/* f033358: 460e7282 */ mul.s $f10,$f14,$f14
|
|
/* f03335c: 460a4100 */ add.s $f4,$f8,$f10
|
|
/* f033360: 46129182 */ mul.s $f6,$f18,$f18
|
|
/* f033364: 0c012974 */ jal sqrtf
|
|
/* f033368: 46043300 */ add.s $f12,$f6,$f4
|
|
/* f03336c: 3c013f20 */ lui $at,0x3f20
|
|
/* f033370: 44814000 */ mtc1 $at,$f8
|
|
/* f033374: c7aa0068 */ lwc1 $f10,0x68($sp)
|
|
/* f033378: c7a40034 */ lwc1 $f4,0x34($sp)
|
|
/* f03337c: c7b00050 */ lwc1 $f16,0x50($sp)
|
|
/* f033380: 460a4182 */ mul.s $f6,$f8,$f10
|
|
/* f033384: c7aa0038 */ lwc1 $f10,0x38($sp)
|
|
/* f033388: c7b20054 */ lwc1 $f18,0x54($sp)
|
|
/* f03338c: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f033390: 3c017f1b */ lui $at,%hi(var7f1a8d50)
|
|
/* f033394: 4612803c */ c.lt.s $f16,$f18
|
|
/* f033398: 46003083 */ div.s $f2,$f6,$f0
|
|
/* f03339c: 46128381 */ sub.s $f14,$f16,$f18
|
|
/* f0333a0: 46007306 */ mov.s $f12,$f14
|
|
/* f0333a4: 46022202 */ mul.s $f8,$f4,$f2
|
|
/* f0333a8: c7a4003c */ lwc1 $f4,0x3c($sp)
|
|
/* f0333ac: 46025182 */ mul.s $f6,$f10,$f2
|
|
/* f0333b0: 00000000 */ nop
|
|
/* f0333b4: 46022282 */ mul.s $f10,$f4,$f2
|
|
/* f0333b8: e7a80034 */ swc1 $f8,0x34($sp)
|
|
/* f0333bc: e7a60038 */ swc1 $f6,0x38($sp)
|
|
/* f0333c0: e7aa003c */ swc1 $f10,0x3c($sp)
|
|
/* f0333c4: e60800bc */ swc1 $f8,0xbc($s0)
|
|
/* f0333c8: c7a60038 */ lwc1 $f6,0x38($sp)
|
|
/* f0333cc: e60600c0 */ swc1 $f6,0xc0($s0)
|
|
/* f0333d0: c7a4003c */ lwc1 $f4,0x3c($sp)
|
|
/* f0333d4: 45000003 */ bc1f .L0f0333e4
|
|
/* f0333d8: e60400c4 */ swc1 $f4,0xc4($s0)
|
|
/* f0333dc: c42a8d50 */ lwc1 $f10,%lo(var7f1a8d50)($at)
|
|
/* f0333e0: 460a7300 */ add.s $f12,$f14,$f10
|
|
.L0f0333e4:
|
|
/* f0333e4: 3c017f1b */ lui $at,%hi(var7f1a8d54)
|
|
/* f0333e8: c4288d54 */ lwc1 $f8,%lo(var7f1a8d54)($at)
|
|
/* f0333ec: 3c013f00 */ lui $at,0x3f00
|
|
/* f0333f0: 44812000 */ mtc1 $at,$f4
|
|
/* f0333f4: 46086182 */ mul.s $f6,$f12,$f8
|
|
/* f0333f8: 46043280 */ add.s $f10,$f6,$f4
|
|
/* f0333fc: 4600520d */ trunc.w.s $f8,$f10
|
|
/* f033400: 44044000 */ mfc1 $a0,$f8
|
|
/* f033404: 00000000 */ nop
|
|
/* f033408: 28810008 */ slti $at,$a0,0x8
|
|
/* f03340c: 54200003 */ bnezl $at,.L0f03341c
|
|
/* f033410: afa40048 */ sw $a0,0x48($sp)
|
|
/* f033414: 00002025 */ or $a0,$zero,$zero
|
|
/* f033418: afa40048 */ sw $a0,0x48($sp)
|
|
.L0f03341c:
|
|
/* f03341c: 0c004b70 */ jal random
|
|
/* f033420: afa7002c */ sw $a3,0x2c($sp)
|
|
/* f033424: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f033428: 8fa40048 */ lw $a0,0x48($sp)
|
|
/* f03342c: 3c198006 */ lui $t9,%hi(var80065640)
|
|
/* f033430: 27395640 */ addiu $t9,$t9,%lo(var80065640)
|
|
/* f033434: 0007c180 */ sll $t8,$a3,0x6
|
|
/* f033438: 03193021 */ addu $a2,$t8,$t9
|
|
/* f03343c: 000440c0 */ sll $t0,$a0,0x3
|
|
/* f033440: 00c81821 */ addu $v1,$a2,$t0
|
|
/* f033444: 8c690004 */ lw $t1,0x4($v1)
|
|
/* f033448: 3c188006 */ lui $t8,%hi(var80065680)
|
|
/* f03344c: 27185680 */ addiu $t8,$t8,%lo(var80065680)
|
|
/* f033450: 0049001b */ divu $zero,$v0,$t1
|
|
/* f033454: 00002810 */ mfhi $a1
|
|
/* f033458: 15200002 */ bnez $t1,.L0f033464
|
|
/* f03345c: 00000000 */ nop
|
|
/* f033460: 0007000d */ break 0x7
|
|
.L0f033464:
|
|
/* f033464: 14e0000c */ bnez $a3,.L0f033498
|
|
/* f033468: 00000000 */ nop
|
|
/* f03346c: 8c6a0000 */ lw $t2,0x0($v1)
|
|
/* f033470: 3c0e8006 */ lui $t6,%hi(var800652cc)
|
|
/* f033474: 25ce52cc */ addiu $t6,$t6,%lo(var800652cc)
|
|
/* f033478: 01455821 */ addu $t3,$t2,$a1
|
|
/* f03347c: 816c0000 */ lb $t4,0x0($t3)
|
|
/* f033480: 000c6880 */ sll $t5,$t4,0x2
|
|
/* f033484: 01ac6823 */ subu $t5,$t5,$t4
|
|
/* f033488: 000d68c0 */ sll $t5,$t5,0x3
|
|
/* f03348c: 01ae7821 */ addu $t7,$t5,$t6
|
|
/* f033490: 1000000d */ b .L0f0334c8
|
|
/* f033494: afaf0040 */ sw $t7,0x40($sp)
|
|
.L0f033498:
|
|
/* f033498: 14d8000b */ bne $a2,$t8,.L0f0334c8
|
|
/* f03349c: 00000000 */ nop
|
|
/* f0334a0: 8c790000 */ lw $t9,0x0($v1)
|
|
/* f0334a4: 3c0b8006 */ lui $t3,%hi(var80065548)
|
|
/* f0334a8: 256b5548 */ addiu $t3,$t3,%lo(var80065548)
|
|
/* f0334ac: 03254021 */ addu $t0,$t9,$a1
|
|
/* f0334b0: 81090000 */ lb $t1,0x0($t0)
|
|
/* f0334b4: 00095080 */ sll $t2,$t1,0x2
|
|
/* f0334b8: 01495023 */ subu $t2,$t2,$t1
|
|
/* f0334bc: 000a50c0 */ sll $t2,$t2,0x3
|
|
/* f0334c0: 014b6021 */ addu $t4,$t2,$t3
|
|
/* f0334c4: afac0040 */ sw $t4,0x40($sp)
|
|
.L0f0334c8:
|
|
/* f0334c8: 0fc0fe3d */ jal chrStopFiring
|
|
/* f0334cc: 02002025 */ or $a0,$s0,$zero
|
|
/* f0334d0: 02002025 */ or $a0,$s0,$zero
|
|
/* f0334d4: 0fc08946 */ jal chrUncloak
|
|
/* f0334d8: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f0334dc: 8e0d0018 */ lw $t5,0x18($s0)
|
|
/* f0334e0: 8fa20040 */ lw $v0,0x40($sp)
|
|
/* f0334e4: 2401fbff */ addiu $at,$zero,-1025
|
|
/* f0334e8: 01a17024 */ and $t6,$t5,$at
|
|
/* f0334ec: 240f0004 */ addiu $t7,$zero,0x4
|
|
/* f0334f0: ae0e0018 */ sw $t6,0x18($s0)
|
|
/* f0334f4: a20f0007 */ sb $t7,0x7($s0)
|
|
/* f0334f8: ae00002c */ sw $zero,0x2c($s0)
|
|
/* f0334fc: 3c01bf80 */ lui $at,0xbf80
|
|
/* f033500: 44812000 */ mtc1 $at,$f4
|
|
/* f033504: 921902fe */ lbu $t9,0x2fe($s0)
|
|
/* f033508: c4460010 */ lwc1 $f6,0x10($v0)
|
|
/* f03350c: 44805000 */ mtc1 $zero,$f10
|
|
/* f033510: 2418002d */ addiu $t8,$zero,0x2d
|
|
/* f033514: 24010002 */ addiu $at,$zero,0x2
|
|
/* f033518: a618004c */ sh $t8,0x4c($s0)
|
|
/* f03351c: e6040034 */ swc1 $f4,0x34($s0)
|
|
/* f033520: e6060030 */ swc1 $f6,0x30($s0)
|
|
/* f033524: 17210031 */ bne $t9,$at,.L0f0335ec
|
|
/* f033528: e60a0038 */ swc1 $f10,0x38($s0)
|
|
/* f03352c: 0c004b70 */ jal random
|
|
/* f033530: 00000000 */ nop
|
|
/* f033534: 24010190 */ addiu $at,$zero,0x190
|
|
/* f033538: 0041001b */ divu $zero,$v0,$at
|
|
/* f03353c: 00004010 */ mfhi $t0
|
|
/* f033540: 44884000 */ mtc1 $t0,$f8
|
|
/* f033544: 3c014f80 */ lui $at,0x4f80
|
|
/* f033548: 05010004 */ bgez $t0,.L0f03355c
|
|
/* f03354c: 468041a0 */ cvt.s.w $f6,$f8
|
|
/* f033550: 44812000 */ mtc1 $at,$f4
|
|
/* f033554: 00000000 */ nop
|
|
/* f033558: 46043180 */ add.s $f6,$f6,$f4
|
|
.L0f03355c:
|
|
/* f03355c: 3c017f1b */ lui $at,%hi(var7f1a8d58)
|
|
/* f033560: c42a8d58 */ lwc1 $f10,%lo(var7f1a8d58)($at)
|
|
/* f033564: 920f0362 */ lbu $t7,0x362($s0)
|
|
/* f033568: 460a3202 */ mul.s $f8,$f6,$f10
|
|
/* f03356c: 31f8ff0f */ andi $t8,$t7,0xff0f
|
|
/* f033570: 4600410d */ trunc.w.s $f4,$f8
|
|
/* f033574: 440a2000 */ mfc1 $t2,$f4
|
|
/* f033578: 00000000 */ nop
|
|
/* f03357c: 254c0001 */ addiu $t4,$t2,0x1
|
|
/* f033580: 000c7100 */ sll $t6,$t4,0x4
|
|
/* f033584: 01d8c825 */ or $t9,$t6,$t8
|
|
/* f033588: 0c004b70 */ jal random
|
|
/* f03358c: a2190362 */ sb $t9,0x362($s0)
|
|
/* f033590: 24010190 */ addiu $at,$zero,0x190
|
|
/* f033594: 0041001b */ divu $zero,$v0,$at
|
|
/* f033598: 00004010 */ mfhi $t0
|
|
/* f03359c: 44883000 */ mtc1 $t0,$f6
|
|
/* f0335a0: 3c014f80 */ lui $at,0x4f80
|
|
/* f0335a4: 05010004 */ bgez $t0,.L0f0335b8
|
|
/* f0335a8: 468032a0 */ cvt.s.w $f10,$f6
|
|
/* f0335ac: 44814000 */ mtc1 $at,$f8
|
|
/* f0335b0: 00000000 */ nop
|
|
/* f0335b4: 46085280 */ add.s $f10,$f10,$f8
|
|
.L0f0335b8:
|
|
/* f0335b8: 3c017f1b */ lui $at,%hi(var7f1a8d5c)
|
|
/* f0335bc: c4248d5c */ lwc1 $f4,%lo(var7f1a8d5c)($at)
|
|
/* f0335c0: 920f0362 */ lbu $t7,0x362($s0)
|
|
/* f0335c4: 46045182 */ mul.s $f6,$f10,$f4
|
|
/* f0335c8: 31eefff0 */ andi $t6,$t7,0xfff0
|
|
/* f0335cc: 4600320d */ trunc.w.s $f8,$f6
|
|
/* f0335d0: 440a4000 */ mfc1 $t2,$f8
|
|
/* f0335d4: 00000000 */ nop
|
|
/* f0335d8: 254c0001 */ addiu $t4,$t2,0x1
|
|
/* f0335dc: 318d000f */ andi $t5,$t4,0xf
|
|
/* f0335e0: 01aec025 */ or $t8,$t5,$t6
|
|
/* f0335e4: a2180362 */ sb $t8,0x362($s0)
|
|
/* f0335e8: 8fa20040 */ lw $v0,0x40($sp)
|
|
.L0f0335ec:
|
|
/* f0335ec: a2000008 */ sb $zero,0x8($s0)
|
|
/* f0335f0: 3c014100 */ lui $at,0x4100
|
|
/* f0335f4: 44812000 */ mtc1 $at,$f4
|
|
/* f0335f8: c44a0008 */ lwc1 $f10,0x8($v0)
|
|
/* f0335fc: 8c47000c */ lw $a3,0xc($v0)
|
|
/* f033600: 8c460004 */ lw $a2,0x4($v0)
|
|
/* f033604: 84450000 */ lh $a1,0x0($v0)
|
|
/* f033608: 8fa4005c */ lw $a0,0x5c($sp)
|
|
/* f03360c: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f033610: 0c007733 */ jal modelSetAnimation
|
|
/* f033614: e7aa0010 */ swc1 $f10,0x10($sp)
|
|
/* f033618: 8fb90040 */ lw $t9,0x40($sp)
|
|
/* f03361c: 44803000 */ mtc1 $zero,$f6
|
|
/* f033620: c7200014 */ lwc1 $f0,0x14($t9)
|
|
/* f033624: 4600303e */ c.le.s $f6,$f0
|
|
/* f033628: 00000000 */ nop
|
|
/* f03362c: 45020005 */ bc1fl .L0f033644
|
|
/* f033630: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f033634: 44050000 */ mfc1 $a1,$f0
|
|
/* f033638: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f03363c: 8fa4005c */ lw $a0,0x5c($sp)
|
|
.L0f033640:
|
|
/* f033640: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f033644:
|
|
/* f033644: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f033648: 27bd0060 */ addiu $sp,$sp,0x60
|
|
/* f03364c: 03e00008 */ jr $ra
|
|
/* f033650: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f033654
|
|
/* f033654: 3c0e800a */ lui $t6,%hi(g_Vars+0x318)
|
|
/* f033658: 8dcea2d8 */ lw $t6,%lo(g_Vars+0x318)($t6)
|
|
/* f03365c: 240303e8 */ addiu $v1,$zero,0x3e8
|
|
/* f033660: 55c00003 */ bnezl $t6,.L0f033670
|
|
/* f033664: 90820000 */ lbu $v0,0x0($a0)
|
|
/* f033668: 240300fa */ addiu $v1,$zero,0xfa
|
|
/* f03366c: 90820000 */ lbu $v0,0x0($a0)
|
|
.L0f033670:
|
|
/* f033670: 2401001c */ addiu $at,$zero,0x1c
|
|
/* f033674: 54410003 */ bnel $v0,$at,.L0f033684
|
|
/* f033678: 24010056 */ addiu $at,$zero,0x56
|
|
/* f03367c: 240307d0 */ addiu $v1,$zero,0x7d0
|
|
/* f033680: 24010056 */ addiu $at,$zero,0x56
|
|
.L0f033684:
|
|
/* f033684: 54410003 */ bnel $v0,$at,.L0f033694
|
|
/* f033688: 2401001f */ addiu $at,$zero,0x1f
|
|
/* f03368c: 24031388 */ addiu $v1,$zero,0x1388
|
|
/* f033690: 2401001f */ addiu $at,$zero,0x1f
|
|
.L0f033694:
|
|
/* f033694: 14410002 */ bne $v0,$at,.L0f0336a0
|
|
/* f033698: 00000000 */ nop
|
|
/* f03369c: 24030064 */ addiu $v1,$zero,0x64
|
|
.L0f0336a0:
|
|
/* f0336a0: 03e00008 */ jr $ra
|
|
/* f0336a4: 00601025 */ or $v0,$v1,$zero
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f0336a8
|
|
/* f0336a8: 27bdffe8 */ addiu $sp,$sp,-24
|
|
/* f0336ac: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f0336b0: afa5001c */ sw $a1,0x1c($sp)
|
|
/* f0336b4: afa60020 */ sw $a2,0x20($sp)
|
|
/* f0336b8: afa70024 */ sw $a3,0x24($sp)
|
|
/* f0336bc: 80820007 */ lb $v0,0x7($a0)
|
|
/* f0336c0: 24010020 */ addiu $at,$zero,0x20
|
|
/* f0336c4: 10410014 */ beq $v0,$at,.L0f033718
|
|
/* f0336c8: 2401001e */ addiu $at,$zero,0x1e
|
|
/* f0336cc: 10410012 */ beq $v0,$at,.L0f033718
|
|
/* f0336d0: 2401001f */ addiu $at,$zero,0x1f
|
|
/* f0336d4: 50410011 */ beql $v0,$at,.L0f03371c
|
|
/* f0336d8: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f0336dc: 0fc2c163 */ jal mpstatsGetTotalKnockoutCount
|
|
/* f0336e0: afa40018 */ sw $a0,0x18($sp)
|
|
/* f0336e4: 28410002 */ slti $at,$v0,0x2
|
|
/* f0336e8: 10200005 */ beqz $at,.L0f033700
|
|
/* f0336ec: 8fa40018 */ lw $a0,0x18($sp)
|
|
/* f0336f0: 8c8e0018 */ lw $t6,0x18($a0)
|
|
/* f0336f4: 3c010400 */ lui $at,0x400
|
|
/* f0336f8: 01c17825 */ or $t7,$t6,$at
|
|
/* f0336fc: ac8f0018 */ sw $t7,0x18($a0)
|
|
.L0f033700:
|
|
/* f033700: 0fc2c157 */ jal mpstatsIncrementTotalKnockoutCount
|
|
/* f033704: afa40018 */ sw $a0,0x18($sp)
|
|
/* f033708: 8fa40018 */ lw $a0,0x18($sp)
|
|
/* f03370c: 24180020 */ addiu $t8,$zero,0x20
|
|
/* f033710: a0980007 */ sb $t8,0x7($a0)
|
|
/* f033714: a480002c */ sh $zero,0x2c($a0)
|
|
.L0f033718:
|
|
/* f033718: 8fbf0014 */ lw $ra,0x14($sp)
|
|
.L0f03371c:
|
|
/* f03371c: 27bd0018 */ addiu $sp,$sp,0x18
|
|
/* f033720: 03e00008 */ jr $ra
|
|
/* f033724: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f033728
|
|
/* f033728: 27bdffd0 */ addiu $sp,$sp,-48
|
|
/* f03372c: afb00018 */ sw $s0,0x18($sp)
|
|
/* f033730: 00808025 */ or $s0,$a0,$zero
|
|
/* f033734: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f033738: afa50034 */ sw $a1,0x34($sp)
|
|
/* f03373c: 10800003 */ beqz $a0,.L0f03374c
|
|
/* f033740: afa0002c */ sw $zero,0x2c($sp)
|
|
/* f033744: 10000002 */ b .L0f033750
|
|
/* f033748: 908202fe */ lbu $v0,0x2fe($a0)
|
|
.L0f03374c:
|
|
/* f03374c: 00001025 */ or $v0,$zero,$zero
|
|
.L0f033750:
|
|
/* f033750: 24010002 */ addiu $at,$zero,0x2
|
|
/* f033754: 10410006 */ beq $v0,$at,.L0f033770
|
|
/* f033758: 24010003 */ addiu $at,$zero,0x3
|
|
/* f03375c: 10410004 */ beq $v0,$at,.L0f033770
|
|
/* f033760: 00000000 */ nop
|
|
/* f033764: 8e0e02d4 */ lw $t6,0x2d4($s0)
|
|
/* f033768: 11c00003 */ beqz $t6,.L0f033778
|
|
/* f03376c: 00000000 */ nop
|
|
.L0f033770:
|
|
/* f033770: 10000056 */ b .L0f0338cc
|
|
/* f033774: 00001025 */ or $v0,$zero,$zero
|
|
.L0f033778:
|
|
/* f033778: 5440004e */ bnezl $v0,.L0f0338b4
|
|
/* f03377c: 82180007 */ lb $t8,0x7($s0)
|
|
/* f033780: 0c00744f */ jal modelGetAnimNum
|
|
/* f033784: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f033788: 24010269 */ addiu $at,$zero,0x269
|
|
/* f03378c: 10410005 */ beq $v0,$at,.L0f0337a4
|
|
/* f033790: 2401026b */ addiu $at,$zero,0x26b
|
|
/* f033794: 10410003 */ beq $v0,$at,.L0f0337a4
|
|
/* f033798: 2401026a */ addiu $at,$zero,0x26a
|
|
/* f03379c: 54410006 */ bnel $v0,$at,.L0f0337b8
|
|
/* f0337a0: 820f0007 */ lb $t7,0x7($s0)
|
|
.L0f0337a4:
|
|
/* f0337a4: 0fc084cf */ jal func0f02133c
|
|
/* f0337a8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0337ac: 10000041 */ b .L0f0338b4
|
|
/* f0337b0: 82180007 */ lb $t8,0x7($s0)
|
|
/* f0337b4: 820f0007 */ lb $t7,0x7($s0)
|
|
.L0f0337b8:
|
|
/* f0337b8: 2401000a */ addiu $at,$zero,0xa
|
|
/* f0337bc: 55e1003d */ bnel $t7,$at,.L0f0338b4
|
|
/* f0337c0: 82180007 */ lb $t8,0x7($s0)
|
|
/* f0337c4: 0c00744f */ jal modelGetAnimNum
|
|
/* f0337c8: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f0337cc: 8e03002c */ lw $v1,0x2c($s0)
|
|
/* f0337d0: 84780000 */ lh $t8,0x0($v1)
|
|
/* f0337d4: 54580037 */ bnel $v0,$t8,.L0f0338b4
|
|
/* f0337d8: 82180007 */ lb $t8,0x7($s0)
|
|
/* f0337dc: 82190035 */ lb $t9,0x35($s0)
|
|
/* f0337e0: 3c088006 */ lui $t0,%hi(var80067548)
|
|
/* f0337e4: 25087548 */ addiu $t0,$t0,%lo(var80067548)
|
|
/* f0337e8: 13200022 */ beqz $t9,.L0f033874
|
|
/* f0337ec: 3c014100 */ lui $at,0x4100
|
|
/* f0337f0: 1103000a */ beq $t0,$v1,.L0f03381c
|
|
/* f0337f4: 3c098006 */ lui $t1,%hi(var80067590)
|
|
/* f0337f8: 25297590 */ addiu $t1,$t1,%lo(var80067590)
|
|
/* f0337fc: 11230007 */ beq $t1,$v1,.L0f03381c
|
|
/* f033800: 3c0a8006 */ lui $t2,%hi(var800675d8)
|
|
/* f033804: 254a75d8 */ addiu $t2,$t2,%lo(var800675d8)
|
|
/* f033808: 11430004 */ beq $t2,$v1,.L0f03381c
|
|
/* f03380c: 3c0b8006 */ lui $t3,%hi(var80067620)
|
|
/* f033810: 256b7620 */ addiu $t3,$t3,%lo(var80067620)
|
|
/* f033814: 55630027 */ bnel $t3,$v1,.L0f0338b4
|
|
/* f033818: 82180007 */ lb $t8,0x7($s0)
|
|
.L0f03381c:
|
|
/* f03381c: c4600004 */ lwc1 $f0,0x4($v1)
|
|
/* f033820: c46c0014 */ lwc1 $f12,0x14($v1)
|
|
/* f033824: 3c014100 */ lui $at,0x4100
|
|
/* f033828: 44812000 */ mtc1 $at,$f4
|
|
/* f03382c: 4600603c */ c.lt.s $f12,$f0
|
|
/* f033830: 46040081 */ sub.s $f2,$f0,$f4
|
|
/* f033834: 45020003 */ bc1fl .L0f033844
|
|
/* f033838: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03383c: 46006086 */ mov.s $f2,$f12
|
|
/* f033840: 8e040020 */ lw $a0,0x20($s0)
|
|
.L0f033844:
|
|
/* f033844: 0c00745f */ jal modelGetCurAnimFrame
|
|
/* f033848: e7a20020 */ swc1 $f2,0x20($sp)
|
|
/* f03384c: c7a20020 */ lwc1 $f2,0x20($sp)
|
|
/* f033850: 8fac0034 */ lw $t4,0x34($sp)
|
|
/* f033854: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f033858: 4602003c */ c.lt.s $f0,$f2
|
|
/* f03385c: 00000000 */ nop
|
|
/* f033860: 45020014 */ bc1fl .L0f0338b4
|
|
/* f033864: 82180007 */ lb $t8,0x7($s0)
|
|
/* f033868: e5820000 */ swc1 $f2,0x0($t4)
|
|
/* f03386c: 10000010 */ b .L0f0338b0
|
|
/* f033870: afad002c */ sw $t5,0x2c($sp)
|
|
.L0f033874:
|
|
/* f033874: c4660004 */ lwc1 $f6,0x4($v1)
|
|
/* f033878: 44814000 */ mtc1 $at,$f8
|
|
/* f03387c: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f033880: 46083081 */ sub.s $f2,$f6,$f8
|
|
/* f033884: 0c00745f */ jal modelGetCurAnimFrame
|
|
/* f033888: e7a20020 */ swc1 $f2,0x20($sp)
|
|
/* f03388c: c7a20020 */ lwc1 $f2,0x20($sp)
|
|
/* f033890: 8fae0034 */ lw $t6,0x34($sp)
|
|
/* f033894: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f033898: 4602003c */ c.lt.s $f0,$f2
|
|
/* f03389c: 00000000 */ nop
|
|
/* f0338a0: 45020004 */ bc1fl .L0f0338b4
|
|
/* f0338a4: 82180007 */ lb $t8,0x7($s0)
|
|
/* f0338a8: e5c20000 */ swc1 $f2,0x0($t6)
|
|
/* f0338ac: afaf002c */ sw $t7,0x2c($sp)
|
|
.L0f0338b0:
|
|
/* f0338b0: 82180007 */ lb $t8,0x7($s0)
|
|
.L0f0338b4:
|
|
/* f0338b4: 24010007 */ addiu $at,$zero,0x7
|
|
/* f0338b8: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f0338bc: 57010003 */ bnel $t8,$at,.L0f0338cc
|
|
/* f0338c0: 8fa2002c */ lw $v0,0x2c($sp)
|
|
/* f0338c4: afb9002c */ sw $t9,0x2c($sp)
|
|
/* f0338c8: 8fa2002c */ lw $v0,0x2c($sp)
|
|
.L0f0338cc:
|
|
/* f0338cc: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f0338d0: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f0338d4: 27bd0030 */ addiu $sp,$sp,0x30
|
|
/* f0338d8: 03e00008 */ jr $ra
|
|
/* f0338dc: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f0338e0
|
|
/* f0338e0: 27bdfee8 */ addiu $sp,$sp,-280
|
|
/* f0338e4: 240effff */ addiu $t6,$zero,-1
|
|
/* f0338e8: afbf0044 */ sw $ra,0x44($sp)
|
|
/* f0338ec: afa40118 */ sw $a0,0x118($sp)
|
|
/* f0338f0: afa5011c */ sw $a1,0x11c($sp)
|
|
/* f0338f4: afa00114 */ sw $zero,0x114($sp)
|
|
/* f0338f8: 10800003 */ beqz $a0,.L0f033908
|
|
/* f0338fc: a7ae0112 */ sh $t6,0x112($sp)
|
|
/* f033900: 10000002 */ b .L0f03390c
|
|
/* f033904: 908302fe */ lbu $v1,0x2fe($a0)
|
|
.L0f033908:
|
|
/* f033908: 00001825 */ or $v1,$zero,$zero
|
|
.L0f03390c:
|
|
/* f03390c: 24010003 */ addiu $at,$zero,0x3
|
|
/* f033910: 1061019f */ beq $v1,$at,.L0f033f90
|
|
/* f033914: 00002825 */ or $a1,$zero,$zero
|
|
/* f033918: 24010004 */ addiu $at,$zero,0x4
|
|
/* f03391c: 1061019c */ beq $v1,$at,.L0f033f90
|
|
/* f033920: 8fb80118 */ lw $t8,0x118($sp)
|
|
/* f033924: 8f04001c */ lw $a0,0x1c($t8)
|
|
/* f033928: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03392c: 90990000 */ lbu $t9,0x0($a0)
|
|
/* f033930: 5721000f */ bnel $t9,$at,.L0f033970
|
|
/* f033934: 8fab0118 */ lw $t3,0x118($sp)
|
|
/* f033938: afa3010c */ sw $v1,0x10c($sp)
|
|
/* f03393c: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f033940: afa00104 */ sw $zero,0x104($sp)
|
|
/* f033944: 00024080 */ sll $t0,$v0,0x2
|
|
/* f033948: 3c09800a */ lui $t1,%hi(g_Vars+0x64)
|
|
/* f03394c: 01284821 */ addu $t1,$t1,$t0
|
|
/* f033950: 8d29a024 */ lw $t1,%lo(g_Vars+0x64)($t1)
|
|
/* f033954: afa20108 */ sw $v0,0x108($sp)
|
|
/* f033958: 8fa3010c */ lw $v1,0x10c($sp)
|
|
/* f03395c: 8d2a00d8 */ lw $t2,0xd8($t1)
|
|
/* f033960: 8fa50104 */ lw $a1,0x104($sp)
|
|
/* f033964: 5540018b */ bnezl $t2,.L0f033f94
|
|
/* f033968: 8fbf0044 */ lw $ra,0x44($sp)
|
|
/* f03396c: 8fab0118 */ lw $t3,0x118($sp)
|
|
.L0f033970:
|
|
/* f033970: 3c0d8008 */ lui $t5,%hi(g_Bodies)
|
|
/* f033974: 3c188007 */ lui $t8,%hi(var8006819c)
|
|
/* f033978: 81620006 */ lb $v0,0x6($t3)
|
|
/* f03397c: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f033980: 24010002 */ addiu $at,$zero,0x2
|
|
/* f033984: 00026080 */ sll $t4,$v0,0x2
|
|
/* f033988: 01826021 */ addu $t4,$t4,$v0
|
|
/* f03398c: 000c6080 */ sll $t4,$t4,0x2
|
|
/* f033990: 01ac6821 */ addu $t5,$t5,$t4
|
|
/* f033994: 8dadcf04 */ lw $t5,%lo(g_Bodies)($t5)
|
|
/* f033998: 2718819c */ addiu $t8,$t8,%lo(var8006819c)
|
|
/* f03399c: 000d77c2 */ srl $t6,$t5,0x1f
|
|
/* f0339a0: 11c00002 */ beqz $t6,.L0f0339ac
|
|
/* f0339a4: 00000000 */ nop
|
|
/* f0339a8: afaf0114 */ sw $t7,0x114($sp)
|
|
.L0f0339ac:
|
|
/* f0339ac: 5461001e */ bnel $v1,$at,.L0f033a28
|
|
/* f0339b0: 2401000f */ addiu $at,$zero,0xf
|
|
/* f0339b4: 8f010000 */ lw $at,0x0($t8)
|
|
/* f0339b8: 27a300f8 */ addiu $v1,$sp,0xf8
|
|
/* f0339bc: 3c048007 */ lui $a0,%hi(g_DrCarollDyingTimer)
|
|
/* f0339c0: ac610000 */ sw $at,0x0($v1)
|
|
/* f0339c4: 8f080004 */ lw $t0,0x4($t8)
|
|
/* f0339c8: 2484807c */ addiu $a0,$a0,%lo(g_DrCarollDyingTimer)
|
|
/* f0339cc: 8c890000 */ lw $t1,0x0($a0)
|
|
/* f0339d0: ac680004 */ sw $t0,0x4($v1)
|
|
/* f0339d4: 8f010008 */ lw $at,0x8($t8)
|
|
/* f0339d8: 3c028007 */ lui $v0,%hi(var8006824c)
|
|
/* f0339dc: ac610008 */ sw $at,0x8($v1)
|
|
/* f0339e0: 2921000b */ slti $at,$t1,0xb
|
|
/* f0339e4: 142000e7 */ bnez $at,.L0f033d84
|
|
/* f0339e8: 00000000 */ nop
|
|
/* f0339ec: 8c42824c */ lw $v0,%lo(var8006824c)($v0)
|
|
/* f0339f0: ac800000 */ sw $zero,0x0($a0)
|
|
/* f0339f4: 3c018007 */ lui $at,%hi(var8006824c)
|
|
/* f0339f8: 00025040 */ sll $t2,$v0,0x1
|
|
/* f0339fc: 006a5821 */ addu $t3,$v1,$t2
|
|
/* f033a00: 856c0000 */ lh $t4,0x0($t3)
|
|
/* f033a04: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f033a08: ac22824c */ sw $v0,%lo(var8006824c)($at)
|
|
/* f033a0c: 28410006 */ slti $at,$v0,0x6
|
|
/* f033a10: 142000dc */ bnez $at,.L0f033d84
|
|
/* f033a14: a7ac0112 */ sh $t4,0x112($sp)
|
|
/* f033a18: 3c018007 */ lui $at,%hi(var8006824c)
|
|
/* f033a1c: 100000d9 */ b .L0f033d84
|
|
/* f033a20: ac20824c */ sw $zero,%lo(var8006824c)($at)
|
|
/* f033a24: 2401000f */ addiu $at,$zero,0xf
|
|
.L0f033a28:
|
|
/* f033a28: 10410007 */ beq $v0,$at,.L0f033a48
|
|
/* f033a2c: 3c0e8007 */ lui $t6,%hi(var800681a8)
|
|
/* f033a30: 24010005 */ addiu $at,$zero,0x5
|
|
/* f033a34: 10410004 */ beq $v0,$at,.L0f033a48
|
|
/* f033a38: 24010029 */ addiu $at,$zero,0x29
|
|
/* f033a3c: 10410002 */ beq $v0,$at,.L0f033a48
|
|
/* f033a40: 2401003a */ addiu $at,$zero,0x3a
|
|
/* f033a44: 1441001a */ bne $v0,$at,.L0f033ab0
|
|
.L0f033a48:
|
|
/* f033a48: 25ce81a8 */ addiu $t6,$t6,%lo(var800681a8)
|
|
/* f033a4c: 8dc10000 */ lw $at,0x0($t6)
|
|
/* f033a50: 27ad00f0 */ addiu $t5,$sp,0xf0
|
|
/* f033a54: ada10000 */ sw $at,0x0($t5)
|
|
/* f033a58: 95c10004 */ lhu $at,0x4($t6)
|
|
/* f033a5c: a5a10004 */ sh $at,0x4($t5)
|
|
/* f033a60: 0c004b70 */ jal random
|
|
/* f033a64: afa50104 */ sw $a1,0x104($sp)
|
|
/* f033a68: 24010003 */ addiu $at,$zero,0x3
|
|
/* f033a6c: 0041001b */ divu $zero,$v0,$at
|
|
/* f033a70: 3c038007 */ lui $v1,%hi(var80068250)
|
|
/* f033a74: 8c638250 */ lw $v1,%lo(var80068250)($v1)
|
|
/* f033a78: 0000c010 */ mfhi $t8
|
|
/* f033a7c: 00184040 */ sll $t0,$t8,0x1
|
|
/* f033a80: 03a84821 */ addu $t1,$sp,$t0
|
|
/* f033a84: 852900f0 */ lh $t1,0xf0($t1)
|
|
/* f033a88: 3c018007 */ lui $at,%hi(var80068250)
|
|
/* f033a8c: 24630001 */ addiu $v1,$v1,0x1
|
|
/* f033a90: ac238250 */ sw $v1,%lo(var80068250)($at)
|
|
/* f033a94: 28610003 */ slti $at,$v1,0x3
|
|
/* f033a98: 8fa50104 */ lw $a1,0x104($sp)
|
|
/* f033a9c: 142000b9 */ bnez $at,.L0f033d84
|
|
/* f033aa0: a7a90112 */ sh $t1,0x112($sp)
|
|
/* f033aa4: 3c018007 */ lui $at,%hi(var80068250)
|
|
/* f033aa8: 100000b6 */ b .L0f033d84
|
|
/* f033aac: ac208250 */ sw $zero,%lo(var80068250)($at)
|
|
.L0f033ab0:
|
|
/* f033ab0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f033ab4: 1461003c */ bne $v1,$at,.L0f033ba8
|
|
/* f033ab8: 8faa0118 */ lw $t2,0x118($sp)
|
|
/* f033abc: 854b0010 */ lh $t3,0x10($t2)
|
|
/* f033ac0: 2401007b */ addiu $at,$zero,0x7b
|
|
/* f033ac4: 3c0a8007 */ lui $t2,%hi(var800681bc)
|
|
/* f033ac8: 1561001e */ bne $t3,$at,.L0f033b44
|
|
/* f033acc: 254a81bc */ addiu $t2,$t2,%lo(var800681bc)
|
|
/* f033ad0: 3c0f8007 */ lui $t7,%hi(var800681b0)
|
|
/* f033ad4: 25ef81b0 */ addiu $t7,$t7,%lo(var800681b0)
|
|
/* f033ad8: 8de10000 */ lw $at,0x0($t7)
|
|
/* f033adc: 27ac00e4 */ addiu $t4,$sp,0xe4
|
|
/* f033ae0: 8dee0004 */ lw $t6,0x4($t7)
|
|
/* f033ae4: ad810000 */ sw $at,0x0($t4)
|
|
/* f033ae8: 95e10008 */ lhu $at,0x8($t7)
|
|
/* f033aec: ad8e0004 */ sw $t6,0x4($t4)
|
|
/* f033af0: a5810008 */ sh $at,0x8($t4)
|
|
/* f033af4: 0c004b70 */ jal random
|
|
/* f033af8: afa50104 */ sw $a1,0x104($sp)
|
|
/* f033afc: 24010005 */ addiu $at,$zero,0x5
|
|
/* f033b00: 0041001b */ divu $zero,$v0,$at
|
|
/* f033b04: 3c038007 */ lui $v1,%hi(var80068254)
|
|
/* f033b08: 8c638254 */ lw $v1,%lo(var80068254)($v1)
|
|
/* f033b0c: 0000c810 */ mfhi $t9
|
|
/* f033b10: 0019c040 */ sll $t8,$t9,0x1
|
|
/* f033b14: 03b84021 */ addu $t0,$sp,$t8
|
|
/* f033b18: 850800e4 */ lh $t0,0xe4($t0)
|
|
/* f033b1c: 3c018007 */ lui $at,%hi(var80068254)
|
|
/* f033b20: 24630001 */ addiu $v1,$v1,0x1
|
|
/* f033b24: ac238254 */ sw $v1,%lo(var80068254)($at)
|
|
/* f033b28: 28610005 */ slti $at,$v1,0x5
|
|
/* f033b2c: 8fa50104 */ lw $a1,0x104($sp)
|
|
/* f033b30: 14200094 */ bnez $at,.L0f033d84
|
|
/* f033b34: a7a80112 */ sh $t0,0x112($sp)
|
|
/* f033b38: 3c018007 */ lui $at,%hi(var80068254)
|
|
/* f033b3c: 10000091 */ b .L0f033d84
|
|
/* f033b40: ac208254 */ sw $zero,%lo(var80068254)($at)
|
|
.L0f033b44:
|
|
/* f033b44: 8d410000 */ lw $at,0x0($t2)
|
|
/* f033b48: 27a900dc */ addiu $t1,$sp,0xdc
|
|
/* f033b4c: ad210000 */ sw $at,0x0($t1)
|
|
/* f033b50: 95410004 */ lhu $at,0x4($t2)
|
|
/* f033b54: a5210004 */ sh $at,0x4($t1)
|
|
/* f033b58: 0c004b70 */ jal random
|
|
/* f033b5c: afa50104 */ sw $a1,0x104($sp)
|
|
/* f033b60: 24010003 */ addiu $at,$zero,0x3
|
|
/* f033b64: 0041001b */ divu $zero,$v0,$at
|
|
/* f033b68: 3c038007 */ lui $v1,%hi(var80068254)
|
|
/* f033b6c: 8c638254 */ lw $v1,%lo(var80068254)($v1)
|
|
/* f033b70: 00007810 */ mfhi $t7
|
|
/* f033b74: 000f7040 */ sll $t6,$t7,0x1
|
|
/* f033b78: 03aec821 */ addu $t9,$sp,$t6
|
|
/* f033b7c: 873900dc */ lh $t9,0xdc($t9)
|
|
/* f033b80: 3c018007 */ lui $at,%hi(var80068254)
|
|
/* f033b84: 24630001 */ addiu $v1,$v1,0x1
|
|
/* f033b88: ac238254 */ sw $v1,%lo(var80068254)($at)
|
|
/* f033b8c: 28610003 */ slti $at,$v1,0x3
|
|
/* f033b90: 8fa50104 */ lw $a1,0x104($sp)
|
|
/* f033b94: 1420007b */ bnez $at,.L0f033d84
|
|
/* f033b98: a7b90112 */ sh $t9,0x112($sp)
|
|
/* f033b9c: 3c018007 */ lui $at,%hi(var80068254)
|
|
/* f033ba0: 10000078 */ b .L0f033d84
|
|
/* f033ba4: ac208254 */ sw $zero,%lo(var80068254)($at)
|
|
.L0f033ba8:
|
|
/* f033ba8: 2401000a */ addiu $at,$zero,0xa
|
|
/* f033bac: 14410021 */ bne $v0,$at,.L0f033c34
|
|
/* f033bb0: 8fac0114 */ lw $t4,0x114($sp)
|
|
/* f033bb4: 3c188007 */ lui $t8,%hi(var800681c4)
|
|
/* f033bb8: 271881c4 */ addiu $t8,$t8,%lo(var800681c4)
|
|
/* f033bbc: 8f010000 */ lw $at,0x0($t8)
|
|
/* f033bc0: 3c028007 */ lui $v0,%hi(var80068258)
|
|
/* f033bc4: 8c428258 */ lw $v0,%lo(var80068258)($v0)
|
|
/* f033bc8: 27a300c0 */ addiu $v1,$sp,0xc0
|
|
/* f033bcc: ac610000 */ sw $at,0x0($v1)
|
|
/* f033bd0: 8f0d0004 */ lw $t5,0x4($t8)
|
|
/* f033bd4: 00025840 */ sll $t3,$v0,0x1
|
|
/* f033bd8: 006b4821 */ addu $t1,$v1,$t3
|
|
/* f033bdc: ac6d0004 */ sw $t5,0x4($v1)
|
|
/* f033be0: 8f010008 */ lw $at,0x8($t8)
|
|
/* f033be4: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f033be8: ac610008 */ sw $at,0x8($v1)
|
|
/* f033bec: 8f0d000c */ lw $t5,0xc($t8)
|
|
/* f033bf0: ac6d000c */ sw $t5,0xc($v1)
|
|
/* f033bf4: 8f010010 */ lw $at,0x10($t8)
|
|
/* f033bf8: ac610010 */ sw $at,0x10($v1)
|
|
/* f033bfc: 8f0d0014 */ lw $t5,0x14($t8)
|
|
/* f033c00: ac6d0014 */ sw $t5,0x14($v1)
|
|
/* f033c04: 8f010018 */ lw $at,0x18($t8)
|
|
/* f033c08: ac610018 */ sw $at,0x18($v1)
|
|
/* f033c0c: 852a0000 */ lh $t2,0x0($t1)
|
|
/* f033c10: 3c018007 */ lui $at,%hi(var80068258)
|
|
/* f033c14: ac228258 */ sw $v0,%lo(var80068258)($at)
|
|
/* f033c18: 2841000e */ slti $at,$v0,0xe
|
|
/* f033c1c: 14200003 */ bnez $at,.L0f033c2c
|
|
/* f033c20: a7aa0112 */ sh $t2,0x112($sp)
|
|
/* f033c24: 3c018007 */ lui $at,%hi(var80068258)
|
|
/* f033c28: ac208258 */ sw $zero,%lo(var80068258)($at)
|
|
.L0f033c2c:
|
|
/* f033c2c: 10000055 */ b .L0f033d84
|
|
/* f033c30: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f033c34:
|
|
/* f033c34: 11800020 */ beqz $t4,.L0f033cb8
|
|
/* f033c38: 24010004 */ addiu $at,$zero,0x4
|
|
/* f033c3c: 3c0f8007 */ lui $t7,%hi(var800681e0)
|
|
/* f033c40: 3c028007 */ lui $v0,%hi(var8006825c)
|
|
/* f033c44: 27a3008c */ addiu $v1,$sp,0x8c
|
|
/* f033c48: 25ef81e0 */ addiu $t7,$t7,%lo(var800681e0)
|
|
/* f033c4c: 8c42825c */ lw $v0,%lo(var8006825c)($v0)
|
|
/* f033c50: 25f90030 */ addiu $t9,$t7,0x30
|
|
/* f033c54: 00604025 */ or $t0,$v1,$zero
|
|
.L0f033c58:
|
|
/* f033c58: 8de10000 */ lw $at,0x0($t7)
|
|
/* f033c5c: 25ef000c */ addiu $t7,$t7,0xc
|
|
/* f033c60: 2508000c */ addiu $t0,$t0,0xc
|
|
/* f033c64: ad01fff4 */ sw $at,-0xc($t0)
|
|
/* f033c68: 8de1fff8 */ lw $at,-0x8($t7)
|
|
/* f033c6c: ad01fff8 */ sw $at,-0x8($t0)
|
|
/* f033c70: 8de1fffc */ lw $at,-0x4($t7)
|
|
/* f033c74: 15f9fff8 */ bne $t7,$t9,.L0f033c58
|
|
/* f033c78: ad01fffc */ sw $at,-0x4($t0)
|
|
/* f033c7c: 95e10000 */ lhu $at,0x0($t7)
|
|
/* f033c80: 0002c040 */ sll $t8,$v0,0x1
|
|
/* f033c84: 00786821 */ addu $t5,$v1,$t8
|
|
/* f033c88: a5010000 */ sh $at,0x0($t0)
|
|
/* f033c8c: 85ab0000 */ lh $t3,0x0($t5)
|
|
/* f033c90: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f033c94: 3c018007 */ lui $at,%hi(var8006825c)
|
|
/* f033c98: ac22825c */ sw $v0,%lo(var8006825c)($at)
|
|
/* f033c9c: 28410019 */ slti $at,$v0,0x19
|
|
/* f033ca0: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f033ca4: 14200037 */ bnez $at,.L0f033d84
|
|
/* f033ca8: a7ab0112 */ sh $t3,0x112($sp)
|
|
/* f033cac: 3c018007 */ lui $at,%hi(var8006825c)
|
|
/* f033cb0: 10000034 */ b .L0f033d84
|
|
/* f033cb4: ac20825c */ sw $zero,%lo(var8006825c)($at)
|
|
.L0f033cb8:
|
|
/* f033cb8: 10410008 */ beq $v0,$at,.L0f033cdc
|
|
/* f033cbc: 3c0a8007 */ lui $t2,%hi(var80068214)
|
|
/* f033cc0: 2401000c */ addiu $at,$zero,0xc
|
|
/* f033cc4: 10410005 */ beq $v0,$at,.L0f033cdc
|
|
/* f033cc8: 2401002f */ addiu $at,$zero,0x2f
|
|
/* f033ccc: 10410003 */ beq $v0,$at,.L0f033cdc
|
|
/* f033cd0: 2401003c */ addiu $at,$zero,0x3c
|
|
/* f033cd4: 14410017 */ bne $v0,$at,.L0f033d34
|
|
/* f033cd8: 27a30070 */ addiu $v1,$sp,0x70
|
|
.L0f033cdc:
|
|
/* f033cdc: 254a8214 */ addiu $t2,$t2,%lo(var80068214)
|
|
/* f033ce0: 8d410000 */ lw $at,0x0($t2)
|
|
/* f033ce4: 27a90078 */ addiu $t1,$sp,0x78
|
|
/* f033ce8: 8d4e0004 */ lw $t6,0x4($t2)
|
|
/* f033cec: ad210000 */ sw $at,0x0($t1)
|
|
/* f033cf0: 8d410008 */ lw $at,0x8($t2)
|
|
/* f033cf4: ad2e0004 */ sw $t6,0x4($t1)
|
|
/* f033cf8: 8d4e000c */ lw $t6,0xc($t2)
|
|
/* f033cfc: ad210008 */ sw $at,0x8($t1)
|
|
/* f033d00: 8d410010 */ lw $at,0x10($t2)
|
|
/* f033d04: ad2e000c */ sw $t6,0xc($t1)
|
|
/* f033d08: 0c004b70 */ jal random
|
|
/* f033d0c: ad210010 */ sw $at,0x10($t1)
|
|
/* f033d10: 2401000a */ addiu $at,$zero,0xa
|
|
/* f033d14: 0041001b */ divu $zero,$v0,$at
|
|
/* f033d18: 0000c810 */ mfhi $t9
|
|
/* f033d1c: 00197840 */ sll $t7,$t9,0x1
|
|
/* f033d20: 03af4021 */ addu $t0,$sp,$t7
|
|
/* f033d24: 85080078 */ lh $t0,0x78($t0)
|
|
/* f033d28: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f033d2c: 10000015 */ b .L0f033d84
|
|
/* f033d30: a7a80112 */ sh $t0,0x112($sp)
|
|
.L0f033d34:
|
|
/* f033d34: 3c188007 */ lui $t8,%hi(var80068228)
|
|
/* f033d38: 27188228 */ addiu $t8,$t8,%lo(var80068228)
|
|
/* f033d3c: 8f010000 */ lw $at,0x0($t8)
|
|
/* f033d40: 3c028007 */ lui $v0,%hi(var80068260)
|
|
/* f033d44: 8c428260 */ lw $v0,%lo(var80068260)($v0)
|
|
/* f033d48: ac610000 */ sw $at,0x0($v1)
|
|
/* f033d4c: 97010004 */ lhu $at,0x4($t8)
|
|
/* f033d50: 00024840 */ sll $t1,$v0,0x1
|
|
/* f033d54: 00695021 */ addu $t2,$v1,$t1
|
|
/* f033d58: a4610004 */ sh $at,0x4($v1)
|
|
/* f033d5c: 854e0000 */ lh $t6,0x0($t2)
|
|
/* f033d60: 3c018007 */ lui $at,%hi(var80068260)
|
|
/* f033d64: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f033d68: ac228260 */ sw $v0,%lo(var80068260)($at)
|
|
/* f033d6c: 28410003 */ slti $at,$v0,0x3
|
|
/* f033d70: 14200003 */ bnez $at,.L0f033d80
|
|
/* f033d74: a7ae0112 */ sh $t6,0x112($sp)
|
|
/* f033d78: 3c018007 */ lui $at,%hi(var80068260)
|
|
/* f033d7c: ac208260 */ sw $zero,%lo(var80068260)($at)
|
|
.L0f033d80:
|
|
/* f033d80: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f033d84:
|
|
/* f033d84: 10a00044 */ beqz $a1,.L0f033e98
|
|
/* f033d88: 8fb9011c */ lw $t9,0x11c($sp)
|
|
/* f033d8c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f033d90: 1721001c */ bne $t9,$at,.L0f033e04
|
|
/* f033d94: 8fab011c */ lw $t3,0x11c($sp)
|
|
/* f033d98: 3c088007 */ lui $t0,%hi(var80068230)
|
|
/* f033d9c: 25088230 */ addiu $t0,$t0,%lo(var80068230)
|
|
/* f033da0: 8d010000 */ lw $at,0x0($t0)
|
|
/* f033da4: 27af0064 */ addiu $t7,$sp,0x64
|
|
/* f033da8: 8d0d0004 */ lw $t5,0x4($t0)
|
|
/* f033dac: ade10000 */ sw $at,0x0($t7)
|
|
/* f033db0: 8d010008 */ lw $at,0x8($t0)
|
|
/* f033db4: aded0004 */ sw $t5,0x4($t7)
|
|
/* f033db8: 0c004b70 */ jal random
|
|
/* f033dbc: ade10008 */ sw $at,0x8($t7)
|
|
/* f033dc0: 30580007 */ andi $t8,$v0,0x7
|
|
/* f033dc4: 5700000b */ bnezl $t8,.L0f033df4
|
|
/* f033dc8: 8fb90118 */ lw $t9,0x118($sp)
|
|
/* f033dcc: 0c004b70 */ jal random
|
|
/* f033dd0: 00000000 */ nop
|
|
/* f033dd4: 24010003 */ addiu $at,$zero,0x3
|
|
/* f033dd8: 0041001b */ divu $zero,$v0,$at
|
|
/* f033ddc: 00006010 */ mfhi $t4
|
|
/* f033de0: 000c4880 */ sll $t1,$t4,0x2
|
|
/* f033de4: 03a95021 */ addu $t2,$sp,$t1
|
|
/* f033de8: 8d4a0064 */ lw $t2,0x64($t2)
|
|
/* f033dec: a7aa0112 */ sh $t2,0x112($sp)
|
|
/* f033df0: 8fb90118 */ lw $t9,0x118($sp)
|
|
.L0f033df4:
|
|
/* f033df4: 240e000a */ addiu $t6,$zero,0xa
|
|
/* f033df8: a32e0126 */ sb $t6,0x126($t9)
|
|
/* f033dfc: 10000026 */ b .L0f033e98
|
|
/* f033e00: af200120 */ sw $zero,0x120($t9)
|
|
.L0f033e04:
|
|
/* f033e04: 24010002 */ addiu $at,$zero,0x2
|
|
/* f033e08: 15610023 */ bne $t3,$at,.L0f033e98
|
|
/* f033e0c: 8faf0114 */ lw $t7,0x114($sp)
|
|
/* f033e10: 11e0000b */ beqz $t7,.L0f033e40
|
|
/* f033e14: 00000000 */ nop
|
|
/* f033e18: 0c004b70 */ jal random
|
|
/* f033e1c: 00000000 */ nop
|
|
/* f033e20: 30480001 */ andi $t0,$v0,0x1
|
|
/* f033e24: 15000004 */ bnez $t0,.L0f033e38
|
|
/* f033e28: 241805b0 */ addiu $t8,$zero,0x5b0
|
|
/* f033e2c: 240d05af */ addiu $t5,$zero,0x5af
|
|
/* f033e30: 10000015 */ b .L0f033e88
|
|
/* f033e34: a7ad0112 */ sh $t5,0x112($sp)
|
|
.L0f033e38:
|
|
/* f033e38: 10000013 */ b .L0f033e88
|
|
/* f033e3c: a7b80112 */ sh $t8,0x112($sp)
|
|
.L0f033e40:
|
|
/* f033e40: 0c004b70 */ jal random
|
|
/* f033e44: 00000000 */ nop
|
|
/* f033e48: 3c0c8007 */ lui $t4,%hi(var8006823c)
|
|
/* f033e4c: 258c823c */ addiu $t4,$t4,%lo(var8006823c)
|
|
/* f033e50: 8d810000 */ lw $at,0x0($t4)
|
|
/* f033e54: 27a30050 */ addiu $v1,$sp,0x50
|
|
/* f033e58: 30590003 */ andi $t9,$v0,0x3
|
|
/* f033e5c: ac610000 */ sw $at,0x0($v1)
|
|
/* f033e60: 8d8e0004 */ lw $t6,0x4($t4)
|
|
/* f033e64: 00195880 */ sll $t3,$t9,0x2
|
|
/* f033e68: 006b7821 */ addu $t7,$v1,$t3
|
|
/* f033e6c: ac6e0004 */ sw $t6,0x4($v1)
|
|
/* f033e70: 8d810008 */ lw $at,0x8($t4)
|
|
/* f033e74: ac610008 */ sw $at,0x8($v1)
|
|
/* f033e78: 8d8e000c */ lw $t6,0xc($t4)
|
|
/* f033e7c: ac6e000c */ sw $t6,0xc($v1)
|
|
/* f033e80: 8de80000 */ lw $t0,0x0($t7)
|
|
/* f033e84: a7a80112 */ sh $t0,0x112($sp)
|
|
.L0f033e88:
|
|
/* f033e88: 8fb80118 */ lw $t8,0x118($sp)
|
|
/* f033e8c: 240d000a */ addiu $t5,$zero,0xa
|
|
/* f033e90: a30d0126 */ sb $t5,0x126($t8)
|
|
/* f033e94: af000120 */ sw $zero,0x120($t8)
|
|
.L0f033e98:
|
|
/* f033e98: 87aa0112 */ lh $t2,0x112($sp)
|
|
/* f033e9c: 8fa90118 */ lw $t1,0x118($sp)
|
|
/* f033ea0: 0542003c */ bltzl $t2,.L0f033f94
|
|
/* f033ea4: 8fbf0044 */ lw $ra,0x44($sp)
|
|
/* f033ea8: 8d24001c */ lw $a0,0x1c($t1)
|
|
/* f033eac: 8fae0108 */ lw $t6,0x108($sp)
|
|
/* f033eb0: 24010006 */ addiu $at,$zero,0x6
|
|
/* f033eb4: 908c0000 */ lbu $t4,0x0($a0)
|
|
/* f033eb8: 3c02800a */ lui $v0,%hi(g_Vars+0x64)
|
|
/* f033ebc: 24050009 */ addiu $a1,$zero,0x9
|
|
/* f033ec0: 15810016 */ bne $t4,$at,.L0f033f1c
|
|
/* f033ec4: 000ec880 */ sll $t9,$t6,0x2
|
|
/* f033ec8: 00591021 */ addu $v0,$v0,$t9
|
|
/* f033ecc: 8c42a024 */ lw $v0,%lo(g_Vars+0x64)($v0)
|
|
/* f033ed0: 3c01bf80 */ lui $at,0xbf80
|
|
/* f033ed4: 3c048009 */ lui $a0,%hi(var80095200)
|
|
/* f033ed8: 8c4b00e0 */ lw $t3,0xe0($v0)
|
|
/* f033edc: 01402825 */ or $a1,$t2,$zero
|
|
/* f033ee0: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f033ee4: 1560002a */ bnez $t3,.L0f033f90
|
|
/* f033ee8: 244600e0 */ addiu $a2,$v0,0xe0
|
|
/* f033eec: 44810000 */ mtc1 $at,$f0
|
|
/* f033ef0: 240fffff */ addiu $t7,$zero,-1
|
|
/* f033ef4: 2408ffff */ addiu $t0,$zero,-1
|
|
/* f033ef8: 240dffff */ addiu $t5,$zero,-1
|
|
/* f033efc: afad001c */ sw $t5,0x1c($sp)
|
|
/* f033f00: afa80018 */ sw $t0,0x18($sp)
|
|
/* f033f04: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f033f08: 8c845200 */ lw $a0,%lo(var80095200)($a0)
|
|
/* f033f0c: 0c004241 */ jal audioStart
|
|
/* f033f10: e7a00014 */ swc1 $f0,0x14($sp)
|
|
/* f033f14: 1000001f */ b .L0f033f94
|
|
/* f033f18: 8fbf0044 */ lw $ra,0x44($sp)
|
|
.L0f033f1c:
|
|
/* f033f1c: 0fc249af */ jal func0f0926bc
|
|
/* f033f20: 00003025 */ or $a2,$zero,$zero
|
|
/* f033f24: 8fb80118 */ lw $t8,0x118($sp)
|
|
/* f033f28: 2405000d */ addiu $a1,$zero,0xd
|
|
/* f033f2c: 0fc24984 */ jal func0f092610
|
|
/* f033f30: 8f04001c */ lw $a0,0x1c($t8)
|
|
/* f033f34: 14400016 */ bnez $v0,.L0f033f90
|
|
/* f033f38: 3c01bf80 */ lui $at,0xbf80
|
|
/* f033f3c: 8fa90118 */ lw $t1,0x118($sp)
|
|
/* f033f40: 44810000 */ mtc1 $at,$f0
|
|
/* f033f44: 240cffff */ addiu $t4,$zero,-1
|
|
/* f033f48: 8d25001c */ lw $a1,0x1c($t1)
|
|
/* f033f4c: 240e000d */ addiu $t6,$zero,0xd
|
|
/* f033f50: 2419ffff */ addiu $t9,$zero,-1
|
|
/* f033f54: afb9002c */ sw $t9,0x2c($sp)
|
|
/* f033f58: afae001c */ sw $t6,0x1c($sp)
|
|
/* f033f5c: afa00028 */ sw $zero,0x28($sp)
|
|
/* f033f60: afa00020 */ sw $zero,0x20($sp)
|
|
/* f033f64: afa00018 */ sw $zero,0x18($sp)
|
|
/* f033f68: afa00014 */ sw $zero,0x14($sp)
|
|
/* f033f6c: afac0010 */ sw $t4,0x10($sp)
|
|
/* f033f70: 00002025 */ or $a0,$zero,$zero
|
|
/* f033f74: 87a60112 */ lh $a2,0x112($sp)
|
|
/* f033f78: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f033f7c: e7a00038 */ swc1 $f0,0x38($sp)
|
|
/* f033f80: e7a00034 */ swc1 $f0,0x34($sp)
|
|
/* f033f84: e7a00030 */ swc1 $f0,0x30($sp)
|
|
/* f033f88: 0fc24e7e */ jal func0f0939f8
|
|
/* f033f8c: e7a00024 */ swc1 $f0,0x24($sp)
|
|
.L0f033f90:
|
|
/* f033f90: 8fbf0044 */ lw $ra,0x44($sp)
|
|
.L0f033f94:
|
|
/* f033f94: 27bd0118 */ addiu $sp,$sp,0x118
|
|
/* f033f98: 03e00008 */ jr $ra
|
|
/* f033f9c: 00000000 */ nop
|
|
);
|
|
|
|
f32 chrGetShield(struct chrdata *chr)
|
|
{
|
|
return chr->cshield;
|
|
}
|
|
|
|
void chrSetShield(struct chrdata *chr, f32 amount)
|
|
{
|
|
if (amount < 0) {
|
|
amount = 0;
|
|
}
|
|
|
|
chr->cshield = amount;
|
|
|
|
if ((chr->hidden & CHRHFLAG_10000000) && chr->cshield < 1) {
|
|
chr->cshield = 1;
|
|
}
|
|
|
|
if (chr->prop->type == PROPTYPE_PLAYER) {
|
|
s32 playernum = propGetPlayerNum(chr->prop);
|
|
|
|
if (playernum >= 0) {
|
|
s32 prevplayernum = g_Vars.currentplayernum;
|
|
setCurrentPlayerNum(playernum);
|
|
func0f0bb69c();
|
|
g_Vars.currentplayerstats->armourcount += amount * 0.125f;
|
|
setCurrentPlayerNum(prevplayernum);
|
|
}
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f034080
|
|
/* f034080: 27bdffd8 */ addiu $sp,$sp,-40
|
|
/* f034084: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f034088: afa40028 */ sw $a0,0x28($sp)
|
|
/* f03408c: afa5002c */ sw $a1,0x2c($sp)
|
|
/* f034090: afa60030 */ sw $a2,0x30($sp)
|
|
/* f034094: 0fc0cfe8 */ jal chrGetShield
|
|
/* f034098: afa70034 */ sw $a3,0x34($sp)
|
|
/* f03409c: 44802000 */ mtc1 $zero,$f4
|
|
/* f0340a0: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f0340a4: 00001025 */ or $v0,$zero,$zero
|
|
/* f0340a8: 4600203c */ c.lt.s $f4,$f0
|
|
/* f0340ac: 00000000 */ nop
|
|
/* f0340b0: 45000018 */ bc1f .L0f034114
|
|
/* f0340b4: 00000000 */ nop
|
|
/* f0340b8: 10e00014 */ beqz $a3,.L0f03410c
|
|
/* f0340bc: 00000000 */ nop
|
|
/* f0340c0: 94ee0000 */ lhu $t6,0x0($a3)
|
|
/* f0340c4: 2401000a */ addiu $at,$zero,0xa
|
|
/* f0340c8: 31cf00ff */ andi $t7,$t6,0xff
|
|
/* f0340cc: 15e1000f */ bne $t7,$at,.L0f03410c
|
|
/* f0340d0: 00000000 */ nop
|
|
/* f0340d4: 0fc0cfe8 */ jal chrGetShield
|
|
/* f0340d8: 8fa40028 */ lw $a0,0x28($sp)
|
|
/* f0340dc: 8fb80028 */ lw $t8,0x28($sp)
|
|
/* f0340e0: 8fb90034 */ lw $t9,0x34($sp)
|
|
/* f0340e4: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f0340e8: 8fa9003c */ lw $t1,0x3c($sp)
|
|
/* f0340ec: 8f04001c */ lw $a0,0x1c($t8)
|
|
/* f0340f0: 44050000 */ mfc1 $a1,$f0
|
|
/* f0340f4: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f0340f8: 8fa60030 */ lw $a2,0x30($sp)
|
|
/* f0340fc: afb90010 */ sw $t9,0x10($sp)
|
|
/* f034100: afa80014 */ sw $t0,0x14($sp)
|
|
/* f034104: 0fc0a3df */ jal func0f028f7c
|
|
/* f034108: afa90018 */ sw $t1,0x18($sp)
|
|
.L0f03410c:
|
|
/* f03410c: 10000001 */ b .L0f034114
|
|
/* f034110: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f034114:
|
|
/* f034114: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f034118: 27bd0028 */ addiu $sp,$sp,0x28
|
|
/* f03411c: 03e00008 */ jr $ra
|
|
/* f034120: 00000000 */ nop
|
|
);
|
|
|
|
void chrPoison(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop)
|
|
{
|
|
func0f034524(chr, damage, vector, hand, prop, 200, 0, 0, 0, 0, -1, 0, 0, 0);
|
|
}
|
|
|
|
void func0f03417c(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop)
|
|
{
|
|
func0f034524(chr, damage, vector, hand, prop, 200, 1, chr->prop, 0, 0, -1, 0, 0, 0);
|
|
}
|
|
|
|
void func0f0341dc(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop, u32 arg5, struct prop *prop2, s32 arg7, s32 arg8, s32 arg9, u32 arg10)
|
|
{
|
|
func0f034524(chr, damage, vector, hand, prop, arg5, 1, prop2, arg7, arg8, arg9, arg10, 0, 0);
|
|
}
|
|
|
|
void func0f034248(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop)
|
|
{
|
|
s32 sp4c = 0;
|
|
s32 sp48 = 0;
|
|
s32 sp44 = 0;
|
|
s32 sp40 = 200;
|
|
|
|
if (chrGetShield(chr) >= 0 && chr->model) {
|
|
func0f03ff2c(chr, &chr->prop->pos, vector, &sp4c, &sp40, &sp48, &sp44);
|
|
}
|
|
|
|
func0f034524(chr, damage, vector, hand, prop, 200, 1, chr->prop, sp4c, sp48, sp44, 0, 0, 0);
|
|
}
|
|
|
|
void func0f034330(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop, s32 arg5)
|
|
{
|
|
s32 sp76 = 0;
|
|
s32 sp72 = 0;
|
|
s32 sp68 = 0;
|
|
|
|
if (chrGetShield(chr) >= 0 && chr->model) {
|
|
func0f03ff2c(chr, &chr->prop->pos, vector, &sp76, &arg5, &sp72, &sp68);
|
|
}
|
|
|
|
func0f034524(chr, damage, vector, hand, prop, arg5, 1, chr->prop, sp76, sp72, sp68, 0, 0, 0);
|
|
}
|
|
|
|
void func0f034410(struct chrdata *chr, f32 damage, struct coord *vector, struct prop *prop, u32 arg4)
|
|
{
|
|
func0f034524(chr, damage, vector, NULL, prop, 200, 1, chr->prop, 0, 0, -1, 0, 1, arg4);
|
|
}
|
|
|
|
void playerUpdateDamageStats(struct prop *attacker, struct prop *victim, f32 damage)
|
|
{
|
|
s32 playernum;
|
|
|
|
if (attacker && attacker->type == PROPTYPE_PLAYER) {
|
|
playernum = propGetPlayerNum(attacker);
|
|
|
|
if (playernum >= 0) {
|
|
g_Vars.playerstats[playernum].damtransmitted += damage;
|
|
}
|
|
}
|
|
|
|
if (victim && victim->type == PROPTYPE_PLAYER) {
|
|
playernum = propGetPlayerNum(victim);
|
|
|
|
if (playernum >= 0) {
|
|
g_Vars.playerstats[playernum].damreceived += damage;
|
|
}
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f034524
|
|
.late_rodata
|
|
glabel var7f1a8d60
|
|
.word 0x471c4000
|
|
glabel var7f1a8d64
|
|
.word 0x481c4000
|
|
glabel var7f1a8d68
|
|
.word 0x491c4000
|
|
glabel var7f1a8d6c
|
|
.word 0x4a1c4000
|
|
glabel var7f1a8d70
|
|
.word 0x4006051b
|
|
glabel var7f1a8d74
|
|
.word 0x4086051c
|
|
glabel var7f1a8d78
|
|
.word 0x3f86051b
|
|
glabel var7f1a8d7c
|
|
.word 0x40a78662
|
|
glabel var7f1a8d80
|
|
.word 0x3ecccccd
|
|
glabel var7f1a8d84
|
|
.word 0x4006051b
|
|
glabel var7f1a8d88
|
|
.word 0x4086051c
|
|
glabel var7f1a8d8c
|
|
.word 0x3f333333
|
|
glabel var7f1a8d90
|
|
.word 0x3dcccccd
|
|
glabel var7f1a8d94
|
|
.word 0x3dcccccd
|
|
glabel var7f1a8d98
|
|
.word 0x3dcccccd
|
|
.text
|
|
/* f034524: 27bdfec0 */ addiu $sp,$sp,-320
|
|
/* f034528: f7b40040 */ sdc1 $f20,0x40($sp)
|
|
/* f03452c: 4485a000 */ mtc1 $a1,$f20
|
|
/* f034530: afb0004c */ sw $s0,0x4c($sp)
|
|
/* f034534: 00808025 */ or $s0,$a0,$zero
|
|
/* f034538: afbf0054 */ sw $ra,0x54($sp)
|
|
/* f03453c: afb10050 */ sw $s1,0x50($sp)
|
|
/* f034540: afa60148 */ sw $a2,0x148($sp)
|
|
/* f034544: 10800004 */ beqz $a0,.L0f034558
|
|
/* f034548: afa0013c */ sw $zero,0x13c($sp)
|
|
/* f03454c: 908e02fe */ lbu $t6,0x2fe($a0)
|
|
/* f034550: 10000002 */ b .L0f03455c
|
|
/* f034554: afae0138 */ sw $t6,0x138($sp)
|
|
.L0f034558:
|
|
/* f034558: afa00138 */ sw $zero,0x138($sp)
|
|
.L0f03455c:
|
|
/* f03455c: 8e0f001c */ lw $t7,0x1c($s0)
|
|
/* f034560: 3c013f80 */ lui $at,0x3f80
|
|
/* f034564: 44810000 */ mtc1 $at,$f0
|
|
/* f034568: 8faa0154 */ lw $t2,0x154($sp)
|
|
/* f03456c: 3c188007 */ lui $t8,%hi(var80068264)
|
|
/* f034570: 8f188264 */ lw $t8,%lo(var80068264)($t8)
|
|
/* f034574: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f034578: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f03457c: 2409ffff */ addiu $t1,$zero,-1
|
|
/* f034580: 24010008 */ addiu $at,$zero,0x8
|
|
/* f034584: afa00120 */ sw $zero,0x120($sp)
|
|
/* f034588: afa0011c */ sw $zero,0x11c($sp)
|
|
/* f03458c: afa00118 */ sw $zero,0x118($sp)
|
|
/* f034590: e7b40110 */ swc1 $f20,0x110($sp)
|
|
/* f034594: afb90104 */ sw $t9,0x104($sp)
|
|
/* f034598: afa00100 */ sw $zero,0x100($sp)
|
|
/* f03459c: afa800f4 */ sw $t0,0xf4($sp)
|
|
/* f0345a0: afa900f0 */ sw $t1,0xf0($sp)
|
|
/* f0345a4: afa000ec */ sw $zero,0xec($sp)
|
|
/* f0345a8: afaf0128 */ sw $t7,0x128($sp)
|
|
/* f0345ac: e7a00124 */ swc1 $f0,0x124($sp)
|
|
/* f0345b0: e7a0010c */ swc1 $f0,0x10c($sp)
|
|
/* f0345b4: e7a00108 */ swc1 $f0,0x108($sp)
|
|
/* f0345b8: 15410003 */ bne $t2,$at,.L0f0345c8
|
|
/* f0345bc: afb80114 */ sw $t8,0x114($sp)
|
|
/* f0345c0: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f0345c4: afab00ec */ sw $t3,0xec($sp)
|
|
.L0f0345c8:
|
|
/* f0345c8: 10e00019 */ beqz $a3,.L0f034630
|
|
/* f0345cc: 3c05800a */ lui $a1,%hi(g_Vars)
|
|
/* f0345d0: 90e20000 */ lbu $v0,0x0($a3)
|
|
/* f0345d4: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f0345d8: 5441000d */ bnel $v0,$at,.L0f034610
|
|
/* f0345dc: 2401001c */ addiu $at,$zero,0x1c
|
|
/* f0345e0: 90e20003 */ lbu $v0,0x3($a3)
|
|
/* f0345e4: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0345e8: 240c0002 */ addiu $t4,$zero,0x2
|
|
/* f0345ec: 54410003 */ bnel $v0,$at,.L0f0345fc
|
|
/* f0345f0: 24010003 */ addiu $at,$zero,0x3
|
|
/* f0345f4: afa000f4 */ sw $zero,0xf4($sp)
|
|
/* f0345f8: 24010003 */ addiu $at,$zero,0x3
|
|
.L0f0345fc:
|
|
/* f0345fc: 1441000c */ bne $v0,$at,.L0f034630
|
|
/* f034600: 00000000 */ nop
|
|
/* f034604: 1000000a */ b .L0f034630
|
|
/* f034608: afac00ec */ sw $t4,0xec($sp)
|
|
/* f03460c: 2401001c */ addiu $at,$zero,0x1c
|
|
.L0f034610:
|
|
/* f034610: 14410007 */ bne $v0,$at,.L0f034630
|
|
/* f034614: 00000000 */ nop
|
|
/* f034618: 90ed0003 */ lbu $t5,0x3($a3)
|
|
/* f03461c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f034620: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f034624: 15a10002 */ bne $t5,$at,.L0f034630
|
|
/* f034628: 00000000 */ nop
|
|
/* f03462c: afae00ec */ sw $t6,0xec($sp)
|
|
.L0f034630:
|
|
/* f034630: 24a59fc0 */ addiu $a1,$a1,%lo(g_Vars)
|
|
/* f034634: 8ca20284 */ lw $v0,0x284($a1)
|
|
/* f034638: afa7014c */ sw $a3,0x14c($sp)
|
|
/* f03463c: 8e18001c */ lw $t8,0x1c($s0)
|
|
/* f034640: 8c4f00bc */ lw $t7,0xbc($v0)
|
|
/* f034644: 15f80009 */ bne $t7,$t8,.L0f03466c
|
|
/* f034648: 00000000 */ nop
|
|
/* f03464c: afa7014c */ sw $a3,0x14c($sp)
|
|
/* f034650: 8c591c08 */ lw $t9,0x1c08($v0)
|
|
/* f034654: 17200005 */ bnez $t9,.L0f03466c
|
|
/* f034658: 00000000 */ nop
|
|
/* f03465c: 0c003a61 */ jal mainGetStageNum
|
|
/* f034660: afa7014c */ sw $a3,0x14c($sp)
|
|
/* f034664: 24010026 */ addiu $at,$zero,0x26
|
|
/* f034668: 10410735 */ beq $v0,$at,.L0f036340
|
|
.L0f03466c:
|
|
/* f03466c: 3c05800a */ lui $a1,%hi(g_Vars)
|
|
/* f034670: 24a59fc0 */ addiu $a1,$a1,%lo(g_Vars)
|
|
/* f034674: 8ca8029c */ lw $t0,0x29c($a1)
|
|
/* f034678: 8fa7014c */ lw $a3,0x14c($sp)
|
|
/* f03467c: 8fb10150 */ lw $s1,0x150($sp)
|
|
/* f034680: 0502000c */ bltzl $t0,.L0f0346b4
|
|
/* f034684: 8cad0298 */ lw $t5,0x298($a1)
|
|
/* f034688: 5220000a */ beqzl $s1,.L0f0346b4
|
|
/* f03468c: 8cad0298 */ lw $t5,0x298($a1)
|
|
/* f034690: 8ca902a8 */ lw $t1,0x2a8($a1)
|
|
/* f034694: 8d2a00bc */ lw $t2,0xbc($t1)
|
|
/* f034698: 562a0006 */ bnel $s1,$t2,.L0f0346b4
|
|
/* f03469c: 8cad0298 */ lw $t5,0x298($a1)
|
|
/* f0346a0: 8e0b0014 */ lw $t3,0x14($s0)
|
|
/* f0346a4: 000b6040 */ sll $t4,$t3,0x1
|
|
/* f0346a8: 05820726 */ bltzl $t4,.L0f036344
|
|
/* f0346ac: 8fbf0054 */ lw $ra,0x54($sp)
|
|
/* f0346b0: 8cad0298 */ lw $t5,0x298($a1)
|
|
.L0f0346b4:
|
|
/* f0346b4: 8fb10150 */ lw $s1,0x150($sp)
|
|
/* f0346b8: 3c03800a */ lui $v1,%hi(g_MissionConfig+0x3)
|
|
/* f0346bc: 05a0000f */ bltz $t5,.L0f0346fc
|
|
/* f0346c0: 00000000 */ nop
|
|
/* f0346c4: 8cae0454 */ lw $t6,0x454($a1)
|
|
/* f0346c8: 15c0000c */ bnez $t6,.L0f0346fc
|
|
/* f0346cc: 00000000 */ nop
|
|
/* f0346d0: 1220000a */ beqz $s1,.L0f0346fc
|
|
/* f0346d4: 8faf0128 */ lw $t7,0x128($sp)
|
|
/* f0346d8: 122f0008 */ beq $s1,$t7,.L0f0346fc
|
|
/* f0346dc: 00000000 */ nop
|
|
/* f0346e0: 92380000 */ lbu $t8,0x0($s1)
|
|
/* f0346e4: 24060006 */ addiu $a2,$zero,0x6
|
|
/* f0346e8: 14d80004 */ bne $a2,$t8,.L0f0346fc
|
|
/* f0346ec: 00000000 */ nop
|
|
/* f0346f0: 91f90000 */ lbu $t9,0x0($t7)
|
|
/* f0346f4: 50d90713 */ beql $a2,$t9,.L0f036344
|
|
/* f0346f8: 8fbf0054 */ lw $ra,0x54($sp)
|
|
.L0f0346fc:
|
|
/* f0346fc: 9063dfeb */ lbu $v1,%lo(g_MissionConfig+0x3)($v1)
|
|
/* f034700: 24060006 */ addiu $a2,$zero,0x6
|
|
/* f034704: 000341c2 */ srl $t0,$v1,0x7
|
|
/* f034708: 11000016 */ beqz $t0,.L0f034764
|
|
/* f03470c: 01001825 */ or $v1,$t0,$zero
|
|
/* f034710: 8ca90454 */ lw $t1,0x454($a1)
|
|
/* f034714: 15200013 */ bnez $t1,.L0f034764
|
|
/* f034718: 00000000 */ nop
|
|
/* f03471c: 12200011 */ beqz $s1,.L0f034764
|
|
/* f034720: 8faa0128 */ lw $t2,0x128($sp)
|
|
/* f034724: 122a000f */ beq $s1,$t2,.L0f034764
|
|
/* f034728: 00000000 */ nop
|
|
/* f03472c: 92220000 */ lbu $v0,0x0($s1)
|
|
/* f034730: 24010003 */ addiu $at,$zero,0x3
|
|
/* f034734: 50c20004 */ beql $a2,$v0,.L0f034748
|
|
/* f034738: 920b0125 */ lbu $t3,0x125($s0)
|
|
/* f03473c: 14410009 */ bne $v0,$at,.L0f034764
|
|
/* f034740: 00000000 */ nop
|
|
/* f034744: 920b0125 */ lbu $t3,0x125($s0)
|
|
.L0f034748:
|
|
/* f034748: 24020010 */ addiu $v0,$zero,0x10
|
|
/* f03474c: 144b0005 */ bne $v0,$t3,.L0f034764
|
|
/* f034750: 00000000 */ nop
|
|
/* f034754: 8e2c0004 */ lw $t4,0x4($s1)
|
|
/* f034758: 918d0125 */ lbu $t5,0x125($t4)
|
|
/* f03475c: 504d06f9 */ beql $v0,$t5,.L0f036344
|
|
/* f034760: 8fbf0054 */ lw $ra,0x54($sp)
|
|
.L0f034764:
|
|
/* f034764: 10600011 */ beqz $v1,.L0f0347ac
|
|
/* f034768: 24020010 */ addiu $v0,$zero,0x10
|
|
/* f03476c: 1220000f */ beqz $s1,.L0f0347ac
|
|
/* f034770: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f034774: 122e000d */ beq $s1,$t6,.L0f0347ac
|
|
/* f034778: 00000000 */ nop
|
|
/* f03477c: 92380000 */ lbu $t8,0x0($s1)
|
|
/* f034780: 24010003 */ addiu $at,$zero,0x3
|
|
/* f034784: 17010009 */ bne $t8,$at,.L0f0347ac
|
|
/* f034788: 00000000 */ nop
|
|
/* f03478c: 8e2f0004 */ lw $t7,0x4($s1)
|
|
/* f034790: 91f90125 */ lbu $t9,0x125($t7)
|
|
/* f034794: 14590005 */ bne $v0,$t9,.L0f0347ac
|
|
/* f034798: 00000000 */ nop
|
|
/* f03479c: 8e080014 */ lw $t0,0x14($s0)
|
|
/* f0347a0: 00084840 */ sll $t1,$t0,0x1
|
|
/* f0347a4: 052206e7 */ bltzl $t1,.L0f036344
|
|
/* f0347a8: 8fbf0054 */ lw $ra,0x54($sp)
|
|
.L0f0347ac:
|
|
/* f0347ac: 54e00003 */ bnezl $a3,.L0f0347bc
|
|
/* f0347b0: 00e02025 */ or $a0,$a3,$zero
|
|
/* f0347b4: 27a70114 */ addiu $a3,$sp,0x114
|
|
/* f0347b8: 00e02025 */ or $a0,$a3,$zero
|
|
.L0f0347bc:
|
|
/* f0347bc: 0fc2c41f */ jal handGetWeaponFunction
|
|
/* f0347c0: afa7014c */ sw $a3,0x14c($sp)
|
|
/* f0347c4: 0002182b */ sltu $v1,$zero,$v0
|
|
/* f0347c8: 10600005 */ beqz $v1,.L0f0347e0
|
|
/* f0347cc: 24050200 */ addiu $a1,$zero,0x200
|
|
/* f0347d0: 8c430000 */ lw $v1,0x0($v0)
|
|
/* f0347d4: 306a00ff */ andi $t2,$v1,0xff
|
|
/* f0347d8: 394b0003 */ xori $t3,$t2,0x3
|
|
/* f0347dc: 2d630001 */ sltiu $v1,$t3,0x1
|
|
.L0f0347e0:
|
|
/* f0347e0: 8fac0138 */ lw $t4,0x138($sp)
|
|
/* f0347e4: afa3012c */ sw $v1,0x12c($sp)
|
|
/* f0347e8: 398d0002 */ xori $t5,$t4,0x2
|
|
/* f0347ec: 000d182b */ sltu $v1,$zero,$t5
|
|
/* f0347f0: 10600004 */ beqz $v1,.L0f034804
|
|
/* f0347f4: afa3005c */ sw $v1,0x5c($sp)
|
|
/* f0347f8: 0fc2c7aa */ jal handHasFunctionFlags
|
|
/* f0347fc: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f034800: 0002182b */ sltu $v1,$zero,$v0
|
|
.L0f034804:
|
|
/* f034804: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
|
/* f034808: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
|
/* f03480c: afa30130 */ sw $v1,0x130($sp)
|
|
/* f034810: 8e18001c */ lw $t8,0x1c($s0)
|
|
/* f034814: 8c4e00bc */ lw $t6,0xbc($v0)
|
|
/* f034818: 8fb9012c */ lw $t9,0x12c($sp)
|
|
/* f03481c: 15d80004 */ bne $t6,$t8,.L0f034830
|
|
/* f034820: 00000000 */ nop
|
|
/* f034824: 904f1922 */ lbu $t7,0x1922($v0)
|
|
/* f034828: 55e006c6 */ bnezl $t7,.L0f036344
|
|
/* f03482c: 8fbf0054 */ lw $ra,0x54($sp)
|
|
.L0f034830:
|
|
/* f034830: 53200003 */ beqzl $t9,.L0f034840
|
|
/* f034834: 8e080018 */ lw $t0,0x18($s0)
|
|
/* f034838: afa00104 */ sw $zero,0x104($sp)
|
|
/* f03483c: 8e080018 */ lw $t0,0x18($s0)
|
|
.L0f034840:
|
|
/* f034840: 3c010020 */ lui $at,0x20
|
|
/* f034844: 01014825 */ or $t1,$t0,$at
|
|
/* f034848: 1220000f */ beqz $s1,.L0f034888
|
|
/* f03484c: ae090018 */ sw $t1,0x18($s0)
|
|
/* f034850: 922a0000 */ lbu $t2,0x0($s1)
|
|
/* f034854: 24010003 */ addiu $at,$zero,0x3
|
|
/* f034858: 5541000c */ bnel $t2,$at,.L0f03488c
|
|
/* f03485c: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f034860: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f034864: 8e240004 */ lw $a0,0x4($s1)
|
|
/* f034868: 8e0b001c */ lw $t3,0x1c($s0)
|
|
/* f03486c: 544b0007 */ bnel $v0,$t3,.L0f03488c
|
|
/* f034870: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f034874: 8e220004 */ lw $v0,0x4($s1)
|
|
/* f034878: 3c018000 */ lui $at,0x8000
|
|
/* f03487c: 8c4c0018 */ lw $t4,0x18($v0)
|
|
/* f034880: 01816825 */ or $t5,$t4,$at
|
|
/* f034884: ac4d0018 */ sw $t5,0x18($v0)
|
|
.L0f034888:
|
|
/* f034888: 8fa4014c */ lw $a0,0x14c($sp)
|
|
.L0f03488c:
|
|
/* f03488c: 0fc2c7aa */ jal handHasFunctionFlags
|
|
/* f034890: 24050400 */ addiu $a1,$zero,0x400
|
|
/* f034894: 10400011 */ beqz $v0,.L0f0348dc
|
|
/* f034898: 3c08800a */ lui $t0,%hi(g_Vars+0x314)
|
|
/* f03489c: 8fae014c */ lw $t6,0x14c($sp)
|
|
/* f0348a0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0348a4: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f0348a8: 91d80000 */ lbu $t8,0x0($t6)
|
|
/* f0348ac: 1701000b */ bne $t8,$at,.L0f0348dc
|
|
/* f0348b0: 00000000 */ nop
|
|
/* f0348b4: 90af0000 */ lbu $t7,0x0($a1)
|
|
/* f0348b8: 24010006 */ addiu $at,$zero,0x6
|
|
/* f0348bc: 3c19800a */ lui $t9,%hi(g_Vars+0x318)
|
|
/* f0348c0: 51e10005 */ beql $t7,$at,.L0f0348d8
|
|
/* f0348c4: 4480a000 */ mtc1 $zero,$f20
|
|
/* f0348c8: 8f39a2d8 */ lw $t9,%lo(g_Vars+0x318)($t9)
|
|
/* f0348cc: 13200003 */ beqz $t9,.L0f0348dc
|
|
/* f0348d0: 00000000 */ nop
|
|
/* f0348d4: 4480a000 */ mtc1 $zero,$f20
|
|
.L0f0348d8:
|
|
/* f0348d8: 00000000 */ nop
|
|
.L0f0348dc:
|
|
/* f0348dc: 8d08a2d4 */ lw $t0,%lo(g_Vars+0x314)($t0)
|
|
/* f0348e0: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f0348e4: 3c09800a */ lui $t1,%hi(g_Vars+0x298)
|
|
/* f0348e8: 15000047 */ bnez $t0,.L0f034a08
|
|
/* f0348ec: 00000000 */ nop
|
|
/* f0348f0: 8fa90170 */ lw $t1,0x170($sp)
|
|
/* f0348f4: 90a30000 */ lbu $v1,0x0($a1)
|
|
/* f0348f8: 24010006 */ addiu $at,$zero,0x6
|
|
/* f0348fc: 11200007 */ beqz $t1,.L0f03491c
|
|
/* f034900: 00000000 */ nop
|
|
/* f034904: 14610022 */ bne $v1,$at,.L0f034990
|
|
/* f034908: 3c018008 */ lui $at,%hi(var8007e4a8)
|
|
/* f03490c: c424e4a8 */ lwc1 $f4,%lo(var8007e4a8)($at)
|
|
/* f034910: 4604a502 */ mul.s $f20,$f20,$f4
|
|
/* f034914: 1000001f */ b .L0f034994
|
|
/* f034918: 24010006 */ addiu $at,$zero,0x6
|
|
.L0f03491c:
|
|
/* f03491c: 1220000b */ beqz $s1,.L0f03494c
|
|
/* f034920: 00000000 */ nop
|
|
/* f034924: 922a0000 */ lbu $t2,0x0($s1)
|
|
/* f034928: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03492c: 15410007 */ bne $t2,$at,.L0f03494c
|
|
/* f034930: 3c018006 */ lui $at,%hi(var80062ca8)
|
|
/* f034934: c4262ca8 */ lwc1 $f6,%lo(var80062ca8)($at)
|
|
/* f034938: 3c0141c8 */ lui $at,0x41c8
|
|
/* f03493c: 44814000 */ mtc1 $at,$f8
|
|
/* f034940: 4606a502 */ mul.s $f20,$f20,$f6
|
|
/* f034944: 10000012 */ b .L0f034990
|
|
/* f034948: e7a80124 */ swc1 $f8,0x124($sp)
|
|
.L0f03494c:
|
|
/* f03494c: 52200011 */ beqzl $s1,.L0f034994
|
|
/* f034950: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034954: 922b0000 */ lbu $t3,0x0($s1)
|
|
/* f034958: 24010003 */ addiu $at,$zero,0x3
|
|
/* f03495c: 1561000c */ bne $t3,$at,.L0f034990
|
|
/* f034960: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034964: 5461000b */ bnel $v1,$at,.L0f034994
|
|
/* f034968: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03496c: 0fc06c38 */ jal pdmodeGetDamage
|
|
/* f034970: 00000000 */ nop
|
|
/* f034974: 3c018006 */ lui $at,%hi(var80062ca4)
|
|
/* f034978: c42a2ca4 */ lwc1 $f10,%lo(var80062ca4)($at)
|
|
/* f03497c: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f034980: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f034984: 90a30000 */ lbu $v1,0x0($a1)
|
|
/* f034988: 4610a502 */ mul.s $f20,$f20,$f16
|
|
/* f03498c: 00000000 */ nop
|
|
.L0f034990:
|
|
/* f034990: 24010006 */ addiu $at,$zero,0x6
|
|
.L0f034994:
|
|
/* f034994: 50610007 */ beql $v1,$at,.L0f0349b4
|
|
/* f034998: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03499c: 0fc06c2b */ jal pdmodeGetHealth
|
|
/* f0349a0: 00000000 */ nop
|
|
/* f0349a4: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f0349a8: 4600a503 */ div.s $f20,$f20,$f0
|
|
/* f0349ac: 90a30000 */ lbu $v1,0x0($a1)
|
|
/* f0349b0: 24010006 */ addiu $at,$zero,0x6
|
|
.L0f0349b4:
|
|
/* f0349b4: 546100d2 */ bnel $v1,$at,.L0f034d00
|
|
/* f0349b8: 24010006 */ addiu $at,$zero,0x6
|
|
/* f0349bc: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f0349c0: 00a02025 */ or $a0,$a1,$zero
|
|
/* f0349c4: 00027080 */ sll $t6,$v0,0x2
|
|
/* f0349c8: 3c18800a */ lui $t8,%hi(g_Vars+0x64)
|
|
/* f0349cc: 030ec021 */ addu $t8,$t8,$t6
|
|
/* f0349d0: 8f18a024 */ lw $t8,%lo(g_Vars+0x64)($t8)
|
|
/* f0349d4: 8fa40128 */ lw $a0,0x128($sp)
|
|
/* f0349d8: c712199c */ lwc1 $f18,0x199c($t8)
|
|
/* f0349dc: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f0349e0: e7b2010c */ swc1 $f18,0x10c($sp)
|
|
/* f0349e4: 00027880 */ sll $t7,$v0,0x2
|
|
/* f0349e8: 3c19800a */ lui $t9,%hi(g_Vars+0x64)
|
|
/* f0349ec: 032fc821 */ addu $t9,$t9,$t7
|
|
/* f0349f0: 8f39a024 */ lw $t9,%lo(g_Vars+0x64)($t9)
|
|
/* f0349f4: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f0349f8: c72419a0 */ lwc1 $f4,0x19a0($t9)
|
|
/* f0349fc: e7a40108 */ swc1 $f4,0x108($sp)
|
|
/* f034a00: 100000be */ b .L0f034cfc
|
|
/* f034a04: 90a30000 */ lbu $v1,0x0($a1)
|
|
.L0f034a08:
|
|
/* f034a08: 8d29a258 */ lw $t1,%lo(g_Vars+0x298)($t1)
|
|
/* f034a0c: 3c0a800a */ lui $t2,%hi(g_Vars+0x29c)
|
|
/* f034a10: 05200049 */ bltz $t1,.L0f034b38
|
|
/* f034a14: 00000000 */ nop
|
|
/* f034a18: 8faa0170 */ lw $t2,0x170($sp)
|
|
/* f034a1c: 90a30000 */ lbu $v1,0x0($a1)
|
|
/* f034a20: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034a24: 11400007 */ beqz $t2,.L0f034a44
|
|
/* f034a28: 00000000 */ nop
|
|
/* f034a2c: 14610024 */ bne $v1,$at,.L0f034ac0
|
|
/* f034a30: 3c018008 */ lui $at,%hi(var8007e4a8)
|
|
/* f034a34: c426e4a8 */ lwc1 $f6,%lo(var8007e4a8)($at)
|
|
/* f034a38: 4606a502 */ mul.s $f20,$f20,$f6
|
|
/* f034a3c: 10000021 */ b .L0f034ac4
|
|
/* f034a40: 24010006 */ addiu $at,$zero,0x6
|
|
.L0f034a44:
|
|
/* f034a44: 1220000d */ beqz $s1,.L0f034a7c
|
|
/* f034a48: 00000000 */ nop
|
|
/* f034a4c: 922b0000 */ lbu $t3,0x0($s1)
|
|
/* f034a50: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034a54: 15610009 */ bne $t3,$at,.L0f034a7c
|
|
/* f034a58: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034a5c: 10610007 */ beq $v1,$at,.L0f034a7c
|
|
/* f034a60: 3c018006 */ lui $at,%hi(var80062ca8)
|
|
/* f034a64: c4282ca8 */ lwc1 $f8,%lo(var80062ca8)($at)
|
|
/* f034a68: 3c0141c8 */ lui $at,0x41c8
|
|
/* f034a6c: 44815000 */ mtc1 $at,$f10
|
|
/* f034a70: 4608a502 */ mul.s $f20,$f20,$f8
|
|
/* f034a74: 10000012 */ b .L0f034ac0
|
|
/* f034a78: e7aa0124 */ swc1 $f10,0x124($sp)
|
|
.L0f034a7c:
|
|
/* f034a7c: 52200011 */ beqzl $s1,.L0f034ac4
|
|
/* f034a80: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034a84: 922c0000 */ lbu $t4,0x0($s1)
|
|
/* f034a88: 24010003 */ addiu $at,$zero,0x3
|
|
/* f034a8c: 1581000c */ bne $t4,$at,.L0f034ac0
|
|
/* f034a90: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034a94: 5461000b */ bnel $v1,$at,.L0f034ac4
|
|
/* f034a98: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034a9c: 0fc06c38 */ jal pdmodeGetDamage
|
|
/* f034aa0: 00000000 */ nop
|
|
/* f034aa4: 3c018006 */ lui $at,%hi(var80062ca4)
|
|
/* f034aa8: c4302ca4 */ lwc1 $f16,%lo(var80062ca4)($at)
|
|
/* f034aac: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f034ab0: 46008482 */ mul.s $f18,$f16,$f0
|
|
/* f034ab4: 90a30000 */ lbu $v1,0x0($a1)
|
|
/* f034ab8: 4612a502 */ mul.s $f20,$f20,$f18
|
|
/* f034abc: 00000000 */ nop
|
|
.L0f034ac0:
|
|
/* f034ac0: 24010006 */ addiu $at,$zero,0x6
|
|
.L0f034ac4:
|
|
/* f034ac4: 50610007 */ beql $v1,$at,.L0f034ae4
|
|
/* f034ac8: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034acc: 0fc06c2b */ jal pdmodeGetHealth
|
|
/* f034ad0: 00000000 */ nop
|
|
/* f034ad4: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f034ad8: 4600a503 */ div.s $f20,$f20,$f0
|
|
/* f034adc: 90a30000 */ lbu $v1,0x0($a1)
|
|
/* f034ae0: 24010006 */ addiu $at,$zero,0x6
|
|
.L0f034ae4:
|
|
/* f034ae4: 54610086 */ bnel $v1,$at,.L0f034d00
|
|
/* f034ae8: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034aec: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f034af0: 00a02025 */ or $a0,$a1,$zero
|
|
/* f034af4: 0002c080 */ sll $t8,$v0,0x2
|
|
/* f034af8: 3c0f800a */ lui $t7,%hi(g_Vars+0x64)
|
|
/* f034afc: 01f87821 */ addu $t7,$t7,$t8
|
|
/* f034b00: 8defa024 */ lw $t7,%lo(g_Vars+0x64)($t7)
|
|
/* f034b04: 8fa40128 */ lw $a0,0x128($sp)
|
|
/* f034b08: c5e4199c */ lwc1 $f4,0x199c($t7)
|
|
/* f034b0c: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f034b10: e7a4010c */ swc1 $f4,0x10c($sp)
|
|
/* f034b14: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f034b18: 3c08800a */ lui $t0,%hi(g_Vars+0x64)
|
|
/* f034b1c: 01194021 */ addu $t0,$t0,$t9
|
|
/* f034b20: 8d08a024 */ lw $t0,%lo(g_Vars+0x64)($t0)
|
|
/* f034b24: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f034b28: c50619a0 */ lwc1 $f6,0x19a0($t0)
|
|
/* f034b2c: e7a60108 */ swc1 $f6,0x108($sp)
|
|
/* f034b30: 10000072 */ b .L0f034cfc
|
|
/* f034b34: 90a30000 */ lbu $v1,0x0($a1)
|
|
.L0f034b38:
|
|
/* f034b38: 8d4aa25c */ lw $t2,%lo(g_Vars+0x29c)($t2)
|
|
/* f034b3c: 8fab0170 */ lw $t3,0x170($sp)
|
|
/* f034b40: 0542005b */ bltzl $t2,.L0f034cb0
|
|
/* f034b44: 90a30000 */ lbu $v1,0x0($a1)
|
|
/* f034b48: 1160000a */ beqz $t3,.L0f034b74
|
|
/* f034b4c: 3c0c800a */ lui $t4,%hi(g_Vars+0x2a0)
|
|
/* f034b50: 8d8ca260 */ lw $t4,%lo(g_Vars+0x2a0)($t4)
|
|
/* f034b54: 3c018008 */ lui $at,%hi(var8007e4a8)
|
|
/* f034b58: 8d8200bc */ lw $v0,0xbc($t4)
|
|
/* f034b5c: 14a20025 */ bne $a1,$v0,.L0f034bf4
|
|
/* f034b60: 00000000 */ nop
|
|
/* f034b64: c428e4a8 */ lwc1 $f8,%lo(var8007e4a8)($at)
|
|
/* f034b68: 4608a502 */ mul.s $f20,$f20,$f8
|
|
/* f034b6c: 10000021 */ b .L0f034bf4
|
|
/* f034b70: 00000000 */ nop
|
|
.L0f034b74:
|
|
/* f034b74: 1220000c */ beqz $s1,.L0f034ba8
|
|
/* f034b78: 3c0d800a */ lui $t5,%hi(g_Vars+0x2a0)
|
|
/* f034b7c: 8dada260 */ lw $t5,%lo(g_Vars+0x2a0)($t5)
|
|
/* f034b80: 3c018006 */ lui $at,%hi(var80062ca8)
|
|
/* f034b84: 8da200bc */ lw $v0,0xbc($t5)
|
|
/* f034b88: 16220007 */ bne $s1,$v0,.L0f034ba8
|
|
/* f034b8c: 00000000 */ nop
|
|
/* f034b90: c42a2ca8 */ lwc1 $f10,%lo(var80062ca8)($at)
|
|
/* f034b94: 3c0141c8 */ lui $at,0x41c8
|
|
/* f034b98: 44818000 */ mtc1 $at,$f16
|
|
/* f034b9c: 460aa502 */ mul.s $f20,$f20,$f10
|
|
/* f034ba0: 10000014 */ b .L0f034bf4
|
|
/* f034ba4: e7b00124 */ swc1 $f16,0x124($sp)
|
|
.L0f034ba8:
|
|
/* f034ba8: 3c0e800a */ lui $t6,%hi(g_Vars+0x2a0)
|
|
/* f034bac: 8dcea260 */ lw $t6,%lo(g_Vars+0x2a0)($t6)
|
|
/* f034bb0: 12200010 */ beqz $s1,.L0f034bf4
|
|
/* f034bb4: 8dc200bc */ lw $v0,0xbc($t6)
|
|
/* f034bb8: 1222000e */ beq $s1,$v0,.L0f034bf4
|
|
/* f034bbc: 00000000 */ nop
|
|
/* f034bc0: 14a2000c */ bne $a1,$v0,.L0f034bf4
|
|
/* f034bc4: 00000000 */ nop
|
|
/* f034bc8: 0fc06c38 */ jal pdmodeGetDamage
|
|
/* f034bcc: 00000000 */ nop
|
|
/* f034bd0: 3c018006 */ lui $at,%hi(var80062ca4)
|
|
/* f034bd4: c4322ca4 */ lwc1 $f18,%lo(var80062ca4)($at)
|
|
/* f034bd8: 3c18800a */ lui $t8,%hi(g_Vars+0x2a0)
|
|
/* f034bdc: 8f18a260 */ lw $t8,%lo(g_Vars+0x2a0)($t8)
|
|
/* f034be0: 46009102 */ mul.s $f4,$f18,$f0
|
|
/* f034be4: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f034be8: 8f0200bc */ lw $v0,0xbc($t8)
|
|
/* f034bec: 4604a502 */ mul.s $f20,$f20,$f4
|
|
/* f034bf0: 00000000 */ nop
|
|
.L0f034bf4:
|
|
/* f034bf4: 10a20008 */ beq $a1,$v0,.L0f034c18
|
|
/* f034bf8: 00000000 */ nop
|
|
/* f034bfc: 0fc06c2b */ jal pdmodeGetHealth
|
|
/* f034c00: 00000000 */ nop
|
|
/* f034c04: 3c0f800a */ lui $t7,%hi(g_Vars+0x2a0)
|
|
/* f034c08: 8defa260 */ lw $t7,%lo(g_Vars+0x2a0)($t7)
|
|
/* f034c0c: 4600a503 */ div.s $f20,$f20,$f0
|
|
/* f034c10: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f034c14: 8de200bc */ lw $v0,0xbc($t7)
|
|
.L0f034c18:
|
|
/* f034c18: 14a20012 */ bne $a1,$v0,.L0f034c64
|
|
/* f034c1c: 00000000 */ nop
|
|
/* f034c20: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f034c24: 00a02025 */ or $a0,$a1,$zero
|
|
/* f034c28: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f034c2c: 3c08800a */ lui $t0,%hi(g_Vars+0x64)
|
|
/* f034c30: 01194021 */ addu $t0,$t0,$t9
|
|
/* f034c34: 8d08a024 */ lw $t0,%lo(g_Vars+0x64)($t0)
|
|
/* f034c38: 8fa40128 */ lw $a0,0x128($sp)
|
|
/* f034c3c: c506199c */ lwc1 $f6,0x199c($t0)
|
|
/* f034c40: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f034c44: e7a6010c */ swc1 $f6,0x10c($sp)
|
|
/* f034c48: 00024880 */ sll $t1,$v0,0x2
|
|
/* f034c4c: 3c0a800a */ lui $t2,%hi(g_Vars+0x64)
|
|
/* f034c50: 01495021 */ addu $t2,$t2,$t1
|
|
/* f034c54: 8d4aa024 */ lw $t2,%lo(g_Vars+0x64)($t2)
|
|
/* f034c58: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f034c5c: c54819a0 */ lwc1 $f8,0x19a0($t2)
|
|
/* f034c60: e7a80108 */ swc1 $f8,0x108($sp)
|
|
.L0f034c64:
|
|
/* f034c64: 12200025 */ beqz $s1,.L0f034cfc
|
|
/* f034c68: 90a30000 */ lbu $v1,0x0($a1)
|
|
/* f034c6c: 3c0b800a */ lui $t3,%hi(g_Vars+0x2a8)
|
|
/* f034c70: 8d6ba268 */ lw $t3,%lo(g_Vars+0x2a8)($t3)
|
|
/* f034c74: 3c0d800a */ lui $t5,%hi(g_Vars+0x2a0)
|
|
/* f034c78: 8d6c00bc */ lw $t4,0xbc($t3)
|
|
/* f034c7c: 562c0020 */ bnel $s1,$t4,.L0f034d00
|
|
/* f034c80: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034c84: 8dada260 */ lw $t5,%lo(g_Vars+0x2a0)($t5)
|
|
/* f034c88: 3c0142c8 */ lui $at,0x42c8
|
|
/* f034c8c: 8dae00bc */ lw $t6,0xbc($t5)
|
|
/* f034c90: 50ae001b */ beql $a1,$t6,.L0f034d00
|
|
/* f034c94: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034c98: 44815000 */ mtc1 $at,$f10
|
|
/* f034c9c: 00000000 */ nop
|
|
/* f034ca0: 460aa502 */ mul.s $f20,$f20,$f10
|
|
/* f034ca4: 10000016 */ b .L0f034d00
|
|
/* f034ca8: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034cac: 90a30000 */ lbu $v1,0x0($a1)
|
|
.L0f034cb0:
|
|
/* f034cb0: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034cb4: 3c18800a */ lui $t8,%hi(g_Vars+0x28c)
|
|
/* f034cb8: 54610011 */ bnel $v1,$at,.L0f034d00
|
|
/* f034cbc: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034cc0: 8f18a24c */ lw $t8,%lo(g_Vars+0x28c)($t8)
|
|
/* f034cc4: 00a02025 */ or $a0,$a1,$zero
|
|
/* f034cc8: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f034ccc: afb800e8 */ sw $t8,0xe8($sp)
|
|
/* f034cd0: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f034cd4: 00402025 */ or $a0,$v0,$zero
|
|
/* f034cd8: 3c0f800a */ lui $t7,%hi(g_Vars+0x288)
|
|
/* f034cdc: 8defa248 */ lw $t7,%lo(g_Vars+0x288)($t7)
|
|
/* f034ce0: 8fa400e8 */ lw $a0,0xe8($sp)
|
|
/* f034ce4: c5f0005c */ lwc1 $f16,0x5c($t7)
|
|
/* f034ce8: 4610a502 */ mul.s $f20,$f20,$f16
|
|
/* f034cec: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f034cf0: 00000000 */ nop
|
|
/* f034cf4: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f034cf8: 90a30000 */ lbu $v1,0x0($a1)
|
|
.L0f034cfc:
|
|
/* f034cfc: 24010006 */ addiu $at,$zero,0x6
|
|
.L0f034d00:
|
|
/* f034d00: 1461001d */ bne $v1,$at,.L0f034d78
|
|
/* f034d04: 3c08800a */ lui $t0,%hi(g_Vars+0x28c)
|
|
/* f034d08: 8d08a24c */ lw $t0,%lo(g_Vars+0x28c)($t0)
|
|
/* f034d0c: 00a02025 */ or $a0,$a1,$zero
|
|
/* f034d10: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f034d14: afa800e4 */ sw $t0,0xe4($sp)
|
|
/* f034d18: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f034d1c: 00402025 */ or $a0,$v0,$zero
|
|
/* f034d20: 3c04800a */ lui $a0,%hi(g_Vars+0x28f)
|
|
/* f034d24: 8084a24f */ lb $a0,%lo(g_Vars+0x28f)($a0)
|
|
/* f034d28: 27a500e0 */ addiu $a1,$sp,0xe0
|
|
/* f034d2c: 0c0054b4 */ jal func000152d0
|
|
/* f034d30: 27a600dc */ addiu $a2,$sp,0xdc
|
|
/* f034d34: 8fa400e0 */ lw $a0,0xe0($sp)
|
|
/* f034d38: 3c053e80 */ lui $a1,0x3e80
|
|
/* f034d3c: 2406ffff */ addiu $a2,$zero,-1
|
|
/* f034d40: 04820004 */ bltzl $a0,.L0f034d54
|
|
/* f034d44: 8fa400dc */ lw $a0,0xdc($sp)
|
|
/* f034d48: 0fc47701 */ jal func0f11dc04
|
|
/* f034d4c: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f034d50: 8fa400dc */ lw $a0,0xdc($sp)
|
|
.L0f034d54:
|
|
/* f034d54: 3c053e80 */ lui $a1,0x3e80
|
|
/* f034d58: 2406ffff */ addiu $a2,$zero,-1
|
|
/* f034d5c: 04800003 */ bltz $a0,.L0f034d6c
|
|
/* f034d60: 00000000 */ nop
|
|
/* f034d64: 0fc47701 */ jal func0f11dc04
|
|
/* f034d68: 2407ffff */ addiu $a3,$zero,-1
|
|
.L0f034d6c:
|
|
/* f034d6c: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f034d70: 8fa400e4 */ lw $a0,0xe4($sp)
|
|
/* f034d74: 8fa50128 */ lw $a1,0x128($sp)
|
|
.L0f034d78:
|
|
/* f034d78: 3c09800a */ lui $t1,%hi(g_Vars+0x314)
|
|
/* f034d7c: 8d29a2d4 */ lw $t1,%lo(g_Vars+0x314)($t1)
|
|
/* f034d80: 1120000e */ beqz $t1,.L0f034dbc
|
|
/* f034d84: 00000000 */ nop
|
|
/* f034d88: 12200016 */ beqz $s1,.L0f034de4
|
|
/* f034d8c: 00000000 */ nop
|
|
/* f034d90: 92220000 */ lbu $v0,0x0($s1)
|
|
/* f034d94: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034d98: 10410003 */ beq $v0,$at,.L0f034da8
|
|
/* f034d9c: 24010003 */ addiu $at,$zero,0x3
|
|
/* f034da0: 14410010 */ bne $v0,$at,.L0f034de4
|
|
/* f034da4: 00000000 */ nop
|
|
.L0f034da8:
|
|
/* f034da8: 0fc633fe */ jal mpPlayerGetIndex
|
|
/* f034dac: 8e240004 */ lw $a0,0x4($s1)
|
|
/* f034db0: afa200f0 */ sw $v0,0xf0($sp)
|
|
/* f034db4: 1000000b */ b .L0f034de4
|
|
/* f034db8: 8fa50128 */ lw $a1,0x128($sp)
|
|
.L0f034dbc:
|
|
/* f034dbc: 12200009 */ beqz $s1,.L0f034de4
|
|
/* f034dc0: 00000000 */ nop
|
|
/* f034dc4: 922a0000 */ lbu $t2,0x0($s1)
|
|
/* f034dc8: 24010006 */ addiu $at,$zero,0x6
|
|
/* f034dcc: 15410005 */ bne $t2,$at,.L0f034de4
|
|
/* f034dd0: 00000000 */ nop
|
|
/* f034dd4: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f034dd8: 02202025 */ or $a0,$s1,$zero
|
|
/* f034ddc: afa200f0 */ sw $v0,0xf0($sp)
|
|
/* f034de0: 8fa50128 */ lw $a1,0x128($sp)
|
|
.L0f034de4:
|
|
/* f034de4: 5220005f */ beqzl $s1,.L0f034f64
|
|
/* f034de8: 8fa8014c */ lw $t0,0x14c($sp)
|
|
/* f034dec: 922b0000 */ lbu $t3,0x0($s1)
|
|
/* f034df0: 24010003 */ addiu $at,$zero,0x3
|
|
/* f034df4: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f034df8: 5561005a */ bnel $t3,$at,.L0f034f64
|
|
/* f034dfc: 8fa8014c */ lw $t0,0x14c($sp)
|
|
/* f034e00: 918d0000 */ lbu $t5,0x0($t4)
|
|
/* f034e04: 24010013 */ addiu $at,$zero,0x13
|
|
/* f034e08: 55a10056 */ bnel $t5,$at,.L0f034f64
|
|
/* f034e0c: 8fa8014c */ lw $t0,0x14c($sp)
|
|
/* f034e10: c6320008 */ lwc1 $f18,0x8($s1)
|
|
/* f034e14: c4a40008 */ lwc1 $f4,0x8($a1)
|
|
/* f034e18: c626000c */ lwc1 $f6,0xc($s1)
|
|
/* f034e1c: c4a8000c */ lwc1 $f8,0xc($a1)
|
|
/* f034e20: 46049001 */ sub.s $f0,$f18,$f4
|
|
/* f034e24: c62a0010 */ lwc1 $f10,0x10($s1)
|
|
/* f034e28: c4b00010 */ lwc1 $f16,0x10($a1)
|
|
/* f034e2c: 46083081 */ sub.s $f2,$f6,$f8
|
|
/* f034e30: 46000482 */ mul.s $f18,$f0,$f0
|
|
/* f034e34: 3c017f1b */ lui $at,%hi(var7f1a8d60)
|
|
/* f034e38: 46105301 */ sub.s $f12,$f10,$f16
|
|
/* f034e3c: 46021102 */ mul.s $f4,$f2,$f2
|
|
/* f034e40: c42a8d60 */ lwc1 $f10,%lo(var7f1a8d60)($at)
|
|
/* f034e44: 3c017f1b */ lui $at,%hi(var7f1a8d64)
|
|
/* f034e48: 460c6202 */ mul.s $f8,$f12,$f12
|
|
/* f034e4c: 46049180 */ add.s $f6,$f18,$f4
|
|
/* f034e50: 46083380 */ add.s $f14,$f6,$f8
|
|
/* f034e54: 460a703c */ c.lt.s $f14,$f10
|
|
/* f034e58: 00000000 */ nop
|
|
/* f034e5c: 4500000f */ bc1f .L0f034e9c
|
|
/* f034e60: 00000000 */ nop
|
|
/* f034e64: 0c004b70 */ jal random
|
|
/* f034e68: 00000000 */ nop
|
|
/* f034e6c: 3c014080 */ lui $at,0x4080
|
|
/* f034e70: 44818000 */ mtc1 $at,$f16
|
|
/* f034e74: 24010003 */ addiu $at,$zero,0x3
|
|
/* f034e78: 0041001b */ divu $zero,$v0,$at
|
|
/* f034e7c: 00007010 */ mfhi $t6
|
|
/* f034e80: 448e9000 */ mtc1 $t6,$f18
|
|
/* f034e84: 00000000 */ nop
|
|
/* f034e88: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f034e8c: 46048180 */ add.s $f6,$f16,$f4
|
|
/* f034e90: 4606a502 */ mul.s $f20,$f20,$f6
|
|
/* f034e94: 10000033 */ b .L0f034f64
|
|
/* f034e98: 8fa8014c */ lw $t0,0x14c($sp)
|
|
.L0f034e9c:
|
|
/* f034e9c: c4288d64 */ lwc1 $f8,%lo(var7f1a8d64)($at)
|
|
/* f034ea0: 3c017f1b */ lui $at,%hi(var7f1a8d68)
|
|
/* f034ea4: 4608703c */ c.lt.s $f14,$f8
|
|
/* f034ea8: 00000000 */ nop
|
|
/* f034eac: 4500000c */ bc1f .L0f034ee0
|
|
/* f034eb0: 00000000 */ nop
|
|
/* f034eb4: 0c004b70 */ jal random
|
|
/* f034eb8: 00000000 */ nop
|
|
/* f034ebc: 30580001 */ andi $t8,$v0,0x1
|
|
/* f034ec0: 44989000 */ mtc1 $t8,$f18
|
|
/* f034ec4: 3c014040 */ lui $at,0x4040
|
|
/* f034ec8: 44815000 */ mtc1 $at,$f10
|
|
/* f034ecc: 46809420 */ cvt.s.w $f16,$f18
|
|
/* f034ed0: 46105100 */ add.s $f4,$f10,$f16
|
|
/* f034ed4: 4604a502 */ mul.s $f20,$f20,$f4
|
|
/* f034ed8: 10000022 */ b .L0f034f64
|
|
/* f034edc: 8fa8014c */ lw $t0,0x14c($sp)
|
|
.L0f034ee0:
|
|
/* f034ee0: c4268d68 */ lwc1 $f6,%lo(var7f1a8d68)($at)
|
|
/* f034ee4: 3c017f1b */ lui $at,%hi(var7f1a8d6c)
|
|
/* f034ee8: 4606703c */ c.lt.s $f14,$f6
|
|
/* f034eec: 00000000 */ nop
|
|
/* f034ef0: 4500000c */ bc1f .L0f034f24
|
|
/* f034ef4: 00000000 */ nop
|
|
/* f034ef8: 0c004b70 */ jal random
|
|
/* f034efc: 00000000 */ nop
|
|
/* f034f00: 304f0001 */ andi $t7,$v0,0x1
|
|
/* f034f04: 448f9000 */ mtc1 $t7,$f18
|
|
/* f034f08: 3c014000 */ lui $at,0x4000
|
|
/* f034f0c: 44814000 */ mtc1 $at,$f8
|
|
/* f034f10: 468092a0 */ cvt.s.w $f10,$f18
|
|
/* f034f14: 460a4400 */ add.s $f16,$f8,$f10
|
|
/* f034f18: 4610a502 */ mul.s $f20,$f20,$f16
|
|
/* f034f1c: 10000011 */ b .L0f034f64
|
|
/* f034f20: 8fa8014c */ lw $t0,0x14c($sp)
|
|
.L0f034f24:
|
|
/* f034f24: c4248d6c */ lwc1 $f4,%lo(var7f1a8d6c)($at)
|
|
/* f034f28: 4604703c */ c.lt.s $f14,$f4
|
|
/* f034f2c: 00000000 */ nop
|
|
/* f034f30: 4502000c */ bc1fl .L0f034f64
|
|
/* f034f34: 8fa8014c */ lw $t0,0x14c($sp)
|
|
/* f034f38: 0c004b70 */ jal random
|
|
/* f034f3c: 00000000 */ nop
|
|
/* f034f40: 30590001 */ andi $t9,$v0,0x1
|
|
/* f034f44: 44999000 */ mtc1 $t9,$f18
|
|
/* f034f48: 3c013f80 */ lui $at,0x3f80
|
|
/* f034f4c: 44813000 */ mtc1 $at,$f6
|
|
/* f034f50: 46809220 */ cvt.s.w $f8,$f18
|
|
/* f034f54: 46083280 */ add.s $f10,$f6,$f8
|
|
/* f034f58: 460aa502 */ mul.s $f20,$f20,$f10
|
|
/* f034f5c: 00000000 */ nop
|
|
/* f034f60: 8fa8014c */ lw $t0,0x14c($sp)
|
|
.L0f034f64:
|
|
/* f034f64: 5100000b */ beqzl $t0,.L0f034f94
|
|
/* f034f68: 8fab0158 */ lw $t3,0x158($sp)
|
|
/* f034f6c: 91090000 */ lbu $t1,0x0($t0)
|
|
/* f034f70: 24010016 */ addiu $at,$zero,0x16
|
|
/* f034f74: 15210006 */ bne $t1,$at,.L0f034f90
|
|
/* f034f78: 3c014120 */ lui $at,0x4120
|
|
/* f034f7c: 44818000 */ mtc1 $at,$f16
|
|
/* f034f80: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f034f84: afaa0158 */ sw $t2,0x158($sp)
|
|
/* f034f88: 4610a502 */ mul.s $f20,$f20,$f16
|
|
/* f034f8c: 00000000 */ nop
|
|
.L0f034f90:
|
|
/* f034f90: 8fab0158 */ lw $t3,0x158($sp)
|
|
.L0f034f94:
|
|
/* f034f94: 5160006b */ beqzl $t3,.L0f035144
|
|
/* f034f98: 44804000 */ mtc1 $zero,$f8
|
|
/* f034f9c: 0fc0cfe8 */ jal chrGetShield
|
|
/* f034fa0: 02002025 */ or $a0,$s0,$zero
|
|
/* f034fa4: 8e0202d4 */ lw $v0,0x2d4($s0)
|
|
/* f034fa8: 44809000 */ mtc1 $zero,$f18
|
|
/* f034fac: 46000086 */ mov.s $f2,$f0
|
|
/* f034fb0: 10400009 */ beqz $v0,.L0f034fd8
|
|
/* f034fb4: 3c0e800a */ lui $t6,%hi(g_Vars+0x318)
|
|
/* f034fb8: 8c4c0004 */ lw $t4,0x4($v0)
|
|
/* f034fbc: 2401000b */ addiu $at,$zero,0xb
|
|
/* f034fc0: 918d0047 */ lbu $t5,0x47($t4)
|
|
/* f034fc4: 15a10004 */ bne $t5,$at,.L0f034fd8
|
|
/* f034fc8: 3c014080 */ lui $at,0x4080
|
|
/* f034fcc: 44812000 */ mtc1 $at,$f4
|
|
/* f034fd0: 00000000 */ nop
|
|
/* f034fd4: e7a40108 */ swc1 $f4,0x108($sp)
|
|
.L0f034fd8:
|
|
/* f034fd8: 4600903c */ c.lt.s $f18,$f0
|
|
/* f034fdc: 00000000 */ nop
|
|
/* f034fe0: 45020058 */ bc1fl .L0f035144
|
|
/* f034fe4: 44804000 */ mtc1 $zero,$f8
|
|
/* f034fe8: 8dcea2d8 */ lw $t6,%lo(g_Vars+0x318)($t6)
|
|
/* f034fec: 3c18800a */ lui $t8,%hi(g_Vars+0x288)
|
|
/* f034ff0: 51c0000e */ beqzl $t6,.L0f03502c
|
|
/* f034ff4: 8e080018 */ lw $t0,0x18($s0)
|
|
/* f034ff8: 8f18a248 */ lw $t8,%lo(g_Vars+0x288)($t8)
|
|
/* f034ffc: 3c04800b */ lui $a0,%hi(g_MpPlayers+0x9d)
|
|
/* f035000: 8f0f0070 */ lw $t7,0x70($t8)
|
|
/* f035004: e7a20134 */ swc1 $f2,0x134($sp)
|
|
/* f035008: 000fc880 */ sll $t9,$t7,0x2
|
|
/* f03500c: 032fc821 */ addu $t9,$t9,$t7
|
|
/* f035010: 0019c940 */ sll $t9,$t9,0x5
|
|
/* f035014: 00992021 */ addu $a0,$a0,$t9
|
|
/* f035018: 0fc61ddc */ jal func0f187770
|
|
/* f03501c: 9084c855 */ lbu $a0,%lo(g_MpPlayers+0x9d)($a0)
|
|
/* f035020: c7a20134 */ lwc1 $f2,0x134($sp)
|
|
/* f035024: 4600a503 */ div.s $f20,$f20,$f0
|
|
/* f035028: 8e080018 */ lw $t0,0x18($s0)
|
|
.L0f03502c:
|
|
/* f03502c: 8fa6015c */ lw $a2,0x15c($sp)
|
|
/* f035030: 3c010200 */ lui $at,0x200
|
|
/* f035034: 01014825 */ or $t1,$t0,$at
|
|
/* f035038: 10c00010 */ beqz $a2,.L0f03507c
|
|
/* f03503c: ae090018 */ sw $t1,0x18($s0)
|
|
/* f035040: 8fa50160 */ lw $a1,0x160($sp)
|
|
/* f035044: 50a0000e */ beqzl $a1,.L0f035080
|
|
/* f035048: 02002025 */ or $a0,$s0,$zero
|
|
/* f03504c: 8e0a0020 */ lw $t2,0x20($s0)
|
|
/* f035050: 02002025 */ or $a0,$s0,$zero
|
|
/* f035054: 8fa70164 */ lw $a3,0x164($sp)
|
|
/* f035058: 11400008 */ beqz $t2,.L0f03507c
|
|
/* f03505c: 8fab0168 */ lw $t3,0x168($sp)
|
|
/* f035060: 8fac016c */ lw $t4,0x16c($sp)
|
|
/* f035064: afab0010 */ sw $t3,0x10($sp)
|
|
/* f035068: e7a20134 */ swc1 $f2,0x134($sp)
|
|
/* f03506c: 0fc0d020 */ jal func0f034080
|
|
/* f035070: afac0014 */ sw $t4,0x14($sp)
|
|
/* f035074: 1000000d */ b .L0f0350ac
|
|
/* f035078: c7a20134 */ lwc1 $f2,0x134($sp)
|
|
.L0f03507c:
|
|
/* f03507c: 02002025 */ or $a0,$s0,$zero
|
|
.L0f035080:
|
|
/* f035080: 0fc0cfe8 */ jal chrGetShield
|
|
/* f035084: e7a20134 */ swc1 $f2,0x134($sp)
|
|
/* f035088: 8e04001c */ lw $a0,0x1c($s0)
|
|
/* f03508c: 44050000 */ mfc1 $a1,$f0
|
|
/* f035090: afa00018 */ sw $zero,0x18($sp)
|
|
/* f035094: afa00014 */ sw $zero,0x14($sp)
|
|
/* f035098: afa00010 */ sw $zero,0x10($sp)
|
|
/* f03509c: 00003025 */ or $a2,$zero,$zero
|
|
/* f0350a0: 0fc0a3df */ jal func0f028f7c
|
|
/* f0350a4: 00003825 */ or $a3,$zero,$zero
|
|
/* f0350a8: c7a20134 */ lwc1 $f2,0x134($sp)
|
|
.L0f0350ac:
|
|
/* f0350ac: 3c0d800a */ lui $t5,%hi(g_Vars+0x318)
|
|
/* f0350b0: 8dada2d8 */ lw $t5,%lo(g_Vars+0x318)($t5)
|
|
/* f0350b4: 3c0e800b */ lui $t6,%hi(g_MpSetup+0xc)
|
|
/* f0350b8: c7a60108 */ lwc1 $f6,0x108($sp)
|
|
/* f0350bc: 51a0000c */ beqzl $t5,.L0f0350f0
|
|
/* f0350c0: 4606a003 */ div.s $f0,$f20,$f6
|
|
/* f0350c4: 8dcecb94 */ lw $t6,%lo(g_MpSetup+0xc)($t6)
|
|
/* f0350c8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0350cc: 31d80001 */ andi $t8,$t6,0x1
|
|
/* f0350d0: 53000007 */ beqzl $t8,.L0f0350f0
|
|
/* f0350d4: 4606a003 */ div.s $f0,$f20,$f6
|
|
/* f0350d8: 4480a000 */ mtc1 $zero,$f20
|
|
/* f0350dc: 0fc0cfea */ jal chrSetShield
|
|
/* f0350e0: 24050000 */ addiu $a1,$zero,0x0
|
|
/* f0350e4: 10000013 */ b .L0f035134
|
|
/* f0350e8: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f0350ec: 4606a003 */ div.s $f0,$f20,$f6
|
|
.L0f0350f0:
|
|
/* f0350f0: 02002025 */ or $a0,$s0,$zero
|
|
/* f0350f4: 4602003e */ c.le.s $f0,$f2
|
|
/* f0350f8: 00000000 */ nop
|
|
/* f0350fc: 4502000a */ bc1fl .L0f035128
|
|
/* f035100: 4480a000 */ mtc1 $zero,$f20
|
|
/* f035104: 46001081 */ sub.s $f2,$f2,$f0
|
|
/* f035108: 4480a000 */ mtc1 $zero,$f20
|
|
/* f03510c: 02002025 */ or $a0,$s0,$zero
|
|
/* f035110: 44051000 */ mfc1 $a1,$f2
|
|
/* f035114: 0fc0cfea */ jal chrSetShield
|
|
/* f035118: 00000000 */ nop
|
|
/* f03511c: 10000005 */ b .L0f035134
|
|
/* f035120: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f035124: 4480a000 */ mtc1 $zero,$f20
|
|
.L0f035128:
|
|
/* f035128: 0fc0cfea */ jal chrSetShield
|
|
/* f03512c: 24050000 */ addiu $a1,$zero,0x0
|
|
/* f035130: 240f0001 */ addiu $t7,$zero,0x1
|
|
.L0f035134:
|
|
/* f035134: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f035138: afaf011c */ sw $t7,0x11c($sp)
|
|
/* f03513c: afb90120 */ sw $t9,0x120($sp)
|
|
/* f035140: 44804000 */ mtc1 $zero,$f8
|
|
.L0f035144:
|
|
/* f035144: 8fa80154 */ lw $t0,0x154($sp)
|
|
/* f035148: 2401006e */ addiu $at,$zero,0x6e
|
|
/* f03514c: 4614403c */ c.lt.s $f8,$f20
|
|
/* f035150: 00000000 */ nop
|
|
/* f035154: 45000038 */ bc1f .L0f035238
|
|
/* f035158: 00000000 */ nop
|
|
/* f03515c: 15010036 */ bne $t0,$at,.L0f035238
|
|
/* f035160: 00000000 */ nop
|
|
/* f035164: 8e040178 */ lw $a0,0x178($s0)
|
|
/* f035168: 10800033 */ beqz $a0,.L0f035238
|
|
/* f03516c: 00000000 */ nop
|
|
/* f035170: 0fc22f3d */ jal func0f08bcf4
|
|
/* f035174: 00000000 */ nop
|
|
/* f035178: 24010005 */ addiu $at,$zero,0x5
|
|
/* f03517c: 14410003 */ bne $v0,$at,.L0f03518c
|
|
/* f035180: 24090008 */ addiu $t1,$zero,0x8
|
|
/* f035184: 1000002c */ b .L0f035238
|
|
/* f035188: afa90154 */ sw $t1,0x154($sp)
|
|
.L0f03518c:
|
|
/* f03518c: 4480a000 */ mtc1 $zero,$f20
|
|
/* f035190: 24010003 */ addiu $at,$zero,0x3
|
|
/* f035194: 10410008 */ beq $v0,$at,.L0f0351b8
|
|
/* f035198: 3c0d8007 */ lui $t5,%hi(var80068268)
|
|
/* f03519c: 8e040178 */ lw $a0,0x178($s0)
|
|
/* f0351a0: 0fc20a59 */ jal propobjSetDropped
|
|
/* f0351a4: 24050004 */ addiu $a1,$zero,0x4
|
|
/* f0351a8: 8e0a0014 */ lw $t2,0x14($s0)
|
|
/* f0351ac: 354b0001 */ ori $t3,$t2,0x1
|
|
/* f0351b0: 10000021 */ b .L0f035238
|
|
/* f0351b4: ae0b0014 */ sw $t3,0x14($s0)
|
|
.L0f0351b8:
|
|
/* f0351b8: 25ad8268 */ addiu $t5,$t5,%lo(var80068268)
|
|
/* f0351bc: 8da10000 */ lw $at,0x0($t5)
|
|
/* f0351c0: 27ac00c0 */ addiu $t4,$sp,0xc0
|
|
/* f0351c4: ad810000 */ sw $at,0x0($t4)
|
|
/* f0351c8: 95a10004 */ lhu $at,0x4($t5)
|
|
/* f0351cc: 0c004b70 */ jal random
|
|
/* f0351d0: a5810004 */ sh $at,0x4($t4)
|
|
/* f0351d4: 3c01bf80 */ lui $at,0xbf80
|
|
/* f0351d8: 44810000 */ mtc1 $at,$f0
|
|
/* f0351dc: 24010003 */ addiu $at,$zero,0x3
|
|
/* f0351e0: 0041001b */ divu $zero,$v0,$at
|
|
/* f0351e4: 00007810 */ mfhi $t7
|
|
/* f0351e8: 000fc840 */ sll $t9,$t7,0x1
|
|
/* f0351ec: 03b93021 */ addu $a2,$sp,$t9
|
|
/* f0351f0: 84c600c0 */ lh $a2,0xc0($a2)
|
|
/* f0351f4: 8e05001c */ lw $a1,0x1c($s0)
|
|
/* f0351f8: 2408ffff */ addiu $t0,$zero,-1
|
|
/* f0351fc: 2409ffff */ addiu $t1,$zero,-1
|
|
/* f035200: afa9002c */ sw $t1,0x2c($sp)
|
|
/* f035204: afa80010 */ sw $t0,0x10($sp)
|
|
/* f035208: afa00028 */ sw $zero,0x28($sp)
|
|
/* f03520c: afa00020 */ sw $zero,0x20($sp)
|
|
/* f035210: afa0001c */ sw $zero,0x1c($sp)
|
|
/* f035214: afa00018 */ sw $zero,0x18($sp)
|
|
/* f035218: afa00014 */ sw $zero,0x14($sp)
|
|
/* f03521c: 00002025 */ or $a0,$zero,$zero
|
|
/* f035220: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f035224: e7a00038 */ swc1 $f0,0x38($sp)
|
|
/* f035228: e7a00034 */ swc1 $f0,0x34($sp)
|
|
/* f03522c: e7a00030 */ swc1 $f0,0x30($sp)
|
|
/* f035230: 0fc24e7e */ jal func0f0939f8
|
|
/* f035234: e7a00024 */ swc1 $f0,0x24($sp)
|
|
.L0f035238:
|
|
/* f035238: 52200051 */ beqzl $s1,.L0f035380
|
|
/* f03523c: 8e0e0018 */ lw $t6,0x18($s0)
|
|
/* f035240: 922a0000 */ lbu $t2,0x0($s1)
|
|
/* f035244: 24010006 */ addiu $at,$zero,0x6
|
|
/* f035248: 8fab0170 */ lw $t3,0x170($sp)
|
|
/* f03524c: 5541004c */ bnel $t2,$at,.L0f035380
|
|
/* f035250: 8e0e0018 */ lw $t6,0x18($s0)
|
|
/* f035254: 15600049 */ bnez $t3,.L0f03537c
|
|
/* f035258: 3c0e800a */ lui $t6,%hi(g_Vars+0x28c)
|
|
/* f03525c: 8dcea24c */ lw $t6,%lo(g_Vars+0x28c)($t6)
|
|
/* f035260: afa000bc */ sw $zero,0xbc($sp)
|
|
/* f035264: 02202025 */ or $a0,$s1,$zero
|
|
/* f035268: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f03526c: afae00b8 */ sw $t6,0xb8($sp)
|
|
/* f035270: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f035274: 00402025 */ or $a0,$v0,$zero
|
|
/* f035278: 52000008 */ beqzl $s0,.L0f03529c
|
|
/* f03527c: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f035280: 820c0007 */ lb $t4,0x7($s0)
|
|
/* f035284: 24010005 */ addiu $at,$zero,0x5
|
|
/* f035288: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f03528c: 55810003 */ bnel $t4,$at,.L0f03529c
|
|
/* f035290: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f035294: afad00bc */ sw $t5,0xbc($sp)
|
|
/* f035298: 8fb80128 */ lw $t8,0x128($sp)
|
|
.L0f03529c:
|
|
/* f03529c: 24010006 */ addiu $at,$zero,0x6
|
|
/* f0352a0: 930f0000 */ lbu $t7,0x0($t8)
|
|
/* f0352a4: 55e1000d */ bnel $t7,$at,.L0f0352dc
|
|
/* f0352a8: 8fab00bc */ lw $t3,0xbc($sp)
|
|
/* f0352ac: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f0352b0: 03002025 */ or $a0,$t8,$zero
|
|
/* f0352b4: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f0352b8: 3c08800a */ lui $t0,%hi(g_Vars+0x64)
|
|
/* f0352bc: 01194021 */ addu $t0,$t0,$t9
|
|
/* f0352c0: 8d08a024 */ lw $t0,%lo(g_Vars+0x64)($t0)
|
|
/* f0352c4: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f0352c8: 8d0900d8 */ lw $t1,0xd8($t0)
|
|
/* f0352cc: 51200003 */ beqzl $t1,.L0f0352dc
|
|
/* f0352d0: 8fab00bc */ lw $t3,0xbc($sp)
|
|
/* f0352d4: afaa00bc */ sw $t2,0xbc($sp)
|
|
/* f0352d8: 8fab00bc */ lw $t3,0xbc($sp)
|
|
.L0f0352dc:
|
|
/* f0352dc: 8fa20154 */ lw $v0,0x154($sp)
|
|
/* f0352e0: 15600024 */ bnez $t3,.L0f035374
|
|
/* f0352e4: 00000000 */ nop
|
|
/* f0352e8: 10400022 */ beqz $v0,.L0f035374
|
|
/* f0352ec: 24010007 */ addiu $at,$zero,0x7
|
|
/* f0352f0: 1041001a */ beq $v0,$at,.L0f03535c
|
|
/* f0352f4: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0352f8: 24010008 */ addiu $at,$zero,0x8
|
|
/* f0352fc: 1041000b */ beq $v0,$at,.L0f03532c
|
|
/* f035300: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f035304: 2401000f */ addiu $at,$zero,0xf
|
|
/* f035308: 10410014 */ beq $v0,$at,.L0f03535c
|
|
/* f03530c: 24010064 */ addiu $at,$zero,0x64
|
|
/* f035310: 1041000a */ beq $v0,$at,.L0f03533c
|
|
/* f035314: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f035318: 2401006e */ addiu $at,$zero,0x6e
|
|
/* f03531c: 1041000b */ beq $v0,$at,.L0f03534c
|
|
/* f035320: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f035324: 10000011 */ b .L0f03536c
|
|
/* f035328: 8fa4014c */ lw $a0,0x14c($sp)
|
|
.L0f03532c:
|
|
/* f03532c: 0fc2c11b */ jal mpstatsIncrementPlayerShotCount2
|
|
/* f035330: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f035334: 1000000f */ b .L0f035374
|
|
/* f035338: 00000000 */ nop
|
|
.L0f03533c:
|
|
/* f03533c: 0fc2c11b */ jal mpstatsIncrementPlayerShotCount2
|
|
/* f035340: 24050004 */ addiu $a1,$zero,0x4
|
|
/* f035344: 1000000b */ b .L0f035374
|
|
/* f035348: 00000000 */ nop
|
|
.L0f03534c:
|
|
/* f03534c: 0fc2c11b */ jal mpstatsIncrementPlayerShotCount2
|
|
/* f035350: 24050005 */ addiu $a1,$zero,0x5
|
|
/* f035354: 10000007 */ b .L0f035374
|
|
/* f035358: 00000000 */ nop
|
|
.L0f03535c:
|
|
/* f03535c: 0fc2c11b */ jal mpstatsIncrementPlayerShotCount2
|
|
/* f035360: 24050002 */ addiu $a1,$zero,0x2
|
|
/* f035364: 10000003 */ b .L0f035374
|
|
/* f035368: 00000000 */ nop
|
|
.L0f03536c:
|
|
/* f03536c: 0fc2c11b */ jal mpstatsIncrementPlayerShotCount2
|
|
/* f035370: 24050003 */ addiu $a1,$zero,0x3
|
|
.L0f035374:
|
|
/* f035374: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f035378: 8fa400b8 */ lw $a0,0xb8($sp)
|
|
.L0f03537c:
|
|
/* f03537c: 8e0e0018 */ lw $t6,0x18($s0)
|
|
.L0f035380:
|
|
/* f035380: 31cc0010 */ andi $t4,$t6,0x10
|
|
/* f035384: 51800006 */ beqzl $t4,.L0f0353a0
|
|
/* f035388: 82020007 */ lb $v0,0x7($s0)
|
|
/* f03538c: 0fc084cf */ jal func0f02133c
|
|
/* f035390: 02002025 */ or $a0,$s0,$zero
|
|
/* f035394: 100003eb */ b .L0f036344
|
|
/* f035398: 8fbf0054 */ lw $ra,0x54($sp)
|
|
/* f03539c: 82020007 */ lb $v0,0x7($s0)
|
|
.L0f0353a0:
|
|
/* f0353a0: 24030004 */ addiu $v1,$zero,0x4
|
|
/* f0353a4: 24010005 */ addiu $at,$zero,0x5
|
|
/* f0353a8: 10620003 */ beq $v1,$v0,.L0f0353b8
|
|
/* f0353ac: 8fad0154 */ lw $t5,0x154($sp)
|
|
/* f0353b0: 14410020 */ bne $v0,$at,.L0f035434
|
|
/* f0353b4: 8fa80128 */ lw $t0,0x128($sp)
|
|
.L0f0353b8:
|
|
/* f0353b8: 24010008 */ addiu $at,$zero,0x8
|
|
/* f0353bc: 55a103e1 */ bnel $t5,$at,.L0f036344
|
|
/* f0353c0: 8fbf0054 */ lw $ra,0x54($sp)
|
|
/* f0353c4: 146203de */ bne $v1,$v0,.L0f036340
|
|
/* f0353c8: 8faf0138 */ lw $t7,0x138($sp)
|
|
/* f0353cc: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0353d0: 11e103db */ beq $t7,$at,.L0f036340
|
|
/* f0353d4: 8fb80104 */ lw $t8,0x104($sp)
|
|
/* f0353d8: 130003d9 */ beqz $t8,.L0f036340
|
|
/* f0353dc: 8fa20148 */ lw $v0,0x148($sp)
|
|
/* f0353e0: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0353e4: c4500000 */ lwc1 $f16,0x0($v0)
|
|
/* f0353e8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0353ec: c72a0008 */ lwc1 $f10,0x8($t9)
|
|
/* f0353f0: 27a500ac */ addiu $a1,$sp,0xac
|
|
/* f0353f4: 46105101 */ sub.s $f4,$f10,$f16
|
|
/* f0353f8: e7a400ac */ swc1 $f4,0xac($sp)
|
|
/* f0353fc: c4460004 */ lwc1 $f6,0x4($v0)
|
|
/* f035400: c732000c */ lwc1 $f18,0xc($t9)
|
|
/* f035404: 46069201 */ sub.s $f8,$f18,$f6
|
|
/* f035408: e7a800b0 */ swc1 $f8,0xb0($sp)
|
|
/* f03540c: c4500008 */ lwc1 $f16,0x8($v0)
|
|
/* f035410: c72a0010 */ lwc1 $f10,0x10($t9)
|
|
/* f035414: 46105101 */ sub.s $f4,$f10,$f16
|
|
/* f035418: 0fc122a1 */ jal chrGetAngleToPos
|
|
/* f03541c: e7a400b4 */ swc1 $f4,0xb4($sp)
|
|
/* f035420: 44050000 */ mfc1 $a1,$f0
|
|
/* f035424: 0fc084e8 */ jal chrDoFlinchcntThing
|
|
/* f035428: 02002025 */ or $a0,$s0,$zero
|
|
/* f03542c: 100003c5 */ b .L0f036344
|
|
/* f035430: 8fbf0054 */ lw $ra,0x54($sp)
|
|
.L0f035434:
|
|
/* f035434: 8fa20148 */ lw $v0,0x148($sp)
|
|
/* f035438: c5120008 */ lwc1 $f18,0x8($t0)
|
|
/* f03543c: 02002025 */ or $a0,$s0,$zero
|
|
/* f035440: c4460000 */ lwc1 $f6,0x0($v0)
|
|
/* f035444: 27a5009c */ addiu $a1,$sp,0x9c
|
|
/* f035448: 46069201 */ sub.s $f8,$f18,$f6
|
|
/* f03544c: e7a8009c */ swc1 $f8,0x9c($sp)
|
|
/* f035450: c50a000c */ lwc1 $f10,0xc($t0)
|
|
/* f035454: c4500004 */ lwc1 $f16,0x4($v0)
|
|
/* f035458: 46105101 */ sub.s $f4,$f10,$f16
|
|
/* f03545c: e7a400a0 */ swc1 $f4,0xa0($sp)
|
|
/* f035460: c5120010 */ lwc1 $f18,0x10($t0)
|
|
/* f035464: c4460008 */ lwc1 $f6,0x8($v0)
|
|
/* f035468: 46069201 */ sub.s $f8,$f18,$f6
|
|
/* f03546c: 0fc122a1 */ jal chrGetAngleToPos
|
|
/* f035470: e7a800a4 */ swc1 $f8,0xa4($sp)
|
|
/* f035474: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f035478: e7a00098 */ swc1 $f0,0x98($sp)
|
|
/* f03547c: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f035480: 90890000 */ lbu $t1,0x0($a0)
|
|
/* f035484: 1521001b */ bne $t1,$at,.L0f0354f4
|
|
/* f035488: 00000000 */ nop
|
|
/* f03548c: 908a0003 */ lbu $t2,0x3($a0)
|
|
/* f035490: 3c017f1b */ lui $at,%hi(var7f1a8d70)
|
|
/* f035494: 15400017 */ bnez $t2,.L0f0354f4
|
|
/* f035498: 00000000 */ nop
|
|
/* f03549c: c42a8d70 */ lwc1 $f10,%lo(var7f1a8d70)($at)
|
|
/* f0354a0: 3c017f1b */ lui $at,%hi(var7f1a8d74)
|
|
/* f0354a4: 4600503c */ c.lt.s $f10,$f0
|
|
/* f0354a8: 00000000 */ nop
|
|
/* f0354ac: 45000011 */ bc1f .L0f0354f4
|
|
/* f0354b0: 00000000 */ nop
|
|
/* f0354b4: c4308d74 */ lwc1 $f16,%lo(var7f1a8d74)($at)
|
|
/* f0354b8: 4610003c */ c.lt.s $f0,$f16
|
|
/* f0354bc: 00000000 */ nop
|
|
/* f0354c0: 4500000c */ bc1f .L0f0354f4
|
|
/* f0354c4: 00000000 */ nop
|
|
/* f0354c8: 920b0113 */ lbu $t3,0x113($s0)
|
|
/* f0354cc: 29610064 */ slti $at,$t3,0x64
|
|
/* f0354d0: 54200004 */ bnezl $at,.L0f0354e4
|
|
/* f0354d4: 3c01447a */ lui $at,0x447a
|
|
/* f0354d8: 8e0e00e0 */ lw $t6,0xe0($s0)
|
|
/* f0354dc: 15c00005 */ bnez $t6,.L0f0354f4
|
|
/* f0354e0: 3c01447a */ lui $at,0x447a
|
|
.L0f0354e4:
|
|
/* f0354e4: 44812000 */ mtc1 $at,$f4
|
|
/* f0354e8: 00000000 */ nop
|
|
/* f0354ec: 4604a502 */ mul.s $f20,$f20,$f4
|
|
/* f0354f0: 00000000 */ nop
|
|
.L0f0354f4:
|
|
/* f0354f4: 0fc2c7aa */ jal handHasFunctionFlags
|
|
/* f0354f8: 34058000 */ dli $a1,0x8000
|
|
/* f0354fc: 1040003e */ beqz $v0,.L0f0355f8
|
|
/* f035500: c7a00098 */ lwc1 $f0,0x98($sp)
|
|
/* f035504: 3c017f1b */ lui $at,%hi(var7f1a8d78)
|
|
/* f035508: c4328d78 */ lwc1 $f18,%lo(var7f1a8d78)($at)
|
|
/* f03550c: 3c017f1b */ lui $at,%hi(var7f1a8d7c)
|
|
/* f035510: 02002025 */ or $a0,$s0,$zero
|
|
/* f035514: 4612003c */ c.lt.s $f0,$f18
|
|
/* f035518: 00000000 */ nop
|
|
/* f03551c: 45010007 */ bc1t .L0f03553c
|
|
/* f035520: 00000000 */ nop
|
|
/* f035524: c4268d7c */ lwc1 $f6,%lo(var7f1a8d7c)($at)
|
|
/* f035528: 3c017f1b */ lui $at,%hi(var7f1a8d80)
|
|
/* f03552c: 4600303c */ c.lt.s $f6,$f0
|
|
/* f035530: 00000000 */ nop
|
|
/* f035534: 45000006 */ bc1f .L0f035550
|
|
/* f035538: 00000000 */ nop
|
|
.L0f03553c:
|
|
/* f03553c: 3c017f1b */ lui $at,%hi(var7f1a8d84)
|
|
/* f035540: c4288d80 */ lwc1 $f8,%lo(var7f1a8d80)($at)
|
|
/* f035544: 4608a502 */ mul.s $f20,$f20,$f8
|
|
/* f035548: 10000016 */ b .L0f0355a4
|
|
/* f03554c: 00000000 */ nop
|
|
.L0f035550:
|
|
/* f035550: c42a8d84 */ lwc1 $f10,%lo(var7f1a8d84)($at)
|
|
/* f035554: 3c017f1b */ lui $at,%hi(var7f1a8d88)
|
|
/* f035558: 460a003c */ c.lt.s $f0,$f10
|
|
/* f03555c: 00000000 */ nop
|
|
/* f035560: 45010005 */ bc1t .L0f035578
|
|
/* f035564: 00000000 */ nop
|
|
/* f035568: c4308d88 */ lwc1 $f16,%lo(var7f1a8d88)($at)
|
|
/* f03556c: 4600803c */ c.lt.s $f16,$f0
|
|
/* f035570: 00000000 */ nop
|
|
/* f035574: 45000005 */ bc1f .L0f03558c
|
|
.L0f035578:
|
|
/* f035578: 3c017f1b */ lui $at,%hi(var7f1a8d8c)
|
|
/* f03557c: c4248d8c */ lwc1 $f4,%lo(var7f1a8d8c)($at)
|
|
/* f035580: 4604a502 */ mul.s $f20,$f20,$f4
|
|
/* f035584: 10000007 */ b .L0f0355a4
|
|
/* f035588: 00000000 */ nop
|
|
.L0f03558c:
|
|
/* f03558c: 920c0113 */ lbu $t4,0x113($s0)
|
|
/* f035590: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f035594: 29810064 */ slti $at,$t4,0x64
|
|
/* f035598: 10200002 */ beqz $at,.L0f0355a4
|
|
/* f03559c: 00000000 */ nop
|
|
/* f0355a0: afad013c */ sw $t5,0x13c($sp)
|
|
.L0f0355a4:
|
|
/* f0355a4: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f0355a8: 00002825 */ or $a1,$zero,$zero
|
|
/* f0355ac: 14400010 */ bnez $v0,.L0f0355f0
|
|
/* f0355b0: 02002025 */ or $a0,$s0,$zero
|
|
/* f0355b4: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f0355b8: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f0355bc: 5440000d */ bnezl $v0,.L0f0355f4
|
|
/* f0355c0: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f0355c4: 8e0f0300 */ lw $t7,0x300($s0)
|
|
/* f0355c8: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f0355cc: 51e00008 */ beqzl $t7,.L0f0355f0
|
|
/* f0355d0: afb8013c */ sw $t8,0x13c($sp)
|
|
/* f0355d4: 82020007 */ lb $v0,0x7($s0)
|
|
/* f0355d8: 24010010 */ addiu $at,$zero,0x10
|
|
/* f0355dc: 10410003 */ beq $v0,$at,.L0f0355ec
|
|
/* f0355e0: 24010012 */ addiu $at,$zero,0x12
|
|
/* f0355e4: 54410003 */ bnel $v0,$at,.L0f0355f4
|
|
/* f0355e8: 24190001 */ addiu $t9,$zero,0x1
|
|
.L0f0355ec:
|
|
/* f0355ec: afb8013c */ sw $t8,0x13c($sp)
|
|
.L0f0355f0:
|
|
/* f0355f0: 24190001 */ addiu $t9,$zero,0x1
|
|
.L0f0355f4:
|
|
/* f0355f4: afb90100 */ sw $t9,0x100($sp)
|
|
.L0f0355f8:
|
|
/* f0355f8: 8fa80154 */ lw $t0,0x154($sp)
|
|
/* f0355fc: 240100c8 */ addiu $at,$zero,0xc8
|
|
/* f035600: 8faa0154 */ lw $t2,0x154($sp)
|
|
/* f035604: 15010007 */ bne $t0,$at,.L0f035624
|
|
/* f035608: 3c013f00 */ lui $at,0x3f00
|
|
/* f03560c: 44819000 */ mtc1 $at,$f18
|
|
/* f035610: 2409000f */ addiu $t1,$zero,0xf
|
|
/* f035614: afa90154 */ sw $t1,0x154($sp)
|
|
/* f035618: 4612a502 */ mul.s $f20,$f20,$f18
|
|
/* f03561c: 1000000a */ b .L0f035648
|
|
/* f035620: 8fae0138 */ lw $t6,0x138($sp)
|
|
.L0f035624:
|
|
/* f035624: 240100c9 */ addiu $at,$zero,0xc9
|
|
/* f035628: 15410006 */ bne $t2,$at,.L0f035644
|
|
/* f03562c: 3c013e80 */ lui $at,0x3e80
|
|
/* f035630: 44813000 */ mtc1 $at,$f6
|
|
/* f035634: 240b000f */ addiu $t3,$zero,0xf
|
|
/* f035638: afab0154 */ sw $t3,0x154($sp)
|
|
/* f03563c: 4606a502 */ mul.s $f20,$f20,$f6
|
|
/* f035640: 00000000 */ nop
|
|
.L0f035644:
|
|
/* f035644: 8fae0138 */ lw $t6,0x138($sp)
|
|
.L0f035648:
|
|
/* f035648: 24010001 */ addiu $at,$zero,0x1
|
|
/* f03564c: 8fac0154 */ lw $t4,0x154($sp)
|
|
/* f035650: 15c10008 */ bne $t6,$at,.L0f035674
|
|
/* f035654: 8fad0154 */ lw $t5,0x154($sp)
|
|
/* f035658: 24010010 */ addiu $at,$zero,0x10
|
|
/* f03565c: 15810005 */ bne $t4,$at,.L0f035674
|
|
/* f035660: 3c014120 */ lui $at,0x4120
|
|
/* f035664: 44814000 */ mtc1 $at,$f8
|
|
/* f035668: 00000000 */ nop
|
|
/* f03566c: 4608a502 */ mul.s $f20,$f20,$f8
|
|
/* f035670: 00000000 */ nop
|
|
.L0f035674:
|
|
/* f035674: 24010008 */ addiu $at,$zero,0x8
|
|
/* f035678: 15a10022 */ bne $t5,$at,.L0f035704
|
|
/* f03567c: 8fab0154 */ lw $t3,0x154($sp)
|
|
/* f035680: 8faf0138 */ lw $t7,0x138($sp)
|
|
/* f035684: 24010001 */ addiu $at,$zero,0x1
|
|
/* f035688: 02002025 */ or $a0,$s0,$zero
|
|
/* f03568c: 15e10005 */ bne $t7,$at,.L0f0356a4
|
|
/* f035690: 8fa50098 */ lw $a1,0x98($sp)
|
|
/* f035694: 0fc084e8 */ jal chrDoFlinchcntThing
|
|
/* f035698: 4614a500 */ add.s $f20,$f20,$f20
|
|
/* f03569c: 1000002a */ b .L0f035748
|
|
/* f0356a0: 8fad0128 */ lw $t5,0x128($sp)
|
|
.L0f0356a4:
|
|
/* f0356a4: 3c014080 */ lui $at,0x4080
|
|
/* f0356a8: 44815000 */ mtc1 $at,$f10
|
|
/* f0356ac: 8fb80104 */ lw $t8,0x104($sp)
|
|
/* f0356b0: 8fb90120 */ lw $t9,0x120($sp)
|
|
/* f0356b4: 460aa502 */ mul.s $f20,$f20,$f10
|
|
/* f0356b8: 53000023 */ beqzl $t8,.L0f035748
|
|
/* f0356bc: 8fad0128 */ lw $t5,0x128($sp)
|
|
/* f0356c0: 17200020 */ bnez $t9,.L0f035744
|
|
/* f0356c4: 02002025 */ or $a0,$s0,$zero
|
|
/* f0356c8: 0fc084e8 */ jal chrDoFlinchcntThing
|
|
/* f0356cc: 8fa50098 */ lw $a1,0x98($sp)
|
|
/* f0356d0: 8fa8014c */ lw $t0,0x14c($sp)
|
|
/* f0356d4: c7b00124 */ lwc1 $f16,0x124($sp)
|
|
/* f0356d8: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f0356dc: 91090000 */ lbu $t1,0x0($t0)
|
|
/* f0356e0: 4610a502 */ mul.s $f20,$f20,$f16
|
|
/* f0356e4: 55210018 */ bnel $t1,$at,.L0f035748
|
|
/* f0356e8: 8fad0128 */ lw $t5,0x128($sp)
|
|
/* f0356ec: 910a0003 */ lbu $t2,0x3($t0)
|
|
/* f0356f0: 24010003 */ addiu $at,$zero,0x3
|
|
/* f0356f4: 51410014 */ beql $t2,$at,.L0f035748
|
|
/* f0356f8: 8fad0128 */ lw $t5,0x128($sp)
|
|
/* f0356fc: 10000011 */ b .L0f035744
|
|
/* f035700: 4614a500 */ add.s $f20,$f20,$f20
|
|
.L0f035704:
|
|
/* f035704: 2401000f */ addiu $at,$zero,0xf
|
|
/* f035708: 15610003 */ bne $t3,$at,.L0f035718
|
|
/* f03570c: 8fae0154 */ lw $t6,0x154($sp)
|
|
/* f035710: 1000000c */ b .L0f035744
|
|
/* f035714: 4614a500 */ add.s $f20,$f20,$f20
|
|
.L0f035718:
|
|
/* f035718: 24010064 */ addiu $at,$zero,0x64
|
|
/* f03571c: 15c10004 */ bne $t6,$at,.L0f035730
|
|
/* f035720: 8fac0154 */ lw $t4,0x154($sp)
|
|
/* f035724: 4480a000 */ mtc1 $zero,$f20
|
|
/* f035728: 10000006 */ b .L0f035744
|
|
/* f03572c: afa00130 */ sw $zero,0x130($sp)
|
|
.L0f035730:
|
|
/* f035730: 2401006e */ addiu $at,$zero,0x6e
|
|
/* f035734: 55810004 */ bnel $t4,$at,.L0f035748
|
|
/* f035738: 8fad0128 */ lw $t5,0x128($sp)
|
|
/* f03573c: 4480a000 */ mtc1 $zero,$f20
|
|
/* f035740: afa00130 */ sw $zero,0x130($sp)
|
|
.L0f035744:
|
|
/* f035744: 8fad0128 */ lw $t5,0x128($sp)
|
|
.L0f035748:
|
|
/* f035748: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03574c: 3c18800a */ lui $t8,%hi(g_Vars+0x28c)
|
|
/* f035750: 91af0000 */ lbu $t7,0x0($t5)
|
|
/* f035754: 55e100f7 */ bnel $t7,$at,.L0f035b34
|
|
/* f035758: 82020007 */ lb $v0,0x7($s0)
|
|
/* f03575c: 8f18a24c */ lw $t8,%lo(g_Vars+0x28c)($t8)
|
|
/* f035760: 01a02025 */ or $a0,$t5,$zero
|
|
/* f035764: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f035768: afb80094 */ sw $t8,0x94($sp)
|
|
/* f03576c: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f035770: 00402025 */ or $a0,$v0,$zero
|
|
/* f035774: 3c19800a */ lui $t9,%hi(g_Vars+0x318)
|
|
/* f035778: 8f39a2d8 */ lw $t9,%lo(g_Vars+0x318)($t9)
|
|
/* f03577c: 3c09800a */ lui $t1,%hi(g_Vars+0x288)
|
|
/* f035780: 1320000b */ beqz $t9,.L0f0357b0
|
|
/* f035784: 00000000 */ nop
|
|
/* f035788: 8d29a248 */ lw $t1,%lo(g_Vars+0x288)($t1)
|
|
/* f03578c: 3c04800b */ lui $a0,%hi(g_MpPlayers+0x9d)
|
|
/* f035790: 8d280070 */ lw $t0,0x70($t1)
|
|
/* f035794: 00085080 */ sll $t2,$t0,0x2
|
|
/* f035798: 01485021 */ addu $t2,$t2,$t0
|
|
/* f03579c: 000a5140 */ sll $t2,$t2,0x5
|
|
/* f0357a0: 008a2021 */ addu $a0,$a0,$t2
|
|
/* f0357a4: 0fc61ddc */ jal func0f187770
|
|
/* f0357a8: 9084c855 */ lbu $a0,%lo(g_MpPlayers+0x9d)($a0)
|
|
/* f0357ac: 4600a503 */ div.s $f20,$f20,$f0
|
|
.L0f0357b0:
|
|
/* f0357b0: 3c0b800a */ lui $t3,%hi(g_Vars+0x284)
|
|
/* f0357b4: 8d6ba244 */ lw $t3,%lo(g_Vars+0x284)($t3)
|
|
/* f0357b8: 3c0c8007 */ lui $t4,%hi(g_PlayerInvincible)
|
|
/* f0357bc: 8d6e00d8 */ lw $t6,0xd8($t3)
|
|
/* f0357c0: 15c000d7 */ bnez $t6,.L0f035b20
|
|
/* f0357c4: 00000000 */ nop
|
|
/* f0357c8: 8d8c0760 */ lw $t4,%lo(g_PlayerInvincible)($t4)
|
|
/* f0357cc: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0357d0: 158000d3 */ bnez $t4,.L0f035b20
|
|
/* f0357d4: 00000000 */ nop
|
|
/* f0357d8: 0fc2c7aa */ jal handHasFunctionFlags
|
|
/* f0357dc: 24050400 */ addiu $a1,$zero,0x400
|
|
/* f0357e0: 50400004 */ beqzl $v0,.L0f0357f4
|
|
/* f0357e4: 8faf0130 */ lw $t7,0x130($sp)
|
|
/* f0357e8: 0fc28ab9 */ jal currentPlayerLoseGunInNbombStorm
|
|
/* f0357ec: 02202025 */ or $a0,$s1,$zero
|
|
/* f0357f0: 8faf0130 */ lw $t7,0x130($sp)
|
|
.L0f0357f4:
|
|
/* f0357f4: 3c18800a */ lui $t8,%hi(g_Vars+0x284)
|
|
/* f0357f8: 11e00032 */ beqz $t7,.L0f0358c4
|
|
/* f0357fc: 00000000 */ nop
|
|
/* f035800: 8f18a244 */ lw $t8,%lo(g_Vars+0x284)($t8)
|
|
/* f035804: 3c013f80 */ lui $at,0x3f80
|
|
/* f035808: 930d1922 */ lbu $t5,0x1922($t8)
|
|
/* f03580c: 15a0002d */ bnez $t5,.L0f0358c4
|
|
/* f035810: 00000000 */ nop
|
|
/* f035814: 44810000 */ mtc1 $at,$f0
|
|
/* f035818: 1220000a */ beqz $s1,.L0f035844
|
|
/* f03581c: 00001025 */ or $v0,$zero,$zero
|
|
/* f035820: 8e220004 */ lw $v0,0x4($s1)
|
|
/* f035824: 10400007 */ beqz $v0,.L0f035844
|
|
/* f035828: 00000000 */ nop
|
|
/* f03582c: 84590010 */ lh $t9,0x10($v0)
|
|
/* f035830: 2401007b */ addiu $at,$zero,0x7b
|
|
/* f035834: 17210003 */ bne $t9,$at,.L0f035844
|
|
/* f035838: 3c014080 */ lui $at,0x4080
|
|
/* f03583c: 44810000 */ mtc1 $at,$f0
|
|
/* f035840: 00000000 */ nop
|
|
.L0f035844:
|
|
/* f035844: 5040000f */ beqzl $v0,.L0f035884
|
|
/* f035848: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f03584c: 8c4902d4 */ lw $t1,0x2d4($v0)
|
|
/* f035850: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f035854: 3c050040 */ lui $a1,0x40
|
|
/* f035858: 5120000a */ beqzl $t1,.L0f035884
|
|
/* f03585c: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f035860: 0fc2c7aa */ jal handHasFunctionFlags
|
|
/* f035864: e7a0008c */ swc1 $f0,0x8c($sp)
|
|
/* f035868: 10400005 */ beqz $v0,.L0f035880
|
|
/* f03586c: c7a0008c */ lwc1 $f0,0x8c($sp)
|
|
/* f035870: 860802d8 */ lh $t0,0x2d8($s0)
|
|
/* f035874: 29011194 */ slti $at,$t0,0x1194
|
|
/* f035878: 50200012 */ beqzl $at,.L0f0358c4
|
|
/* f03587c: a20002ff */ sb $zero,0x2ff($s0)
|
|
.L0f035880:
|
|
/* f035880: 8fa4014c */ lw $a0,0x14c($sp)
|
|
.L0f035884:
|
|
/* f035884: 0fc0cd95 */ jal func0f033654
|
|
/* f035888: e7a0008c */ swc1 $f0,0x8c($sp)
|
|
/* f03588c: 44823000 */ mtc1 $v0,$f6
|
|
/* f035890: 860a02d8 */ lh $t2,0x2d8($s0)
|
|
/* f035894: c7a0008c */ lwc1 $f0,0x8c($sp)
|
|
/* f035898: 46803220 */ cvt.s.w $f8,$f6
|
|
/* f03589c: 448a2000 */ mtc1 $t2,$f4
|
|
/* f0358a0: 00000000 */ nop
|
|
/* f0358a4: 468024a0 */ cvt.s.w $f18,$f4
|
|
/* f0358a8: 46004282 */ mul.s $f10,$f8,$f0
|
|
/* f0358ac: 460a9400 */ add.s $f16,$f18,$f10
|
|
/* f0358b0: 4600810d */ trunc.w.s $f4,$f16
|
|
/* f0358b4: 440e2000 */ mfc1 $t6,$f4
|
|
/* f0358b8: 00000000 */ nop
|
|
/* f0358bc: a60e02d8 */ sh $t6,0x2d8($s0)
|
|
/* f0358c0: a20002ff */ sb $zero,0x2ff($s0)
|
|
.L0f0358c4:
|
|
/* f0358c4: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
|
/* f0358c8: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
|
/* f0358cc: 904c1922 */ lbu $t4,0x1922($v0)
|
|
/* f0358d0: 55800059 */ bnezl $t4,.L0f035a38
|
|
/* f0358d4: 8fb9012c */ lw $t9,0x12c($sp)
|
|
/* f0358d8: 44803000 */ mtc1 $zero,$f6
|
|
/* f0358dc: 3c013e00 */ lui $at,0x3e00
|
|
/* f0358e0: 3c0f800a */ lui $t7,%hi(g_Vars+0x318)
|
|
/* f0358e4: 4614303c */ c.lt.s $f6,$f20
|
|
/* f0358e8: 02202025 */ or $a0,$s1,$zero
|
|
/* f0358ec: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f0358f0: 45020051 */ bc1fl .L0f035a38
|
|
/* f0358f4: 8fb9012c */ lw $t9,0x12c($sp)
|
|
/* f0358f8: 44814000 */ mtc1 $at,$f8
|
|
/* f0358fc: c44000dc */ lwc1 $f0,0xdc($v0)
|
|
/* f035900: 4608a302 */ mul.s $f12,$f20,$f8
|
|
/* f035904: 460c003c */ c.lt.s $f0,$f12
|
|
/* f035908: 46006086 */ mov.s $f2,$f12
|
|
/* f03590c: 45000002 */ bc1f .L0f035918
|
|
/* f035910: 00000000 */ nop
|
|
/* f035914: 46000086 */ mov.s $f2,$f0
|
|
.L0f035918:
|
|
/* f035918: 8defa2d8 */ lw $t7,%lo(g_Vars+0x318)($t7)
|
|
/* f03591c: 3c18800b */ lui $t8,%hi(g_MpSetup+0xc)
|
|
/* f035920: 51e00007 */ beqzl $t7,.L0f035940
|
|
/* f035924: 44061000 */ mfc1 $a2,$f2
|
|
/* f035928: 8f18cb94 */ lw $t8,%lo(g_MpSetup+0xc)($t8)
|
|
/* f03592c: 330d0001 */ andi $t5,$t8,0x1
|
|
/* f035930: 51a00003 */ beqzl $t5,.L0f035940
|
|
/* f035934: 44061000 */ mfc1 $a2,$f2
|
|
/* f035938: 46000086 */ mov.s $f2,$f0
|
|
/* f03593c: 44061000 */ mfc1 $a2,$f2
|
|
.L0f035940:
|
|
/* f035940: 0fc0d120 */ jal playerUpdateDamageStats
|
|
/* f035944: e7ac005c */ swc1 $f12,0x5c($sp)
|
|
/* f035948: 0fc2eda7 */ jal func0f0bb69c
|
|
/* f03594c: 00000000 */ nop
|
|
/* f035950: 3c19800a */ lui $t9,%hi(g_Vars+0x318)
|
|
/* f035954: 8f39a2d8 */ lw $t9,%lo(g_Vars+0x318)($t9)
|
|
/* f035958: c7ac005c */ lwc1 $f12,0x5c($sp)
|
|
/* f03595c: 3c09800b */ lui $t1,%hi(g_MpSetup+0xc)
|
|
/* f035960: 5320000a */ beqzl $t9,.L0f03598c
|
|
/* f035964: c7b0010c */ lwc1 $f16,0x10c($sp)
|
|
/* f035968: 8d29cb94 */ lw $t1,%lo(g_MpSetup+0xc)($t1)
|
|
/* f03596c: 3c0a800a */ lui $t2,%hi(g_Vars+0x284)
|
|
/* f035970: 31280001 */ andi $t0,$t1,0x1
|
|
/* f035974: 51000005 */ beqzl $t0,.L0f03598c
|
|
/* f035978: c7b0010c */ lwc1 $f16,0x10c($sp)
|
|
/* f03597c: 44809000 */ mtc1 $zero,$f18
|
|
/* f035980: 8d4aa244 */ lw $t2,%lo(g_Vars+0x284)($t2)
|
|
/* f035984: e55200dc */ swc1 $f18,0xdc($t2)
|
|
/* f035988: c7b0010c */ lwc1 $f16,0x10c($sp)
|
|
.L0f03598c:
|
|
/* f03598c: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
|
/* f035990: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
|
/* f035994: 46106103 */ div.s $f4,$f12,$f16
|
|
/* f035998: c44a00dc */ lwc1 $f10,0xdc($v0)
|
|
/* f03599c: 46045181 */ sub.s $f6,$f10,$f4
|
|
/* f0359a0: 12200004 */ beqz $s1,.L0f0359b4
|
|
/* f0359a4: e44600dc */ swc1 $f6,0xdc($v0)
|
|
/* f0359a8: 8e2b0004 */ lw $t3,0x4($s1)
|
|
/* f0359ac: 10000002 */ b .L0f0359b8
|
|
/* f0359b0: ae0b0350 */ sw $t3,0x350($s0)
|
|
.L0f0359b4:
|
|
/* f0359b4: ae000350 */ sw $zero,0x350($s0)
|
|
.L0f0359b8:
|
|
/* f0359b8: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
|
/* f0359bc: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
|
/* f0359c0: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0359c4: afae0118 */ sw $t6,0x118($sp)
|
|
/* f0359c8: 8c4c1c08 */ lw $t4,0x1c08($v0)
|
|
/* f0359cc: 1580000d */ bnez $t4,.L0f035a04
|
|
/* f0359d0: 00000000 */ nop
|
|
/* f0359d4: 44804000 */ mtc1 $zero,$f8
|
|
/* f0359d8: c45200dc */ lwc1 $f18,0xdc($v0)
|
|
/* f0359dc: 8fa400f0 */ lw $a0,0xf0($sp)
|
|
/* f0359e0: 4608903e */ c.le.s $f18,$f8
|
|
/* f0359e4: 00000000 */ nop
|
|
/* f0359e8: 45000006 */ bc1f .L0f035a04
|
|
/* f0359ec: 00000000 */ nop
|
|
/* f0359f0: 0fc30501 */ jal currentPlayerDieByShooter
|
|
/* f0359f4: 00002825 */ or $a1,$zero,$zero
|
|
/* f0359f8: 920f02ff */ lbu $t7,0x2ff($s0)
|
|
/* f0359fc: 25f80001 */ addiu $t8,$t7,0x1
|
|
/* f035a00: a21802ff */ sb $t8,0x2ff($s0)
|
|
.L0f035a04:
|
|
/* f035a04: 0fc5b364 */ jal coreIsPaused
|
|
/* f035a08: 00000000 */ nop
|
|
/* f035a0c: 14400005 */ bnez $v0,.L0f035a24
|
|
/* f035a10: 8fad00f4 */ lw $t5,0xf4($sp)
|
|
/* f035a14: 11a00003 */ beqz $t5,.L0f035a24
|
|
/* f035a18: 02002025 */ or $a0,$s0,$zero
|
|
/* f035a1c: 0fc0ce38 */ jal func0f0338e0
|
|
/* f035a20: 8fa500ec */ lw $a1,0xec($sp)
|
|
.L0f035a24:
|
|
/* f035a24: 0fc084cf */ jal func0f02133c
|
|
/* f035a28: 02002025 */ or $a0,$s0,$zero
|
|
/* f035a2c: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
|
/* f035a30: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
|
/* f035a34: 8fb9012c */ lw $t9,0x12c($sp)
|
|
.L0f035a38:
|
|
/* f035a38: 8fa9014c */ lw $t1,0x14c($sp)
|
|
/* f035a3c: 3c0a800a */ lui $t2,%hi(g_Vars+0x318)
|
|
/* f035a40: 13200007 */ beqz $t9,.L0f035a60
|
|
/* f035a44: 8fa30148 */ lw $v1,0x148($sp)
|
|
/* f035a48: 91280000 */ lbu $t0,0x0($t1)
|
|
/* f035a4c: 24010014 */ addiu $at,$zero,0x14
|
|
/* f035a50: 15010003 */ bne $t0,$at,.L0f035a60
|
|
/* f035a54: 3c017f1b */ lui $at,%hi(var7f1a8d90)
|
|
/* f035a58: 1000000b */ b .L0f035a88
|
|
/* f035a5c: c4208d90 */ lwc1 $f0,%lo(var7f1a8d90)($at)
|
|
.L0f035a60:
|
|
/* f035a60: 8d4aa2d8 */ lw $t2,%lo(g_Vars+0x318)($t2)
|
|
/* f035a64: 3c013f80 */ lui $at,0x3f80
|
|
/* f035a68: 51400006 */ beqzl $t2,.L0f035a84
|
|
/* f035a6c: 44810000 */ mtc1 $at,$f0
|
|
/* f035a70: 3c013f40 */ lui $at,0x3f40
|
|
/* f035a74: 44810000 */ mtc1 $at,$f0
|
|
/* f035a78: 10000004 */ b .L0f035a8c
|
|
/* f035a7c: c46a0000 */ lwc1 $f10,0x0($v1)
|
|
/* f035a80: 44810000 */ mtc1 $at,$f0
|
|
.L0f035a84:
|
|
/* f035a84: 00000000 */ nop
|
|
.L0f035a88:
|
|
/* f035a88: c46a0000 */ lwc1 $f10,0x0($v1)
|
|
.L0f035a8c:
|
|
/* f035a8c: c450017c */ lwc1 $f16,0x17c($v0)
|
|
/* f035a90: 46005102 */ mul.s $f4,$f10,$f0
|
|
/* f035a94: 46048180 */ add.s $f6,$f16,$f4
|
|
/* f035a98: e446017c */ swc1 $f6,0x17c($v0)
|
|
/* f035a9c: c4720008 */ lwc1 $f18,0x8($v1)
|
|
/* f035aa0: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
|
/* f035aa4: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
|
/* f035aa8: 46009282 */ mul.s $f10,$f18,$f0
|
|
/* f035aac: c4480184 */ lwc1 $f8,0x184($v0)
|
|
/* f035ab0: 460a4400 */ add.s $f16,$f8,$f10
|
|
/* f035ab4: e4500184 */ swc1 $f16,0x184($v0)
|
|
/* f035ab8: 8fab0118 */ lw $t3,0x118($sp)
|
|
/* f035abc: 51600005 */ beqzl $t3,.L0f035ad4
|
|
/* f035ac0: 8fae011c */ lw $t6,0x11c($sp)
|
|
/* f035ac4: 0fc2efc5 */ jal func0f0bbf14
|
|
/* f035ac8: 00000000 */ nop
|
|
/* f035acc: 8fa30148 */ lw $v1,0x148($sp)
|
|
/* f035ad0: 8fae011c */ lw $t6,0x11c($sp)
|
|
.L0f035ad4:
|
|
/* f035ad4: 11c00004 */ beqz $t6,.L0f035ae8
|
|
/* f035ad8: 00000000 */ nop
|
|
/* f035adc: 0fc30033 */ jal currentPlayerUpdateShieldShow
|
|
/* f035ae0: 00000000 */ nop
|
|
/* f035ae4: 8fa30148 */ lw $v1,0x148($sp)
|
|
.L0f035ae8:
|
|
/* f035ae8: 3c0c800a */ lui $t4,%hi(g_Vars+0x318)
|
|
/* f035aec: 8d8ca2d8 */ lw $t4,%lo(g_Vars+0x318)($t4)
|
|
/* f035af0: 1180000b */ beqz $t4,.L0f035b20
|
|
/* f035af4: 00000000 */ nop
|
|
/* f035af8: 12200009 */ beqz $s1,.L0f035b20
|
|
/* f035afc: 00000000 */ nop
|
|
/* f035b00: 922f0000 */ lbu $t7,0x0($s1)
|
|
/* f035b04: 24010006 */ addiu $at,$zero,0x6
|
|
/* f035b08: 8fa40094 */ lw $a0,0x94($sp)
|
|
/* f035b0c: 15e10004 */ bne $t7,$at,.L0f035b20
|
|
/* f035b10: 00000000 */ nop
|
|
/* f035b14: 8c650000 */ lw $a1,0x0($v1)
|
|
/* f035b18: 0fc30583 */ jal currentPlayerCheckIfShotInBack
|
|
/* f035b1c: 8c660008 */ lw $a2,0x8($v1)
|
|
.L0f035b20:
|
|
/* f035b20: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f035b24: 8fa40094 */ lw $a0,0x94($sp)
|
|
/* f035b28: 10000206 */ b .L0f036344
|
|
/* f035b2c: 8fbf0054 */ lw $ra,0x54($sp)
|
|
/* f035b30: 82020007 */ lb $v0,0x7($s0)
|
|
.L0f035b34:
|
|
/* f035b34: 24010004 */ addiu $at,$zero,0x4
|
|
/* f035b38: 10410201 */ beq $v0,$at,.L0f036340
|
|
/* f035b3c: 24010005 */ addiu $at,$zero,0x5
|
|
/* f035b40: 104101ff */ beq $v0,$at,.L0f036340
|
|
/* f035b44: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f035b48: 0fc2c7aa */ jal handHasFunctionFlags
|
|
/* f035b4c: 24050400 */ addiu $a1,$zero,0x400
|
|
/* f035b50: 50400027 */ beqzl $v0,.L0f035bf0
|
|
/* f035b54: c6040100 */ lwc1 $f4,0x100($s0)
|
|
/* f035b58: 8e180114 */ lw $t8,0x114($s0)
|
|
/* f035b5c: 00186800 */ sll $t5,$t8,0x0
|
|
/* f035b60: 05a20005 */ bltzl $t5,.L0f035b78
|
|
/* f035b64: 8e0902d4 */ lw $t1,0x2d4($s0)
|
|
/* f035b68: 8e1902d4 */ lw $t9,0x2d4($s0)
|
|
/* f035b6c: 53200020 */ beqzl $t9,.L0f035bf0
|
|
/* f035b70: c6040100 */ lwc1 $f4,0x100($s0)
|
|
/* f035b74: 8e0902d4 */ lw $t1,0x2d4($s0)
|
|
.L0f035b78:
|
|
/* f035b78: 02202825 */ or $a1,$s1,$zero
|
|
/* f035b7c: 02002025 */ or $a0,$s0,$zero
|
|
/* f035b80: 11200005 */ beqz $t1,.L0f035b98
|
|
/* f035b84: 00000000 */ nop
|
|
/* f035b88: 0fc6498a */ jal func0f192628
|
|
/* f035b8c: 02002025 */ or $a0,$s0,$zero
|
|
/* f035b90: 10000017 */ b .L0f035bf0
|
|
/* f035b94: c6040100 */ lwc1 $f4,0x100($s0)
|
|
.L0f035b98:
|
|
/* f035b98: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f035b9c: 00002825 */ or $a1,$zero,$zero
|
|
/* f035ba0: 10400007 */ beqz $v0,.L0f035bc0
|
|
/* f035ba4: 00402025 */ or $a0,$v0,$zero
|
|
/* f035ba8: ae020300 */ sw $v0,0x300($s0)
|
|
/* f035bac: 0fc20a59 */ jal propobjSetDropped
|
|
/* f035bb0: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f035bb4: 8e080014 */ lw $t0,0x14($s0)
|
|
/* f035bb8: 350a0001 */ ori $t2,$t0,0x1
|
|
/* f035bbc: ae0a0014 */ sw $t2,0x14($s0)
|
|
.L0f035bc0:
|
|
/* f035bc0: 02002025 */ or $a0,$s0,$zero
|
|
/* f035bc4: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f035bc8: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f035bcc: 10400007 */ beqz $v0,.L0f035bec
|
|
/* f035bd0: 00402025 */ or $a0,$v0,$zero
|
|
/* f035bd4: ae020300 */ sw $v0,0x300($s0)
|
|
/* f035bd8: 0fc20a59 */ jal propobjSetDropped
|
|
/* f035bdc: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f035be0: 8e0b0014 */ lw $t3,0x14($s0)
|
|
/* f035be4: 356e0001 */ ori $t6,$t3,0x1
|
|
/* f035be8: ae0e0014 */ sw $t6,0x14($s0)
|
|
.L0f035bec:
|
|
/* f035bec: c6040100 */ lwc1 $f4,0x100($s0)
|
|
.L0f035bf0:
|
|
/* f035bf0: c6060104 */ lwc1 $f6,0x104($s0)
|
|
/* f035bf4: 3c0c800a */ lui $t4,%hi(g_Vars+0x318)
|
|
/* f035bf8: 4606203c */ c.lt.s $f4,$f6
|
|
/* f035bfc: 00000000 */ nop
|
|
/* f035c00: 45030009 */ bc1tl .L0f035c28
|
|
/* f035c04: 44809000 */ mtc1 $zero,$f18
|
|
/* f035c08: 8d8ca2d8 */ lw $t4,%lo(g_Vars+0x318)($t4)
|
|
/* f035c0c: 558001cd */ bnezl $t4,.L0f036344
|
|
/* f035c10: 8fbf0054 */ lw $ra,0x54($sp)
|
|
/* f035c14: 820f0007 */ lb $t7,0x7($s0)
|
|
/* f035c18: 24010007 */ addiu $at,$zero,0x7
|
|
/* f035c1c: 51e101c9 */ beql $t7,$at,.L0f036344
|
|
/* f035c20: 8fbf0054 */ lw $ra,0x54($sp)
|
|
/* f035c24: 44809000 */ mtc1 $zero,$f18
|
|
.L0f035c28:
|
|
/* f035c28: 00000000 */ nop
|
|
/* f035c2c: e7b20080 */ swc1 $f18,0x80($sp)
|
|
/* f035c30: 8218000b */ lb $t8,0xb($s0)
|
|
/* f035c34: 270d0001 */ addiu $t5,$t8,0x1
|
|
/* f035c38: a20d000b */ sb $t5,0xb($s0)
|
|
/* f035c3c: 8fb90130 */ lw $t9,0x130($sp)
|
|
/* f035c40: 8fa9005c */ lw $t1,0x5c($sp)
|
|
/* f035c44: 5320001e */ beqzl $t9,.L0f035cc0
|
|
/* f035c48: 8e0202d4 */ lw $v0,0x2d4($s0)
|
|
/* f035c4c: 1120001b */ beqz $t1,.L0f035cbc
|
|
/* f035c50: 8fa80138 */ lw $t0,0x138($sp)
|
|
/* f035c54: 24010004 */ addiu $at,$zero,0x4
|
|
/* f035c58: 11010018 */ beq $t0,$at,.L0f035cbc
|
|
/* f035c5c: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f035c60: 0fc2c7aa */ jal handHasFunctionFlags
|
|
/* f035c64: 3c050020 */ lui $a1,0x20
|
|
/* f035c68: 10400006 */ beqz $v0,.L0f035c84
|
|
/* f035c6c: 00000000 */ nop
|
|
/* f035c70: 8e0a0014 */ lw $t2,0x14($s0)
|
|
/* f035c74: 3c018000 */ lui $at,0x8000
|
|
/* f035c78: 01415825 */ or $t3,$t2,$at
|
|
/* f035c7c: 1000000f */ b .L0f035cbc
|
|
/* f035c80: ae0b0014 */ sw $t3,0x14($s0)
|
|
.L0f035c84:
|
|
/* f035c84: 0fc0cd95 */ jal func0f033654
|
|
/* f035c88: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f035c8c: 860e02d8 */ lh $t6,0x2d8($s0)
|
|
/* f035c90: 8e0f02d4 */ lw $t7,0x2d4($s0)
|
|
/* f035c94: a20002ff */ sb $zero,0x2ff($s0)
|
|
/* f035c98: 01c26021 */ addu $t4,$t6,$v0
|
|
/* f035c9c: 15e00007 */ bnez $t7,.L0f035cbc
|
|
/* f035ca0: a60c02d8 */ sh $t4,0x2d8($s0)
|
|
/* f035ca4: 861802d8 */ lh $t8,0x2d8($s0)
|
|
/* f035ca8: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f035cac: 2b011388 */ slti $at,$t8,0x1388
|
|
/* f035cb0: 54200003 */ bnezl $at,.L0f035cc0
|
|
/* f035cb4: 8e0202d4 */ lw $v0,0x2d4($s0)
|
|
/* f035cb8: afad013c */ sw $t5,0x13c($sp)
|
|
.L0f035cbc:
|
|
/* f035cbc: 8e0202d4 */ lw $v0,0x2d4($s0)
|
|
.L0f035cc0:
|
|
/* f035cc0: 8fb9012c */ lw $t9,0x12c($sp)
|
|
/* f035cc4: 8faa0148 */ lw $t2,0x148($sp)
|
|
/* f035cc8: 10400018 */ beqz $v0,.L0f035d2c
|
|
/* f035ccc: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f035cd0: 13200007 */ beqz $t9,.L0f035cf0
|
|
/* f035cd4: 8fa9014c */ lw $t1,0x14c($sp)
|
|
/* f035cd8: 91280000 */ lbu $t0,0x0($t1)
|
|
/* f035cdc: 24010014 */ addiu $at,$zero,0x14
|
|
/* f035ce0: 15010003 */ bne $t0,$at,.L0f035cf0
|
|
/* f035ce4: 3c017f1b */ lui $at,%hi(var7f1a8d94)
|
|
/* f035ce8: 10000004 */ b .L0f035cfc
|
|
/* f035cec: c4208d94 */ lwc1 $f0,%lo(var7f1a8d94)($at)
|
|
.L0f035cf0:
|
|
/* f035cf0: 3c013f40 */ lui $at,0x3f40
|
|
/* f035cf4: 44810000 */ mtc1 $at,$f0
|
|
/* f035cf8: 00000000 */ nop
|
|
.L0f035cfc:
|
|
/* f035cfc: c54a0000 */ lwc1 $f10,0x0($t2)
|
|
/* f035d00: c4480108 */ lwc1 $f8,0x108($v0)
|
|
/* f035d04: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f035d08: 46104100 */ add.s $f4,$f8,$f16
|
|
/* f035d0c: e4440108 */ swc1 $f4,0x108($v0)
|
|
/* f035d10: 8fab0148 */ lw $t3,0x148($sp)
|
|
/* f035d14: 8e0202d4 */ lw $v0,0x2d4($s0)
|
|
/* f035d18: c5720008 */ lwc1 $f18,0x8($t3)
|
|
/* f035d1c: c4460110 */ lwc1 $f6,0x110($v0)
|
|
/* f035d20: 46009282 */ mul.s $f10,$f18,$f0
|
|
/* f035d24: 460a3200 */ add.s $f8,$f6,$f10
|
|
/* f035d28: e4480110 */ swc1 $f8,0x110($v0)
|
|
.L0f035d2c:
|
|
/* f035d2c: 8fae014c */ lw $t6,0x14c($sp)
|
|
/* f035d30: 24010001 */ addiu $at,$zero,0x1
|
|
/* f035d34: 91c20000 */ lbu $v0,0x0($t6)
|
|
/* f035d38: 14410004 */ bne $v0,$at,.L0f035d4c
|
|
/* f035d3c: 3c014000 */ lui $at,0x4000
|
|
/* f035d40: 44818000 */ mtc1 $at,$f16
|
|
/* f035d44: 00000000 */ nop
|
|
/* f035d48: e7b00080 */ swc1 $f16,0x80($sp)
|
|
.L0f035d4c:
|
|
/* f035d4c: 2401001c */ addiu $at,$zero,0x1c
|
|
/* f035d50: 10410003 */ beq $v0,$at,.L0f035d60
|
|
/* f035d54: 2401002c */ addiu $at,$zero,0x2c
|
|
/* f035d58: 54410003 */ bnel $v0,$at,.L0f035d68
|
|
/* f035d5c: 8faf013c */ lw $t7,0x13c($sp)
|
|
.L0f035d60:
|
|
/* f035d60: afac0100 */ sw $t4,0x100($sp)
|
|
/* f035d64: 8faf013c */ lw $t7,0x13c($sp)
|
|
.L0f035d68:
|
|
/* f035d68: 51e00021 */ beqzl $t7,.L0f035df0
|
|
/* f035d6c: 44802000 */ mtc1 $zero,$f4
|
|
/* f035d70: 8e1802d4 */ lw $t8,0x2d4($s0)
|
|
/* f035d74: 8fad0138 */ lw $t5,0x138($sp)
|
|
/* f035d78: 5700001d */ bnezl $t8,.L0f035df0
|
|
/* f035d7c: 44802000 */ mtc1 $zero,$f4
|
|
/* f035d80: 15a0001a */ bnez $t5,.L0f035dec
|
|
/* f035d84: 02002025 */ or $a0,$s0,$zero
|
|
/* f035d88: 8fa50098 */ lw $a1,0x98($sp)
|
|
/* f035d8c: 8fa60154 */ lw $a2,0x154($sp)
|
|
/* f035d90: 0fc0cdaa */ jal func0f0336a8
|
|
/* f035d94: 8fa7014c */ lw $a3,0x14c($sp)
|
|
/* f035d98: 8e04001c */ lw $a0,0x1c($s0)
|
|
/* f035d9c: 24050009 */ addiu $a1,$zero,0x9
|
|
/* f035da0: 0fc249af */ jal func0f0926bc
|
|
/* f035da4: 00003025 */ or $a2,$zero,$zero
|
|
/* f035da8: 8fb900f4 */ lw $t9,0xf4($sp)
|
|
/* f035dac: 02002025 */ or $a0,$s0,$zero
|
|
/* f035db0: 53200004 */ beqzl $t9,.L0f035dc4
|
|
/* f035db4: 8fa9014c */ lw $t1,0x14c($sp)
|
|
/* f035db8: 0fc0ce38 */ jal func0f0338e0
|
|
/* f035dbc: 8fa500ec */ lw $a1,0xec($sp)
|
|
/* f035dc0: 8fa9014c */ lw $t1,0x14c($sp)
|
|
.L0f035dc4:
|
|
/* f035dc4: 24010001 */ addiu $at,$zero,0x1
|
|
/* f035dc8: 91280000 */ lbu $t0,0x0($t1)
|
|
/* f035dcc: 5501015d */ bnel $t0,$at,.L0f036344
|
|
/* f035dd0: 8fbf0054 */ lw $ra,0x54($sp)
|
|
/* f035dd4: 820a0007 */ lb $t2,0x7($s0)
|
|
/* f035dd8: 2401001f */ addiu $at,$zero,0x1f
|
|
/* f035ddc: 51410159 */ beql $t2,$at,.L0f036344
|
|
/* f035de0: 8fbf0054 */ lw $ra,0x54($sp)
|
|
/* f035de4: 10000157 */ b .L0f036344
|
|
/* f035de8: 8fbf0054 */ lw $ra,0x54($sp)
|
|
.L0f035dec:
|
|
/* f035dec: 44802000 */ mtc1 $zero,$f4
|
|
.L0f035df0:
|
|
/* f035df0: 3c0b800a */ lui $t3,%hi(g_Vars+0x318)
|
|
/* f035df4: 4614203c */ c.lt.s $f4,$f20
|
|
/* f035df8: 00000000 */ nop
|
|
/* f035dfc: 45020151 */ bc1fl .L0f036344
|
|
/* f035e00: 8fbf0054 */ lw $ra,0x54($sp)
|
|
/* f035e04: 8d6ba2d8 */ lw $t3,%lo(g_Vars+0x318)($t3)
|
|
/* f035e08: 8fae0130 */ lw $t6,0x130($sp)
|
|
/* f035e0c: 3c013e00 */ lui $at,0x3e00
|
|
/* f035e10: 55600006 */ bnezl $t3,.L0f035e2c
|
|
/* f035e14: c60c0100 */ lwc1 $f12,0x100($s0)
|
|
/* f035e18: 11c00003 */ beqz $t6,.L0f035e28
|
|
/* f035e1c: 8fac0100 */ lw $t4,0x100($sp)
|
|
/* f035e20: 51800148 */ beqzl $t4,.L0f036344
|
|
/* f035e24: 8fbf0054 */ lw $ra,0x54($sp)
|
|
.L0f035e28:
|
|
/* f035e28: c60c0100 */ lwc1 $f12,0x100($s0)
|
|
.L0f035e2c:
|
|
/* f035e2c: c6000104 */ lwc1 $f0,0x104($s0)
|
|
/* f035e30: 44813000 */ mtc1 $at,$f6
|
|
/* f035e34: 46146480 */ add.s $f18,$f12,$f20
|
|
/* f035e38: 4600a086 */ mov.s $f2,$f20
|
|
/* f035e3c: 4612003c */ c.lt.s $f0,$f18
|
|
/* f035e40: 00000000 */ nop
|
|
/* f035e44: 45000002 */ bc1f .L0f035e50
|
|
/* f035e48: 00000000 */ nop
|
|
/* f035e4c: 460c0081 */ sub.s $f2,$f0,$f12
|
|
.L0f035e50:
|
|
/* f035e50: 46061082 */ mul.s $f2,$f2,$f6
|
|
/* f035e54: 02202025 */ or $a0,$s1,$zero
|
|
/* f035e58: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f035e5c: 44061000 */ mfc1 $a2,$f2
|
|
/* f035e60: 0fc0d120 */ jal playerUpdateDamageStats
|
|
/* f035e64: 00000000 */ nop
|
|
/* f035e68: c60a0100 */ lwc1 $f10,0x100($s0)
|
|
/* f035e6c: 3c09800a */ lui $t1,%hi(g_Vars+0x318)
|
|
/* f035e70: 46145200 */ add.s $f8,$f10,$f20
|
|
/* f035e74: 12200004 */ beqz $s1,.L0f035e88
|
|
/* f035e78: e6080100 */ swc1 $f8,0x100($s0)
|
|
/* f035e7c: 8e2f0004 */ lw $t7,0x4($s1)
|
|
/* f035e80: 10000002 */ b .L0f035e8c
|
|
/* f035e84: ae0f0350 */ sw $t7,0x350($s0)
|
|
.L0f035e88:
|
|
/* f035e88: ae000350 */ sw $zero,0x350($s0)
|
|
.L0f035e8c:
|
|
/* f035e8c: 8e180018 */ lw $t8,0x18($s0)
|
|
/* f035e90: 8e1902d4 */ lw $t9,0x2d4($s0)
|
|
/* f035e94: 370d0100 */ ori $t5,$t8,0x100
|
|
/* f035e98: 1320001e */ beqz $t9,.L0f035f14
|
|
/* f035e9c: ae0d0018 */ sw $t5,0x18($s0)
|
|
/* f035ea0: 8d29a2d8 */ lw $t1,%lo(g_Vars+0x318)($t1)
|
|
/* f035ea4: 3c08800b */ lui $t0,%hi(g_MpSetup+0xc)
|
|
/* f035ea8: 02002025 */ or $a0,$s0,$zero
|
|
/* f035eac: 51200008 */ beqzl $t1,.L0f035ed0
|
|
/* f035eb0: 8fab00f4 */ lw $t3,0xf4($sp)
|
|
/* f035eb4: 8d08cb94 */ lw $t0,%lo(g_MpSetup+0xc)($t0)
|
|
/* f035eb8: 310a0001 */ andi $t2,$t0,0x1
|
|
/* f035ebc: 51400004 */ beqzl $t2,.L0f035ed0
|
|
/* f035ec0: 8fab00f4 */ lw $t3,0xf4($sp)
|
|
/* f035ec4: c6100104 */ lwc1 $f16,0x104($s0)
|
|
/* f035ec8: e6100100 */ swc1 $f16,0x100($s0)
|
|
/* f035ecc: 8fab00f4 */ lw $t3,0xf4($sp)
|
|
.L0f035ed0:
|
|
/* f035ed0: 11600003 */ beqz $t3,.L0f035ee0
|
|
/* f035ed4: 00000000 */ nop
|
|
/* f035ed8: 0fc0ce38 */ jal func0f0338e0
|
|
/* f035edc: 8fa500ec */ lw $a1,0xec($sp)
|
|
.L0f035ee0:
|
|
/* f035ee0: 0fc084cf */ jal func0f02133c
|
|
/* f035ee4: 02002025 */ or $a0,$s0,$zero
|
|
/* f035ee8: c6040100 */ lwc1 $f4,0x100($s0)
|
|
/* f035eec: c6120104 */ lwc1 $f18,0x104($s0)
|
|
/* f035ef0: 02002025 */ or $a0,$s0,$zero
|
|
/* f035ef4: 4604903e */ c.le.s $f18,$f4
|
|
/* f035ef8: 00000000 */ nop
|
|
/* f035efc: 450200e6 */ bc1fl .L0f036298
|
|
/* f035f00: c7a00080 */ lwc1 $f0,0x80($sp)
|
|
/* f035f04: 0fc0d8d6 */ jal chrDie
|
|
/* f035f08: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f035f0c: 100000e2 */ b .L0f036298
|
|
/* f035f10: c7a00080 */ lwc1 $f0,0x80($sp)
|
|
.L0f035f14:
|
|
/* f035f14: 8fae0170 */ lw $t6,0x170($sp)
|
|
/* f035f18: 51c0006d */ beqzl $t6,.L0f0360d0
|
|
/* f035f1c: 820e0007 */ lb $t6,0x7($s0)
|
|
/* f035f20: 44803000 */ mtc1 $zero,$f6
|
|
/* f035f24: c60a0100 */ lwc1 $f10,0x100($s0)
|
|
/* f035f28: 460a303c */ c.lt.s $f6,$f10
|
|
/* f035f2c: 00000000 */ nop
|
|
/* f035f30: 450200d9 */ bc1fl .L0f036298
|
|
/* f035f34: c7a00080 */ lwc1 $f0,0x80($sp)
|
|
/* f035f38: c6080104 */ lwc1 $f8,0x104($s0)
|
|
/* f035f3c: 24010002 */ addiu $at,$zero,0x2
|
|
/* f035f40: 02002025 */ or $a0,$s0,$zero
|
|
/* f035f44: e6080100 */ swc1 $f8,0x100($s0)
|
|
/* f035f48: 8fac0138 */ lw $t4,0x138($sp)
|
|
/* f035f4c: 8fa70154 */ lw $a3,0x154($sp)
|
|
/* f035f50: 8fa60098 */ lw $a2,0x98($sp)
|
|
/* f035f54: 11810006 */ beq $t4,$at,.L0f035f70
|
|
/* f035f58: 8fa50148 */ lw $a1,0x148($sp)
|
|
/* f035f5c: 24010003 */ addiu $at,$zero,0x3
|
|
/* f035f60: 11810003 */ beq $t4,$at,.L0f035f70
|
|
/* f035f64: 24010004 */ addiu $at,$zero,0x4
|
|
/* f035f68: 5581000a */ bnel $t4,$at,.L0f035f94
|
|
/* f035f6c: 02002025 */ or $a0,$s0,$zero
|
|
.L0f035f70:
|
|
/* f035f70: 8faf014c */ lw $t7,0x14c($sp)
|
|
/* f035f74: 8fb800f0 */ lw $t8,0xf0($sp)
|
|
/* f035f78: afa00014 */ sw $zero,0x14($sp)
|
|
/* f035f7c: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f035f80: 0fc0c66a */ jal func0f0319a8
|
|
/* f035f84: afb80018 */ sw $t8,0x18($sp)
|
|
/* f035f88: 10000006 */ b .L0f035fa4
|
|
/* f035f8c: 8fad00f4 */ lw $t5,0xf4($sp)
|
|
/* f035f90: 02002025 */ or $a0,$s0,$zero
|
|
.L0f035f94:
|
|
/* f035f94: 8fa50174 */ lw $a1,0x174($sp)
|
|
/* f035f98: 0fc0cc8f */ jal func0f03323c
|
|
/* f035f9c: 8fa60110 */ lw $a2,0x110($sp)
|
|
/* f035fa0: 8fad00f4 */ lw $t5,0xf4($sp)
|
|
.L0f035fa4:
|
|
/* f035fa4: 02002025 */ or $a0,$s0,$zero
|
|
/* f035fa8: 11a00003 */ beqz $t5,.L0f035fb8
|
|
/* f035fac: 00000000 */ nop
|
|
/* f035fb0: 0fc0ce38 */ jal func0f0338e0
|
|
/* f035fb4: 8fa500ec */ lw $a1,0xec($sp)
|
|
.L0f035fb8:
|
|
/* f035fb8: 3c19800a */ lui $t9,%hi(g_Vars+0x314)
|
|
/* f035fbc: 8f39a2d4 */ lw $t9,%lo(g_Vars+0x314)($t9)
|
|
/* f035fc0: 13200008 */ beqz $t9,.L0f035fe4
|
|
/* f035fc4: 00000000 */ nop
|
|
/* f035fc8: 0fc633fe */ jal mpPlayerGetIndex
|
|
/* f035fcc: 02002025 */ or $a0,$s0,$zero
|
|
/* f035fd0: 8fa400f0 */ lw $a0,0xf0($sp)
|
|
/* f035fd4: 0fc2c27d */ jal mpstatsRecordDeath
|
|
/* f035fd8: 00402825 */ or $a1,$v0,$zero
|
|
/* f035fdc: 10000013 */ b .L0f03602c
|
|
/* f035fe0: 8e0a0018 */ lw $t2,0x18($s0)
|
|
.L0f035fe4:
|
|
/* f035fe4: 52200011 */ beqzl $s1,.L0f03602c
|
|
/* f035fe8: 8e0a0018 */ lw $t2,0x18($s0)
|
|
/* f035fec: 92290000 */ lbu $t1,0x0($s1)
|
|
/* f035ff0: 24010006 */ addiu $at,$zero,0x6
|
|
/* f035ff4: 3c08800a */ lui $t0,%hi(g_Vars+0x28c)
|
|
/* f035ff8: 5521000c */ bnel $t1,$at,.L0f03602c
|
|
/* f035ffc: 8e0a0018 */ lw $t2,0x18($s0)
|
|
/* f036000: 8d08a24c */ lw $t0,%lo(g_Vars+0x28c)($t0)
|
|
/* f036004: 02202025 */ or $a0,$s1,$zero
|
|
/* f036008: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f03600c: afa80074 */ sw $t0,0x74($sp)
|
|
/* f036010: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f036014: 00402025 */ or $a0,$v0,$zero
|
|
/* f036018: 0fc2c169 */ jal mpstatsRecordPlayerKill
|
|
/* f03601c: 00000000 */ nop
|
|
/* f036020: 0fc4a24b */ jal setCurrentPlayerNum
|
|
/* f036024: 8fa40074 */ lw $a0,0x74($sp)
|
|
/* f036028: 8e0a0018 */ lw $t2,0x18($s0)
|
|
.L0f03602c:
|
|
/* f03602c: 000a5ac0 */ sll $t3,$t2,0xb
|
|
/* f036030: 05630004 */ bgezl $t3,.L0f036044
|
|
/* f036034: 8e0202d4 */ lw $v0,0x2d4($s0)
|
|
/* f036038: 0fc2c151 */ jal mpstatsIncrementTotalKillCount
|
|
/* f03603c: 00000000 */ nop
|
|
/* f036040: 8e0202d4 */ lw $v0,0x2d4($s0)
|
|
.L0f036044:
|
|
/* f036044: 14400004 */ bnez $v0,.L0f036058
|
|
/* f036048: 00000000 */ nop
|
|
/* f03604c: 0fc09149 */ jal chrDropItems
|
|
/* f036050: 02002025 */ or $a0,$s0,$zero
|
|
/* f036054: 8e0202d4 */ lw $v0,0x2d4($s0)
|
|
.L0f036058:
|
|
/* f036058: 5440008f */ bnezl $v0,.L0f036298
|
|
/* f03605c: c7a00080 */ lwc1 $f0,0x80($sp)
|
|
/* f036060: 8e040170 */ lw $a0,0x170($s0)
|
|
/* f036064: 5080000c */ beqzl $a0,.L0f036098
|
|
/* f036068: 8e040174 */ lw $a0,0x174($s0)
|
|
/* f03606c: 8c8e0004 */ lw $t6,0x4($a0)
|
|
/* f036070: 8dcc0008 */ lw $t4,0x8($t6)
|
|
/* f036074: 318f2000 */ andi $t7,$t4,0x2000
|
|
/* f036078: 55e00007 */ bnezl $t7,.L0f036098
|
|
/* f03607c: 8e040174 */ lw $a0,0x174($s0)
|
|
/* f036080: 0fc20a59 */ jal propobjSetDropped
|
|
/* f036084: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f036088: 8e180014 */ lw $t8,0x14($s0)
|
|
/* f03608c: 370d0001 */ ori $t5,$t8,0x1
|
|
/* f036090: ae0d0014 */ sw $t5,0x14($s0)
|
|
/* f036094: 8e040174 */ lw $a0,0x174($s0)
|
|
.L0f036098:
|
|
/* f036098: 5080007f */ beqzl $a0,.L0f036298
|
|
/* f03609c: c7a00080 */ lwc1 $f0,0x80($sp)
|
|
/* f0360a0: 8c990004 */ lw $t9,0x4($a0)
|
|
/* f0360a4: 8f290008 */ lw $t1,0x8($t9)
|
|
/* f0360a8: 31282000 */ andi $t0,$t1,0x2000
|
|
/* f0360ac: 5500007a */ bnezl $t0,.L0f036298
|
|
/* f0360b0: c7a00080 */ lwc1 $f0,0x80($sp)
|
|
/* f0360b4: 0fc20a59 */ jal propobjSetDropped
|
|
/* f0360b8: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f0360bc: 8e0a0014 */ lw $t2,0x14($s0)
|
|
/* f0360c0: 354b0001 */ ori $t3,$t2,0x1
|
|
/* f0360c4: 10000073 */ b .L0f036294
|
|
/* f0360c8: ae0b0014 */ sw $t3,0x14($s0)
|
|
/* f0360cc: 820e0007 */ lb $t6,0x7($s0)
|
|
.L0f0360d0:
|
|
/* f0360d0: 2401001f */ addiu $at,$zero,0x1f
|
|
/* f0360d4: 8fac00f4 */ lw $t4,0xf4($sp)
|
|
/* f0360d8: 51c10006 */ beql $t6,$at,.L0f0360f4
|
|
/* f0360dc: 8faf0130 */ lw $t7,0x130($sp)
|
|
/* f0360e0: 11800003 */ beqz $t4,.L0f0360f0
|
|
/* f0360e4: 02002025 */ or $a0,$s0,$zero
|
|
/* f0360e8: 0fc0ce38 */ jal func0f0338e0
|
|
/* f0360ec: 8fa500ec */ lw $a1,0xec($sp)
|
|
.L0f0360f0:
|
|
/* f0360f0: 8faf0130 */ lw $t7,0x130($sp)
|
|
.L0f0360f4:
|
|
/* f0360f4: 51e00011 */ beqzl $t7,.L0f03613c
|
|
/* f0360f8: c6060100 */ lwc1 $f6,0x100($s0)
|
|
/* f0360fc: c6000104 */ lwc1 $f0,0x104($s0)
|
|
/* f036100: c6100100 */ lwc1 $f16,0x100($s0)
|
|
/* f036104: 3c017f1b */ lui $at,%hi(var7f1a8d98)
|
|
/* f036108: 4610003e */ c.le.s $f0,$f16
|
|
/* f03610c: 00000000 */ nop
|
|
/* f036110: 4502000a */ bc1fl .L0f03613c
|
|
/* f036114: c6060100 */ lwc1 $f6,0x100($s0)
|
|
/* f036118: c4248d98 */ lwc1 $f4,%lo(var7f1a8d98)($at)
|
|
/* f03611c: 02002025 */ or $a0,$s0,$zero
|
|
/* f036120: 46040481 */ sub.s $f18,$f0,$f4
|
|
/* f036124: e6120100 */ swc1 $f18,0x100($s0)
|
|
/* f036128: 8fa7014c */ lw $a3,0x14c($sp)
|
|
/* f03612c: 8fa60154 */ lw $a2,0x154($sp)
|
|
/* f036130: 0fc0cdaa */ jal func0f0336a8
|
|
/* f036134: 8fa50098 */ lw $a1,0x98($sp)
|
|
/* f036138: c6060100 */ lwc1 $f6,0x100($s0)
|
|
.L0f03613c:
|
|
/* f03613c: 44805000 */ mtc1 $zero,$f10
|
|
/* f036140: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f036144: 460a303c */ c.lt.s $f6,$f10
|
|
/* f036148: 00000000 */ nop
|
|
/* f03614c: 4503000b */ bc1tl .L0f03617c
|
|
/* f036150: 3c01bf80 */ lui $at,0xbf80
|
|
/* f036154: 0fc2c7aa */ jal handHasFunctionFlags
|
|
/* f036158: 3c050001 */ lui $a1,0x1
|
|
/* f03615c: 10400012 */ beqz $v0,.L0f0361a8
|
|
/* f036160: 8fb80154 */ lw $t8,0x154($sp)
|
|
/* f036164: c6080100 */ lwc1 $f8,0x100($s0)
|
|
/* f036168: c6100104 */ lwc1 $f16,0x104($s0)
|
|
/* f03616c: 4610403c */ c.lt.s $f8,$f16
|
|
/* f036170: 00000000 */ nop
|
|
/* f036174: 4500000c */ bc1f .L0f0361a8
|
|
/* f036178: 3c01bf80 */ lui $at,0xbf80
|
|
.L0f03617c:
|
|
/* f03617c: 44812000 */ mtc1 $at,$f4
|
|
/* f036180: 02002025 */ or $a0,$s0,$zero
|
|
/* f036184: 27a50070 */ addiu $a1,$sp,0x70
|
|
/* f036188: 0fc0cdca */ jal func0f033728
|
|
/* f03618c: e7a40070 */ swc1 $f4,0x70($sp)
|
|
/* f036190: 54400041 */ bnezl $v0,.L0f036298
|
|
/* f036194: c7a00080 */ lwc1 $f0,0x80($sp)
|
|
/* f036198: 0fc084cf */ jal func0f02133c
|
|
/* f03619c: 02002025 */ or $a0,$s0,$zero
|
|
/* f0361a0: 1000003d */ b .L0f036298
|
|
/* f0361a4: c7a00080 */ lwc1 $f0,0x80($sp)
|
|
.L0f0361a8:
|
|
/* f0361a8: 2401006e */ addiu $at,$zero,0x6e
|
|
/* f0361ac: 13010039 */ beq $t8,$at,.L0f036294
|
|
/* f0361b0: 02002025 */ or $a0,$s0,$zero
|
|
/* f0361b4: 3c01bf80 */ lui $at,0xbf80
|
|
/* f0361b8: 44819000 */ mtc1 $at,$f18
|
|
/* f0361bc: 27a5006c */ addiu $a1,$sp,0x6c
|
|
/* f0361c0: 0fc0cdca */ jal func0f033728
|
|
/* f0361c4: e7b2006c */ swc1 $f18,0x6c($sp)
|
|
/* f0361c8: 1040002a */ beqz $v0,.L0f036274
|
|
/* f0361cc: 02002025 */ or $a0,$s0,$zero
|
|
/* f0361d0: c7a6006c */ lwc1 $f6,0x6c($sp)
|
|
/* f0361d4: 44805000 */ mtc1 $zero,$f10
|
|
/* f0361d8: 00000000 */ nop
|
|
/* f0361dc: 4606503e */ c.le.s $f10,$f6
|
|
/* f0361e0: 00000000 */ nop
|
|
/* f0361e4: 45020005 */ bc1fl .L0f0361fc
|
|
/* f0361e8: 240d0007 */ addiu $t5,$zero,0x7
|
|
/* f0361ec: 44053000 */ mfc1 $a1,$f6
|
|
/* f0361f0: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f0361f4: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f0361f8: 240d0007 */ addiu $t5,$zero,0x7
|
|
.L0f0361fc:
|
|
/* f0361fc: a20d0007 */ sb $t5,0x7($s0)
|
|
/* f036200: 8fb90148 */ lw $t9,0x148($sp)
|
|
/* f036204: c7280000 */ lwc1 $f8,0x0($t9)
|
|
/* f036208: e608002c */ swc1 $f8,0x2c($s0)
|
|
/* f03620c: 8fa90148 */ lw $t1,0x148($sp)
|
|
/* f036210: c5300004 */ lwc1 $f16,0x4($t1)
|
|
/* f036214: e6100030 */ swc1 $f16,0x30($s0)
|
|
/* f036218: 8fa80148 */ lw $t0,0x148($sp)
|
|
/* f03621c: c5040008 */ lwc1 $f4,0x8($t0)
|
|
/* f036220: e6040034 */ swc1 $f4,0x34($s0)
|
|
/* f036224: c7b20098 */ lwc1 $f18,0x98($sp)
|
|
/* f036228: e6120038 */ swc1 $f18,0x38($s0)
|
|
/* f03622c: 8faa0154 */ lw $t2,0x154($sp)
|
|
/* f036230: ae0a003c */ sw $t2,0x3c($s0)
|
|
/* f036234: 8fab00f0 */ lw $t3,0xf0($sp)
|
|
/* f036238: ae0b0044 */ sw $t3,0x44($s0)
|
|
/* f03623c: 8fae014c */ lw $t6,0x14c($sp)
|
|
/* f036240: 91cc0000 */ lbu $t4,0x0($t6)
|
|
/* f036244: a20c0040 */ sb $t4,0x40($s0)
|
|
/* f036248: 8faf014c */ lw $t7,0x14c($sp)
|
|
/* f03624c: 91f80001 */ lbu $t8,0x1($t7)
|
|
/* f036250: a2180041 */ sb $t8,0x41($s0)
|
|
/* f036254: 8fad014c */ lw $t5,0x14c($sp)
|
|
/* f036258: 91b90002 */ lbu $t9,0x2($t5)
|
|
/* f03625c: a2190042 */ sb $t9,0x42($s0)
|
|
/* f036260: 8fa9014c */ lw $t1,0x14c($sp)
|
|
/* f036264: 91280003 */ lbu $t0,0x3($t1)
|
|
/* f036268: a2000008 */ sb $zero,0x8($s0)
|
|
/* f03626c: 10000009 */ b .L0f036294
|
|
/* f036270: a2080043 */ sb $t0,0x43($s0)
|
|
.L0f036274:
|
|
/* f036274: 8faa014c */ lw $t2,0x14c($sp)
|
|
/* f036278: 8fab00f0 */ lw $t3,0xf0($sp)
|
|
/* f03627c: 8fa50148 */ lw $a1,0x148($sp)
|
|
/* f036280: 8fa60098 */ lw $a2,0x98($sp)
|
|
/* f036284: 8fa70154 */ lw $a3,0x154($sp)
|
|
/* f036288: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f03628c: 0fc0cbf9 */ jal func0f032fe4
|
|
/* f036290: afab0014 */ sw $t3,0x14($sp)
|
|
.L0f036294:
|
|
/* f036294: c7a00080 */ lwc1 $f0,0x80($sp)
|
|
.L0f036298:
|
|
/* f036298: 44805000 */ mtc1 $zero,$f10
|
|
/* f03629c: 3c014170 */ lui $at,0x4170
|
|
/* f0362a0: 4600503c */ c.lt.s $f10,$f0
|
|
/* f0362a4: 00000000 */ nop
|
|
/* f0362a8: 45020026 */ bc1fl .L0f036344
|
|
/* f0362ac: 8fbf0054 */ lw $ra,0x54($sp)
|
|
/* f0362b0: 44813000 */ mtc1 $at,$f6
|
|
/* f0362b4: 44808000 */ mtc1 $zero,$f16
|
|
/* f0362b8: 260402f0 */ addiu $a0,$s0,0x2f0
|
|
/* f0362bc: 46060202 */ mul.s $f8,$f0,$f6
|
|
/* f0362c0: e61002ec */ swc1 $f16,0x2ec($s0)
|
|
/* f0362c4: 260502f4 */ addiu $a1,$s0,0x2f4
|
|
/* f0362c8: 260602f8 */ addiu $a2,$s0,0x2f8
|
|
/* f0362cc: e60802e8 */ swc1 $f8,0x2e8($s0)
|
|
/* f0362d0: 8fae015c */ lw $t6,0x15c($sp)
|
|
/* f0362d4: c6320008 */ lwc1 $f18,0x8($s1)
|
|
/* f0362d8: c5c40008 */ lwc1 $f4,0x8($t6)
|
|
/* f0362dc: 46122281 */ sub.s $f10,$f4,$f18
|
|
/* f0362e0: e60a02f0 */ swc1 $f10,0x2f0($s0)
|
|
/* f0362e4: 8fac015c */ lw $t4,0x15c($sp)
|
|
/* f0362e8: c628000c */ lwc1 $f8,0xc($s1)
|
|
/* f0362ec: c586000c */ lwc1 $f6,0xc($t4)
|
|
/* f0362f0: 46083401 */ sub.s $f16,$f6,$f8
|
|
/* f0362f4: e61002f4 */ swc1 $f16,0x2f4($s0)
|
|
/* f0362f8: 8faf015c */ lw $t7,0x15c($sp)
|
|
/* f0362fc: c6320010 */ lwc1 $f18,0x10($s1)
|
|
/* f036300: c5e40010 */ lwc1 $f4,0x10($t7)
|
|
/* f036304: 46122281 */ sub.s $f10,$f4,$f18
|
|
/* f036308: 0c0011e4 */ jal guNormalize
|
|
/* f03630c: e60a02f8 */ swc1 $f10,0x2f8($s0)
|
|
/* f036310: c60602f0 */ lwc1 $f6,0x2f0($s0)
|
|
/* f036314: c7a80080 */ lwc1 $f8,0x80($sp)
|
|
/* f036318: c60402f4 */ lwc1 $f4,0x2f4($s0)
|
|
/* f03631c: 46083402 */ mul.s $f16,$f6,$f8
|
|
/* f036320: c60602f8 */ lwc1 $f6,0x2f8($s0)
|
|
/* f036324: e61002f0 */ swc1 $f16,0x2f0($s0)
|
|
/* f036328: c7b20080 */ lwc1 $f18,0x80($sp)
|
|
/* f03632c: 46122282 */ mul.s $f10,$f4,$f18
|
|
/* f036330: e60a02f4 */ swc1 $f10,0x2f4($s0)
|
|
/* f036334: c7a80080 */ lwc1 $f8,0x80($sp)
|
|
/* f036338: 46083402 */ mul.s $f16,$f6,$f8
|
|
/* f03633c: e61002f8 */ swc1 $f16,0x2f8($s0)
|
|
.L0f036340:
|
|
/* f036340: 8fbf0054 */ lw $ra,0x54($sp)
|
|
.L0f036344:
|
|
/* f036344: d7b40040 */ ldc1 $f20,0x40($sp)
|
|
/* f036348: 8fb0004c */ lw $s0,0x4c($sp)
|
|
/* f03634c: 8fb10050 */ lw $s1,0x50($sp)
|
|
/* f036350: 03e00008 */ jr $ra
|
|
/* f036354: 27bd0140 */ addiu $sp,$sp,0x140
|
|
);
|
|
|
|
void chrDie(struct chrdata *chr, s32 aplayernum)
|
|
{
|
|
if (chr->actiontype != ACT_DIE) {
|
|
chrStopFiring(chr);
|
|
chrUncloak(chr, true);
|
|
|
|
chr->actiontype = ACT_DIE;
|
|
chr->act_die.notifychrindex = 0;
|
|
chr->sleep = 0;
|
|
chr->blurnumtimesdied++;
|
|
chr->act_die.thudframe1 = -1;
|
|
chr->act_die.thudframe2 = -1;
|
|
chr->act_die.unk038 = 0;
|
|
|
|
chr->ailist = ailistFindById(GAILIST_AI_BOT_DEAD);
|
|
chr->aioffset = 0;
|
|
|
|
mpstatsRecordDeath(aplayernum, mpPlayerGetIndex(chr));
|
|
func0f199964(chr, chr->aibot->weaponnum);
|
|
|
|
chr->aibot->unk09c_00 = 0;
|
|
chr->aibot->unk09c_01 = 0;
|
|
chr->aibot->unk04c_04 = 0;
|
|
chr->aibot->unk04c_03 = 0;
|
|
chr->aibot->unk04c_05 = 0;
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03645c
|
|
/* f03645c: 27bdffb0 */ addiu $sp,$sp,-80
|
|
/* f036460: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f036464: afa40050 */ sw $a0,0x50($sp)
|
|
/* f036468: afa50054 */ sw $a1,0x54($sp)
|
|
/* f03646c: afa60058 */ sw $a2,0x58($sp)
|
|
/* f036470: afa7005c */ sw $a3,0x5c($sp)
|
|
/* f036474: afa0004c */ sw $zero,0x4c($sp)
|
|
/* f036478: 8c84001c */ lw $a0,0x1c($a0)
|
|
/* f03647c: 27a70044 */ addiu $a3,$sp,0x44
|
|
/* f036480: 27a60048 */ addiu $a2,$sp,0x48
|
|
/* f036484: 27a50040 */ addiu $a1,$sp,0x40
|
|
/* f036488: 0fc0a277 */ jal propChrGetBbox
|
|
/* f03648c: afa4002c */ sw $a0,0x2c($sp)
|
|
/* f036490: 8fa40050 */ lw $a0,0x50($sp)
|
|
/* f036494: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f036498: 00002825 */ or $a1,$zero,$zero
|
|
/* f03649c: 8faf0064 */ lw $t7,0x64($sp)
|
|
/* f0364a0: 8fb9002c */ lw $t9,0x2c($sp)
|
|
/* f0364a4: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f0364a8: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0364ac: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0364b0: c720000c */ lwc1 $f0,0xc($t9)
|
|
/* f0364b4: c7a40048 */ lwc1 $f4,0x48($sp)
|
|
/* f0364b8: c7a80044 */ lwc1 $f8,0x44($sp)
|
|
/* f0364bc: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0364c0: 46002181 */ sub.s $f6,$f4,$f0
|
|
/* f0364c4: 8fa50058 */ lw $a1,0x58($sp)
|
|
/* f0364c8: 8fa6005c */ lw $a2,0x5c($sp)
|
|
/* f0364cc: 46004281 */ sub.s $f10,$f8,$f0
|
|
/* f0364d0: e7a60018 */ swc1 $f6,0x18($sp)
|
|
/* f0364d4: 27a70030 */ addiu $a3,$sp,0x30
|
|
/* f0364d8: 0c00b610 */ jal func0002d840
|
|
/* f0364dc: e7aa001c */ swc1 $f10,0x1c($sp)
|
|
/* f0364e0: 10400012 */ beqz $v0,.L0f03652c
|
|
/* f0364e4: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f0364e8: 8fa9002c */ lw $t1,0x2c($sp)
|
|
/* f0364ec: afa80010 */ sw $t0,0x10($sp)
|
|
/* f0364f0: c7b00048 */ lwc1 $f16,0x48($sp)
|
|
/* f0364f4: c520000c */ lwc1 $f0,0xc($t1)
|
|
/* f0364f8: c7a40044 */ lwc1 $f4,0x44($sp)
|
|
/* f0364fc: 8fa4005c */ lw $a0,0x5c($sp)
|
|
/* f036500: 46008481 */ sub.s $f18,$f16,$f0
|
|
/* f036504: 27a50030 */ addiu $a1,$sp,0x30
|
|
/* f036508: 8fa60060 */ lw $a2,0x60($sp)
|
|
/* f03650c: 46002181 */ sub.s $f6,$f4,$f0
|
|
/* f036510: e7b20014 */ swc1 $f18,0x14($sp)
|
|
/* f036514: 8fa70064 */ lw $a3,0x64($sp)
|
|
/* f036518: 0c00b5ab */ jal func0002d6ac
|
|
/* f03651c: e7a60018 */ swc1 $f6,0x18($sp)
|
|
/* f036520: 10400002 */ beqz $v0,.L0f03652c
|
|
/* f036524: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f036528: afaa004c */ sw $t2,0x4c($sp)
|
|
.L0f03652c:
|
|
/* f03652c: 8fa40050 */ lw $a0,0x50($sp)
|
|
/* f036530: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f036534: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f036538: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f03653c: 8fa2004c */ lw $v0,0x4c($sp)
|
|
/* f036540: 27bd0050 */ addiu $sp,$sp,0x50
|
|
/* f036544: 03e00008 */ jr $ra
|
|
/* f036548: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03654c
|
|
/* f03654c: 27bdff70 */ addiu $sp,$sp,-144
|
|
/* f036550: afb00028 */ sw $s0,0x28($sp)
|
|
/* f036554: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f036558: afb20030 */ sw $s2,0x30($sp)
|
|
/* f03655c: afb1002c */ sw $s1,0x2c($sp)
|
|
/* f036560: afa60098 */ sw $a2,0x98($sp)
|
|
/* f036564: afa00074 */ sw $zero,0x74($sp)
|
|
/* f036568: 00a08025 */ or $s0,$a1,$zero
|
|
/* f03656c: 8c92001c */ lw $s2,0x1c($a0)
|
|
/* f036570: 00e08825 */ or $s1,$a3,$zero
|
|
/* f036574: afa40090 */ sw $a0,0x90($sp)
|
|
/* f036578: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f03657c: 00002825 */ or $a1,$zero,$zero
|
|
/* f036580: 02402025 */ or $a0,$s2,$zero
|
|
/* f036584: 27a50068 */ addiu $a1,$sp,0x68
|
|
/* f036588: 27a60070 */ addiu $a2,$sp,0x70
|
|
/* f03658c: 0fc0a277 */ jal propChrGetBbox
|
|
/* f036590: 27a7006c */ addiu $a3,$sp,0x6c
|
|
/* f036594: 8fa700a0 */ lw $a3,0xa0($sp)
|
|
/* f036598: 8fae00ac */ lw $t6,0xac($sp)
|
|
/* f03659c: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f0365a0: 10e00010 */ beqz $a3,.L0f0365e4
|
|
/* f0365a4: 00000000 */ nop
|
|
/* f0365a8: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0365ac: afaf0014 */ sw $t7,0x14($sp)
|
|
/* f0365b0: c640000c */ lwc1 $f0,0xc($s2)
|
|
/* f0365b4: c7a40070 */ lwc1 $f4,0x70($sp)
|
|
/* f0365b8: c7a8006c */ lwc1 $f8,0x6c($sp)
|
|
/* f0365bc: 02002025 */ or $a0,$s0,$zero
|
|
/* f0365c0: 46002181 */ sub.s $f6,$f4,$f0
|
|
/* f0365c4: 8fa50098 */ lw $a1,0x98($sp)
|
|
/* f0365c8: 02203025 */ or $a2,$s1,$zero
|
|
/* f0365cc: 46004281 */ sub.s $f10,$f8,$f0
|
|
/* f0365d0: e7a60018 */ swc1 $f6,0x18($sp)
|
|
/* f0365d4: 0c00b5cb */ jal cdTestAToB2
|
|
/* f0365d8: e7aa001c */ swc1 $f10,0x1c($sp)
|
|
/* f0365dc: 14400012 */ bnez $v0,.L0f036628
|
|
/* f0365e0: 8fa700a0 */ lw $a3,0xa0($sp)
|
|
.L0f0365e4:
|
|
/* f0365e4: 14e000aa */ bnez $a3,.L0f036890
|
|
/* f0365e8: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f0365ec: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0365f0: c640000c */ lwc1 $f0,0xc($s2)
|
|
/* f0365f4: c7b00070 */ lwc1 $f16,0x70($sp)
|
|
/* f0365f8: c7a4006c */ lwc1 $f4,0x6c($sp)
|
|
/* f0365fc: 02002025 */ or $a0,$s0,$zero
|
|
/* f036600: 46008481 */ sub.s $f18,$f16,$f0
|
|
/* f036604: 8fa50098 */ lw $a1,0x98($sp)
|
|
/* f036608: 02203025 */ or $a2,$s1,$zero
|
|
/* f03660c: 46002181 */ sub.s $f6,$f4,$f0
|
|
/* f036610: e7b20014 */ swc1 $f18,0x14($sp)
|
|
/* f036614: 8fa700ac */ lw $a3,0xac($sp)
|
|
/* f036618: 0c00b5ab */ jal func0002d6ac
|
|
/* f03661c: e7a60018 */ swc1 $f6,0x18($sp)
|
|
/* f036620: 5040009c */ beqzl $v0,.L0f036894
|
|
/* f036624: 8fa40090 */ lw $a0,0x90($sp)
|
|
.L0f036628:
|
|
/* f036628: 8fa200a4 */ lw $v0,0xa4($sp)
|
|
/* f03662c: 5440002a */ bnezl $v0,.L0f0366d8
|
|
/* f036630: c7ae00a8 */ lwc1 $f14,0xa8($sp)
|
|
/* f036634: c6280000 */ lwc1 $f8,0x0($s1)
|
|
/* f036638: c60a0000 */ lwc1 $f10,0x0($s0)
|
|
/* f03663c: 44800000 */ mtc1 $zero,$f0
|
|
/* f036640: 27a20084 */ addiu $v0,$sp,0x84
|
|
/* f036644: 460a4401 */ sub.s $f16,$f8,$f10
|
|
/* f036648: e7a00088 */ swc1 $f0,0x88($sp)
|
|
/* f03664c: e7b00084 */ swc1 $f16,0x84($sp)
|
|
/* f036650: c7a80084 */ lwc1 $f8,0x84($sp)
|
|
/* f036654: c6040008 */ lwc1 $f4,0x8($s0)
|
|
/* f036658: c6320008 */ lwc1 $f18,0x8($s1)
|
|
/* f03665c: 46080032 */ c.eq.s $f0,$f8
|
|
/* f036660: 46049181 */ sub.s $f6,$f18,$f4
|
|
/* f036664: 45000008 */ bc1f .L0f036688
|
|
/* f036668: e7a6008c */ swc1 $f6,0x8c($sp)
|
|
/* f03666c: c7a2008c */ lwc1 $f2,0x8c($sp)
|
|
/* f036670: 46020032 */ c.eq.s $f0,$f2
|
|
/* f036674: 00000000 */ nop
|
|
/* f036678: 45020004 */ bc1fl .L0f03668c
|
|
/* f03667c: c7a2008c */ lwc1 $f2,0x8c($sp)
|
|
/* f036680: 10000087 */ b .L0f0368a0
|
|
/* f036684: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f036688:
|
|
/* f036688: c7a2008c */ lwc1 $f2,0x8c($sp)
|
|
.L0f03668c:
|
|
/* f03668c: c7a00084 */ lwc1 $f0,0x84($sp)
|
|
/* f036690: afa200a4 */ sw $v0,0xa4($sp)
|
|
/* f036694: 46021282 */ mul.s $f10,$f2,$f2
|
|
/* f036698: 00000000 */ nop
|
|
/* f03669c: 46000402 */ mul.s $f16,$f0,$f0
|
|
/* f0366a0: 0c012974 */ jal sqrtf
|
|
/* f0366a4: 46105300 */ add.s $f12,$f10,$f16
|
|
/* f0366a8: 3c013f80 */ lui $at,0x3f80
|
|
/* f0366ac: 44819000 */ mtc1 $at,$f18
|
|
/* f0366b0: c7a40084 */ lwc1 $f4,0x84($sp)
|
|
/* f0366b4: c7a8008c */ lwc1 $f8,0x8c($sp)
|
|
/* f0366b8: 46009083 */ div.s $f2,$f18,$f0
|
|
/* f0366bc: 8fa200a4 */ lw $v0,0xa4($sp)
|
|
/* f0366c0: 46022182 */ mul.s $f6,$f4,$f2
|
|
/* f0366c4: 00000000 */ nop
|
|
/* f0366c8: 46024282 */ mul.s $f10,$f8,$f2
|
|
/* f0366cc: e7a60084 */ swc1 $f6,0x84($sp)
|
|
/* f0366d0: e7aa008c */ swc1 $f10,0x8c($sp)
|
|
/* f0366d4: c7ae00a8 */ lwc1 $f14,0xa8($sp)
|
|
.L0f0366d8:
|
|
/* f0366d8: c4500000 */ lwc1 $f16,0x0($v0)
|
|
/* f0366dc: c4520008 */ lwc1 $f18,0x8($v0)
|
|
/* f0366e0: c6040000 */ lwc1 $f4,0x0($s0)
|
|
/* f0366e4: 460e8082 */ mul.s $f2,$f16,$f14
|
|
/* f0366e8: 8fb900ac */ lw $t9,0xac($sp)
|
|
/* f0366ec: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f0366f0: 460e9302 */ mul.s $f12,$f18,$f14
|
|
/* f0366f4: 02002025 */ or $a0,$s0,$zero
|
|
/* f0366f8: 8fa50098 */ lw $a1,0x98($sp)
|
|
/* f0366fc: 27a6005c */ addiu $a2,$sp,0x5c
|
|
/* f036700: 27a70040 */ addiu $a3,$sp,0x40
|
|
/* f036704: 460c2180 */ add.s $f6,$f4,$f12
|
|
/* f036708: e7a6005c */ swc1 $f6,0x5c($sp)
|
|
/* f03670c: c6080004 */ lwc1 $f8,0x4($s0)
|
|
/* f036710: e7a80060 */ swc1 $f8,0x60($sp)
|
|
/* f036714: c60a0008 */ lwc1 $f10,0x8($s0)
|
|
/* f036718: 46025401 */ sub.s $f16,$f10,$f2
|
|
/* f03671c: e7b00064 */ swc1 $f16,0x64($sp)
|
|
/* f036720: c6320000 */ lwc1 $f18,0x0($s1)
|
|
/* f036724: c7b00070 */ lwc1 $f16,0x70($sp)
|
|
/* f036728: 460c9100 */ add.s $f4,$f18,$f12
|
|
/* f03672c: e7a40050 */ swc1 $f4,0x50($sp)
|
|
/* f036730: c6260004 */ lwc1 $f6,0x4($s1)
|
|
/* f036734: c7a4006c */ lwc1 $f4,0x6c($sp)
|
|
/* f036738: e7a60054 */ swc1 $f6,0x54($sp)
|
|
/* f03673c: c6280008 */ lwc1 $f8,0x8($s1)
|
|
/* f036740: afa80014 */ sw $t0,0x14($sp)
|
|
/* f036744: afb90010 */ sw $t9,0x10($sp)
|
|
/* f036748: 46024281 */ sub.s $f10,$f8,$f2
|
|
/* f03674c: e7aa0058 */ swc1 $f10,0x58($sp)
|
|
/* f036750: c640000c */ lwc1 $f0,0xc($s2)
|
|
/* f036754: e7ac007c */ swc1 $f12,0x7c($sp)
|
|
/* f036758: e7a20080 */ swc1 $f2,0x80($sp)
|
|
/* f03675c: 46008481 */ sub.s $f18,$f16,$f0
|
|
/* f036760: 46002181 */ sub.s $f6,$f4,$f0
|
|
/* f036764: e7b20018 */ swc1 $f18,0x18($sp)
|
|
/* f036768: 0c00b610 */ jal func0002d840
|
|
/* f03676c: e7a6001c */ swc1 $f6,0x1c($sp)
|
|
/* f036770: c7a20080 */ lwc1 $f2,0x80($sp)
|
|
/* f036774: 10400046 */ beqz $v0,.L0f036890
|
|
/* f036778: c7ac007c */ lwc1 $f12,0x7c($sp)
|
|
/* f03677c: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f036780: afa90010 */ sw $t1,0x10($sp)
|
|
/* f036784: c640000c */ lwc1 $f0,0xc($s2)
|
|
/* f036788: c7a80070 */ lwc1 $f8,0x70($sp)
|
|
/* f03678c: c7b0006c */ lwc1 $f16,0x6c($sp)
|
|
/* f036790: e7ac007c */ swc1 $f12,0x7c($sp)
|
|
/* f036794: 46004281 */ sub.s $f10,$f8,$f0
|
|
/* f036798: e7a20080 */ swc1 $f2,0x80($sp)
|
|
/* f03679c: 27a4005c */ addiu $a0,$sp,0x5c
|
|
/* f0367a0: 46008481 */ sub.s $f18,$f16,$f0
|
|
/* f0367a4: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f0367a8: 27a50040 */ addiu $a1,$sp,0x40
|
|
/* f0367ac: 27a60050 */ addiu $a2,$sp,0x50
|
|
/* f0367b0: e7b20018 */ swc1 $f18,0x18($sp)
|
|
/* f0367b4: 0c00b5ab */ jal func0002d6ac
|
|
/* f0367b8: 8fa700ac */ lw $a3,0xac($sp)
|
|
/* f0367bc: c7a20080 */ lwc1 $f2,0x80($sp)
|
|
/* f0367c0: 10400033 */ beqz $v0,.L0f036890
|
|
/* f0367c4: c7ac007c */ lwc1 $f12,0x7c($sp)
|
|
/* f0367c8: c6040000 */ lwc1 $f4,0x0($s0)
|
|
/* f0367cc: 8faa00ac */ lw $t2,0xac($sp)
|
|
/* f0367d0: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f0367d4: 460c2181 */ sub.s $f6,$f4,$f12
|
|
/* f0367d8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0367dc: 8fa50098 */ lw $a1,0x98($sp)
|
|
/* f0367e0: 27a6005c */ addiu $a2,$sp,0x5c
|
|
/* f0367e4: e7a6005c */ swc1 $f6,0x5c($sp)
|
|
/* f0367e8: c6080004 */ lwc1 $f8,0x4($s0)
|
|
/* f0367ec: 27a70040 */ addiu $a3,$sp,0x40
|
|
/* f0367f0: e7a80060 */ swc1 $f8,0x60($sp)
|
|
/* f0367f4: c60a0008 */ lwc1 $f10,0x8($s0)
|
|
/* f0367f8: 46025400 */ add.s $f16,$f10,$f2
|
|
/* f0367fc: e7b00064 */ swc1 $f16,0x64($sp)
|
|
/* f036800: c6320000 */ lwc1 $f18,0x0($s1)
|
|
/* f036804: c7b00070 */ lwc1 $f16,0x70($sp)
|
|
/* f036808: 460c9101 */ sub.s $f4,$f18,$f12
|
|
/* f03680c: e7a40050 */ swc1 $f4,0x50($sp)
|
|
/* f036810: c6260004 */ lwc1 $f6,0x4($s1)
|
|
/* f036814: c7a4006c */ lwc1 $f4,0x6c($sp)
|
|
/* f036818: e7a60054 */ swc1 $f6,0x54($sp)
|
|
/* f03681c: c6280008 */ lwc1 $f8,0x8($s1)
|
|
/* f036820: afab0014 */ sw $t3,0x14($sp)
|
|
/* f036824: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f036828: 46024280 */ add.s $f10,$f8,$f2
|
|
/* f03682c: e7aa0058 */ swc1 $f10,0x58($sp)
|
|
/* f036830: c640000c */ lwc1 $f0,0xc($s2)
|
|
/* f036834: 46008481 */ sub.s $f18,$f16,$f0
|
|
/* f036838: 46002181 */ sub.s $f6,$f4,$f0
|
|
/* f03683c: e7b20018 */ swc1 $f18,0x18($sp)
|
|
/* f036840: 0c00b610 */ jal func0002d840
|
|
/* f036844: e7a6001c */ swc1 $f6,0x1c($sp)
|
|
/* f036848: 10400011 */ beqz $v0,.L0f036890
|
|
/* f03684c: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f036850: afac0010 */ sw $t4,0x10($sp)
|
|
/* f036854: c640000c */ lwc1 $f0,0xc($s2)
|
|
/* f036858: c7a80070 */ lwc1 $f8,0x70($sp)
|
|
/* f03685c: c7b0006c */ lwc1 $f16,0x6c($sp)
|
|
/* f036860: 27a4005c */ addiu $a0,$sp,0x5c
|
|
/* f036864: 46004281 */ sub.s $f10,$f8,$f0
|
|
/* f036868: 27a50040 */ addiu $a1,$sp,0x40
|
|
/* f03686c: 27a60050 */ addiu $a2,$sp,0x50
|
|
/* f036870: 46008481 */ sub.s $f18,$f16,$f0
|
|
/* f036874: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f036878: 8fa700ac */ lw $a3,0xac($sp)
|
|
/* f03687c: 0c00b5ab */ jal func0002d6ac
|
|
/* f036880: e7b20018 */ swc1 $f18,0x18($sp)
|
|
/* f036884: 10400002 */ beqz $v0,.L0f036890
|
|
/* f036888: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f03688c: afad0074 */ sw $t5,0x74($sp)
|
|
.L0f036890:
|
|
/* f036890: 8fa40090 */ lw $a0,0x90($sp)
|
|
.L0f036894:
|
|
/* f036894: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f036898: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03689c: 8fa20074 */ lw $v0,0x74($sp)
|
|
.L0f0368a0:
|
|
/* f0368a0: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f0368a4: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f0368a8: 8fb1002c */ lw $s1,0x2c($sp)
|
|
/* f0368ac: 8fb20030 */ lw $s2,0x30($sp)
|
|
/* f0368b0: 03e00008 */ jr $ra
|
|
/* f0368b4: 27bd0090 */ addiu $sp,$sp,0x90
|
|
);
|
|
|
|
bool propchrHasClearLineToPos(struct prop *prop, struct coord *dstpos, struct coord *vector)
|
|
{
|
|
return func0f03654c(prop->chr, &prop->pos, prop->rooms, dstpos, NULL, vector, prop->chr->chrwidth * 1.2f, CDTYPE_ALL);
|
|
}
|
|
|
|
bool propchrHasClearLineInVector(struct prop *prop, struct coord *vector, f32 mult)
|
|
{
|
|
struct coord dstpos;
|
|
|
|
dstpos.x = vector->x * mult + prop->pos.x;
|
|
dstpos.y = prop->pos.y;
|
|
dstpos.z = vector->z * mult + prop->pos.z;
|
|
|
|
return propchrHasClearLineToPos(prop, &dstpos, vector);
|
|
}
|
|
|
|
bool func0f036974(struct prop *prop, struct coord *pos)
|
|
{
|
|
return func0f03654c(prop->chr, &prop->pos, prop->rooms, pos, NULL, NULL, prop->chr->chrwidth * 1.2f, CDTYPE_ALL);
|
|
}
|
|
|
|
void chrGetSideVectorToTarget(struct chrdata *chr, bool side, struct coord *vector)
|
|
{
|
|
struct prop *prop = chr->prop;
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
|
|
vector->x = 0;
|
|
vector->y = 0;
|
|
vector->z = 1;
|
|
|
|
if (target) {
|
|
f32 x = target->pos.x - prop->pos.x;
|
|
f32 z = target->pos.z - prop->pos.z;
|
|
f32 distance = sqrtf(x * x + z * z);
|
|
|
|
if (distance > 0) {
|
|
x = x / distance;
|
|
z = z / distance;
|
|
|
|
if (side) {
|
|
vector->x = z;
|
|
vector->y = 0;
|
|
vector->z = -x;
|
|
} else {
|
|
vector->x = -z;
|
|
vector->y = 0;
|
|
vector->z = x;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
bool chrCanRollInDirection(struct chrdata *chr, bool side, f32 distance)
|
|
{
|
|
struct prop *prop = chr->prop;
|
|
struct coord vector;
|
|
struct coord dstpos;
|
|
|
|
chrGetSideVectorToTarget(chr, side, &vector);
|
|
|
|
dstpos.x = vector.x * distance + prop->pos.x;
|
|
dstpos.y = prop->pos.y;
|
|
dstpos.z = vector.z * distance + prop->pos.z;
|
|
|
|
return propchrHasClearLineToPos(prop, &dstpos, &vector);
|
|
}
|
|
|
|
void chrGetSideVector(struct chrdata *chr, bool side, struct coord *vector)
|
|
{
|
|
f32 angle = chrGetInverseTheta(chr);
|
|
|
|
if (side) {
|
|
vector->x = cosf(angle);
|
|
vector->y = 0;
|
|
vector->z = -sinf(angle);
|
|
} else {
|
|
vector->x = -cosf(angle);
|
|
vector->y = 0;
|
|
vector->z = sinf(angle);
|
|
}
|
|
}
|
|
|
|
bool chrCanJumpInDirection(struct chrdata *chr, bool side, f32 distance)
|
|
{
|
|
struct prop *prop = chr->prop;
|
|
struct coord vector;
|
|
struct coord dstpos;
|
|
|
|
chrGetSideVector(chr, side, &vector);
|
|
|
|
dstpos.x = vector.x * distance + prop->pos.x;
|
|
dstpos.y = prop->pos.y;
|
|
dstpos.z = vector.z * distance + prop->pos.z;
|
|
|
|
return propchrHasClearLineToPos(prop, &dstpos, &vector);
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f036c08
|
|
/* f036c08: 27bdff58 */ addiu $sp,$sp,-168
|
|
/* f036c0c: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f036c10: afb30028 */ sw $s3,0x28($sp)
|
|
/* f036c14: afb20024 */ sw $s2,0x24($sp)
|
|
/* f036c18: afb10020 */ sw $s1,0x20($sp)
|
|
/* f036c1c: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f036c20: afa500ac */ sw $a1,0xac($sp)
|
|
/* f036c24: afa600b0 */ sw $a2,0xb0($sp)
|
|
/* f036c28: 8c88001c */ lw $t0,0x1c($a0)
|
|
/* f036c2c: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f036c30: afae0060 */ sw $t6,0x60($sp)
|
|
/* f036c34: 8c8f0014 */ lw $t7,0x14($a0)
|
|
/* f036c38: 3c13800a */ lui $s3,%hi(g_Vars)
|
|
/* f036c3c: 26739fc0 */ addiu $s3,$s3,%lo(g_Vars)
|
|
/* f036c40: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f036c44: 07010018 */ bgez $t8,.L0f036ca8
|
|
/* f036c48: 25040008 */ addiu $a0,$t0,0x8
|
|
/* f036c4c: 8e630284 */ lw $v1,0x284($s3)
|
|
/* f036c50: 3c098007 */ lui $t1,%hi(g_InCutscene)
|
|
/* f036c54: 8c7900d8 */ lw $t9,0xd8($v1)
|
|
/* f036c58: 57200049 */ bnezl $t9,.L0f036d80
|
|
/* f036c5c: 8fab0060 */ lw $t3,0x60($sp)
|
|
/* f036c60: 8d290764 */ lw $t1,%lo(g_InCutscene)($t1)
|
|
/* f036c64: 55200046 */ bnezl $t1,.L0f036d80
|
|
/* f036c68: 8fab0060 */ lw $t3,0x60($sp)
|
|
/* f036c6c: 8c620480 */ lw $v0,0x480($v1)
|
|
/* f036c70: 50400007 */ beqzl $v0,.L0f036c90
|
|
/* f036c74: 8c6c1c54 */ lw $t4,0x1c54($v1)
|
|
/* f036c78: 50400041 */ beqzl $v0,.L0f036d80
|
|
/* f036c7c: 8fab0060 */ lw $t3,0x60($sp)
|
|
/* f036c80: 804a0037 */ lb $t2,0x37($v0)
|
|
/* f036c84: 5540003e */ bnezl $t2,.L0f036d80
|
|
/* f036c88: 8fab0060 */ lw $t3,0x60($sp)
|
|
/* f036c8c: 8c6c1c54 */ lw $t4,0x1c54($v1)
|
|
.L0f036c90:
|
|
/* f036c90: 8c6b00c4 */ lw $t3,0xc4($v1)
|
|
/* f036c94: 01806827 */ nor $t5,$t4,$zero
|
|
/* f036c98: 016d7024 */ and $t6,$t3,$t5
|
|
/* f036c9c: 31cf0008 */ andi $t7,$t6,0x8
|
|
/* f036ca0: 51e00037 */ beqzl $t7,.L0f036d80
|
|
/* f036ca4: 8fab0060 */ lw $t3,0x60($sp)
|
|
.L0f036ca8:
|
|
/* f036ca8: 3c13800a */ lui $s3,%hi(g_Vars)
|
|
/* f036cac: 27b8007c */ addiu $t8,$sp,0x7c
|
|
/* f036cb0: 24190014 */ addiu $t9,$zero,0x14
|
|
/* f036cb4: 26739fc0 */ addiu $s3,$s3,%lo(g_Vars)
|
|
/* f036cb8: afb90014 */ sw $t9,0x14($sp)
|
|
/* f036cbc: afb80010 */ sw $t8,0x10($sp)
|
|
/* f036cc0: 25050028 */ addiu $a1,$t0,0x28
|
|
/* f036cc4: 8fa600ac */ lw $a2,0xac($sp)
|
|
/* f036cc8: 0fc1977f */ jal func0f065dfc
|
|
/* f036ccc: 27a70064 */ addiu $a3,$sp,0x64
|
|
/* f036cd0: 8e690314 */ lw $t1,0x314($s3)
|
|
/* f036cd4: 87aa007c */ lh $t2,0x7c($sp)
|
|
/* f036cd8: 87af007c */ lh $t7,0x7c($sp)
|
|
/* f036cdc: 11200013 */ beqz $t1,.L0f036d2c
|
|
/* f036ce0: 2404ffff */ addiu $a0,$zero,-1
|
|
/* f036ce4: 108a0025 */ beq $a0,$t2,.L0f036d7c
|
|
/* f036ce8: 27a2007c */ addiu $v0,$sp,0x7c
|
|
/* f036cec: 3c05800a */ lui $a1,%hi(g_MpRoomVisibility)
|
|
/* f036cf0: 8ca5492c */ lw $a1,%lo(g_MpRoomVisibility)($a1)
|
|
/* f036cf4: 84430000 */ lh $v1,0x0($v0)
|
|
/* f036cf8: 00655821 */ addu $t3,$v1,$a1
|
|
.L0f036cfc:
|
|
/* f036cfc: 916d0000 */ lbu $t5,0x0($t3)
|
|
/* f036d00: 31ae000f */ andi $t6,$t5,0xf
|
|
/* f036d04: 51c00004 */ beqzl $t6,.L0f036d18
|
|
/* f036d08: 84430002 */ lh $v1,0x2($v0)
|
|
/* f036d0c: 1000001b */ b .L0f036d7c
|
|
/* f036d10: afa00060 */ sw $zero,0x60($sp)
|
|
/* f036d14: 84430002 */ lh $v1,0x2($v0)
|
|
.L0f036d18:
|
|
/* f036d18: 24420002 */ addiu $v0,$v0,0x2
|
|
/* f036d1c: 5483fff7 */ bnel $a0,$v1,.L0f036cfc
|
|
/* f036d20: 00655821 */ addu $t3,$v1,$a1
|
|
/* f036d24: 10000016 */ b .L0f036d80
|
|
/* f036d28: 8fab0060 */ lw $t3,0x60($sp)
|
|
.L0f036d2c:
|
|
/* f036d2c: 2404ffff */ addiu $a0,$zero,-1
|
|
/* f036d30: 108f0012 */ beq $a0,$t7,.L0f036d7c
|
|
/* f036d34: 27a2007c */ addiu $v0,$sp,0x7c
|
|
/* f036d38: 3c05800a */ lui $a1,%hi(g_Rooms)
|
|
/* f036d3c: 8ca54928 */ lw $a1,%lo(g_Rooms)($a1)
|
|
/* f036d40: 84430000 */ lh $v1,0x0($v0)
|
|
/* f036d44: 2406008c */ addiu $a2,$zero,0x8c
|
|
.L0f036d48:
|
|
/* f036d48: 00660019 */ multu $v1,$a2
|
|
/* f036d4c: 0000c812 */ mflo $t9
|
|
/* f036d50: 00b94821 */ addu $t1,$a1,$t9
|
|
/* f036d54: 952a0000 */ lhu $t2,0x0($t1)
|
|
/* f036d58: 314c0004 */ andi $t4,$t2,0x4
|
|
/* f036d5c: 51800004 */ beqzl $t4,.L0f036d70
|
|
/* f036d60: 84430002 */ lh $v1,0x2($v0)
|
|
/* f036d64: 10000005 */ b .L0f036d7c
|
|
/* f036d68: afa00060 */ sw $zero,0x60($sp)
|
|
/* f036d6c: 84430002 */ lh $v1,0x2($v0)
|
|
.L0f036d70:
|
|
/* f036d70: 24420002 */ addiu $v0,$v0,0x2
|
|
/* f036d74: 1483fff4 */ bne $a0,$v1,.L0f036d48
|
|
/* f036d78: 00000000 */ nop
|
|
.L0f036d7c:
|
|
/* f036d7c: 8fab0060 */ lw $t3,0x60($sp)
|
|
.L0f036d80:
|
|
/* f036d80: 51600051 */ beqzl $t3,.L0f036ec8
|
|
/* f036d84: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f036d88: 8e6d006c */ lw $t5,0x6c($s3)
|
|
/* f036d8c: 00009025 */ or $s2,$zero,$zero
|
|
/* f036d90: 00002825 */ or $a1,$zero,$zero
|
|
/* f036d94: 11a00003 */ beqz $t5,.L0f036da4
|
|
/* f036d98: 00002025 */ or $a0,$zero,$zero
|
|
/* f036d9c: 10000001 */ b .L0f036da4
|
|
/* f036da0: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f036da4:
|
|
/* f036da4: 8e6e0068 */ lw $t6,0x68($s3)
|
|
/* f036da8: 00001825 */ or $v1,$zero,$zero
|
|
/* f036dac: 00001025 */ or $v0,$zero,$zero
|
|
/* f036db0: 11c00003 */ beqz $t6,.L0f036dc0
|
|
/* f036db4: 00126080 */ sll $t4,$s2,0x2
|
|
/* f036db8: 10000001 */ b .L0f036dc0
|
|
/* f036dbc: 24040001 */ addiu $a0,$zero,0x1
|
|
.L0f036dc0:
|
|
/* f036dc0: 8e6f0064 */ lw $t7,0x64($s3)
|
|
/* f036dc4: 026c8021 */ addu $s0,$s3,$t4
|
|
/* f036dc8: 27b10050 */ addiu $s1,$sp,0x50
|
|
/* f036dcc: 11e00003 */ beqz $t7,.L0f036ddc
|
|
/* f036dd0: 00000000 */ nop
|
|
/* f036dd4: 10000001 */ b .L0f036ddc
|
|
/* f036dd8: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f036ddc:
|
|
/* f036ddc: 8e780070 */ lw $t8,0x70($s3)
|
|
/* f036de0: 13000003 */ beqz $t8,.L0f036df0
|
|
/* f036de4: 00000000 */ nop
|
|
/* f036de8: 10000001 */ b .L0f036df0
|
|
/* f036dec: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f036df0:
|
|
/* f036df0: 0043c821 */ addu $t9,$v0,$v1
|
|
/* f036df4: 03244821 */ addu $t1,$t9,$a0
|
|
/* f036df8: 01255021 */ addu $t2,$t1,$a1
|
|
/* f036dfc: 59400032 */ blezl $t2,.L0f036ec8
|
|
/* f036e00: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f036e04: 8e0b0064 */ lw $t3,0x64($s0)
|
|
.L0f036e08:
|
|
/* f036e08: 8fa400ac */ lw $a0,0xac($sp)
|
|
/* f036e0c: 8fa600b0 */ lw $a2,0xb0($sp)
|
|
/* f036e10: 8d6500bc */ lw $a1,0xbc($t3)
|
|
/* f036e14: afa00014 */ sw $zero,0x14($sp)
|
|
/* f036e18: afa00010 */ sw $zero,0x10($sp)
|
|
/* f036e1c: 02203825 */ or $a3,$s1,$zero
|
|
/* f036e20: 0c006052 */ jal func00018148
|
|
/* f036e24: 24a50008 */ addiu $a1,$a1,8
|
|
/* f036e28: 8e0d0064 */ lw $t5,0x64($s0)
|
|
/* f036e2c: 02202825 */ or $a1,$s1,$zero
|
|
/* f036e30: 8da400bc */ lw $a0,0xbc($t5)
|
|
/* f036e34: 0fc19620 */ jal arrayIntersects
|
|
/* f036e38: 24840028 */ addiu $a0,$a0,0x28
|
|
/* f036e3c: 10400003 */ beqz $v0,.L0f036e4c
|
|
/* f036e40: 00002825 */ or $a1,$zero,$zero
|
|
/* f036e44: 1000001f */ b .L0f036ec4
|
|
/* f036e48: afa00060 */ sw $zero,0x60($sp)
|
|
.L0f036e4c:
|
|
/* f036e4c: 8e6e006c */ lw $t6,0x6c($s3)
|
|
/* f036e50: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f036e54: 26100004 */ addiu $s0,$s0,0x4
|
|
/* f036e58: 11c00003 */ beqz $t6,.L0f036e68
|
|
/* f036e5c: 00002025 */ or $a0,$zero,$zero
|
|
/* f036e60: 10000001 */ b .L0f036e68
|
|
/* f036e64: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f036e68:
|
|
/* f036e68: 8e6f0068 */ lw $t7,0x68($s3)
|
|
/* f036e6c: 00001825 */ or $v1,$zero,$zero
|
|
/* f036e70: 00001025 */ or $v0,$zero,$zero
|
|
/* f036e74: 11e00003 */ beqz $t7,.L0f036e84
|
|
/* f036e78: 00000000 */ nop
|
|
/* f036e7c: 10000001 */ b .L0f036e84
|
|
/* f036e80: 24040001 */ addiu $a0,$zero,0x1
|
|
.L0f036e84:
|
|
/* f036e84: 8e780064 */ lw $t8,0x64($s3)
|
|
/* f036e88: 13000003 */ beqz $t8,.L0f036e98
|
|
/* f036e8c: 00000000 */ nop
|
|
/* f036e90: 10000001 */ b .L0f036e98
|
|
/* f036e94: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f036e98:
|
|
/* f036e98: 8e790070 */ lw $t9,0x70($s3)
|
|
/* f036e9c: 13200003 */ beqz $t9,.L0f036eac
|
|
/* f036ea0: 00000000 */ nop
|
|
/* f036ea4: 10000001 */ b .L0f036eac
|
|
/* f036ea8: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f036eac:
|
|
/* f036eac: 00434821 */ addu $t1,$v0,$v1
|
|
/* f036eb0: 01245021 */ addu $t2,$t1,$a0
|
|
/* f036eb4: 01456021 */ addu $t4,$t2,$a1
|
|
/* f036eb8: 024c082a */ slt $at,$s2,$t4
|
|
/* f036ebc: 5420ffd2 */ bnezl $at,.L0f036e08
|
|
/* f036ec0: 8e0b0064 */ lw $t3,0x64($s0)
|
|
.L0f036ec4:
|
|
/* f036ec4: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f036ec8:
|
|
/* f036ec8: 8fa20060 */ lw $v0,0x60($sp)
|
|
/* f036ecc: 8fb0001c */ lw $s0,0x1c($sp)
|
|
/* f036ed0: 8fb10020 */ lw $s1,0x20($sp)
|
|
/* f036ed4: 8fb20024 */ lw $s2,0x24($sp)
|
|
/* f036ed8: 8fb30028 */ lw $s3,0x28($sp)
|
|
/* f036edc: 03e00008 */ jr $ra
|
|
/* f036ee0: 27bd00a8 */ addiu $sp,$sp,0xa8
|
|
);
|
|
|
|
void chrGoPosInitCheap(struct chrdata *chr, struct waydata *waydata, struct coord *padpos, struct coord *chrpos)
|
|
{
|
|
f32 xdiff1 = padpos->x - chr->prop->pos.x;
|
|
f32 zdiff1 = padpos->z - chr->prop->pos.z;
|
|
|
|
f32 angle = atan2f(xdiff1, zdiff1);
|
|
|
|
f32 xdiff2 = padpos->x - chrpos->x;
|
|
f32 zdiff2 = padpos->z - chrpos->z;
|
|
|
|
waydata->mode = WAYMODE_CHEAP;
|
|
|
|
waydata->segdisttotal = sqrtf(xdiff1 * xdiff1 + zdiff1 * zdiff1);
|
|
waydata->segdistdone = waydata->segdisttotal - sqrtf(xdiff2 * xdiff2 + zdiff2 * zdiff2);
|
|
|
|
chrSetLookAngle(chr, angle);
|
|
}
|
|
|
|
void chrGoPosGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, s16 *rooms, u32 *flags)
|
|
{
|
|
struct waypoint *waypoint = chr->act_gopos.waypoints[chr->act_gopos.curindex];
|
|
struct pad pad;
|
|
|
|
if (waypoint) {
|
|
padUnpack(waypoint->padnum, PADFIELD_POS | PADFIELD_ROOM | PADFIELD_FLAGS, &pad);
|
|
|
|
pos->x = pad.pos.x;
|
|
pos->y = pad.pos.y;
|
|
pos->z = pad.pos.z;
|
|
|
|
rooms[0] = pad.room;
|
|
rooms[1] = -1;
|
|
|
|
if (flags) {
|
|
*flags = pad.flags;
|
|
}
|
|
} else {
|
|
pos->x = chr->act_gopos.pos.x;
|
|
pos->y = chr->act_gopos.pos.y;
|
|
pos->z = chr->act_gopos.pos.z;
|
|
|
|
rooms[0] = chr->act_gopos.rooms[0];
|
|
rooms[1] = -1;
|
|
|
|
if (flags) {
|
|
*flags = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
void chrGoPosGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, s16 *rooms)
|
|
{
|
|
chrGoPosGetCurWaypointInfoWithFlags(chr, pos, rooms, NULL);
|
|
}
|
|
|
|
f32 func0f0370a8(struct chrdata *chr)
|
|
{
|
|
f32 result;
|
|
|
|
if (chr->aibot) {
|
|
result = aibotCalculateMaxSpeed(chr);
|
|
} else {
|
|
s16 animnum = modelGetAnimNum(chr->model);
|
|
result = func0f02dff0(animnum) * (chr->model->unk14 * 9.999999f);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
s32 chrGoPosCalculateBaseTtl(struct chrdata *chr)
|
|
{
|
|
f32 xdiff;
|
|
f32 zdiff;
|
|
u32 stack;
|
|
struct coord pos;
|
|
s16 rooms[8];
|
|
f32 speed;
|
|
|
|
chrGoPosGetCurWaypointInfo(chr, &pos, rooms);
|
|
|
|
xdiff = pos.x - chr->prop->pos.x;
|
|
zdiff = pos.z - chr->prop->pos.z;
|
|
|
|
if (xdiff < 0) {
|
|
xdiff = -xdiff;
|
|
}
|
|
|
|
if (zdiff < 0) {
|
|
zdiff = -zdiff;
|
|
}
|
|
|
|
speed = func0f0370a8(chr);
|
|
|
|
if (chr->aibot == NULL) {
|
|
speed *= modelGetAbsAnimSpeed(chr->model);
|
|
}
|
|
|
|
if (speed < 0.001f) {
|
|
speed = 0.001f;
|
|
}
|
|
|
|
return (xdiff + zdiff) / speed;
|
|
}
|
|
|
|
void chrGoPosClearRestartTtl(struct chrdata *chr)
|
|
{
|
|
chr->act_gopos.restartttl = 0;
|
|
}
|
|
|
|
void chrGoPosConsiderRestart(struct chrdata *chr)
|
|
{
|
|
if (chr->act_gopos.waydata.mode != WAYMODE_CHEAP
|
|
&& chr->liftaction != LA_3
|
|
&& chr->liftaction != LA_1) {
|
|
if (chr->act_gopos.restartttl == 0) {
|
|
s32 value = chrGoPosCalculateBaseTtl(chr) * 2 + 300;
|
|
|
|
if (value > 0xffff) {
|
|
value = 0xffff;
|
|
}
|
|
|
|
chr->act_gopos.restartttl = value;
|
|
} else if (chr->act_gopos.restartttl <= (u16)g_Vars.lvupdate240_60) {
|
|
if (chr->aibot) {
|
|
func0f197544(chr);
|
|
} else {
|
|
chrGoToPos(chr, &chr->act_gopos.pos, chr->act_gopos.rooms, chr->act_gopos.flags);
|
|
}
|
|
} else {
|
|
chr->act_gopos.restartttl -= (u16)g_Vars.lvupdate240_60;
|
|
}
|
|
}
|
|
}
|
|
|
|
void chrGoPosInitExpensive(struct chrdata *chr)
|
|
{
|
|
struct coord pos;
|
|
s16 rooms[8];
|
|
|
|
chrGoPosGetCurWaypointInfo(chr, &pos, rooms);
|
|
|
|
chr->act_gopos.waydata.mode = WAYMODE_EXPENSIVE;
|
|
chr->act_gopos.waydata.unk01 = 0;
|
|
chr->act_gopos.waydata.unk02 = 0;
|
|
chr->act_gopos.waydata.pos.x = pos.x;
|
|
chr->act_gopos.waydata.pos.y = pos.y;
|
|
chr->act_gopos.waydata.pos.z = pos.z;
|
|
|
|
chrGoPosClearRestartTtl(chr);
|
|
}
|
|
|
|
/**
|
|
* Advance the chr's current waypoint index to the next one in the route.
|
|
*
|
|
* The waypoints array allows 6 waypoints and it's important that they have a
|
|
* couple loaded in front of their current one. So if the index is moving too
|
|
* far into the array, new pathfinding will be done and the array and index will
|
|
* be reset.
|
|
*/
|
|
void chrGoPosAdvanceWaypoint(struct chrdata *chr)
|
|
{
|
|
if (chr->act_gopos.curindex < 3) {
|
|
chr->act_gopos.curindex++;
|
|
} else {
|
|
struct waypoint *from = chr->act_gopos.waypoints[chr->act_gopos.curindex];
|
|
u32 hash;
|
|
chr->act_gopos.curindex = 1;
|
|
|
|
hash = (g_Vars.lvframe60 >> 9) * 0x80 + chr->chrnum * 8;
|
|
|
|
waypointSetHashThing(hash, hash);
|
|
waypointFindRoute(from, chr->act_gopos.target, chr->act_gopos.waypoints, MAX_CHRWAYPOINTS);
|
|
waypointSetHashThing(0, 0);
|
|
}
|
|
|
|
chrGoPosInitExpensive(chr);
|
|
}
|
|
|
|
/**
|
|
* Determines which step index the chr will be at given their current index, the
|
|
* number of steps to take and in which direction (forward or back).
|
|
*
|
|
* Returns the step index and populates *forward with true or false depending on
|
|
* whether the chr will be traversing the path in the forward direction at that
|
|
* point.
|
|
*/
|
|
s32 chrPatrolCalculateStep(struct chrdata *chr, bool *forward, s32 numsteps)
|
|
{
|
|
s32 nextstep = chr->act_patrol.nextstep;
|
|
bool isforward = *forward;
|
|
|
|
if (numsteps < 0) {
|
|
isforward = !isforward;
|
|
numsteps = -numsteps;
|
|
}
|
|
|
|
while (numsteps > 0) {
|
|
numsteps--;
|
|
|
|
if (isforward) {
|
|
nextstep++;
|
|
|
|
if (chr->act_patrol.path->pads[nextstep] < 0) {
|
|
// Reached the end of the list
|
|
if (chr->act_patrol.path->flags & PATHFLAG_CIRCULAR) {
|
|
nextstep = 0;
|
|
} else {
|
|
isforward = false;
|
|
nextstep -= 2;
|
|
|
|
if (nextstep < 0) {
|
|
nextstep = 0;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
nextstep--;
|
|
|
|
if (nextstep < 0) {
|
|
// Reached the start of the list
|
|
if (chr->act_patrol.path->flags & PATHFLAG_CIRCULAR) {
|
|
nextstep = chr->act_patrol.path->len - 1;
|
|
} else {
|
|
isforward = true;
|
|
nextstep = 1;
|
|
|
|
if (chr->act_patrol.path->len - 1 <= 0) {
|
|
nextstep = chr->act_patrol.path->len - 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
*forward = isforward;
|
|
|
|
return nextstep;
|
|
}
|
|
|
|
/**
|
|
* Determines which pad number the chr will be at given their current index and
|
|
* the number of steps to take.
|
|
*/
|
|
s16 chrPatrolCalculatePadNum(struct chrdata *chr, s32 numsteps)
|
|
{
|
|
s32 *padnumptr;
|
|
bool forward = chr->act_patrol.forward;
|
|
s32 step = chrPatrolCalculateStep(chr, &forward, numsteps);
|
|
padnumptr = &chr->act_patrol.path->pads[step];
|
|
|
|
return *padnumptr;
|
|
}
|
|
|
|
void chrPatrolGetCurWaypointInfoWithFlags(struct chrdata *chr, struct coord *pos, s16 *rooms, u32 *flags)
|
|
{
|
|
s32 padnum = chrPatrolCalculatePadNum(chr, 0);
|
|
struct pad pad;
|
|
|
|
padUnpack(padnum, PADFIELD_POS | PADFIELD_ROOM | PADFIELD_FLAGS, &pad);
|
|
|
|
pos->x = pad.pos.x;
|
|
pos->y = pad.pos.y;
|
|
pos->z = pad.pos.z;
|
|
|
|
rooms[0] = pad.room;
|
|
rooms[1] = -1;
|
|
|
|
if (flags) {
|
|
*flags = pad.flags;
|
|
}
|
|
}
|
|
|
|
void chrPatrolGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, s16 *rooms)
|
|
{
|
|
chrPatrolGetCurWaypointInfoWithFlags(chr, pos, rooms, NULL);
|
|
}
|
|
|
|
void func0f037580(struct chrdata *chr)
|
|
{
|
|
s16 rooms[8];
|
|
|
|
chr->act_patrol.waydata.mode = WAYMODE_EXPENSIVE;
|
|
chr->act_patrol.waydata.unk01 = 0;
|
|
chr->act_patrol.waydata.unk02 = 0;
|
|
|
|
chrPatrolGetCurWaypointInfo(chr, &chr->act_patrol.waydata.pos, rooms);
|
|
}
|
|
|
|
void func0f0375b0(struct chrdata *chr)
|
|
{
|
|
s32 nextstep = chrPatrolCalculateStep(chr, &chr->act_patrol.forward, 1);
|
|
|
|
chr->act_patrol.nextstep = nextstep;
|
|
chr->patrolnextstep = nextstep;
|
|
|
|
func0f037580(chr);
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f0375e8
|
|
.late_rodata
|
|
glabel var7f1a8dac
|
|
.word 0x411ffffe
|
|
.text
|
|
/* f0375e8: 27bdfed8 */ addiu $sp,$sp,-296
|
|
/* f0375ec: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f0375f0: afb00030 */ sw $s0,0x30($sp)
|
|
/* f0375f4: afa5012c */ sw $a1,0x12c($sp)
|
|
/* f0375f8: afa60130 */ sw $a2,0x130($sp)
|
|
/* f0375fc: afa70134 */ sw $a3,0x134($sp)
|
|
/* f037600: 8c8e001c */ lw $t6,0x1c($a0)
|
|
/* f037604: 3c0f800a */ lui $t7,%hi(g_Vars+0x8)
|
|
/* f037608: 00808025 */ or $s0,$a0,$zero
|
|
/* f03760c: afae00f0 */ sw $t6,0xf0($sp)
|
|
/* f037610: a0800009 */ sb $zero,0x9($a0)
|
|
/* f037614: 8def9fc8 */ lw $t7,%lo(g_Vars+0x8)($t7)
|
|
/* f037618: ac8f00d8 */ sw $t7,0xd8($a0)
|
|
/* f03761c: 0c0074a2 */ jal modelGetAbsAnimSpeed
|
|
/* f037620: 8c840020 */ lw $a0,0x20($a0)
|
|
/* f037624: c7a40130 */ lwc1 $f4,0x130($sp)
|
|
/* f037628: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
|
|
/* f03762c: c428a00c */ lwc1 $f8,%lo(g_Vars+0x4c)($at)
|
|
/* f037630: 46002182 */ mul.s $f6,$f4,$f0
|
|
/* f037634: 8fa2012c */ lw $v0,0x12c($sp)
|
|
/* f037638: 02002025 */ or $a0,$s0,$zero
|
|
/* f03763c: c4500038 */ lwc1 $f16,0x38($v0)
|
|
/* f037640: 46083282 */ mul.s $f10,$f6,$f8
|
|
/* f037644: c446003c */ lwc1 $f6,0x3c($v0)
|
|
/* f037648: 460a8480 */ add.s $f18,$f16,$f10
|
|
/* f03764c: e4520038 */ swc1 $f18,0x38($v0)
|
|
/* f037650: c4440038 */ lwc1 $f4,0x38($v0)
|
|
/* f037654: 4604303e */ c.le.s $f6,$f4
|
|
/* f037658: 00000000 */ nop
|
|
/* f03765c: 450200d0 */ bc1fl .L0f0379a0
|
|
/* f037660: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f037664: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f037668: 00002825 */ or $a1,$zero,$zero
|
|
/* f03766c: 8fa40138 */ lw $a0,0x138($sp)
|
|
/* f037670: 0fc195e9 */ jal roomsCopy
|
|
/* f037674: 27a50118 */ addiu $a1,$sp,0x118
|
|
/* f037678: 02002025 */ or $a0,$s0,$zero
|
|
/* f03767c: 8fa50134 */ lw $a1,0x134($sp)
|
|
/* f037680: 0fc087ea */ jal func0f021fa8
|
|
/* f037684: 27a60118 */ addiu $a2,$sp,0x118
|
|
/* f037688: 8e050024 */ lw $a1,0x24($s0)
|
|
/* f03768c: 27b80105 */ addiu $t8,$sp,0x105
|
|
/* f037690: 27b90102 */ addiu $t9,$sp,0x102
|
|
/* f037694: afb90018 */ sw $t9,0x18($sp)
|
|
/* f037698: afb80010 */ sw $t8,0x10($sp)
|
|
/* f03769c: afa00020 */ sw $zero,0x20($sp)
|
|
/* f0376a0: afa0001c */ sw $zero,0x1c($sp)
|
|
/* f0376a4: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0376a8: 8fa40134 */ lw $a0,0x134($sp)
|
|
/* f0376ac: 27a60118 */ addiu $a2,$sp,0x118
|
|
/* f0376b0: 0c00a86c */ jal cdFindGroundY
|
|
/* f0376b4: 27a70106 */ addiu $a3,$sp,0x106
|
|
/* f0376b8: 8fa80134 */ lw $t0,0x134($sp)
|
|
/* f0376bc: e7a00108 */ swc1 $f0,0x108($sp)
|
|
/* f0376c0: 8fa900f0 */ lw $t1,0xf0($sp)
|
|
/* f0376c4: c5080000 */ lwc1 $f8,0x0($t0)
|
|
/* f0376c8: 8fa40138 */ lw $a0,0x138($sp)
|
|
/* f0376cc: 27a50118 */ addiu $a1,$sp,0x118
|
|
/* f0376d0: e7a800f4 */ swc1 $f8,0xf4($sp)
|
|
/* f0376d4: c60a00b8 */ lwc1 $f10,0xb8($s0)
|
|
/* f0376d8: c530000c */ lwc1 $f16,0xc($t1)
|
|
/* f0376dc: 460a8481 */ sub.s $f18,$f16,$f10
|
|
/* f0376e0: 46009100 */ add.s $f4,$f18,$f0
|
|
/* f0376e4: e7a400f8 */ swc1 $f4,0xf8($sp)
|
|
/* f0376e8: c5060008 */ lwc1 $f6,0x8($t0)
|
|
/* f0376ec: 0fc195e9 */ jal roomsCopy
|
|
/* f0376f0: e7a600fc */ swc1 $f6,0xfc($sp)
|
|
/* f0376f4: 02002025 */ or $a0,$s0,$zero
|
|
/* f0376f8: 27a500f4 */ addiu $a1,$sp,0xf4
|
|
/* f0376fc: 0fc087ea */ jal func0f021fa8
|
|
/* f037700: 27a60118 */ addiu $a2,$sp,0x118
|
|
/* f037704: 8e04001c */ lw $a0,0x1c($s0)
|
|
/* f037708: 27a5010c */ addiu $a1,$sp,0x10c
|
|
/* f03770c: 27a60114 */ addiu $a2,$sp,0x114
|
|
/* f037710: 0fc0a277 */ jal propChrGetBbox
|
|
/* f037714: 27a70110 */ addiu $a3,$sp,0x110
|
|
/* f037718: 8fab00f0 */ lw $t3,0xf0($sp)
|
|
/* f03771c: 8e050024 */ lw $a1,0x24($s0)
|
|
/* f037720: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f037724: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f037728: c560000c */ lwc1 $f0,0xc($t3)
|
|
/* f03772c: c7a80114 */ lwc1 $f8,0x114($sp)
|
|
/* f037730: c7aa0110 */ lwc1 $f10,0x110($sp)
|
|
/* f037734: 27a400f4 */ addiu $a0,$sp,0xf4
|
|
/* f037738: 46004401 */ sub.s $f16,$f8,$f0
|
|
/* f03773c: 27a60118 */ addiu $a2,$sp,0x118
|
|
/* f037740: 2407003f */ addiu $a3,$zero,0x3f
|
|
/* f037744: 46005481 */ sub.s $f18,$f10,$f0
|
|
/* f037748: e7b00014 */ swc1 $f16,0x14($sp)
|
|
/* f03774c: 0c00a9a1 */ jal cdTestVolume
|
|
/* f037750: e7b20018 */ swc1 $f18,0x18($sp)
|
|
/* f037754: 1040007b */ beqz $v0,.L0f037944
|
|
/* f037758: 8fa400f0 */ lw $a0,0xf0($sp)
|
|
/* f03775c: c7a400f4 */ lwc1 $f4,0xf4($sp)
|
|
/* f037760: c7a00108 */ lwc1 $f0,0x108($sp)
|
|
/* f037764: 3c017f1b */ lui $at,%hi(var7f1a8dac)
|
|
/* f037768: e4840008 */ swc1 $f4,0x8($a0)
|
|
/* f03776c: c7a600f8 */ lwc1 $f6,0xf8($sp)
|
|
/* f037770: e486000c */ swc1 $f6,0xc($a0)
|
|
/* f037774: c7a800fc */ lwc1 $f8,0xfc($sp)
|
|
/* f037778: e4880010 */ swc1 $f8,0x10($a0)
|
|
/* f03777c: e60000b8 */ swc1 $f0,0xb8($s0)
|
|
/* f037780: e60000b4 */ swc1 $f0,0xb4($s0)
|
|
/* f037784: c4308dac */ lwc1 $f16,%lo(var7f1a8dac)($at)
|
|
/* f037788: 46100282 */ mul.s $f10,$f0,$f16
|
|
/* f03778c: e60a00b0 */ swc1 $f10,0xb0($s0)
|
|
/* f037790: 97ac0106 */ lhu $t4,0x106($sp)
|
|
/* f037794: a60c018a */ sh $t4,0x18a($s0)
|
|
/* f037798: 93ad0105 */ lbu $t5,0x105($sp)
|
|
/* f03779c: a20d0191 */ sb $t5,0x191($s0)
|
|
/* f0377a0: 87ae0102 */ lh $t6,0x102($sp)
|
|
/* f0377a4: 0fc19711 */ jal func0f065c44
|
|
/* f0377a8: a60e02b2 */ sh $t6,0x2b2($s0)
|
|
/* f0377ac: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0377b0: 27a40118 */ addiu $a0,$sp,0x118
|
|
/* f0377b4: 0fc195e9 */ jal roomsCopy
|
|
/* f0377b8: 24a50028 */ addiu $a1,$a1,0x28
|
|
/* f0377bc: 0fc1972c */ jal func0f065cb0
|
|
/* f0377c0: 8fa400f0 */ lw $a0,0xf0($sp)
|
|
/* f0377c4: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0377c8: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f0377cc: 24a50008 */ addiu $a1,$a1,0x8
|
|
/* f0377d0: 0c006b4d */ jal modelSetRootPosition
|
|
/* f0377d4: afa5003c */ sw $a1,0x3c($sp)
|
|
/* f0377d8: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f0377dc: 8c8f0008 */ lw $t7,0x8($a0)
|
|
/* f0377e0: 0c006a87 */ jal modelGetNodeData
|
|
/* f0377e4: 8de50000 */ lw $a1,0x0($t7)
|
|
/* f0377e8: c7b20108 */ lwc1 $f18,0x108($sp)
|
|
/* f0377ec: 2401000e */ addiu $at,$zero,0xe
|
|
/* f0377f0: e4520004 */ swc1 $f18,0x4($v0)
|
|
/* f0377f4: 8e180018 */ lw $t8,0x18($s0)
|
|
/* f0377f8: 82030007 */ lb $v1,0x7($s0)
|
|
/* f0377fc: 37190001 */ ori $t9,$t8,0x1
|
|
/* f037800: 1461000e */ bne $v1,$at,.L0f03783c
|
|
/* f037804: ae190018 */ sw $t9,0x18($s0)
|
|
/* f037808: 0fc0dd6c */ jal func0f0375b0
|
|
/* f03780c: 02002025 */ or $a0,$s0,$zero
|
|
/* f037810: 02002025 */ or $a0,$s0,$zero
|
|
/* f037814: 27a500dc */ addiu $a1,$sp,0xdc
|
|
/* f037818: 0fc0dd58 */ jal chrPatrolGetCurWaypointInfo
|
|
/* f03781c: 27a600cc */ addiu $a2,$sp,0xcc
|
|
/* f037820: 02002025 */ or $a0,$s0,$zero
|
|
/* f037824: 8fa5012c */ lw $a1,0x12c($sp)
|
|
/* f037828: 27a600dc */ addiu $a2,$sp,0xdc
|
|
/* f03782c: 0fc0dbb9 */ jal chrGoPosInitCheap
|
|
/* f037830: 8fa7003c */ lw $a3,0x3c($sp)
|
|
/* f037834: 10000057 */ b .L0f037994
|
|
/* f037838: 02002025 */ or $a0,$s0,$zero
|
|
.L0f03783c:
|
|
/* f03783c: 2401000f */ addiu $at,$zero,0xf
|
|
/* f037840: 54610054 */ bnel $v1,$at,.L0f037994
|
|
/* f037844: 02002025 */ or $a0,$s0,$zero
|
|
/* f037848: 92020064 */ lbu $v0,0x64($s0)
|
|
/* f03784c: 00024880 */ sll $t1,$v0,0x2
|
|
/* f037850: 02094021 */ addu $t0,$s0,$t1
|
|
/* f037854: 8d0a004c */ lw $t2,0x4c($t0)
|
|
/* f037858: 1540002d */ bnez $t2,.L0f037910
|
|
/* f03785c: 00000000 */ nop
|
|
/* f037860: 920b0065 */ lbu $t3,0x65($s0)
|
|
/* f037864: 28410002 */ slti $at,$v0,0x2
|
|
/* f037868: 316c0008 */ andi $t4,$t3,0x8
|
|
/* f03786c: 11800005 */ beqz $t4,.L0f037884
|
|
/* f037870: 00000000 */ nop
|
|
/* f037874: 0fc0ea5a */ jal chrStartPath
|
|
/* f037878: 02002025 */ or $a0,$s0,$zero
|
|
/* f03787c: 10000045 */ b .L0f037994
|
|
/* f037880: 02002025 */ or $a0,$s0,$zero
|
|
.L0f037884:
|
|
/* f037884: 14200012 */ bnez $at,.L0f0378d0
|
|
/* f037888: 00026880 */ sll $t5,$v0,0x2
|
|
/* f03788c: 020d7021 */ addu $t6,$s0,$t5
|
|
/* f037890: 8dc20044 */ lw $v0,0x44($t6)
|
|
/* f037894: 24050002 */ addiu $a1,$zero,0x2
|
|
/* f037898: 27a60068 */ addiu $a2,$sp,0x68
|
|
/* f03789c: 0fc456ac */ jal padUnpack
|
|
/* f0378a0: 8c440000 */ lw $a0,0x0($v0)
|
|
/* f0378a4: 8faf00f0 */ lw $t7,0xf0($sp)
|
|
/* f0378a8: c7a60068 */ lwc1 $f6,0x68($sp)
|
|
/* f0378ac: c7b00070 */ lwc1 $f16,0x70($sp)
|
|
/* f0378b0: c5e40008 */ lwc1 $f4,0x8($t7)
|
|
/* f0378b4: c5e80010 */ lwc1 $f8,0x10($t7)
|
|
/* f0378b8: 46062301 */ sub.s $f12,$f4,$f6
|
|
/* f0378bc: 0fc259d4 */ jal atan2f
|
|
/* f0378c0: 46104381 */ sub.s $f14,$f8,$f16
|
|
/* f0378c4: 44050000 */ mfc1 $a1,$f0
|
|
/* f0378c8: 0fc0f94e */ jal chrSetLookAngle
|
|
/* f0378cc: 02002025 */ or $a0,$s0,$zero
|
|
.L0f0378d0:
|
|
/* f0378d0: 12000003 */ beqz $s0,.L0f0378e0
|
|
/* f0378d4: 00001025 */ or $v0,$zero,$zero
|
|
/* f0378d8: 10000001 */ b .L0f0378e0
|
|
/* f0378dc: 920202fe */ lbu $v0,0x2fe($s0)
|
|
.L0f0378e0:
|
|
/* f0378e0: 10400007 */ beqz $v0,.L0f037900
|
|
/* f0378e4: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0378e8: 12000003 */ beqz $s0,.L0f0378f8
|
|
/* f0378ec: 00001025 */ or $v0,$zero,$zero
|
|
/* f0378f0: 10000001 */ b .L0f0378f8
|
|
/* f0378f4: 920202fe */ lbu $v0,0x2fe($s0)
|
|
.L0f0378f8:
|
|
/* f0378f8: 54410026 */ bnel $v0,$at,.L0f037994
|
|
/* f0378fc: 02002025 */ or $a0,$s0,$zero
|
|
.L0f037900:
|
|
/* f037900: 0fc0bb57 */ jal chrStop
|
|
/* f037904: 02002025 */ or $a0,$s0,$zero
|
|
/* f037908: 10000022 */ b .L0f037994
|
|
/* f03790c: 02002025 */ or $a0,$s0,$zero
|
|
.L0f037910:
|
|
/* f037910: 0fc0dccf */ jal chrGoPosAdvanceWaypoint
|
|
/* f037914: 02002025 */ or $a0,$s0,$zero
|
|
/* f037918: 02002025 */ or $a0,$s0,$zero
|
|
/* f03791c: 27a5005c */ addiu $a1,$sp,0x5c
|
|
/* f037920: 0fc0dc22 */ jal chrGoPosGetCurWaypointInfo
|
|
/* f037924: 27a6004c */ addiu $a2,$sp,0x4c
|
|
/* f037928: 02002025 */ or $a0,$s0,$zero
|
|
/* f03792c: 8fa5012c */ lw $a1,0x12c($sp)
|
|
/* f037930: 27a6005c */ addiu $a2,$sp,0x5c
|
|
/* f037934: 0fc0dbb9 */ jal chrGoPosInitCheap
|
|
/* f037938: 8fa7003c */ lw $a3,0x3c($sp)
|
|
/* f03793c: 10000015 */ b .L0f037994
|
|
/* f037940: 02002025 */ or $a0,$s0,$zero
|
|
.L0f037944:
|
|
/* f037944: 8fa2012c */ lw $v0,0x12c($sp)
|
|
/* f037948: 2401000e */ addiu $at,$zero,0xe
|
|
/* f03794c: 3c19800a */ lui $t9,%hi(g_Vars+0x8)
|
|
/* f037950: c44a003c */ lwc1 $f10,0x3c($v0)
|
|
/* f037954: 3c09800a */ lui $t1,%hi(g_Vars+0x8)
|
|
/* f037958: e44a0038 */ swc1 $f10,0x38($v0)
|
|
/* f03795c: 82180007 */ lb $t8,0x7($s0)
|
|
/* f037960: 17010007 */ bne $t8,$at,.L0f037980
|
|
/* f037964: 00000000 */ nop
|
|
/* f037968: 8f399fc8 */ lw $t9,%lo(g_Vars+0x8)($t9)
|
|
/* f03796c: 02002025 */ or $a0,$s0,$zero
|
|
/* f037970: 0fc0dd60 */ jal func0f037580
|
|
/* f037974: ae190078 */ sw $t9,0x78($s0)
|
|
/* f037978: 10000006 */ b .L0f037994
|
|
/* f03797c: 02002025 */ or $a0,$s0,$zero
|
|
.L0f037980:
|
|
/* f037980: 8d299fc8 */ lw $t1,%lo(g_Vars+0x8)($t1)
|
|
/* f037984: 02002025 */ or $a0,$s0,$zero
|
|
/* f037988: 0fc0dcba */ jal chrGoPosInitExpensive
|
|
/* f03798c: ae0900a8 */ sw $t1,0xa8($s0)
|
|
/* f037990: 02002025 */ or $a0,$s0,$zero
|
|
.L0f037994:
|
|
/* f037994: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f037998: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03799c: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.L0f0379a0:
|
|
/* f0379a0: 8fb00030 */ lw $s0,0x30($sp)
|
|
/* f0379a4: 27bd0128 */ addiu $sp,$sp,0x128
|
|
/* f0379a8: 03e00008 */ jr $ra
|
|
/* f0379ac: 00000000 */ nop
|
|
);
|
|
|
|
/**
|
|
* Calculate the chr's position when using the cheap method of navigating.
|
|
*
|
|
* The cheap method is used when the chr is off-screen. It measures the distance
|
|
* between two consecutive pads in the route and simply increments a distance
|
|
* value along that segment on each tick, ignoring collisions. Meanwhile, the
|
|
* chr's prop->pos is left as the original location where this segment started.
|
|
*
|
|
* The calculation is finding the fraction of the distance travelled in this
|
|
* segment, then finding the position between the starting pos and the pad's
|
|
* pos.
|
|
*
|
|
* The pos variable is used for both loading the next pad's position and for
|
|
* returning the new position, which means there's less stack usage.
|
|
*/
|
|
void chrCalculatePosition(struct chrdata *chr, struct coord *pos)
|
|
{
|
|
s16 rooms[8];
|
|
f32 frac;
|
|
|
|
if (chr->actiontype == ACT_PATROL && chr->act_patrol.waydata.mode == WAYMODE_CHEAP) {
|
|
chrPatrolGetCurWaypointInfo(chr, pos, rooms);
|
|
|
|
if (!(chr->act_patrol.waydata.segdistdone >= chr->act_patrol.waydata.segdisttotal)
|
|
&& chr->act_patrol.waydata.segdisttotal > 0) {
|
|
frac = chr->act_patrol.waydata.segdistdone / chr->act_patrol.waydata.segdisttotal;
|
|
pos->x = (pos->x - chr->prop->pos.x) * frac + chr->prop->pos.x;
|
|
pos->y = (pos->y - chr->prop->pos.y) * frac + chr->prop->pos.y;
|
|
pos->z = (pos->z - chr->prop->pos.z) * frac + chr->prop->pos.z;
|
|
}
|
|
} else if (chr->actiontype == ACT_GOPOS && chr->act_gopos.waydata.mode == WAYMODE_CHEAP) {
|
|
chrGoPosGetCurWaypointInfo(chr, pos, rooms);
|
|
|
|
if (!(chr->act_gopos.waydata.segdistdone >= chr->act_gopos.waydata.segdisttotal)
|
|
&& chr->act_gopos.waydata.segdisttotal > 0) {
|
|
frac = chr->act_gopos.waydata.segdistdone / chr->act_gopos.waydata.segdisttotal;
|
|
pos->x = (pos->x - chr->prop->pos.x) * frac + chr->prop->pos.x;
|
|
pos->y = (pos->y - chr->prop->pos.y) * frac + chr->prop->pos.y;
|
|
pos->z = (pos->z - chr->prop->pos.z) * frac + chr->prop->pos.z;
|
|
}
|
|
} else {
|
|
pos->x = chr->prop->pos.x;
|
|
pos->y = chr->prop->pos.y;
|
|
pos->z = chr->prop->pos.z;
|
|
}
|
|
}
|
|
|
|
void chrGoPosChooseAnimation(struct chrdata *chr)
|
|
{
|
|
s32 speed = chr->act_gopos.flags & 3;
|
|
s32 male = g_Bodies[chr->bodynum].ismale;
|
|
struct prop *gun1 = chrGetEquippedWeaponProp(chr, 1);
|
|
struct prop *gun2 = chrGetEquippedWeaponProp(chr, 0);
|
|
s32 flip = false;
|
|
s32 heavy;
|
|
s32 race = CHRRACE(chr);
|
|
s32 anim = -1;
|
|
u32 stack;
|
|
f32 sp64 = 0.5;
|
|
f32 sp60 = 16;
|
|
f32 animspeed = -1;
|
|
f32 startframe = 16;
|
|
|
|
if (chr->actiontype == ACT_GOPOS) {
|
|
chr->act_gopos.flags &= ~GOPOSFLAG_20;
|
|
}
|
|
|
|
if (race == RACE_EYESPY || chr->aibot) {
|
|
return;
|
|
}
|
|
|
|
if (race == RACE_HUMAN || race == RACE_SKEDAR) {
|
|
if ((gun1 && gun2) || (!gun1 && !gun2)) {
|
|
heavy = false;
|
|
flip = random() % 2;
|
|
} else {
|
|
if (weaponIsOneHanded(gun1) || weaponIsOneHanded(gun2)) {
|
|
heavy = false;
|
|
flip = (bool)gun1 != false;
|
|
} else {
|
|
heavy = true;
|
|
flip = (bool)gun1 != false;
|
|
}
|
|
}
|
|
|
|
if (race == RACE_SKEDAR) {
|
|
if (speed == SPEED_RUN) {
|
|
anim = 0x394;
|
|
} else if (speed == SPEED_JOG) {
|
|
anim = 0x393;
|
|
} else if (speed == SPEED_WALK) {
|
|
anim = 0x392;
|
|
}
|
|
} else {
|
|
if (heavy) {
|
|
if (speed == SPEED_RUN) {
|
|
// Human, heavy weapon, running
|
|
if (chr->ivebeenhit == IBH_LFOOT
|
|
|| chr->ivebeenhit == IBH_LSHIN
|
|
|| chr->ivebeenhit == IBH_LTHIGH
|
|
|| chr->ivebeenhit == IBH_RFOOT
|
|
|| chr->ivebeenhit == IBH_RSHIN
|
|
|| chr->ivebeenhit == IBH_RTHIGH) {
|
|
anim = 0x20a;
|
|
sp64 = 0.4;
|
|
} else if (chr->ivebeenhit == IBH_LHAND
|
|
|| chr->ivebeenhit == IBH_LFOREARM
|
|
|| chr->ivebeenhit == IBH_LBICEP
|
|
|| chr->ivebeenhit == IBH_RHAND
|
|
|| chr->ivebeenhit == IBH_RFOREARM
|
|
|| chr->ivebeenhit == IBH_RBICEP) {
|
|
anim = 0x20d;
|
|
sp64 = 0.4;
|
|
} else {
|
|
anim = 0x29;
|
|
sp64 = 0.25;
|
|
}
|
|
|
|
if (chr->chrflags & CHRCFLAG_RUNFASTER) {
|
|
animspeed = 0.65;
|
|
startframe = 48;
|
|
} else {
|
|
animspeed = 0.5;
|
|
startframe = 48;
|
|
}
|
|
} else if (speed == SPEED_JOG) {
|
|
// Human, heavy weapon, jogging
|
|
if (chr->ivebeenhit == IBH_LFOOT
|
|
|| chr->ivebeenhit == IBH_LSHIN
|
|
|| chr->ivebeenhit == IBH_LTHIGH
|
|
|| chr->ivebeenhit == IBH_RFOOT
|
|
|| chr->ivebeenhit == IBH_RSHIN
|
|
|| chr->ivebeenhit == IBH_RTHIGH) {
|
|
anim = 0x1f9;
|
|
} else if (chr->ivebeenhit == IBH_LHAND
|
|
|| chr->ivebeenhit == IBH_LFOREARM
|
|
|| chr->ivebeenhit == IBH_LBICEP
|
|
|| chr->ivebeenhit == IBH_RHAND
|
|
|| chr->ivebeenhit == IBH_RFOREARM
|
|
|| chr->ivebeenhit == IBH_RBICEP) {
|
|
anim = 0x1f8;
|
|
} else {
|
|
anim = 0x2a;
|
|
}
|
|
} else {
|
|
// Human, heavy weapon, walking
|
|
if (chr->ivebeenhit == IBH_LFOOT
|
|
|| chr->ivebeenhit == IBH_LSHIN
|
|
|| chr->ivebeenhit == IBH_LTHIGH
|
|
|| chr->ivebeenhit == IBH_RFOOT
|
|
|| chr->ivebeenhit == IBH_RSHIN
|
|
|| chr->ivebeenhit == IBH_RTHIGH) {
|
|
anim = 0x1f9;
|
|
} else if (chr->ivebeenhit == IBH_LHAND
|
|
|| chr->ivebeenhit == IBH_LFOREARM
|
|
|| chr->ivebeenhit == IBH_LBICEP
|
|
|| chr->ivebeenhit == IBH_RHAND
|
|
|| chr->ivebeenhit == IBH_RFOREARM
|
|
|| chr->ivebeenhit == IBH_RBICEP) {
|
|
anim = 0x1f8;
|
|
} else {
|
|
if (random() % 2) {
|
|
anim = 0x18;
|
|
} else {
|
|
anim = 0x28;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (speed == SPEED_RUN) {
|
|
// Human, light weapon, running
|
|
if (chr->ivebeenhit == IBH_LFOOT
|
|
|| chr->ivebeenhit == IBH_LSHIN
|
|
|| chr->ivebeenhit == IBH_LTHIGH) {
|
|
anim = 0x20a;
|
|
flip = true;
|
|
sp64 = 0.4;
|
|
} else if (chr->ivebeenhit == IBH_RFOOT
|
|
|| chr->ivebeenhit == IBH_RSHIN
|
|
|| chr->ivebeenhit == IBH_RTHIGH) {
|
|
anim = 0x20a;
|
|
sp64 = 0.4;
|
|
flip = false;
|
|
} else if (chr->ivebeenhit == IBH_LHAND
|
|
|| chr->ivebeenhit == IBH_LFOREARM
|
|
|| chr->ivebeenhit == IBH_LBICEP) {
|
|
anim = 0x20d;
|
|
sp64 = 0.4;
|
|
flip = true;
|
|
} else if (chr->ivebeenhit == IBH_RHAND
|
|
|| chr->ivebeenhit == IBH_RFOREARM
|
|
|| chr->ivebeenhit == IBH_RBICEP) {
|
|
anim = 0x20d;
|
|
sp64 = 0.4;
|
|
flip = false;
|
|
} else if (male) {
|
|
if (random() % 4 == 0) {
|
|
sp64 = 0.25;
|
|
anim = 0x1e;
|
|
} else {
|
|
sp64 = 0.25;
|
|
anim = 0x5a;
|
|
sp60 = 24;
|
|
}
|
|
} else {
|
|
if (random() % 2) {
|
|
anim = 0x5e;
|
|
} else {
|
|
anim = 0x5a;
|
|
}
|
|
|
|
sp64 = 0.25;
|
|
}
|
|
|
|
if (chr->chrflags & CHRCFLAG_RUNFASTER) {
|
|
animspeed = 0.65;
|
|
startframe = 48;
|
|
} else {
|
|
animspeed = 0.5;
|
|
startframe = 48;
|
|
}
|
|
} else if (speed == SPEED_JOG) {
|
|
// Human, light weapon, jogging
|
|
if (chr->ivebeenhit == IBH_LFOOT
|
|
|| chr->ivebeenhit == IBH_LSHIN
|
|
|| chr->ivebeenhit == IBH_LTHIGH) {
|
|
anim = 0x1f9;
|
|
flip = false;
|
|
} else if (chr->ivebeenhit == IBH_RFOOT
|
|
|| chr->ivebeenhit == IBH_RSHIN
|
|
|| chr->ivebeenhit == IBH_RTHIGH) {
|
|
anim = 0x1f9;
|
|
flip = true;
|
|
} else if (chr->ivebeenhit == IBH_LHAND
|
|
|| chr->ivebeenhit == IBH_LFOREARM
|
|
|| chr->ivebeenhit == IBH_LBICEP) {
|
|
anim = 0x1f8;
|
|
flip = false;
|
|
} else if (chr->ivebeenhit == IBH_RHAND
|
|
|| chr->ivebeenhit == IBH_RFOREARM
|
|
|| chr->ivebeenhit == IBH_RBICEP) {
|
|
anim = 0x1f8;
|
|
flip = true;
|
|
} else if (stageGetIndex(g_Vars.stagenum) == STAGE_MAIANSOS) {
|
|
anim = 0x5f;
|
|
} else if (male) {
|
|
if (random() % 2) {
|
|
anim = 0x1d;
|
|
} else {
|
|
anim = 0x59;
|
|
}
|
|
} else {
|
|
if (chr->myaction != MA_PANIC) {
|
|
if (random() % 2) {
|
|
anim = 0x5d;
|
|
} else {
|
|
anim = 0x73;
|
|
}
|
|
} else {
|
|
anim = 0x21d;
|
|
}
|
|
}
|
|
} else {
|
|
// Human, light weapon, walking
|
|
s32 anims[] = {0x6b, 0x1b, 0x16};
|
|
|
|
if (chr->ivebeenhit == IBH_LFOOT
|
|
|| chr->ivebeenhit == IBH_LSHIN
|
|
|| chr->ivebeenhit == IBH_LTHIGH) {
|
|
anim = 0x1f9;
|
|
flip = false;
|
|
} else if (chr->ivebeenhit == IBH_RFOOT
|
|
|| chr->ivebeenhit == IBH_RSHIN
|
|
|| chr->ivebeenhit == IBH_RTHIGH) {
|
|
anim = 0x1f9;
|
|
flip = true;
|
|
} else if (chr->ivebeenhit == IBH_LHAND
|
|
|| chr->ivebeenhit == IBH_LFOREARM
|
|
|| chr->ivebeenhit == IBH_LBICEP) {
|
|
anim = 0x1f8;
|
|
flip = false;
|
|
} else if (chr->ivebeenhit == IBH_RHAND
|
|
|| chr->ivebeenhit == IBH_RFOREARM
|
|
|| chr->ivebeenhit == IBH_RBICEP) {
|
|
anim = 0x1f8;
|
|
flip = true;
|
|
} else if (male) {
|
|
anim = anims[random() % 3];
|
|
} else {
|
|
if (random() % 2) {
|
|
anim = 0x5c;
|
|
} else {
|
|
anim = 0x72;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else if (race == RACE_DRCAROLL) {
|
|
if (speed == SPEED_RUN) {
|
|
anim = 0x160;
|
|
} else if (speed == SPEED_WALK) {
|
|
anim = 0x15f;
|
|
} else {
|
|
anim = 0x15f;
|
|
}
|
|
} else if (race == RACE_ROBOT) {
|
|
anim = 0x238;
|
|
}
|
|
|
|
if (anim >= 0) {
|
|
modelSetAnimation(chr->model, anim, flip, 0, sp64, sp60);
|
|
|
|
if (animspeed > 0) {
|
|
modelSetAnimSpeed(chr->model, animspeed, startframe);
|
|
}
|
|
}
|
|
}
|
|
|
|
u32 var8006827c = 0x0000006b;
|
|
u32 var80068280 = 0x0000001b;
|
|
u32 var80068284 = 0x00000016;
|
|
|
|
s32 chrGoToPos(struct chrdata *chr, struct coord *pos, s16 *room, u32 flags)
|
|
{
|
|
struct prop *prop = chr->prop;
|
|
struct waypoint *nextwaypoint;
|
|
struct waypoint *lastwaypoint;
|
|
struct waypoint *waypoints[MAX_CHRWAYPOINTS];
|
|
s32 i;
|
|
struct coord curwppos;
|
|
s16 curwprooms[8];
|
|
s32 isgopos = chr->actiontype == ACT_GOPOS
|
|
&& (chr->act_gopos.flags & GOPOSFLAG_SPEED) == (flags & 0xff & GOPOSFLAG_SPEED)
|
|
&& !func0f02e064(chr);
|
|
s32 ischeap = isgopos && chr->act_gopos.waydata.mode == WAYMODE_CHEAP;
|
|
struct coord prevpos;
|
|
s32 numwaypoints = 0;
|
|
|
|
for (i = 0; chr->prop->rooms[i] != -1; i++) {
|
|
chr->oldrooms[i] = chr->prop->rooms[i];
|
|
}
|
|
|
|
chr->oldrooms[i] = -1;
|
|
|
|
if (isgopos && ischeap && chr->act_gopos.waypoints[chr->act_gopos.curindex]) {
|
|
nextwaypoint = chr->act_gopos.waypoints[chr->act_gopos.curindex];
|
|
} else {
|
|
nextwaypoint = waypointFindClosestToPos(&prop->pos, prop->rooms);
|
|
}
|
|
|
|
lastwaypoint = waypointFindClosestToPos(pos, room);
|
|
|
|
if (nextwaypoint && lastwaypoint) {
|
|
waypointSetHashThing(
|
|
((g_Vars.lvframe60 >> 9) << 7) + chr->chrnum * 8,
|
|
((g_Vars.lvframe60 >> 9) << 7) + chr->chrnum * 8);
|
|
numwaypoints = waypointFindRoute(nextwaypoint, lastwaypoint, waypoints, MAX_CHRWAYPOINTS);
|
|
waypointSetHashThing(0, 0);
|
|
}
|
|
|
|
if (numwaypoints > 1) {
|
|
if (isgopos && ischeap) {
|
|
chrCalculatePosition(chr, &prevpos);
|
|
} else {
|
|
prevpos.x = prop->pos.x;
|
|
prevpos.y = prop->pos.y;
|
|
prevpos.z = prop->pos.z;
|
|
}
|
|
|
|
chrStopFiring(chr);
|
|
|
|
chr->actiontype = ACT_GOPOS;
|
|
chr->act_gopos.pos.x = pos->x;
|
|
chr->act_gopos.pos.y = pos->y;
|
|
chr->act_gopos.pos.z = pos->z;
|
|
roomsCopy(room, chr->act_gopos.rooms);
|
|
|
|
chr->act_gopos.target = lastwaypoint;
|
|
chr->act_gopos.curindex = 0;
|
|
chr->act_gopos.flags = flags | GOPOSFLAG_INIT;
|
|
chr->act_gopos.unk0ac = 0;
|
|
chr->unk32c_21 = 0;
|
|
chr->act_gopos.waydata.age = random() % 100;
|
|
chr->act_gopos.waydata.unk03 = 0;
|
|
|
|
if (!isgopos) {
|
|
chr->act_gopos.cheapend60 = -1;
|
|
}
|
|
|
|
for (i = 0; i < MAX_CHRWAYPOINTS; i++) {
|
|
chr->act_gopos.waypoints[i] = waypoints[i];
|
|
}
|
|
|
|
chrGoPosInitExpensive(chr);
|
|
chr->goposforce = -1;
|
|
chr->sleep = 0;
|
|
chr->liftaction = 0;
|
|
chr->act_gopos.flags &= ~(GOPOSFLAG_80 | GOPOSFLAG_DUCK | GOPOSFLAG_20);
|
|
chrGoPosGetCurWaypointInfo(chr, &curwppos, curwprooms);
|
|
|
|
if ((!isgopos || ischeap)
|
|
&& g_Vars.normmplayerisrunning == false
|
|
&& (prop->flags & (PROPFLAG_80 | PROPFLAG_40 | PROPFLAG_02)) == 0
|
|
&& func0f036c08(chr, &curwppos, curwprooms)
|
|
&& chr->inlift == false) {
|
|
chrGoPosInitCheap(chr, &chr->act_gopos.waydata, &curwppos, &prevpos);
|
|
}
|
|
|
|
if (chr->act_gopos.waydata.mode != WAYMODE_CHEAP
|
|
&& modelIsAnimMerging(chr->model) && !chr->aibot) {
|
|
chr->hidden |= CHRHFLAG_NEEDANIM;
|
|
return true;
|
|
} else {
|
|
if (!isgopos) {
|
|
chrGoPosChooseAnimation(chr);
|
|
}
|
|
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
struct path *pathFindById(u32 path_id)
|
|
{
|
|
s32 i = 0;
|
|
|
|
for (i = 0; g_StageSetup.paths[i].pads; i++) {
|
|
if (path_id == g_StageSetup.paths[i].id) {
|
|
return &g_StageSetup.paths[i];
|
|
}
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f038868
|
|
/* f038868: 27bdffb0 */ addiu $sp,$sp,-80
|
|
/* f03886c: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f038870: afa40050 */ sw $a0,0x50($sp)
|
|
/* f038874: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f038878: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03887c: 8fa40050 */ lw $a0,0x50($sp)
|
|
/* f038880: 00002825 */ or $a1,$zero,$zero
|
|
/* f038884: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f038888: afa2004c */ sw $v0,0x4c($sp)
|
|
/* f03888c: 8fa80050 */ lw $t0,0x50($sp)
|
|
/* f038890: 8fa7004c */ lw $a3,0x4c($sp)
|
|
/* f038894: 00402825 */ or $a1,$v0,$zero
|
|
/* f038898: 11000003 */ beqz $t0,.L0f0388a8
|
|
/* f03889c: 00001825 */ or $v1,$zero,$zero
|
|
/* f0388a0: 10000001 */ b .L0f0388a8
|
|
/* f0388a4: 910302fe */ lbu $v1,0x2fe($t0)
|
|
.L0f0388a8:
|
|
/* f0388a8: 850e0010 */ lh $t6,0x10($t0)
|
|
/* f0388ac: 3c188008 */ lui $t8,%hi(g_Bodies)
|
|
/* f0388b0: 24010003 */ addiu $at,$zero,0x3
|
|
/* f0388b4: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0388b8: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0388bc: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f0388c0: 030fc021 */ addu $t8,$t8,$t7
|
|
/* f0388c4: 8f18cf04 */ lw $t8,%lo(g_Bodies)($t8)
|
|
/* f0388c8: 0018cfc2 */ srl $t9,$t8,0x1f
|
|
/* f0388cc: 106100af */ beq $v1,$at,.L0f038b8c
|
|
/* f0388d0: afb90038 */ sw $t9,0x38($sp)
|
|
/* f0388d4: 10600003 */ beqz $v1,.L0f0388e4
|
|
/* f0388d8: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0388dc: 54610090 */ bnel $v1,$at,.L0f038b20
|
|
/* f0388e0: 24010002 */ addiu $at,$zero,0x2
|
|
.L0f0388e4:
|
|
/* f0388e4: 10e00003 */ beqz $a3,.L0f0388f4
|
|
/* f0388e8: 00000000 */ nop
|
|
/* f0388ec: 54400006 */ bnezl $v0,.L0f038908
|
|
/* f0388f0: afa00040 */ sw $zero,0x40($sp)
|
|
.L0f0388f4:
|
|
/* f0388f4: 14e00009 */ bnez $a3,.L0f03891c
|
|
/* f0388f8: 00e02025 */ or $a0,$a3,$zero
|
|
/* f0388fc: 54400008 */ bnezl $v0,.L0f038920
|
|
/* f038900: afa3003c */ sw $v1,0x3c($sp)
|
|
/* f038904: afa00040 */ sw $zero,0x40($sp)
|
|
.L0f038908:
|
|
/* f038908: 0c004b70 */ jal random
|
|
/* f03890c: afa3003c */ sw $v1,0x3c($sp)
|
|
/* f038910: 8fa3003c */ lw $v1,0x3c($sp)
|
|
/* f038914: 10000016 */ b .L0f038970
|
|
/* f038918: 30460001 */ andi $a2,$v0,0x1
|
|
.L0f03891c:
|
|
/* f03891c: afa3003c */ sw $v1,0x3c($sp)
|
|
.L0f038920:
|
|
/* f038920: afa50048 */ sw $a1,0x48($sp)
|
|
/* f038924: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f038928: afa7004c */ sw $a3,0x4c($sp)
|
|
/* f03892c: 8fa3003c */ lw $v1,0x3c($sp)
|
|
/* f038930: 8fa50048 */ lw $a1,0x48($sp)
|
|
/* f038934: 14400008 */ bnez $v0,.L0f038958
|
|
/* f038938: 8fa7004c */ lw $a3,0x4c($sp)
|
|
/* f03893c: 00a02025 */ or $a0,$a1,$zero
|
|
/* f038940: afa3003c */ sw $v1,0x3c($sp)
|
|
/* f038944: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f038948: afa7004c */ sw $a3,0x4c($sp)
|
|
/* f03894c: 8fa3003c */ lw $v1,0x3c($sp)
|
|
/* f038950: 10400004 */ beqz $v0,.L0f038964
|
|
/* f038954: 8fa7004c */ lw $a3,0x4c($sp)
|
|
.L0f038958:
|
|
/* f038958: afa00040 */ sw $zero,0x40($sp)
|
|
/* f03895c: 10000004 */ b .L0f038970
|
|
/* f038960: 0007302b */ sltu $a2,$zero,$a3
|
|
.L0f038964:
|
|
/* f038964: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f038968: afa90040 */ sw $t1,0x40($sp)
|
|
/* f03896c: 0007302b */ sltu $a2,$zero,$a3
|
|
.L0f038970:
|
|
/* f038970: 24010001 */ addiu $at,$zero,0x1
|
|
/* f038974: 1461000e */ bne $v1,$at,.L0f0389b0
|
|
/* f038978: 24040028 */ addiu $a0,$zero,0x28
|
|
/* f03897c: 3c013e80 */ lui $at,0x3e80
|
|
/* f038980: 44812000 */ mtc1 $at,$f4
|
|
/* f038984: 8faa0050 */ lw $t2,0x50($sp)
|
|
/* f038988: 3c014180 */ lui $at,0x4180
|
|
/* f03898c: 44813000 */ mtc1 $at,$f6
|
|
/* f038990: 8d440020 */ lw $a0,0x20($t2)
|
|
/* f038994: 24050392 */ addiu $a1,$zero,0x392
|
|
/* f038998: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f03899c: e7a40010 */ swc1 $f4,0x10($sp)
|
|
/* f0389a0: 0c007733 */ jal modelSetAnimation
|
|
/* f0389a4: e7a60014 */ swc1 $f6,0x14($sp)
|
|
/* f0389a8: 10000079 */ b .L0f038b90
|
|
/* f0389ac: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f0389b0:
|
|
/* f0389b0: 0fc0b7fc */ jal func0f02dff0
|
|
/* f0389b4: afa60044 */ sw $a2,0x44($sp)
|
|
/* f0389b8: e7a00024 */ swc1 $f0,0x24($sp)
|
|
/* f0389bc: 0fc0b7fc */ jal func0f02dff0
|
|
/* f0389c0: 2404006b */ addiu $a0,$zero,0x6b
|
|
/* f0389c4: 3c013f00 */ lui $at,0x3f00
|
|
/* f0389c8: 44814000 */ mtc1 $at,$f8
|
|
/* f0389cc: c7aa0024 */ lwc1 $f10,0x24($sp)
|
|
/* f0389d0: 8fab0040 */ lw $t3,0x40($sp)
|
|
/* f0389d4: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0389d8: 460a4402 */ mul.s $f16,$f8,$f10
|
|
/* f0389dc: 8faf0038 */ lw $t7,0x38($sp)
|
|
/* f0389e0: 11600018 */ beqz $t3,.L0f038a44
|
|
/* f0389e4: 46008083 */ div.s $f2,$f16,$f0
|
|
/* f0389e8: afa60044 */ sw $a2,0x44($sp)
|
|
/* f0389ec: 0c004b70 */ jal random
|
|
/* f0389f0: e7a20034 */ swc1 $f2,0x34($sp)
|
|
/* f0389f4: 304c0001 */ andi $t4,$v0,0x1
|
|
/* f0389f8: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0389fc: 11800003 */ beqz $t4,.L0f038a0c
|
|
/* f038a00: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
/* f038a04: 10000002 */ b .L0f038a10
|
|
/* f038a08: 24020018 */ addiu $v0,$zero,0x18
|
|
.L0f038a0c:
|
|
/* f038a0c: 24020028 */ addiu $v0,$zero,0x28
|
|
.L0f038a10:
|
|
/* f038a10: 8fad0050 */ lw $t5,0x50($sp)
|
|
/* f038a14: 3c014180 */ lui $at,0x4180
|
|
/* f038a18: 44819000 */ mtc1 $at,$f18
|
|
/* f038a1c: 00022c00 */ sll $a1,$v0,0x10
|
|
/* f038a20: 00057403 */ sra $t6,$a1,0x10
|
|
/* f038a24: 8da40020 */ lw $a0,0x20($t5)
|
|
/* f038a28: e7a20010 */ swc1 $f2,0x10($sp)
|
|
/* f038a2c: 01c02825 */ or $a1,$t6,$zero
|
|
/* f038a30: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f038a34: 0c007733 */ jal modelSetAnimation
|
|
/* f038a38: e7b20014 */ swc1 $f18,0x14($sp)
|
|
/* f038a3c: 10000054 */ b .L0f038b90
|
|
/* f038a40: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f038a44:
|
|
/* f038a44: 11e0001e */ beqz $t7,.L0f038ac0
|
|
/* f038a48: 3c198007 */ lui $t9,%hi(var8006827c)
|
|
/* f038a4c: 2739827c */ addiu $t9,$t9,%lo(var8006827c)
|
|
/* f038a50: 8f210000 */ lw $at,0x0($t9)
|
|
/* f038a54: 27b80028 */ addiu $t8,$sp,0x28
|
|
/* f038a58: 8f2a0004 */ lw $t2,0x4($t9)
|
|
/* f038a5c: af010000 */ sw $at,0x0($t8)
|
|
/* f038a60: 8f210008 */ lw $at,0x8($t9)
|
|
/* f038a64: af0a0004 */ sw $t2,0x4($t8)
|
|
/* f038a68: af010008 */ sw $at,0x8($t8)
|
|
/* f038a6c: e7a20034 */ swc1 $f2,0x34($sp)
|
|
/* f038a70: 0c004b70 */ jal random
|
|
/* f038a74: afa60044 */ sw $a2,0x44($sp)
|
|
/* f038a78: 24010003 */ addiu $at,$zero,0x3
|
|
/* f038a7c: 0041001b */ divu $zero,$v0,$at
|
|
/* f038a80: 8fab0050 */ lw $t3,0x50($sp)
|
|
/* f038a84: 00006010 */ mfhi $t4
|
|
/* f038a88: 000c6880 */ sll $t5,$t4,0x2
|
|
/* f038a8c: 3c014180 */ lui $at,0x4180
|
|
/* f038a90: 44812000 */ mtc1 $at,$f4
|
|
/* f038a94: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
/* f038a98: 03ad2821 */ addu $a1,$sp,$t5
|
|
/* f038a9c: 84a5002a */ lh $a1,0x2a($a1)
|
|
/* f038aa0: 8d640020 */ lw $a0,0x20($t3)
|
|
/* f038aa4: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f038aa8: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f038aac: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f038ab0: 0c007733 */ jal modelSetAnimation
|
|
/* f038ab4: e7a20010 */ swc1 $f2,0x10($sp)
|
|
/* f038ab8: 10000035 */ b .L0f038b90
|
|
/* f038abc: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f038ac0:
|
|
/* f038ac0: afa60044 */ sw $a2,0x44($sp)
|
|
/* f038ac4: 0c004b70 */ jal random
|
|
/* f038ac8: e7a20034 */ swc1 $f2,0x34($sp)
|
|
/* f038acc: 304e0001 */ andi $t6,$v0,0x1
|
|
/* f038ad0: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f038ad4: 11c00003 */ beqz $t6,.L0f038ae4
|
|
/* f038ad8: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
/* f038adc: 10000002 */ b .L0f038ae8
|
|
/* f038ae0: 2402005c */ addiu $v0,$zero,0x5c
|
|
.L0f038ae4:
|
|
/* f038ae4: 24020072 */ addiu $v0,$zero,0x72
|
|
.L0f038ae8:
|
|
/* f038ae8: 8faf0050 */ lw $t7,0x50($sp)
|
|
/* f038aec: 3c014180 */ lui $at,0x4180
|
|
/* f038af0: 44813000 */ mtc1 $at,$f6
|
|
/* f038af4: 00022c00 */ sll $a1,$v0,0x10
|
|
/* f038af8: 00054c03 */ sra $t1,$a1,0x10
|
|
/* f038afc: 8de40020 */ lw $a0,0x20($t7)
|
|
/* f038b00: e7a20010 */ swc1 $f2,0x10($sp)
|
|
/* f038b04: 01202825 */ or $a1,$t1,$zero
|
|
/* f038b08: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f038b0c: 0c007733 */ jal modelSetAnimation
|
|
/* f038b10: e7a60014 */ swc1 $f6,0x14($sp)
|
|
/* f038b14: 1000001e */ b .L0f038b90
|
|
/* f038b18: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f038b1c: 24010002 */ addiu $at,$zero,0x2
|
|
.L0f038b20:
|
|
/* f038b20: 1461000d */ bne $v1,$at,.L0f038b58
|
|
/* f038b24: 2405015f */ addiu $a1,$zero,0x15f
|
|
/* f038b28: 3c013f00 */ lui $at,0x3f00
|
|
/* f038b2c: 44814000 */ mtc1 $at,$f8
|
|
/* f038b30: 3c014180 */ lui $at,0x4180
|
|
/* f038b34: 44815000 */ mtc1 $at,$f10
|
|
/* f038b38: 8d040020 */ lw $a0,0x20($t0)
|
|
/* f038b3c: 00003025 */ or $a2,$zero,$zero
|
|
/* f038b40: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f038b44: e7a80010 */ swc1 $f8,0x10($sp)
|
|
/* f038b48: 0c007733 */ jal modelSetAnimation
|
|
/* f038b4c: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f038b50: 1000000f */ b .L0f038b90
|
|
/* f038b54: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f038b58:
|
|
/* f038b58: 24010004 */ addiu $at,$zero,0x4
|
|
/* f038b5c: 1461000b */ bne $v1,$at,.L0f038b8c
|
|
/* f038b60: 24050238 */ addiu $a1,$zero,0x238
|
|
/* f038b64: 3c013f00 */ lui $at,0x3f00
|
|
/* f038b68: 44818000 */ mtc1 $at,$f16
|
|
/* f038b6c: 3c014180 */ lui $at,0x4180
|
|
/* f038b70: 44819000 */ mtc1 $at,$f18
|
|
/* f038b74: 8d040020 */ lw $a0,0x20($t0)
|
|
/* f038b78: 00003025 */ or $a2,$zero,$zero
|
|
/* f038b7c: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f038b80: e7b00010 */ swc1 $f16,0x10($sp)
|
|
/* f038b84: 0c007733 */ jal modelSetAnimation
|
|
/* f038b88: e7b20014 */ swc1 $f18,0x14($sp)
|
|
.L0f038b8c:
|
|
/* f038b8c: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f038b90:
|
|
/* f038b90: 27bd0050 */ addiu $sp,$sp,0x50
|
|
/* f038b94: 03e00008 */ jr $ra
|
|
/* f038b98: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f038b9c
|
|
.late_rodata
|
|
glabel var7f1a8dd0
|
|
.word 0x3f99999a
|
|
.text
|
|
/* f038b9c: 27bdfef0 */ addiu $sp,$sp,-272
|
|
/* f038ba0: f7b40028 */ sdc1 $f20,0x28($sp)
|
|
/* f038ba4: afbf0044 */ sw $ra,0x44($sp)
|
|
/* f038ba8: afb40040 */ sw $s4,0x40($sp)
|
|
/* f038bac: afb3003c */ sw $s3,0x3c($sp)
|
|
/* f038bb0: afb20038 */ sw $s2,0x38($sp)
|
|
/* f038bb4: afb10034 */ sw $s1,0x34($sp)
|
|
/* f038bb8: afb00030 */ sw $s0,0x30($sp)
|
|
/* f038bbc: 4480a000 */ mtc1 $zero,$f20
|
|
/* f038bc0: 00809825 */ or $s3,$a0,$zero
|
|
/* f038bc4: 00a0a025 */ or $s4,$a1,$zero
|
|
/* f038bc8: 2412ffff */ addiu $s2,$zero,-1
|
|
/* f038bcc: 10800003 */ beqz $a0,.L0f038bdc
|
|
/* f038bd0: 8c91001c */ lw $s1,0x1c($a0)
|
|
/* f038bd4: 10000002 */ b .L0f038be0
|
|
/* f038bd8: 908202fe */ lbu $v0,0x2fe($a0)
|
|
.L0f038bdc:
|
|
/* f038bdc: 00001025 */ or $v0,$zero,$zero
|
|
.L0f038be0:
|
|
/* f038be0: 24010003 */ addiu $at,$zero,0x3
|
|
/* f038be4: 504100ca */ beql $v0,$at,.L0f038f10
|
|
/* f038be8: 8fbf0044 */ lw $ra,0x44($sp)
|
|
/* f038bec: 82620333 */ lb $v0,0x333($s3)
|
|
/* f038bf0: 0442002e */ bltzl $v0,.L0f038cac
|
|
/* f038bf4: 262b0008 */ addiu $t3,$s1,0x8
|
|
/* f038bf8: 968e0006 */ lhu $t6,0x6($s4)
|
|
/* f038bfc: 0002c080 */ sll $t8,$v0,0x2
|
|
/* f038c00: 004e082a */ slt $at,$v0,$t6
|
|
/* f038c04: 50200029 */ beqzl $at,.L0f038cac
|
|
/* f038c08: 262b0008 */ addiu $t3,$s1,0x8
|
|
/* f038c0c: 8e8f0000 */ lw $t7,0x0($s4)
|
|
/* f038c10: 24050042 */ addiu $a1,$zero,0x42
|
|
/* f038c14: 27a600a8 */ addiu $a2,$sp,0xa8
|
|
/* f038c18: 01f81821 */ addu $v1,$t7,$t8
|
|
/* f038c1c: 0fc456ac */ jal padUnpack
|
|
/* f038c20: 8c640000 */ lw $a0,0x0($v1)
|
|
/* f038c24: 8fb900f0 */ lw $t9,0xf0($sp)
|
|
/* f038c28: 2408ffff */ addiu $t0,$zero,-1
|
|
/* f038c2c: a7a8007e */ sh $t0,0x7e($sp)
|
|
/* f038c30: 02202025 */ or $a0,$s1,$zero
|
|
/* f038c34: 27a50070 */ addiu $a1,$sp,0x70
|
|
/* f038c38: 27a60078 */ addiu $a2,$sp,0x78
|
|
/* f038c3c: 27a70074 */ addiu $a3,$sp,0x74
|
|
/* f038c40: 0fc0a277 */ jal propChrGetBbox
|
|
/* f038c44: a7b9007c */ sh $t9,0x7c($sp)
|
|
/* f038c48: 02602025 */ or $a0,$s3,$zero
|
|
/* f038c4c: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f038c50: 00002825 */ or $a1,$zero,$zero
|
|
/* f038c54: 24090020 */ addiu $t1,$zero,0x20
|
|
/* f038c58: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f038c5c: afaa0014 */ sw $t2,0x14($sp)
|
|
/* f038c60: afa90010 */ sw $t1,0x10($sp)
|
|
/* f038c64: c620000c */ lwc1 $f0,0xc($s1)
|
|
/* f038c68: c7a40078 */ lwc1 $f4,0x78($sp)
|
|
/* f038c6c: c7a80074 */ lwc1 $f8,0x74($sp)
|
|
/* f038c70: 26240008 */ addiu $a0,$s1,0x8
|
|
/* f038c74: 46002181 */ sub.s $f6,$f4,$f0
|
|
/* f038c78: 26250028 */ addiu $a1,$s1,0x28
|
|
/* f038c7c: 27a600a8 */ addiu $a2,$sp,0xa8
|
|
/* f038c80: 46004281 */ sub.s $f10,$f8,$f0
|
|
/* f038c84: e7a60018 */ swc1 $f6,0x18($sp)
|
|
/* f038c88: 27a7007c */ addiu $a3,$sp,0x7c
|
|
/* f038c8c: 0c00b610 */ jal func0002d840
|
|
/* f038c90: e7aa001c */ swc1 $f10,0x1c($sp)
|
|
/* f038c94: 10400002 */ beqz $v0,.L0f038ca0
|
|
/* f038c98: 02602025 */ or $a0,$s3,$zero
|
|
/* f038c9c: 82720333 */ lb $s2,0x333($s3)
|
|
.L0f038ca0:
|
|
/* f038ca0: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f038ca4: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f038ca8: 262b0008 */ addiu $t3,$s1,0x8
|
|
.L0f038cac:
|
|
/* f038cac: 262c0028 */ addiu $t4,$s1,0x28
|
|
/* f038cb0: afac0050 */ sw $t4,0x50($sp)
|
|
/* f038cb4: 06410028 */ bgez $s2,.L0f038d58
|
|
/* f038cb8: afab0054 */ sw $t3,0x54($sp)
|
|
/* f038cbc: 8e820000 */ lw $v0,0x0($s4)
|
|
/* f038cc0: 00008025 */ or $s0,$zero,$zero
|
|
/* f038cc4: 00003825 */ or $a3,$zero,$zero
|
|
/* f038cc8: 8c4d0000 */ lw $t5,0x0($v0)
|
|
/* f038ccc: 05a00022 */ bltz $t5,.L0f038d58
|
|
/* f038cd0: 00107080 */ sll $t6,$s0,0x2
|
|
.L0f038cd4:
|
|
/* f038cd4: 004e1821 */ addu $v1,$v0,$t6
|
|
/* f038cd8: 8c640000 */ lw $a0,0x0($v1)
|
|
/* f038cdc: afa7004c */ sw $a3,0x4c($sp)
|
|
/* f038ce0: 24050002 */ addiu $a1,$zero,0x2
|
|
/* f038ce4: 0fc456ac */ jal padUnpack
|
|
/* f038ce8: 27a600a8 */ addiu $a2,$sp,0xa8
|
|
/* f038cec: c7b200a8 */ lwc1 $f18,0xa8($sp)
|
|
/* f038cf0: c6300008 */ lwc1 $f16,0x8($s1)
|
|
/* f038cf4: c7ae00b0 */ lwc1 $f14,0xb0($sp)
|
|
/* f038cf8: c62c0010 */ lwc1 $f12,0x10($s1)
|
|
/* f038cfc: 46109001 */ sub.s $f0,$f18,$f16
|
|
/* f038d00: 8fa7004c */ lw $a3,0x4c($sp)
|
|
/* f038d04: 06400009 */ bltz $s2,.L0f038d2c
|
|
/* f038d08: 460c7081 */ sub.s $f2,$f14,$f12
|
|
/* f038d0c: 46000202 */ mul.s $f8,$f0,$f0
|
|
/* f038d10: 00000000 */ nop
|
|
/* f038d14: 46021282 */ mul.s $f10,$f2,$f2
|
|
/* f038d18: 460a4400 */ add.s $f16,$f8,$f10
|
|
/* f038d1c: 4614803c */ c.lt.s $f16,$f20
|
|
/* f038d20: 00000000 */ nop
|
|
/* f038d24: 45000005 */ bc1f .L0f038d3c
|
|
/* f038d28: 00000000 */ nop
|
|
.L0f038d2c:
|
|
/* f038d2c: 46000482 */ mul.s $f18,$f0,$f0
|
|
/* f038d30: 02009025 */ or $s2,$s0,$zero
|
|
/* f038d34: 46021102 */ mul.s $f4,$f2,$f2
|
|
/* f038d38: 46049500 */ add.s $f20,$f18,$f4
|
|
.L0f038d3c:
|
|
/* f038d3c: 8e820000 */ lw $v0,0x0($s4)
|
|
/* f038d40: 24e70004 */ addiu $a3,$a3,0x4
|
|
/* f038d44: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f038d48: 00477821 */ addu $t7,$v0,$a3
|
|
/* f038d4c: 8df80000 */ lw $t8,0x0($t7)
|
|
/* f038d50: 0703ffe0 */ bgezl $t8,.L0f038cd4
|
|
/* f038d54: 00107080 */ sll $t6,$s0,0x2
|
|
.L0f038d58:
|
|
/* f038d58: 8e990000 */ lw $t9,0x0($s4)
|
|
/* f038d5c: 00124080 */ sll $t0,$s2,0x2
|
|
/* f038d60: 24050042 */ addiu $a1,$zero,0x42
|
|
/* f038d64: 03281821 */ addu $v1,$t9,$t0
|
|
/* f038d68: 8c640000 */ lw $a0,0x0($v1)
|
|
/* f038d6c: 0fc456ac */ jal padUnpack
|
|
/* f038d70: 27a600a8 */ addiu $a2,$sp,0xa8
|
|
/* f038d74: 8fa900f0 */ lw $t1,0xf0($sp)
|
|
/* f038d78: 240affff */ addiu $t2,$zero,-1
|
|
/* f038d7c: 27ab007c */ addiu $t3,$sp,0x7c
|
|
/* f038d80: a7aa007e */ sh $t2,0x7e($sp)
|
|
/* f038d84: afab0010 */ sw $t3,0x10($sp)
|
|
/* f038d88: afa00014 */ sw $zero,0x14($sp)
|
|
/* f038d8c: 3c017f1b */ lui $at,%hi(var7f1a8dd0)
|
|
/* f038d90: a7a9007c */ sh $t1,0x7c($sp)
|
|
/* f038d94: c6660024 */ lwc1 $f6,0x24($s3)
|
|
/* f038d98: c4288dd0 */ lwc1 $f8,%lo(var7f1a8dd0)($at)
|
|
/* f038d9c: 240c0030 */ addiu $t4,$zero,0x30
|
|
/* f038da0: afac001c */ sw $t4,0x1c($sp)
|
|
/* f038da4: 46083282 */ mul.s $f10,$f6,$f8
|
|
/* f038da8: 02602025 */ or $a0,$s3,$zero
|
|
/* f038dac: 8fa50054 */ lw $a1,0x54($sp)
|
|
/* f038db0: 8fa60050 */ lw $a2,0x50($sp)
|
|
/* f038db4: 27a700a8 */ addiu $a3,$sp,0xa8
|
|
/* f038db8: 0fc0d953 */ jal func0f03654c
|
|
/* f038dbc: e7aa0018 */ swc1 $f10,0x18($sp)
|
|
/* f038dc0: 1040004a */ beqz $v0,.L0f038eec
|
|
/* f038dc4: 8fa900f0 */ lw $t1,0xf0($sp)
|
|
/* f038dc8: 0fc0fe3d */ jal chrStopFiring
|
|
/* f038dcc: 02602025 */ or $a0,$s3,$zero
|
|
/* f038dd0: 240d000e */ addiu $t5,$zero,0xe
|
|
/* f038dd4: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f038dd8: a26d0007 */ sb $t5,0x7($s3)
|
|
/* f038ddc: ae74002c */ sw $s4,0x2c($s3)
|
|
/* f038de0: ae720030 */ sw $s2,0x30($s3)
|
|
/* f038de4: 0c004b70 */ jal random
|
|
/* f038de8: ae6e0034 */ sw $t6,0x34($s3)
|
|
/* f038dec: 24010064 */ addiu $at,$zero,0x64
|
|
/* f038df0: 0041001b */ divu $zero,$v0,$at
|
|
/* f038df4: 44808000 */ mtc1 $zero,$f16
|
|
/* f038df8: 00007810 */ mfhi $t7
|
|
/* f038dfc: 2418ffff */ addiu $t8,$zero,-1
|
|
/* f038e00: ae6f0060 */ sw $t7,0x60($s3)
|
|
/* f038e04: a260003b */ sb $zero,0x3b($s3)
|
|
/* f038e08: ae780078 */ sw $t8,0x78($s3)
|
|
/* f038e0c: 02602025 */ or $a0,$s3,$zero
|
|
/* f038e10: 0fc0dd60 */ jal func0f037580
|
|
/* f038e14: e670007c */ swc1 $f16,0x7c($s3)
|
|
/* f038e18: 8e790030 */ lw $t9,0x30($s3)
|
|
/* f038e1c: 27b0009c */ addiu $s0,$sp,0x9c
|
|
/* f038e20: 27b1008c */ addiu $s1,$sp,0x8c
|
|
/* f038e24: a2600008 */ sb $zero,0x8($s3)
|
|
/* f038e28: a260032c */ sb $zero,0x32c($s3)
|
|
/* f038e2c: 02203025 */ or $a2,$s1,$zero
|
|
/* f038e30: 02002825 */ or $a1,$s0,$zero
|
|
/* f038e34: 02602025 */ or $a0,$s3,$zero
|
|
/* f038e38: 0fc0dd58 */ jal chrPatrolGetCurWaypointInfo
|
|
/* f038e3c: a2790333 */ sb $t9,0x333($s3)
|
|
/* f038e40: 3c08800a */ lui $t0,%hi(g_Vars+0x318)
|
|
/* f038e44: 8d08a2d8 */ lw $t0,%lo(g_Vars+0x318)($t0)
|
|
/* f038e48: 55000014 */ bnezl $t0,.L0f038e9c
|
|
/* f038e4c: 826e0068 */ lb $t6,0x68($s3)
|
|
/* f038e50: 8e69001c */ lw $t1,0x1c($s3)
|
|
/* f038e54: 02602025 */ or $a0,$s3,$zero
|
|
/* f038e58: 02002825 */ or $a1,$s0,$zero
|
|
/* f038e5c: 912a0001 */ lbu $t2,0x1($t1)
|
|
/* f038e60: 314b00c2 */ andi $t3,$t2,0xc2
|
|
/* f038e64: 5560000d */ bnezl $t3,.L0f038e9c
|
|
/* f038e68: 826e0068 */ lb $t6,0x68($s3)
|
|
/* f038e6c: 0fc0db02 */ jal func0f036c08
|
|
/* f038e70: 02203025 */ or $a2,$s1,$zero
|
|
/* f038e74: 50400009 */ beqzl $v0,.L0f038e9c
|
|
/* f038e78: 826e0068 */ lb $t6,0x68($s3)
|
|
/* f038e7c: 826d032d */ lb $t5,0x32d($s3)
|
|
/* f038e80: 02602025 */ or $a0,$s3,$zero
|
|
/* f038e84: 26650038 */ addiu $a1,$s3,0x38
|
|
/* f038e88: 05a00003 */ bltz $t5,.L0f038e98
|
|
/* f038e8c: 02003025 */ or $a2,$s0,$zero
|
|
/* f038e90: 0fc0dbb9 */ jal chrGoPosInitCheap
|
|
/* f038e94: 8fa70054 */ lw $a3,0x54($sp)
|
|
.L0f038e98:
|
|
/* f038e98: 826e0068 */ lb $t6,0x68($s3)
|
|
.L0f038e9c:
|
|
/* f038e9c: 24010006 */ addiu $at,$zero,0x6
|
|
/* f038ea0: 11c1000a */ beq $t6,$at,.L0f038ecc
|
|
/* f038ea4: 00000000 */ nop
|
|
/* f038ea8: 0c0076e5 */ jal modelIsAnimMerging
|
|
/* f038eac: 8e640020 */ lw $a0,0x20($s3)
|
|
/* f038eb0: 10400006 */ beqz $v0,.L0f038ecc
|
|
/* f038eb4: 00000000 */ nop
|
|
/* f038eb8: 8e6f0014 */ lw $t7,0x14($s3)
|
|
/* f038ebc: 3c010020 */ lui $at,0x20
|
|
/* f038ec0: 01e1c025 */ or $t8,$t7,$at
|
|
/* f038ec4: 10000011 */ b .L0f038f0c
|
|
/* f038ec8: ae780014 */ sw $t8,0x14($s3)
|
|
.L0f038ecc:
|
|
/* f038ecc: 0fc0e21a */ jal func0f038868
|
|
/* f038ed0: 02602025 */ or $a0,$s3,$zero
|
|
/* f038ed4: 8e790014 */ lw $t9,0x14($s3)
|
|
/* f038ed8: 3c01ffdf */ lui $at,0xffdf
|
|
/* f038edc: 3421ffff */ ori $at,$at,0xffff
|
|
/* f038ee0: 03214024 */ and $t0,$t9,$at
|
|
/* f038ee4: 10000009 */ b .L0f038f0c
|
|
/* f038ee8: ae680014 */ sw $t0,0x14($s3)
|
|
.L0f038eec:
|
|
/* f038eec: 240affff */ addiu $t2,$zero,-1
|
|
/* f038ef0: a7a90060 */ sh $t1,0x60($sp)
|
|
/* f038ef4: a7aa0062 */ sh $t2,0x62($sp)
|
|
/* f038ef8: 02602025 */ or $a0,$s3,$zero
|
|
/* f038efc: 27a500a8 */ addiu $a1,$sp,0xa8
|
|
/* f038f00: 27a60060 */ addiu $a2,$sp,0x60
|
|
/* f038f04: 0fc0e10f */ jal chrGoToPos
|
|
/* f038f08: 24070008 */ addiu $a3,$zero,0x8
|
|
.L0f038f0c:
|
|
/* f038f0c: 8fbf0044 */ lw $ra,0x44($sp)
|
|
.L0f038f10:
|
|
/* f038f10: d7b40028 */ ldc1 $f20,0x28($sp)
|
|
/* f038f14: 8fb00030 */ lw $s0,0x30($sp)
|
|
/* f038f18: 8fb10034 */ lw $s1,0x34($sp)
|
|
/* f038f1c: 8fb20038 */ lw $s2,0x38($sp)
|
|
/* f038f20: 8fb3003c */ lw $s3,0x3c($sp)
|
|
/* f038f24: 8fb40040 */ lw $s4,0x40($sp)
|
|
/* f038f28: 03e00008 */ jr $ra
|
|
/* f038f2c: 27bd0110 */ addiu $sp,$sp,0x110
|
|
);
|
|
|
|
void chrRecordLastVisibleTargetTime(struct chrdata *chr)
|
|
{
|
|
chr->lastvisibletarget60 = g_Vars.lvframe60;
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrCanSeeEntity
|
|
/* f038f40: 27bdff88 */ addiu $sp,$sp,-120
|
|
/* f038f44: 8fae0088 */ lw $t6,0x88($sp)
|
|
/* f038f48: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f038f4c: afa40078 */ sw $a0,0x78($sp)
|
|
/* f038f50: 31cf0002 */ andi $t7,$t6,0x2
|
|
/* f038f54: afa5007c */ sw $a1,0x7c($sp)
|
|
/* f038f58: afa60080 */ sw $a2,0x80($sp)
|
|
/* f038f5c: afa70084 */ sw $a3,0x84($sp)
|
|
/* f038f60: 11e00004 */ beqz $t7,.L0f038f74
|
|
/* f038f64: afa00074 */ sw $zero,0x74($sp)
|
|
/* f038f68: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f038f6c: 1000009a */ b .L0f0391d8
|
|
/* f038f70: afb80074 */ sw $t8,0x74($sp)
|
|
.L0f038f74:
|
|
/* f038f74: 2419083f */ addiu $t9,$zero,0x83f
|
|
/* f038f78: afb9004c */ sw $t9,0x4c($sp)
|
|
/* f038f7c: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f038f80: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f038f84: 00002825 */ or $a1,$zero,$zero
|
|
/* f038f88: 14400003 */ bnez $v0,.L0f038f98
|
|
/* f038f8c: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f038f90: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f038f94: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f038f98:
|
|
/* f038f98: 1040000e */ beqz $v0,.L0f038fd4
|
|
/* f038f9c: 27a70068 */ addiu $a3,$sp,0x68
|
|
/* f038fa0: 8c430004 */ lw $v1,0x4($v0)
|
|
/* f038fa4: 24010018 */ addiu $at,$zero,0x18
|
|
/* f038fa8: 24080a3f */ addiu $t0,$zero,0xa3f
|
|
/* f038fac: 9064005c */ lbu $a0,0x5c($v1)
|
|
/* f038fb0: 10810005 */ beq $a0,$at,.L0f038fc8
|
|
/* f038fb4: 24010019 */ addiu $at,$zero,0x19
|
|
/* f038fb8: 10810003 */ beq $a0,$at,.L0f038fc8
|
|
/* f038fbc: 24010034 */ addiu $at,$zero,0x34
|
|
/* f038fc0: 14810003 */ bne $a0,$at,.L0f038fd0
|
|
/* f038fc4: 240908bf */ addiu $t1,$zero,0x8bf
|
|
.L0f038fc8:
|
|
/* f038fc8: 10000002 */ b .L0f038fd4
|
|
/* f038fcc: afa8004c */ sw $t0,0x4c($sp)
|
|
.L0f038fd0:
|
|
/* f038fd0: afa9004c */ sw $t1,0x4c($sp)
|
|
.L0f038fd4:
|
|
/* f038fd4: 27aa0058 */ addiu $t2,$sp,0x58
|
|
/* f038fd8: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f038fdc: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f038fe0: 8fa50088 */ lw $a1,0x88($sp)
|
|
/* f038fe4: 0fc122de */ jal func0f048b78
|
|
/* f038fe8: 8fa6008c */ lw $a2,0x8c($sp)
|
|
/* f038fec: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f038ff0: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f038ff4: 00002825 */ or $a1,$zero,$zero
|
|
/* f038ff8: 8fa20088 */ lw $v0,0x88($sp)
|
|
/* f038ffc: 304b0200 */ andi $t3,$v0,0x200
|
|
/* f039000: 11600046 */ beqz $t3,.L0f03911c
|
|
/* f039004: 304e0004 */ andi $t6,$v0,0x4
|
|
/* f039008: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f03900c: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f039010: 904c0000 */ lbu $t4,0x0($v0)
|
|
/* f039014: 24010006 */ addiu $at,$zero,0x6
|
|
/* f039018: 00402025 */ or $a0,$v0,$zero
|
|
/* f03901c: 15810003 */ bne $t4,$at,.L0f03902c
|
|
/* f039020: 3c0d800a */ lui $t5,%hi(g_Vars+0x324)
|
|
/* f039024: 8dada2e4 */ lw $t5,%lo(g_Vars+0x324)($t5)
|
|
/* f039028: 11a00068 */ beqz $t5,.L0f0391cc
|
|
.L0f03902c:
|
|
/* f03902c: 00002825 */ or $a1,$zero,$zero
|
|
/* f039030: 0fc1905e */ jal propSetCollisionsEnabled
|
|
/* f039034: afa40054 */ sw $a0,0x54($sp)
|
|
/* f039038: 8fae0084 */ lw $t6,0x84($sp)
|
|
/* f03903c: 8faf0078 */ lw $t7,0x78($sp)
|
|
/* f039040: 8fa4007c */ lw $a0,0x7c($sp)
|
|
/* f039044: 11c00023 */ beqz $t6,.L0f0390d4
|
|
/* f039048: 8fa50080 */ lw $a1,0x80($sp)
|
|
/* f03904c: 8df80018 */ lw $t8,0x18($t7)
|
|
/* f039050: 33190020 */ andi $t9,$t8,0x20
|
|
/* f039054: 53200020 */ beqzl $t9,.L0f0390d8
|
|
/* f039058: 8fab004c */ lw $t3,0x4c($sp)
|
|
/* f03905c: 8fa4007c */ lw $a0,0x7c($sp)
|
|
/* f039060: 3c01428c */ lui $at,0x428c
|
|
/* f039064: 44814000 */ mtc1 $at,$f8
|
|
/* f039068: c4840000 */ lwc1 $f4,0x0($a0)
|
|
/* f03906c: 8fa50080 */ lw $a1,0x80($sp)
|
|
/* f039070: 27a60038 */ addiu $a2,$sp,0x38
|
|
/* f039074: e7a40038 */ swc1 $f4,0x38($sp)
|
|
/* f039078: c4860004 */ lwc1 $f6,0x4($a0)
|
|
/* f03907c: 27a70028 */ addiu $a3,$sp,0x28
|
|
/* f039080: 46083280 */ add.s $f10,$f6,$f8
|
|
/* f039084: e7aa003c */ swc1 $f10,0x3c($sp)
|
|
/* f039088: c4900008 */ lwc1 $f16,0x8($a0)
|
|
/* f03908c: 0fc19776 */ jal func0f065dd8
|
|
/* f039090: e7b00040 */ swc1 $f16,0x40($sp)
|
|
/* f039094: 8fa8004c */ lw $t0,0x4c($sp)
|
|
/* f039098: 24090010 */ addiu $t1,$zero,0x10
|
|
/* f03909c: afa90014 */ sw $t1,0x14($sp)
|
|
/* f0390a0: 27a40038 */ addiu $a0,$sp,0x38
|
|
/* f0390a4: 27a50028 */ addiu $a1,$sp,0x28
|
|
/* f0390a8: 27a60068 */ addiu $a2,$sp,0x68
|
|
/* f0390ac: 27a70058 */ addiu $a3,$sp,0x58
|
|
/* f0390b0: 0c00b70f */ jal hasLineOfSight
|
|
/* f0390b4: afa80010 */ sw $t0,0x10($sp)
|
|
/* f0390b8: 50400014 */ beqzl $v0,.L0f03910c
|
|
/* f0390bc: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0390c0: 0fc0e3cc */ jal chrRecordLastVisibleTargetTime
|
|
/* f0390c4: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f0390c8: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f0390cc: 1000000e */ b .L0f039108
|
|
/* f0390d0: afaa0074 */ sw $t2,0x74($sp)
|
|
.L0f0390d4:
|
|
/* f0390d4: 8fab004c */ lw $t3,0x4c($sp)
|
|
.L0f0390d8:
|
|
/* f0390d8: 240c0010 */ addiu $t4,$zero,0x10
|
|
/* f0390dc: afac0014 */ sw $t4,0x14($sp)
|
|
/* f0390e0: 27a60068 */ addiu $a2,$sp,0x68
|
|
/* f0390e4: 27a70058 */ addiu $a3,$sp,0x58
|
|
/* f0390e8: 0c00b70f */ jal hasLineOfSight
|
|
/* f0390ec: afab0010 */ sw $t3,0x10($sp)
|
|
/* f0390f0: 50400006 */ beqzl $v0,.L0f03910c
|
|
/* f0390f4: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0390f8: 0fc0e3cc */ jal chrRecordLastVisibleTargetTime
|
|
/* f0390fc: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f039100: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f039104: afad0074 */ sw $t5,0x74($sp)
|
|
.L0f039108:
|
|
/* f039108: 8fa40054 */ lw $a0,0x54($sp)
|
|
.L0f03910c:
|
|
/* f03910c: 0fc1905e */ jal propSetCollisionsEnabled
|
|
/* f039110: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f039114: 1000002e */ b .L0f0391d0
|
|
/* f039118: 8fa40078 */ lw $a0,0x78($sp)
|
|
.L0f03911c:
|
|
/* f03911c: 11c0001e */ beqz $t6,.L0f039198
|
|
/* f039120: 30490008 */ andi $t1,$v0,0x8
|
|
/* f039124: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f039128: 0fc126d1 */ jal chrFindById
|
|
/* f03912c: 8fa5008c */ lw $a1,0x8c($sp)
|
|
/* f039130: 10400004 */ beqz $v0,.L0f039144
|
|
/* f039134: 00402025 */ or $a0,$v0,$zero
|
|
/* f039138: 8c4f001c */ lw $t7,0x1c($v0)
|
|
/* f03913c: 55e00003 */ bnezl $t7,.L0f03914c
|
|
/* f039140: 00002825 */ or $a1,$zero,$zero
|
|
.L0f039144:
|
|
/* f039144: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f039148: 00002825 */ or $a1,$zero,$zero
|
|
.L0f03914c:
|
|
/* f03914c: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f039150: afa40050 */ sw $a0,0x50($sp)
|
|
/* f039154: 8fb8004c */ lw $t8,0x4c($sp)
|
|
/* f039158: 24190010 */ addiu $t9,$zero,0x10
|
|
/* f03915c: afb90014 */ sw $t9,0x14($sp)
|
|
/* f039160: 8fa4007c */ lw $a0,0x7c($sp)
|
|
/* f039164: 8fa50080 */ lw $a1,0x80($sp)
|
|
/* f039168: 27a60068 */ addiu $a2,$sp,0x68
|
|
/* f03916c: 27a70058 */ addiu $a3,$sp,0x58
|
|
/* f039170: 0c00b70f */ jal hasLineOfSight
|
|
/* f039174: afb80010 */ sw $t8,0x10($sp)
|
|
/* f039178: 10400003 */ beqz $v0,.L0f039188
|
|
/* f03917c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f039180: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f039184: afa80074 */ sw $t0,0x74($sp)
|
|
.L0f039188:
|
|
/* f039188: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f03918c: 8fa40050 */ lw $a0,0x50($sp)
|
|
/* f039190: 1000000f */ b .L0f0391d0
|
|
/* f039194: 8fa40078 */ lw $a0,0x78($sp)
|
|
.L0f039198:
|
|
/* f039198: 1120000c */ beqz $t1,.L0f0391cc
|
|
/* f03919c: 8fa4007c */ lw $a0,0x7c($sp)
|
|
/* f0391a0: 8faa004c */ lw $t2,0x4c($sp)
|
|
/* f0391a4: 240b0010 */ addiu $t3,$zero,0x10
|
|
/* f0391a8: afab0014 */ sw $t3,0x14($sp)
|
|
/* f0391ac: 8fa50080 */ lw $a1,0x80($sp)
|
|
/* f0391b0: 27a60068 */ addiu $a2,$sp,0x68
|
|
/* f0391b4: 27a70058 */ addiu $a3,$sp,0x58
|
|
/* f0391b8: 0c00b70f */ jal hasLineOfSight
|
|
/* f0391bc: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f0391c0: 10400002 */ beqz $v0,.L0f0391cc
|
|
/* f0391c4: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0391c8: afac0074 */ sw $t4,0x74($sp)
|
|
.L0f0391cc:
|
|
/* f0391cc: 8fa40078 */ lw $a0,0x78($sp)
|
|
.L0f0391d0:
|
|
/* f0391d0: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f0391d4: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f0391d8:
|
|
/* f0391d8: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f0391dc: 8fa20074 */ lw $v0,0x74($sp)
|
|
/* f0391e0: 27bd0078 */ addiu $sp,$sp,0x78
|
|
/* f0391e4: 03e00008 */ jr $ra
|
|
/* f0391e8: 00000000 */ nop
|
|
);
|
|
|
|
bool chrCanSeeAttackTarget(struct chrdata *chr, struct coord *pos, s16 *rooms, bool arg3)
|
|
{
|
|
u32 entitytype = ENTITYTYPE_TARGET;
|
|
u32 entityid = 0;
|
|
|
|
if (chr->actiontype == ACT_ATTACK) {
|
|
entitytype = chr->act_attack.entitytype;
|
|
entityid = chr->act_attack.entityid;
|
|
}
|
|
|
|
return chrCanSeeEntity(chr, pos, rooms, arg3, entitytype, entityid);
|
|
}
|
|
|
|
bool chrCanSeeChr(struct chrdata *chr, struct chrdata *target, s16 *room)
|
|
{
|
|
bool cansee = false;
|
|
u32 stack;
|
|
s16 sp88[] = {-1, 0, 0, 0, 0, 0, 0, 0};
|
|
|
|
if (func0f19294c(chr, target) == 0) {
|
|
struct prop *prop = chr->prop;
|
|
struct coord pos;
|
|
s16 rooms[8];
|
|
|
|
pos.x = prop->pos.x;
|
|
pos.y = chr->ground + chr->chrheight - 20;
|
|
pos.z = prop->pos.z;
|
|
|
|
chrSetOrUnsetHiddenFlag00000100(chr, false);
|
|
chrSetOrUnsetHiddenFlag00000100(target, false);
|
|
|
|
func0f065e74(&prop->pos, prop->rooms, &pos, rooms);
|
|
|
|
if (func0002dcfc(&pos, rooms, &target->prop->pos, target->prop->rooms, sp88, 307, 8)) {
|
|
cansee = true;
|
|
}
|
|
|
|
chrSetOrUnsetHiddenFlag00000100(chr, true);
|
|
chrSetOrUnsetHiddenFlag00000100(target, true);
|
|
}
|
|
|
|
if (room) {
|
|
*room = sp88[0];
|
|
}
|
|
|
|
return cansee;
|
|
}
|
|
|
|
u32 var80068298 = 0x01000000;
|
|
u32 var8006829c = 0x0000027c;
|
|
u32 var800682a0 = 0x00000005;
|
|
u32 var800682a4 = 0x00140000;
|
|
u32 var800682a8 = 0x42700000;
|
|
u32 var800682ac = 0x0000027d;
|
|
u32 var800682b0 = 0x00000005;
|
|
u32 var800682b4 = 0x00140000;
|
|
u32 var800682b8 = 0x41f80000;
|
|
u32 var800682bc = 0x0000027e;
|
|
u32 var800682c0 = 0x00000005;
|
|
u32 var800682c4 = 0x00140000;
|
|
u32 var800682c8 = 0x42400000;
|
|
u32 var800682cc = 0x0000027f;
|
|
u32 var800682d0 = 0x00000005;
|
|
u32 var800682d4 = 0x00140000;
|
|
u32 var800682d8 = 0x428a0000;
|
|
u32 var800682dc = 0x00000212;
|
|
u32 var800682e0 = 0x00000005;
|
|
u32 var800682e4 = 0x00140000;
|
|
u32 var800682e8 = 0x42800000;
|
|
u32 var800682ec = 0x00000213;
|
|
u32 var800682f0 = 0x00000005;
|
|
u32 var800682f4 = 0x00140000;
|
|
u32 var800682f8 = 0x42500000;
|
|
u32 var800682fc = 0x00000214;
|
|
u32 var80068300 = 0x00000005;
|
|
u32 var80068304 = 0x00140000;
|
|
u32 var80068308 = 0x424c0000;
|
|
u32 var8006830c = 0x0000020e;
|
|
u32 var80068310 = 0x00000005;
|
|
u32 var80068314 = 0x00140000;
|
|
u32 var80068318 = 0x42540000;
|
|
u32 var8006831c = 0x0000020f;
|
|
u32 var80068320 = 0x00000005;
|
|
u32 var80068324 = 0x00140000;
|
|
u32 var80068328 = 0x42b20000;
|
|
u32 var8006832c = 0x00000210;
|
|
u32 var80068330 = 0x00000005;
|
|
u32 var80068334 = 0x00140000;
|
|
u32 var80068338 = 0x428e0000;
|
|
u32 var8006833c = 0x00000215;
|
|
u32 var80068340 = 0x00000005;
|
|
u32 var80068344 = 0x00140000;
|
|
u32 var80068348 = 0x42780000;
|
|
u32 var8006834c = 0x00000211;
|
|
u32 var80068350 = 0x00000005;
|
|
u32 var80068354 = 0x00140000;
|
|
u32 var80068358 = 0x42900000;
|
|
u32 var8006835c = 0x0000034c;
|
|
u32 var80068360 = 0x0000000f;
|
|
u32 var80068364 = 0x00190000;
|
|
u32 var80068368 = 0x42c80000;
|
|
u32 var8006836c = 0x0000034d;
|
|
u32 var80068370 = 0x0000000f;
|
|
u32 var80068374 = 0x00190000;
|
|
u32 var80068378 = 0xbf800000;
|
|
u32 var8006837c = 0x00000395;
|
|
u32 var80068380 = 0x0000000f;
|
|
u32 var80068384 = 0x00190000;
|
|
u32 var80068388 = 0xbf800000;
|
|
u32 var8006838c = 0x00000346;
|
|
u32 var80068390 = 0x0000000f;
|
|
u32 var80068394 = 0x00190000;
|
|
u32 var80068398 = 0xbf800000;
|
|
u32 var8006839c = 0x00000347;
|
|
u32 var800683a0 = 0x0000000f;
|
|
u32 var800683a4 = 0x00190000;
|
|
u32 var800683a8 = 0xbf800000;
|
|
u32 var800683ac = 0x0000034f;
|
|
|
|
bool chrCanSeeTarget(struct chrdata *chr)
|
|
{
|
|
bool cansee;
|
|
struct prop *prop = chrGetTargetProp(chr);
|
|
cansee = chrCanSeeChr(chr, prop->chr, NULL);
|
|
|
|
if (cansee) {
|
|
chrRecordLastVisibleTargetTime(chr);
|
|
}
|
|
|
|
return cansee;
|
|
}
|
|
|
|
bool chrHasLineOfSightToPos(struct chrdata *viewerchr, struct coord *pos, s16 *rooms)
|
|
{
|
|
struct prop *viewerprop = viewerchr->prop;
|
|
bool result = false;
|
|
struct coord viewerpos;
|
|
s16 viewerrooms[8];
|
|
|
|
viewerpos.x = viewerprop->pos.x;
|
|
viewerpos.y = viewerchr->ground + viewerchr->chrheight - 20;
|
|
viewerpos.z = viewerprop->pos.z;
|
|
|
|
chrSetOrUnsetHiddenFlag00000100(viewerchr, false);
|
|
func0f065e74(&viewerprop->pos, viewerprop->rooms, &viewerpos, viewerrooms);
|
|
|
|
if (hasLineOfSight(&viewerpos, viewerrooms, pos, rooms, 307, 8)) {
|
|
result = true;
|
|
}
|
|
|
|
chrSetOrUnsetHiddenFlag00000100(viewerchr, true);
|
|
|
|
return result;
|
|
}
|
|
|
|
bool chrCanSeePos(struct chrdata *chr, struct coord *pos, s16 *rooms)
|
|
{
|
|
f32 facingangle = chrGetInverseTheta(chr);
|
|
f32 posangle = atan2f(pos->x - chr->prop->pos.x, pos->z - chr->prop->pos.z);
|
|
f32 diffangle = posangle - facingangle;
|
|
|
|
if (posangle < facingangle) {
|
|
diffangle += M_BADTAU;
|
|
}
|
|
|
|
// This check is pointless because chrHasLineOfSightToPos is called
|
|
// with the same arguments regardless.
|
|
if ((diffangle < 1.7450513839722f || diffangle > 4.5371336936951f)
|
|
&& chrHasFlag(chr, CHRFLAG1_00200000, BANK_1) == false) {
|
|
return chrHasLineOfSightToPos(chr, pos, rooms);
|
|
}
|
|
|
|
return chrHasLineOfSightToPos(chr, pos, rooms);
|
|
}
|
|
|
|
bool chrCanSeeProp(struct chrdata *chr, struct prop *prop)
|
|
{
|
|
bool result;
|
|
|
|
propSetCollisionsEnabled(prop, false);
|
|
result = chrCanSeePos(chr, &prop->pos, prop->rooms);
|
|
propSetCollisionsEnabled(prop, true);
|
|
|
|
return result;
|
|
}
|
|
|
|
void chrRecordLastSeeTargetTime(struct chrdata *chr)
|
|
{
|
|
chr->lastseetarget60 = g_Vars.lvframe60;
|
|
}
|
|
|
|
void chrRecordLastHearTargetTime(struct chrdata *chr)
|
|
{
|
|
chr->hidden |= CHRHFLAG_IS_HEARING_TARGET;
|
|
chr->lastheartarget60 = g_Vars.lvframe60;
|
|
}
|
|
|
|
bool chrIsStopped(struct chrdata *chr)
|
|
{
|
|
s16 anim = modelGetAnimNum(chr->model);
|
|
|
|
if (anim == ANIM_SNIPING_0269 || anim == ANIM_SNIPING_026B) {
|
|
return false;
|
|
}
|
|
|
|
if (anim == ANIM_SNIPING_026A
|
|
&& chr->act_attack.unk034 <= chr->act_attack.unk033) {
|
|
chrStopFiring(chr);
|
|
return true;
|
|
}
|
|
|
|
if (chr->actiontype == ACT_ROBOTATTACK && chr->act_robotattack.unk06e) {
|
|
return true;
|
|
}
|
|
|
|
if (chr->actiontype == ACT_ATTACKAMOUNT
|
|
&& chr->act_attackamount.unk034 <= chr->act_attackamount.unk033) {
|
|
return true;
|
|
}
|
|
|
|
if (chr->actiontype == ACT_STAND
|
|
&& chr->act_stand.unk02c == 0
|
|
&& chr->act_stand.unk038 == 0
|
|
&& chr->act_stand.unk03c != 1) {
|
|
return true;
|
|
}
|
|
|
|
if (chr->actiontype == ACT_ANIM) {
|
|
if (chr->act_anim.unk034
|
|
|| (modelGetAnimSpeed(chr->model) >= 0 && modelGetCurAnimFrame(chr->model) >= modelGetAnimEndFrame(chr->model))
|
|
|| (modelGetAnimSpeed(chr->model) < 0 && modelGetCurAnimFrame(chr->model) <= 0)) {
|
|
return true;
|
|
}
|
|
} else if (chr->actiontype == ACT_PATROL) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrCheckTargetInSight(struct chrdata *chr)
|
|
{
|
|
struct prop *prop = chr->prop;
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
f32 sqdistance;
|
|
f32 fVar5 = chrGetInverseTheta(chr);
|
|
|
|
f32 x = target->pos.x - prop->pos.x;
|
|
f32 y = target->pos.y - prop->pos.y;
|
|
f32 z = target->pos.z - prop->pos.z;
|
|
|
|
f32 fVar6 = atan2f(x, z);
|
|
f32 angle = fVar6 - fVar5;
|
|
bool result = false;
|
|
|
|
if (fVar6 < fVar5) {
|
|
angle += M_BADTAU;
|
|
}
|
|
|
|
sqdistance = x * x + y * y + z * z;
|
|
|
|
if ((sqdistance < chr->visionrange * chr->visionrange * 10000.0f && (angle < 1.9195564985275f || angle > 4.3626284599304f))
|
|
|| (sqdistance < 40000.0f && (angle < 1.9195564985275f || angle > 4.3626284599304f))) {
|
|
result = false;
|
|
|
|
if (sqdistance < func0f1657e4()) {
|
|
f32 tmp;
|
|
s32 iVar8 = (sqrtf(sqdistance) * 0.0018749999580905f);
|
|
s32 tmp2;
|
|
|
|
if (angle > 0.7852731347084f && angle < 5.4969120025635f) {
|
|
tmp = angle;
|
|
|
|
if (tmp > M_PI) {
|
|
tmp = M_BADTAU - angle;
|
|
}
|
|
|
|
tmp -= 0.7852731347084f;
|
|
tmp2 = tmp * 3.8203268051147f;
|
|
iVar8 *= 1 + tmp2;
|
|
}
|
|
|
|
iVar8 = chrGetPercentageOfSlowness(chr, iVar8) + 1;
|
|
result = random() % iVar8 == 0;
|
|
}
|
|
}
|
|
|
|
if (result) {
|
|
result = chrCanSeeTarget(chr);
|
|
}
|
|
|
|
if (result) {
|
|
chrRecordLastSeeTargetTime(chr);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
bool chrIsReadyForOrders(struct chrdata *chr)
|
|
{
|
|
if (chr->onladder) {
|
|
return false;
|
|
}
|
|
|
|
switch (chr->actiontype) {
|
|
case ACT_DIE:
|
|
case ACT_DEAD:
|
|
case ACT_PREARGH:
|
|
case ACT_DRUGGEDDROP:
|
|
case ACT_DRUGGEDKO:
|
|
case ACT_DRUGGEDCOMINGUP:
|
|
return false;
|
|
case ACT_ARGH:
|
|
if ((chr->chrflags & CHRCFLAG_00000200) == 0) {
|
|
return false;
|
|
}
|
|
break;
|
|
case ACT_ROBOTATTACK:
|
|
if (!chr->act_robotattack.unk06e) {
|
|
return false;
|
|
}
|
|
break;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
bool chrIsDead(struct chrdata *chr)
|
|
{
|
|
if (!chr || chr->actiontype == ACT_DIE || chr->actiontype == ACT_DEAD) {
|
|
return true;
|
|
}
|
|
|
|
if (chr->prop && chr->prop->type == PROPTYPE_PLAYER) {
|
|
u32 playernum = propGetPlayerNum(chr->prop);
|
|
|
|
if (g_Vars.players[playernum]->isdead) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTrySidestep(struct chrdata *chr)
|
|
{
|
|
u8 race = CHRRACE(chr);
|
|
|
|
if ((race == RACE_HUMAN || race == RACE_SKEDAR)
|
|
&& chrIsReadyForOrders(chr)) {
|
|
struct prop *prop = chr->prop;
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
f32 a = chrGetInverseTheta(chr);
|
|
f32 b = atan2f(target->pos.x - prop->pos.x, target->pos.z - prop->pos.z);
|
|
f32 angle = b - a;
|
|
u32 stack[2];
|
|
|
|
if (b < a) {
|
|
angle += M_BADTAU;
|
|
}
|
|
|
|
if (angle < 0.7852731347084f || angle > 5.4969120025635f
|
|
|| (angle > 2.3558194637299f && angle < 3.9263656139374f)) {
|
|
bool side = (random() % 2) == 0;
|
|
|
|
if (chrCanJumpInDirection(chr, side, 100)) {
|
|
chrSidestep(chr, side);
|
|
return true;
|
|
}
|
|
|
|
if (chrCanJumpInDirection(chr, !side, 100)) {
|
|
chrSidestep(chr, !side);
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryJumpOut(struct chrdata *chr)
|
|
{
|
|
if (CHRRACE(chr) == RACE_HUMAN && chrIsReadyForOrders(chr)) {
|
|
struct prop *prop = chr->prop;
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
|
|
f32 a = chrGetInverseTheta(chr);
|
|
f32 b = atan2f(target->pos.x - prop->pos.x, target->pos.z - prop->pos.z);
|
|
f32 angle = b - a;
|
|
u32 stack[2];
|
|
|
|
if (b < a) {
|
|
angle += M_BADTAU;
|
|
}
|
|
|
|
// This commented code is what the floats represent, but mismatches due
|
|
// to float precision:
|
|
//if (angle < BADDEG2RAD(45) || angle > BADDEG2RAD(315)
|
|
// || (angle > BADDEG2RAD(135) && angle < BADDEG2RAD(225))) {
|
|
if (angle < 0.7852731347084f || angle > 5.4969120025635f
|
|
|| (angle > 2.3558194637299f && angle < BADDEG2RAD(225))) {
|
|
bool side = (random() % 2) == 0;
|
|
|
|
if (chrCanJumpInDirection(chr, side, 200)) {
|
|
chrJumpOut(chr, side);
|
|
return true;
|
|
}
|
|
|
|
if (chrCanJumpInDirection(chr, !side, 200)) {
|
|
chrJumpOut(chr, !side);
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryRunSideways(struct chrdata *chr)
|
|
{
|
|
u32 race = CHRRACE(chr);
|
|
|
|
if ((race == RACE_HUMAN || race == RACE_SKEDAR)
|
|
&& chrIsReadyForOrders(chr)
|
|
&& g_Vars.lvframe60 - chr->lastwalk60 > 180) {
|
|
struct prop *prop = chr->prop;
|
|
f32 distance = 200.0f + random() * (1.0f / U32_MAX) * 200.0f;
|
|
struct coord vector;
|
|
struct coord dstpos;
|
|
|
|
chrGetSideVectorToTarget(chr, random() % 2 == 0, &vector);
|
|
|
|
dstpos.x = vector.x * distance + prop->pos.x;
|
|
dstpos.y = prop->pos.y;
|
|
dstpos.z = vector.z * distance + prop->pos.z;
|
|
|
|
if (propchrHasClearLineToPos(prop, &dstpos, &vector)) {
|
|
chrRunToPos(chr, &dstpos);
|
|
return true;
|
|
}
|
|
|
|
vector.x = -vector.x;
|
|
vector.z = -vector.z;
|
|
|
|
dstpos.x = vector.x * distance + prop->pos.x;
|
|
dstpos.y = prop->pos.y;
|
|
dstpos.z = vector.z * distance + prop->pos.z;
|
|
|
|
if (propchrHasClearLineToPos(prop, &dstpos, &vector)) {
|
|
chrRunToPos(chr, &dstpos);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryAttackWalk(struct chrdata *chr)
|
|
{
|
|
u32 race = CHRRACE(chr);
|
|
|
|
if (race == RACE_DRCAROLL || race == RACE_EYESPY) {
|
|
return false;
|
|
}
|
|
|
|
if (chrIsReadyForOrders(chr)) {
|
|
struct prop *prop = chr->prop;
|
|
|
|
if (chrCanSeeAttackTarget(chr, &prop->pos, prop->rooms, 0)
|
|
&& (chrGetEquippedWeaponPropWithCheck(chr, 0) || chrGetEquippedWeaponPropWithCheck(chr, 1))
|
|
&& g_Vars.lvframe60 - chr->lastwalk60 > 120) {
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
f32 x = target->pos.x - prop->pos.x;
|
|
f32 y = target->pos.y - prop->pos.y;
|
|
f32 z = target->pos.z - prop->pos.z;
|
|
|
|
if (race == RACE_HUMAN && x * x + y * y + z * z >= 1000000.0f) {
|
|
chrAttackWalk(chr, SPEED_WALK);
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryAttackRun(struct chrdata *chr)
|
|
{
|
|
u32 race = CHRRACE(chr);
|
|
|
|
if (race == RACE_DRCAROLL || race == RACE_EYESPY) {
|
|
return false;
|
|
}
|
|
|
|
if (chrIsReadyForOrders(chr)) {
|
|
struct prop *prop = chr->prop;
|
|
|
|
if (chrCanSeeAttackTarget(chr, &prop->pos, prop->rooms, 0)
|
|
&& (chrGetEquippedWeaponPropWithCheck(chr, 0) || chrGetEquippedWeaponPropWithCheck(chr, 1))
|
|
&& g_Vars.lvframe60 - chr->lastwalk60 > 180) {
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
f32 x = target->pos.x - prop->pos.x;
|
|
f32 y = target->pos.y - prop->pos.y;
|
|
f32 z = target->pos.z - prop->pos.z;
|
|
|
|
if (race == RACE_HUMAN && x * x + y * y + z * z >= 1000000.0f) {
|
|
chrAttackWalk(chr, SPEED_JOG);
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryAttackRoll(struct chrdata *chr)
|
|
{
|
|
if (CHRRACE(chr) == RACE_HUMAN && chrIsReadyForOrders(chr)) {
|
|
struct prop *prop = chr->prop;
|
|
|
|
if (chrCanSeeAttackTarget(chr, &prop->pos, prop->rooms, 0) &&
|
|
(chrGetEquippedWeaponPropWithCheck(chr, 0) || chrGetEquippedWeaponPropWithCheck(chr, 1))) {
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
f32 x = target->pos.x - prop->pos.x;
|
|
f32 y = target->pos.y - prop->pos.y;
|
|
f32 z = target->pos.z - prop->pos.z;
|
|
f32 sqdistance = x * x + y * y + z * z;
|
|
|
|
if (sqdistance >= 40000.0f) {
|
|
bool side = (random() & 1) == 0;
|
|
|
|
if (chrCanRollInDirection(chr, side, 200)) {
|
|
chrAttackRoll(chr, side);
|
|
return true;
|
|
}
|
|
|
|
if (chrCanRollInDirection(chr, !side, 200)) {
|
|
chrAttackRoll(chr, !side);
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryAttackAmount(struct chrdata *chr, u32 arg1, u32 arg2, u8 lower, u8 upper)
|
|
{
|
|
u8 race = CHRRACE(chr);
|
|
|
|
if ((race == RACE_HUMAN || race == RACE_SKEDAR)
|
|
&& chrIsReadyForOrders(chr)
|
|
&& chr->weapons_held[0]) {
|
|
s32 quantity;
|
|
f32 percentage;
|
|
struct weaponobj *weapon = chr->weapons_held[0]->weapon;
|
|
struct inventory_ammo *ammo;
|
|
|
|
quantity = 1;
|
|
|
|
if (upper > 100) {
|
|
upper = 100;
|
|
}
|
|
|
|
if (lower < upper) {
|
|
percentage = ((random() % (upper - lower)) + (u32)lower) * 0.01f;
|
|
} else {
|
|
percentage = 0;
|
|
}
|
|
|
|
ammo = weaponGetAmmoByFunction(weapon->weaponnum, 0);
|
|
|
|
if (ammo) {
|
|
quantity = ammo->clipsize * percentage;
|
|
}
|
|
|
|
if (quantity < 1) {
|
|
quantity = 1;
|
|
}
|
|
|
|
chr->aimendrshoulder = 0;
|
|
chr->aimendlshoulder = 0;
|
|
chr->aimendback = 0;
|
|
chr->aimendsideback = 0;
|
|
chr->aimendcount = 10;
|
|
|
|
chrAttackAmount(chr, arg1, arg2, quantity);
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryAttackStand(struct chrdata *chr, s32 entitytype, s32 entityid)
|
|
{
|
|
s32 race = CHRRACE(chr);
|
|
|
|
if (race == RACE_DRCAROLL || race == RACE_EYESPY) {
|
|
return false;
|
|
}
|
|
|
|
if (chrIsReadyForOrders(chr)) {
|
|
if (race == RACE_ROBOT) {
|
|
robotAttack(chr);
|
|
return true;
|
|
}
|
|
|
|
if (race == RACE_HUMAN || race == RACE_SKEDAR) {
|
|
if (chrGetEquippedWeaponPropWithCheck(chr, 0) ||
|
|
(chrGetEquippedWeaponPropWithCheck(chr, 1))) {
|
|
chrAttackStand(chr, entitytype, entityid);
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryAttackKneel(struct chrdata *chr, s32 entitytype, s32 entityid)
|
|
{
|
|
s32 race = CHRRACE(chr);
|
|
|
|
if (race == RACE_HUMAN || race == RACE_SKEDAR) {
|
|
if (chrIsReadyForOrders(chr) && (chrGetEquippedWeaponPropWithCheck(chr, 0) || chrGetEquippedWeaponPropWithCheck(chr, 1))) {
|
|
chrAttackKneel(chr, entitytype, entityid);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryAttackLie(struct chrdata *chr, s32 entitytype, s32 entityid)
|
|
{
|
|
s32 race = CHRRACE(chr);
|
|
|
|
if (race == RACE_HUMAN || race == RACE_SKEDAR) {
|
|
if (chrIsReadyForOrders(chr) && (chrGetEquippedWeaponPropWithCheck(chr, 0) || chrGetEquippedWeaponPropWithCheck(chr, 1))) {
|
|
chrAttackLie(chr, entitytype, entityid);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryModifyAttack(struct chrdata *chr, u32 entitytype, s32 entityid)
|
|
{
|
|
s32 race = CHRRACE(chr);
|
|
|
|
if (race == RACE_DRCAROLL || race == RACE_EYESPY) {
|
|
return false;
|
|
}
|
|
|
|
if (chr->actiontype == ACT_ATTACK
|
|
&& (chr->act_attack.entitytype & (ENTITYTYPE_AIMONLY | ENTITYTYPE_DONTTURN))) {
|
|
chr->act_attack.entitytype = entitytype;
|
|
chr->act_attack.entityid = entityid;
|
|
func0f031254(chr);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrFaceEntity(struct chrdata *chr, u32 entitytype, u32 entityid)
|
|
{
|
|
if (chrIsReadyForOrders(chr)) {
|
|
if (chr->actiontype != ACT_STAND) {
|
|
chrStand(chr);
|
|
}
|
|
|
|
if (entitytype != chr->act_stand.face_entitytype ||
|
|
entityid != chr->act_stand.face_entityid) {
|
|
chr->act_stand.face_entitytype = entitytype;
|
|
chr->act_stand.face_entityid = entityid;
|
|
chr->act_stand.unk038 = 0;
|
|
chr->act_stand.unk040 = 0;
|
|
|
|
if (entitytype == ENTITYTYPE_TARGET && entityid == 1) {
|
|
chr->act_stand.face_target = true;
|
|
chr->act_stand.face_entityid = 0;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrGoToPad(struct chrdata *chr, s32 padnum, u32 speed)
|
|
{
|
|
if (padnum >= 0
|
|
&& chrIsReadyForOrders(chr)
|
|
&& (var80062cbc <= 8
|
|
|| (chr->hidden & CHRHFLAG_00400000) == 0
|
|
|| (chr->flags & CHRFLAG0_CAN_GO_TO_PLACES))) {
|
|
padnum = chrResolvePadId(chr, padnum);
|
|
|
|
if (padnum >= 0) {
|
|
s16 rooms[2];
|
|
struct pad pad;
|
|
|
|
padUnpack(padnum, PADFIELD_ROOM | PADFIELD_POS, &pad);
|
|
|
|
rooms[0] = pad.room;
|
|
rooms[1] = -1;
|
|
|
|
if (chrGoToPos(chr, &pad.pos, rooms, speed)) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrSetPath(struct chrdata *chr, u32 path_id)
|
|
{
|
|
chr->path = path_id;
|
|
return true;
|
|
}
|
|
|
|
bool chrStartPath(struct chrdata *chr)
|
|
{
|
|
struct path *path = pathFindById(chr->path);
|
|
|
|
if (path && chrIsReadyForOrders(chr)) {
|
|
func0f038b9c(chr, path);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTrySurrender(struct chrdata *chr)
|
|
{
|
|
if (CHRRACE(chr) == RACE_HUMAN && chrIsReadyForOrders(chr)) {
|
|
chrSurrender(chr);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrFadeOut(struct chrdata *chr)
|
|
{
|
|
chrBeginDead(chr);
|
|
chrFadeCorpse(chr);
|
|
|
|
return true;
|
|
}
|
|
|
|
bool chrGoToTarget(struct chrdata *chr, u32 speed)
|
|
{
|
|
if (chrIsReadyForOrders(chr)) {
|
|
if (var80062cbc <= 8 ||
|
|
(chr->hidden & CHRHFLAG_00400000) == 0 ||
|
|
(chr->flags & CHRFLAG0_CAN_GO_TO_PLACES)) {
|
|
struct prop *prop = chrGetTargetProp(chr);
|
|
|
|
if (chrGoToPos(chr, &prop->pos, prop->rooms, speed)) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrGoToChr(struct chrdata *chr, u32 dst_chrnum, u32 speed)
|
|
{
|
|
if (chrIsReadyForOrders(chr)) {
|
|
if (var80062cbc <= 8 ||
|
|
(chr->hidden & CHRHFLAG_00400000) == 0 ||
|
|
(chr->flags & CHRFLAG0_CAN_GO_TO_PLACES)) {
|
|
struct chrdata *dstchr = chrFindById(chr, dst_chrnum);
|
|
|
|
if (dstchr && dstchr->prop && chrGoToPos(chr, &dstchr->prop->pos, dstchr->prop->rooms, speed)) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrGoToProp(struct chrdata *chr, struct prop *prop, s32 speed)
|
|
{
|
|
if (chrIsReadyForOrders(chr) && prop) {
|
|
if (chrGoToPos(chr, &prop->pos, prop->rooms, speed)) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03abd0
|
|
/* f03abd0: 27bdff78 */ addiu $sp,$sp,-136
|
|
/* f03abd4: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f03abd8: afb00020 */ sw $s0,0x20($sp)
|
|
/* f03abdc: afa40088 */ sw $a0,0x88($sp)
|
|
/* f03abe0: afa5008c */ sw $a1,0x8c($sp)
|
|
/* f03abe4: 0fc0e686 */ jal chrIsReadyForOrders
|
|
/* f03abe8: afa60090 */ sw $a2,0x90($sp)
|
|
/* f03abec: 10400026 */ beqz $v0,.L0f03ac88
|
|
/* f03abf0: 3c0e8006 */ lui $t6,%hi(var80062cbc)
|
|
/* f03abf4: 8dce2cbc */ lw $t6,%lo(var80062cbc)($t6)
|
|
/* f03abf8: 8faf0088 */ lw $t7,0x88($sp)
|
|
/* f03abfc: 00008025 */ or $s0,$zero,$zero
|
|
/* f03ac00: 29c10009 */ slti $at,$t6,0x9
|
|
/* f03ac04: 14200008 */ bnez $at,.L0f03ac28
|
|
/* f03ac08: 8fa4008c */ lw $a0,0x8c($sp)
|
|
/* f03ac0c: 8df80014 */ lw $t8,0x14($t7)
|
|
/* f03ac10: 0018ca40 */ sll $t9,$t8,0x9
|
|
/* f03ac14: 07230005 */ bgezl $t9,.L0f03ac2c
|
|
/* f03ac18: 27a5005c */ addiu $a1,$sp,0x5c
|
|
/* f03ac1c: 8de80114 */ lw $t0,0x114($t7)
|
|
/* f03ac20: 00084b40 */ sll $t1,$t0,0xd
|
|
/* f03ac24: 05210018 */ bgez $t1,.L0f03ac88
|
|
.L0f03ac28:
|
|
/* f03ac28: 27a5005c */ addiu $a1,$sp,0x5c
|
|
.L0f03ac2c:
|
|
/* f03ac2c: 27a60030 */ addiu $a2,$sp,0x30
|
|
/* f03ac30: 24070014 */ addiu $a3,$zero,0x14
|
|
/* f03ac34: 0fc58865 */ jal func0f162194
|
|
/* f03ac38: afa00010 */ sw $zero,0x10($sp)
|
|
/* f03ac3c: 87aa005c */ lh $t2,0x5c($sp)
|
|
/* f03ac40: 2402ffff */ addiu $v0,$zero,-1
|
|
/* f03ac44: 87ab0030 */ lh $t3,0x30($sp)
|
|
/* f03ac48: 104a0003 */ beq $v0,$t2,.L0f03ac58
|
|
/* f03ac4c: 8fa40088 */ lw $a0,0x88($sp)
|
|
/* f03ac50: 10000004 */ b .L0f03ac64
|
|
/* f03ac54: 27b0005c */ addiu $s0,$sp,0x5c
|
|
.L0f03ac58:
|
|
/* f03ac58: 104b0002 */ beq $v0,$t3,.L0f03ac64
|
|
/* f03ac5c: 00000000 */ nop
|
|
/* f03ac60: 27b00030 */ addiu $s0,$sp,0x30
|
|
.L0f03ac64:
|
|
/* f03ac64: 12000008 */ beqz $s0,.L0f03ac88
|
|
/* f03ac68: 8fa5008c */ lw $a1,0x8c($sp)
|
|
/* f03ac6c: 02003025 */ or $a2,$s0,$zero
|
|
/* f03ac70: 0fc0e10f */ jal chrGoToPos
|
|
/* f03ac74: 8fa70090 */ lw $a3,0x90($sp)
|
|
/* f03ac78: 50400004 */ beqzl $v0,.L0f03ac8c
|
|
/* f03ac7c: 00001025 */ or $v0,$zero,$zero
|
|
/* f03ac80: 10000002 */ b .L0f03ac8c
|
|
/* f03ac84: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f03ac88:
|
|
/* f03ac88: 00001025 */ or $v0,$zero,$zero
|
|
.L0f03ac8c:
|
|
/* f03ac8c: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f03ac90: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f03ac94: 27bd0088 */ addiu $sp,$sp,0x88
|
|
/* f03ac98: 03e00008 */ jr $ra
|
|
/* f03ac9c: 00000000 */ nop
|
|
);
|
|
|
|
s32 func0f03aca0(struct chrdata *chr, f32 arg1, u8 arg2)
|
|
{
|
|
f32 somefloat;
|
|
|
|
if (!arg2) {
|
|
arg1 -= chrGetDistanceToCoord(chr, &chr->runfrompos);
|
|
}
|
|
|
|
if (arg1 < 0) {
|
|
func0f04ba34(g_Vars.chrdata, 0x90a, 0);
|
|
return chrGoToCover(chr, SPEED_RUN);
|
|
}
|
|
|
|
somefloat = arg1 - 2000;
|
|
|
|
if (somefloat < 2000) {
|
|
somefloat = 2000;
|
|
}
|
|
|
|
if (chrAssignCoverAwayFromDanger(chr, somefloat, arg1 + 10000) == 0) {
|
|
func0f04ba34(g_Vars.chrdata, 0x90a, 0);
|
|
}
|
|
|
|
return chrGoToCover(chr, SPEED_RUN);
|
|
}
|
|
|
|
bool chrTryStop(struct chrdata *chr)
|
|
{
|
|
if (CHRRACE(chr) == RACE_EYESPY) {
|
|
func0f02e9a0(chr, 0);
|
|
return true;
|
|
}
|
|
|
|
if (chrIsReadyForOrders(chr)) {
|
|
chrStop(chr);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTrySurprisedOneHand(struct chrdata *chr)
|
|
{
|
|
if (CHRRACE(chr) == RACE_HUMAN && chrIsReadyForOrders(chr)) {
|
|
chrDoSurprisedOneHand(chr);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTrySurprisedSurrender(struct chrdata *chr)
|
|
{
|
|
if (CHRRACE(chr) == RACE_HUMAN && chrIsReadyForOrders(chr)) {
|
|
chrDoSurprisedSurrender(chr);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTrySurprisedLookAround(struct chrdata *chr)
|
|
{
|
|
if (CHRRACE(chr) == RACE_HUMAN && chrIsReadyForOrders(chr)) {
|
|
chrDoSurprisedLookAround(chr);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryKneel(struct chrdata *chr)
|
|
{
|
|
if (CHRRACE(chr) == RACE_HUMAN && chrIsReadyForOrders(chr)) {
|
|
chrKneel(chr);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool func0f03af44(struct chrdata *chr, u32 anim_id, f32 fstartframe, f32 fendframe, u8 flags, u32 transition, f32 result)
|
|
{
|
|
if (chrIsReadyForOrders(chr)) {
|
|
func0f030ff8(chr, anim_id, fstartframe, fendframe, flags, transition, result);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrTryRunFromTarget(struct chrdata *chr)
|
|
{
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
struct prop *prop = chr->prop;
|
|
f32 ymax;
|
|
f32 ymin;
|
|
f32 width;
|
|
struct coord dst;
|
|
s16 rooms[8];
|
|
struct coord diff;
|
|
f32 distance;
|
|
|
|
if (chrIsReadyForOrders(chr)) {
|
|
if (!target) {
|
|
return false;
|
|
}
|
|
|
|
diff.x = target->pos.x - prop->pos.x;
|
|
diff.z = target->pos.z - prop->pos.z;
|
|
diff.y = 0;
|
|
|
|
distance = sqrtf(diff.f[0] * diff.f[0] + diff.f[2] * diff.f[2]);
|
|
|
|
// Scale diff into range -1 to +1
|
|
diff.x *= (1 / distance);
|
|
diff.z *= (1 / distance);
|
|
|
|
// Set dst to 1000 units in the opposite direction
|
|
dst.x = prop->pos.x - diff.x * 1000;
|
|
dst.z = prop->pos.z - diff.z * 1000;
|
|
dst.y = prop->pos.y;
|
|
|
|
propGetBbox(prop, &width, &ymax, &ymin);
|
|
|
|
// If dst runs into a wall, set it to closest valid spot
|
|
if (!func0002d7c0(&prop->pos, prop->rooms, &dst, 0x33, 1,
|
|
ymax - prop->pos.y, ymin - prop->pos.y)) {
|
|
cdGetPos(&dst, 8788, "chraction.c");
|
|
}
|
|
|
|
// Adjust dst to be two chr widths closer to avoid collision with wall
|
|
dst.x = dst.x + (diff.x * width + diff.x * width);
|
|
dst.z = dst.z + (diff.z * width + diff.z * width);
|
|
|
|
if (func0f036974(prop, &dst)) {
|
|
u32 speed = SPEED_RUN;
|
|
|
|
if (CHRRACE(chr) == RACE_HUMAN) {
|
|
f32 dist = chrGetDistanceToCoord(chr, &dst);
|
|
|
|
if (dist > 100) {
|
|
speed = SPEED_RUN;
|
|
} else if (dist < 50) {
|
|
speed = SPEED_WALK;
|
|
} else {
|
|
speed = SPEED_JOG;
|
|
}
|
|
}
|
|
|
|
func0f065e74(&prop->pos, prop->rooms, &dst, rooms);
|
|
chrGoToPos(chr, &dst, rooms, speed);
|
|
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
const char var7f1a8ae4[] = "aimadjust=%d";
|
|
const char var7f1a8af4[] = "chraction.c";
|
|
const char var7f1a8b00[] = "firing(%d) %d, beam(%d) %s";
|
|
const char var7f1a8b1c[] = "on";
|
|
const char var7f1a8b20[] = "off";
|
|
const char var7f1a8b24[] = "firecount(%d) = %d";
|
|
const char var7f1a8b38[] = "numshots(%d) = %d";
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03b1e0
|
|
.late_rodata
|
|
glabel var7f1a8ecc
|
|
.word 0x3ecccccd
|
|
glabel var7f1a8ed0
|
|
.word 0x3f666666
|
|
glabel var7f1a8ed4
|
|
.word 0x44bb8000
|
|
.text
|
|
/* f03b1e0: 27bdfd48 */ addiu $sp,$sp,-696
|
|
/* f03b1e4: afbf003c */ sw $ra,0x3c($sp)
|
|
/* f03b1e8: afb70038 */ sw $s7,0x38($sp)
|
|
/* f03b1ec: afb60034 */ sw $s6,0x34($sp)
|
|
/* f03b1f0: afb50030 */ sw $s5,0x30($sp)
|
|
/* f03b1f4: afb4002c */ sw $s4,0x2c($sp)
|
|
/* f03b1f8: afb30028 */ sw $s3,0x28($sp)
|
|
/* f03b1fc: afb20024 */ sw $s2,0x24($sp)
|
|
/* f03b200: afb10020 */ sw $s1,0x20($sp)
|
|
/* f03b204: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f03b208: f7b40010 */ sdc1 $f20,0x10($sp)
|
|
/* f03b20c: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f03b210: afa402b8 */ sw $a0,0x2b8($sp)
|
|
/* f03b214: 8fa402b8 */ lw $a0,0x2b8($sp)
|
|
/* f03b218: 0040b025 */ or $s6,$v0,$zero
|
|
/* f03b21c: 14400003 */ bnez $v0,.L0f03b22c
|
|
/* f03b220: 8c93001c */ lw $s3,0x1c($a0)
|
|
/* f03b224: 100000e6 */ b .L0f03b5c0
|
|
/* f03b228: 00001025 */ or $v0,$zero,$zero
|
|
.L0f03b22c:
|
|
/* f03b22c: 0fc0e686 */ jal chrIsReadyForOrders
|
|
/* f03b230: 00000000 */ nop
|
|
/* f03b234: 104000e1 */ beqz $v0,.L0f03b5bc
|
|
/* f03b238: 27b700a8 */ addiu $s7,$sp,0xa8
|
|
/* f03b23c: 26640028 */ addiu $a0,$s3,0x28
|
|
/* f03b240: afa4004c */ sw $a0,0x4c($sp)
|
|
/* f03b244: 02e02825 */ or $a1,$s7,$zero
|
|
/* f03b248: 0fc197e0 */ jal roomGetProps
|
|
/* f03b24c: 24060100 */ addiu $a2,$zero,0x100
|
|
/* f03b250: 87ae00a8 */ lh $t6,0xa8($sp)
|
|
/* f03b254: 00008825 */ or $s1,$zero,$zero
|
|
/* f03b258: 05c0000a */ bltz $t6,.L0f03b284
|
|
/* f03b25c: 00000000 */ nop
|
|
/* f03b260: 26310001 */ addiu $s1,$s1,0x1
|
|
.L0f03b264:
|
|
/* f03b264: 00117c00 */ sll $t7,$s1,0x10
|
|
/* f03b268: 000fc403 */ sra $t8,$t7,0x10
|
|
/* f03b26c: 0018c840 */ sll $t9,$t8,0x1
|
|
/* f03b270: 02f94021 */ addu $t0,$s7,$t9
|
|
/* f03b274: 85090000 */ lh $t1,0x0($t0)
|
|
/* f03b278: 03008825 */ or $s1,$t8,$zero
|
|
/* f03b27c: 0523fff9 */ bgezl $t1,.L0f03b264
|
|
/* f03b280: 26310001 */ addiu $s1,$s1,0x1
|
|
.L0f03b284:
|
|
/* f03b284: 1a200009 */ blez $s1,.L0f03b2ac
|
|
/* f03b288: 00000000 */ nop
|
|
/* f03b28c: 0c004b70 */ jal random
|
|
/* f03b290: 00000000 */ nop
|
|
/* f03b294: 0051001b */ divu $zero,$v0,$s1
|
|
/* f03b298: 00005010 */ mfhi $t2
|
|
/* f03b29c: a7aa00a0 */ sh $t2,0xa0($sp)
|
|
/* f03b2a0: 16200002 */ bnez $s1,.L0f03b2ac
|
|
/* f03b2a4: 00000000 */ nop
|
|
/* f03b2a8: 0007000d */ break 0x7
|
|
.L0f03b2ac:
|
|
/* f03b2ac: 1a2000c3 */ blez $s1,.L0f03b5bc
|
|
/* f03b2b0: 00009025 */ or $s2,$zero,$zero
|
|
/* f03b2b4: 87ab00a0 */ lh $t3,0xa0($sp)
|
|
.L0f03b2b8:
|
|
/* f03b2b8: 3c08800a */ lui $t0,%hi(g_Vars+0x338)
|
|
/* f03b2bc: 8d08a2f8 */ lw $t0,%lo(g_Vars+0x338)($t0)
|
|
/* f03b2c0: 024b6021 */ addu $t4,$s2,$t3
|
|
/* f03b2c4: 0191001a */ div $zero,$t4,$s1
|
|
/* f03b2c8: 00006810 */ mfhi $t5
|
|
/* f03b2cc: 000d7040 */ sll $t6,$t5,0x1
|
|
/* f03b2d0: 02ee7821 */ addu $t7,$s7,$t6
|
|
/* f03b2d4: 85f80000 */ lh $t8,0x0($t7)
|
|
/* f03b2d8: 16200002 */ bnez $s1,.L0f03b2e4
|
|
/* f03b2dc: 00000000 */ nop
|
|
/* f03b2e0: 0007000d */ break 0x7
|
|
.L0f03b2e4:
|
|
/* f03b2e4: 2401ffff */ addiu $at,$zero,-1
|
|
/* f03b2e8: 16210004 */ bne $s1,$at,.L0f03b2fc
|
|
/* f03b2ec: 3c018000 */ lui $at,0x8000
|
|
/* f03b2f0: 15810002 */ bne $t4,$at,.L0f03b2fc
|
|
/* f03b2f4: 00000000 */ nop
|
|
/* f03b2f8: 0006000d */ break 0x6
|
|
.L0f03b2fc:
|
|
/* f03b2fc: 0018c8c0 */ sll $t9,$t8,0x3
|
|
/* f03b300: 0338c821 */ addu $t9,$t9,$t8
|
|
/* f03b304: 0019c8c0 */ sll $t9,$t9,0x3
|
|
/* f03b308: 03288021 */ addu $s0,$t9,$t0
|
|
/* f03b30c: 92090000 */ lbu $t1,0x0($s0)
|
|
/* f03b310: 24010001 */ addiu $at,$zero,0x1
|
|
/* f03b314: 8e150004 */ lw $s5,0x4($s0)
|
|
/* f03b318: 552100a3 */ bnel $t1,$at,.L0f03b5a8
|
|
/* f03b31c: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f03b320: 92aa0002 */ lbu $t2,0x2($s5)
|
|
/* f03b324: 314b0040 */ andi $t3,$t2,0x40
|
|
/* f03b328: 5560009f */ bnezl $t3,.L0f03b5a8
|
|
/* f03b32c: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f03b330: 8ea20040 */ lw $v0,0x40($s5)
|
|
/* f03b334: 3c010020 */ lui $at,0x20
|
|
/* f03b338: 304c8000 */ andi $t4,$v0,0x8000
|
|
/* f03b33c: 5580009a */ bnezl $t4,.L0f03b5a8
|
|
/* f03b340: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f03b344: 00416824 */ and $t5,$v0,$at
|
|
/* f03b348: 55a00097 */ bnezl $t5,.L0f03b5a8
|
|
/* f03b34c: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f03b350: 02c02025 */ or $a0,$s6,$zero
|
|
/* f03b354: 0fc12495 */ jal propGetDistanceToProp
|
|
/* f03b358: 02002825 */ or $a1,$s0,$zero
|
|
/* f03b35c: 46000506 */ mov.s $f20,$f0
|
|
/* f03b360: 02602025 */ or $a0,$s3,$zero
|
|
/* f03b364: 0fc12495 */ jal propGetDistanceToProp
|
|
/* f03b368: 02002825 */ or $a1,$s0,$zero
|
|
/* f03b36c: 3c014396 */ lui $at,0x4396
|
|
/* f03b370: 44812000 */ mtc1 $at,$f4
|
|
/* f03b374: e7a00094 */ swc1 $f0,0x94($sp)
|
|
/* f03b378: 4604003c */ c.lt.s $f0,$f4
|
|
/* f03b37c: 00000000 */ nop
|
|
/* f03b380: 45020089 */ bc1fl .L0f03b5a8
|
|
/* f03b384: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f03b388: 4614a180 */ add.s $f6,$f20,$f20
|
|
/* f03b38c: 3c014448 */ lui $at,0x4448
|
|
/* f03b390: 4600303c */ c.lt.s $f6,$f0
|
|
/* f03b394: 00000000 */ nop
|
|
/* f03b398: 45020083 */ bc1fl .L0f03b5a8
|
|
/* f03b39c: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f03b3a0: 44814000 */ mtc1 $at,$f8
|
|
/* f03b3a4: 00000000 */ nop
|
|
/* f03b3a8: 4614403c */ c.lt.s $f8,$f20
|
|
/* f03b3ac: 00000000 */ nop
|
|
/* f03b3b0: 4502007d */ bc1fl .L0f03b5a8
|
|
/* f03b3b4: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f03b3b8: 02002025 */ or $a0,$s0,$zero
|
|
/* f03b3bc: 27a50088 */ addiu $a1,$sp,0x88
|
|
/* f03b3c0: 27a60090 */ addiu $a2,$sp,0x90
|
|
/* f03b3c4: 0fc19881 */ jal propGetBbox
|
|
/* f03b3c8: 27a7008c */ addiu $a3,$sp,0x8c
|
|
/* f03b3cc: 02602025 */ or $a0,$s3,$zero
|
|
/* f03b3d0: 27a5007c */ addiu $a1,$sp,0x7c
|
|
/* f03b3d4: 27a60084 */ addiu $a2,$sp,0x84
|
|
/* f03b3d8: 0fc19881 */ jal propGetBbox
|
|
/* f03b3dc: 27a70080 */ addiu $a3,$sp,0x80
|
|
/* f03b3e0: c7aa0084 */ lwc1 $f10,0x84($sp)
|
|
/* f03b3e4: c7b00080 */ lwc1 $f16,0x80($sp)
|
|
/* f03b3e8: 3c017f1b */ lui $at,%hi(var7f1a8ecc)
|
|
/* f03b3ec: c4268ecc */ lwc1 $f6,%lo(var7f1a8ecc)($at)
|
|
/* f03b3f0: 46105081 */ sub.s $f2,$f10,$f16
|
|
/* f03b3f4: c7b20090 */ lwc1 $f18,0x90($sp)
|
|
/* f03b3f8: c7a4008c */ lwc1 $f4,0x8c($sp)
|
|
/* f03b3fc: 3c017f1b */ lui $at,%hi(var7f1a8ed0)
|
|
/* f03b400: 46061202 */ mul.s $f8,$f2,$f6
|
|
/* f03b404: 46049001 */ sub.s $f0,$f18,$f4
|
|
/* f03b408: 4600403c */ c.lt.s $f8,$f0
|
|
/* f03b40c: 00000000 */ nop
|
|
/* f03b410: 45020062 */ bc1fl .L0f03b59c
|
|
/* f03b414: 02002025 */ or $a0,$s0,$zero
|
|
/* f03b418: c42a8ed0 */ lwc1 $f10,%lo(var7f1a8ed0)($at)
|
|
/* f03b41c: 02002025 */ or $a0,$s0,$zero
|
|
/* f03b420: 00002825 */ or $a1,$zero,$zero
|
|
/* f03b424: 460a1402 */ mul.s $f16,$f2,$f10
|
|
/* f03b428: 4610003c */ c.lt.s $f0,$f16
|
|
/* f03b42c: 00000000 */ nop
|
|
/* f03b430: 4502005a */ bc1fl .L0f03b59c
|
|
/* f03b434: 02002025 */ or $a0,$s0,$zero
|
|
/* f03b438: 0fc1905e */ jal propSetCollisionsEnabled
|
|
/* f03b43c: 26740008 */ addiu $s4,$s3,0x8
|
|
/* f03b440: 02802025 */ or $a0,$s4,$zero
|
|
/* f03b444: 8fa5004c */ lw $a1,0x4c($sp)
|
|
/* f03b448: 26060008 */ addiu $a2,$s0,0x8
|
|
/* f03b44c: 0c00b706 */ jal func0002dc18
|
|
/* f03b450: 24070022 */ addiu $a3,$zero,0x22
|
|
/* f03b454: 10400050 */ beqz $v0,.L0f03b598
|
|
/* f03b458: 02002025 */ or $a0,$s0,$zero
|
|
/* f03b45c: 0fc1905e */ jal propSetCollisionsEnabled
|
|
/* f03b460: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03b464: c6000008 */ lwc1 $f0,0x8($s0)
|
|
/* f03b468: c6ca0008 */ lwc1 $f10,0x8($s6)
|
|
/* f03b46c: 3c013fa0 */ lui $at,0x3fa0
|
|
/* f03b470: 44812000 */ mtc1 $at,$f4
|
|
/* f03b474: 46005401 */ sub.s $f16,$f10,$f0
|
|
/* f03b478: c7b20088 */ lwc1 $f18,0x88($sp)
|
|
/* f03b47c: c7a8007c */ lwc1 $f8,0x7c($sp)
|
|
/* f03b480: 02602025 */ or $a0,$s3,$zero
|
|
/* f03b484: 46049182 */ mul.s $f6,$f18,$f4
|
|
/* f03b488: 46148483 */ div.s $f18,$f16,$f20
|
|
/* f03b48c: 27a50068 */ addiu $a1,$sp,0x68
|
|
/* f03b490: 46083080 */ add.s $f2,$f6,$f8
|
|
/* f03b494: 46029102 */ mul.s $f4,$f18,$f2
|
|
/* f03b498: 46040181 */ sub.s $f6,$f0,$f4
|
|
/* f03b49c: e7a60068 */ swc1 $f6,0x68($sp)
|
|
/* f03b4a0: c6c80010 */ lwc1 $f8,0x10($s6)
|
|
/* f03b4a4: c60c0010 */ lwc1 $f12,0x10($s0)
|
|
/* f03b4a8: 460c4281 */ sub.s $f10,$f8,$f12
|
|
/* f03b4ac: 46145403 */ div.s $f16,$f10,$f20
|
|
/* f03b4b0: 46028482 */ mul.s $f18,$f16,$f2
|
|
/* f03b4b4: 46126101 */ sub.s $f4,$f12,$f18
|
|
/* f03b4b8: e7a40070 */ swc1 $f4,0x70($sp)
|
|
/* f03b4bc: c606000c */ lwc1 $f6,0xc($s0)
|
|
/* f03b4c0: 0fc0da5d */ jal func0f036974
|
|
/* f03b4c4: e7a6006c */ swc1 $f6,0x6c($sp)
|
|
/* f03b4c8: 50400034 */ beqzl $v0,.L0f03b59c
|
|
/* f03b4cc: 02002025 */ or $a0,$s0,$zero
|
|
/* f03b4d0: 8fa302b8 */ lw $v1,0x2b8($sp)
|
|
/* f03b4d4: 24110001 */ addiu $s1,$zero,0x1
|
|
/* f03b4d8: 27b20058 */ addiu $s2,$sp,0x58
|
|
/* f03b4dc: 10600003 */ beqz $v1,.L0f03b4ec
|
|
/* f03b4e0: 02802025 */ or $a0,$s4,$zero
|
|
/* f03b4e4: 10000002 */ b .L0f03b4f0
|
|
/* f03b4e8: 906202fe */ lbu $v0,0x2fe($v1)
|
|
.L0f03b4ec:
|
|
/* f03b4ec: 00001025 */ or $v0,$zero,$zero
|
|
.L0f03b4f0:
|
|
/* f03b4f0: 14400013 */ bnez $v0,.L0f03b540
|
|
/* f03b4f4: 8fa5004c */ lw $a1,0x4c($sp)
|
|
/* f03b4f8: 3c017f1b */ lui $at,%hi(var7f1a8ed4)
|
|
/* f03b4fc: c4288ed4 */ lwc1 $f8,%lo(var7f1a8ed4)($at)
|
|
/* f03b500: c7aa0094 */ lwc1 $f10,0x94($sp)
|
|
/* f03b504: 3c0142c8 */ lui $at,0x42c8
|
|
/* f03b508: c7b00094 */ lwc1 $f16,0x94($sp)
|
|
/* f03b50c: 460a403c */ c.lt.s $f8,$f10
|
|
/* f03b510: 00000000 */ nop
|
|
/* f03b514: 45020004 */ bc1fl .L0f03b528
|
|
/* f03b518: 44819000 */ mtc1 $at,$f18
|
|
/* f03b51c: 10000008 */ b .L0f03b540
|
|
/* f03b520: 24110002 */ addiu $s1,$zero,0x2
|
|
/* f03b524: 44819000 */ mtc1 $at,$f18
|
|
.L0f03b528:
|
|
/* f03b528: 00000000 */ nop
|
|
/* f03b52c: 4612803c */ c.lt.s $f16,$f18
|
|
/* f03b530: 00000000 */ nop
|
|
/* f03b534: 45020003 */ bc1fl .L0f03b544
|
|
/* f03b538: 27a60068 */ addiu $a2,$sp,0x68
|
|
/* f03b53c: 00008825 */ or $s1,$zero,$zero
|
|
.L0f03b540:
|
|
/* f03b540: 27a60068 */ addiu $a2,$sp,0x68
|
|
.L0f03b544:
|
|
/* f03b544: 0fc1979d */ jal func0f065e74
|
|
/* f03b548: 02403825 */ or $a3,$s2,$zero
|
|
/* f03b54c: 8fa402b8 */ lw $a0,0x2b8($sp)
|
|
/* f03b550: 27a50068 */ addiu $a1,$sp,0x68
|
|
/* f03b554: 02403025 */ or $a2,$s2,$zero
|
|
/* f03b558: 0fc0e10f */ jal chrGoToPos
|
|
/* f03b55c: 02203825 */ or $a3,$s1,$zero
|
|
/* f03b560: 3c0e800a */ lui $t6,%hi(g_Vars+0x338)
|
|
/* f03b564: 8dcea2f8 */ lw $t6,%lo(g_Vars+0x338)($t6)
|
|
/* f03b568: 24010048 */ addiu $at,$zero,0x48
|
|
/* f03b56c: 8fb902b8 */ lw $t9,0x2b8($sp)
|
|
/* f03b570: 020e7823 */ subu $t7,$s0,$t6
|
|
/* f03b574: 01e1001a */ div $zero,$t7,$at
|
|
/* f03b578: 0000c012 */ mflo $t8
|
|
/* f03b57c: a738012c */ sh $t8,0x12c($t9)
|
|
/* f03b580: 8ea80040 */ lw $t0,0x40($s5)
|
|
/* f03b584: 3c010020 */ lui $at,0x20
|
|
/* f03b588: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f03b58c: 01014825 */ or $t1,$t0,$at
|
|
/* f03b590: 1000000b */ b .L0f03b5c0
|
|
/* f03b594: aea90040 */ sw $t1,0x40($s5)
|
|
.L0f03b598:
|
|
/* f03b598: 02002025 */ or $a0,$s0,$zero
|
|
.L0f03b59c:
|
|
/* f03b59c: 0fc1905e */ jal propSetCollisionsEnabled
|
|
/* f03b5a0: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03b5a4: 26520001 */ addiu $s2,$s2,0x1
|
|
.L0f03b5a8:
|
|
/* f03b5a8: 00125400 */ sll $t2,$s2,0x10
|
|
/* f03b5ac: 000a9403 */ sra $s2,$t2,0x10
|
|
/* f03b5b0: 0251082a */ slt $at,$s2,$s1
|
|
/* f03b5b4: 5420ff40 */ bnezl $at,.L0f03b2b8
|
|
/* f03b5b8: 87ab00a0 */ lh $t3,0xa0($sp)
|
|
.L0f03b5bc:
|
|
/* f03b5bc: 00001025 */ or $v0,$zero,$zero
|
|
.L0f03b5c0:
|
|
/* f03b5c0: 8fbf003c */ lw $ra,0x3c($sp)
|
|
/* f03b5c4: d7b40010 */ ldc1 $f20,0x10($sp)
|
|
/* f03b5c8: 8fb0001c */ lw $s0,0x1c($sp)
|
|
/* f03b5cc: 8fb10020 */ lw $s1,0x20($sp)
|
|
/* f03b5d0: 8fb20024 */ lw $s2,0x24($sp)
|
|
/* f03b5d4: 8fb30028 */ lw $s3,0x28($sp)
|
|
/* f03b5d8: 8fb4002c */ lw $s4,0x2c($sp)
|
|
/* f03b5dc: 8fb50030 */ lw $s5,0x30($sp)
|
|
/* f03b5e0: 8fb60034 */ lw $s6,0x34($sp)
|
|
/* f03b5e4: 8fb70038 */ lw $s7,0x38($sp)
|
|
/* f03b5e8: 03e00008 */ jr $ra
|
|
/* f03b5ec: 27bd02b8 */ addiu $sp,$sp,0x2b8
|
|
);
|
|
|
|
bool chrTryStartAlarm(struct chrdata *chr, s32 pad_id)
|
|
{
|
|
if (CHRRACE(chr) == RACE_HUMAN && chrIsReadyForOrders(chr)) {
|
|
pad_id = chrResolvePadId(chr, pad_id);
|
|
|
|
if (pad_id >= 0) {
|
|
struct defaultobj *obj = objFindByPadNum(pad_id);
|
|
|
|
if (obj && objIsHealthy(obj)) {
|
|
chrStartAlarm(chr);
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
s32 chrConsiderGrenadeThrow(struct chrdata *chr, u32 entitytype, u32 entityid)
|
|
{
|
|
bool done = false;
|
|
|
|
if (CHRRACE(chr) == RACE_HUMAN &&
|
|
chr->grenadeprob > (random() % 255) &&
|
|
chrGetDistanceToTarget(chr) > 200 &&
|
|
chrIsReadyForOrders(chr)) {
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
struct coord pos;
|
|
|
|
if (target) {
|
|
pos.x = target->pos.x;
|
|
pos.y = target->pos.y;
|
|
pos.z = target->pos.z;
|
|
}
|
|
|
|
if (target && func0002dc18(&chr->prop->pos, chr->prop->rooms, &pos, 0x33)) {
|
|
struct prop *leftprop = chrGetEquippedWeaponProp(chr, 1);
|
|
struct prop *rightprop = chrGetEquippedWeaponProp(chr, 0);
|
|
struct weaponobj *weapon;
|
|
|
|
#if PIRACYCHECKS
|
|
{
|
|
u32 checksum = 0;
|
|
s32 *i = (s32 *)&bgInit;
|
|
s32 *end = (s32 *)&bgBuildTables;
|
|
|
|
while (i < end) {
|
|
checksum += *i;
|
|
checksum += (*i >> 1);
|
|
i++;
|
|
}
|
|
|
|
if (checksum != CHECKSUM_PLACEHOLDER) {
|
|
// Make player explode continuously
|
|
g_Vars.currentplayer->bondexploding = true;
|
|
g_Vars.currentplayer->bondnextexplode = g_Vars.lvframe60 + 120;
|
|
g_Vars.currentplayer->bondcurexplode = 0;
|
|
}
|
|
}
|
|
#endif
|
|
|
|
// If grenade is equipped in either hand, use it
|
|
if (rightprop) {
|
|
weapon = rightprop->weapon;
|
|
|
|
if (weapon->weaponnum == WEAPON_GRENADE || weapon->weaponnum == WEAPON_NBOMB) {
|
|
chrThrowGrenade(chr, 0, false);
|
|
chr->act_throwgrenade.entitytype = entitytype;
|
|
chr->act_throwgrenade.entityid = entityid;
|
|
done = true;
|
|
}
|
|
}
|
|
|
|
if (!done && leftprop) {
|
|
weapon = leftprop->weapon;
|
|
|
|
if (weapon->weaponnum == WEAPON_GRENADE || weapon->weaponnum == WEAPON_NBOMB) {
|
|
chrThrowGrenade(chr, 1, false);
|
|
chr->act_throwgrenade.entitytype = entitytype;
|
|
chr->act_throwgrenade.entityid = entityid;
|
|
done = true;
|
|
}
|
|
}
|
|
|
|
// Grenade not equipped, and using a single weapon
|
|
if (!done && (leftprop == NULL || rightprop == NULL)) {
|
|
u32 stackpadding[1];
|
|
struct prop *prop;
|
|
u32 flags = 0;
|
|
u32 stackpadding2[2];
|
|
|
|
if (rightprop) {
|
|
flags = 0x10000000;
|
|
}
|
|
|
|
if (stageGetIndex(g_Vars.stagenum) == STAGEINDEX_MBR) {
|
|
prop = chrGiveWeapon(chr, 0x112, WEAPON_NBOMB, flags);
|
|
} else {
|
|
prop = chrGiveWeapon(chr, 0x112, WEAPON_GRENADE, flags);
|
|
}
|
|
|
|
if (prop) {
|
|
weapon = prop->weapon;
|
|
weapon->base.hidden |= OBJHFLAG_00000800;
|
|
chrThrowGrenade(chr, rightprop == NULL ? 0 : 1, true);
|
|
chr->act_throwgrenade.entitytype = entitytype;
|
|
chr->act_throwgrenade.entityid = entityid;
|
|
done = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return done;
|
|
}
|
|
|
|
bool chrDropItem(struct chrdata *chr, u32 modelnum, u32 weaponnum)
|
|
{
|
|
struct weaponobj *weapon;
|
|
u8 race = CHRRACE(chr);
|
|
|
|
if (race == RACE_DRCAROLL || race == RACE_ROBOT) {
|
|
return false;
|
|
}
|
|
|
|
weapon = func0f08b880(modelnum, (u8)weaponnum, chr);
|
|
|
|
if (weapon && weapon->base.prop) {
|
|
modelSetUnk14(weapon->base.model, weapon->base.model->unk14);
|
|
propReparent(weapon->base.prop, chr->prop);
|
|
weapon->unk62 = 720;
|
|
propobjSetDropped(weapon->base.prop, DROPREASON_1);
|
|
chr->hidden |= CHRHFLAG_00000001;
|
|
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03ba44
|
|
/* f03ba44: 27bdffb8 */ addiu $sp,$sp,-72
|
|
/* f03ba48: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f03ba4c: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f03ba50: 00808025 */ or $s0,$a0,$zero
|
|
/* f03ba54: afb10020 */ sw $s1,0x20($sp)
|
|
/* f03ba58: afa5004c */ sw $a1,0x4c($sp)
|
|
/* f03ba5c: afa60050 */ sw $a2,0x50($sp)
|
|
/* f03ba60: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f03ba64: afa70054 */ sw $a3,0x54($sp)
|
|
/* f03ba68: 3c0e8007 */ lui $t6,%hi(var80068298)
|
|
/* f03ba6c: 8dce8298 */ lw $t6,%lo(var80068298)($t6)
|
|
/* f03ba70: 00408825 */ or $s1,$v0,$zero
|
|
/* f03ba74: 02002025 */ or $a0,$s0,$zero
|
|
/* f03ba78: afae0040 */ sw $t6,0x40($sp)
|
|
/* f03ba7c: 8e0302d4 */ lw $v1,0x2d4($s0)
|
|
/* f03ba80: 24050014 */ addiu $a1,$zero,0x14
|
|
/* f03ba84: 10600008 */ beqz $v1,.L0f03baa8
|
|
/* f03ba88: 00000000 */ nop
|
|
/* f03ba8c: 8c6f0020 */ lw $t7,0x20($v1)
|
|
/* f03ba90: a3af0040 */ sb $t7,0x40($sp)
|
|
/* f03ba94: 8e1802d4 */ lw $t8,0x2d4($s0)
|
|
/* f03ba98: 8f19004c */ lw $t9,0x4c($t8)
|
|
/* f03ba9c: 00194080 */ sll $t0,$t9,0x2
|
|
/* f03baa0: 00084fc2 */ srl $t1,$t0,0x1f
|
|
/* f03baa4: a3a90043 */ sb $t1,0x43($sp)
|
|
.L0f03baa8:
|
|
/* f03baa8: 0fc1241a */ jal chrIsTargetInFov
|
|
/* f03baac: 93a60057 */ lbu $a2,0x57($sp)
|
|
/* f03bab0: 5040003e */ beqzl $v0,.L0f03bbac
|
|
/* f03bab4: 93a40040 */ lbu $a0,0x40($sp)
|
|
/* f03bab8: 0fc12472 */ jal chrGetDistanceToTarget
|
|
/* f03babc: 02002025 */ or $a0,$s0,$zero
|
|
/* f03bac0: 8faa0050 */ lw $t2,0x50($sp)
|
|
/* f03bac4: 448a2000 */ mtc1 $t2,$f4
|
|
/* f03bac8: 00000000 */ nop
|
|
/* f03bacc: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f03bad0: 4606003c */ c.lt.s $f0,$f6
|
|
/* f03bad4: 00000000 */ nop
|
|
/* f03bad8: 45020034 */ bc1fl .L0f03bbac
|
|
/* f03badc: 93a40040 */ lbu $a0,0x40($sp)
|
|
/* f03bae0: 8e02001c */ lw $v0,0x1c($s0)
|
|
/* f03bae4: 26260008 */ addiu $a2,$s1,0x8
|
|
/* f03bae8: 24070033 */ addiu $a3,$zero,0x33
|
|
/* f03baec: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f03baf0: 0c00b706 */ jal func0002dc18
|
|
/* f03baf4: 24450028 */ addiu $a1,$v0,0x28
|
|
/* f03baf8: 5040002c */ beqzl $v0,.L0f03bbac
|
|
/* f03bafc: 93a40040 */ lbu $a0,0x40($sp)
|
|
/* f03bb00: 8e0b001c */ lw $t3,0x1c($s0)
|
|
/* f03bb04: c6280008 */ lwc1 $f8,0x8($s1)
|
|
/* f03bb08: 44809000 */ mtc1 $zero,$f18
|
|
/* f03bb0c: c56a0008 */ lwc1 $f10,0x8($t3)
|
|
/* f03bb10: 27a40034 */ addiu $a0,$sp,0x34
|
|
/* f03bb14: e7b20038 */ swc1 $f18,0x38($sp)
|
|
/* f03bb18: 460a4401 */ sub.s $f16,$f8,$f10
|
|
/* f03bb1c: 27a50038 */ addiu $a1,$sp,0x38
|
|
/* f03bb20: 27a6003c */ addiu $a2,$sp,0x3c
|
|
/* f03bb24: e7b00034 */ swc1 $f16,0x34($sp)
|
|
/* f03bb28: 8e0c001c */ lw $t4,0x1c($s0)
|
|
/* f03bb2c: c6240010 */ lwc1 $f4,0x10($s1)
|
|
/* f03bb30: c5860010 */ lwc1 $f6,0x10($t4)
|
|
/* f03bb34: 46062201 */ sub.s $f8,$f4,$f6
|
|
/* f03bb38: 0c0011e4 */ jal guNormalize
|
|
/* f03bb3c: e7a8003c */ swc1 $f8,0x3c($sp)
|
|
/* f03bb40: 27a40040 */ addiu $a0,$sp,0x40
|
|
/* f03bb44: 02202825 */ or $a1,$s1,$zero
|
|
/* f03bb48: 0fc29f66 */ jal func0f0a7d98
|
|
/* f03bb4c: 2406ffff */ addiu $a2,$zero,-1
|
|
/* f03bb50: 92220000 */ lbu $v0,0x0($s1)
|
|
/* f03bb54: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03bb58: 10410003 */ beq $v0,$at,.L0f03bb68
|
|
/* f03bb5c: 24010003 */ addiu $at,$zero,0x3
|
|
/* f03bb60: 54410012 */ bnel $v0,$at,.L0f03bbac
|
|
/* f03bb64: 93a40040 */ lbu $a0,0x40($sp)
|
|
.L0f03bb68:
|
|
/* f03bb68: 0fc2c74a */ jal handGetDamage
|
|
/* f03bb6c: 27a40040 */ addiu $a0,$sp,0x40
|
|
/* f03bb70: 8fad004c */ lw $t5,0x4c($sp)
|
|
/* f03bb74: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f03bb78: 8e240004 */ lw $a0,0x4($s1)
|
|
/* f03bb7c: 448d5000 */ mtc1 $t5,$f10
|
|
/* f03bb80: 240f00c8 */ addiu $t7,$zero,0xc8
|
|
/* f03bb84: afaf0014 */ sw $t7,0x14($sp)
|
|
/* f03bb88: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f03bb8c: 27a60034 */ addiu $a2,$sp,0x34
|
|
/* f03bb90: 27a70040 */ addiu $a3,$sp,0x40
|
|
/* f03bb94: afae0010 */ sw $t6,0x10($sp)
|
|
/* f03bb98: 46100482 */ mul.s $f18,$f0,$f16
|
|
/* f03bb9c: 44059000 */ mfc1 $a1,$f18
|
|
/* f03bba0: 0fc0d0cc */ jal func0f034330
|
|
/* f03bba4: 00000000 */ nop
|
|
/* f03bba8: 93a40040 */ lbu $a0,0x40($sp)
|
|
.L0f03bbac:
|
|
/* f03bbac: 0fc18261 */ jal func0f060984
|
|
/* f03bbb0: 8e05001c */ lw $a1,0x1c($s0)
|
|
/* f03bbb4: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f03bbb8: 8fb0001c */ lw $s0,0x1c($sp)
|
|
/* f03bbbc: 8fb10020 */ lw $s1,0x20($sp)
|
|
/* f03bbc0: 03e00008 */ jr $ra
|
|
/* f03bbc4: 27bd0048 */ addiu $sp,$sp,0x48
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrTryPunchOrKick
|
|
.late_rodata
|
|
glabel var7f1a8ed8
|
|
.word 0x3f59999a
|
|
.text
|
|
/* f03bbc8: 27bdffa8 */ addiu $sp,$sp,-88
|
|
/* f03bbcc: afb00028 */ sw $s0,0x28($sp)
|
|
/* f03bbd0: 00808025 */ or $s0,$a0,$zero
|
|
/* f03bbd4: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f03bbd8: afa5005c */ sw $a1,0x5c($sp)
|
|
/* f03bbdc: 10800003 */ beqz $a0,.L0f03bbec
|
|
/* f03bbe0: afa00054 */ sw $zero,0x54($sp)
|
|
/* f03bbe4: 10000002 */ b .L0f03bbf0
|
|
/* f03bbe8: 908302fe */ lbu $v1,0x2fe($a0)
|
|
.L0f03bbec:
|
|
/* f03bbec: 00001825 */ or $v1,$zero,$zero
|
|
.L0f03bbf0:
|
|
/* f03bbf0: 0c004b70 */ jal random
|
|
/* f03bbf4: afa30050 */ sw $v1,0x50($sp)
|
|
/* f03bbf8: 304e00ff */ andi $t6,$v0,0xff
|
|
/* f03bbfc: 2dc10081 */ sltiu $at,$t6,0x81
|
|
/* f03bc00: 14200003 */ bnez $at,.L0f03bc10
|
|
/* f03bc04: 8fa30050 */ lw $v1,0x50($sp)
|
|
/* f03bc08: 10000002 */ b .L0f03bc14
|
|
/* f03bc0c: 24080001 */ addiu $t0,$zero,0x1
|
|
.L0f03bc10:
|
|
/* f03bc10: 00004025 */ or $t0,$zero,$zero
|
|
.L0f03bc14:
|
|
/* f03bc14: 14600013 */ bnez $v1,.L0f03bc64
|
|
/* f03bc18: 24010001 */ addiu $at,$zero,0x1
|
|
/* f03bc1c: 3c014120 */ lui $at,0x4120
|
|
/* f03bc20: 44812000 */ mtc1 $at,$f4
|
|
/* f03bc24: 3c0f8007 */ lui $t7,%hi(var8006829c)
|
|
/* f03bc28: 25ef829c */ addiu $t7,$t7,%lo(var8006829c)
|
|
/* f03bc2c: 24180078 */ addiu $t8,$zero,0x78
|
|
/* f03bc30: 24190078 */ addiu $t9,$zero,0x78
|
|
/* f03bc34: afaf0054 */ sw $t7,0x54($sp)
|
|
/* f03bc38: afb80044 */ sw $t8,0x44($sp)
|
|
/* f03bc3c: afb90040 */ sw $t9,0x40($sp)
|
|
/* f03bc40: afa80048 */ sw $t0,0x48($sp)
|
|
/* f03bc44: 0c004b70 */ jal random
|
|
/* f03bc48: e7a4003c */ swc1 $f4,0x3c($sp)
|
|
/* f03bc4c: 2401000b */ addiu $at,$zero,0xb
|
|
/* f03bc50: 0041001b */ divu $zero,$v0,$at
|
|
/* f03bc54: 00004810 */ mfhi $t1
|
|
/* f03bc58: afa9004c */ sw $t1,0x4c($sp)
|
|
/* f03bc5c: 10000034 */ b .L0f03bd30
|
|
/* f03bc60: 8fa80048 */ lw $t0,0x48($sp)
|
|
.L0f03bc64:
|
|
/* f03bc64: 14610032 */ bne $v1,$at,.L0f03bd30
|
|
/* f03bc68: 3c0a8007 */ lui $t2,%hi(var8006835c)
|
|
/* f03bc6c: 93ad005f */ lbu $t5,0x5f($sp)
|
|
/* f03bc70: 3c0141a0 */ lui $at,0x41a0
|
|
/* f03bc74: 44813000 */ mtc1 $at,$f6
|
|
/* f03bc78: 254a835c */ addiu $t2,$t2,%lo(var8006835c)
|
|
/* f03bc7c: 240b00c8 */ addiu $t3,$zero,0xc8
|
|
/* f03bc80: 240c00c8 */ addiu $t4,$zero,0xc8
|
|
/* f03bc84: afaa0054 */ sw $t2,0x54($sp)
|
|
/* f03bc88: afab0044 */ sw $t3,0x44($sp)
|
|
/* f03bc8c: afac0040 */ sw $t4,0x40($sp)
|
|
/* f03bc90: 11a00004 */ beqz $t5,.L0f03bca4
|
|
/* f03bc94: e7a6003c */ swc1 $f6,0x3c($sp)
|
|
/* f03bc98: 240e0005 */ addiu $t6,$zero,0x5
|
|
/* f03bc9c: 10000024 */ b .L0f03bd30
|
|
/* f03bca0: afae004c */ sw $t6,0x4c($sp)
|
|
.L0f03bca4:
|
|
/* f03bca4: 8e0f0170 */ lw $t7,0x170($s0)
|
|
/* f03bca8: 15e0000a */ bnez $t7,.L0f03bcd4
|
|
/* f03bcac: 00000000 */ nop
|
|
/* f03bcb0: 8e180174 */ lw $t8,0x174($s0)
|
|
/* f03bcb4: 17000007 */ bnez $t8,.L0f03bcd4
|
|
/* f03bcb8: 00000000 */ nop
|
|
/* f03bcbc: 0c004b70 */ jal random
|
|
/* f03bcc0: afa80048 */ sw $t0,0x48($sp)
|
|
/* f03bcc4: 30590001 */ andi $t9,$v0,0x1
|
|
/* f03bcc8: afb9004c */ sw $t9,0x4c($sp)
|
|
/* f03bccc: 10000018 */ b .L0f03bd30
|
|
/* f03bcd0: 8fa80048 */ lw $t0,0x48($sp)
|
|
.L0f03bcd4:
|
|
/* f03bcd4: 0c004b70 */ jal random
|
|
/* f03bcd8: afa80048 */ sw $t0,0x48($sp)
|
|
/* f03bcdc: 24010005 */ addiu $at,$zero,0x5
|
|
/* f03bce0: 0041001b */ divu $zero,$v0,$at
|
|
/* f03bce4: 00001810 */ mfhi $v1
|
|
/* f03bce8: 28610003 */ slti $at,$v1,0x3
|
|
/* f03bcec: afa3004c */ sw $v1,0x4c($sp)
|
|
/* f03bcf0: 1420000f */ bnez $at,.L0f03bd30
|
|
/* f03bcf4: 8fa80048 */ lw $t0,0x48($sp)
|
|
/* f03bcf8: 8e020170 */ lw $v0,0x170($s0)
|
|
/* f03bcfc: 10400004 */ beqz $v0,.L0f03bd10
|
|
/* f03bd00: 00000000 */ nop
|
|
/* f03bd04: 8e090174 */ lw $t1,0x174($s0)
|
|
/* f03bd08: 5520000a */ bnezl $t1,.L0f03bd34
|
|
/* f03bd0c: 02002025 */ or $a0,$s0,$zero
|
|
.L0f03bd10:
|
|
/* f03bd10: 50400004 */ beqzl $v0,.L0f03bd24
|
|
/* f03bd14: 8e0a0174 */ lw $t2,0x174($s0)
|
|
/* f03bd18: 10000005 */ b .L0f03bd30
|
|
/* f03bd1c: 00004025 */ or $t0,$zero,$zero
|
|
/* f03bd20: 8e0a0174 */ lw $t2,0x174($s0)
|
|
.L0f03bd24:
|
|
/* f03bd24: 51400003 */ beqzl $t2,.L0f03bd34
|
|
/* f03bd28: 02002025 */ or $a0,$s0,$zero
|
|
/* f03bd2c: 24080001 */ addiu $t0,$zero,0x1
|
|
.L0f03bd30:
|
|
/* f03bd30: 02002025 */ or $a0,$s0,$zero
|
|
.L0f03bd34:
|
|
/* f03bd34: 24050080 */ addiu $a1,$zero,0x80
|
|
/* f03bd38: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f03bd3c: 0fc12790 */ jal chrHasFlag
|
|
/* f03bd40: afa80048 */ sw $t0,0x48($sp)
|
|
/* f03bd44: 10400031 */ beqz $v0,.L0f03be0c
|
|
/* f03bd48: 8fa80048 */ lw $t0,0x48($sp)
|
|
/* f03bd4c: 02002025 */ or $a0,$s0,$zero
|
|
/* f03bd50: 24050080 */ addiu $a1,$zero,0x80
|
|
/* f03bd54: 00003025 */ or $a2,$zero,$zero
|
|
/* f03bd58: 0fc12790 */ jal chrHasFlag
|
|
/* f03bd5c: afa80048 */ sw $t0,0x48($sp)
|
|
/* f03bd60: 10400013 */ beqz $v0,.L0f03bdb0
|
|
/* f03bd64: 8fa80048 */ lw $t0,0x48($sp)
|
|
/* f03bd68: 8fac004c */ lw $t4,0x4c($sp)
|
|
/* f03bd6c: 8fab0054 */ lw $t3,0x54($sp)
|
|
/* f03bd70: 3c013fc0 */ lui $at,0x3fc0
|
|
/* f03bd74: 000c6900 */ sll $t5,$t4,0x4
|
|
/* f03bd78: 016d1821 */ addu $v1,$t3,$t5
|
|
/* f03bd7c: 8c650000 */ lw $a1,0x0($v1)
|
|
/* f03bd80: 8c67000c */ lw $a3,0xc($v1)
|
|
/* f03bd84: 44814000 */ mtc1 $at,$f8
|
|
/* f03bd88: 240e0010 */ addiu $t6,$zero,0x10
|
|
/* f03bd8c: afae0014 */ sw $t6,0x14($sp)
|
|
/* f03bd90: afa30030 */ sw $v1,0x30($sp)
|
|
/* f03bd94: afa80010 */ sw $t0,0x10($sp)
|
|
/* f03bd98: 02002025 */ or $a0,$s0,$zero
|
|
/* f03bd9c: 8fa6003c */ lw $a2,0x3c($sp)
|
|
/* f03bda0: 0fc0ebd1 */ jal func0f03af44
|
|
/* f03bda4: e7a80018 */ swc1 $f8,0x18($sp)
|
|
/* f03bda8: 10000016 */ b .L0f03be04
|
|
/* f03bdac: 8fa30030 */ lw $v1,0x30($sp)
|
|
.L0f03bdb0:
|
|
/* f03bdb0: 8fb8004c */ lw $t8,0x4c($sp)
|
|
/* f03bdb4: 8faf0054 */ lw $t7,0x54($sp)
|
|
/* f03bdb8: 3c0141c8 */ lui $at,0x41c8
|
|
/* f03bdbc: 0018c900 */ sll $t9,$t8,0x4
|
|
/* f03bdc0: 01f91821 */ addu $v1,$t7,$t9
|
|
/* f03bdc4: c46a000c */ lwc1 $f10,0xc($v1)
|
|
/* f03bdc8: 44818000 */ mtc1 $at,$f16
|
|
/* f03bdcc: 3c013f00 */ lui $at,0x3f00
|
|
/* f03bdd0: 8c650000 */ lw $a1,0x0($v1)
|
|
/* f03bdd4: 46105481 */ sub.s $f18,$f10,$f16
|
|
/* f03bdd8: 44812000 */ mtc1 $at,$f4
|
|
/* f03bddc: 24090010 */ addiu $t1,$zero,0x10
|
|
/* f03bde0: afa90014 */ sw $t1,0x14($sp)
|
|
/* f03bde4: 44079000 */ mfc1 $a3,$f18
|
|
/* f03bde8: afa30030 */ sw $v1,0x30($sp)
|
|
/* f03bdec: afa80010 */ sw $t0,0x10($sp)
|
|
/* f03bdf0: 02002025 */ or $a0,$s0,$zero
|
|
/* f03bdf4: 8fa6003c */ lw $a2,0x3c($sp)
|
|
/* f03bdf8: 0fc0ebd1 */ jal func0f03af44
|
|
/* f03bdfc: e7a40018 */ swc1 $f4,0x18($sp)
|
|
/* f03be00: 8fa30030 */ lw $v1,0x30($sp)
|
|
.L0f03be04:
|
|
/* f03be04: 10000013 */ b .L0f03be54
|
|
/* f03be08: a200035e */ sb $zero,0x35e($s0)
|
|
.L0f03be0c:
|
|
/* f03be0c: 8fac004c */ lw $t4,0x4c($sp)
|
|
/* f03be10: 8faa0054 */ lw $t2,0x54($sp)
|
|
/* f03be14: 3c017f1b */ lui $at,%hi(var7f1a8ed8)
|
|
/* f03be18: 000c5900 */ sll $t3,$t4,0x4
|
|
/* f03be1c: 014b1821 */ addu $v1,$t2,$t3
|
|
/* f03be20: 8c650000 */ lw $a1,0x0($v1)
|
|
/* f03be24: 8c67000c */ lw $a3,0xc($v1)
|
|
/* f03be28: c4268ed8 */ lwc1 $f6,%lo(var7f1a8ed8)($at)
|
|
/* f03be2c: 240d0010 */ addiu $t5,$zero,0x10
|
|
/* f03be30: afad0014 */ sw $t5,0x14($sp)
|
|
/* f03be34: afa30030 */ sw $v1,0x30($sp)
|
|
/* f03be38: afa80010 */ sw $t0,0x10($sp)
|
|
/* f03be3c: 02002025 */ or $a0,$s0,$zero
|
|
/* f03be40: 8fa6003c */ lw $a2,0x3c($sp)
|
|
/* f03be44: 0fc0ebd1 */ jal func0f03af44
|
|
/* f03be48: e7a60018 */ swc1 $f6,0x18($sp)
|
|
/* f03be4c: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f03be50: a200035e */ sb $zero,0x35e($s0)
|
|
.L0f03be54:
|
|
/* f03be54: 10400073 */ beqz $v0,.L0f03c024
|
|
/* f03be58: 02002025 */ or $a0,$s0,$zero
|
|
/* f03be5c: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f03be60: afa30030 */ sw $v1,0x30($sp)
|
|
/* f03be64: 90440000 */ lbu $a0,0x0($v0)
|
|
/* f03be68: 24010005 */ addiu $at,$zero,0x5
|
|
/* f03be6c: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f03be70: 10810004 */ beq $a0,$at,.L0f03be84
|
|
/* f03be74: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f03be78: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03be7c: 14810004 */ bne $a0,$at,.L0f03be90
|
|
/* f03be80: 8fb80044 */ lw $t8,0x44($sp)
|
|
.L0f03be84:
|
|
/* f03be84: 8fae0040 */ lw $t6,0x40($sp)
|
|
/* f03be88: 10000002 */ b .L0f03be94
|
|
/* f03be8c: a60e0046 */ sh $t6,0x46($s0)
|
|
.L0f03be90:
|
|
/* f03be90: a6180046 */ sh $t8,0x46($s0)
|
|
.L0f03be94:
|
|
/* f03be94: a2020040 */ sb $v0,0x40($s0)
|
|
/* f03be98: 846f0008 */ lh $t7,0x8($v1)
|
|
/* f03be9c: 3c19800a */ lui $t9,%hi(g_Vars+0x318)
|
|
/* f03bea0: 02002025 */ or $a0,$s0,$zero
|
|
/* f03bea4: a60f0042 */ sh $t7,0x42($s0)
|
|
/* f03bea8: 8f39a2d8 */ lw $t9,%lo(g_Vars+0x318)($t9)
|
|
/* f03beac: 24050080 */ addiu $a1,$zero,0x80
|
|
/* f03beb0: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f03beb4: 13200003 */ beqz $t9,.L0f03bec4
|
|
/* f03beb8: 00000000 */ nop
|
|
/* f03bebc: 10000050 */ b .L0f03c000
|
|
/* f03bec0: a6020044 */ sh $v0,0x44($s0)
|
|
.L0f03bec4:
|
|
/* f03bec4: 0fc12790 */ jal chrHasFlag
|
|
/* f03bec8: afa30030 */ sw $v1,0x30($sp)
|
|
/* f03becc: 1040003d */ beqz $v0,.L0f03bfc4
|
|
/* f03bed0: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f03bed4: 02002025 */ or $a0,$s0,$zero
|
|
/* f03bed8: 24050080 */ addiu $a1,$zero,0x80
|
|
/* f03bedc: 00003025 */ or $a2,$zero,$zero
|
|
/* f03bee0: 0fc12790 */ jal chrHasFlag
|
|
/* f03bee4: afa30030 */ sw $v1,0x30($sp)
|
|
/* f03bee8: 10400036 */ beqz $v0,.L0f03bfc4
|
|
/* f03beec: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f03bef0: 94690006 */ lhu $t1,0x6($v1)
|
|
/* f03bef4: 3c014f80 */ lui $at,0x4f80
|
|
/* f03bef8: 44894000 */ mtc1 $t1,$f8
|
|
/* f03befc: 05210004 */ bgez $t1,.L0f03bf10
|
|
/* f03bf00: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f03bf04: 44818000 */ mtc1 $at,$f16
|
|
/* f03bf08: 00000000 */ nop
|
|
/* f03bf0c: 46105280 */ add.s $f10,$f10,$f16
|
|
.L0f03bf10:
|
|
/* f03bf10: 920c0112 */ lbu $t4,0x112($s0)
|
|
/* f03bf14: 3c014f80 */ lui $at,0x4f80
|
|
/* f03bf18: 448c9000 */ mtc1 $t4,$f18
|
|
/* f03bf1c: 05810004 */ bgez $t4,.L0f03bf30
|
|
/* f03bf20: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f03bf24: 44813000 */ mtc1 $at,$f6
|
|
/* f03bf28: 00000000 */ nop
|
|
/* f03bf2c: 46062100 */ add.s $f4,$f4,$f6
|
|
.L0f03bf30:
|
|
/* f03bf30: 46045002 */ mul.s $f0,$f10,$f4
|
|
/* f03bf34: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f03bf38: 3c014f00 */ lui $at,0x4f00
|
|
/* f03bf3c: 46000200 */ add.s $f8,$f0,$f0
|
|
/* f03bf40: 444af800 */ cfc1 $t2,$31
|
|
/* f03bf44: 44cbf800 */ ctc1 $t3,$31
|
|
/* f03bf48: 00000000 */ nop
|
|
/* f03bf4c: 46004424 */ cvt.w.s $f16,$f8
|
|
/* f03bf50: 444bf800 */ cfc1 $t3,$31
|
|
/* f03bf54: 00000000 */ nop
|
|
/* f03bf58: 316b0078 */ andi $t3,$t3,0x78
|
|
/* f03bf5c: 51600013 */ beqzl $t3,.L0f03bfac
|
|
/* f03bf60: 440b8000 */ mfc1 $t3,$f16
|
|
/* f03bf64: 44818000 */ mtc1 $at,$f16
|
|
/* f03bf68: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f03bf6c: 46104401 */ sub.s $f16,$f8,$f16
|
|
/* f03bf70: 44cbf800 */ ctc1 $t3,$31
|
|
/* f03bf74: 00000000 */ nop
|
|
/* f03bf78: 46008424 */ cvt.w.s $f16,$f16
|
|
/* f03bf7c: 444bf800 */ cfc1 $t3,$31
|
|
/* f03bf80: 00000000 */ nop
|
|
/* f03bf84: 316b0078 */ andi $t3,$t3,0x78
|
|
/* f03bf88: 15600005 */ bnez $t3,.L0f03bfa0
|
|
/* f03bf8c: 00000000 */ nop
|
|
/* f03bf90: 440b8000 */ mfc1 $t3,$f16
|
|
/* f03bf94: 3c018000 */ lui $at,0x8000
|
|
/* f03bf98: 10000007 */ b .L0f03bfb8
|
|
/* f03bf9c: 01615825 */ or $t3,$t3,$at
|
|
.L0f03bfa0:
|
|
/* f03bfa0: 10000005 */ b .L0f03bfb8
|
|
/* f03bfa4: 240bffff */ addiu $t3,$zero,-1
|
|
/* f03bfa8: 440b8000 */ mfc1 $t3,$f16
|
|
.L0f03bfac:
|
|
/* f03bfac: 00000000 */ nop
|
|
/* f03bfb0: 0560fffb */ bltz $t3,.L0f03bfa0
|
|
/* f03bfb4: 00000000 */ nop
|
|
.L0f03bfb8:
|
|
/* f03bfb8: 44caf800 */ ctc1 $t2,$31
|
|
/* f03bfbc: 10000010 */ b .L0f03c000
|
|
/* f03bfc0: a60b0044 */ sh $t3,0x44($s0)
|
|
.L0f03bfc4:
|
|
/* f03bfc4: 02002025 */ or $a0,$s0,$zero
|
|
/* f03bfc8: 3c058000 */ lui $a1,0x8000
|
|
/* f03bfcc: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f03bfd0: 0fc12790 */ jal chrHasFlag
|
|
/* f03bfd4: afa30030 */ sw $v1,0x30($sp)
|
|
/* f03bfd8: 10400007 */ beqz $v0,.L0f03bff8
|
|
/* f03bfdc: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f03bfe0: 946d0006 */ lhu $t5,0x6($v1)
|
|
/* f03bfe4: 000d7080 */ sll $t6,$t5,0x2
|
|
/* f03bfe8: 01cd7023 */ subu $t6,$t6,$t5
|
|
/* f03bfec: 000e7040 */ sll $t6,$t6,0x1
|
|
/* f03bff0: 10000003 */ b .L0f03c000
|
|
/* f03bff4: a60e0044 */ sh $t6,0x44($s0)
|
|
.L0f03bff8:
|
|
/* f03bff8: 8c780004 */ lw $t8,0x4($v1)
|
|
/* f03bffc: a6180044 */ sh $t8,0x44($s0)
|
|
.L0f03c000:
|
|
/* f03c000: 8e190018 */ lw $t9,0x18($s0)
|
|
/* f03c004: 3c017fff */ lui $at,0x7fff
|
|
/* f03c008: 93af005f */ lbu $t7,0x5f($sp)
|
|
/* f03c00c: 3421ffff */ ori $at,$at,0xffff
|
|
/* f03c010: 03214824 */ and $t1,$t9,$at
|
|
/* f03c014: ae090018 */ sw $t1,0x18($s0)
|
|
/* f03c018: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f03c01c: 10000002 */ b .L0f03c028
|
|
/* f03c020: a20f0041 */ sb $t7,0x41($s0)
|
|
.L0f03c024:
|
|
/* f03c024: 00001025 */ or $v0,$zero,$zero
|
|
.L0f03c028:
|
|
/* f03c028: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f03c02c: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f03c030: 27bd0058 */ addiu $sp,$sp,0x58
|
|
/* f03c034: 03e00008 */ jr $ra
|
|
/* f03c038: 00000000 */ nop
|
|
/* f03c03c: 03e00008 */ jr $ra
|
|
/* f03c040: 00000000 */ nop
|
|
);
|
|
|
|
/**
|
|
* Verifies that the given chr struct is actually an eyespy and returns the
|
|
* eyespy struct.
|
|
*
|
|
* Eyespys have their own chr struct, even though they aren't a chr. Iterating
|
|
* the player list is required because the only pointer to an eyespy is via the
|
|
* player struct.
|
|
*/
|
|
struct eyespy *chrToEyespy(struct chrdata *chr)
|
|
{
|
|
if (chr && chr->prop) {
|
|
if (CHRRACE(chr) == RACE_EYESPY) {
|
|
s32 playercount = PLAYERCOUNT();
|
|
s32 i;
|
|
|
|
for (i = 0; i < playercount; i++) {
|
|
if (g_Vars.players[i]->eyespy && chr->prop == g_Vars.players[i]->eyespy->prop) {
|
|
return g_Vars.players[i]->eyespy;
|
|
}
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrTickStand
|
|
.late_rodata
|
|
glabel var7f1a8edc
|
|
.word 0x3eb2b17a
|
|
glabel var7f1a8ee0
|
|
.word 0x40bddc91
|
|
glabel var7f1a8ee4
|
|
.word 0x3e32b17a
|
|
glabel var7f1a8ee8
|
|
.word 0x40c3721d
|
|
glabel var7f1a8eec
|
|
.word 0x40c907a9
|
|
glabel var7f1a8ef0
|
|
.word 0x3f4907a9
|
|
glabel var7f1a8ef4
|
|
.word 0x40c907a9
|
|
glabel var7f1a8ef8
|
|
.word 0x40c907a9
|
|
glabel var7f1a8efc
|
|
.word 0x40c907a9
|
|
glabel var7f1a8f00
|
|
.word 0x40c907a9
|
|
glabel var7f1a8f04
|
|
.word 0x3f4907a9
|
|
glabel var7f1a8f08
|
|
.word 0x46230028
|
|
.text
|
|
/* f03c138: 27bdff48 */ addiu $sp,$sp,-184
|
|
/* f03c13c: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f03c140: afb00020 */ sw $s0,0x20($sp)
|
|
/* f03c144: 8c8e0014 */ lw $t6,0x14($a0)
|
|
/* f03c148: 00808025 */ or $s0,$a0,$zero
|
|
/* f03c14c: 000e7a80 */ sll $t7,$t6,0xa
|
|
/* f03c150: 05e1000c */ bgez $t7,.L0f03c184
|
|
/* f03c154: 00000000 */ nop
|
|
/* f03c158: 0c0076e5 */ jal modelIsAnimMerging
|
|
/* f03c15c: 8c840020 */ lw $a0,0x20($a0)
|
|
/* f03c160: 144001cf */ bnez $v0,.L0f03c8a0
|
|
/* f03c164: 02002025 */ or $a0,$s0,$zero
|
|
/* f03c168: 0fc0b9b7 */ jal chrStandChooseAnimation
|
|
/* f03c16c: 8e050048 */ lw $a1,0x48($s0)
|
|
/* f03c170: 8e180014 */ lw $t8,0x14($s0)
|
|
/* f03c174: 3c01ffdf */ lui $at,0xffdf
|
|
/* f03c178: 3421ffff */ ori $at,$at,0xffff
|
|
/* f03c17c: 0301c824 */ and $t9,$t8,$at
|
|
/* f03c180: ae190014 */ sw $t9,0x14($s0)
|
|
.L0f03c184:
|
|
/* f03c184: 0c00744f */ jal modelGetAnimNum
|
|
/* f03c188: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c18c: 2401026b */ addiu $at,$zero,0x26b
|
|
/* f03c190: 54410011 */ bnel $v0,$at,.L0f03c1d8
|
|
/* f03c194: 820b0008 */ lb $t3,0x8($s0)
|
|
/* f03c198: 0c00745f */ jal modelGetCurAnimFrame
|
|
/* f03c19c: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c1a0: e7a0003c */ swc1 $f0,0x3c($sp)
|
|
/* f03c1a4: 0c007468 */ jal modelGetAnimEndFrame
|
|
/* f03c1a8: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c1ac: c7a4003c */ lwc1 $f4,0x3c($sp)
|
|
/* f03c1b0: 02002025 */ or $a0,$s0,$zero
|
|
/* f03c1b4: 4604003e */ c.le.s $f0,$f4
|
|
/* f03c1b8: 00000000 */ nop
|
|
/* f03c1bc: 450201b9 */ bc1fl .L0f03c8a4
|
|
/* f03c1c0: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f03c1c4: 0fc0b9b7 */ jal chrStandChooseAnimation
|
|
/* f03c1c8: 3c054100 */ lui $a1,0x4100
|
|
/* f03c1cc: 100001b4 */ b .L0f03c8a0
|
|
/* f03c1d0: ae00002c */ sw $zero,0x2c($s0)
|
|
/* f03c1d4: 820b0008 */ lb $t3,0x8($s0)
|
|
.L0f03c1d8:
|
|
/* f03c1d8: 24010003 */ addiu $at,$zero,0x3
|
|
/* f03c1dc: 5d6001b1 */ bgtzl $t3,.L0f03c8a4
|
|
/* f03c1e0: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f03c1e4: 12000003 */ beqz $s0,.L0f03c1f4
|
|
/* f03c1e8: 00001825 */ or $v1,$zero,$zero
|
|
/* f03c1ec: 10000001 */ b .L0f03c1f4
|
|
/* f03c1f0: 920302fe */ lbu $v1,0x2fe($s0)
|
|
.L0f03c1f4:
|
|
/* f03c1f4: 506101ab */ beql $v1,$at,.L0f03c8a4
|
|
/* f03c1f8: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f03c1fc: 8e0c002c */ lw $t4,0x2c($s0)
|
|
/* f03c200: 51800012 */ beqzl $t4,.L0f03c24c
|
|
/* f03c204: 8e0202d4 */ lw $v0,0x2d4($s0)
|
|
/* f03c208: 0c00745f */ jal modelGetCurAnimFrame
|
|
/* f03c20c: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c210: e7a0003c */ swc1 $f0,0x3c($sp)
|
|
/* f03c214: 0c007468 */ jal modelGetAnimEndFrame
|
|
/* f03c218: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c21c: c7a6003c */ lwc1 $f6,0x3c($sp)
|
|
/* f03c220: 02002025 */ or $a0,$s0,$zero
|
|
/* f03c224: 4606003e */ c.le.s $f0,$f6
|
|
/* f03c228: 00000000 */ nop
|
|
/* f03c22c: 45000004 */ bc1f .L0f03c240
|
|
/* f03c230: 00000000 */ nop
|
|
/* f03c234: 0fc0b9b7 */ jal chrStandChooseAnimation
|
|
/* f03c238: 3c054100 */ lui $a1,0x4100
|
|
/* f03c23c: ae00002c */ sw $zero,0x2c($s0)
|
|
.L0f03c240:
|
|
/* f03c240: 10000197 */ b .L0f03c8a0
|
|
/* f03c244: a2000008 */ sb $zero,0x8($s0)
|
|
/* f03c248: 8e0202d4 */ lw $v0,0x2d4($s0)
|
|
.L0f03c24c:
|
|
/* f03c24c: 144000b8 */ bnez $v0,.L0f03c530
|
|
/* f03c250: 00000000 */ nop
|
|
/* f03c254: 10600003 */ beqz $v1,.L0f03c264
|
|
/* f03c258: 24010001 */ addiu $at,$zero,0x1
|
|
/* f03c25c: 146100b4 */ bne $v1,$at,.L0f03c530
|
|
/* f03c260: 00000000 */ nop
|
|
.L0f03c264:
|
|
/* f03c264: 8e050030 */ lw $a1,0x30($s0)
|
|
/* f03c268: 18a000b1 */ blez $a1,.L0f03c530
|
|
/* f03c26c: 00000000 */ nop
|
|
/* f03c270: 8e0d0038 */ lw $t5,0x38($s0)
|
|
/* f03c274: 02002025 */ or $a0,$s0,$zero
|
|
/* f03c278: 51a0001c */ beqzl $t5,.L0f03c2ec
|
|
/* f03c27c: 8e060034 */ lw $a2,0x34($s0)
|
|
/* f03c280: 0c007486 */ jal modelGetNumAnimFrames
|
|
/* f03c284: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c288: 244effff */ addiu $t6,$v0,-1
|
|
/* f03c28c: 448e4000 */ mtc1 $t6,$f8
|
|
/* f03c290: 44805000 */ mtc1 $zero,$f10
|
|
/* f03c294: 8e05003c */ lw $a1,0x3c($s0)
|
|
/* f03c298: 46804220 */ cvt.s.w $f8,$f8
|
|
/* f03c29c: 02002025 */ or $a0,$s0,$zero
|
|
/* f03c2a0: 3c073f80 */ lui $a3,0x3f80
|
|
/* f03c2a4: e7aa0010 */ swc1 $f10,0x10($sp)
|
|
/* f03c2a8: 44064000 */ mfc1 $a2,$f8
|
|
/* f03c2ac: 0fc0f9e2 */ jal func0f03e788
|
|
/* f03c2b0: 00000000 */ nop
|
|
/* f03c2b4: 24010001 */ addiu $at,$zero,0x1
|
|
/* f03c2b8: 1041009b */ beq $v0,$at,.L0f03c528
|
|
/* f03c2bc: ae02003c */ sw $v0,0x3c($s0)
|
|
/* f03c2c0: 02002025 */ or $a0,$s0,$zero
|
|
/* f03c2c4: 0fc0b9b7 */ jal chrStandChooseAnimation
|
|
/* f03c2c8: 3c054100 */ lui $a1,0x4100
|
|
/* f03c2cc: 8e0f0030 */ lw $t7,0x30($s0)
|
|
/* f03c2d0: ae000038 */ sw $zero,0x38($s0)
|
|
/* f03c2d4: 31f80010 */ andi $t8,$t7,0x10
|
|
/* f03c2d8: 13000093 */ beqz $t8,.L0f03c528
|
|
/* f03c2dc: 00000000 */ nop
|
|
/* f03c2e0: 10000091 */ b .L0f03c528
|
|
/* f03c2e4: ae000030 */ sw $zero,0x30($s0)
|
|
/* f03c2e8: 8e060034 */ lw $a2,0x34($s0)
|
|
.L0f03c2ec:
|
|
/* f03c2ec: 0fc0b8b4 */ jal func0f02e2d0
|
|
/* f03c2f0: afa300b4 */ sw $v1,0xb4($sp)
|
|
/* f03c2f4: 3c017f1b */ lui $at,%hi(var7f1a8edc)
|
|
/* f03c2f8: c4308edc */ lwc1 $f16,%lo(var7f1a8edc)($at)
|
|
/* f03c2fc: 8fa300b4 */ lw $v1,0xb4($sp)
|
|
/* f03c300: 3c017f1b */ lui $at,%hi(var7f1a8ee0)
|
|
/* f03c304: 4600803c */ c.lt.s $f16,$f0
|
|
/* f03c308: 00000000 */ nop
|
|
/* f03c30c: 45000005 */ bc1f .L0f03c324
|
|
/* f03c310: 00000000 */ nop
|
|
/* f03c314: c4328ee0 */ lwc1 $f18,%lo(var7f1a8ee0)($at)
|
|
/* f03c318: 4612003c */ c.lt.s $f0,$f18
|
|
/* f03c31c: 00000000 */ nop
|
|
/* f03c320: 4501000e */ bc1t .L0f03c35c
|
|
.L0f03c324:
|
|
/* f03c324: 3c017f1b */ lui $at,%hi(var7f1a8ee4)
|
|
/* f03c328: c4248ee4 */ lwc1 $f4,%lo(var7f1a8ee4)($at)
|
|
/* f03c32c: 3c017f1b */ lui $at,%hi(var7f1a8ee8)
|
|
/* f03c330: 4600203c */ c.lt.s $f4,$f0
|
|
/* f03c334: 00000000 */ nop
|
|
/* f03c338: 45020077 */ bc1fl .L0f03c518
|
|
/* f03c33c: 8e0c0030 */ lw $t4,0x30($s0)
|
|
/* f03c340: c4268ee8 */ lwc1 $f6,%lo(var7f1a8ee8)($at)
|
|
/* f03c344: 4606003c */ c.lt.s $f0,$f6
|
|
/* f03c348: 00000000 */ nop
|
|
/* f03c34c: 45020072 */ bc1fl .L0f03c518
|
|
/* f03c350: 8e0c0030 */ lw $t4,0x30($s0)
|
|
/* f03c354: 9219004c */ lbu $t9,0x4c($s0)
|
|
/* f03c358: 1720006e */ bnez $t9,.L0f03c514
|
|
.L0f03c35c:
|
|
/* f03c35c: 02002025 */ or $a0,$s0,$zero
|
|
/* f03c360: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03c364: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f03c368: afa300b4 */ sw $v1,0xb4($sp)
|
|
/* f03c36c: afa200a4 */ sw $v0,0xa4($sp)
|
|
/* f03c370: 02002025 */ or $a0,$s0,$zero
|
|
/* f03c374: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f03c378: 00002825 */ or $a1,$zero,$zero
|
|
/* f03c37c: 8fa300b4 */ lw $v1,0xb4($sp)
|
|
/* f03c380: afa200a0 */ sw $v0,0xa0($sp)
|
|
/* f03c384: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f03c388: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f03c38c: ae0b0038 */ sw $t3,0x38($s0)
|
|
/* f03c390: 14600045 */ bnez $v1,.L0f03c4a8
|
|
/* f03c394: ae0c003c */ sw $t4,0x3c($s0)
|
|
/* f03c398: 8fa400a4 */ lw $a0,0xa4($sp)
|
|
/* f03c39c: 10800003 */ beqz $a0,.L0f03c3ac
|
|
/* f03c3a0: 00000000 */ nop
|
|
/* f03c3a4: 1440000d */ bnez $v0,.L0f03c3dc
|
|
/* f03c3a8: 00000000 */ nop
|
|
.L0f03c3ac:
|
|
/* f03c3ac: 14800003 */ bnez $a0,.L0f03c3bc
|
|
/* f03c3b0: 00000000 */ nop
|
|
/* f03c3b4: 10400009 */ beqz $v0,.L0f03c3dc
|
|
/* f03c3b8: 00000000 */ nop
|
|
.L0f03c3bc:
|
|
/* f03c3bc: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f03c3c0: 00000000 */ nop
|
|
/* f03c3c4: 14400005 */ bnez $v0,.L0f03c3dc
|
|
/* f03c3c8: 00000000 */ nop
|
|
/* f03c3cc: 0fc0b849 */ jal weaponIsOneHanded
|
|
/* f03c3d0: 8fa400a0 */ lw $a0,0xa0($sp)
|
|
/* f03c3d4: 10400019 */ beqz $v0,.L0f03c43c
|
|
/* f03c3d8: 8fae00a0 */ lw $t6,0xa0($sp)
|
|
.L0f03c3dc:
|
|
/* f03c3dc: 0c004b70 */ jal random
|
|
/* f03c3e0: 00000000 */ nop
|
|
/* f03c3e4: 3c013f00 */ lui $at,0x3f00
|
|
/* f03c3e8: 44814000 */ mtc1 $at,$f8
|
|
/* f03c3ec: 3c014180 */ lui $at,0x4180
|
|
/* f03c3f0: 44815000 */ mtc1 $at,$f10
|
|
/* f03c3f4: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c3f8: 2405006b */ addiu $a1,$zero,0x6b
|
|
/* f03c3fc: 30460001 */ andi $a2,$v0,0x1
|
|
/* f03c400: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f03c404: e7a80010 */ swc1 $f8,0x10($sp)
|
|
/* f03c408: 0c007733 */ jal modelSetAnimation
|
|
/* f03c40c: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f03c410: 0c008dda */ jal animGetNumFrames
|
|
/* f03c414: 2404006b */ addiu $a0,$zero,0x6b
|
|
/* f03c418: 244dffff */ addiu $t5,$v0,-1
|
|
/* f03c41c: 448d8000 */ mtc1 $t5,$f16
|
|
/* f03c420: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c424: 46808420 */ cvt.s.w $f16,$f16
|
|
/* f03c428: 44058000 */ mfc1 $a1,$f16
|
|
/* f03c42c: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f03c430: 00000000 */ nop
|
|
/* f03c434: 1000003c */ b .L0f03c528
|
|
/* f03c438: 00000000 */ nop
|
|
.L0f03c43c:
|
|
/* f03c43c: 15c00002 */ bnez $t6,.L0f03c448
|
|
/* f03c440: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
/* f03c444: 11e00038 */ beqz $t7,.L0f03c528
|
|
.L0f03c448:
|
|
/* f03c448: 3c013f00 */ lui $at,0x3f00
|
|
/* f03c44c: 44819000 */ mtc1 $at,$f18
|
|
/* f03c450: 8fa600a4 */ lw $a2,0xa4($sp)
|
|
/* f03c454: 3c014180 */ lui $at,0x4180
|
|
/* f03c458: 44812000 */ mtc1 $at,$f4
|
|
/* f03c45c: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c460: 0006c02b */ sltu $t8,$zero,$a2
|
|
/* f03c464: 03003025 */ or $a2,$t8,$zero
|
|
/* f03c468: 24050028 */ addiu $a1,$zero,0x28
|
|
/* f03c46c: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f03c470: e7b20010 */ swc1 $f18,0x10($sp)
|
|
/* f03c474: 0c007733 */ jal modelSetAnimation
|
|
/* f03c478: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f03c47c: 0c008dda */ jal animGetNumFrames
|
|
/* f03c480: 24040028 */ addiu $a0,$zero,0x28
|
|
/* f03c484: 2459ffff */ addiu $t9,$v0,-1
|
|
/* f03c488: 44993000 */ mtc1 $t9,$f6
|
|
/* f03c48c: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c490: 468031a0 */ cvt.s.w $f6,$f6
|
|
/* f03c494: 44053000 */ mfc1 $a1,$f6
|
|
/* f03c498: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f03c49c: 00000000 */ nop
|
|
/* f03c4a0: 10000021 */ b .L0f03c528
|
|
/* f03c4a4: 00000000 */ nop
|
|
.L0f03c4a8:
|
|
/* f03c4a8: 24010001 */ addiu $at,$zero,0x1
|
|
/* f03c4ac: 1461001e */ bne $v1,$at,.L0f03c528
|
|
/* f03c4b0: 00000000 */ nop
|
|
/* f03c4b4: 0c004b70 */ jal random
|
|
/* f03c4b8: 00000000 */ nop
|
|
/* f03c4bc: 3c013f00 */ lui $at,0x3f00
|
|
/* f03c4c0: 44814000 */ mtc1 $at,$f8
|
|
/* f03c4c4: 3c014180 */ lui $at,0x4180
|
|
/* f03c4c8: 44815000 */ mtc1 $at,$f10
|
|
/* f03c4cc: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c4d0: 24050392 */ addiu $a1,$zero,0x392
|
|
/* f03c4d4: 30460001 */ andi $a2,$v0,0x1
|
|
/* f03c4d8: 24070000 */ addiu $a3,$zero,0x0
|
|
/* f03c4dc: e7a80010 */ swc1 $f8,0x10($sp)
|
|
/* f03c4e0: 0c007733 */ jal modelSetAnimation
|
|
/* f03c4e4: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f03c4e8: 0c008dda */ jal animGetNumFrames
|
|
/* f03c4ec: 24040392 */ addiu $a0,$zero,0x392
|
|
/* f03c4f0: 244bffff */ addiu $t3,$v0,-1
|
|
/* f03c4f4: 448b8000 */ mtc1 $t3,$f16
|
|
/* f03c4f8: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f03c4fc: 46808420 */ cvt.s.w $f16,$f16
|
|
/* f03c500: 44058000 */ mfc1 $a1,$f16
|
|
/* f03c504: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f03c508: 00000000 */ nop
|
|
/* f03c50c: 10000006 */ b .L0f03c528
|
|
/* f03c510: 00000000 */ nop
|
|
.L0f03c514:
|
|
/* f03c514: 8e0c0030 */ lw $t4,0x30($s0)
|
|
.L0f03c518:
|
|
/* f03c518: 318d0010 */ andi $t5,$t4,0x10
|
|
/* f03c51c: 11a00002 */ beqz $t5,.L0f03c528
|
|
/* f03c520: 00000000 */ nop
|
|
/* f03c524: ae000030 */ sw $zero,0x30($s0)
|
|
.L0f03c528:
|
|
/* f03c528: 100000dd */ b .L0f03c8a0
|
|
/* f03c52c: a2000008 */ sb $zero,0x8($s0)
|
|
.L0f03c530:
|
|
/* f03c530: 544000dc */ bnezl $v0,.L0f03c8a4
|
|
/* f03c534: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f03c538: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f03c53c: 91cf0001 */ lbu $t7,0x1($t6)
|
|
/* f03c540: 31f80080 */ andi $t8,$t7,0x80
|
|
/* f03c544: 13000003 */ beqz $t8,.L0f03c554
|
|
/* f03c548: 00000000 */ nop
|
|
/* f03c54c: 10000008 */ b .L0f03c570
|
|
/* f03c550: a2000008 */ sb $zero,0x8($s0)
|
|
.L0f03c554:
|
|
/* f03c554: 0c004b70 */ jal random
|
|
/* f03c558: 00000000 */ nop
|
|
/* f03c55c: 24010005 */ addiu $at,$zero,0x5
|
|
/* f03c560: 0041001b */ divu $zero,$v0,$at
|
|
/* f03c564: 0000c810 */ mfhi $t9
|
|
/* f03c568: 272b000e */ addiu $t3,$t9,0xe
|
|
/* f03c56c: a20b0008 */ sb $t3,0x8($s0)
|
|
.L0f03c570:
|
|
/* f03c570: 8e0c0040 */ lw $t4,0x40($s0)
|
|
/* f03c574: 518000cb */ beqzl $t4,.L0f03c8a4
|
|
/* f03c578: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f03c57c: 8e0d0018 */ lw $t5,0x18($s0)
|
|
/* f03c580: 31ae0080 */ andi $t6,$t5,0x80
|
|
/* f03c584: 51c00004 */ beqzl $t6,.L0f03c598
|
|
/* f03c588: 8e0f0044 */ lw $t7,0x44($s0)
|
|
/* f03c58c: 100000c4 */ b .L0f03c8a0
|
|
/* f03c590: ae000040 */ sw $zero,0x40($s0)
|
|
/* f03c594: 8e0f0044 */ lw $t7,0x44($s0)
|
|
.L0f03c598:
|
|
/* f03c598: 82180008 */ lb $t8,0x8($s0)
|
|
/* f03c59c: 01f8c823 */ subu $t9,$t7,$t8
|
|
/* f03c5a0: 072100bf */ bgez $t9,.L0f03c8a0
|
|
/* f03c5a4: ae190044 */ sw $t9,0x44($s0)
|
|
/* f03c5a8: 0fc0f917 */ jal chrGetInverseTheta
|
|
/* f03c5ac: 02002025 */ or $a0,$s0,$zero
|
|
/* f03c5b0: 3c017f1b */ lui $at,%hi(var7f1a8eec)
|
|
/* f03c5b4: e7a00070 */ swc1 $f0,0x70($sp)
|
|
/* f03c5b8: 46000086 */ mov.s $f2,$f0
|
|
/* f03c5bc: c42c8eec */ lwc1 $f12,%lo(var7f1a8eec)($at)
|
|
/* f03c5c0: 27a20074 */ addiu $v0,$sp,0x74
|
|
.L0f03c5c4:
|
|
/* f03c5c4: 3c017f1b */ lui $at,%hi(var7f1a8ef0)
|
|
/* f03c5c8: c4328ef0 */ lwc1 $f18,%lo(var7f1a8ef0)($at)
|
|
/* f03c5cc: 3c013f80 */ lui $at,0x3f80
|
|
/* f03c5d0: 44813000 */ mtc1 $at,$f6
|
|
/* f03c5d4: 46121080 */ add.s $f2,$f2,$f18
|
|
/* f03c5d8: 44802000 */ mtc1 $zero,$f4
|
|
/* f03c5dc: 3c06447a */ lui $a2,0x447a
|
|
/* f03c5e0: 24070020 */ addiu $a3,$zero,0x20
|
|
/* f03c5e4: 4602603e */ c.le.s $f12,$f2
|
|
/* f03c5e8: 00000000 */ nop
|
|
/* f03c5ec: 45020003 */ bc1fl .L0f03c5fc
|
|
/* f03c5f0: 8e04001c */ lw $a0,0x1c($s0)
|
|
/* f03c5f4: 460c1081 */ sub.s $f2,$f2,$f12
|
|
/* f03c5f8: 8e04001c */ lw $a0,0x1c($s0)
|
|
.L0f03c5fc:
|
|
/* f03c5fc: 44051000 */ mfc1 $a1,$f2
|
|
/* f03c600: e7a2006c */ swc1 $f2,0x6c($sp)
|
|
/* f03c604: afa20034 */ sw $v0,0x34($sp)
|
|
/* f03c608: e7a60014 */ swc1 $f6,0x14($sp)
|
|
/* f03c60c: 0fc0b954 */ jal func0f02e550
|
|
/* f03c610: e7a40010 */ swc1 $f4,0x10($sp)
|
|
/* f03c614: 8fa20034 */ lw $v0,0x34($sp)
|
|
/* f03c618: 3c017f1b */ lui $at,%hi(var7f1a8ef4)
|
|
/* f03c61c: 27ac0094 */ addiu $t4,$sp,0x94
|
|
/* f03c620: c42c8ef4 */ lwc1 $f12,%lo(var7f1a8ef4)($at)
|
|
/* f03c624: 24420004 */ addiu $v0,$v0,0x4
|
|
/* f03c628: 004c082b */ sltu $at,$v0,$t4
|
|
/* f03c62c: c7a2006c */ lwc1 $f2,0x6c($sp)
|
|
/* f03c630: 1420ffe4 */ bnez $at,.L0f03c5c4
|
|
/* f03c634: e440fffc */ swc1 $f0,-0x4($v0)
|
|
/* f03c638: 00003825 */ or $a3,$zero,$zero
|
|
/* f03c63c: 27a80044 */ addiu $t0,$sp,0x44
|
|
.L0f03c640:
|
|
/* f03c640: ad070000 */ sw $a3,0x0($t0)
|
|
/* f03c644: 24e70001 */ addiu $a3,$a3,0x1
|
|
/* f03c648: 28e10008 */ slti $at,$a3,0x8
|
|
/* f03c64c: 1420fffc */ bnez $at,.L0f03c640
|
|
/* f03c650: 25080004 */ addiu $t0,$t0,0x4
|
|
/* f03c654: 00003825 */ or $a3,$zero,$zero
|
|
/* f03c658: 27a80044 */ addiu $t0,$sp,0x44
|
|
/* f03c65c: 27aa0044 */ addiu $t2,$sp,0x44
|
|
/* f03c660: 24050008 */ addiu $a1,$zero,0x8
|
|
/* f03c664: 27a40074 */ addiu $a0,$sp,0x74
|
|
.L0f03c668:
|
|
/* f03c668: 24e90001 */ addiu $t1,$a3,0x1
|
|
/* f03c66c: 29210008 */ slti $at,$t1,0x8
|
|
/* f03c670: 00e03025 */ or $a2,$a3,$zero
|
|
/* f03c674: 10200015 */ beqz $at,.L0f03c6cc
|
|
/* f03c678: 01201825 */ or $v1,$t1,$zero
|
|
/* f03c67c: 00036880 */ sll $t5,$v1,0x2
|
|
/* f03c680: 014d1021 */ addu $v0,$t2,$t5
|
|
.L0f03c684:
|
|
/* f03c684: 0006c880 */ sll $t9,$a2,0x2
|
|
/* f03c688: 8c4e0000 */ lw $t6,0x0($v0)
|
|
/* f03c68c: 01595821 */ addu $t3,$t2,$t9
|
|
/* f03c690: 8d6c0000 */ lw $t4,0x0($t3)
|
|
/* f03c694: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f03c698: 008fc021 */ addu $t8,$a0,$t7
|
|
/* f03c69c: 000c6880 */ sll $t5,$t4,0x2
|
|
/* f03c6a0: 008d7021 */ addu $t6,$a0,$t5
|
|
/* f03c6a4: c5ca0000 */ lwc1 $f10,0x0($t6)
|
|
/* f03c6a8: c7080000 */ lwc1 $f8,0x0($t8)
|
|
/* f03c6ac: 460a403c */ c.lt.s $f8,$f10
|
|
/* f03c6b0: 00000000 */ nop
|
|
/* f03c6b4: 45020003 */ bc1fl .L0f03c6c4
|
|
/* f03c6b8: 24630001 */ addiu $v1,$v1,0x1
|
|
/* f03c6bc: 00603025 */ or $a2,$v1,$zero
|
|
/* f03c6c0: 24630001 */ addiu $v1,$v1,0x1
|
|
.L0f03c6c4:
|
|
/* f03c6c4: 1465ffef */ bne $v1,$a1,.L0f03c684
|
|
/* f03c6c8: 24420004 */ addiu $v0,$v0,0x4
|
|
.L0f03c6cc:
|
|
/* f03c6cc: 00067880 */ sll $t7,$a2,0x2
|
|
/* f03c6d0: 014f1021 */ addu $v0,$t2,$t7
|
|
/* f03c6d4: 8c580000 */ lw $t8,0x0($v0)
|
|
/* f03c6d8: 8d030000 */ lw $v1,0x0($t0)
|
|
/* f03c6dc: 29210007 */ slti $at,$t1,0x7
|
|
/* f03c6e0: ad180000 */ sw $t8,0x0($t0)
|
|
/* f03c6e4: 01203825 */ or $a3,$t1,$zero
|
|
/* f03c6e8: 25080004 */ addiu $t0,$t0,0x4
|
|
/* f03c6ec: 1420ffde */ bnez $at,.L0f03c668
|
|
/* f03c6f0: ac430000 */ sw $v1,0x0($v0)
|
|
/* f03c6f4: 3c0143f5 */ lui $at,0x43f5
|
|
/* f03c6f8: 44819000 */ mtc1 $at,$f18
|
|
/* f03c6fc: c7b00074 */ lwc1 $f16,0x74($sp)
|
|
/* f03c700: 8fa50054 */ lw $a1,0x54($sp)
|
|
/* f03c704: 2406ffff */ addiu $a2,$zero,-1
|
|
/* f03c708: 4612803c */ c.lt.s $f16,$f18
|
|
/* f03c70c: 0005c880 */ sll $t9,$a1,0x2
|
|
/* f03c710: 00995821 */ addu $t3,$a0,$t9
|
|
/* f03c714: 3c014348 */ lui $at,0x4348
|
|
/* f03c718: 45000045 */ bc1f .L0f03c830
|
|
/* f03c71c: 00000000 */ nop
|
|
/* f03c720: c5640000 */ lwc1 $f4,0x0($t3)
|
|
/* f03c724: 44813000 */ mtc1 $at,$f6
|
|
/* f03c728: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f03c72c: 4606203c */ c.lt.s $f4,$f6
|
|
/* f03c730: 00000000 */ nop
|
|
/* f03c734: 45000003 */ bc1f .L0f03c744
|
|
/* f03c738: 00000000 */ nop
|
|
/* f03c73c: 1000003c */ b .L0f03c830
|
|
/* f03c740: 24060007 */ addiu $a2,$zero,0x7
|
|
.L0f03c744:
|
|
/* f03c744: 10400005 */ beqz $v0,.L0f03c75c
|
|
/* f03c748: 8fac0048 */ lw $t4,0x48($sp)
|
|
/* f03c74c: 11800003 */ beqz $t4,.L0f03c75c
|
|
/* f03c750: 8fad004c */ lw $t5,0x4c($sp)
|
|
/* f03c754: 15a00022 */ bnez $t5,.L0f03c7e0
|
|
/* f03c758: 24010001 */ addiu $at,$zero,0x1
|
|
.L0f03c75c:
|
|
/* f03c75c: 8fae0050 */ lw $t6,0x50($sp)
|
|
/* f03c760: 24030004 */ addiu $v1,$zero,0x4
|
|
/* f03c764: 106e0003 */ beq $v1,$t6,.L0f03c774
|
|
/* f03c768: 00000000 */ nop
|
|
/* f03c76c: 14650012 */ bne $v1,$a1,.L0f03c7b8
|
|
/* f03c770: 00000000 */ nop
|
|
.L0f03c774:
|
|
/* f03c774: 0c004b70 */ jal random
|
|
/* f03c778: 00000000 */ nop
|
|
/* f03c77c: 3c017f1b */ lui $at,%hi(var7f1a8ef8)
|
|
/* f03c780: c42c8ef8 */ lwc1 $f12,%lo(var7f1a8ef8)($at)
|
|
/* f03c784: 24010003 */ addiu $at,$zero,0x3
|
|
/* f03c788: 0041001b */ divu $zero,$v0,$at
|
|
/* f03c78c: 00007810 */ mfhi $t7
|
|
/* f03c790: 24030004 */ addiu $v1,$zero,0x4
|
|
/* f03c794: 15e00008 */ bnez $t7,.L0f03c7b8
|
|
/* f03c798: 27aa0044 */ addiu $t2,$sp,0x44
|
|
/* f03c79c: 8fb80050 */ lw $t8,0x50($sp)
|
|
/* f03c7a0: 14780003 */ bne $v1,$t8,.L0f03c7b0
|
|
/* f03c7a4: 00000000 */ nop
|
|
/* f03c7a8: 10000021 */ b .L0f03c830
|
|
/* f03c7ac: 24060003 */ addiu $a2,$zero,0x3
|
|
.L0f03c7b0:
|
|
/* f03c7b0: 1000001f */ b .L0f03c830
|
|
/* f03c7b4: 24060004 */ addiu $a2,$zero,0x4
|
|
.L0f03c7b8:
|
|
/* f03c7b8: 0c004b70 */ jal random
|
|
/* f03c7bc: 00000000 */ nop
|
|
/* f03c7c0: 3c017f1b */ lui $at,%hi(var7f1a8efc)
|
|
/* f03c7c4: c42c8efc */ lwc1 $f12,%lo(var7f1a8efc)($at)
|
|
/* f03c7c8: 24010003 */ addiu $at,$zero,0x3
|
|
/* f03c7cc: 0041001b */ divu $zero,$v0,$at
|
|
/* f03c7d0: 00003010 */ mfhi $a2
|
|
/* f03c7d4: 24c60005 */ addiu $a2,$a2,0x5
|
|
/* f03c7d8: 10000015 */ b .L0f03c830
|
|
/* f03c7dc: 27aa0044 */ addiu $t2,$sp,0x44
|
|
.L0f03c7e0:
|
|
/* f03c7e0: 10410004 */ beq $v0,$at,.L0f03c7f4
|
|
/* f03c7e4: 8fb90058 */ lw $t9,0x58($sp)
|
|
/* f03c7e8: 24010007 */ addiu $at,$zero,0x7
|
|
/* f03c7ec: 14410010 */ bne $v0,$at,.L0f03c830
|
|
/* f03c7f0: 00000000 */ nop
|
|
.L0f03c7f4:
|
|
/* f03c7f4: 1320000e */ beqz $t9,.L0f03c830
|
|
/* f03c7f8: 8fab005c */ lw $t3,0x5c($sp)
|
|
/* f03c7fc: 1160000c */ beqz $t3,.L0f03c830
|
|
/* f03c800: 8fac0060 */ lw $t4,0x60($sp)
|
|
/* f03c804: 1180000a */ beqz $t4,.L0f03c830
|
|
/* f03c808: 00000000 */ nop
|
|
/* f03c80c: 0c004b70 */ jal random
|
|
/* f03c810: 00000000 */ nop
|
|
/* f03c814: 3c017f1b */ lui $at,%hi(var7f1a8f00)
|
|
/* f03c818: c42c8f00 */ lwc1 $f12,%lo(var7f1a8f00)($at)
|
|
/* f03c81c: 24010003 */ addiu $at,$zero,0x3
|
|
/* f03c820: 0041001b */ divu $zero,$v0,$at
|
|
/* f03c824: 00003010 */ mfhi $a2
|
|
/* f03c828: 24c60005 */ addiu $a2,$a2,0x5
|
|
/* f03c82c: 27aa0044 */ addiu $t2,$sp,0x44
|
|
.L0f03c830:
|
|
/* f03c830: 04c0001a */ bltz $a2,.L0f03c89c
|
|
/* f03c834: 00066880 */ sll $t5,$a2,0x2
|
|
/* f03c838: 014d7021 */ addu $t6,$t2,$t5
|
|
/* f03c83c: 8dc70000 */ lw $a3,0x0($t6)
|
|
/* f03c840: 3c017f1b */ lui $at,%hi(var7f1a8f04)
|
|
/* f03c844: c4308f04 */ lwc1 $f16,%lo(var7f1a8f04)($at)
|
|
/* f03c848: 44874000 */ mtc1 $a3,$f8
|
|
/* f03c84c: c7a40070 */ lwc1 $f4,0x70($sp)
|
|
/* f03c850: 3c017f1b */ lui $at,%hi(var7f1a8f08)
|
|
/* f03c854: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f03c858: 46105482 */ mul.s $f18,$f10,$f16
|
|
/* f03c85c: 46049000 */ add.s $f0,$f18,$f4
|
|
/* f03c860: 4600603e */ c.le.s $f12,$f0
|
|
/* f03c864: 46000086 */ mov.s $f2,$f0
|
|
/* f03c868: 45000002 */ bc1f .L0f03c874
|
|
/* f03c86c: 00000000 */ nop
|
|
/* f03c870: 460c0081 */ sub.s $f2,$f0,$f12
|
|
.L0f03c874:
|
|
/* f03c874: c4268f08 */ lwc1 $f6,%lo(var7f1a8f08)($at)
|
|
/* f03c878: 02002025 */ or $a0,$s0,$zero
|
|
/* f03c87c: 24050010 */ addiu $a1,$zero,0x10
|
|
/* f03c880: 46061202 */ mul.s $f8,$f2,$f6
|
|
/* f03c884: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f03c888: 44065000 */ mfc1 $a2,$f10
|
|
/* f03c88c: 0fc0e9fa */ jal chrFaceEntity
|
|
/* f03c890: 00000000 */ nop
|
|
/* f03c894: 10000003 */ b .L0f03c8a4
|
|
/* f03c898: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f03c89c:
|
|
/* f03c89c: ae000040 */ sw $zero,0x40($s0)
|
|
.L0f03c8a0:
|
|
/* f03c8a0: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f03c8a4:
|
|
/* f03c8a4: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f03c8a8: 27bd00b8 */ addiu $sp,$sp,0xb8
|
|
/* f03c8ac: 03e00008 */ jr $ra
|
|
/* f03c8b0: 00000000 */ nop
|
|
);
|
|
|
|
void chrTickKneel(struct chrdata *chr)
|
|
{
|
|
chr->sleep = 0;
|
|
|
|
if ((chr->hidden & CHRHFLAG_NEEDANIM) && modelIsAnimMerging(chr->model) == 0) {
|
|
chrKneelChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
}
|
|
|
|
void chrTickAnim(struct chrdata *chr)
|
|
{
|
|
if (chr->hidden & CHRHFLAG_NEEDANIM) {
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
return;
|
|
}
|
|
|
|
modelSetAnimation(chr->model, chr->act_anim.animnum, chr->act_anim.flip,
|
|
chr->act_anim.startframe, chr->act_anim.unk054, chr->act_anim.unk058);
|
|
|
|
if (chr->act_anim.endframe >= 0) {
|
|
modelSetAnimEndFrame(chr->model, chr->act_anim.endframe);
|
|
}
|
|
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
|
|
if (chr->act_anim.unk030 == 0 && modelGetCurAnimFrame(chr->model) >= modelGetAnimEndFrame(chr->model)) {
|
|
chrStand(chr);
|
|
}
|
|
|
|
if (chr->act_anim.unk040 != 0 && modelGetCurAnimFrame(chr->model) >= (s32)chr->act_anim.unk042) {
|
|
chr->act_anim.unk040 = 0;
|
|
func0f03ba44(chr, chr->act_anim.unk044, chr->act_anim.unk046, chr->act_anim.unk041);
|
|
}
|
|
|
|
// Play sneezing sound
|
|
if (CHRRACE(chr) == RACE_HUMAN
|
|
&& modelGetAnimNum(chr->model) == ANIM_SNEEZE
|
|
&& modelGetCurAnimFrame(chr->model) >= 42
|
|
&& (g_Vars.lvframenum & 1) == 0
|
|
&& chrGetDistanceToCurrentPlayer(chr) < 800) {
|
|
func0f0939f8(NULL, chr->prop, SFX_0037, -1,
|
|
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
|
}
|
|
|
|
if (chr->sleep <= 0 && chr->act_anim.unk038 != 0) {
|
|
chr->sleep = 14 + (random() % 5);
|
|
}
|
|
|
|
if (modelGetAnimNum(chr->model) == ANIM_RELOAD_0209) {
|
|
chrSetFiring(chr, 0, false);
|
|
chrSetFiring(chr, 1, false);
|
|
}
|
|
}
|
|
|
|
u32 var800683b0 = 0x0000000f;
|
|
u32 var800683b4 = 0x00190000;
|
|
u32 var800683b8 = 0xbf800000;
|
|
|
|
void chrTickSurrender(struct chrdata *chr)
|
|
{
|
|
if (chr->hidden & CHRHFLAG_NEEDANIM) {
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
return;
|
|
}
|
|
|
|
chrSurrenderChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
|
|
if (chr->sleep <= 0) {
|
|
if (CHRRACE(chr) == RACE_HUMAN) {
|
|
struct model *model = chr->model;
|
|
chr->sleep = 16;
|
|
|
|
if (modelGetAnimNum(model) == ANIM_SURRENDER_002F && modelGetCurAnimFrame(model) >= 80.0f) {
|
|
struct coord coord = {0, 0, 0};
|
|
f32 value = chrGetInverseTheta(chr);
|
|
coord.x = -sinf(value);
|
|
coord.z = -cosf(value);
|
|
|
|
if (!propchrHasClearLineInVector(chr->prop, &coord, 20)) {
|
|
modelSetAnimation(chr->model, ANIM_SURRENDER_002E, random() & 1, 30, 0.5, 16);
|
|
modelSetAnimLooping(chr->model, 30, 16);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void chrFadeCorpse(struct chrdata *chr)
|
|
{
|
|
if (chr->actiontype == ACT_DEAD || chr->actiontype == ACT_DRUGGEDKO) {
|
|
chr->act_dead.allowfade = true;
|
|
}
|
|
}
|
|
|
|
void chrEnableReap(struct chrdata *chr)
|
|
{
|
|
if (chr->actiontype == ACT_DEAD) {
|
|
chr->act_dead.allowreap = true;
|
|
}
|
|
}
|
|
|
|
void chrTickDead(struct chrdata *chr)
|
|
{
|
|
struct aibot *aibot = chr->aibot;
|
|
|
|
// If fade is active, handle it
|
|
if (chr->act_dead.fadetimer >= 0) {
|
|
chr->act_dead.fadetimer += g_Vars.lvupdate240_60;
|
|
|
|
if (chr->act_dead.fadetimer >= 90) {
|
|
// Fade finished
|
|
chr->fadealpha = 0;
|
|
|
|
if (aibot) {
|
|
mpInitSimulant(chr, true);
|
|
} else {
|
|
chr->hidden |= CHRHFLAG_REAPED;
|
|
}
|
|
} else {
|
|
// Still fading
|
|
chr->fadealpha = (90 - chr->act_dead.fadetimer) * 255 / 90;
|
|
}
|
|
} else {
|
|
// If fade has been triggered (this can happen when the corpse is on
|
|
// screen and there's lots of other chrs around)
|
|
if (chr->act_dead.allowfade) {
|
|
chr->act_dead.fadetimer = 0;
|
|
chrDropWeapons(chr);
|
|
}
|
|
|
|
if (chr->prop->flags & PROPFLAG_80) {
|
|
// Keep corpse for now
|
|
chr->act_dead.reaptimer = 0;
|
|
} else {
|
|
chr->act_dead.reaptimer += g_Vars.lvupdate240_60;
|
|
}
|
|
|
|
if (chr->act_dead.allowreap && chr->act_dead.reaptimer >= 120) {
|
|
// Remove corpse (off-screen)
|
|
if (aibot == NULL) {
|
|
chr->hidden |= CHRHFLAG_REAPED;
|
|
}
|
|
|
|
chr->fadealpha = 0;
|
|
|
|
chrDropWeapons(chr);
|
|
}
|
|
}
|
|
|
|
if (aibot == NULL) {
|
|
chr->ailist = NULL;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* This function is called when a chr is injured or killed. It iterates other
|
|
* chrs within 2000 units who can see the chr and updates their chrseeshot or
|
|
* chrseedie properties.
|
|
*
|
|
* The search stops once 7 chrs have been found in range, regardless of whether
|
|
* they can see the chr, presumably to avoid doing too many expensive line of
|
|
* sight checks in one tick. The last iterated chr index is stored and continued
|
|
* from there next time the function is called. The function is called on
|
|
* subsequent ticks while the chr is still in their injured or dying action.
|
|
*/
|
|
void chrAlertOthersOfInjury(struct chrdata *chr, bool dying)
|
|
{
|
|
s32 index = 0;
|
|
s32 numinrange = 0;
|
|
s32 numchrs = getNumChrSlots();
|
|
|
|
if (g_Vars.antiplayernum >= 0 && chr->prop == g_Vars.anti->prop) {
|
|
return;
|
|
}
|
|
|
|
if (chr->actiontype == ACT_ARGH) {
|
|
index = chr->act_argh.notifychrindex;
|
|
} else if (chr->actiontype == ACT_DIE || chr->actiontype == ACT_DRUGGEDDROP) {
|
|
index = chr->act_die.notifychrindex;
|
|
} else if (chr->actiontype == ACT_DEAD) {
|
|
index = chr->act_dead.notifychrindex;
|
|
}
|
|
|
|
for (; index < numchrs && numinrange < 7; index++) {
|
|
struct chrdata *loopchr = &g_ChrSlots[index];
|
|
|
|
if (loopchr->model && loopchr->prop && (loopchr->prop->flags & PROPFLAG_TANGIBLE)) {
|
|
f32 xdiff = loopchr->prop->pos.x - chr->prop->pos.x;
|
|
f32 ydiff = loopchr->prop->pos.y - chr->prop->pos.y;
|
|
f32 zdiff = loopchr->prop->pos.z - chr->prop->pos.z;
|
|
|
|
if (xdiff * xdiff + ydiff * ydiff + zdiff * zdiff < 4000000.0f) {
|
|
numinrange++;
|
|
|
|
if (chrCanSeePos(loopchr, &chr->prop->pos, chr->prop->rooms)) {
|
|
if (dying == false) {
|
|
loopchr->chrseeshot = chr->chrnum;
|
|
} else {
|
|
loopchr->chrseedie = chr->chrnum;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (chr->actiontype == ACT_ARGH) {
|
|
chr->act_argh.notifychrindex = index;
|
|
} else if (chr->actiontype == ACT_DIE || chr->actiontype == ACT_DRUGGEDDROP) {
|
|
chr->act_die.notifychrindex = index;
|
|
} else if (chr->actiontype == ACT_DEAD) {
|
|
chr->act_dead.notifychrindex = index;
|
|
}
|
|
}
|
|
|
|
void chrTickDie(struct chrdata *chr)
|
|
{
|
|
struct model *model = chr->model;
|
|
u32 race = CHRRACE(chr);
|
|
|
|
u16 thuds[] = {
|
|
SFX_THUD_808D,
|
|
SFX_THUD_808E,
|
|
SFX_THUD_808F,
|
|
SFX_THUD_8090,
|
|
SFX_THUD_8091,
|
|
SFX_THUD_8092,
|
|
SFX_THUD_8093,
|
|
SFX_THUD_8094,
|
|
SFX_THUD_8095,
|
|
SFX_THUD_8096,
|
|
SFX_THUD_8097,
|
|
};
|
|
|
|
u16 specialdiesounds[] = {
|
|
SFX_M1_NOOO, // "Noooo!"
|
|
SFX_M1_SCREAM, // Death scream
|
|
SFX_M2_NOOO, // "Noooo!"
|
|
SFX_M2_NOOO, // "Noooo!"
|
|
SFX_M1_SCREAM, // Death scream
|
|
SFX_THUD_8092,
|
|
SFX_THUD_8093,
|
|
SFX_THUD_8094,
|
|
SFX_THUD_8095,
|
|
SFX_THUD_8096,
|
|
SFX_THUD_8097,
|
|
};
|
|
|
|
static s32 thudindex = 0;
|
|
|
|
if (race == RACE_EYESPY) {
|
|
return;
|
|
}
|
|
|
|
if (race == RACE_ROBOT) {
|
|
struct prop *prop = chr->prop;
|
|
func0f0926bc(prop, 1, 0xffff);
|
|
explosionCreateSimple(prop, &prop->pos, prop->rooms, EXPLOSIONTYPE_8, g_Vars.currentplayernum);
|
|
chr->hidden |= CHRHFLAG_REAPED;
|
|
return;
|
|
}
|
|
|
|
if (race == RACE_DRCAROLL) {
|
|
struct prop *prop = chr->prop;
|
|
|
|
if (g_DrCarollDyingTimer > 120 && chr->voicebox) {
|
|
// Play speech
|
|
u16 phrases[] = {
|
|
SFX_DRCAROLL_SYSTEMS_FAILURE,
|
|
SFX_DRCAROLL_YOU_GO_ON,
|
|
SFX_DRCAROLL_I_CANT_MAKE_IT,
|
|
SFX_DRCAROLL_IM_DYING,
|
|
SFX_DRCAROLL_GOODBYE,
|
|
SFX_DRCAROLL_YOU_WERE_SUPPOSED,
|
|
};
|
|
|
|
func0f0939f8(NULL, chr->prop, phrases[random() % 5], -1,
|
|
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
|
chr->voicebox = 0;
|
|
}
|
|
|
|
// Change images randomly
|
|
if (chr->act_die.drcarollimagedelay > 0) {
|
|
chr->act_die.drcarollimagedelay -= g_Vars.lvupdate240_60;
|
|
} else {
|
|
chr->act_die.drcarollimagedelay = (random() % 1000) * 0.01f + 5.0f;
|
|
chr->drcarollimage_left = 1 + (s32)((random() % 400) * 0.01f);
|
|
chr->drcarollimage_right = 1 + (s32)((random() % 400) * 0.01f);
|
|
}
|
|
|
|
if (g_DrCarollDyingTimer > 310) {
|
|
// Explode
|
|
func0f0926bc(prop, 1, 0xffff);
|
|
explosionCreateSimple(prop, &prop->pos, prop->rooms, EXPLOSIONTYPE_8, g_Vars.currentplayernum);
|
|
chrBeginDead(chr);
|
|
} else if (chr->soundtimer > (s32)var80068080) {
|
|
// Play shield damage sound
|
|
chr->soundtimer = 0;
|
|
var80068080 -= 5;
|
|
func0f0939f8(NULL, prop, SFX_SHIELD_DAMAGE, -1,
|
|
-1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
|
sparksCreate(prop->rooms[0], prop, &prop->pos, NULL, 0, 1);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
// Human or Skedar
|
|
// If due, play thud 1 sound
|
|
if (chr->act_die.thudframe1 >= 0 && modelGetCurAnimFrame(model) >= chr->act_die.thudframe1) {
|
|
if (chr->specialdie == 0) {
|
|
func0f0939f8(NULL, chr->prop, thuds[thudindex], -1,
|
|
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
|
} else if (chr->specialdie != SPECIALDIE_OVERRAILING) {
|
|
func0f0939f8(NULL, chr->prop, specialdiesounds[chr->specialdie - 1], -1,
|
|
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
|
}
|
|
|
|
thudindex++;
|
|
|
|
if (thudindex > 10) {
|
|
thudindex = 0;
|
|
}
|
|
|
|
chr->act_die.thudframe1 = -1;
|
|
}
|
|
|
|
// If due, play thud 2 sound
|
|
if (chr->act_die.thudframe2 >= 0 && modelGetCurAnimFrame(model) >= chr->act_die.thudframe2) {
|
|
if (chr->specialdie < 5) {
|
|
func0f0939f8(NULL, chr->prop, SFX_THUD_808E, -1,
|
|
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
|
} else {
|
|
func0f0939f8(NULL, chr->prop, thuds[thudindex], -1,
|
|
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
|
}
|
|
|
|
thudindex++;
|
|
|
|
if (thudindex > 10) {
|
|
thudindex = 0;
|
|
}
|
|
|
|
chr->act_die.thudframe2 = -1;
|
|
}
|
|
|
|
// Check for end of death animation and switch to ACT_DEAD
|
|
if (modelGetCurAnimFrame(model) >= modelGetAnimEndFrame(model)) {
|
|
if (CHRRACE(chr) == RACE_HUMAN && modelGetAnimNum(model) == ANIM_DEATH_STOMACH_LONG) {
|
|
modelSetAnimation(model, ANIM_003C, !modelIsFlipped(model), 50, 0.3, animGetNumFrames(ANIM_003C) - 51.0f);
|
|
modelSetAnimSpeed(model, 0.5, animGetNumFrames(ANIM_003C) - 51.0f);
|
|
return;
|
|
}
|
|
|
|
chrBeginDead(chr);
|
|
}
|
|
|
|
chrAlertOthersOfInjury(chr, true);
|
|
}
|
|
|
|
u32 var80068408 = 0x808d808e;
|
|
u32 var8006840c = 0x808f8090;
|
|
u32 var80068410 = 0x80918092;
|
|
u32 var80068414 = 0x80938094;
|
|
u32 var80068418 = 0x80958096;
|
|
u32 var8006841c = 0x80970000;
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrTickDruggedComingUp
|
|
/* f03d7ec: 27bdff58 */ addiu $sp,$sp,-168
|
|
/* f03d7f0: 3c0f8007 */ lui $t7,%hi(var80068408)
|
|
/* f03d7f4: afbf005c */ sw $ra,0x5c($sp)
|
|
/* f03d7f8: afbe0058 */ sw $s8,0x58($sp)
|
|
/* f03d7fc: afb70054 */ sw $s7,0x54($sp)
|
|
/* f03d800: afb60050 */ sw $s6,0x50($sp)
|
|
/* f03d804: afb5004c */ sw $s5,0x4c($sp)
|
|
/* f03d808: afb40048 */ sw $s4,0x48($sp)
|
|
/* f03d80c: afb30044 */ sw $s3,0x44($sp)
|
|
/* f03d810: afb20040 */ sw $s2,0x40($sp)
|
|
/* f03d814: afb1003c */ sw $s1,0x3c($sp)
|
|
/* f03d818: afb00038 */ sw $s0,0x38($sp)
|
|
/* f03d81c: f7b60030 */ sdc1 $f22,0x30($sp)
|
|
/* f03d820: f7b40028 */ sdc1 $f20,0x28($sp)
|
|
/* f03d824: 25ef8408 */ addiu $t7,$t7,%lo(var80068408)
|
|
/* f03d828: 8de10000 */ lw $at,0x0($t7)
|
|
/* f03d82c: 27ae0090 */ addiu $t6,$sp,0x90
|
|
/* f03d830: 8de90004 */ lw $t1,0x4($t7)
|
|
/* f03d834: adc10000 */ sw $at,0x0($t6)
|
|
/* f03d838: 8de10008 */ lw $at,0x8($t7)
|
|
/* f03d83c: adc90004 */ sw $t1,0x4($t6)
|
|
/* f03d840: 8de9000c */ lw $t1,0xc($t7)
|
|
/* f03d844: adc10008 */ sw $at,0x8($t6)
|
|
/* f03d848: 8de10010 */ lw $at,0x10($t7)
|
|
/* f03d84c: adc9000c */ sw $t1,0xc($t6)
|
|
/* f03d850: 3c0b800a */ lui $t3,%hi(g_Vars+0x38)
|
|
/* f03d854: adc10010 */ sw $at,0x10($t6)
|
|
/* f03d858: 95e10014 */ lhu $at,0x14($t7)
|
|
/* f03d85c: 0080f025 */ or $s8,$a0,$zero
|
|
/* f03d860: 00009825 */ or $s3,$zero,$zero
|
|
/* f03d864: a5c10014 */ sh $at,0x14($t6)
|
|
/* f03d868: 848a002c */ lh $t2,0x2c($a0)
|
|
/* f03d86c: 8d6b9ff8 */ lw $t3,%lo(g_Vars+0x38)($t3)
|
|
/* f03d870: 0000a025 */ or $s4,$zero,$zero
|
|
/* f03d874: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03d878: 014b6021 */ addu $t4,$t2,$t3
|
|
/* f03d87c: a48c002c */ sh $t4,0x2c($a0)
|
|
/* f03d880: 848d002c */ lh $t5,0x2c($a0)
|
|
/* f03d884: 59a00074 */ blezl $t5,.L0f03da58
|
|
/* f03d888: 8fbf005c */ lw $ra,0x5c($sp)
|
|
/* f03d88c: 50800005 */ beqzl $a0,.L0f03d8a4
|
|
/* f03d890: afa00088 */ sw $zero,0x88($sp)
|
|
/* f03d894: 909902fe */ lbu $t9,0x2fe($a0)
|
|
/* f03d898: 10000002 */ b .L0f03d8a4
|
|
/* f03d89c: afb90088 */ sw $t9,0x88($sp)
|
|
/* f03d8a0: afa00088 */ sw $zero,0x88($sp)
|
|
.L0f03d8a4:
|
|
/* f03d8a4: 8fd70020 */ lw $s7,0x20($s8)
|
|
/* f03d8a8: 0fc08946 */ jal chrUncloak
|
|
/* f03d8ac: 03c02025 */ or $a0,$s8,$zero
|
|
/* f03d8b0: 2418001e */ addiu $t8,$zero,0x1e
|
|
/* f03d8b4: 3c014180 */ lui $at,0x4180
|
|
/* f03d8b8: a3d80007 */ sb $t8,0x7($s8)
|
|
/* f03d8bc: 3c158006 */ lui $s5,%hi(var800652b8)
|
|
/* f03d8c0: 4481b000 */ mtc1 $at,$f22
|
|
/* f03d8c4: 4480a000 */ mtc1 $zero,$f20
|
|
/* f03d8c8: 26b552b8 */ addiu $s5,$s5,%lo(var800652b8)
|
|
/* f03d8cc: 8fa20088 */ lw $v0,0x88($sp)
|
|
/* f03d8d0: 24160014 */ addiu $s6,$zero,0x14
|
|
.L0f03d8d4:
|
|
/* f03d8d4: 06600033 */ bltz $s3,.L0f03d9a4
|
|
/* f03d8d8: 00000000 */ nop
|
|
/* f03d8dc: 02760019 */ multu $s3,$s6
|
|
/* f03d8e0: 00027080 */ sll $t6,$v0,0x2
|
|
/* f03d8e4: 02ae8821 */ addu $s1,$s5,$t6
|
|
/* f03d8e8: 8e2f0000 */ lw $t7,0x0($s1)
|
|
/* f03d8ec: 00009012 */ mflo $s2
|
|
/* f03d8f0: 01f21821 */ addu $v1,$t7,$s2
|
|
/* f03d8f4: 8c690004 */ lw $t1,0x4($v1)
|
|
/* f03d8f8: 1120002a */ beqz $t1,.L0f03d9a4
|
|
/* f03d8fc: 00000000 */ nop
|
|
/* f03d900: 8c6a000c */ lw $t2,0xc($v1)
|
|
/* f03d904: 19400027 */ blez $t2,.L0f03d9a4
|
|
/* f03d908: 00000000 */ nop
|
|
/* f03d90c: 0c004b70 */ jal random
|
|
/* f03d910: 24140001 */ addiu $s4,$zero,0x1
|
|
/* f03d914: 8e2b0000 */ lw $t3,0x0($s1)
|
|
/* f03d918: 4407a000 */ mfc1 $a3,$f20
|
|
/* f03d91c: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f03d920: 01721821 */ addu $v1,$t3,$s2
|
|
/* f03d924: 8c6c000c */ lw $t4,0xc($v1)
|
|
/* f03d928: 8c6d0004 */ lw $t5,0x4($v1)
|
|
/* f03d92c: 02e02025 */ or $a0,$s7,$zero
|
|
/* f03d930: 004c001b */ divu $zero,$v0,$t4
|
|
/* f03d934: 00004010 */ mfhi $t0
|
|
/* f03d938: 0008c8c0 */ sll $t9,$t0,0x3
|
|
/* f03d93c: 0328c823 */ subu $t9,$t9,$t0
|
|
/* f03d940: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f03d944: 01b98021 */ addu $s0,$t5,$t9
|
|
/* f03d948: c6040014 */ lwc1 $f4,0x14($s0)
|
|
/* f03d94c: 15800002 */ bnez $t4,.L0f03d958
|
|
/* f03d950: 00000000 */ nop
|
|
/* f03d954: 0007000d */ break 0x7
|
|
.L0f03d958:
|
|
/* f03d958: e7c40030 */ swc1 $f4,0x30($s8)
|
|
/* f03d95c: c6060018 */ lwc1 $f6,0x18($s0)
|
|
/* f03d960: e7c60034 */ swc1 $f6,0x34($s8)
|
|
/* f03d964: c608000c */ lwc1 $f8,0xc($s0)
|
|
/* f03d968: 8e060004 */ lw $a2,0x4($s0)
|
|
/* f03d96c: 86050000 */ lh $a1,0x0($s0)
|
|
/* f03d970: afb80018 */ sw $t8,0x18($sp)
|
|
/* f03d974: e7b60014 */ swc1 $f22,0x14($sp)
|
|
/* f03d978: 0c0076ff */ jal func0001dbfc
|
|
/* f03d97c: e7a80010 */ swc1 $f8,0x10($sp)
|
|
/* f03d980: c6000008 */ lwc1 $f0,0x8($s0)
|
|
/* f03d984: 4600a03e */ c.le.s $f20,$f0
|
|
/* f03d988: 00000000 */ nop
|
|
/* f03d98c: 45020005 */ bc1fl .L0f03d9a4
|
|
/* f03d990: 8fa20088 */ lw $v0,0x88($sp)
|
|
/* f03d994: 44050000 */ mfc1 $a1,$f0
|
|
/* f03d998: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f03d99c: 02e02025 */ or $a0,$s7,$zero
|
|
/* f03d9a0: 8fa20088 */ lw $v0,0x88($sp)
|
|
.L0f03d9a4:
|
|
/* f03d9a4: 1680000d */ bnez $s4,.L0f03d9dc
|
|
/* f03d9a8: 00000000 */ nop
|
|
/* f03d9ac: 26730001 */ addiu $s3,$s3,0x1
|
|
/* f03d9b0: 02760019 */ multu $s3,$s6
|
|
/* f03d9b4: 00027080 */ sll $t6,$v0,0x2
|
|
/* f03d9b8: 02ae7821 */ addu $t7,$s5,$t6
|
|
/* f03d9bc: 8de90000 */ lw $t1,0x0($t7)
|
|
/* f03d9c0: 2401ffff */ addiu $at,$zero,-1
|
|
/* f03d9c4: 00005012 */ mflo $t2
|
|
/* f03d9c8: 012a5821 */ addu $t3,$t1,$t2
|
|
/* f03d9cc: 8d6c0000 */ lw $t4,0x0($t3)
|
|
/* f03d9d0: 15810002 */ bne $t4,$at,.L0f03d9dc
|
|
/* f03d9d4: 00000000 */ nop
|
|
/* f03d9d8: 24140001 */ addiu $s4,$zero,0x1
|
|
.L0f03d9dc:
|
|
/* f03d9dc: 1280ffbd */ beqz $s4,.L0f03d8d4
|
|
/* f03d9e0: 00000000 */ nop
|
|
/* f03d9e4: 8fc40170 */ lw $a0,0x170($s8)
|
|
/* f03d9e8: 5080000c */ beqzl $a0,.L0f03da1c
|
|
/* f03d9ec: 8fc40174 */ lw $a0,0x174($s8)
|
|
/* f03d9f0: 8c8d0004 */ lw $t5,0x4($a0)
|
|
/* f03d9f4: 8db90008 */ lw $t9,0x8($t5)
|
|
/* f03d9f8: 33382000 */ andi $t8,$t9,0x2000
|
|
/* f03d9fc: 57000007 */ bnezl $t8,.L0f03da1c
|
|
/* f03da00: 8fc40174 */ lw $a0,0x174($s8)
|
|
/* f03da04: 0fc20a59 */ jal propobjSetDropped
|
|
/* f03da08: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03da0c: 8fce0014 */ lw $t6,0x14($s8)
|
|
/* f03da10: 35cf0001 */ ori $t7,$t6,0x1
|
|
/* f03da14: afcf0014 */ sw $t7,0x14($s8)
|
|
/* f03da18: 8fc40174 */ lw $a0,0x174($s8)
|
|
.L0f03da1c:
|
|
/* f03da1c: 1080000b */ beqz $a0,.L0f03da4c
|
|
/* f03da20: 00000000 */ nop
|
|
/* f03da24: 8c890004 */ lw $t1,0x4($a0)
|
|
/* f03da28: 8d2a0008 */ lw $t2,0x8($t1)
|
|
/* f03da2c: 314b2000 */ andi $t3,$t2,0x2000
|
|
/* f03da30: 15600006 */ bnez $t3,.L0f03da4c
|
|
/* f03da34: 00000000 */ nop
|
|
/* f03da38: 0fc20a59 */ jal propobjSetDropped
|
|
/* f03da3c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03da40: 8fcc0014 */ lw $t4,0x14($s8)
|
|
/* f03da44: 358d0001 */ ori $t5,$t4,0x1
|
|
/* f03da48: afcd0014 */ sw $t5,0x14($s8)
|
|
.L0f03da4c:
|
|
/* f03da4c: 0fc09149 */ jal chrDropItems
|
|
/* f03da50: 03c02025 */ or $a0,$s8,$zero
|
|
/* f03da54: 8fbf005c */ lw $ra,0x5c($sp)
|
|
.L0f03da58:
|
|
/* f03da58: d7b40028 */ ldc1 $f20,0x28($sp)
|
|
/* f03da5c: d7b60030 */ ldc1 $f22,0x30($sp)
|
|
/* f03da60: 8fb00038 */ lw $s0,0x38($sp)
|
|
/* f03da64: 8fb1003c */ lw $s1,0x3c($sp)
|
|
/* f03da68: 8fb20040 */ lw $s2,0x40($sp)
|
|
/* f03da6c: 8fb30044 */ lw $s3,0x44($sp)
|
|
/* f03da70: 8fb40048 */ lw $s4,0x48($sp)
|
|
/* f03da74: 8fb5004c */ lw $s5,0x4c($sp)
|
|
/* f03da78: 8fb60050 */ lw $s6,0x50($sp)
|
|
/* f03da7c: 8fb70054 */ lw $s7,0x54($sp)
|
|
/* f03da80: 8fbe0058 */ lw $s8,0x58($sp)
|
|
/* f03da84: 03e00008 */ jr $ra
|
|
/* f03da88: 27bd00a8 */ addiu $sp,$sp,0xa8
|
|
);
|
|
|
|
void chrTickDruggedDrop(struct chrdata *chr)
|
|
{
|
|
struct model *model = chr->model;
|
|
|
|
u16 thuds[11] = {
|
|
SFX_THUD_808D,
|
|
SFX_THUD_808E,
|
|
SFX_THUD_808F,
|
|
SFX_THUD_8090,
|
|
SFX_THUD_8091,
|
|
SFX_THUD_8092,
|
|
SFX_THUD_8093,
|
|
SFX_THUD_8094,
|
|
SFX_THUD_8095,
|
|
SFX_THUD_8096,
|
|
SFX_THUD_8097,
|
|
};
|
|
|
|
static s32 thudindex = 0;
|
|
|
|
// If due, play thud 1 sound
|
|
if (chr->act_druggeddrop.thudframe1 >= 0 && modelGetCurAnimFrame(model) >= chr->act_druggeddrop.thudframe1) {
|
|
func0f0939f8(NULL, chr->prop, thuds[thudindex], -1,
|
|
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
|
|
|
thudindex++;
|
|
|
|
if (thudindex > 10) {
|
|
thudindex = 0;
|
|
}
|
|
|
|
chr->act_druggeddrop.thudframe1 = -1;
|
|
}
|
|
|
|
// If due, play thud 2 sound
|
|
if (chr->act_druggeddrop.thudframe2 >= 0 && modelGetCurAnimFrame(model) >= chr->act_druggeddrop.thudframe2) {
|
|
func0f0939f8(NULL, chr->prop, thuds[thudindex], -1,
|
|
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
|
|
|
thudindex++;
|
|
|
|
if (thudindex > 10) {
|
|
thudindex = 0;
|
|
}
|
|
|
|
chr->act_druggeddrop.thudframe2 = -1;
|
|
}
|
|
|
|
// If falling animation finished, assign ACT_DRUGGEDKO
|
|
if (modelGetCurAnimFrame(model) >= modelGetAnimEndFrame(model)) {
|
|
chr->actiontype = ACT_DRUGGEDKO;
|
|
chr->act_druggedko.fadetimer = chr->aibot ? 0 : -1;
|
|
chr->act_druggedko.allowfade = false;
|
|
chr->act_druggedko.allowreap = false;
|
|
chr->act_druggedko.reaptimer = 0;
|
|
chr->act_druggedko.unk03c = 0;
|
|
chr->sleep = 0;
|
|
}
|
|
|
|
chrAlertOthersOfInjury(chr, true);
|
|
}
|
|
|
|
u32 var8006843c = 0x0000ffff;
|
|
|
|
void chrTickDruggedKo(struct chrdata *chr)
|
|
{
|
|
bool reap = false;
|
|
|
|
// If fade is active, handle it
|
|
if (chr->act_druggedko.fadetimer >= 0) {
|
|
chr->act_druggedko.fadetimer += g_Vars.lvupdate240_60;
|
|
|
|
if (chr->act_druggedko.fadetimer >= 90) {
|
|
reap = true;
|
|
} else {
|
|
chr->fadealpha = (90 - chr->act_druggedko.fadetimer) * 255 / 90;
|
|
}
|
|
} else if ((chr->chrflags & CHRCFLAG_KEEPCORPSEKO) == 0) {
|
|
if (chr->act_druggedko.allowfade) {
|
|
chr->act_druggedko.fadetimer = 0;
|
|
}
|
|
|
|
if (chr->prop->flags & PROPFLAG_80) {
|
|
chr->act_druggedko.reaptimer = 0;
|
|
} else {
|
|
chr->act_druggedko.reaptimer += g_Vars.lvupdate240_60;
|
|
}
|
|
|
|
if (chr->act_druggedko.allowreap && chr->act_druggedko.reaptimer >= 120) {
|
|
reap = true;
|
|
}
|
|
}
|
|
|
|
if (reap) {
|
|
chr->fadealpha = 0;
|
|
chr->hidden |= CHRHFLAG_REAPED;
|
|
chrDropWeapons(chr);
|
|
}
|
|
}
|
|
|
|
void chrTickArgh(struct chrdata *chr)
|
|
{
|
|
struct model *model = chr->model;
|
|
|
|
if (modelGetCurAnimFrame(model) >= modelGetAnimEndFrame(model)) {
|
|
chrRecordLastSeeTargetTime(chr);
|
|
|
|
if (CHRRACE(chr) == RACE_HUMAN && modelGetAnimNum(model) == ANIM_DEATH_STOMACH_LONG) {
|
|
func0f02ed28(chr, 26);
|
|
} else {
|
|
if (chr->race == RACE_DRCAROLL) {
|
|
chr->drcarollimage_left = DRCAROLLIMAGE_EYESDEFAULT;
|
|
chr->drcarollimage_right = DRCAROLLIMAGE_EYESDEFAULT;
|
|
}
|
|
|
|
chrStop(chr);
|
|
}
|
|
}
|
|
|
|
chrAlertOthersOfInjury(chr, false);
|
|
}
|
|
|
|
void chrTickPreArgh(struct chrdata *chr)
|
|
{
|
|
struct model *model = chr->model;
|
|
|
|
if (modelGetCurAnimFrame(model) >= modelGetAnimEndFrame(model)) {
|
|
struct coord pos;
|
|
pos.x = chr->act_preargh.pos.x;
|
|
pos.y = chr->act_preargh.pos.y;
|
|
pos.z = chr->act_preargh.pos.z;
|
|
|
|
func0f032fe4(chr, &pos,
|
|
chr->act_preargh.unk038,
|
|
chr->act_preargh.unk03c,
|
|
&chr->act_preargh.unk040,
|
|
chr->act_preargh.unk044);
|
|
}
|
|
}
|
|
|
|
void chrTickSidestep(struct chrdata *chr)
|
|
{
|
|
struct model *model = chr->model;
|
|
|
|
if (chr->hidden & CHRHFLAG_NEEDANIM) {
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
return;
|
|
}
|
|
|
|
chrSidestepChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
|
|
if (modelGetCurAnimFrame(model) >= modelGetAnimEndFrame(model)) {
|
|
chrRecordLastSeeTargetTime(chr);
|
|
func0f02ed28(chr, 10);
|
|
}
|
|
}
|
|
|
|
void chrTickJumpOut(struct chrdata *chr)
|
|
{
|
|
struct model *model = chr->model;
|
|
|
|
if (chr->hidden & CHRHFLAG_NEEDANIM) {
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
return;
|
|
}
|
|
|
|
chrJumpOutChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
|
|
if (modelGetCurAnimFrame(model) >= modelGetAnimEndFrame(model)) {
|
|
chrRecordLastSeeTargetTime(chr);
|
|
chrStop(chr);
|
|
}
|
|
}
|
|
|
|
void chrTickTest(struct chrdata *chr)
|
|
{
|
|
struct model *model = chr->model;
|
|
|
|
if (modelGetCurAnimFrame(model) >= modelGetAnimEndFrame(model)) {
|
|
chrStand(chr);
|
|
}
|
|
}
|
|
|
|
void chrTickStartAlarm(struct chrdata *chr)
|
|
{
|
|
struct model *model = chr->model;
|
|
|
|
if (chr->hidden & CHRHFLAG_NEEDANIM) {
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
return;
|
|
}
|
|
|
|
chrStartAlarmChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
|
|
if (modelGetCurAnimFrame(model) >= 60) {
|
|
alarmActivate();
|
|
}
|
|
|
|
if (modelGetCurAnimFrame(model) >= modelGetAnimEndFrame(model)) {
|
|
chrStop(chr);
|
|
}
|
|
}
|
|
|
|
void chrTickSurprised(struct chrdata *chr)
|
|
{
|
|
if (chr->hidden & CHRHFLAG_NEEDANIM) {
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
return;
|
|
}
|
|
|
|
chrSurprisedChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
|
|
if (CHRRACE(chr) == RACE_HUMAN) {
|
|
struct model *model = chr->model;
|
|
|
|
if (modelGetCurAnimFrame(model) >= modelGetAnimEndFrame(model)) {
|
|
if (modelGetAnimNum(model) == 0x2e) {
|
|
func0f02ed28(chr, 26);
|
|
} else if (modelGetAnimNum(model) == 0x3f) {
|
|
func0f02ed28(chr, 26);
|
|
} else {
|
|
chrStop(chr);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03e29c
|
|
/* f03e29c: 27bdff98 */ addiu $sp,$sp,-104
|
|
/* f03e2a0: afbf0044 */ sw $ra,0x44($sp)
|
|
/* f03e2a4: afa40068 */ sw $a0,0x68($sp)
|
|
/* f03e2a8: afa5006c */ sw $a1,0x6c($sp)
|
|
/* f03e2ac: afa60070 */ sw $a2,0x70($sp)
|
|
/* f03e2b0: afa70074 */ sw $a3,0x74($sp)
|
|
/* f03e2b4: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f03e2b8: afa00058 */ sw $zero,0x58($sp)
|
|
/* f03e2bc: 50400064 */ beqzl $v0,.L0f03e450
|
|
/* f03e2c0: 8fbf0044 */ lw $ra,0x44($sp)
|
|
/* f03e2c4: 8c420004 */ lw $v0,0x4($v0)
|
|
/* f03e2c8: 904e005c */ lbu $t6,0x5c($v0)
|
|
/* f03e2cc: 2444005c */ addiu $a0,$v0,0x5c
|
|
/* f03e2d0: afa4004c */ sw $a0,0x4c($sp)
|
|
/* f03e2d4: 0fc2c78a */ jal handGetSingleUnk38
|
|
/* f03e2d8: afae005c */ sw $t6,0x5c($sp)
|
|
/* f03e2dc: 8fa4004c */ lw $a0,0x4c($sp)
|
|
/* f03e2e0: 0fc2c79a */ jal handGetSingleShootSound
|
|
/* f03e2e4: a3a20057 */ sb $v0,0x57($sp)
|
|
/* f03e2e8: 8faa0068 */ lw $t2,0x68($sp)
|
|
/* f03e2ec: 8faf006c */ lw $t7,0x6c($sp)
|
|
/* f03e2f0: 3049ffff */ andi $t1,$v0,0xffff
|
|
/* f03e2f4: 014f2021 */ addu $a0,$t2,$t7
|
|
/* f03e2f8: 8083017c */ lb $v1,0x17c($a0)
|
|
/* f03e2fc: 04610009 */ bgez $v1,.L0f03e324
|
|
/* f03e300: 00000000 */ nop
|
|
/* f03e304: afa4004c */ sw $a0,0x4c($sp)
|
|
/* f03e308: 0fc29c3e */ jal func0f0a70f8
|
|
/* f03e30c: a7a90054 */ sh $t1,0x54($sp)
|
|
/* f03e310: 8fa4004c */ lw $a0,0x4c($sp)
|
|
/* f03e314: 97a90054 */ lhu $t1,0x54($sp)
|
|
/* f03e318: a082017c */ sb $v0,0x17c($a0)
|
|
/* f03e31c: 8faa0068 */ lw $t2,0x68($sp)
|
|
/* f03e320: 8083017c */ lb $v1,0x17c($a0)
|
|
.L0f03e324:
|
|
/* f03e324: 04600049 */ bltz $v1,.L0f03e44c
|
|
/* f03e328: 0003c080 */ sll $t8,$v1,0x2
|
|
/* f03e32c: 8fab0070 */ lw $t3,0x70($sp)
|
|
/* f03e330: 0303c023 */ subu $t8,$t8,$v1
|
|
/* f03e334: 3c19800a */ lui $t9,%hi(g_Fireslots)
|
|
/* f03e338: 2739d150 */ addiu $t9,$t9,%lo(g_Fireslots)
|
|
/* f03e33c: 0018c100 */ sll $t8,$t8,0x4
|
|
/* f03e340: 11600013 */ beqz $t3,.L0f03e390
|
|
/* f03e344: 03194021 */ addu $t0,$t8,$t9
|
|
/* f03e348: 93ac0057 */ lbu $t4,0x57($sp)
|
|
/* f03e34c: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f03e350: 5980000f */ blezl $t4,.L0f03e390
|
|
/* f03e354: afab0058 */ sw $t3,0x58($sp)
|
|
/* f03e358: 954d0192 */ lhu $t5,0x192($t2)
|
|
/* f03e35c: 3c18800a */ lui $t8,%hi(g_Vars+0x8)
|
|
/* f03e360: 31ae0020 */ andi $t6,$t5,0x20
|
|
/* f03e364: 55c0000b */ bnezl $t6,.L0f03e394
|
|
/* f03e368: 8fac0058 */ lw $t4,0x58($sp)
|
|
/* f03e36c: 8d0f0000 */ lw $t7,0x0($t0)
|
|
/* f03e370: 8f189fc8 */ lw $t8,%lo(g_Vars+0x8)($t8)
|
|
/* f03e374: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f03e378: 01f8082a */ slt $at,$t7,$t8
|
|
/* f03e37c: 50200005 */ beqzl $at,.L0f03e394
|
|
/* f03e380: 8fac0058 */ lw $t4,0x58($sp)
|
|
/* f03e384: 10000002 */ b .L0f03e390
|
|
/* f03e388: afb90058 */ sw $t9,0x58($sp)
|
|
/* f03e38c: afab0058 */ sw $t3,0x58($sp)
|
|
.L0f03e390:
|
|
/* f03e390: 8fac0058 */ lw $t4,0x58($sp)
|
|
.L0f03e394:
|
|
/* f03e394: 3c01bf80 */ lui $at,0xbf80
|
|
/* f03e398: 00002025 */ or $a0,$zero,$zero
|
|
/* f03e39c: 11800024 */ beqz $t4,.L0f03e430
|
|
/* f03e3a0: 00093400 */ sll $a2,$t1,0x10
|
|
/* f03e3a4: 8d45001c */ lw $a1,0x1c($t2)
|
|
/* f03e3a8: 44810000 */ mtc1 $at,$f0
|
|
/* f03e3ac: 93ac0057 */ lbu $t4,0x57($sp)
|
|
/* f03e3b0: 00066c03 */ sra $t5,$a2,0x10
|
|
/* f03e3b4: 240effff */ addiu $t6,$zero,-1
|
|
/* f03e3b8: 240f0400 */ addiu $t7,$zero,0x400
|
|
/* f03e3bc: 24180004 */ addiu $t8,$zero,0x4
|
|
/* f03e3c0: 24190011 */ addiu $t9,$zero,0x11
|
|
/* f03e3c4: 240bffff */ addiu $t3,$zero,-1
|
|
/* f03e3c8: afab002c */ sw $t3,0x2c($sp)
|
|
/* f03e3cc: afb9001c */ sw $t9,0x1c($sp)
|
|
/* f03e3d0: afb80018 */ sw $t8,0x18($sp)
|
|
/* f03e3d4: afaf0014 */ sw $t7,0x14($sp)
|
|
/* f03e3d8: afae0010 */ sw $t6,0x10($sp)
|
|
/* f03e3dc: 01a03025 */ or $a2,$t5,$zero
|
|
/* f03e3e0: afa80050 */ sw $t0,0x50($sp)
|
|
/* f03e3e4: afa00028 */ sw $zero,0x28($sp)
|
|
/* f03e3e8: afa00020 */ sw $zero,0x20($sp)
|
|
/* f03e3ec: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f03e3f0: afac004c */ sw $t4,0x4c($sp)
|
|
/* f03e3f4: e7a00024 */ swc1 $f0,0x24($sp)
|
|
/* f03e3f8: e7a00030 */ swc1 $f0,0x30($sp)
|
|
/* f03e3fc: e7a00034 */ swc1 $f0,0x34($sp)
|
|
/* f03e400: 0fc24e7e */ jal func0f0939f8
|
|
/* f03e404: e7a00038 */ swc1 $f0,0x38($sp)
|
|
/* f03e408: 3c0d800a */ lui $t5,%hi(g_Vars+0x8)
|
|
/* f03e40c: 8dad9fc8 */ lw $t5,%lo(g_Vars+0x8)($t5)
|
|
/* f03e410: 8fae004c */ lw $t6,0x4c($sp)
|
|
/* f03e414: 8fa80050 */ lw $t0,0x50($sp)
|
|
/* f03e418: 01ae7821 */ addu $t7,$t5,$t6
|
|
/* f03e41c: ad0f0000 */ sw $t7,0x0($t0)
|
|
/* f03e420: 8fb80068 */ lw $t8,0x68($sp)
|
|
/* f03e424: 97190192 */ lhu $t9,0x192($t8)
|
|
/* f03e428: 372b0020 */ ori $t3,$t9,0x20
|
|
/* f03e42c: a70b0192 */ sh $t3,0x192($t8)
|
|
.L0f03e430:
|
|
/* f03e430: 8fac0074 */ lw $t4,0x74($sp)
|
|
/* f03e434: 25040004 */ addiu $a0,$t0,0x4
|
|
/* f03e438: 8fa5005c */ lw $a1,0x5c($sp)
|
|
/* f03e43c: 11800003 */ beqz $t4,.L0f03e44c
|
|
/* f03e440: 8fa60078 */ lw $a2,0x78($sp)
|
|
/* f03e444: 0fc2af9c */ jal func0f0abe70
|
|
/* f03e448: 8fa7007c */ lw $a3,0x7c($sp)
|
|
.L0f03e44c:
|
|
/* f03e44c: 8fbf0044 */ lw $ra,0x44($sp)
|
|
.L0f03e450:
|
|
/* f03e450: 27bd0068 */ addiu $sp,$sp,0x68
|
|
/* f03e454: 03e00008 */ jr $ra
|
|
/* f03e458: 00000000 */ nop
|
|
);
|
|
|
|
/**
|
|
* Returns the chr's turn angle difference to 360 degrees, in radians.
|
|
*/
|
|
f32 chrGetInverseTheta(struct chrdata *chr)
|
|
{
|
|
if (chr->aibot) {
|
|
return chr->aibot->unk0b0;
|
|
}
|
|
|
|
if (chr->model == NULL && chr->prop && chr->prop->type == PROPTYPE_PLAYER) {
|
|
struct player *player = g_Vars.players[propGetPlayerNum(chr->prop)];
|
|
f32 angle = (360.0f - player->vv_theta) * 0.017450513318181f;
|
|
|
|
if (angle >= M_BADTAU) {
|
|
angle -= M_BADTAU;
|
|
} else if (angle < 0) {
|
|
angle += M_BADTAU;
|
|
}
|
|
|
|
return angle;
|
|
}
|
|
|
|
return func0001ae44(chr->model);
|
|
}
|
|
|
|
void chrSetLookAngle(struct chrdata *chr, f32 angle)
|
|
{
|
|
if (chr->aibot) {
|
|
chr->aibot->unk0b0 = angle;
|
|
} else {
|
|
func0001ae90(chr->model, angle);
|
|
}
|
|
}
|
|
|
|
f32 func0f03e578(struct chrdata *chr)
|
|
{
|
|
if (chr->aibot) {
|
|
return chr->aibot->unk0a4;
|
|
}
|
|
|
|
return func0001ae44(chr->model);
|
|
}
|
|
|
|
void func0f03e5b0(struct chrdata *chr, f32 arg1)
|
|
{
|
|
if (chr->aibot) {
|
|
chr->aibot->unk0a4 = arg1;
|
|
} else {
|
|
func0001ae90(chr->model, arg1);
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03e5f0
|
|
.late_rodata
|
|
glabel var7f1a8f28
|
|
.word 0x40c907a9
|
|
glabel var7f1a8f2c
|
|
.word 0x40c907a9
|
|
.text
|
|
/* f03e5f0: 27bdffe0 */ addiu $sp,$sp,-32
|
|
/* f03e5f4: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f03e5f8: 0fc0f917 */ jal chrGetInverseTheta
|
|
/* f03e5fc: afa40020 */ sw $a0,0x20($sp)
|
|
/* f03e600: 8fa50020 */ lw $a1,0x20($sp)
|
|
/* f03e604: 3c017f1b */ lui $at,%hi(var7f1a8f28)
|
|
/* f03e608: c42e8f28 */ lwc1 $f14,%lo(var7f1a8f28)($at)
|
|
/* f03e60c: c4a4015c */ lwc1 $f4,0x15c($a1)
|
|
/* f03e610: 44808000 */ mtc1 $zero,$f16
|
|
/* f03e614: 46040080 */ add.s $f2,$f0,$f4
|
|
/* f03e618: 46008306 */ mov.s $f12,$f16
|
|
/* f03e61c: 4602703e */ c.le.s $f14,$f2
|
|
/* f03e620: 00000000 */ nop
|
|
/* f03e624: 45020004 */ bc1fl .L0f03e638
|
|
/* f03e628: 4610103c */ c.lt.s $f2,$f16
|
|
/* f03e62c: 10000006 */ b .L0f03e648
|
|
/* f03e630: 460e1081 */ sub.s $f2,$f2,$f14
|
|
/* f03e634: 4610103c */ c.lt.s $f2,$f16
|
|
.L0f03e638:
|
|
/* f03e638: 00000000 */ nop
|
|
/* f03e63c: 45020003 */ bc1fl .L0f03e64c
|
|
/* f03e640: 8ca202d4 */ lw $v0,0x2d4($a1)
|
|
/* f03e644: 460e1080 */ add.s $f2,$f2,$f14
|
|
.L0f03e648:
|
|
/* f03e648: 8ca202d4 */ lw $v0,0x2d4($a1)
|
|
.L0f03e64c:
|
|
/* f03e64c: 50400007 */ beqzl $v0,.L0f03e66c
|
|
/* f03e650: 80a20007 */ lb $v0,0x7($a1)
|
|
/* f03e654: 8c4e0068 */ lw $t6,0x68($v0)
|
|
/* f03e658: 51c00026 */ beqzl $t6,.L0f03e6f4
|
|
/* f03e65c: 46106032 */ c.eq.s $f12,$f16
|
|
/* f03e660: 10000024 */ b .L0f03e6f4
|
|
/* f03e664: 46106032 */ c.eq.s $f12,$f16
|
|
/* f03e668: 80a20007 */ lb $v0,0x7($a1)
|
|
.L0f03e66c:
|
|
/* f03e66c: 24010008 */ addiu $at,$zero,0x8
|
|
/* f03e670: 10410009 */ beq $v0,$at,.L0f03e698
|
|
/* f03e674: 2401000a */ addiu $at,$zero,0xa
|
|
/* f03e678: 10410007 */ beq $v0,$at,.L0f03e698
|
|
/* f03e67c: 2401001b */ addiu $at,$zero,0x1b
|
|
/* f03e680: 10410005 */ beq $v0,$at,.L0f03e698
|
|
/* f03e684: 2401001c */ addiu $at,$zero,0x1c
|
|
/* f03e688: 10410003 */ beq $v0,$at,.L0f03e698
|
|
/* f03e68c: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f03e690: 54410005 */ bnel $v0,$at,.L0f03e6a8
|
|
/* f03e694: 8ca4001c */ lw $a0,0x1c($a1)
|
|
.L0f03e698:
|
|
/* f03e698: 8caf002c */ lw $t7,0x2c($a1)
|
|
/* f03e69c: 10000014 */ b .L0f03e6f0
|
|
/* f03e6a0: c5ec000c */ lwc1 $f12,0xc($t7)
|
|
/* f03e6a4: 8ca4001c */ lw $a0,0x1c($a1)
|
|
.L0f03e6a8:
|
|
/* f03e6a8: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03e6ac: 90980000 */ lbu $t8,0x0($a0)
|
|
/* f03e6b0: 57010010 */ bnel $t8,$at,.L0f03e6f4
|
|
/* f03e6b4: 46106032 */ c.eq.s $f12,$f16
|
|
/* f03e6b8: afa50020 */ sw $a1,0x20($sp)
|
|
/* f03e6bc: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f03e6c0: e7a2001c */ swc1 $f2,0x1c($sp)
|
|
/* f03e6c4: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f03e6c8: 3c08800a */ lui $t0,%hi(g_Vars+0x64)
|
|
/* f03e6cc: 01194021 */ addu $t0,$t0,$t9
|
|
/* f03e6d0: 8d08a024 */ lw $t0,%lo(g_Vars+0x64)($t0)
|
|
/* f03e6d4: 44808000 */ mtc1 $zero,$f16
|
|
/* f03e6d8: 3c017f1b */ lui $at,%hi(var7f1a8f2c)
|
|
/* f03e6dc: c50618f4 */ lwc1 $f6,0x18f4($t0)
|
|
/* f03e6e0: c42e8f2c */ lwc1 $f14,%lo(var7f1a8f2c)($at)
|
|
/* f03e6e4: 8fa50020 */ lw $a1,0x20($sp)
|
|
/* f03e6e8: c7a2001c */ lwc1 $f2,0x1c($sp)
|
|
/* f03e6ec: 46068300 */ add.s $f12,$f16,$f6
|
|
.L0f03e6f0:
|
|
/* f03e6f0: 46106032 */ c.eq.s $f12,$f16
|
|
.L0f03e6f4:
|
|
/* f03e6f4: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f03e6f8: 27bd0020 */ addiu $sp,$sp,0x20
|
|
/* f03e6fc: 45010013 */ bc1t .L0f03e74c
|
|
/* f03e700: 00000000 */ nop
|
|
/* f03e704: 8ca90020 */ lw $t1,0x20($a1)
|
|
/* f03e708: 8d2a0020 */ lw $t2,0x20($t1)
|
|
/* f03e70c: 814b0008 */ lb $t3,0x8($t2)
|
|
/* f03e710: 51600003 */ beqzl $t3,.L0f03e720
|
|
/* f03e714: 460c1080 */ add.s $f2,$f2,$f12
|
|
/* f03e718: 460c7301 */ sub.s $f12,$f14,$f12
|
|
/* f03e71c: 460c1080 */ add.s $f2,$f2,$f12
|
|
.L0f03e720:
|
|
/* f03e720: 4602703e */ c.le.s $f14,$f2
|
|
/* f03e724: 00000000 */ nop
|
|
/* f03e728: 45020004 */ bc1fl .L0f03e73c
|
|
/* f03e72c: 460e103c */ c.lt.s $f2,$f14
|
|
/* f03e730: 10000006 */ b .L0f03e74c
|
|
/* f03e734: 460e1081 */ sub.s $f2,$f2,$f14
|
|
/* f03e738: 460e103c */ c.lt.s $f2,$f14
|
|
.L0f03e73c:
|
|
/* f03e73c: 00000000 */ nop
|
|
/* f03e740: 45000002 */ bc1f .L0f03e74c
|
|
/* f03e744: 00000000 */ nop
|
|
/* f03e748: 460e1080 */ add.s $f2,$f2,$f14
|
|
.L0f03e74c:
|
|
/* f03e74c: 03e00008 */ jr $ra
|
|
/* f03e750: 46001006 */ mov.s $f0,$f2
|
|
);
|
|
|
|
f32 func0f03e754(struct chrdata *chr)
|
|
{
|
|
f32 sum = chr->aimuprshoulder + chr->aimupback;
|
|
|
|
if (sum < 0) {
|
|
sum += M_BADTAU;
|
|
}
|
|
|
|
return sum;
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03e788
|
|
.late_rodata
|
|
glabel var7f1a8f34
|
|
.word 0x3d80a8be
|
|
glabel var7f1a8f38
|
|
.word 0x40c907a9
|
|
glabel var7f1a8f3c
|
|
.word 0x40c907a9
|
|
glabel var7f1a8f40
|
|
.word 0x40490fdb
|
|
.text
|
|
/* f03e788: 27bdffc8 */ addiu $sp,$sp,-56
|
|
/* f03e78c: afb00018 */ sw $s0,0x18($sp)
|
|
/* f03e790: 24010002 */ addiu $at,$zero,0x2
|
|
/* f03e794: 00808025 */ or $s0,$a0,$zero
|
|
/* f03e798: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f03e79c: afa5003c */ sw $a1,0x3c($sp)
|
|
/* f03e7a0: afa60040 */ sw $a2,0x40($sp)
|
|
/* f03e7a4: 10a1008e */ beq $a1,$at,.L0f03e9e0
|
|
/* f03e7a8: afa70044 */ sw $a3,0x44($sp)
|
|
/* f03e7ac: 8c840020 */ lw $a0,0x20($a0)
|
|
/* f03e7b0: 0c00745f */ jal modelGetCurAnimFrame
|
|
/* f03e7b4: afa40034 */ sw $a0,0x34($sp)
|
|
/* f03e7b8: e7a00030 */ swc1 $f0,0x30($sp)
|
|
/* f03e7bc: 0fc0f917 */ jal chrGetInverseTheta
|
|
/* f03e7c0: 02002025 */ or $a0,$s0,$zero
|
|
/* f03e7c4: 3c017f1b */ lui $at,%hi(var7f1a8f34)
|
|
/* f03e7c8: c4248f34 */ lwc1 $f4,%lo(var7f1a8f34)($at)
|
|
/* f03e7cc: c7a60044 */ lwc1 $f6,0x44($sp)
|
|
/* f03e7d0: 3c01800a */ lui $at,%hi(g_Vars+0x44)
|
|
/* f03e7d4: c42aa004 */ lwc1 $f10,%lo(g_Vars+0x44)($at)
|
|
/* f03e7d8: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f03e7dc: 8faf0034 */ lw $t7,0x34($sp)
|
|
/* f03e7e0: 46000306 */ mov.s $f12,$f0
|
|
/* f03e7e4: 02002025 */ or $a0,$s0,$zero
|
|
/* f03e7e8: 8df80020 */ lw $t8,0x20($t7)
|
|
/* f03e7ec: 460a4402 */ mul.s $f16,$f8,$f10
|
|
/* f03e7f0: c7120074 */ lwc1 $f18,0x74($t8)
|
|
/* f03e7f4: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f03e7f8: e7a40020 */ swc1 $f4,0x20($sp)
|
|
/* f03e7fc: 8e1902d4 */ lw $t9,0x2d4($s0)
|
|
/* f03e800: 53200009 */ beqzl $t9,.L0f03e828
|
|
/* f03e804: 82020007 */ lb $v0,0x7($s0)
|
|
/* f03e808: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f03e80c: e7ac0028 */ swc1 $f12,0x28($sp)
|
|
/* f03e810: 02002025 */ or $a0,$s0,$zero
|
|
/* f03e814: 0fc122a1 */ jal chrGetAngleToPos
|
|
/* f03e818: 24450008 */ addiu $a1,$v0,0x8
|
|
/* f03e81c: 1000002b */ b .L0f03e8cc
|
|
/* f03e820: c7ac0028 */ lwc1 $f12,0x28($sp)
|
|
/* f03e824: 82020007 */ lb $v0,0x7($s0)
|
|
.L0f03e828:
|
|
/* f03e828: 24010008 */ addiu $at,$zero,0x8
|
|
/* f03e82c: 02002025 */ or $a0,$s0,$zero
|
|
/* f03e830: 10410007 */ beq $v0,$at,.L0f03e850
|
|
/* f03e834: 2401001b */ addiu $at,$zero,0x1b
|
|
/* f03e838: 10410005 */ beq $v0,$at,.L0f03e850
|
|
/* f03e83c: 2401001c */ addiu $at,$zero,0x1c
|
|
/* f03e840: 10410003 */ beq $v0,$at,.L0f03e850
|
|
/* f03e844: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f03e848: 54410008 */ bnel $v0,$at,.L0f03e86c
|
|
/* f03e84c: 24010001 */ addiu $at,$zero,0x1
|
|
.L0f03e850:
|
|
/* f03e850: 8e05004c */ lw $a1,0x4c($s0)
|
|
/* f03e854: 8e060050 */ lw $a2,0x50($s0)
|
|
/* f03e858: 0fc0b8b4 */ jal func0f02e2d0
|
|
/* f03e85c: e7ac0028 */ swc1 $f12,0x28($sp)
|
|
/* f03e860: 1000001a */ b .L0f03e8cc
|
|
/* f03e864: c7ac0028 */ lwc1 $f12,0x28($sp)
|
|
/* f03e868: 24010001 */ addiu $at,$zero,0x1
|
|
.L0f03e86c:
|
|
/* f03e86c: 14410007 */ bne $v0,$at,.L0f03e88c
|
|
/* f03e870: 02002025 */ or $a0,$s0,$zero
|
|
/* f03e874: 8e050030 */ lw $a1,0x30($s0)
|
|
/* f03e878: 8e060034 */ lw $a2,0x34($s0)
|
|
/* f03e87c: 0fc0b8b4 */ jal func0f02e2d0
|
|
/* f03e880: e7ac0028 */ swc1 $f12,0x28($sp)
|
|
/* f03e884: 10000011 */ b .L0f03e8cc
|
|
/* f03e888: c7ac0028 */ lwc1 $f12,0x28($sp)
|
|
.L0f03e88c:
|
|
/* f03e88c: 24010014 */ addiu $at,$zero,0x14
|
|
/* f03e890: 14410008 */ bne $v0,$at,.L0f03e8b4
|
|
/* f03e894: 02002025 */ or $a0,$s0,$zero
|
|
/* f03e898: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f03e89c: 8e060030 */ lw $a2,0x30($s0)
|
|
/* f03e8a0: e7ac0028 */ swc1 $f12,0x28($sp)
|
|
/* f03e8a4: 0fc0b8b4 */ jal func0f02e2d0
|
|
/* f03e8a8: 02002025 */ or $a0,$s0,$zero
|
|
/* f03e8ac: 10000007 */ b .L0f03e8cc
|
|
/* f03e8b0: c7ac0028 */ lwc1 $f12,0x28($sp)
|
|
.L0f03e8b4:
|
|
/* f03e8b4: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f03e8b8: e7ac0028 */ swc1 $f12,0x28($sp)
|
|
/* f03e8bc: 02002025 */ or $a0,$s0,$zero
|
|
/* f03e8c0: 0fc122a1 */ jal chrGetAngleToPos
|
|
/* f03e8c4: 24450008 */ addiu $a1,$v0,0x8
|
|
/* f03e8c8: c7ac0028 */ lwc1 $f12,0x28($sp)
|
|
.L0f03e8cc:
|
|
/* f03e8cc: c7a60048 */ lwc1 $f6,0x48($sp)
|
|
/* f03e8d0: 44807000 */ mtc1 $zero,$f14
|
|
/* f03e8d4: 3c017f1b */ lui $at,%hi(var7f1a8f38)
|
|
/* f03e8d8: 46060081 */ sub.s $f2,$f0,$f6
|
|
/* f03e8dc: c7a80020 */ lwc1 $f8,0x20($sp)
|
|
/* f03e8e0: 460e103c */ c.lt.s $f2,$f14
|
|
/* f03e8e4: 00000000 */ nop
|
|
/* f03e8e8: 45020004 */ bc1fl .L0f03e8fc
|
|
/* f03e8ec: 4608103c */ c.lt.s $f2,$f8
|
|
/* f03e8f0: c4208f38 */ lwc1 $f0,%lo(var7f1a8f38)($at)
|
|
/* f03e8f4: 46001080 */ add.s $f2,$f2,$f0
|
|
/* f03e8f8: 4608103c */ c.lt.s $f2,$f8
|
|
.L0f03e8fc:
|
|
/* f03e8fc: 3c017f1b */ lui $at,%hi(var7f1a8f3c)
|
|
/* f03e900: c4208f3c */ lwc1 $f0,%lo(var7f1a8f3c)($at)
|
|
/* f03e904: 45030008 */ bc1tl .L0f03e928
|
|
/* f03e908: 46026300 */ add.s $f12,$f12,$f2
|
|
/* f03e90c: 46080281 */ sub.s $f10,$f0,$f8
|
|
/* f03e910: 3c017f1b */ lui $at,%hi(var7f1a8f40)
|
|
/* f03e914: 4602503c */ c.lt.s $f10,$f2
|
|
/* f03e918: 00000000 */ nop
|
|
/* f03e91c: 4500000d */ bc1f .L0f03e954
|
|
/* f03e920: 00000000 */ nop
|
|
/* f03e924: 46026300 */ add.s $f12,$f12,$f2
|
|
.L0f03e928:
|
|
/* f03e928: 460c003e */ c.le.s $f0,$f12
|
|
/* f03e92c: 00000000 */ nop
|
|
/* f03e930: 45020003 */ bc1fl .L0f03e940
|
|
/* f03e934: 44056000 */ mfc1 $a1,$f12
|
|
/* f03e938: 46006301 */ sub.s $f12,$f12,$f0
|
|
/* f03e93c: 44056000 */ mfc1 $a1,$f12
|
|
.L0f03e940:
|
|
/* f03e940: 0fc0f94e */ jal chrSetLookAngle
|
|
/* f03e944: 02002025 */ or $a0,$s0,$zero
|
|
/* f03e948: 24080003 */ addiu $t0,$zero,0x3
|
|
/* f03e94c: 1000001c */ b .L0f03e9c0
|
|
/* f03e950: afa8003c */ sw $t0,0x3c($sp)
|
|
.L0f03e954:
|
|
/* f03e954: c4308f40 */ lwc1 $f16,%lo(var7f1a8f40)($at)
|
|
/* f03e958: c7b20020 */ lwc1 $f18,0x20($sp)
|
|
/* f03e95c: c7a40020 */ lwc1 $f4,0x20($sp)
|
|
/* f03e960: 4610103c */ c.lt.s $f2,$f16
|
|
/* f03e964: 00000000 */ nop
|
|
/* f03e968: 4502000d */ bc1fl .L0f03e9a0
|
|
/* f03e96c: 46046301 */ sub.s $f12,$f12,$f4
|
|
/* f03e970: 46126300 */ add.s $f12,$f12,$f18
|
|
/* f03e974: 460c003e */ c.le.s $f0,$f12
|
|
/* f03e978: 00000000 */ nop
|
|
/* f03e97c: 45020003 */ bc1fl .L0f03e98c
|
|
/* f03e980: 44056000 */ mfc1 $a1,$f12
|
|
/* f03e984: 46006301 */ sub.s $f12,$f12,$f0
|
|
/* f03e988: 44056000 */ mfc1 $a1,$f12
|
|
.L0f03e98c:
|
|
/* f03e98c: 0fc0f94e */ jal chrSetLookAngle
|
|
/* f03e990: 02002025 */ or $a0,$s0,$zero
|
|
/* f03e994: 1000000b */ b .L0f03e9c4
|
|
/* f03e998: c7a60030 */ lwc1 $f6,0x30($sp)
|
|
/* f03e99c: 46046301 */ sub.s $f12,$f12,$f4
|
|
.L0f03e9a0:
|
|
/* f03e9a0: 460e603c */ c.lt.s $f12,$f14
|
|
/* f03e9a4: 00000000 */ nop
|
|
/* f03e9a8: 45020003 */ bc1fl .L0f03e9b8
|
|
/* f03e9ac: 44056000 */ mfc1 $a1,$f12
|
|
/* f03e9b0: 46006300 */ add.s $f12,$f12,$f0
|
|
/* f03e9b4: 44056000 */ mfc1 $a1,$f12
|
|
.L0f03e9b8:
|
|
/* f03e9b8: 0fc0f94e */ jal chrSetLookAngle
|
|
/* f03e9bc: 02002025 */ or $a0,$s0,$zero
|
|
.L0f03e9c0:
|
|
/* f03e9c0: c7a60030 */ lwc1 $f6,0x30($sp)
|
|
.L0f03e9c4:
|
|
/* f03e9c4: c7a80040 */ lwc1 $f8,0x40($sp)
|
|
/* f03e9c8: 24090002 */ addiu $t1,$zero,0x2
|
|
/* f03e9cc: 4606403e */ c.le.s $f8,$f6
|
|
/* f03e9d0: 00000000 */ nop
|
|
/* f03e9d4: 45020003 */ bc1fl .L0f03e9e4
|
|
/* f03e9d8: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f03e9dc: afa9003c */ sw $t1,0x3c($sp)
|
|
.L0f03e9e0:
|
|
/* f03e9e0: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f03e9e4:
|
|
/* f03e9e4: 8fa2003c */ lw $v0,0x3c($sp)
|
|
/* f03e9e8: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f03e9ec: 03e00008 */ jr $ra
|
|
/* f03e9f0: 27bd0038 */ addiu $sp,$sp,0x38
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03e9f4
|
|
.late_rodata
|
|
glabel var7f1a8f44
|
|
.word 0x3d4ccccd
|
|
glabel var7f1a8f48
|
|
.word 0x3ecccccd
|
|
glabel var7f1a8f4c
|
|
.word 0x481c4000
|
|
glabel var7f1a8f50
|
|
.word 0x3dcccccd
|
|
glabel var7f1a8f54
|
|
.word 0x3f0ccccd
|
|
glabel var7f1a8f58
|
|
.word 0x3dcccccd
|
|
glabel var7f1a8f5c
|
|
.word 0x3e19999a
|
|
glabel var7f1a8f60
|
|
.word 0x3dcccccd
|
|
glabel var7f1a8f64
|
|
.word 0x3d4ccccd
|
|
glabel var7f1a8f68
|
|
.word 0x3ccccccd
|
|
glabel var7f1a8f6c
|
|
.word 0x49742400
|
|
glabel var7f1a8f70
|
|
.word 0x3dcccccd
|
|
glabel var7f1a8f74
|
|
.word 0x3d4ccccd
|
|
glabel var7f1a8f78
|
|
.word 0x3f0ccccd
|
|
glabel var7f1a8f7c
|
|
.word 0x3d4ccccd
|
|
glabel var7f1a8f80
|
|
.word 0x3dcccccd
|
|
glabel var7f1a8f84
|
|
.word 0x3f0ccccd
|
|
glabel var7f1a8f88
|
|
.word 0x3dcccccd
|
|
glabel var7f1a8f8c
|
|
.word 0x3e19999a
|
|
glabel var7f1a8f90
|
|
.word 0x3dcccccd
|
|
glabel var7f1a8f94
|
|
.word 0x3d4ccccd
|
|
glabel var7f1a8f98
|
|
.word 0x40490fdb
|
|
glabel var7f1a8f9c
|
|
.word 0x40c907a9
|
|
glabel var7f1a8fa0
|
|
.word 0x49742400
|
|
glabel var7f1a8fa4
|
|
.word 0x40c907a9
|
|
glabel var7f1a8fa8
|
|
.word 0x40c907a9
|
|
glabel var7f1a8fac
|
|
.word 0x40c907a9
|
|
glabel var7f1a8fb0
|
|
.word 0x40c907a9
|
|
glabel var7f1a8fb4
|
|
.word 0x3dd66e92
|
|
glabel var7f1a8fb8
|
|
.word 0x40c907a9
|
|
glabel var7f1a8fbc
|
|
.word 0x40c907a9
|
|
glabel var7f1a8fc0
|
|
.word 0x40c907a9
|
|
glabel var7f1a8fc4
|
|
.word 0x40490fdb
|
|
glabel var7f1a8fc8
|
|
.word 0x40c907a9
|
|
.text
|
|
/* f03e9f4: 27bdfe70 */ addiu $sp,$sp,-400
|
|
/* f03e9f8: 44808000 */ mtc1 $zero,$f16
|
|
/* f03e9fc: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f03ea00: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f03ea04: afa50194 */ sw $a1,0x194($sp)
|
|
/* f03ea08: afa60198 */ sw $a2,0x198($sp)
|
|
/* f03ea0c: afa7019c */ sw $a3,0x19c($sp)
|
|
/* f03ea10: afae017c */ sw $t6,0x17c($sp)
|
|
/* f03ea14: e7b0018c */ swc1 $f16,0x18c($sp)
|
|
/* f03ea18: 8c8f02d4 */ lw $t7,0x2d4($a0)
|
|
/* f03ea1c: 24080200 */ addiu $t0,$zero,0x200
|
|
/* f03ea20: 00001825 */ or $v1,$zero,$zero
|
|
/* f03ea24: 55e00014 */ bnezl $t7,.L0f03ea78
|
|
/* f03ea28: 31180002 */ andi $t8,$t0,0x2
|
|
/* f03ea2c: 80820007 */ lb $v0,0x7($a0)
|
|
/* f03ea30: 24010008 */ addiu $at,$zero,0x8
|
|
/* f03ea34: 10410007 */ beq $v0,$at,.L0f03ea54
|
|
/* f03ea38: 2401001b */ addiu $at,$zero,0x1b
|
|
/* f03ea3c: 10410005 */ beq $v0,$at,.L0f03ea54
|
|
/* f03ea40: 2401001c */ addiu $at,$zero,0x1c
|
|
/* f03ea44: 10410003 */ beq $v0,$at,.L0f03ea54
|
|
/* f03ea48: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f03ea4c: 54410005 */ bnel $v0,$at,.L0f03ea64
|
|
/* f03ea50: 24010001 */ addiu $at,$zero,0x1
|
|
.L0f03ea54:
|
|
/* f03ea54: 8c88004c */ lw $t0,0x4c($a0)
|
|
/* f03ea58: 10000006 */ b .L0f03ea74
|
|
/* f03ea5c: 8c830050 */ lw $v1,0x50($a0)
|
|
/* f03ea60: 24010001 */ addiu $at,$zero,0x1
|
|
.L0f03ea64:
|
|
/* f03ea64: 54410004 */ bnel $v0,$at,.L0f03ea78
|
|
/* f03ea68: 31180002 */ andi $t8,$t0,0x2
|
|
/* f03ea6c: 8c880030 */ lw $t0,0x30($a0)
|
|
/* f03ea70: 8c830034 */ lw $v1,0x34($a0)
|
|
.L0f03ea74:
|
|
/* f03ea74: 31180002 */ andi $t8,$t0,0x2
|
|
.L0f03ea78:
|
|
/* f03ea78: 1700032d */ bnez $t8,.L0f03f730
|
|
/* f03ea7c: afa40190 */ sw $a0,0x190($sp)
|
|
/* f03ea80: 8c99001c */ lw $t9,0x1c($a0)
|
|
/* f03ea84: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03ea88: afa80184 */ sw $t0,0x184($sp)
|
|
/* f03ea8c: afa40190 */ sw $a0,0x190($sp)
|
|
/* f03ea90: afa30180 */ sw $v1,0x180($sp)
|
|
/* f03ea94: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f03ea98: afb9016c */ sw $t9,0x16c($sp)
|
|
/* f03ea9c: 8fa3016c */ lw $v1,0x16c($sp)
|
|
/* f03eaa0: afa20168 */ sw $v0,0x168($sp)
|
|
/* f03eaa4: c4440008 */ lwc1 $f4,0x8($v0)
|
|
/* f03eaa8: c4660008 */ lwc1 $f6,0x8($v1)
|
|
/* f03eaac: 8fa60190 */ lw $a2,0x190($sp)
|
|
/* f03eab0: 8fac0184 */ lw $t4,0x184($sp)
|
|
/* f03eab4: 46062201 */ sub.s $f8,$f4,$f6
|
|
/* f03eab8: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03eabc: 318d0200 */ andi $t5,$t4,0x200
|
|
/* f03eac0: e7a80178 */ swc1 $f8,0x178($sp)
|
|
/* f03eac4: c44a000c */ lwc1 $f10,0xc($v0)
|
|
/* f03eac8: c472000c */ lwc1 $f18,0xc($v1)
|
|
/* f03eacc: 46125101 */ sub.s $f4,$f10,$f18
|
|
/* f03ead0: c7b20178 */ lwc1 $f18,0x178($sp)
|
|
/* f03ead4: e7a40174 */ swc1 $f4,0x174($sp)
|
|
/* f03ead8: c4460010 */ lwc1 $f6,0x10($v0)
|
|
/* f03eadc: c4680010 */ lwc1 $f8,0x10($v1)
|
|
/* f03eae0: 46129102 */ mul.s $f4,$f18,$f18
|
|
/* f03eae4: 46083281 */ sub.s $f10,$f6,$f8
|
|
/* f03eae8: c7a60174 */ lwc1 $f6,0x174($sp)
|
|
/* f03eaec: 46063202 */ mul.s $f8,$f6,$f6
|
|
/* f03eaf0: e7aa0170 */ swc1 $f10,0x170($sp)
|
|
/* f03eaf4: c7b20170 */ lwc1 $f18,0x170($sp)
|
|
/* f03eaf8: 46129182 */ mul.s $f6,$f18,$f18
|
|
/* f03eafc: 46082280 */ add.s $f10,$f4,$f8
|
|
/* f03eb00: 46065000 */ add.s $f0,$f10,$f6
|
|
/* f03eb04: e7a00164 */ swc1 $f0,0x164($sp)
|
|
/* f03eb08: 8cc902d4 */ lw $t1,0x2d4($a2)
|
|
/* f03eb0c: 11200006 */ beqz $t1,.L0f03eb28
|
|
/* f03eb10: 00000000 */ nop
|
|
/* f03eb14: 8faa0184 */ lw $t2,0x184($sp)
|
|
/* f03eb18: afa00160 */ sw $zero,0x160($sp)
|
|
/* f03eb1c: 314b0200 */ andi $t3,$t2,0x200
|
|
/* f03eb20: 10000013 */ b .L0f03eb70
|
|
/* f03eb24: afab0020 */ sw $t3,0x20($sp)
|
|
.L0f03eb28:
|
|
/* f03eb28: 11a0000f */ beqz $t5,.L0f03eb68
|
|
/* f03eb2c: afad0020 */ sw $t5,0x20($sp)
|
|
/* f03eb30: 318e0040 */ andi $t6,$t4,0x40
|
|
/* f03eb34: 11c00004 */ beqz $t6,.L0f03eb48
|
|
/* f03eb38: 00c02025 */ or $a0,$a2,$zero
|
|
/* f03eb3c: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f03eb40: 1000000b */ b .L0f03eb70
|
|
/* f03eb44: afaf0160 */ sw $t7,0x160($sp)
|
|
.L0f03eb48:
|
|
/* f03eb48: e7a00024 */ swc1 $f0,0x24($sp)
|
|
/* f03eb4c: 0fc0e4da */ jal chrCanSeeTarget
|
|
/* f03eb50: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03eb54: c7a00024 */ lwc1 $f0,0x24($sp)
|
|
/* f03eb58: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03eb5c: afa20160 */ sw $v0,0x160($sp)
|
|
/* f03eb60: 10000003 */ b .L0f03eb70
|
|
/* f03eb64: 8fa60190 */ lw $a2,0x190($sp)
|
|
.L0f03eb68:
|
|
/* f03eb68: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f03eb6c: afb80160 */ sw $t8,0x160($sp)
|
|
.L0f03eb70:
|
|
/* f03eb70: 8fb90020 */ lw $t9,0x20($sp)
|
|
/* f03eb74: 8fa90168 */ lw $t1,0x168($sp)
|
|
/* f03eb78: 27a50134 */ addiu $a1,$sp,0x134
|
|
/* f03eb7c: 5320016c */ beqzl $t9,.L0f03f130
|
|
/* f03eb80: 8cc40020 */ lw $a0,0x20($a2)
|
|
/* f03eb84: 912a0000 */ lbu $t2,0x0($t1)
|
|
/* f03eb88: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03eb8c: 01202025 */ or $a0,$t1,$zero
|
|
/* f03eb90: 55410167 */ bnel $t2,$at,.L0f03f130
|
|
/* f03eb94: 8cc40020 */ lw $a0,0x20($a2)
|
|
/* f03eb98: e7a00024 */ swc1 $f0,0x24($sp)
|
|
/* f03eb9c: 0fc4a25f */ jal propGetPlayerNum
|
|
/* f03eba0: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03eba4: 8fa40168 */ lw $a0,0x168($sp)
|
|
/* f03eba8: 00025880 */ sll $t3,$v0,0x2
|
|
/* f03ebac: 3c0d800a */ lui $t5,%hi(g_Vars+0x64)
|
|
/* f03ebb0: 01ab6821 */ addu $t5,$t5,$t3
|
|
/* f03ebb4: 8dada024 */ lw $t5,%lo(g_Vars+0x64)($t5)
|
|
/* f03ebb8: c4840008 */ lwc1 $f4,0x8($a0)
|
|
/* f03ebbc: 8fa30190 */ lw $v1,0x190($sp)
|
|
/* f03ebc0: c5a219c4 */ lwc1 $f2,0x19c4($t5)
|
|
/* f03ebc4: e7a40154 */ swc1 $f4,0x154($sp)
|
|
/* f03ebc8: c488000c */ lwc1 $f8,0xc($a0)
|
|
/* f03ebcc: c7a00024 */ lwc1 $f0,0x24($sp)
|
|
/* f03ebd0: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03ebd4: e7a80158 */ swc1 $f8,0x158($sp)
|
|
/* f03ebd8: c4920010 */ lwc1 $f18,0x10($a0)
|
|
/* f03ebdc: e7b2015c */ swc1 $f18,0x15c($sp)
|
|
/* f03ebe0: 8c6c02d4 */ lw $t4,0x2d4($v1)
|
|
/* f03ebe4: 5180001e */ beqzl $t4,.L0f03ec60
|
|
/* f03ebe8: 8c6e0018 */ lw $t6,0x18($v1)
|
|
/* f03ebec: e7a20140 */ swc1 $f2,0x140($sp)
|
|
/* f03ebf0: 0c004b70 */ jal random
|
|
/* f03ebf4: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03ebf8: 44825000 */ mtc1 $v0,$f10
|
|
/* f03ebfc: c7a20140 */ lwc1 $f2,0x140($sp)
|
|
/* f03ec00: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03ec04: 04410005 */ bgez $v0,.L0f03ec1c
|
|
/* f03ec08: 468051a0 */ cvt.s.w $f6,$f10
|
|
/* f03ec0c: 3c014f80 */ lui $at,0x4f80
|
|
/* f03ec10: 44812000 */ mtc1 $at,$f4
|
|
/* f03ec14: 00000000 */ nop
|
|
/* f03ec18: 46043180 */ add.s $f6,$f6,$f4
|
|
.L0f03ec1c:
|
|
/* f03ec1c: 3c012f80 */ lui $at,0x2f80
|
|
/* f03ec20: 44814000 */ mtc1 $at,$f8
|
|
/* f03ec24: 3c017f1b */ lui $at,%hi(var7f1a8f44)
|
|
/* f03ec28: c42a8f44 */ lwc1 $f10,%lo(var7f1a8f44)($at)
|
|
/* f03ec2c: 46083482 */ mul.s $f18,$f6,$f8
|
|
/* f03ec30: c7a601a0 */ lwc1 $f6,0x1a0($sp)
|
|
/* f03ec34: 3c017f1b */ lui $at,%hi(var7f1a8f48)
|
|
/* f03ec38: 46125102 */ mul.s $f4,$f10,$f18
|
|
/* f03ec3c: c42a8f48 */ lwc1 $f10,%lo(var7f1a8f48)($at)
|
|
/* f03ec40: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f03ec44: c7a60174 */ lwc1 $f6,0x174($sp)
|
|
/* f03ec48: 46085480 */ add.s $f18,$f10,$f8
|
|
/* f03ec4c: 46121102 */ mul.s $f4,$f2,$f18
|
|
/* f03ec50: 46043281 */ sub.s $f10,$f6,$f4
|
|
/* f03ec54: 1000014c */ b .L0f03f188
|
|
/* f03ec58: e7aa0174 */ swc1 $f10,0x174($sp)
|
|
/* f03ec5c: 8c6e0018 */ lw $t6,0x18($v1)
|
|
.L0f03ec60:
|
|
/* f03ec60: 3c017f1b */ lui $at,%hi(var7f1a8f4c)
|
|
/* f03ec64: 31cf0020 */ andi $t7,$t6,0x20
|
|
/* f03ec68: 11e00087 */ beqz $t7,.L0f03ee88
|
|
/* f03ec6c: 00000000 */ nop
|
|
/* f03ec70: 3c017f1b */ lui $at,%hi(var7f1a8f50)
|
|
/* f03ec74: c4288f4c */ lwc1 $f8,%lo(var7f1a8f4c)($at)
|
|
/* f03ec78: 4608003c */ c.lt.s $f0,$f8
|
|
/* f03ec7c: 00000000 */ nop
|
|
/* f03ec80: 45020066 */ bc1fl .L0f03ee1c
|
|
/* f03ec84: e7a20140 */ swc1 $f2,0x140($sp)
|
|
/* f03ec88: 46021180 */ add.s $f6,$f2,$f2
|
|
/* f03ec8c: c7b20158 */ lwc1 $f18,0x158($sp)
|
|
/* f03ec90: 8fb8016c */ lw $t8,0x16c($sp)
|
|
/* f03ec94: 3c013f00 */ lui $at,0x3f00
|
|
/* f03ec98: 46069101 */ sub.s $f4,$f18,$f6
|
|
/* f03ec9c: c700000c */ lwc1 $f0,0xc($t8)
|
|
/* f03eca0: 4604003c */ c.lt.s $f0,$f4
|
|
/* f03eca4: 00000000 */ nop
|
|
/* f03eca8: 4502001e */ bc1fl .L0f03ed24
|
|
/* f03ecac: 44812000 */ mtc1 $at,$f4
|
|
/* f03ecb0: e7a20140 */ swc1 $f2,0x140($sp)
|
|
/* f03ecb4: 0c004b70 */ jal random
|
|
/* f03ecb8: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03ecbc: 44825000 */ mtc1 $v0,$f10
|
|
/* f03ecc0: c7a20140 */ lwc1 $f2,0x140($sp)
|
|
/* f03ecc4: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03ecc8: 04410005 */ bgez $v0,.L0f03ece0
|
|
/* f03eccc: 46805220 */ cvt.s.w $f8,$f10
|
|
/* f03ecd0: 3c014f80 */ lui $at,0x4f80
|
|
/* f03ecd4: 44819000 */ mtc1 $at,$f18
|
|
/* f03ecd8: 00000000 */ nop
|
|
/* f03ecdc: 46124200 */ add.s $f8,$f8,$f18
|
|
.L0f03ece0:
|
|
/* f03ece0: 3c012f80 */ lui $at,0x2f80
|
|
/* f03ece4: 44813000 */ mtc1 $at,$f6
|
|
/* f03ece8: 3c017f1b */ lui $at,%hi(var7f1a8f54)
|
|
/* f03ecec: c42a8f50 */ lwc1 $f10,%lo(var7f1a8f50)($at)
|
|
/* f03ecf0: 46064102 */ mul.s $f4,$f8,$f6
|
|
/* f03ecf4: c7a801a0 */ lwc1 $f8,0x1a0($sp)
|
|
/* f03ecf8: 3c017f1b */ lui $at,%hi(var7f1a8f58)
|
|
/* f03ecfc: 46045482 */ mul.s $f18,$f10,$f4
|
|
/* f03ed00: c42a8f54 */ lwc1 $f10,%lo(var7f1a8f54)($at)
|
|
/* f03ed04: 46089182 */ mul.s $f6,$f18,$f8
|
|
/* f03ed08: c7a80174 */ lwc1 $f8,0x174($sp)
|
|
/* f03ed0c: 46065100 */ add.s $f4,$f10,$f6
|
|
/* f03ed10: 46041482 */ mul.s $f18,$f2,$f4
|
|
/* f03ed14: 46124281 */ sub.s $f10,$f8,$f18
|
|
/* f03ed18: 1000011b */ b .L0f03f188
|
|
/* f03ed1c: e7aa0174 */ swc1 $f10,0x174($sp)
|
|
/* f03ed20: 44812000 */ mtc1 $at,$f4
|
|
.L0f03ed24:
|
|
/* f03ed24: c7a60158 */ lwc1 $f6,0x158($sp)
|
|
/* f03ed28: 46041202 */ mul.s $f8,$f2,$f4
|
|
/* f03ed2c: 46083481 */ sub.s $f18,$f6,$f8
|
|
/* f03ed30: 4600903c */ c.lt.s $f18,$f0
|
|
/* f03ed34: 00000000 */ nop
|
|
/* f03ed38: 4500001d */ bc1f .L0f03edb0
|
|
/* f03ed3c: 00000000 */ nop
|
|
/* f03ed40: e7a20140 */ swc1 $f2,0x140($sp)
|
|
/* f03ed44: 0c004b70 */ jal random
|
|
/* f03ed48: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03ed4c: 44825000 */ mtc1 $v0,$f10
|
|
/* f03ed50: c7a20140 */ lwc1 $f2,0x140($sp)
|
|
/* f03ed54: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03ed58: 04410005 */ bgez $v0,.L0f03ed70
|
|
/* f03ed5c: 46805120 */ cvt.s.w $f4,$f10
|
|
/* f03ed60: 3c014f80 */ lui $at,0x4f80
|
|
/* f03ed64: 44813000 */ mtc1 $at,$f6
|
|
/* f03ed68: 00000000 */ nop
|
|
/* f03ed6c: 46062100 */ add.s $f4,$f4,$f6
|
|
.L0f03ed70:
|
|
/* f03ed70: 3c012f80 */ lui $at,0x2f80
|
|
/* f03ed74: 44814000 */ mtc1 $at,$f8
|
|
/* f03ed78: 3c017f1b */ lui $at,%hi(var7f1a8f5c)
|
|
/* f03ed7c: c42a8f58 */ lwc1 $f10,%lo(var7f1a8f58)($at)
|
|
/* f03ed80: 46082482 */ mul.s $f18,$f4,$f8
|
|
/* f03ed84: c7a401a0 */ lwc1 $f4,0x1a0($sp)
|
|
/* f03ed88: 3c017f1b */ lui $at,%hi(var7f1a8f60)
|
|
/* f03ed8c: 46125182 */ mul.s $f6,$f10,$f18
|
|
/* f03ed90: c42a8f5c */ lwc1 $f10,%lo(var7f1a8f5c)($at)
|
|
/* f03ed94: 46043202 */ mul.s $f8,$f6,$f4
|
|
/* f03ed98: c7a40174 */ lwc1 $f4,0x174($sp)
|
|
/* f03ed9c: 46085480 */ add.s $f18,$f10,$f8
|
|
/* f03eda0: 46121182 */ mul.s $f6,$f2,$f18
|
|
/* f03eda4: 46062281 */ sub.s $f10,$f4,$f6
|
|
/* f03eda8: 100000f7 */ b .L0f03f188
|
|
/* f03edac: e7aa0174 */ swc1 $f10,0x174($sp)
|
|
.L0f03edb0:
|
|
/* f03edb0: 0c004b70 */ jal random
|
|
/* f03edb4: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03edb8: 44824000 */ mtc1 $v0,$f8
|
|
/* f03edbc: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03edc0: 04410005 */ bgez $v0,.L0f03edd8
|
|
/* f03edc4: 468044a0 */ cvt.s.w $f18,$f8
|
|
/* f03edc8: 3c014f80 */ lui $at,0x4f80
|
|
/* f03edcc: 44812000 */ mtc1 $at,$f4
|
|
/* f03edd0: 00000000 */ nop
|
|
/* f03edd4: 46049480 */ add.s $f18,$f18,$f4
|
|
.L0f03edd8:
|
|
/* f03edd8: 3c012f80 */ lui $at,0x2f80
|
|
/* f03eddc: 44813000 */ mtc1 $at,$f6
|
|
/* f03ede0: 3c017f1b */ lui $at,%hi(var7f1a8f64)
|
|
/* f03ede4: c4288f60 */ lwc1 $f8,%lo(var7f1a8f60)($at)
|
|
/* f03ede8: 46069282 */ mul.s $f10,$f18,$f6
|
|
/* f03edec: c7b201a0 */ lwc1 $f18,0x1a0($sp)
|
|
/* f03edf0: 3c013f80 */ lui $at,0x3f80
|
|
/* f03edf4: 46085102 */ mul.s $f4,$f10,$f8
|
|
/* f03edf8: 44815000 */ mtc1 $at,$f10
|
|
/* f03edfc: 3c014220 */ lui $at,0x4220
|
|
/* f03ee00: 46122182 */ mul.s $f6,$f4,$f18
|
|
/* f03ee04: 44812000 */ mtc1 $at,$f4
|
|
/* f03ee08: 460a3200 */ add.s $f8,$f6,$f10
|
|
/* f03ee0c: 46044482 */ mul.s $f18,$f8,$f4
|
|
/* f03ee10: 100000dd */ b .L0f03f188
|
|
/* f03ee14: e7b20174 */ swc1 $f18,0x174($sp)
|
|
/* f03ee18: e7a20140 */ swc1 $f2,0x140($sp)
|
|
.L0f03ee1c:
|
|
/* f03ee1c: 0c004b70 */ jal random
|
|
/* f03ee20: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03ee24: 44823000 */ mtc1 $v0,$f6
|
|
/* f03ee28: c7a20140 */ lwc1 $f2,0x140($sp)
|
|
/* f03ee2c: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03ee30: 04410005 */ bgez $v0,.L0f03ee48
|
|
/* f03ee34: 468032a0 */ cvt.s.w $f10,$f6
|
|
/* f03ee38: 3c014f80 */ lui $at,0x4f80
|
|
/* f03ee3c: 44814000 */ mtc1 $at,$f8
|
|
/* f03ee40: 00000000 */ nop
|
|
/* f03ee44: 46085280 */ add.s $f10,$f10,$f8
|
|
.L0f03ee48:
|
|
/* f03ee48: 3c012f80 */ lui $at,0x2f80
|
|
/* f03ee4c: 44812000 */ mtc1 $at,$f4
|
|
/* f03ee50: 3c017f1b */ lui $at,%hi(var7f1a8f68)
|
|
/* f03ee54: c4268f64 */ lwc1 $f6,%lo(var7f1a8f64)($at)
|
|
/* f03ee58: 46045482 */ mul.s $f18,$f10,$f4
|
|
/* f03ee5c: c7aa01a0 */ lwc1 $f10,0x1a0($sp)
|
|
/* f03ee60: 3c017f1b */ lui $at,%hi(var7f1a8f6c)
|
|
/* f03ee64: 46123202 */ mul.s $f8,$f6,$f18
|
|
/* f03ee68: c4268f68 */ lwc1 $f6,%lo(var7f1a8f68)($at)
|
|
/* f03ee6c: 460a4102 */ mul.s $f4,$f8,$f10
|
|
/* f03ee70: c7aa0174 */ lwc1 $f10,0x174($sp)
|
|
/* f03ee74: 46043481 */ sub.s $f18,$f6,$f4
|
|
/* f03ee78: 46121202 */ mul.s $f8,$f2,$f18
|
|
/* f03ee7c: 46085180 */ add.s $f6,$f10,$f8
|
|
/* f03ee80: 100000c1 */ b .L0f03f188
|
|
/* f03ee84: e7a60174 */ swc1 $f6,0x174($sp)
|
|
.L0f03ee88:
|
|
/* f03ee88: c4248f6c */ lwc1 $f4,%lo(var7f1a8f6c)($at)
|
|
/* f03ee8c: c7a80158 */ lwc1 $f8,0x158($sp)
|
|
/* f03ee90: 4600203c */ c.lt.s $f4,$f0
|
|
/* f03ee94: 00000000 */ nop
|
|
/* f03ee98: 45020043 */ bc1fl .L0f03efa8
|
|
/* f03ee9c: 8faa016c */ lw $t2,0x16c($sp)
|
|
/* f03eea0: e7a20140 */ swc1 $f2,0x140($sp)
|
|
/* f03eea4: 0c004b70 */ jal random
|
|
/* f03eea8: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03eeac: 24010003 */ addiu $at,$zero,0x3
|
|
/* f03eeb0: 0041001b */ divu $zero,$v0,$at
|
|
/* f03eeb4: 0000c810 */ mfhi $t9
|
|
/* f03eeb8: c7a20140 */ lwc1 $f2,0x140($sp)
|
|
/* f03eebc: 1720001d */ bnez $t9,.L0f03ef34
|
|
/* f03eec0: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03eec4: e7a20140 */ swc1 $f2,0x140($sp)
|
|
/* f03eec8: 0c004b70 */ jal random
|
|
/* f03eecc: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03eed0: 44829000 */ mtc1 $v0,$f18
|
|
/* f03eed4: c7a20140 */ lwc1 $f2,0x140($sp)
|
|
/* f03eed8: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03eedc: 04410005 */ bgez $v0,.L0f03eef4
|
|
/* f03eee0: 468092a0 */ cvt.s.w $f10,$f18
|
|
/* f03eee4: 3c014f80 */ lui $at,0x4f80
|
|
/* f03eee8: 44814000 */ mtc1 $at,$f8
|
|
/* f03eeec: 00000000 */ nop
|
|
/* f03eef0: 46085280 */ add.s $f10,$f10,$f8
|
|
.L0f03eef4:
|
|
/* f03eef4: 3c012f80 */ lui $at,0x2f80
|
|
/* f03eef8: 44813000 */ mtc1 $at,$f6
|
|
/* f03eefc: 3c017f1b */ lui $at,%hi(var7f1a8f70)
|
|
/* f03ef00: c4328f70 */ lwc1 $f18,%lo(var7f1a8f70)($at)
|
|
/* f03ef04: 46065102 */ mul.s $f4,$f10,$f6
|
|
/* f03ef08: c7aa01a0 */ lwc1 $f10,0x1a0($sp)
|
|
/* f03ef0c: 3c017f1b */ lui $at,%hi(var7f1a8f74)
|
|
/* f03ef10: 46049202 */ mul.s $f8,$f18,$f4
|
|
/* f03ef14: c4328f74 */ lwc1 $f18,%lo(var7f1a8f74)($at)
|
|
/* f03ef18: 460a4182 */ mul.s $f6,$f8,$f10
|
|
/* f03ef1c: c7aa0174 */ lwc1 $f10,0x174($sp)
|
|
/* f03ef20: 46069100 */ add.s $f4,$f18,$f6
|
|
/* f03ef24: 46041202 */ mul.s $f8,$f2,$f4
|
|
/* f03ef28: 46085480 */ add.s $f18,$f10,$f8
|
|
/* f03ef2c: 10000096 */ b .L0f03f188
|
|
/* f03ef30: e7b20174 */ swc1 $f18,0x174($sp)
|
|
.L0f03ef34:
|
|
/* f03ef34: e7a20140 */ swc1 $f2,0x140($sp)
|
|
/* f03ef38: 0c004b70 */ jal random
|
|
/* f03ef3c: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03ef40: 44823000 */ mtc1 $v0,$f6
|
|
/* f03ef44: c7a20140 */ lwc1 $f2,0x140($sp)
|
|
/* f03ef48: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03ef4c: 04410005 */ bgez $v0,.L0f03ef64
|
|
/* f03ef50: 46803120 */ cvt.s.w $f4,$f6
|
|
/* f03ef54: 3c014f80 */ lui $at,0x4f80
|
|
/* f03ef58: 44815000 */ mtc1 $at,$f10
|
|
/* f03ef5c: 00000000 */ nop
|
|
/* f03ef60: 460a2100 */ add.s $f4,$f4,$f10
|
|
.L0f03ef64:
|
|
/* f03ef64: 3c012f80 */ lui $at,0x2f80
|
|
/* f03ef68: 44814000 */ mtc1 $at,$f8
|
|
/* f03ef6c: 3c017f1b */ lui $at,%hi(var7f1a8f78)
|
|
/* f03ef70: c4268f78 */ lwc1 $f6,%lo(var7f1a8f78)($at)
|
|
/* f03ef74: 46082482 */ mul.s $f18,$f4,$f8
|
|
/* f03ef78: c7a401a0 */ lwc1 $f4,0x1a0($sp)
|
|
/* f03ef7c: 3c017f1b */ lui $at,%hi(var7f1a8f7c)
|
|
/* f03ef80: 46123282 */ mul.s $f10,$f6,$f18
|
|
/* f03ef84: c4268f7c */ lwc1 $f6,%lo(var7f1a8f7c)($at)
|
|
/* f03ef88: 46045202 */ mul.s $f8,$f10,$f4
|
|
/* f03ef8c: c7a40174 */ lwc1 $f4,0x174($sp)
|
|
/* f03ef90: 46083480 */ add.s $f18,$f6,$f8
|
|
/* f03ef94: 46121282 */ mul.s $f10,$f2,$f18
|
|
/* f03ef98: 460a2181 */ sub.s $f6,$f4,$f10
|
|
/* f03ef9c: 1000007a */ b .L0f03f188
|
|
/* f03efa0: e7a60174 */ swc1 $f6,0x174($sp)
|
|
/* f03efa4: 8faa016c */ lw $t2,0x16c($sp)
|
|
.L0f03efa8:
|
|
/* f03efa8: 46024481 */ sub.s $f18,$f8,$f2
|
|
/* f03efac: 3c013f00 */ lui $at,0x3f00
|
|
/* f03efb0: c540000c */ lwc1 $f0,0xc($t2)
|
|
/* f03efb4: 4612003c */ c.lt.s $f0,$f18
|
|
/* f03efb8: 00000000 */ nop
|
|
/* f03efbc: 4502001e */ bc1fl .L0f03f038
|
|
/* f03efc0: 44819000 */ mtc1 $at,$f18
|
|
/* f03efc4: e7a20140 */ swc1 $f2,0x140($sp)
|
|
/* f03efc8: 0c004b70 */ jal random
|
|
/* f03efcc: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03efd0: 44822000 */ mtc1 $v0,$f4
|
|
/* f03efd4: c7a20140 */ lwc1 $f2,0x140($sp)
|
|
/* f03efd8: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03efdc: 04410005 */ bgez $v0,.L0f03eff4
|
|
/* f03efe0: 468022a0 */ cvt.s.w $f10,$f4
|
|
/* f03efe4: 3c014f80 */ lui $at,0x4f80
|
|
/* f03efe8: 44813000 */ mtc1 $at,$f6
|
|
/* f03efec: 00000000 */ nop
|
|
/* f03eff0: 46065280 */ add.s $f10,$f10,$f6
|
|
.L0f03eff4:
|
|
/* f03eff4: 3c012f80 */ lui $at,0x2f80
|
|
/* f03eff8: 44814000 */ mtc1 $at,$f8
|
|
/* f03effc: 3c017f1b */ lui $at,%hi(var7f1a8f80)
|
|
/* f03f000: c4248f80 */ lwc1 $f4,%lo(var7f1a8f80)($at)
|
|
/* f03f004: 46085482 */ mul.s $f18,$f10,$f8
|
|
/* f03f008: c7aa01a0 */ lwc1 $f10,0x1a0($sp)
|
|
/* f03f00c: 3c017f1b */ lui $at,%hi(var7f1a8f84)
|
|
/* f03f010: 46122182 */ mul.s $f6,$f4,$f18
|
|
/* f03f014: c4248f84 */ lwc1 $f4,%lo(var7f1a8f84)($at)
|
|
/* f03f018: 460a3202 */ mul.s $f8,$f6,$f10
|
|
/* f03f01c: c7aa0174 */ lwc1 $f10,0x174($sp)
|
|
/* f03f020: 46082480 */ add.s $f18,$f4,$f8
|
|
/* f03f024: 46121182 */ mul.s $f6,$f2,$f18
|
|
/* f03f028: 46065101 */ sub.s $f4,$f10,$f6
|
|
/* f03f02c: 10000056 */ b .L0f03f188
|
|
/* f03f030: e7a40174 */ swc1 $f4,0x174($sp)
|
|
/* f03f034: 44819000 */ mtc1 $at,$f18
|
|
.L0f03f038:
|
|
/* f03f038: c7a80158 */ lwc1 $f8,0x158($sp)
|
|
/* f03f03c: 46121282 */ mul.s $f10,$f2,$f18
|
|
/* f03f040: 460a4181 */ sub.s $f6,$f8,$f10
|
|
/* f03f044: 4600303c */ c.lt.s $f6,$f0
|
|
/* f03f048: 00000000 */ nop
|
|
/* f03f04c: 4502001e */ bc1fl .L0f03f0c8
|
|
/* f03f050: e7a20140 */ swc1 $f2,0x140($sp)
|
|
/* f03f054: e7a20140 */ swc1 $f2,0x140($sp)
|
|
/* f03f058: 0c004b70 */ jal random
|
|
/* f03f05c: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03f060: 44822000 */ mtc1 $v0,$f4
|
|
/* f03f064: c7a20140 */ lwc1 $f2,0x140($sp)
|
|
/* f03f068: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03f06c: 04410005 */ bgez $v0,.L0f03f084
|
|
/* f03f070: 468024a0 */ cvt.s.w $f18,$f4
|
|
/* f03f074: 3c014f80 */ lui $at,0x4f80
|
|
/* f03f078: 44814000 */ mtc1 $at,$f8
|
|
/* f03f07c: 00000000 */ nop
|
|
/* f03f080: 46089480 */ add.s $f18,$f18,$f8
|
|
.L0f03f084:
|
|
/* f03f084: 3c012f80 */ lui $at,0x2f80
|
|
/* f03f088: 44815000 */ mtc1 $at,$f10
|
|
/* f03f08c: 3c017f1b */ lui $at,%hi(var7f1a8f88)
|
|
/* f03f090: c4248f88 */ lwc1 $f4,%lo(var7f1a8f88)($at)
|
|
/* f03f094: 460a9182 */ mul.s $f6,$f18,$f10
|
|
/* f03f098: c7b201a0 */ lwc1 $f18,0x1a0($sp)
|
|
/* f03f09c: 3c017f1b */ lui $at,%hi(var7f1a8f8c)
|
|
/* f03f0a0: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f03f0a4: c4248f8c */ lwc1 $f4,%lo(var7f1a8f8c)($at)
|
|
/* f03f0a8: 46124282 */ mul.s $f10,$f8,$f18
|
|
/* f03f0ac: c7b20174 */ lwc1 $f18,0x174($sp)
|
|
/* f03f0b0: 460a2180 */ add.s $f6,$f4,$f10
|
|
/* f03f0b4: 46061202 */ mul.s $f8,$f2,$f6
|
|
/* f03f0b8: 46089101 */ sub.s $f4,$f18,$f8
|
|
/* f03f0bc: 10000032 */ b .L0f03f188
|
|
/* f03f0c0: e7a40174 */ swc1 $f4,0x174($sp)
|
|
/* f03f0c4: e7a20140 */ swc1 $f2,0x140($sp)
|
|
.L0f03f0c8:
|
|
/* f03f0c8: 0c004b70 */ jal random
|
|
/* f03f0cc: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03f0d0: 44825000 */ mtc1 $v0,$f10
|
|
/* f03f0d4: c7a20140 */ lwc1 $f2,0x140($sp)
|
|
/* f03f0d8: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03f0dc: 04410005 */ bgez $v0,.L0f03f0f4
|
|
/* f03f0e0: 468051a0 */ cvt.s.w $f6,$f10
|
|
/* f03f0e4: 3c014f80 */ lui $at,0x4f80
|
|
/* f03f0e8: 44819000 */ mtc1 $at,$f18
|
|
/* f03f0ec: 00000000 */ nop
|
|
/* f03f0f0: 46123180 */ add.s $f6,$f6,$f18
|
|
.L0f03f0f4:
|
|
/* f03f0f4: 3c012f80 */ lui $at,0x2f80
|
|
/* f03f0f8: 44814000 */ mtc1 $at,$f8
|
|
/* f03f0fc: 3c017f1b */ lui $at,%hi(var7f1a8f90)
|
|
/* f03f100: c42a8f90 */ lwc1 $f10,%lo(var7f1a8f90)($at)
|
|
/* f03f104: 46083102 */ mul.s $f4,$f6,$f8
|
|
/* f03f108: c7a601a0 */ lwc1 $f6,0x1a0($sp)
|
|
/* f03f10c: 3c017f1b */ lui $at,%hi(var7f1a8f94)
|
|
/* f03f110: 460a2482 */ mul.s $f18,$f4,$f10
|
|
/* f03f114: c4248f94 */ lwc1 $f4,%lo(var7f1a8f94)($at)
|
|
/* f03f118: 46069202 */ mul.s $f8,$f18,$f6
|
|
/* f03f11c: 46044281 */ sub.s $f10,$f8,$f4
|
|
/* f03f120: 46025482 */ mul.s $f18,$f10,$f2
|
|
/* f03f124: 10000018 */ b .L0f03f188
|
|
/* f03f128: e7b20174 */ swc1 $f18,0x174($sp)
|
|
/* f03f12c: 8cc40020 */ lw $a0,0x20($a2)
|
|
.L0f03f130:
|
|
/* f03f130: 0c006b43 */ jal modelGetRootPosition
|
|
/* f03f134: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03f138: 27a90144 */ addiu $t1,$sp,0x144
|
|
/* f03f13c: afa90010 */ sw $t1,0x10($sp)
|
|
/* f03f140: 8fa40190 */ lw $a0,0x190($sp)
|
|
/* f03f144: 8fa50184 */ lw $a1,0x184($sp)
|
|
/* f03f148: 8fa60180 */ lw $a2,0x180($sp)
|
|
/* f03f14c: 0fc122de */ jal func0f048b78
|
|
/* f03f150: 27a70154 */ addiu $a3,$sp,0x154
|
|
/* f03f154: c7a60154 */ lwc1 $f6,0x154($sp)
|
|
/* f03f158: c7a80134 */ lwc1 $f8,0x134($sp)
|
|
/* f03f15c: c7aa0158 */ lwc1 $f10,0x158($sp)
|
|
/* f03f160: c7b20138 */ lwc1 $f18,0x138($sp)
|
|
/* f03f164: 46083101 */ sub.s $f4,$f6,$f8
|
|
/* f03f168: c7a8015c */ lwc1 $f8,0x15c($sp)
|
|
/* f03f16c: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03f170: 46125181 */ sub.s $f6,$f10,$f18
|
|
/* f03f174: e7a40178 */ swc1 $f4,0x178($sp)
|
|
/* f03f178: c7a4013c */ lwc1 $f4,0x13c($sp)
|
|
/* f03f17c: e7a60174 */ swc1 $f6,0x174($sp)
|
|
/* f03f180: 46044281 */ sub.s $f10,$f8,$f4
|
|
/* f03f184: e7aa0170 */ swc1 $f10,0x170($sp)
|
|
.L0f03f188:
|
|
/* f03f188: 8fab0184 */ lw $t3,0x184($sp)
|
|
/* f03f18c: c7b20178 */ lwc1 $f18,0x178($sp)
|
|
/* f03f190: c7a80170 */ lwc1 $f8,0x170($sp)
|
|
/* f03f194: 316d0100 */ andi $t5,$t3,0x100
|
|
/* f03f198: 55a00015 */ bnezl $t5,.L0f03f1f0
|
|
/* f03f19c: 8fac0160 */ lw $t4,0x160($sp)
|
|
/* f03f1a0: 46129182 */ mul.s $f6,$f18,$f18
|
|
/* f03f1a4: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03f1a8: 46084102 */ mul.s $f4,$f8,$f8
|
|
/* f03f1ac: 0c012974 */ jal sqrtf
|
|
/* f03f1b0: 46043300 */ add.s $f12,$f6,$f4
|
|
/* f03f1b4: c7ac0174 */ lwc1 $f12,0x174($sp)
|
|
/* f03f1b8: 0fc259d4 */ jal atan2f
|
|
/* f03f1bc: 46000386 */ mov.s $f14,$f0
|
|
/* f03f1c0: 3c017f1b */ lui $at,%hi(var7f1a8f98)
|
|
/* f03f1c4: c42a8f98 */ lwc1 $f10,%lo(var7f1a8f98)($at)
|
|
/* f03f1c8: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03f1cc: e7a0018c */ swc1 $f0,0x18c($sp)
|
|
/* f03f1d0: 4600503e */ c.le.s $f10,$f0
|
|
/* f03f1d4: 3c017f1b */ lui $at,%hi(var7f1a8f9c)
|
|
/* f03f1d8: 45020005 */ bc1fl .L0f03f1f0
|
|
/* f03f1dc: 8fac0160 */ lw $t4,0x160($sp)
|
|
/* f03f1e0: c4328f9c */ lwc1 $f18,%lo(var7f1a8f9c)($at)
|
|
/* f03f1e4: 46120201 */ sub.s $f8,$f0,$f18
|
|
/* f03f1e8: e7a8018c */ swc1 $f8,0x18c($sp)
|
|
/* f03f1ec: 8fac0160 */ lw $t4,0x160($sp)
|
|
.L0f03f1f0:
|
|
/* f03f1f0: 51800150 */ beqzl $t4,.L0f03f734
|
|
/* f03f1f4: c7a4018c */ lwc1 $f4,0x18c($sp)
|
|
/* f03f1f8: 0fc0f97c */ jal func0f03e5f0
|
|
/* f03f1fc: 8fa40190 */ lw $a0,0x190($sp)
|
|
/* f03f200: 8fae0020 */ lw $t6,0x20($sp)
|
|
/* f03f204: e7a00130 */ swc1 $f0,0x130($sp)
|
|
/* f03f208: 8faf019c */ lw $t7,0x19c($sp)
|
|
/* f03f20c: 51c000aa */ beqzl $t6,.L0f03f4b8
|
|
/* f03f210: c7ac0178 */ lwc1 $f12,0x178($sp)
|
|
/* f03f214: 11e00006 */ beqz $t7,.L0f03f230
|
|
/* f03f218: 8fa40190 */ lw $a0,0x190($sp)
|
|
/* f03f21c: 8fa40190 */ lw $a0,0x190($sp)
|
|
/* f03f220: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f03f224: 00002825 */ or $a1,$zero,$zero
|
|
/* f03f228: 10000004 */ b .L0f03f23c
|
|
/* f03f22c: 00404025 */ or $t0,$v0,$zero
|
|
.L0f03f230:
|
|
/* f03f230: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f03f234: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03f238: 00404025 */ or $t0,$v0,$zero
|
|
.L0f03f23c:
|
|
/* f03f23c: 3c18800a */ lui $t8,%hi(g_Vars+0x6c)
|
|
/* f03f240: 8f18a02c */ lw $t8,%lo(g_Vars+0x6c)($t8)
|
|
/* f03f244: 3c19800a */ lui $t9,%hi(g_Vars+0x68)
|
|
/* f03f248: 3c0a800a */ lui $t2,%hi(g_Vars+0x64)
|
|
/* f03f24c: 13000003 */ beqz $t8,.L0f03f25c
|
|
/* f03f250: 3c09800a */ lui $t1,%hi(g_Vars+0x70)
|
|
/* f03f254: 10000002 */ b .L0f03f260
|
|
/* f03f258: 24060001 */ addiu $a2,$zero,0x1
|
|
.L0f03f25c:
|
|
/* f03f25c: 00003025 */ or $a2,$zero,$zero
|
|
.L0f03f260:
|
|
/* f03f260: 8f39a028 */ lw $t9,%lo(g_Vars+0x68)($t9)
|
|
/* f03f264: 24010001 */ addiu $at,$zero,0x1
|
|
/* f03f268: 00002025 */ or $a0,$zero,$zero
|
|
/* f03f26c: 13200003 */ beqz $t9,.L0f03f27c
|
|
/* f03f270: 00002825 */ or $a1,$zero,$zero
|
|
/* f03f274: 10000001 */ b .L0f03f27c
|
|
/* f03f278: 24040001 */ addiu $a0,$zero,0x1
|
|
.L0f03f27c:
|
|
/* f03f27c: 8d4aa024 */ lw $t2,%lo(g_Vars+0x64)($t2)
|
|
/* f03f280: 00001825 */ or $v1,$zero,$zero
|
|
/* f03f284: 11400003 */ beqz $t2,.L0f03f294
|
|
/* f03f288: 00000000 */ nop
|
|
/* f03f28c: 10000001 */ b .L0f03f294
|
|
/* f03f290: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f03f294:
|
|
/* f03f294: 8d29a030 */ lw $t1,%lo(g_Vars+0x70)($t1)
|
|
/* f03f298: 11200003 */ beqz $t1,.L0f03f2a8
|
|
/* f03f29c: 00000000 */ nop
|
|
/* f03f2a0: 10000001 */ b .L0f03f2a8
|
|
/* f03f2a4: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f03f2a8:
|
|
/* f03f2a8: 00655821 */ addu $t3,$v1,$a1
|
|
/* f03f2ac: 01646821 */ addu $t5,$t3,$a0
|
|
/* f03f2b0: 01a66021 */ addu $t4,$t5,$a2
|
|
/* f03f2b4: 55810080 */ bnel $t4,$at,.L0f03f4b8
|
|
/* f03f2b8: c7ac0178 */ lwc1 $f12,0x178($sp)
|
|
/* f03f2bc: 5040007e */ beqzl $v0,.L0f03f4b8
|
|
/* f03f2c0: c7ac0178 */ lwc1 $f12,0x178($sp)
|
|
/* f03f2c4: 904e0001 */ lbu $t6,0x1($v0)
|
|
/* f03f2c8: c7a60164 */ lwc1 $f6,0x164($sp)
|
|
/* f03f2cc: 3c017f1b */ lui $at,%hi(var7f1a8fa0)
|
|
/* f03f2d0: 31cf0080 */ andi $t7,$t6,0x80
|
|
/* f03f2d4: 51e00078 */ beqzl $t7,.L0f03f4b8
|
|
/* f03f2d8: c7ac0178 */ lwc1 $f12,0x178($sp)
|
|
/* f03f2dc: c4248fa0 */ lwc1 $f4,%lo(var7f1a8fa0)($at)
|
|
/* f03f2e0: 4604303c */ c.lt.s $f6,$f4
|
|
/* f03f2e4: 00000000 */ nop
|
|
/* f03f2e8: 45020073 */ bc1fl .L0f03f4b8
|
|
/* f03f2ec: c7ac0178 */ lwc1 $f12,0x178($sp)
|
|
/* f03f2f0: 8d020004 */ lw $v0,0x4($t0)
|
|
/* f03f2f4: 00002825 */ or $a1,$zero,$zero
|
|
/* f03f2f8: 8c470018 */ lw $a3,0x18($v0)
|
|
/* f03f2fc: afa00114 */ sw $zero,0x114($sp)
|
|
/* f03f300: 8ce40008 */ lw $a0,0x8($a3)
|
|
/* f03f304: 0c006a47 */ jal modelGetPart
|
|
/* f03f308: afa70124 */ sw $a3,0x124($sp)
|
|
/* f03f30c: 8fa70124 */ lw $a3,0x124($sp)
|
|
/* f03f310: 10400026 */ beqz $v0,.L0f03f3ac
|
|
/* f03f314: 00402825 */ or $a1,$v0,$zero
|
|
/* f03f318: 00e02025 */ or $a0,$a3,$zero
|
|
/* f03f31c: 00003025 */ or $a2,$zero,$zero
|
|
/* f03f320: 0c006973 */ jal func0001a5cc
|
|
/* f03f324: afa20110 */ sw $v0,0x110($sp)
|
|
/* f03f328: 8fa50110 */ lw $a1,0x110($sp)
|
|
/* f03f32c: afa20108 */ sw $v0,0x108($sp)
|
|
/* f03f330: 00402025 */ or $a0,$v0,$zero
|
|
/* f03f334: 8cb80004 */ lw $t8,0x4($a1)
|
|
/* f03f338: 0fc2d4e9 */ jal func0f0b53a4
|
|
/* f03f33c: afb800c4 */ sw $t8,0xc4($sp)
|
|
/* f03f340: 10400037 */ beqz $v0,.L0f03f420
|
|
/* f03f344: 8fa40108 */ lw $a0,0x108($sp)
|
|
/* f03f348: 27a500c8 */ addiu $a1,$sp,0xc8
|
|
/* f03f34c: 0c0059e6 */ jal func00016798
|
|
/* f03f350: afa200b4 */ sw $v0,0xb4($sp)
|
|
/* f03f354: 8fa400b4 */ lw $a0,0xb4($sp)
|
|
/* f03f358: 0c0056f8 */ jal func00015be0
|
|
/* f03f35c: 27a500c8 */ addiu $a1,$sp,0xc8
|
|
/* f03f360: 8fa200c4 */ lw $v0,0xc4($sp)
|
|
/* f03f364: 27a400c8 */ addiu $a0,$sp,0xc8
|
|
/* f03f368: 27a500b8 */ addiu $a1,$sp,0xb8
|
|
/* f03f36c: c44a0000 */ lwc1 $f10,0x0($v0)
|
|
/* f03f370: e7aa00b8 */ swc1 $f10,0xb8($sp)
|
|
/* f03f374: c4520004 */ lwc1 $f18,0x4($v0)
|
|
/* f03f378: e7b200bc */ swc1 $f18,0xbc($sp)
|
|
/* f03f37c: c4480008 */ lwc1 $f8,0x8($v0)
|
|
/* f03f380: 0c0056d9 */ jal func00015b64
|
|
/* f03f384: e7a800c0 */ swc1 $f8,0xc0($sp)
|
|
/* f03f388: c7a600b8 */ lwc1 $f6,0xb8($sp)
|
|
/* f03f38c: c7a400bc */ lwc1 $f4,0xbc($sp)
|
|
/* f03f390: c7aa00c0 */ lwc1 $f10,0xc0($sp)
|
|
/* f03f394: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f03f398: afb90114 */ sw $t9,0x114($sp)
|
|
/* f03f39c: e7a60118 */ swc1 $f6,0x118($sp)
|
|
/* f03f3a0: e7a4011c */ swc1 $f4,0x11c($sp)
|
|
/* f03f3a4: 1000001e */ b .L0f03f420
|
|
/* f03f3a8: e7aa0120 */ swc1 $f10,0x120($sp)
|
|
.L0f03f3ac:
|
|
/* f03f3ac: 8ce40008 */ lw $a0,0x8($a3)
|
|
/* f03f3b0: afa70124 */ sw $a3,0x124($sp)
|
|
/* f03f3b4: 0c006a47 */ jal modelGetPart
|
|
/* f03f3b8: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03f3bc: 8fa70124 */ lw $a3,0x124($sp)
|
|
/* f03f3c0: 10400017 */ beqz $v0,.L0f03f420
|
|
/* f03f3c4: 00402825 */ or $a1,$v0,$zero
|
|
/* f03f3c8: 00e02025 */ or $a0,$a3,$zero
|
|
/* f03f3cc: 0c006973 */ jal func0001a5cc
|
|
/* f03f3d0: 00003025 */ or $a2,$zero,$zero
|
|
/* f03f3d4: afa200b0 */ sw $v0,0xb0($sp)
|
|
/* f03f3d8: 0fc2d4e9 */ jal func0f0b53a4
|
|
/* f03f3dc: 00402025 */ or $a0,$v0,$zero
|
|
/* f03f3e0: 1040000f */ beqz $v0,.L0f03f420
|
|
/* f03f3e4: 8fa400b0 */ lw $a0,0xb0($sp)
|
|
/* f03f3e8: 27a50070 */ addiu $a1,$sp,0x70
|
|
/* f03f3ec: 0c0059e6 */ jal func00016798
|
|
/* f03f3f0: afa2006c */ sw $v0,0x6c($sp)
|
|
/* f03f3f4: 8fa4006c */ lw $a0,0x6c($sp)
|
|
/* f03f3f8: 0c0056f8 */ jal func00015be0
|
|
/* f03f3fc: 27a50070 */ addiu $a1,$sp,0x70
|
|
/* f03f400: c7b200a0 */ lwc1 $f18,0xa0($sp)
|
|
/* f03f404: c7a800a4 */ lwc1 $f8,0xa4($sp)
|
|
/* f03f408: c7a600a8 */ lwc1 $f6,0xa8($sp)
|
|
/* f03f40c: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f03f410: afaa0114 */ sw $t2,0x114($sp)
|
|
/* f03f414: e7b20118 */ swc1 $f18,0x118($sp)
|
|
/* f03f418: e7a8011c */ swc1 $f8,0x11c($sp)
|
|
/* f03f41c: e7a60120 */ swc1 $f6,0x120($sp)
|
|
.L0f03f420:
|
|
/* f03f420: 8fa90114 */ lw $t1,0x114($sp)
|
|
/* f03f424: 51200024 */ beqzl $t1,.L0f03f4b8
|
|
/* f03f428: c7ac0178 */ lwc1 $f12,0x178($sp)
|
|
/* f03f42c: 0c0068f7 */ jal sinf
|
|
/* f03f430: c7ac0130 */ lwc1 $f12,0x130($sp)
|
|
/* f03f434: 44802000 */ mtc1 $zero,$f4
|
|
/* f03f438: e7a00054 */ swc1 $f0,0x54($sp)
|
|
/* f03f43c: c7ac0130 */ lwc1 $f12,0x130($sp)
|
|
/* f03f440: 0c0068f4 */ jal cosf
|
|
/* f03f444: e7a40058 */ swc1 $f4,0x58($sp)
|
|
/* f03f448: 8fa2016c */ lw $v0,0x16c($sp)
|
|
/* f03f44c: e7a0005c */ swc1 $f0,0x5c($sp)
|
|
/* f03f450: c7b20170 */ lwc1 $f18,0x170($sp)
|
|
/* f03f454: c44a0008 */ lwc1 $f10,0x8($v0)
|
|
/* f03f458: 27ab0060 */ addiu $t3,$sp,0x60
|
|
/* f03f45c: 27a50048 */ addiu $a1,$sp,0x48
|
|
/* f03f460: 46125201 */ sub.s $f8,$f10,$f18
|
|
/* f03f464: c7aa0178 */ lwc1 $f10,0x178($sp)
|
|
/* f03f468: 27a60118 */ addiu $a2,$sp,0x118
|
|
/* f03f46c: 27a70054 */ addiu $a3,$sp,0x54
|
|
/* f03f470: e7a80048 */ swc1 $f8,0x48($sp)
|
|
/* f03f474: c446000c */ lwc1 $f6,0xc($v0)
|
|
/* f03f478: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f03f47c: e7a6004c */ swc1 $f6,0x4c($sp)
|
|
/* f03f480: c4440010 */ lwc1 $f4,0x10($v0)
|
|
/* f03f484: afab0010 */ sw $t3,0x10($sp)
|
|
/* f03f488: 460a2480 */ add.s $f18,$f4,$f10
|
|
/* f03f48c: 0fc0b8f7 */ jal func0f02e3dc
|
|
/* f03f490: e7b20050 */ swc1 $f18,0x50($sp)
|
|
/* f03f494: c7a80154 */ lwc1 $f8,0x154($sp)
|
|
/* f03f498: c7a60060 */ lwc1 $f6,0x60($sp)
|
|
/* f03f49c: c7aa015c */ lwc1 $f10,0x15c($sp)
|
|
/* f03f4a0: c7b20068 */ lwc1 $f18,0x68($sp)
|
|
/* f03f4a4: 46064101 */ sub.s $f4,$f8,$f6
|
|
/* f03f4a8: 46125201 */ sub.s $f8,$f10,$f18
|
|
/* f03f4ac: e7a40178 */ swc1 $f4,0x178($sp)
|
|
/* f03f4b0: e7a80170 */ swc1 $f8,0x170($sp)
|
|
/* f03f4b4: c7ac0178 */ lwc1 $f12,0x178($sp)
|
|
.L0f03f4b8:
|
|
/* f03f4b8: 0fc259d4 */ jal atan2f
|
|
/* f03f4bc: c7ae0170 */ lwc1 $f14,0x170($sp)
|
|
/* f03f4c0: c7a60130 */ lwc1 $f6,0x130($sp)
|
|
/* f03f4c4: 3c017f1b */ lui $at,%hi(var7f1a8fa4)
|
|
/* f03f4c8: 8fad0190 */ lw $t5,0x190($sp)
|
|
/* f03f4cc: 4606003c */ c.lt.s $f0,$f6
|
|
/* f03f4d0: 46060081 */ sub.s $f2,$f0,$f6
|
|
/* f03f4d4: 45000003 */ bc1f .L0f03f4e4
|
|
/* f03f4d8: 46001406 */ mov.s $f16,$f2
|
|
/* f03f4dc: c4248fa4 */ lwc1 $f4,%lo(var7f1a8fa4)($at)
|
|
/* f03f4e0: 46041400 */ add.s $f16,$f2,$f4
|
|
.L0f03f4e4:
|
|
/* f03f4e4: 8da40020 */ lw $a0,0x20($t5)
|
|
/* f03f4e8: 8c8c0008 */ lw $t4,0x8($a0)
|
|
/* f03f4ec: 8d850000 */ lw $a1,0x0($t4)
|
|
/* f03f4f0: 0c006a87 */ jal modelGetNodeData
|
|
/* f03f4f4: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03f4f8: 44801000 */ mtc1 $zero,$f2
|
|
/* f03f4fc: c440005c */ lwc1 $f0,0x5c($v0)
|
|
/* f03f500: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03f504: 8fae0190 */ lw $t6,0x190($sp)
|
|
/* f03f508: 4600103c */ c.lt.s $f2,$f0
|
|
/* f03f50c: 8fb80020 */ lw $t8,0x20($sp)
|
|
/* f03f510: 45020015 */ bc1fl .L0f03f568
|
|
/* f03f514: 8dcf02d4 */ lw $t7,0x2d4($t6)
|
|
/* f03f518: c44a0058 */ lwc1 $f10,0x58($v0)
|
|
/* f03f51c: 3c017f1b */ lui $at,%hi(var7f1a8fa8)
|
|
/* f03f520: 460a0482 */ mul.s $f18,$f0,$f10
|
|
/* f03f524: 46128401 */ sub.s $f16,$f16,$f18
|
|
/* f03f528: 4602803c */ c.lt.s $f16,$f2
|
|
/* f03f52c: 00000000 */ nop
|
|
/* f03f530: 45000003 */ bc1f .L0f03f540
|
|
/* f03f534: 00000000 */ nop
|
|
/* f03f538: c4288fa8 */ lwc1 $f8,%lo(var7f1a8fa8)($at)
|
|
/* f03f53c: 46088400 */ add.s $f16,$f16,$f8
|
|
.L0f03f540:
|
|
/* f03f540: 3c017f1b */ lui $at,%hi(var7f1a8fac)
|
|
/* f03f544: c4268fac */ lwc1 $f6,%lo(var7f1a8fac)($at)
|
|
/* f03f548: 3c017f1b */ lui $at,%hi(var7f1a8fb0)
|
|
/* f03f54c: 4610303e */ c.le.s $f6,$f16
|
|
/* f03f550: 00000000 */ nop
|
|
/* f03f554: 45020004 */ bc1fl .L0f03f568
|
|
/* f03f558: 8dcf02d4 */ lw $t7,0x2d4($t6)
|
|
/* f03f55c: c4248fb0 */ lwc1 $f4,%lo(var7f1a8fb0)($at)
|
|
/* f03f560: 46048401 */ sub.s $f16,$f16,$f4
|
|
/* f03f564: 8dcf02d4 */ lw $t7,0x2d4($t6)
|
|
.L0f03f568:
|
|
/* f03f568: 15e0003d */ bnez $t7,.L0f03f660
|
|
/* f03f56c: 00000000 */ nop
|
|
/* f03f570: 1300003b */ beqz $t8,.L0f03f660
|
|
/* f03f574: 8fb90184 */ lw $t9,0x184($sp)
|
|
/* f03f578: 332a0060 */ andi $t2,$t9,0x60
|
|
/* f03f57c: 15400038 */ bnez $t2,.L0f03f660
|
|
/* f03f580: 8fa90168 */ lw $t1,0x168($sp)
|
|
/* f03f584: 912b0000 */ lbu $t3,0x0($t1)
|
|
/* f03f588: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03f58c: 3c0d800a */ lui $t5,%hi(g_Vars+0x8)
|
|
/* f03f590: 15610033 */ bne $t3,$at,.L0f03f660
|
|
/* f03f594: 8fac0190 */ lw $t4,0x190($sp)
|
|
/* f03f598: 8dad9fc8 */ lw $t5,%lo(g_Vars+0x8)($t5)
|
|
/* f03f59c: 8d8e0020 */ lw $t6,0x20($t4)
|
|
/* f03f5a0: 858a0000 */ lh $t2,0x0($t4)
|
|
/* f03f5a4: 448d5000 */ mtc1 $t5,$f10
|
|
/* f03f5a8: 8dcf0020 */ lw $t7,0x20($t6)
|
|
/* f03f5ac: 2401003c */ addiu $at,$zero,0x3c
|
|
/* f03f5b0: 468054a0 */ cvt.s.w $f18,$f10
|
|
/* f03f5b4: c5e80074 */ lwc1 $f8,0x74($t7)
|
|
/* f03f5b8: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03f5bc: 46089182 */ mul.s $f6,$f18,$f8
|
|
/* f03f5c0: 4600310d */ trunc.w.s $f4,$f6
|
|
/* f03f5c4: 44192000 */ mfc1 $t9,$f4
|
|
/* f03f5c8: 00000000 */ nop
|
|
/* f03f5cc: 032a4821 */ addu $t1,$t9,$t2
|
|
/* f03f5d0: 0121001a */ div $zero,$t1,$at
|
|
/* f03f5d4: 00005810 */ mfhi $t3
|
|
/* f03f5d8: 448b5000 */ mtc1 $t3,$f10
|
|
/* f03f5dc: 3c017f1b */ lui $at,%hi(var7f1a8fb4)
|
|
/* f03f5e0: c4288fb4 */ lwc1 $f8,%lo(var7f1a8fb4)($at)
|
|
/* f03f5e4: 468054a0 */ cvt.s.w $f18,$f10
|
|
/* f03f5e8: 46089302 */ mul.s $f12,$f18,$f8
|
|
/* f03f5ec: 0c0068f7 */ jal sinf
|
|
/* f03f5f0: 00000000 */ nop
|
|
/* f03f5f4: e7a00028 */ swc1 $f0,0x28($sp)
|
|
/* f03f5f8: 0fc0fe84 */ jal func0f03fa10
|
|
/* f03f5fc: c7ac0164 */ lwc1 $f12,0x164($sp)
|
|
/* f03f600: 3c013f00 */ lui $at,0x3f00
|
|
/* f03f604: 44813000 */ mtc1 $at,$f6
|
|
/* f03f608: c7aa0028 */ lwc1 $f10,0x28($sp)
|
|
/* f03f60c: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03f610: 46060102 */ mul.s $f4,$f0,$f6
|
|
/* f03f614: 44804000 */ mtc1 $zero,$f8
|
|
/* f03f618: 3c017f1b */ lui $at,%hi(var7f1a8fb8)
|
|
/* f03f61c: 460a2482 */ mul.s $f18,$f4,$f10
|
|
/* f03f620: 46128400 */ add.s $f16,$f16,$f18
|
|
/* f03f624: 4608803c */ c.lt.s $f16,$f8
|
|
/* f03f628: 00000000 */ nop
|
|
/* f03f62c: 45000003 */ bc1f .L0f03f63c
|
|
/* f03f630: 00000000 */ nop
|
|
/* f03f634: c4268fb8 */ lwc1 $f6,%lo(var7f1a8fb8)($at)
|
|
/* f03f638: 46068400 */ add.s $f16,$f16,$f6
|
|
.L0f03f63c:
|
|
/* f03f63c: 3c017f1b */ lui $at,%hi(var7f1a8fbc)
|
|
/* f03f640: c4248fbc */ lwc1 $f4,%lo(var7f1a8fbc)($at)
|
|
/* f03f644: 3c017f1b */ lui $at,%hi(var7f1a8fc0)
|
|
/* f03f648: 4610203e */ c.le.s $f4,$f16
|
|
/* f03f64c: 00000000 */ nop
|
|
/* f03f650: 45000003 */ bc1f .L0f03f660
|
|
/* f03f654: 00000000 */ nop
|
|
/* f03f658: c42a8fc0 */ lwc1 $f10,%lo(var7f1a8fc0)($at)
|
|
/* f03f65c: 460a8401 */ sub.s $f16,$f16,$f10
|
|
.L0f03f660:
|
|
/* f03f660: 3c017f1b */ lui $at,%hi(var7f1a8fc4)
|
|
/* f03f664: c4328fc4 */ lwc1 $f18,%lo(var7f1a8fc4)($at)
|
|
/* f03f668: 3c017f1b */ lui $at,%hi(var7f1a8fc8)
|
|
/* f03f66c: 8fad0190 */ lw $t5,0x190($sp)
|
|
/* f03f670: 4610903e */ c.le.s $f18,$f16
|
|
/* f03f674: 00000000 */ nop
|
|
/* f03f678: 45020004 */ bc1fl .L0f03f68c
|
|
/* f03f67c: 8fa20194 */ lw $v0,0x194($sp)
|
|
/* f03f680: c4288fc8 */ lwc1 $f8,%lo(var7f1a8fc8)($at)
|
|
/* f03f684: 46088401 */ sub.s $f16,$f16,$f8
|
|
/* f03f688: 8fa20194 */ lw $v0,0x194($sp)
|
|
.L0f03f68c:
|
|
/* f03f68c: c5a6015c */ lwc1 $f6,0x15c($t5)
|
|
/* f03f690: 10400027 */ beqz $v0,.L0f03f730
|
|
/* f03f694: 46068400 */ add.s $f16,$f16,$f6
|
|
/* f03f698: 8dae0020 */ lw $t6,0x20($t5)
|
|
/* f03f69c: 8dcf0020 */ lw $t7,0x20($t6)
|
|
/* f03f6a0: 81f80008 */ lb $t8,0x8($t7)
|
|
/* f03f6a4: 53000014 */ beqzl $t8,.L0f03f6f8
|
|
/* f03f6a8: c4400038 */ lwc1 $f0,0x38($v0)
|
|
/* f03f6ac: c4400038 */ lwc1 $f0,0x38($v0)
|
|
/* f03f6b0: 46000007 */ neg.s $f0,$f0
|
|
/* f03f6b4: 4600803c */ c.lt.s $f16,$f0
|
|
/* f03f6b8: 00000000 */ nop
|
|
/* f03f6bc: 45020005 */ bc1fl .L0f03f6d4
|
|
/* f03f6c0: c440003c */ lwc1 $f0,0x3c($v0)
|
|
/* f03f6c4: 46000406 */ mov.s $f16,$f0
|
|
/* f03f6c8: 10000019 */ b .L0f03f730
|
|
/* f03f6cc: afa0017c */ sw $zero,0x17c($sp)
|
|
/* f03f6d0: c440003c */ lwc1 $f0,0x3c($v0)
|
|
.L0f03f6d4:
|
|
/* f03f6d4: 46000007 */ neg.s $f0,$f0
|
|
/* f03f6d8: 4610003c */ c.lt.s $f0,$f16
|
|
/* f03f6dc: 00000000 */ nop
|
|
/* f03f6e0: 45020014 */ bc1fl .L0f03f734
|
|
/* f03f6e4: c7a4018c */ lwc1 $f4,0x18c($sp)
|
|
/* f03f6e8: 46000406 */ mov.s $f16,$f0
|
|
/* f03f6ec: 10000010 */ b .L0f03f730
|
|
/* f03f6f0: afa0017c */ sw $zero,0x17c($sp)
|
|
/* f03f6f4: c4400038 */ lwc1 $f0,0x38($v0)
|
|
.L0f03f6f8:
|
|
/* f03f6f8: 4610003c */ c.lt.s $f0,$f16
|
|
/* f03f6fc: 00000000 */ nop
|
|
/* f03f700: 45020005 */ bc1fl .L0f03f718
|
|
/* f03f704: c440003c */ lwc1 $f0,0x3c($v0)
|
|
/* f03f708: 46000406 */ mov.s $f16,$f0
|
|
/* f03f70c: 10000008 */ b .L0f03f730
|
|
/* f03f710: afa0017c */ sw $zero,0x17c($sp)
|
|
/* f03f714: c440003c */ lwc1 $f0,0x3c($v0)
|
|
.L0f03f718:
|
|
/* f03f718: 4600803c */ c.lt.s $f16,$f0
|
|
/* f03f71c: 00000000 */ nop
|
|
/* f03f720: 45020004 */ bc1fl .L0f03f734
|
|
/* f03f724: c7a4018c */ lwc1 $f4,0x18c($sp)
|
|
/* f03f728: 46000406 */ mov.s $f16,$f0
|
|
/* f03f72c: afa0017c */ sw $zero,0x17c($sp)
|
|
.L0f03f730:
|
|
/* f03f730: c7a4018c */ lwc1 $f4,0x18c($sp)
|
|
.L0f03f734:
|
|
/* f03f734: 8fa40190 */ lw $a0,0x190($sp)
|
|
/* f03f738: 8fa50194 */ lw $a1,0x194($sp)
|
|
/* f03f73c: 8fa60198 */ lw $a2,0x198($sp)
|
|
/* f03f740: 8fa7019c */ lw $a3,0x19c($sp)
|
|
/* f03f744: e7b00188 */ swc1 $f16,0x188($sp)
|
|
/* f03f748: 0fc0fdde */ jal func0f03f778
|
|
/* f03f74c: e7a40010 */ swc1 $f4,0x10($sp)
|
|
/* f03f750: 8fac0190 */ lw $t4,0x190($sp)
|
|
/* f03f754: c7b00188 */ lwc1 $f16,0x188($sp)
|
|
/* f03f758: 2419000a */ addiu $t9,$zero,0xa
|
|
/* f03f75c: a199000e */ sb $t9,0xe($t4)
|
|
/* f03f760: e590016c */ swc1 $f16,0x16c($t4)
|
|
/* f03f764: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f03f768: 8fa2017c */ lw $v0,0x17c($sp)
|
|
/* f03f76c: 27bd0190 */ addiu $sp,$sp,0x190
|
|
/* f03f770: 03e00008 */ jr $ra
|
|
/* f03f774: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03f778
|
|
/* f03f778: 44808000 */ mtc1 $zero,$f16
|
|
/* f03f77c: c7ae0010 */ lwc1 $f14,0x10($sp)
|
|
/* f03f780: 46008006 */ mov.s $f0,$f16
|
|
/* f03f784: 46008086 */ mov.s $f2,$f16
|
|
/* f03f788: 10a0001b */ beqz $a1,.L0f03f7f8
|
|
/* f03f78c: 46007306 */ mov.s $f12,$f14
|
|
/* f03f790: c4a00030 */ lwc1 $f0,0x30($a1)
|
|
/* f03f794: 460e003c */ c.lt.s $f0,$f14
|
|
/* f03f798: 00000000 */ nop
|
|
/* f03f79c: 45020005 */ bc1fl .L0f03f7b4
|
|
/* f03f7a0: c4a00034 */ lwc1 $f0,0x34($a1)
|
|
/* f03f7a4: 46007081 */ sub.s $f2,$f14,$f0
|
|
/* f03f7a8: 10000008 */ b .L0f03f7cc
|
|
/* f03f7ac: 46000306 */ mov.s $f12,$f0
|
|
/* f03f7b0: c4a00034 */ lwc1 $f0,0x34($a1)
|
|
.L0f03f7b4:
|
|
/* f03f7b4: 4600703c */ c.lt.s $f14,$f0
|
|
/* f03f7b8: 00000000 */ nop
|
|
/* f03f7bc: 45020004 */ bc1fl .L0f03f7d0
|
|
/* f03f7c0: 460c803c */ c.lt.s $f16,$f12
|
|
/* f03f7c4: 46007081 */ sub.s $f2,$f14,$f0
|
|
/* f03f7c8: 46000306 */ mov.s $f12,$f0
|
|
.L0f03f7cc:
|
|
/* f03f7cc: 460c803c */ c.lt.s $f16,$f12
|
|
.L0f03f7d0:
|
|
/* f03f7d0: 00000000 */ nop
|
|
/* f03f7d4: 45020006 */ bc1fl .L0f03f7f0
|
|
/* f03f7d8: c4a60044 */ lwc1 $f6,0x44($a1)
|
|
/* f03f7dc: c4a40040 */ lwc1 $f4,0x40($a1)
|
|
/* f03f7e0: 460c2002 */ mul.s $f0,$f4,$f12
|
|
/* f03f7e4: 10000004 */ b .L0f03f7f8
|
|
/* f03f7e8: 00000000 */ nop
|
|
/* f03f7ec: c4a60044 */ lwc1 $f6,0x44($a1)
|
|
.L0f03f7f0:
|
|
/* f03f7f0: 460c3002 */ mul.s $f0,$f6,$f12
|
|
/* f03f7f4: 00000000 */ nop
|
|
.L0f03f7f8:
|
|
/* f03f7f8: 50e00008 */ beqzl $a3,.L0f03f81c
|
|
/* f03f7fc: e4800164 */ swc1 $f0,0x164($a0)
|
|
/* f03f800: 10c00003 */ beqz $a2,.L0f03f810
|
|
/* f03f804: e48c0164 */ swc1 $f12,0x164($a0)
|
|
/* f03f808: 10000005 */ b .L0f03f820
|
|
/* f03f80c: e48c0160 */ swc1 $f12,0x160($a0)
|
|
.L0f03f810:
|
|
/* f03f810: 10000003 */ b .L0f03f820
|
|
/* f03f814: e4800160 */ swc1 $f0,0x160($a0)
|
|
/* f03f818: e4800164 */ swc1 $f0,0x164($a0)
|
|
.L0f03f81c:
|
|
/* f03f81c: e48c0160 */ swc1 $f12,0x160($a0)
|
|
.L0f03f820:
|
|
/* f03f820: 03e00008 */ jr $ra
|
|
/* f03f824: e4820168 */ swc1 $f2,0x168($a0)
|
|
);
|
|
|
|
void chrResetAimEndProperties(struct chrdata *chr)
|
|
{
|
|
chr->aimendcount = 10;
|
|
chr->aimendrshoulder = 0;
|
|
chr->aimendlshoulder = 0;
|
|
chr->aimendback = 0;
|
|
chr->aimendsideback = 0;
|
|
}
|
|
|
|
void chrSetFiring(struct chrdata *chr, s32 hand, bool firing)
|
|
{
|
|
struct prop *prop = chrGetEquippedWeaponProp(chr, hand);
|
|
|
|
chr->prop->unk3f_02 = firing ? 1 : 0;
|
|
|
|
if (prop) {
|
|
func0f08bb5c(prop, firing, chr->prop->rooms[0]);
|
|
}
|
|
}
|
|
|
|
s32 func0f03f8b8(struct chrdata *chr, s32 hand)
|
|
{
|
|
struct prop *prop = chrGetEquippedWeaponProp(chr, hand);
|
|
|
|
if (prop) {
|
|
return func0f08bc5c(prop);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void chrStopFiring(struct chrdata *chr)
|
|
{
|
|
u8 race = CHRRACE(chr);
|
|
|
|
if (race != RACE_DRCAROLL && race != RACE_EYESPY && chr->aibot == NULL) {
|
|
chrSetFiring(chr, 0, false);
|
|
chrSetFiring(chr, 1, false);
|
|
chrResetAimEndProperties(chr);
|
|
chr->fireslot[0] = freeFireslot(chr->fireslot[0]);
|
|
chr->fireslot[1] = freeFireslot(chr->fireslot[1]);
|
|
}
|
|
}
|
|
|
|
void func0f03f988(struct chrdata *chr, s32 hand, s32 arg2)
|
|
{
|
|
if (arg2) {
|
|
if (hand == 1) {
|
|
chr->hidden |= CHRHFLAG_00000004;
|
|
} else {
|
|
chr->hidden |= CHRHFLAG_00000008;
|
|
}
|
|
} else {
|
|
if (hand == 1) {
|
|
chr->hidden &= ~CHRHFLAG_00000004;
|
|
} else {
|
|
chr->hidden &= ~CHRHFLAG_00000008;
|
|
}
|
|
}
|
|
|
|
if (arg2 == 0) {
|
|
chrSetFiring(chr, hand, false);
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03fa10
|
|
.late_rodata
|
|
glabel var7f1a8fcc
|
|
.word 0x4a1c4000
|
|
glabel var7f1a8fd0
|
|
.word 0x3c999f74
|
|
glabel var7f1a8fd4
|
|
.word 0x491c4000
|
|
glabel var7f1a8fd8
|
|
.word 0x3d1a1533
|
|
glabel var7f1a8fdc
|
|
.word 0x481c4000
|
|
glabel var7f1a8fe0
|
|
.word 0x3d992a68
|
|
glabel var7f1a8fe4
|
|
.word 0x471c4000
|
|
glabel var7f1a8fe8
|
|
.word 0x3e192a68
|
|
glabel var7f1a8fec
|
|
.word 0x3e80a8be
|
|
.text
|
|
/* f03fa10: 3c017f1b */ lui $at,%hi(var7f1a8fcc)
|
|
/* f03fa14: c4248fcc */ lwc1 $f4,%lo(var7f1a8fcc)($at)
|
|
/* f03fa18: 3c017f1b */ lui $at,%hi(var7f1a8fd0)
|
|
/* f03fa1c: 460c203c */ c.lt.s $f4,$f12
|
|
/* f03fa20: 00000000 */ nop
|
|
/* f03fa24: 45000004 */ bc1f .L0f03fa38
|
|
/* f03fa28: 00000000 */ nop
|
|
/* f03fa2c: 3c017f1b */ lui $at,%hi(var7f1a8fd4)
|
|
/* f03fa30: 03e00008 */ jr $ra
|
|
/* f03fa34: c4208fd0 */ lwc1 $f0,%lo(var7f1a8fd0)($at)
|
|
.L0f03fa38:
|
|
/* f03fa38: c4268fd4 */ lwc1 $f6,%lo(var7f1a8fd4)($at)
|
|
/* f03fa3c: 3c017f1b */ lui $at,%hi(var7f1a8fd8)
|
|
/* f03fa40: 460c303c */ c.lt.s $f6,$f12
|
|
/* f03fa44: 00000000 */ nop
|
|
/* f03fa48: 45000004 */ bc1f .L0f03fa5c
|
|
/* f03fa4c: 00000000 */ nop
|
|
/* f03fa50: 3c017f1b */ lui $at,%hi(var7f1a8fdc)
|
|
/* f03fa54: 03e00008 */ jr $ra
|
|
/* f03fa58: c4208fd8 */ lwc1 $f0,%lo(var7f1a8fd8)($at)
|
|
.L0f03fa5c:
|
|
/* f03fa5c: c4288fdc */ lwc1 $f8,%lo(var7f1a8fdc)($at)
|
|
/* f03fa60: 3c017f1b */ lui $at,%hi(var7f1a8fe0)
|
|
/* f03fa64: 460c403c */ c.lt.s $f8,$f12
|
|
/* f03fa68: 00000000 */ nop
|
|
/* f03fa6c: 45000004 */ bc1f .L0f03fa80
|
|
/* f03fa70: 00000000 */ nop
|
|
/* f03fa74: 3c017f1b */ lui $at,%hi(var7f1a8fe4)
|
|
/* f03fa78: 03e00008 */ jr $ra
|
|
/* f03fa7c: c4208fe0 */ lwc1 $f0,%lo(var7f1a8fe0)($at)
|
|
.L0f03fa80:
|
|
/* f03fa80: c42a8fe4 */ lwc1 $f10,%lo(var7f1a8fe4)($at)
|
|
/* f03fa84: 3c017f1b */ lui $at,%hi(var7f1a8fe8)
|
|
/* f03fa88: 460c503c */ c.lt.s $f10,$f12
|
|
/* f03fa8c: 00000000 */ nop
|
|
/* f03fa90: 45000004 */ bc1f .L0f03faa4
|
|
/* f03fa94: 00000000 */ nop
|
|
/* f03fa98: 3c017f1b */ lui $at,%hi(var7f1a8fec)
|
|
/* f03fa9c: 03e00008 */ jr $ra
|
|
/* f03faa0: c4208fe8 */ lwc1 $f0,%lo(var7f1a8fe8)($at)
|
|
.L0f03faa4:
|
|
/* f03faa4: c4208fec */ lwc1 $f0,%lo(var7f1a8fec)($at)
|
|
/* f03faa8: 03e00008 */ jr $ra
|
|
/* f03faac: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03fab0
|
|
.late_rodata
|
|
glabel var7f1a8ff0
|
|
.word 0x40c907a9
|
|
glabel var7f1a8ff4
|
|
.word 0x40c907a9
|
|
glabel var7f1a8ff8
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a8ffc
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9000
|
|
.word func0f03fab0+0x148 # f03fbf8
|
|
glabel var7f1a9004
|
|
.word func0f03fab0+0x148 # f03fbf8
|
|
glabel var7f1a9008
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a900c
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9010
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9014
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9018
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a901c
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9020
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9024
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9028
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a902c
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9030
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9034
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9038
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a903c
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9040
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9044
|
|
.word func0f03fab0+0x158 # f03fc08
|
|
glabel var7f1a9048
|
|
.word func0f03fab0+0x158 # f03fc08
|
|
glabel var7f1a904c
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9050
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9054
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9058
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a905c
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9060
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9064
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9068
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a906c
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9070
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9074
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9078
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a907c
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9080
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9084
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9088
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a908c
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9090
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9094
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a9098
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a909c
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a90a0
|
|
.word func0f03fab0+0x168 # f03fc18
|
|
glabel var7f1a90a4
|
|
.word 0x3e23d70a
|
|
glabel var7f1a90a8
|
|
.word 0x3dcccccd
|
|
glabel var7f1a90ac
|
|
.word 0x3c23d70a
|
|
glabel var7f1a90b0
|
|
.word 0x41200419
|
|
glabel var7f1a90b4
|
|
.word 0x3f8ccccd
|
|
.text
|
|
/* f03fab0: 27bdffa0 */ addiu $sp,$sp,-96
|
|
/* f03fab4: 3c014396 */ lui $at,0x4396
|
|
/* f03fab8: 44812000 */ mtc1 $at,$f4
|
|
/* f03fabc: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f03fac0: afa50064 */ sw $a1,0x64($sp)
|
|
/* f03fac4: afa60068 */ sw $a2,0x68($sp)
|
|
/* f03fac8: afa7006c */ sw $a3,0x6c($sp)
|
|
/* f03facc: e7a40030 */ swc1 $f4,0x30($sp)
|
|
/* f03fad0: 8c83001c */ lw $v1,0x1c($a0)
|
|
/* f03fad4: afa40060 */ sw $a0,0x60($sp)
|
|
/* f03fad8: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f03fadc: afa3005c */ sw $v1,0x5c($sp)
|
|
/* f03fae0: 8fa3005c */ lw $v1,0x5c($sp)
|
|
/* f03fae4: c4460008 */ lwc1 $f6,0x8($v0)
|
|
/* f03fae8: c44a000c */ lwc1 $f10,0xc($v0)
|
|
/* f03faec: c4680008 */ lwc1 $f8,0x8($v1)
|
|
/* f03faf0: c464000c */ lwc1 $f4,0xc($v1)
|
|
/* f03faf4: 46083301 */ sub.s $f12,$f6,$f8
|
|
/* f03faf8: 46045181 */ sub.s $f6,$f10,$f4
|
|
/* f03fafc: e7a60050 */ swc1 $f6,0x50($sp)
|
|
/* f03fb00: c4480010 */ lwc1 $f8,0x10($v0)
|
|
/* f03fb04: c46a0010 */ lwc1 $f10,0x10($v1)
|
|
/* f03fb08: e7ac0054 */ swc1 $f12,0x54($sp)
|
|
/* f03fb0c: 460a4381 */ sub.s $f14,$f8,$f10
|
|
/* f03fb10: 0fc259d4 */ jal atan2f
|
|
/* f03fb14: e7ae004c */ swc1 $f14,0x4c($sp)
|
|
/* f03fb18: e7a00048 */ swc1 $f0,0x48($sp)
|
|
/* f03fb1c: 0fc0f97c */ jal func0f03e5f0
|
|
/* f03fb20: 8fa40060 */ lw $a0,0x60($sp)
|
|
/* f03fb24: c7b00054 */ lwc1 $f16,0x54($sp)
|
|
/* f03fb28: c7b20050 */ lwc1 $f18,0x50($sp)
|
|
/* f03fb2c: c7a40048 */ lwc1 $f4,0x48($sp)
|
|
/* f03fb30: 46108182 */ mul.s $f6,$f16,$f16
|
|
/* f03fb34: c7ae004c */ lwc1 $f14,0x4c($sp)
|
|
/* f03fb38: 46002081 */ sub.s $f2,$f4,$f0
|
|
/* f03fb3c: 46129202 */ mul.s $f8,$f18,$f18
|
|
/* f03fb40: e7a20040 */ swc1 $f2,0x40($sp)
|
|
/* f03fb44: 460e7102 */ mul.s $f4,$f14,$f14
|
|
/* f03fb48: 46083280 */ add.s $f10,$f6,$f8
|
|
/* f03fb4c: 46045300 */ add.s $f12,$f10,$f4
|
|
/* f03fb50: 0fc0fe84 */ jal func0f03fa10
|
|
/* f03fb54: e7ac0018 */ swc1 $f12,0x18($sp)
|
|
/* f03fb58: c7a20040 */ lwc1 $f2,0x40($sp)
|
|
/* f03fb5c: 44803000 */ mtc1 $zero,$f6
|
|
/* f03fb60: c7ac0018 */ lwc1 $f12,0x18($sp)
|
|
/* f03fb64: 3c017f1b */ lui $at,%hi(var7f1a8ff0)
|
|
/* f03fb68: 4606103c */ c.lt.s $f2,$f6
|
|
/* f03fb6c: 8fae0064 */ lw $t6,0x64($sp)
|
|
/* f03fb70: 45020004 */ bc1fl .L0f03fb84
|
|
/* f03fb74: 4600103c */ c.lt.s $f2,$f0
|
|
/* f03fb78: c4288ff0 */ lwc1 $f8,%lo(var7f1a8ff0)($at)
|
|
/* f03fb7c: 46081080 */ add.s $f2,$f2,$f8
|
|
/* f03fb80: 4600103c */ c.lt.s $f2,$f0
|
|
.L0f03fb84:
|
|
/* f03fb84: 00001025 */ or $v0,$zero,$zero
|
|
/* f03fb88: 3c017f1b */ lui $at,%hi(var7f1a8ff4)
|
|
/* f03fb8c: 45000002 */ bc1f .L0f03fb98
|
|
/* f03fb90: 00000000 */ nop
|
|
/* f03fb94: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f03fb98:
|
|
/* f03fb98: 14400009 */ bnez $v0,.L0f03fbc0
|
|
/* f03fb9c: 00401825 */ or $v1,$v0,$zero
|
|
/* f03fba0: c42a8ff4 */ lwc1 $f10,%lo(var7f1a8ff4)($at)
|
|
/* f03fba4: 00001825 */ or $v1,$zero,$zero
|
|
/* f03fba8: 46005101 */ sub.s $f4,$f10,$f0
|
|
/* f03fbac: 4602203c */ c.lt.s $f4,$f2
|
|
/* f03fbb0: 00000000 */ nop
|
|
/* f03fbb4: 45020003 */ bc1fl .L0f03fbc4
|
|
/* f03fbb8: adc30000 */ sw $v1,0x0($t6)
|
|
/* f03fbbc: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f03fbc0:
|
|
/* f03fbc0: adc30000 */ sw $v1,0x0($t6)
|
|
.L0f03fbc4:
|
|
/* f03fbc4: 8faf0068 */ lw $t7,0x68($sp)
|
|
/* f03fbc8: ade00000 */ sw $zero,0x0($t7)
|
|
/* f03fbcc: 8fb8006c */ lw $t8,0x6c($sp)
|
|
/* f03fbd0: 93190000 */ lbu $t9,0x0($t8)
|
|
/* f03fbd4: 2728fffe */ addiu $t0,$t9,-2
|
|
/* f03fbd8: 2d01002b */ sltiu $at,$t0,0x2b
|
|
/* f03fbdc: 1020000e */ beqz $at,.L0f03fc18
|
|
/* f03fbe0: 00084080 */ sll $t0,$t0,0x2
|
|
/* f03fbe4: 3c017f1b */ lui $at,%hi(var7f1a8ff8)
|
|
/* f03fbe8: 00280821 */ addu $at,$at,$t0
|
|
/* f03fbec: 8c288ff8 */ lw $t0,%lo(var7f1a8ff8)($at)
|
|
/* f03fbf0: 01000008 */ jr $t0
|
|
/* f03fbf4: 00000000 */ nop
|
|
/* f03fbf8: 3c014416 */ lui $at,0x4416
|
|
/* f03fbfc: 44813000 */ mtc1 $at,$f6
|
|
/* f03fc00: 10000005 */ b .L0f03fc18
|
|
/* f03fc04: e7a60030 */ swc1 $f6,0x30($sp)
|
|
/* f03fc08: 3c014496 */ lui $at,0x4496
|
|
/* f03fc0c: 44814000 */ mtc1 $at,$f8
|
|
/* f03fc10: 00000000 */ nop
|
|
/* f03fc14: e7a80030 */ swc1 $f8,0x30($sp)
|
|
.L0f03fc18:
|
|
/* f03fc18: 5060006f */ beqzl $v1,.L0f03fdd8
|
|
/* f03fc1c: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f03fc20: 0c012974 */ jal sqrtf
|
|
/* f03fc24: 00000000 */ nop
|
|
/* f03fc28: c7aa0030 */ lwc1 $f10,0x30($sp)
|
|
/* f03fc2c: 3c017f1b */ lui $at,%hi(var7f1a90a4)
|
|
/* f03fc30: c42c90a4 */ lwc1 $f12,%lo(var7f1a90a4)($at)
|
|
/* f03fc34: 4600503c */ c.lt.s $f10,$f0
|
|
/* f03fc38: 8fa90060 */ lw $t1,0x60($sp)
|
|
/* f03fc3c: 46006086 */ mov.s $f2,$f12
|
|
/* f03fc40: 45020005 */ bc1fl .L0f03fc58
|
|
/* f03fc44: 81220002 */ lb $v0,0x2($t1)
|
|
/* f03fc48: 46005103 */ div.s $f4,$f10,$f0
|
|
/* f03fc4c: 46046082 */ mul.s $f2,$f12,$f4
|
|
/* f03fc50: 00000000 */ nop
|
|
/* f03fc54: 81220002 */ lb $v0,0x2($t1)
|
|
.L0f03fc58:
|
|
/* f03fc58: 1840000c */ blez $v0,.L0f03fc8c
|
|
/* f03fc5c: 00000000 */ nop
|
|
/* f03fc60: 44823000 */ mtc1 $v0,$f6
|
|
/* f03fc64: 3c017f1b */ lui $at,%hi(var7f1a90a8)
|
|
/* f03fc68: c42a90a8 */ lwc1 $f10,%lo(var7f1a90a8)($at)
|
|
/* f03fc6c: 46803220 */ cvt.s.w $f8,$f6
|
|
/* f03fc70: 3c013f80 */ lui $at,0x3f80
|
|
/* f03fc74: 44813000 */ mtc1 $at,$f6
|
|
/* f03fc78: 460a4102 */ mul.s $f4,$f8,$f10
|
|
/* f03fc7c: 46043200 */ add.s $f8,$f6,$f4
|
|
/* f03fc80: 46081082 */ mul.s $f2,$f2,$f8
|
|
/* f03fc84: 10000010 */ b .L0f03fcc8
|
|
/* f03fc88: 00000000 */ nop
|
|
.L0f03fc8c:
|
|
/* f03fc8c: 0441000e */ bgez $v0,.L0f03fcc8
|
|
/* f03fc90: 2841ff9d */ slti $at,$v0,-99
|
|
/* f03fc94: 10200004 */ beqz $at,.L0f03fca8
|
|
/* f03fc98: 244a0064 */ addiu $t2,$v0,0x64
|
|
/* f03fc9c: 44801000 */ mtc1 $zero,$f2
|
|
/* f03fca0: 10000009 */ b .L0f03fcc8
|
|
/* f03fca4: 00000000 */ nop
|
|
.L0f03fca8:
|
|
/* f03fca8: 448a5000 */ mtc1 $t2,$f10
|
|
/* f03fcac: 3c017f1b */ lui $at,%hi(var7f1a90ac)
|
|
/* f03fcb0: c42490ac */ lwc1 $f4,%lo(var7f1a90ac)($at)
|
|
/* f03fcb4: 468051a0 */ cvt.s.w $f6,$f10
|
|
/* f03fcb8: 46043202 */ mul.s $f8,$f6,$f4
|
|
/* f03fcbc: 00000000 */ nop
|
|
/* f03fcc0: 46081082 */ mul.s $f2,$f2,$f8
|
|
/* f03fcc4: 00000000 */ nop
|
|
.L0f03fcc8:
|
|
/* f03fcc8: 0fc06c45 */ jal pdmodeGetAccuracy
|
|
/* f03fccc: e7a20024 */ swc1 $f2,0x24($sp)
|
|
/* f03fcd0: 3c013f80 */ lui $at,0x3f80
|
|
/* f03fcd4: 44815000 */ mtc1 $at,$f10
|
|
/* f03fcd8: c7a20024 */ lwc1 $f2,0x24($sp)
|
|
/* f03fcdc: 460a003e */ c.le.s $f0,$f10
|
|
/* f03fce0: 00000000 */ nop
|
|
/* f03fce4: 45000007 */ bc1f .L0f03fd04
|
|
/* f03fce8: 00000000 */ nop
|
|
/* f03fcec: 0fc06c45 */ jal pdmodeGetAccuracy
|
|
/* f03fcf0: e7a20024 */ swc1 $f2,0x24($sp)
|
|
/* f03fcf4: c7a20024 */ lwc1 $f2,0x24($sp)
|
|
/* f03fcf8: 46001082 */ mul.s $f2,$f2,$f0
|
|
/* f03fcfc: 1000000c */ b .L0f03fd30
|
|
/* f03fd00: 00000000 */ nop
|
|
.L0f03fd04:
|
|
/* f03fd04: 0fc06c45 */ jal pdmodeGetAccuracy
|
|
/* f03fd08: e7a20024 */ swc1 $f2,0x24($sp)
|
|
/* f03fd0c: 3c014110 */ lui $at,0x4110
|
|
/* f03fd10: 44813000 */ mtc1 $at,$f6
|
|
/* f03fd14: 3c017f1b */ lui $at,%hi(var7f1a90b0)
|
|
/* f03fd18: c42490b0 */ lwc1 $f4,%lo(var7f1a90b0)($at)
|
|
/* f03fd1c: c7a20024 */ lwc1 $f2,0x24($sp)
|
|
/* f03fd20: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f03fd24: 46083283 */ div.s $f10,$f6,$f8
|
|
/* f03fd28: 460a1082 */ mul.s $f2,$f2,$f10
|
|
/* f03fd2c: 00000000 */ nop
|
|
.L0f03fd30:
|
|
/* f03fd30: 3c018006 */ lui $at,%hi(var80062ca0)
|
|
/* f03fd34: c4242ca0 */ lwc1 $f4,%lo(var80062ca0)($at)
|
|
/* f03fd38: 8fa2006c */ lw $v0,0x6c($sp)
|
|
/* f03fd3c: 46041082 */ mul.s $f2,$f2,$f4
|
|
/* f03fd40: 90440000 */ lbu $a0,0x0($v0)
|
|
/* f03fd44: 90450003 */ lbu $a1,0x3($v0)
|
|
/* f03fd48: 0fc2c7ba */ jal weaponGetMaxFireRatePerTick
|
|
/* f03fd4c: e7a20024 */ swc1 $f2,0x24($sp)
|
|
/* f03fd50: 1c400002 */ bgtz $v0,.L0f03fd5c
|
|
/* f03fd54: c7a20024 */ lwc1 $f2,0x24($sp)
|
|
/* f03fd58: 46021080 */ add.s $f2,$f2,$f2
|
|
.L0f03fd5c:
|
|
/* f03fd5c: 8fab006c */ lw $t3,0x6c($sp)
|
|
/* f03fd60: 24010013 */ addiu $at,$zero,0x13
|
|
/* f03fd64: 8fa20060 */ lw $v0,0x60($sp)
|
|
/* f03fd68: 916c0000 */ lbu $t4,0x0($t3)
|
|
/* f03fd6c: 55810003 */ bnel $t4,$at,.L0f03fd7c
|
|
/* f03fd70: c446014c */ lwc1 $f6,0x14c($v0)
|
|
/* f03fd74: 46021080 */ add.s $f2,$f2,$f2
|
|
/* f03fd78: c446014c */ lwc1 $f6,0x14c($v0)
|
|
.L0f03fd7c:
|
|
/* f03fd7c: 8c4d0014 */ lw $t5,0x14($v0)
|
|
/* f03fd80: 3c017f1b */ lui $at,%hi(var7f1a90b4)
|
|
/* f03fd84: 46023200 */ add.s $f8,$f6,$f2
|
|
/* f03fd88: 31ae8000 */ andi $t6,$t5,0x8000
|
|
/* f03fd8c: 11c00005 */ beqz $t6,.L0f03fda4
|
|
/* f03fd90: e448014c */ swc1 $f8,0x14c($v0)
|
|
/* f03fd94: c44a014c */ lwc1 $f10,0x14c($v0)
|
|
/* f03fd98: c42490b4 */ lwc1 $f4,%lo(var7f1a90b4)($at)
|
|
/* f03fd9c: 46045180 */ add.s $f6,$f10,$f4
|
|
/* f03fda0: e446014c */ swc1 $f6,0x14c($v0)
|
|
.L0f03fda4:
|
|
/* f03fda4: 3c013f80 */ lui $at,0x3f80
|
|
/* f03fda8: 44815000 */ mtc1 $at,$f10
|
|
/* f03fdac: c448014c */ lwc1 $f8,0x14c($v0)
|
|
/* f03fdb0: 8fb80068 */ lw $t8,0x68($sp)
|
|
/* f03fdb4: 4608503e */ c.le.s $f10,$f8
|
|
/* f03fdb8: 00000000 */ nop
|
|
/* f03fdbc: 45020006 */ bc1fl .L0f03fdd8
|
|
/* f03fdc0: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f03fdc4: 44802000 */ mtc1 $zero,$f4
|
|
/* f03fdc8: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f03fdcc: af0f0000 */ sw $t7,0x0($t8)
|
|
/* f03fdd0: e444014c */ swc1 $f4,0x14c($v0)
|
|
/* f03fdd4: 8fbf0014 */ lw $ra,0x14($sp)
|
|
.L0f03fdd8:
|
|
/* f03fdd8: 27bd0060 */ addiu $sp,$sp,0x60
|
|
/* f03fddc: 03e00008 */ jr $ra
|
|
/* f03fde0: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03fde4
|
|
/* f03fde4: 27bdff38 */ addiu $sp,$sp,-200
|
|
/* f03fde8: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f03fdec: afb00018 */ sw $s0,0x18($sp)
|
|
/* f03fdf0: 00c08025 */ or $s0,$a2,$zero
|
|
/* f03fdf4: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f03fdf8: afa400c8 */ sw $a0,0xc8($sp)
|
|
/* f03fdfc: 10400046 */ beqz $v0,.L0f03ff18
|
|
/* f03fe00: 00003025 */ or $a2,$zero,$zero
|
|
/* f03fe04: 8fae00c8 */ lw $t6,0xc8($sp)
|
|
/* f03fe08: 8c430004 */ lw $v1,0x4($v0)
|
|
/* f03fe0c: 8dcf001c */ lw $t7,0x1c($t6)
|
|
/* f03fe10: 8c670018 */ lw $a3,0x18($v1)
|
|
/* f03fe14: 91f80001 */ lbu $t8,0x1($t7)
|
|
/* f03fe18: 33190002 */ andi $t9,$t8,0x2
|
|
/* f03fe1c: 5320003f */ beqzl $t9,.L0f03ff1c
|
|
/* f03fe20: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f03fe24: 90480001 */ lbu $t0,0x1($v0)
|
|
/* f03fe28: 00002825 */ or $a1,$zero,$zero
|
|
/* f03fe2c: 31090002 */ andi $t1,$t0,0x2
|
|
/* f03fe30: 5120003a */ beqzl $t1,.L0f03ff1c
|
|
/* f03fe34: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f03fe38: 8ce40008 */ lw $a0,0x8($a3)
|
|
/* f03fe3c: afa700bc */ sw $a3,0xbc($sp)
|
|
/* f03fe40: 0c006a47 */ jal modelGetPart
|
|
/* f03fe44: afa000b8 */ sw $zero,0xb8($sp)
|
|
/* f03fe48: 8fa600b8 */ lw $a2,0xb8($sp)
|
|
/* f03fe4c: 8fa700bc */ lw $a3,0xbc($sp)
|
|
/* f03fe50: 10400018 */ beqz $v0,.L0f03feb4
|
|
/* f03fe54: 00402825 */ or $a1,$v0,$zero
|
|
/* f03fe58: 00e02025 */ or $a0,$a3,$zero
|
|
/* f03fe5c: 00003025 */ or $a2,$zero,$zero
|
|
/* f03fe60: 0c006973 */ jal func0001a5cc
|
|
/* f03fe64: afa200b4 */ sw $v0,0xb4($sp)
|
|
/* f03fe68: 8fa500b4 */ lw $a1,0xb4($sp)
|
|
/* f03fe6c: afa200ac */ sw $v0,0xac($sp)
|
|
/* f03fe70: 8ca30004 */ lw $v1,0x4($a1)
|
|
/* f03fe74: c4640000 */ lwc1 $f4,0x0($v1)
|
|
/* f03fe78: e6040000 */ swc1 $f4,0x0($s0)
|
|
/* f03fe7c: c4660004 */ lwc1 $f6,0x4($v1)
|
|
/* f03fe80: e6060004 */ swc1 $f6,0x4($s0)
|
|
/* f03fe84: c4680008 */ lwc1 $f8,0x8($v1)
|
|
/* f03fe88: 0fc2d5de */ jal currentPlayerGetUnk174c
|
|
/* f03fe8c: e6080008 */ swc1 $f8,0x8($s0)
|
|
/* f03fe90: 00402025 */ or $a0,$v0,$zero
|
|
/* f03fe94: 8fa500ac */ lw $a1,0xac($sp)
|
|
/* f03fe98: 0c0056f9 */ jal func00015be4
|
|
/* f03fe9c: 27a6006c */ addiu $a2,$sp,0x6c
|
|
/* f03fea0: 27a4006c */ addiu $a0,$sp,0x6c
|
|
/* f03fea4: 0c0056d9 */ jal func00015b64
|
|
/* f03fea8: 02002825 */ or $a1,$s0,$zero
|
|
/* f03feac: 1000001a */ b .L0f03ff18
|
|
/* f03feb0: 24060001 */ addiu $a2,$zero,0x1
|
|
.L0f03feb4:
|
|
/* f03feb4: 8ce40008 */ lw $a0,0x8($a3)
|
|
/* f03feb8: afa700bc */ sw $a3,0xbc($sp)
|
|
/* f03febc: afa600b8 */ sw $a2,0xb8($sp)
|
|
/* f03fec0: 0c006a47 */ jal modelGetPart
|
|
/* f03fec4: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f03fec8: 8fa600b8 */ lw $a2,0xb8($sp)
|
|
/* f03fecc: 8fa700bc */ lw $a3,0xbc($sp)
|
|
/* f03fed0: 10400011 */ beqz $v0,.L0f03ff18
|
|
/* f03fed4: 00402825 */ or $a1,$v0,$zero
|
|
/* f03fed8: 00e02025 */ or $a0,$a3,$zero
|
|
/* f03fedc: 0c006973 */ jal func0001a5cc
|
|
/* f03fee0: 00003025 */ or $a2,$zero,$zero
|
|
/* f03fee4: 0fc2d5de */ jal currentPlayerGetUnk174c
|
|
/* f03fee8: afa20064 */ sw $v0,0x64($sp)
|
|
/* f03feec: 00402025 */ or $a0,$v0,$zero
|
|
/* f03fef0: 8fa50064 */ lw $a1,0x64($sp)
|
|
/* f03fef4: 0c0056f9 */ jal func00015be4
|
|
/* f03fef8: 27a60024 */ addiu $a2,$sp,0x24
|
|
/* f03fefc: c7aa0054 */ lwc1 $f10,0x54($sp)
|
|
/* f03ff00: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f03ff04: e60a0000 */ swc1 $f10,0x0($s0)
|
|
/* f03ff08: c7b00058 */ lwc1 $f16,0x58($sp)
|
|
/* f03ff0c: e6100004 */ swc1 $f16,0x4($s0)
|
|
/* f03ff10: c7b2005c */ lwc1 $f18,0x5c($sp)
|
|
/* f03ff14: e6120008 */ swc1 $f18,0x8($s0)
|
|
.L0f03ff18:
|
|
/* f03ff18: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f03ff1c:
|
|
/* f03ff1c: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f03ff20: 27bd00c8 */ addiu $sp,$sp,0xc8
|
|
/* f03ff24: 03e00008 */ jr $ra
|
|
/* f03ff28: 00c01025 */ or $v0,$a2,$zero
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f03ff2c
|
|
.late_rodata
|
|
glabel var7f1a90b8
|
|
.word 0x7f7fffff
|
|
.text
|
|
/* f03ff2c: 27bdfec0 */ addiu $sp,$sp,-320
|
|
/* f03ff30: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f03ff34: afb40030 */ sw $s4,0x30($sp)
|
|
/* f03ff38: afb3002c */ sw $s3,0x2c($sp)
|
|
/* f03ff3c: afb20028 */ sw $s2,0x28($sp)
|
|
/* f03ff40: afb10024 */ sw $s1,0x24($sp)
|
|
/* f03ff44: afb00020 */ sw $s0,0x20($sp)
|
|
/* f03ff48: f7b40018 */ sdc1 $f20,0x18($sp)
|
|
/* f03ff4c: afa7014c */ sw $a3,0x14c($sp)
|
|
/* f03ff50: 8c90001c */ lw $s0,0x1c($a0)
|
|
/* f03ff54: afa00134 */ sw $zero,0x134($sp)
|
|
/* f03ff58: 24010006 */ addiu $at,$zero,0x6
|
|
/* f03ff5c: 920e0000 */ lbu $t6,0x0($s0)
|
|
/* f03ff60: 00a09025 */ or $s2,$a1,$zero
|
|
/* f03ff64: 00c09825 */ or $s3,$a2,$zero
|
|
/* f03ff68: 15c1000d */ bne $t6,$at,.L0f03ffa0
|
|
/* f03ff6c: 0080a025 */ or $s4,$a0,$zero
|
|
/* f03ff70: 3c0f800a */ lui $t7,%hi(g_Vars+0x318)
|
|
/* f03ff74: 8defa2d8 */ lw $t7,%lo(g_Vars+0x318)($t7)
|
|
/* f03ff78: 55e0000a */ bnezl $t7,.L0f03ffa4
|
|
/* f03ff7c: 92180001 */ lbu $t8,0x1($s0)
|
|
/* f03ff80: 0fc0cfe8 */ jal chrGetShield
|
|
/* f03ff84: 00000000 */ nop
|
|
/* f03ff88: 44802000 */ mtc1 $zero,$f4
|
|
/* f03ff8c: 00000000 */ nop
|
|
/* f03ff90: 4600203c */ c.lt.s $f4,$f0
|
|
/* f03ff94: 00000000 */ nop
|
|
/* f03ff98: 450200d8 */ bc1fl .L0f0402fc
|
|
/* f03ff9c: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.L0f03ffa0:
|
|
/* f03ffa0: 92180001 */ lbu $t8,0x1($s0)
|
|
.L0f03ffa4:
|
|
/* f03ffa4: 3c017f1b */ lui $at,%hi(var7f1a90b8)
|
|
/* f03ffa8: 331900c2 */ andi $t9,$t8,0xc2
|
|
/* f03ffac: 532000a6 */ beqzl $t9,.L0f040248
|
|
/* f03ffb0: 8faf0134 */ lw $t7,0x134($sp)
|
|
/* f03ffb4: afa00110 */ sw $zero,0x110($sp)
|
|
/* f03ffb8: 8e880020 */ lw $t0,0x20($s4)
|
|
/* f03ffbc: c43490b8 */ lwc1 $f20,%lo(var7f1a90b8)($at)
|
|
/* f03ffc0: 0fc2d414 */ jal func0f0b5050
|
|
/* f03ffc4: 8d04000c */ lw $a0,0xc($t0)
|
|
/* f03ffc8: 1040009e */ beqz $v0,.L0f040244
|
|
/* f03ffcc: 00408825 */ or $s1,$v0,$zero
|
|
/* f03ffd0: 00402025 */ or $a0,$v0,$zero
|
|
/* f03ffd4: 02402825 */ or $a1,$s2,$zero
|
|
/* f03ffd8: 0c0056da */ jal func00015b68
|
|
/* f03ffdc: 27a60124 */ addiu $a2,$sp,0x124
|
|
/* f03ffe0: 02202025 */ or $a0,$s1,$zero
|
|
/* f03ffe4: 02602825 */ or $a1,$s3,$zero
|
|
/* f03ffe8: 0c0056c5 */ jal func00015b14
|
|
/* f03ffec: 27a60118 */ addiu $a2,$sp,0x118
|
|
/* f03fff0: 0fc2d5be */ jal currentPlayerGetMatrix1740
|
|
/* f03fff4: 00000000 */ nop
|
|
/* f03fff8: 00514826 */ xor $t1,$v0,$s1
|
|
/* f03fffc: 0009482b */ sltu $t1,$zero,$t1
|
|
/* f040000: afa90130 */ sw $t1,0x130($sp)
|
|
/* f040004: 8e8a0020 */ lw $t2,0x20($s4)
|
|
/* f040008: 2413000a */ addiu $s3,$zero,0xa
|
|
/* f04000c: 27b200c8 */ addiu $s2,$sp,0xc8
|
|
/* f040010: 8d4b0008 */ lw $t3,0x8($t2)
|
|
/* f040014: 8d700000 */ lw $s0,0x0($t3)
|
|
/* f040018: 5200003c */ beqzl $s0,.L0f04010c
|
|
/* f04001c: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f040020: 960c0000 */ lhu $t4,0x0($s0)
|
|
.L0f040024:
|
|
/* f040024: 02002825 */ or $a1,$s0,$zero
|
|
/* f040028: 00003025 */ or $a2,$zero,$zero
|
|
/* f04002c: 318d00ff */ andi $t5,$t4,0xff
|
|
/* f040030: 566d0020 */ bnel $s3,$t5,.L0f0400b4
|
|
/* f040034: 8e020014 */ lw $v0,0x14($s0)
|
|
/* f040038: 0c006973 */ jal func0001a5cc
|
|
/* f04003c: 8e840020 */ lw $a0,0x20($s4)
|
|
/* f040040: 8fae0130 */ lw $t6,0x130($sp)
|
|
/* f040044: 00408825 */ or $s1,$v0,$zero
|
|
/* f040048: 00402025 */ or $a0,$v0,$zero
|
|
/* f04004c: 51c00005 */ beqzl $t6,.L0f040064
|
|
/* f040050: c6260030 */ lwc1 $f6,0x30($s1)
|
|
/* f040054: 0c0059e6 */ jal func00016798
|
|
/* f040058: 02402825 */ or $a1,$s2,$zero
|
|
/* f04005c: 02408825 */ or $s1,$s2,$zero
|
|
/* f040060: c6260030 */ lwc1 $f6,0x30($s1)
|
|
.L0f040064:
|
|
/* f040064: c7a80124 */ lwc1 $f8,0x124($sp)
|
|
/* f040068: c62a0034 */ lwc1 $f10,0x34($s1)
|
|
/* f04006c: c7b00128 */ lwc1 $f16,0x128($sp)
|
|
/* f040070: 46083001 */ sub.s $f0,$f6,$f8
|
|
/* f040074: c6320038 */ lwc1 $f18,0x38($s1)
|
|
/* f040078: c7a4012c */ lwc1 $f4,0x12c($sp)
|
|
/* f04007c: 46105081 */ sub.s $f2,$f10,$f16
|
|
/* f040080: 46000182 */ mul.s $f6,$f0,$f0
|
|
/* f040084: 46049301 */ sub.s $f12,$f18,$f4
|
|
/* f040088: 46021202 */ mul.s $f8,$f2,$f2
|
|
/* f04008c: 46083280 */ add.s $f10,$f6,$f8
|
|
/* f040090: 460c6402 */ mul.s $f16,$f12,$f12
|
|
/* f040094: 46105380 */ add.s $f14,$f10,$f16
|
|
/* f040098: 4614703c */ c.lt.s $f14,$f20
|
|
/* f04009c: 00000000 */ nop
|
|
/* f0400a0: 45020004 */ bc1fl .L0f0400b4
|
|
/* f0400a4: 8e020014 */ lw $v0,0x14($s0)
|
|
/* f0400a8: 46007506 */ mov.s $f20,$f14
|
|
/* f0400ac: afb00110 */ sw $s0,0x110($sp)
|
|
/* f0400b0: 8e020014 */ lw $v0,0x14($s0)
|
|
.L0f0400b4:
|
|
/* f0400b4: 10400008 */ beqz $v0,.L0f0400d8
|
|
/* f0400b8: 00000000 */ nop
|
|
/* f0400bc: 960f0000 */ lhu $t7,0x0($s0)
|
|
/* f0400c0: 24010017 */ addiu $at,$zero,0x17
|
|
/* f0400c4: 31f800ff */ andi $t8,$t7,0xff
|
|
/* f0400c8: 13010003 */ beq $t8,$at,.L0f0400d8
|
|
/* f0400cc: 00000000 */ nop
|
|
/* f0400d0: 1000000b */ b .L0f040100
|
|
/* f0400d4: 00408025 */ or $s0,$v0,$zero
|
|
.L0f0400d8:
|
|
/* f0400d8: 12000009 */ beqz $s0,.L0f040100
|
|
/* f0400dc: 00000000 */ nop
|
|
/* f0400e0: 8e02000c */ lw $v0,0xc($s0)
|
|
.L0f0400e4:
|
|
/* f0400e4: 50400004 */ beqzl $v0,.L0f0400f8
|
|
/* f0400e8: 8e100008 */ lw $s0,0x8($s0)
|
|
/* f0400ec: 10000004 */ b .L0f040100
|
|
/* f0400f0: 00408025 */ or $s0,$v0,$zero
|
|
/* f0400f4: 8e100008 */ lw $s0,0x8($s0)
|
|
.L0f0400f8:
|
|
/* f0400f8: 5600fffa */ bnezl $s0,.L0f0400e4
|
|
/* f0400fc: 8e02000c */ lw $v0,0xc($s0)
|
|
.L0f040100:
|
|
/* f040100: 5600ffc8 */ bnezl $s0,.L0f040024
|
|
/* f040104: 960c0000 */ lhu $t4,0x0($s0)
|
|
/* f040108: 8fb90110 */ lw $t9,0x110($sp)
|
|
.L0f04010c:
|
|
/* f04010c: 5320004e */ beqzl $t9,.L0f040248
|
|
/* f040110: 8faf0134 */ lw $t7,0x134($sp)
|
|
/* f040114: 8f220004 */ lw $v0,0x4($t9)
|
|
/* f040118: 8fa90150 */ lw $t1,0x150($sp)
|
|
/* f04011c: 8fb10158 */ lw $s1,0x158($sp)
|
|
/* f040120: 8c480000 */ lw $t0,0x0($v0)
|
|
/* f040124: 00003025 */ or $a2,$zero,$zero
|
|
/* f040128: ad280000 */ sw $t0,0x0($t1)
|
|
/* f04012c: 8faa014c */ lw $t2,0x14c($sp)
|
|
/* f040130: ad590000 */ sw $t9,0x0($t2)
|
|
/* f040134: 8e8b0020 */ lw $t3,0x20($s4)
|
|
/* f040138: 8fac0154 */ lw $t4,0x154($sp)
|
|
/* f04013c: ad8b0000 */ sw $t3,0x0($t4)
|
|
/* f040140: ae200000 */ sw $zero,0x0($s1)
|
|
/* f040144: 8fa50110 */ lw $a1,0x110($sp)
|
|
/* f040148: 0c006973 */ jal func0001a5cc
|
|
/* f04014c: 8e840020 */ lw $a0,0x20($s4)
|
|
/* f040150: 8fad0130 */ lw $t5,0x130($sp)
|
|
/* f040154: 00408025 */ or $s0,$v0,$zero
|
|
/* f040158: 27b20048 */ addiu $s2,$sp,0x48
|
|
/* f04015c: 11a00004 */ beqz $t5,.L0f040170
|
|
/* f040160: 00402025 */ or $a0,$v0,$zero
|
|
/* f040164: 0c0059e6 */ jal func00016798
|
|
/* f040168: 02402825 */ or $a1,$s2,$zero
|
|
/* f04016c: 02408025 */ or $s0,$s2,$zero
|
|
.L0f040170:
|
|
/* f040170: c7b20118 */ lwc1 $f18,0x118($sp)
|
|
/* f040174: c6040000 */ lwc1 $f4,0x0($s0)
|
|
/* f040178: c7a8011c */ lwc1 $f8,0x11c($sp)
|
|
/* f04017c: c60a0004 */ lwc1 $f10,0x4($s0)
|
|
/* f040180: 46049182 */ mul.s $f6,$f18,$f4
|
|
/* f040184: 3c01c000 */ lui $at,0xc000
|
|
/* f040188: 4481a000 */ mtc1 $at,$f20
|
|
/* f04018c: 460a4402 */ mul.s $f16,$f8,$f10
|
|
/* f040190: c60a0008 */ lwc1 $f10,0x8($s0)
|
|
/* f040194: 00001025 */ or $v0,$zero,$zero
|
|
/* f040198: 27a3008c */ addiu $v1,$sp,0x8c
|
|
/* f04019c: 24040006 */ addiu $a0,$zero,0x6
|
|
/* f0401a0: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0401a4: 46103100 */ add.s $f4,$f6,$f16
|
|
/* f0401a8: c7a60120 */ lwc1 $f6,0x120($sp)
|
|
/* f0401ac: 46065402 */ mul.s $f16,$f10,$f6
|
|
/* f0401b0: c60a0010 */ lwc1 $f10,0x10($s0)
|
|
/* f0401b4: 46048000 */ add.s $f0,$f16,$f4
|
|
/* f0401b8: 460a9402 */ mul.s $f16,$f18,$f10
|
|
/* f0401bc: c6040014 */ lwc1 $f4,0x14($s0)
|
|
/* f0401c0: 46044282 */ mul.s $f10,$f8,$f4
|
|
/* f0401c4: 460a8100 */ add.s $f4,$f16,$f10
|
|
/* f0401c8: c6100018 */ lwc1 $f16,0x18($s0)
|
|
/* f0401cc: 46068282 */ mul.s $f10,$f16,$f6
|
|
/* f0401d0: c6100020 */ lwc1 $f16,0x20($s0)
|
|
/* f0401d4: 46045080 */ add.s $f2,$f10,$f4
|
|
/* f0401d8: 46109282 */ mul.s $f10,$f18,$f16
|
|
/* f0401dc: c6040024 */ lwc1 $f4,0x24($s0)
|
|
/* f0401e0: 46044482 */ mul.s $f18,$f8,$f4
|
|
/* f0401e4: c6080028 */ lwc1 $f8,0x28($s0)
|
|
/* f0401e8: e7a0008c */ swc1 $f0,0x8c($sp)
|
|
/* f0401ec: e7a20094 */ swc1 $f2,0x94($sp)
|
|
/* f0401f0: 46064102 */ mul.s $f4,$f8,$f6
|
|
/* f0401f4: 46125400 */ add.s $f16,$f10,$f18
|
|
/* f0401f8: 46000287 */ neg.s $f10,$f0
|
|
/* f0401fc: 46102300 */ add.s $f12,$f4,$f16
|
|
/* f040200: e7aa0090 */ swc1 $f10,0x90($sp)
|
|
/* f040204: 46001487 */ neg.s $f18,$f2
|
|
/* f040208: 46006207 */ neg.s $f8,$f12
|
|
/* f04020c: e7b20098 */ swc1 $f18,0x98($sp)
|
|
/* f040210: e7ac009c */ swc1 $f12,0x9c($sp)
|
|
/* f040214: e7a800a0 */ swc1 $f8,0xa0($sp)
|
|
.L0f040218:
|
|
/* f040218: c4600000 */ lwc1 $f0,0x0($v1)
|
|
/* f04021c: 4600a03c */ c.lt.s $f20,$f0
|
|
/* f040220: 00000000 */ nop
|
|
/* f040224: 45020004 */ bc1fl .L0f040238
|
|
/* f040228: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f04022c: 46000506 */ mov.s $f20,$f0
|
|
/* f040230: ae220000 */ sw $v0,0x0($s1)
|
|
/* f040234: 24420001 */ addiu $v0,$v0,0x1
|
|
.L0f040238:
|
|
/* f040238: 1444fff7 */ bne $v0,$a0,.L0f040218
|
|
/* f04023c: 24630004 */ addiu $v1,$v1,0x4
|
|
/* f040240: afae0134 */ sw $t6,0x134($sp)
|
|
.L0f040244:
|
|
/* f040244: 8faf0134 */ lw $t7,0x134($sp)
|
|
.L0f040248:
|
|
/* f040248: 8fb10158 */ lw $s1,0x158($sp)
|
|
/* f04024c: 2413000a */ addiu $s3,$zero,0xa
|
|
/* f040250: 55e0002a */ bnezl $t7,.L0f0402fc
|
|
/* f040254: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f040258: 8e980020 */ lw $t8,0x20($s4)
|
|
/* f04025c: 2404000f */ addiu $a0,$zero,0xf
|
|
/* f040260: 8f080008 */ lw $t0,0x8($t8)
|
|
/* f040264: 8d100000 */ lw $s0,0x0($t0)
|
|
/* f040268: 52000024 */ beqzl $s0,.L0f0402fc
|
|
/* f04026c: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f040270: 96090000 */ lhu $t1,0x0($s0)
|
|
.L0f040274:
|
|
/* f040274: 313900ff */ andi $t9,$t1,0xff
|
|
/* f040278: 5679000f */ bnel $s3,$t9,.L0f0402b8
|
|
/* f04027c: 8e020014 */ lw $v0,0x14($s0)
|
|
/* f040280: 8e020004 */ lw $v0,0x4($s0)
|
|
/* f040284: 8c430000 */ lw $v1,0x0($v0)
|
|
/* f040288: 5483000b */ bnel $a0,$v1,.L0f0402b8
|
|
/* f04028c: 8e020014 */ lw $v0,0x14($s0)
|
|
/* f040290: 8faa0150 */ lw $t2,0x150($sp)
|
|
/* f040294: ad430000 */ sw $v1,0x0($t2)
|
|
/* f040298: 8fab014c */ lw $t3,0x14c($sp)
|
|
/* f04029c: ad700000 */ sw $s0,0x0($t3)
|
|
/* f0402a0: 8fad0154 */ lw $t5,0x154($sp)
|
|
/* f0402a4: 8e8c0020 */ lw $t4,0x20($s4)
|
|
/* f0402a8: adac0000 */ sw $t4,0x0($t5)
|
|
/* f0402ac: 10000012 */ b .L0f0402f8
|
|
/* f0402b0: ae200000 */ sw $zero,0x0($s1)
|
|
/* f0402b4: 8e020014 */ lw $v0,0x14($s0)
|
|
.L0f0402b8:
|
|
/* f0402b8: 10400003 */ beqz $v0,.L0f0402c8
|
|
/* f0402bc: 00000000 */ nop
|
|
/* f0402c0: 1000000b */ b .L0f0402f0
|
|
/* f0402c4: 00408025 */ or $s0,$v0,$zero
|
|
.L0f0402c8:
|
|
/* f0402c8: 12000009 */ beqz $s0,.L0f0402f0
|
|
/* f0402cc: 00000000 */ nop
|
|
/* f0402d0: 8e02000c */ lw $v0,0xc($s0)
|
|
.L0f0402d4:
|
|
/* f0402d4: 50400004 */ beqzl $v0,.L0f0402e8
|
|
/* f0402d8: 8e100008 */ lw $s0,0x8($s0)
|
|
/* f0402dc: 10000004 */ b .L0f0402f0
|
|
/* f0402e0: 00408025 */ or $s0,$v0,$zero
|
|
/* f0402e4: 8e100008 */ lw $s0,0x8($s0)
|
|
.L0f0402e8:
|
|
/* f0402e8: 5600fffa */ bnezl $s0,.L0f0402d4
|
|
/* f0402ec: 8e02000c */ lw $v0,0xc($s0)
|
|
.L0f0402f0:
|
|
/* f0402f0: 5600ffe0 */ bnezl $s0,.L0f040274
|
|
/* f0402f4: 96090000 */ lhu $t1,0x0($s0)
|
|
.L0f0402f8:
|
|
/* f0402f8: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.L0f0402fc:
|
|
/* f0402fc: d7b40018 */ ldc1 $f20,0x18($sp)
|
|
/* f040300: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f040304: 8fb10024 */ lw $s1,0x24($sp)
|
|
/* f040308: 8fb20028 */ lw $s2,0x28($sp)
|
|
/* f04030c: 8fb3002c */ lw $s3,0x2c($sp)
|
|
/* f040310: 8fb40030 */ lw $s4,0x30($sp)
|
|
/* f040314: 03e00008 */ jr $ra
|
|
/* f040318: 27bd0140 */ addiu $sp,$sp,0x140
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f04031c
|
|
.late_rodata
|
|
glabel var7f1a90bc
|
|
.word 0x3c23d70a
|
|
glabel var7f1a90c0
|
|
.word 0x3f199999
|
|
glabel var7f1a90c4
|
|
.word 0x411cf5c3
|
|
.text
|
|
/* f04031c: 3c017f1b */ lui $at,%hi(var7f1a90bc)
|
|
/* f040320: c42090bc */ lwc1 $f0,%lo(var7f1a90bc)($at)
|
|
/* f040324: 27bdffa8 */ addiu $sp,$sp,-88
|
|
/* f040328: afa5005c */ sw $a1,0x5c($sp)
|
|
/* f04032c: 3c017f1b */ lui $at,%hi(var7f1a90c0)
|
|
/* f040330: c42690c0 */ lwc1 $f6,%lo(var7f1a90c0)($at)
|
|
/* f040334: c7a4005c */ lwc1 $f4,0x5c($sp)
|
|
/* f040338: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f04033c: afa70064 */ sw $a3,0x64($sp)
|
|
/* f040340: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f040344: e7a8005c */ swc1 $f8,0x5c($sp)
|
|
/* f040348: c4840000 */ lwc1 $f4,0x0($a0)
|
|
/* f04034c: c4ca0000 */ lwc1 $f10,0x0($a2)
|
|
/* f040350: c4c80004 */ lwc1 $f8,0x4($a2)
|
|
/* f040354: 46045181 */ sub.s $f6,$f10,$f4
|
|
/* f040358: c48a0004 */ lwc1 $f10,0x4($a0)
|
|
/* f04035c: 46003482 */ mul.s $f18,$f6,$f0
|
|
/* f040360: 460a4101 */ sub.s $f4,$f8,$f10
|
|
/* f040364: c4880008 */ lwc1 $f8,0x8($a0)
|
|
/* f040368: c4c60008 */ lwc1 $f6,0x8($a2)
|
|
/* f04036c: 46002082 */ mul.s $f2,$f4,$f0
|
|
/* f040370: 46083281 */ sub.s $f10,$f6,$f8
|
|
/* f040374: e7b20054 */ swc1 $f18,0x54($sp)
|
|
/* f040378: 46005102 */ mul.s $f4,$f10,$f0
|
|
/* f04037c: e7a20050 */ swc1 $f2,0x50($sp)
|
|
/* f040380: 46129382 */ mul.s $f14,$f18,$f18
|
|
/* f040384: 00000000 */ nop
|
|
/* f040388: 46042402 */ mul.s $f16,$f4,$f4
|
|
/* f04038c: e7a4004c */ swc1 $f4,0x4c($sp)
|
|
/* f040390: 46021182 */ mul.s $f6,$f2,$f2
|
|
/* f040394: e7ae0020 */ swc1 $f14,0x20($sp)
|
|
/* f040398: e7b0001c */ swc1 $f16,0x1c($sp)
|
|
/* f04039c: 46067200 */ add.s $f8,$f14,$f6
|
|
/* f0403a0: 0c012974 */ jal sqrtf
|
|
/* f0403a4: 46104300 */ add.s $f12,$f8,$f16
|
|
/* f0403a8: c7ae0020 */ lwc1 $f14,0x20($sp)
|
|
/* f0403ac: c7b0001c */ lwc1 $f16,0x1c($sp)
|
|
/* f0403b0: e7a00044 */ swc1 $f0,0x44($sp)
|
|
/* f0403b4: 0c012974 */ jal sqrtf
|
|
/* f0403b8: 46107300 */ add.s $f12,$f14,$f16
|
|
/* f0403bc: c7aa0044 */ lwc1 $f10,0x44($sp)
|
|
/* f0403c0: e7a00048 */ swc1 $f0,0x48($sp)
|
|
/* f0403c4: 460a0303 */ div.s $f12,$f0,$f10
|
|
/* f0403c8: 0fc25a74 */ jal func0f0969d0
|
|
/* f0403cc: e7ac0038 */ swc1 $f12,0x38($sp)
|
|
/* f0403d0: c7a20050 */ lwc1 $f2,0x50($sp)
|
|
/* f0403d4: 44802000 */ mtc1 $zero,$f4
|
|
/* f0403d8: 3c01bf80 */ lui $at,0xbf80
|
|
/* f0403dc: 44819000 */ mtc1 $at,$f18
|
|
/* f0403e0: 4604103c */ c.lt.s $f2,$f4
|
|
/* f0403e4: c7ae0038 */ lwc1 $f14,0x38($sp)
|
|
/* f0403e8: 46000406 */ mov.s $f16,$f0
|
|
/* f0403ec: 3c017f1b */ lui $at,%hi(var7f1a90c4)
|
|
/* f0403f0: 45000002 */ bc1f .L0f0403fc
|
|
/* f0403f4: c7a60044 */ lwc1 $f6,0x44($sp)
|
|
/* f0403f8: 46000407 */ neg.s $f16,$f0
|
|
.L0f0403fc:
|
|
/* f0403fc: c42890c4 */ lwc1 $f8,%lo(var7f1a90c4)($at)
|
|
/* f040400: 3c013f80 */ lui $at,0x3f80
|
|
/* f040404: 46083282 */ mul.s $f10,$f6,$f8
|
|
/* f040408: 00000000 */ nop
|
|
/* f04040c: 460e5102 */ mul.s $f4,$f10,$f14
|
|
/* f040410: c7aa005c */ lwc1 $f10,0x5c($sp)
|
|
/* f040414: 460e2202 */ mul.s $f8,$f4,$f14
|
|
/* f040418: 00000000 */ nop
|
|
/* f04041c: 460a5102 */ mul.s $f4,$f10,$f10
|
|
/* f040420: 46044283 */ div.s $f10,$f8,$f4
|
|
/* f040424: 46061203 */ div.s $f8,$f2,$f6
|
|
/* f040428: 46085000 */ add.s $f0,$f10,$f8
|
|
/* f04042c: 4612003c */ c.lt.s $f0,$f18
|
|
/* f040430: 46000306 */ mov.s $f12,$f0
|
|
/* f040434: 45000003 */ bc1f .L0f040444
|
|
/* f040438: 00000000 */ nop
|
|
/* f04043c: 10000008 */ b .L0f040460
|
|
/* f040440: 46009306 */ mov.s $f12,$f18
|
|
.L0f040444:
|
|
/* f040444: 44811000 */ mtc1 $at,$f2
|
|
/* f040448: 00000000 */ nop
|
|
/* f04044c: 4600103c */ c.lt.s $f2,$f0
|
|
/* f040450: 00000000 */ nop
|
|
/* f040454: 45000002 */ bc1f .L0f040460
|
|
/* f040458: 00000000 */ nop
|
|
/* f04045c: 46001306 */ mov.s $f12,$f2
|
|
.L0f040460:
|
|
/* f040460: 0fc25a9f */ jal func0f096a7c
|
|
/* f040464: e7b00040 */ swc1 $f16,0x40($sp)
|
|
/* f040468: c7b00040 */ lwc1 $f16,0x40($sp)
|
|
/* f04046c: 3c013f00 */ lui $at,0x3f00
|
|
/* f040470: 44813000 */ mtc1 $at,$f6
|
|
/* f040474: 46100101 */ sub.s $f4,$f0,$f16
|
|
/* f040478: 46062282 */ mul.s $f10,$f4,$f6
|
|
/* f04047c: 46105300 */ add.s $f12,$f10,$f16
|
|
/* f040480: 0c0068f4 */ jal cosf
|
|
/* f040484: e7ac003c */ swc1 $f12,0x3c($sp)
|
|
/* f040488: c7ac003c */ lwc1 $f12,0x3c($sp)
|
|
/* f04048c: 0c0068f7 */ jal sinf
|
|
/* f040490: e7a00028 */ swc1 $f0,0x28($sp)
|
|
/* f040494: c7ac0048 */ lwc1 $f12,0x48($sp)
|
|
/* f040498: c7a80054 */ lwc1 $f8,0x54($sp)
|
|
/* f04049c: c7a20028 */ lwc1 $f2,0x28($sp)
|
|
/* f0404a0: 8fa20064 */ lw $v0,0x64($sp)
|
|
/* f0404a4: 460c4103 */ div.s $f4,$f8,$f12
|
|
/* f0404a8: e4400004 */ swc1 $f0,0x4($v0)
|
|
/* f0404ac: 46022182 */ mul.s $f6,$f4,$f2
|
|
/* f0404b0: e4460000 */ swc1 $f6,0x0($v0)
|
|
/* f0404b4: c7aa004c */ lwc1 $f10,0x4c($sp)
|
|
/* f0404b8: 460c5203 */ div.s $f8,$f10,$f12
|
|
/* f0404bc: 46024102 */ mul.s $f4,$f8,$f2
|
|
/* f0404c0: e4440008 */ swc1 $f4,0x8($v0)
|
|
/* f0404c4: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f0404c8: 27bd0058 */ addiu $sp,$sp,0x58
|
|
/* f0404cc: 03e00008 */ jr $ra
|
|
/* f0404d0: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f0404d4
|
|
.late_rodata
|
|
glabel var7f1a90c8
|
|
.word 0x3d638e39
|
|
glabel var7f1a90cc
|
|
.word 0x481c4000
|
|
glabel var7f1a90d0
|
|
.word 0x3fd55555
|
|
glabel var7f1a90d4
|
|
.word 0x3fd55555
|
|
glabel var7f1a90d8
|
|
.word 0x3fd55555
|
|
glabel var7f1a90dc
|
|
.word 0x461c4000
|
|
glabel var7f1a90e0
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a90e4
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a90e8
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a90ec
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a90f0
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a90f4
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a90f8
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a90fc
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9100
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9104
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9108
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a910c
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9110
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9114
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9118
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a911c
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9120
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9124
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a9128
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a912c
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9130
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9134
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a9138
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a913c
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a9140
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a9144
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a9148
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a914c
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9150
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a9154
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a9158
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a915c
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a9160
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a9164
|
|
.word func0f0404d4+0x14e8 # f0419bc
|
|
glabel var7f1a9168
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a916c
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9170
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9174
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9178
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a917c
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9180
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
glabel var7f1a9184
|
|
.word func0f0404d4+0x14dc # f0419b0
|
|
.text
|
|
/* f0404d4: 27bdfd88 */ addiu $sp,$sp,-632
|
|
/* f0404d8: afbf0044 */ sw $ra,0x44($sp)
|
|
/* f0404dc: afa5027c */ sw $a1,0x27c($sp)
|
|
/* f0404e0: 8c8e001c */ lw $t6,0x1c($a0)
|
|
/* f0404e4: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f0404e8: a3af026e */ sb $t7,0x26e($sp)
|
|
/* f0404ec: afae0274 */ sw $t6,0x274($sp)
|
|
/* f0404f0: 8c9802d4 */ lw $t8,0x2d4($a0)
|
|
/* f0404f4: 00001025 */ or $v0,$zero,$zero
|
|
/* f0404f8: 8fa5027c */ lw $a1,0x27c($sp)
|
|
/* f0404fc: 53000003 */ beqzl $t8,.L0f04050c
|
|
/* f040500: a3a2026f */ sb $v0,0x26f($sp)
|
|
/* f040504: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f040508: a3a2026f */ sb $v0,0x26f($sp)
|
|
.L0f04050c:
|
|
/* f04050c: 0fc0a209 */ jal chrGetEquippedWeaponProp
|
|
/* f040510: afa40278 */ sw $a0,0x278($sp)
|
|
/* f040514: 50400554 */ beqzl $v0,.L0f041a68
|
|
/* f040518: 8fbf0044 */ lw $ra,0x44($sp)
|
|
/* f04051c: afa00268 */ sw $zero,0x268($sp)
|
|
/* f040520: 8c590004 */ lw $t9,0x4($v0)
|
|
/* f040524: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f040528: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f04052c: afb90264 */ sw $t9,0x264($sp)
|
|
/* f040530: 8fab0264 */ lw $t3,0x264($sp)
|
|
/* f040534: afa2025c */ sw $v0,0x25c($sp)
|
|
/* f040538: 8fa70278 */ lw $a3,0x278($sp)
|
|
/* f04053c: 8961005c */ lwl $at,0x5c($t3)
|
|
/* f040540: 9961005f */ lwr $at,0x5f($t3)
|
|
/* f040544: 27aa0260 */ addiu $t2,$sp,0x260
|
|
/* f040548: 24080200 */ addiu $t0,$zero,0x200
|
|
/* f04054c: ad410000 */ sw $at,0x0($t2)
|
|
/* f040550: 80e30007 */ lb $v1,0x7($a3)
|
|
/* f040554: 24010008 */ addiu $at,$zero,0x8
|
|
/* f040558: 10610007 */ beq $v1,$at,.L0f040578
|
|
/* f04055c: 2401001b */ addiu $at,$zero,0x1b
|
|
/* f040560: 10610005 */ beq $v1,$at,.L0f040578
|
|
/* f040564: 2401001c */ addiu $at,$zero,0x1c
|
|
/* f040568: 10610003 */ beq $v1,$at,.L0f040578
|
|
/* f04056c: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f040570: 54610003 */ bnel $v1,$at,.L0f040580
|
|
/* f040574: afa00250 */ sw $zero,0x250($sp)
|
|
.L0f040578:
|
|
/* f040578: 8ce8004c */ lw $t0,0x4c($a3)
|
|
/* f04057c: afa00250 */ sw $zero,0x250($sp)
|
|
.L0f040580:
|
|
/* f040580: afa00224 */ sw $zero,0x224($sp)
|
|
/* f040584: afa00210 */ sw $zero,0x210($sp)
|
|
/* f040588: 93a40260 */ lbu $a0,0x260($sp)
|
|
/* f04058c: 93a50263 */ lbu $a1,0x263($sp)
|
|
/* f040590: afa00254 */ sw $zero,0x254($sp)
|
|
/* f040594: 0fc2c7ba */ jal weaponGetMaxFireRatePerTick
|
|
/* f040598: afa80258 */ sw $t0,0x258($sp)
|
|
/* f04059c: 8fa60254 */ lw $a2,0x254($sp)
|
|
/* f0405a0: 1c400005 */ bgtz $v0,.L0f0405b8
|
|
/* f0405a4: 00402025 */ or $a0,$v0,$zero
|
|
/* f0405a8: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f0405ac: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f0405b0: 10000055 */ b .L0f040708
|
|
/* f0405b4: afaf0250 */ sw $t7,0x250($sp)
|
|
.L0f0405b8:
|
|
/* f0405b8: 8fb80278 */ lw $t8,0x278($sp)
|
|
/* f0405bc: 8f0302d4 */ lw $v1,0x2d4($t8)
|
|
/* f0405c0: 5060001d */ beqzl $v1,.L0f040638
|
|
/* f0405c4: 8faa0278 */ lw $t2,0x278($sp)
|
|
/* f0405c8: 8c790020 */ lw $t9,0x20($v1)
|
|
/* f0405cc: 24010014 */ addiu $at,$zero,0x14
|
|
/* f0405d0: 57210019 */ bnel $t9,$at,.L0f040638
|
|
/* f0405d4: 8faa0278 */ lw $t2,0x278($sp)
|
|
/* f0405d8: 8c6d004c */ lw $t5,0x4c($v1)
|
|
/* f0405dc: 8fab027c */ lw $t3,0x27c($sp)
|
|
/* f0405e0: 000d5080 */ sll $t2,$t5,0x2
|
|
/* f0405e4: 05400013 */ bltz $t2,.L0f040634
|
|
/* f0405e8: 000b7040 */ sll $t6,$t3,0x1
|
|
/* f0405ec: 006e7821 */ addu $t7,$v1,$t6
|
|
/* f0405f0: 85f800e0 */ lh $t8,0xe0($t7)
|
|
/* f0405f4: 2419005a */ addiu $t9,$zero,0x5a
|
|
/* f0405f8: 3c017f1b */ lui $at,%hi(var7f1a90c8)
|
|
/* f0405fc: 03386823 */ subu $t5,$t9,$t8
|
|
/* f040600: 448d2000 */ mtc1 $t5,$f4
|
|
/* f040604: c42890c8 */ lwc1 $f8,%lo(var7f1a90c8)($at)
|
|
/* f040608: 44825000 */ mtc1 $v0,$f10
|
|
/* f04060c: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f040610: 3c013f80 */ lui $at,0x3f80
|
|
/* f040614: 44819000 */ mtc1 $at,$f18
|
|
/* f040618: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f04061c: 46083002 */ mul.s $f0,$f6,$f8
|
|
/* f040620: 46009100 */ add.s $f4,$f18,$f0
|
|
/* f040624: 46048182 */ mul.s $f6,$f16,$f4
|
|
/* f040628: 4600320d */ trunc.w.s $f8,$f6
|
|
/* f04062c: 44044000 */ mfc1 $a0,$f8
|
|
/* f040630: 00000000 */ nop
|
|
.L0f040634:
|
|
/* f040634: 8faa0278 */ lw $t2,0x278($sp)
|
|
.L0f040638:
|
|
/* f040638: 8fab027c */ lw $t3,0x27c($sp)
|
|
/* f04063c: 3c0f800a */ lui $t7,%hi(g_Vars+0x38)
|
|
/* f040640: 8def9ff8 */ lw $t7,%lo(g_Vars+0x38)($t7)
|
|
/* f040644: 014b1821 */ addu $v1,$t2,$t3
|
|
/* f040648: 906e0004 */ lbu $t6,0x4($v1)
|
|
/* f04064c: 01cfc821 */ addu $t9,$t6,$t7
|
|
/* f040650: 333800ff */ andi $t8,$t9,0xff
|
|
/* f040654: 0304082a */ slt $at,$t8,$a0
|
|
/* f040658: 1420002b */ bnez $at,.L0f040708
|
|
/* f04065c: a0790004 */ sb $t9,0x4($v1)
|
|
/* f040660: a0600004 */ sb $zero,0x4($v1)
|
|
/* f040664: 8faa0278 */ lw $t2,0x278($sp)
|
|
/* f040668: 8fad027c */ lw $t5,0x27c($sp)
|
|
/* f04066c: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f040670: 8d4b032c */ lw $t3,0x32c($t2)
|
|
/* f040674: 01ac1004 */ sllv $v0,$t4,$t5
|
|
/* f040678: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f04067c: 000b7300 */ sll $t6,$t3,0xc
|
|
/* f040680: 914b032d */ lbu $t3,0x32d($t2)
|
|
/* f040684: 000e7f82 */ srl $t7,$t6,0x1e
|
|
/* f040688: 01e2c026 */ xor $t8,$t7,$v0
|
|
/* f04068c: 00186080 */ sll $t4,$t8,0x2
|
|
/* f040690: 318d000c */ andi $t5,$t4,0xc
|
|
/* f040694: 316efff3 */ andi $t6,$t3,0xfff3
|
|
/* f040698: 01ae7825 */ or $t7,$t5,$t6
|
|
/* f04069c: a14f032d */ sb $t7,0x32d($t2)
|
|
/* f0406a0: 8d59032c */ lw $t9,0x32c($t2)
|
|
/* f0406a4: 93ad0260 */ lbu $t5,0x260($sp)
|
|
/* f0406a8: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f0406ac: 0019c300 */ sll $t8,$t9,0xc
|
|
/* f0406b0: 00186782 */ srl $t4,$t8,0x1e
|
|
/* f0406b4: 01825824 */ and $t3,$t4,$v0
|
|
/* f0406b8: 15600003 */ bnez $t3,.L0f0406c8
|
|
/* f0406bc: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0406c0: 55a10003 */ bnel $t5,$at,.L0f0406d0
|
|
/* f0406c4: 8faf0278 */ lw $t7,0x278($sp)
|
|
.L0f0406c8:
|
|
/* f0406c8: afae0250 */ sw $t6,0x250($sp)
|
|
/* f0406cc: 8faf0278 */ lw $t7,0x278($sp)
|
|
.L0f0406d0:
|
|
/* f0406d0: 24010008 */ addiu $at,$zero,0x8
|
|
/* f0406d4: 81ea0007 */ lb $t2,0x7($t7)
|
|
/* f0406d8: 1541000b */ bne $t2,$at,.L0f040708
|
|
/* f0406dc: 00000000 */ nop
|
|
/* f0406e0: 8de40020 */ lw $a0,0x20($t7)
|
|
/* f0406e4: 0c00744f */ jal modelGetAnimNum
|
|
/* f0406e8: afa60254 */ sw $a2,0x254($sp)
|
|
/* f0406ec: 2401026a */ addiu $at,$zero,0x26a
|
|
/* f0406f0: 14410005 */ bne $v0,$at,.L0f040708
|
|
/* f0406f4: 8fa60254 */ lw $a2,0x254($sp)
|
|
/* f0406f8: 8fb90278 */ lw $t9,0x278($sp)
|
|
/* f0406fc: 83380033 */ lb $t8,0x33($t9)
|
|
/* f040700: 270c0001 */ addiu $t4,$t8,0x1
|
|
/* f040704: a32c0033 */ sb $t4,0x33($t9)
|
|
.L0f040708:
|
|
/* f040708: 50c0049b */ beqzl $a2,.L0f041978
|
|
/* f04070c: 8fa80268 */ lw $t0,0x268($sp)
|
|
/* f040710: 0fc0f97c */ jal func0f03e5f0
|
|
/* f040714: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f040718: e7a00204 */ swc1 $f0,0x204($sp)
|
|
/* f04071c: 0fc0f9d5 */ jal func0f03e754
|
|
/* f040720: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f040724: 93ab026f */ lbu $t3,0x26f($sp)
|
|
/* f040728: e7a00200 */ swc1 $f0,0x200($sp)
|
|
/* f04072c: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f040730: 11600004 */ beqz $t3,.L0f040744
|
|
/* f040734: 27a60244 */ addiu $a2,$sp,0x244
|
|
/* f040738: 240d0004 */ addiu $t5,$zero,0x4
|
|
/* f04073c: 10000002 */ b .L0f040748
|
|
/* f040740: afad01fc */ sw $t5,0x1fc($sp)
|
|
.L0f040744:
|
|
/* f040744: afa001fc */ sw $zero,0x1fc($sp)
|
|
.L0f040748:
|
|
/* f040748: afae0268 */ sw $t6,0x268($sp)
|
|
/* f04074c: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f040750: 0fc0ff79 */ jal func0f03fde4
|
|
/* f040754: 8fa5027c */ lw $a1,0x27c($sp)
|
|
/* f040758: 54400032 */ bnezl $v0,.L0f040824
|
|
/* f04075c: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f040760: 8fa20274 */ lw $v0,0x274($sp)
|
|
/* f040764: 3c0141f0 */ lui $at,0x41f0
|
|
/* f040768: 44818000 */ mtc1 $at,$f16
|
|
/* f04076c: c44a0008 */ lwc1 $f10,0x8($v0)
|
|
/* f040770: 8faa027c */ lw $t2,0x27c($sp)
|
|
/* f040774: 24010001 */ addiu $at,$zero,0x1
|
|
/* f040778: e7aa0244 */ swc1 $f10,0x244($sp)
|
|
/* f04077c: c452000c */ lwc1 $f18,0xc($v0)
|
|
/* f040780: 46109100 */ add.s $f4,$f18,$f16
|
|
/* f040784: e7a40248 */ swc1 $f4,0x248($sp)
|
|
/* f040788: c4460010 */ lwc1 $f6,0x10($v0)
|
|
/* f04078c: 15410013 */ bne $t2,$at,.L0f0407dc
|
|
/* f040790: e7a6024c */ swc1 $f6,0x24c($sp)
|
|
/* f040794: 0c0068f4 */ jal cosf
|
|
/* f040798: c7ac0204 */ lwc1 $f12,0x204($sp)
|
|
/* f04079c: 3c014120 */ lui $at,0x4120
|
|
/* f0407a0: 44815000 */ mtc1 $at,$f10
|
|
/* f0407a4: c7a80244 */ lwc1 $f8,0x244($sp)
|
|
/* f0407a8: c7ac0204 */ lwc1 $f12,0x204($sp)
|
|
/* f0407ac: 460a0482 */ mul.s $f18,$f0,$f10
|
|
/* f0407b0: 46124400 */ add.s $f16,$f8,$f18
|
|
/* f0407b4: 0c0068f7 */ jal sinf
|
|
/* f0407b8: e7b00244 */ swc1 $f16,0x244($sp)
|
|
/* f0407bc: 3c014120 */ lui $at,0x4120
|
|
/* f0407c0: 44813000 */ mtc1 $at,$f6
|
|
/* f0407c4: 46000107 */ neg.s $f4,$f0
|
|
/* f0407c8: c7a8024c */ lwc1 $f8,0x24c($sp)
|
|
/* f0407cc: 46062282 */ mul.s $f10,$f4,$f6
|
|
/* f0407d0: 460a4480 */ add.s $f18,$f8,$f10
|
|
/* f0407d4: 10000012 */ b .L0f040820
|
|
/* f0407d8: e7b2024c */ swc1 $f18,0x24c($sp)
|
|
.L0f0407dc:
|
|
/* f0407dc: 0c0068f4 */ jal cosf
|
|
/* f0407e0: c7ac0204 */ lwc1 $f12,0x204($sp)
|
|
/* f0407e4: 3c014120 */ lui $at,0x4120
|
|
/* f0407e8: 44812000 */ mtc1 $at,$f4
|
|
/* f0407ec: 46000407 */ neg.s $f16,$f0
|
|
/* f0407f0: c7a80244 */ lwc1 $f8,0x244($sp)
|
|
/* f0407f4: 46048182 */ mul.s $f6,$f16,$f4
|
|
/* f0407f8: c7ac0204 */ lwc1 $f12,0x204($sp)
|
|
/* f0407fc: 46064280 */ add.s $f10,$f8,$f6
|
|
/* f040800: 0c0068f7 */ jal sinf
|
|
/* f040804: e7aa0244 */ swc1 $f10,0x244($sp)
|
|
/* f040808: 3c014120 */ lui $at,0x4120
|
|
/* f04080c: 44818000 */ mtc1 $at,$f16
|
|
/* f040810: c7b2024c */ lwc1 $f18,0x24c($sp)
|
|
/* f040814: 46100102 */ mul.s $f4,$f0,$f16
|
|
/* f040818: 46049200 */ add.s $f8,$f18,$f4
|
|
/* f04081c: e7a8024c */ swc1 $f8,0x24c($sp)
|
|
.L0f040820:
|
|
/* f040820: 8fa40278 */ lw $a0,0x278($sp)
|
|
.L0f040824:
|
|
/* f040824: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f040828: 00002825 */ or $a1,$zero,$zero
|
|
/* f04082c: 8fb801fc */ lw $t8,0x1fc($sp)
|
|
/* f040830: 8faf0274 */ lw $t7,0x274($sp)
|
|
/* f040834: 24190010 */ addiu $t9,$zero,0x10
|
|
/* f040838: 370c082a */ ori $t4,$t8,0x82a
|
|
/* f04083c: afac0010 */ sw $t4,0x10($sp)
|
|
/* f040840: afb90014 */ sw $t9,0x14($sp)
|
|
/* f040844: 27a60244 */ addiu $a2,$sp,0x244
|
|
/* f040848: 27a70234 */ addiu $a3,$sp,0x234
|
|
/* f04084c: 25e40008 */ addiu $a0,$t7,0x8
|
|
/* f040850: 0c00b78d */ jal func0002de34
|
|
/* f040854: 25e50028 */ addiu $a1,$t7,0x28
|
|
/* f040858: 14400002 */ bnez $v0,.L0f040864
|
|
/* f04085c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f040860: afa00268 */ sw $zero,0x268($sp)
|
|
.L0f040864:
|
|
/* f040864: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f040868: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f04086c: 8fab0268 */ lw $t3,0x268($sp)
|
|
/* f040870: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f040874: 51600440 */ beqzl $t3,.L0f041978
|
|
/* f040878: 8fa80268 */ lw $t0,0x268($sp)
|
|
/* f04087c: 93ae026f */ lbu $t6,0x26f($sp)
|
|
/* f040880: afa001f8 */ sw $zero,0x1f8($sp)
|
|
/* f040884: afa001f4 */ sw $zero,0x1f4($sp)
|
|
/* f040888: afad01f0 */ sw $t5,0x1f0($sp)
|
|
/* f04088c: 11c00004 */ beqz $t6,.L0f0408a0
|
|
/* f040890: afa001cc */ sw $zero,0x1cc($sp)
|
|
/* f040894: 240a083f */ addiu $t2,$zero,0x83f
|
|
/* f040898: 10000003 */ b .L0f0408a8
|
|
/* f04089c: afaa01c8 */ sw $t2,0x1c8($sp)
|
|
.L0f0408a0:
|
|
/* f0408a0: 240f083b */ addiu $t7,$zero,0x83b
|
|
/* f0408a4: afaf01c8 */ sw $t7,0x1c8($sp)
|
|
.L0f0408a8:
|
|
/* f0408a8: 8fa7025c */ lw $a3,0x25c($sp)
|
|
/* f0408ac: 8ce20004 */ lw $v0,0x4($a3)
|
|
/* f0408b0: 50400004 */ beqzl $v0,.L0f0408c4
|
|
/* f0408b4: 00004825 */ or $t1,$zero,$zero
|
|
/* f0408b8: 10000002 */ b .L0f0408c4
|
|
/* f0408bc: 904902fe */ lbu $t1,0x2fe($v0)
|
|
/* f0408c0: 00004825 */ or $t1,$zero,$zero
|
|
.L0f0408c4:
|
|
/* f0408c4: 39220003 */ xori $v0,$t1,0x3
|
|
/* f0408c8: 2c420001 */ sltiu $v0,$v0,0x1
|
|
/* f0408cc: 1040000f */ beqz $v0,.L0f04090c
|
|
/* f0408d0: 00401825 */ or $v1,$v0,$zero
|
|
/* f0408d4: afa2005c */ sw $v0,0x5c($sp)
|
|
/* f0408d8: 0fc12472 */ jal chrGetDistanceToTarget
|
|
/* f0408dc: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f0408e0: 3c014316 */ lui $at,0x4316
|
|
/* f0408e4: 44813000 */ mtc1 $at,$f6
|
|
/* f0408e8: 0000c025 */ or $t8,$zero,$zero
|
|
/* f0408ec: 4600303c */ c.lt.s $f6,$f0
|
|
/* f0408f0: 00000000 */ nop
|
|
/* f0408f4: 45020003 */ bc1fl .L0f040904
|
|
/* f0408f8: afb8005c */ sw $t8,0x5c($sp)
|
|
/* f0408fc: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f040900: afb8005c */ sw $t8,0x5c($sp)
|
|
.L0f040904:
|
|
/* f040904: 8fa7025c */ lw $a3,0x25c($sp)
|
|
/* f040908: 03001825 */ or $v1,$t8,$zero
|
|
.L0f04090c:
|
|
/* f04090c: afa301c0 */ sw $v1,0x1c0($sp)
|
|
/* f040910: 10600016 */ beqz $v1,.L0f04096c
|
|
/* f040914: afa001bc */ sw $zero,0x1bc($sp)
|
|
/* f040918: c4ea0008 */ lwc1 $f10,0x8($a3)
|
|
/* f04091c: c7b00244 */ lwc1 $f16,0x244($sp)
|
|
/* f040920: c7a80248 */ lwc1 $f8,0x248($sp)
|
|
/* f040924: 27a401e0 */ addiu $a0,$sp,0x1e0
|
|
/* f040928: 46105481 */ sub.s $f18,$f10,$f16
|
|
/* f04092c: c7b0024c */ lwc1 $f16,0x24c($sp)
|
|
/* f040930: 27a501e4 */ addiu $a1,$sp,0x1e4
|
|
/* f040934: 27a601e8 */ addiu $a2,$sp,0x1e8
|
|
/* f040938: e7b201e0 */ swc1 $f18,0x1e0($sp)
|
|
/* f04093c: c4e4000c */ lwc1 $f4,0xc($a3)
|
|
/* f040940: 46082181 */ sub.s $f6,$f4,$f8
|
|
/* f040944: e7a601e4 */ swc1 $f6,0x1e4($sp)
|
|
/* f040948: c4ea0010 */ lwc1 $f10,0x10($a3)
|
|
/* f04094c: 46105481 */ sub.s $f18,$f10,$f16
|
|
/* f040950: 0c0011e4 */ jal guNormalize
|
|
/* f040954: e7b201e8 */ swc1 $f18,0x1e8($sp)
|
|
/* f040958: 8fa4025c */ lw $a0,0x25c($sp)
|
|
/* f04095c: 0fc1905e */ jal propSetCollisionsEnabled
|
|
/* f040960: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f040964: 1000002f */ b .L0f040a24
|
|
/* f040968: 8fab0278 */ lw $t3,0x278($sp)
|
|
.L0f04096c:
|
|
/* f04096c: 0c0068f4 */ jal cosf
|
|
/* f040970: c7ac0200 */ lwc1 $f12,0x200($sp)
|
|
/* f040974: e7a00060 */ swc1 $f0,0x60($sp)
|
|
/* f040978: 0c0068f7 */ jal sinf
|
|
/* f04097c: c7ac0204 */ lwc1 $f12,0x204($sp)
|
|
/* f040980: c7a40060 */ lwc1 $f4,0x60($sp)
|
|
/* f040984: c7ac0200 */ lwc1 $f12,0x200($sp)
|
|
/* f040988: 46040202 */ mul.s $f8,$f0,$f4
|
|
/* f04098c: 0c0068f7 */ jal sinf
|
|
/* f040990: e7a801e0 */ swc1 $f8,0x1e0($sp)
|
|
/* f040994: e7a001e4 */ swc1 $f0,0x1e4($sp)
|
|
/* f040998: 0c0068f4 */ jal cosf
|
|
/* f04099c: c7ac0200 */ lwc1 $f12,0x200($sp)
|
|
/* f0409a0: e7a00060 */ swc1 $f0,0x60($sp)
|
|
/* f0409a4: 0c0068f4 */ jal cosf
|
|
/* f0409a8: c7ac0204 */ lwc1 $f12,0x204($sp)
|
|
/* f0409ac: c7a60060 */ lwc1 $f6,0x60($sp)
|
|
/* f0409b0: 93ac026f */ lbu $t4,0x26f($sp)
|
|
/* f0409b4: 46060282 */ mul.s $f10,$f0,$f6
|
|
/* f0409b8: 11800019 */ beqz $t4,.L0f040a20
|
|
/* f0409bc: e7aa01e8 */ swc1 $f10,0x1e8($sp)
|
|
/* f0409c0: 0fc644fe */ jal chrGuessCrouchPos
|
|
/* f0409c4: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f0409c8: 8fb90278 */ lw $t9,0x278($sp)
|
|
/* f0409cc: 00404825 */ or $t1,$v0,$zero
|
|
/* f0409d0: 8fae0278 */ lw $t6,0x278($sp)
|
|
/* f0409d4: 8f280170 */ lw $t0,0x170($t9)
|
|
/* f0409d8: 0008582b */ sltu $t3,$zero,$t0
|
|
/* f0409dc: 11600004 */ beqz $t3,.L0f0409f0
|
|
/* f0409e0: 01604025 */ or $t0,$t3,$zero
|
|
/* f0409e4: 8f280174 */ lw $t0,0x174($t9)
|
|
/* f0409e8: 0008682b */ sltu $t5,$zero,$t0
|
|
/* f0409ec: 01a04025 */ or $t0,$t5,$zero
|
|
.L0f0409f0:
|
|
/* f0409f0: 8dc302d4 */ lw $v1,0x2d4($t6)
|
|
/* f0409f4: 8fb8027c */ lw $t8,0x27c($sp)
|
|
/* f0409f8: 27a401e0 */ addiu $a0,$sp,0x1e0
|
|
/* f0409fc: 8c66004c */ lw $a2,0x4c($v1)
|
|
/* f040a00: 00786021 */ addu $t4,$v1,$t8
|
|
/* f040a04: 9187004d */ lbu $a3,0x4d($t4)
|
|
/* f040a08: 8c650020 */ lw $a1,0x20($v1)
|
|
/* f040a0c: 00065080 */ sll $t2,$a2,0x2
|
|
/* f040a10: 000a37c2 */ srl $a2,$t2,0x1f
|
|
/* f040a14: afa80014 */ sw $t0,0x14($sp)
|
|
/* f040a18: 0fc283eb */ jal func0f0a0fac
|
|
/* f040a1c: afa90010 */ sw $t1,0x10($sp)
|
|
.L0f040a20:
|
|
/* f040a20: 8fab0278 */ lw $t3,0x278($sp)
|
|
.L0f040a24:
|
|
/* f040a24: 93b90260 */ lbu $t9,0x260($sp)
|
|
/* f040a28: 24010016 */ addiu $at,$zero,0x16
|
|
/* f040a2c: 8d6302d4 */ lw $v1,0x2d4($t3)
|
|
/* f040a30: 50600018 */ beqzl $v1,.L0f040a94
|
|
/* f040a34: 3c014780 */ lui $at,0x4780
|
|
/* f040a38: 57210016 */ bnel $t9,$at,.L0f040a94
|
|
/* f040a3c: 3c014780 */ lui $at,0x4780
|
|
/* f040a40: 8c6d0128 */ lw $t5,0x128($v1)
|
|
/* f040a44: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f040a48: 01602025 */ or $a0,$t3,$zero
|
|
/* f040a4c: 15a00010 */ bnez $t5,.L0f040a90
|
|
/* f040a50: 00002825 */ or $a1,$zero,$zero
|
|
/* f040a54: afae0250 */ sw $t6,0x250($sp)
|
|
/* f040a58: 27a601e0 */ addiu $a2,$sp,0x1e0
|
|
/* f040a5c: 0fc667e1 */ jal aibotDoFarsightThing
|
|
/* f040a60: 27a70244 */ addiu $a3,$sp,0x244
|
|
/* f040a64: 24010002 */ addiu $at,$zero,0x2
|
|
/* f040a68: 5441000a */ bnel $v0,$at,.L0f040a94
|
|
/* f040a6c: 3c014780 */ lui $at,0x4780
|
|
/* f040a70: 0c004b70 */ jal random
|
|
/* f040a74: 00000000 */ nop
|
|
/* f040a78: 240100ff */ addiu $at,$zero,0xff
|
|
/* f040a7c: 0041001b */ divu $zero,$v0,$at
|
|
/* f040a80: 00005010 */ mfhi $t2
|
|
/* f040a84: 2d4f00c9 */ sltiu $t7,$t2,0xc9
|
|
/* f040a88: 39ef0001 */ xori $t7,$t7,0x1
|
|
/* f040a8c: a3af026e */ sb $t7,0x26e($sp)
|
|
.L0f040a90:
|
|
/* f040a90: 3c014780 */ lui $at,0x4780
|
|
.L0f040a94:
|
|
/* f040a94: 44810000 */ mtc1 $at,$f0
|
|
/* f040a98: c7b001e0 */ lwc1 $f16,0x1e0($sp)
|
|
/* f040a9c: c7a40244 */ lwc1 $f4,0x244($sp)
|
|
/* f040aa0: c7a601e4 */ lwc1 $f6,0x1e4($sp)
|
|
/* f040aa4: 46008482 */ mul.s $f18,$f16,$f0
|
|
/* f040aa8: c7b00248 */ lwc1 $f16,0x248($sp)
|
|
/* f040aac: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f040ab0: 46003282 */ mul.s $f10,$f6,$f0
|
|
/* f040ab4: c7a6024c */ lwc1 $f6,0x24c($sp)
|
|
/* f040ab8: 00002825 */ or $a1,$zero,$zero
|
|
/* f040abc: 46049200 */ add.s $f8,$f18,$f4
|
|
/* f040ac0: c7a401e8 */ lwc1 $f4,0x1e8($sp)
|
|
/* f040ac4: 46105480 */ add.s $f18,$f10,$f16
|
|
/* f040ac8: e7a80228 */ swc1 $f8,0x228($sp)
|
|
/* f040acc: 46002202 */ mul.s $f8,$f4,$f0
|
|
/* f040ad0: e7b2022c */ swc1 $f18,0x22c($sp)
|
|
/* f040ad4: 46064280 */ add.s $f10,$f8,$f6
|
|
/* f040ad8: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f040adc: e7aa0230 */ swc1 $f10,0x230($sp)
|
|
/* f040ae0: 93b8026f */ lbu $t8,0x26f($sp)
|
|
/* f040ae4: 27a40244 */ addiu $a0,$sp,0x244
|
|
/* f040ae8: 27a50234 */ addiu $a1,$sp,0x234
|
|
/* f040aec: 13000004 */ beqz $t8,.L0f040b00
|
|
/* f040af0: 27a60228 */ addiu $a2,$sp,0x228
|
|
/* f040af4: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f040af8: 3c01800a */ lui $at,%hi(g_Vars+0x48c)
|
|
/* f040afc: ac2ca44c */ sw $t4,%lo(g_Vars+0x48c)($at)
|
|
.L0f040b00:
|
|
/* f040b00: 24190010 */ addiu $t9,$zero,0x10
|
|
/* f040b04: afb90010 */ sw $t9,0x10($sp)
|
|
/* f040b08: 0c00b764 */ jal cdTestAToB4
|
|
/* f040b0c: 8fa701c8 */ lw $a3,0x1c8($sp)
|
|
/* f040b10: 1440000a */ bnez $v0,.L0f040b3c
|
|
/* f040b14: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f040b18: 3c067f1b */ lui $a2,%hi(var7f1a8af4)
|
|
/* f040b1c: afad0224 */ sw $t5,0x224($sp)
|
|
/* f040b20: 24c68af4 */ addiu $a2,$a2,%lo(var7f1a8af4)
|
|
/* f040b24: 27a40228 */ addiu $a0,$sp,0x228
|
|
/* f040b28: 0c0093af */ jal cdGetPos
|
|
/* f040b2c: 24052f28 */ addiu $a1,$zero,0x2f28
|
|
/* f040b30: 0c0093ac */ jal cdGetObstacle
|
|
/* f040b34: 00000000 */ nop
|
|
/* f040b38: afa201cc */ sw $v0,0x1cc($sp)
|
|
.L0f040b3c:
|
|
/* f040b3c: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f040b40: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f040b44: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f040b48: 93ae026f */ lbu $t6,0x26f($sp)
|
|
/* f040b4c: 3c01800a */ lui $at,%hi(g_Vars+0x48c)
|
|
/* f040b50: 51c00003 */ beqzl $t6,.L0f040b60
|
|
/* f040b54: 8fab01cc */ lw $t3,0x1cc($sp)
|
|
/* f040b58: ac20a44c */ sw $zero,%lo(g_Vars+0x48c)($at)
|
|
/* f040b5c: 8fab01cc */ lw $t3,0x1cc($sp)
|
|
.L0f040b60:
|
|
/* f040b60: 8faa01c0 */ lw $t2,0x1c0($sp)
|
|
/* f040b64: 55600015 */ bnezl $t3,.L0f040bbc
|
|
/* f040b68: c7a80228 */ lwc1 $f8,0x228($sp)
|
|
/* f040b6c: 51400013 */ beqzl $t2,.L0f040bbc
|
|
/* f040b70: c7a80228 */ lwc1 $f8,0x228($sp)
|
|
/* f040b74: 0c004b70 */ jal random
|
|
/* f040b78: 00000000 */ nop
|
|
/* f040b7c: 24010064 */ addiu $at,$zero,0x64
|
|
/* f040b80: 0041001b */ divu $zero,$v0,$at
|
|
/* f040b84: 00001810 */ mfhi $v1
|
|
/* f040b88: 2c6f0033 */ sltiu $t7,$v1,0x33
|
|
/* f040b8c: 39ef0001 */ xori $t7,$t7,0x1
|
|
/* f040b90: 11e00009 */ beqz $t7,.L0f040bb8
|
|
/* f040b94: afaf01bc */ sw $t7,0x1bc($sp)
|
|
/* f040b98: 8fb8025c */ lw $t8,0x25c($sp)
|
|
/* f040b9c: afb801cc */ sw $t8,0x1cc($sp)
|
|
/* f040ba0: c7100008 */ lwc1 $f16,0x8($t8)
|
|
/* f040ba4: e7b00228 */ swc1 $f16,0x228($sp)
|
|
/* f040ba8: c712000c */ lwc1 $f18,0xc($t8)
|
|
/* f040bac: e7b2022c */ swc1 $f18,0x22c($sp)
|
|
/* f040bb0: c7040010 */ lwc1 $f4,0x10($t8)
|
|
/* f040bb4: e7a40230 */ swc1 $f4,0x230($sp)
|
|
.L0f040bb8:
|
|
/* f040bb8: c7a80228 */ lwc1 $f8,0x228($sp)
|
|
.L0f040bbc:
|
|
/* f040bbc: c7a60244 */ lwc1 $f6,0x244($sp)
|
|
/* f040bc0: c7aa022c */ lwc1 $f10,0x22c($sp)
|
|
/* f040bc4: c7b00248 */ lwc1 $f16,0x248($sp)
|
|
/* f040bc8: 46064001 */ sub.s $f0,$f8,$f6
|
|
/* f040bcc: c7b20230 */ lwc1 $f18,0x230($sp)
|
|
/* f040bd0: c7a4024c */ lwc1 $f4,0x24c($sp)
|
|
/* f040bd4: 46105081 */ sub.s $f2,$f10,$f16
|
|
/* f040bd8: 46000202 */ mul.s $f8,$f0,$f0
|
|
/* f040bdc: 93a40260 */ lbu $a0,0x260($sp)
|
|
/* f040be0: 46049301 */ sub.s $f12,$f18,$f4
|
|
/* f040be4: 46021182 */ mul.s $f6,$f2,$f2
|
|
/* f040be8: 24010018 */ addiu $at,$zero,0x18
|
|
/* f040bec: 460c6402 */ mul.s $f16,$f12,$f12
|
|
/* f040bf0: 46064280 */ add.s $f10,$f8,$f6
|
|
/* f040bf4: 46105480 */ add.s $f18,$f10,$f16
|
|
/* f040bf8: 1081000f */ beq $a0,$at,.L0f040c38
|
|
/* f040bfc: e7b201d0 */ swc1 $f18,0x1d0($sp)
|
|
/* f040c00: 24010019 */ addiu $at,$zero,0x19
|
|
/* f040c04: 1081000c */ beq $a0,$at,.L0f040c38
|
|
/* f040c08: 24010012 */ addiu $at,$zero,0x12
|
|
/* f040c0c: 14810003 */ bne $a0,$at,.L0f040c1c
|
|
/* f040c10: 93ac0263 */ lbu $t4,0x263($sp)
|
|
/* f040c14: 24010001 */ addiu $at,$zero,0x1
|
|
/* f040c18: 11810007 */ beq $t4,$at,.L0f040c38
|
|
.L0f040c1c:
|
|
/* f040c1c: 24010017 */ addiu $at,$zero,0x17
|
|
/* f040c20: 10810005 */ beq $a0,$at,.L0f040c38
|
|
/* f040c24: 2401001b */ addiu $at,$zero,0x1b
|
|
/* f040c28: 10810003 */ beq $a0,$at,.L0f040c38
|
|
/* f040c2c: 24010034 */ addiu $at,$zero,0x34
|
|
/* f040c30: 54810171 */ bnel $a0,$at,.L0f0411f8
|
|
/* f040c34: 24010006 */ addiu $at,$zero,0x6
|
|
.L0f040c38:
|
|
/* f040c38: 93b9026f */ lbu $t9,0x26f($sp)
|
|
/* f040c3c: afa00250 */ sw $zero,0x250($sp)
|
|
/* f040c40: 3c017f1b */ lui $at,%hi(var7f1a90cc)
|
|
/* f040c44: 17200006 */ bnez $t9,.L0f040c60
|
|
/* f040c48: c7a801d0 */ lwc1 $f8,0x1d0($sp)
|
|
/* f040c4c: c42490cc */ lwc1 $f4,%lo(var7f1a90cc)($at)
|
|
/* f040c50: 4608203c */ c.lt.s $f4,$f8
|
|
/* f040c54: 00000000 */ nop
|
|
/* f040c58: 45020164 */ bc1fl .L0f0411ec
|
|
/* f040c5c: afa00268 */ sw $zero,0x268($sp)
|
|
.L0f040c60:
|
|
/* f040c60: 0fc2c3f4 */ jal weaponFindById
|
|
/* f040c64: 00000000 */ nop
|
|
/* f040c68: 93ad0263 */ lbu $t5,0x263($sp)
|
|
/* f040c6c: 93a40260 */ lbu $a0,0x260($sp)
|
|
/* f040c70: 24010018 */ addiu $at,$zero,0x18
|
|
/* f040c74: 000d7080 */ sll $t6,$t5,0x2
|
|
/* f040c78: 004e5821 */ addu $t3,$v0,$t6
|
|
/* f040c7c: 10810006 */ beq $a0,$at,.L0f040c98
|
|
/* f040c80: 8d630014 */ lw $v1,0x14($t3)
|
|
/* f040c84: 24010034 */ addiu $at,$zero,0x34
|
|
/* f040c88: 10810003 */ beq $a0,$at,.L0f040c98
|
|
/* f040c8c: 24010019 */ addiu $at,$zero,0x19
|
|
/* f040c90: 5481000e */ bnel $a0,$at,.L0f040ccc
|
|
/* f040c94: 2401001b */ addiu $at,$zero,0x1b
|
|
.L0f040c98:
|
|
/* f040c98: 8c6a0010 */ lw $t2,0x10($v1)
|
|
/* f040c9c: 24050053 */ addiu $a1,$zero,0x53
|
|
/* f040ca0: 8fa60278 */ lw $a2,0x278($sp)
|
|
/* f040ca4: 000a7840 */ sll $t7,$t2,0x1
|
|
/* f040ca8: 05e30003 */ bgezl $t7,.L0f040cb8
|
|
/* f040cac: 8c640040 */ lw $a0,0x40($v1)
|
|
/* f040cb0: 24050054 */ addiu $a1,$zero,0x54
|
|
/* f040cb4: 8c640040 */ lw $a0,0x40($v1)
|
|
.L0f040cb8:
|
|
/* f040cb8: 0fc22e20 */ jal func0f08b880
|
|
/* f040cbc: afa300d4 */ sw $v1,0xd4($sp)
|
|
/* f040cc0: 1000002e */ b .L0f040d7c
|
|
/* f040cc4: afa201b8 */ sw $v0,0x1b8($sp)
|
|
/* f040cc8: 2401001b */ addiu $at,$zero,0x1b
|
|
.L0f040ccc:
|
|
/* f040ccc: 1481000a */ bne $a0,$at,.L0f040cf8
|
|
/* f040cd0: 24050056 */ addiu $a1,$zero,0x56
|
|
/* f040cd4: 8c640040 */ lw $a0,0x40($v1)
|
|
/* f040cd8: afa300d4 */ sw $v1,0xd4($sp)
|
|
/* f040cdc: 0fc22e20 */ jal func0f08b880
|
|
/* f040ce0: 8fa60278 */ lw $a2,0x278($sp)
|
|
/* f040ce4: 10400025 */ beqz $v0,.L0f040d7c
|
|
/* f040ce8: afa201b8 */ sw $v0,0x1b8($sp)
|
|
/* f040cec: 93b80263 */ lbu $t8,0x263($sp)
|
|
/* f040cf0: 10000022 */ b .L0f040d7c
|
|
/* f040cf4: a058005f */ sb $t8,0x5f($v0)
|
|
.L0f040cf8:
|
|
/* f040cf8: 24010017 */ addiu $at,$zero,0x17
|
|
/* f040cfc: 1481000a */ bne $a0,$at,.L0f040d28
|
|
/* f040d00: 24050055 */ addiu $a1,$zero,0x55
|
|
/* f040d04: 8c640040 */ lw $a0,0x40($v1)
|
|
/* f040d08: afa300d4 */ sw $v1,0xd4($sp)
|
|
/* f040d0c: 0fc22e20 */ jal func0f08b880
|
|
/* f040d10: 8fa60278 */ lw $a2,0x278($sp)
|
|
/* f040d14: 10400019 */ beqz $v0,.L0f040d7c
|
|
/* f040d18: afa201b8 */ sw $v0,0x1b8($sp)
|
|
/* f040d1c: 93ac0263 */ lbu $t4,0x263($sp)
|
|
/* f040d20: 10000016 */ b .L0f040d7c
|
|
/* f040d24: a04c005f */ sb $t4,0x5f($v0)
|
|
.L0f040d28:
|
|
/* f040d28: 24010012 */ addiu $at,$zero,0x12
|
|
/* f040d2c: 1481000b */ bne $a0,$at,.L0f040d5c
|
|
/* f040d30: 3c0d800a */ lui $t5,%hi(g_Vars+0x284)
|
|
/* f040d34: 8c640040 */ lw $a0,0x40($v1)
|
|
/* f040d38: afa300d4 */ sw $v1,0xd4($sp)
|
|
/* f040d3c: 24050055 */ addiu $a1,$zero,0x55
|
|
/* f040d40: 0fc22e20 */ jal func0f08b880
|
|
/* f040d44: 8fa60278 */ lw $a2,0x278($sp)
|
|
/* f040d48: 1040000c */ beqz $v0,.L0f040d7c
|
|
/* f040d4c: afa201b8 */ sw $v0,0x1b8($sp)
|
|
/* f040d50: 24190002 */ addiu $t9,$zero,0x2
|
|
/* f040d54: 10000009 */ b .L0f040d7c
|
|
/* f040d58: a059005f */ sb $t9,0x5f($v0)
|
|
.L0f040d5c:
|
|
/* f040d5c: 8dada244 */ lw $t5,%lo(g_Vars+0x284)($t5)
|
|
/* f040d60: 8c640040 */ lw $a0,0x40($v1)
|
|
/* f040d64: 27a50260 */ addiu $a1,$sp,0x260
|
|
/* f040d68: 8dae00bc */ lw $t6,0xbc($t5)
|
|
/* f040d6c: 8dc60004 */ lw $a2,0x4($t6)
|
|
/* f040d70: 0fc22d96 */ jal func0f08b658
|
|
/* f040d74: afa300d4 */ sw $v1,0xd4($sp)
|
|
/* f040d78: afa201b8 */ sw $v0,0x1b8($sp)
|
|
.L0f040d7c:
|
|
/* f040d7c: 1040011b */ beqz $v0,.L0f0411ec
|
|
/* f040d80: 8fab00d4 */ lw $t3,0xd4($sp)
|
|
/* f040d84: 8d6a004c */ lw $t2,0x4c($t3)
|
|
/* f040d88: 3c017f1b */ lui $at,%hi(var7f1a90d0)
|
|
/* f040d8c: c43090d0 */ lwc1 $f16,%lo(var7f1a90d0)($at)
|
|
/* f040d90: 448a3000 */ mtc1 $t2,$f6
|
|
/* f040d94: 3c014270 */ lui $at,0x4270
|
|
/* f040d98: 44812000 */ mtc1 $at,$f4
|
|
/* f040d9c: 468032a0 */ cvt.s.w $f10,$f6
|
|
/* f040da0: 3c017f1b */ lui $at,%hi(var7f1a90d4)
|
|
/* f040da4: 93b8026f */ lbu $t8,0x26f($sp)
|
|
/* f040da8: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f040dac: 2405001e */ addiu $a1,$zero,0x1e
|
|
/* f040db0: 46105482 */ mul.s $f18,$f10,$f16
|
|
/* f040db4: c43090d4 */ lwc1 $f16,%lo(var7f1a90d4)($at)
|
|
/* f040db8: 46049203 */ div.s $f8,$f18,$f4
|
|
/* f040dbc: e7a80168 */ swc1 $f8,0x168($sp)
|
|
/* f040dc0: 8d6f0054 */ lw $t7,0x54($t3)
|
|
/* f040dc4: 448f3000 */ mtc1 $t7,$f6
|
|
/* f040dc8: 00000000 */ nop
|
|
/* f040dcc: 468032a0 */ cvt.s.w $f10,$f6
|
|
/* f040dd0: 46105482 */ mul.s $f18,$f10,$f16
|
|
/* f040dd4: 13000080 */ beqz $t8,.L0f040fd8
|
|
/* f040dd8: e7b200cc */ swc1 $f18,0xcc($sp)
|
|
/* f040ddc: 0fc1241a */ jal chrIsTargetInFov
|
|
/* f040de0: 00003025 */ or $a2,$zero,$zero
|
|
/* f040de4: 1040007c */ beqz $v0,.L0f040fd8
|
|
/* f040de8: 00000000 */ nop
|
|
/* f040dec: 93a20263 */ lbu $v0,0x263($sp)
|
|
/* f040df0: 00001825 */ or $v1,$zero,$zero
|
|
/* f040df4: 93a40260 */ lbu $a0,0x260($sp)
|
|
/* f040df8: 14400025 */ bnez $v0,.L0f040e90
|
|
/* f040dfc: 24010018 */ addiu $at,$zero,0x18
|
|
/* f040e00: 10810006 */ beq $a0,$at,.L0f040e1c
|
|
/* f040e04: 8fac025c */ lw $t4,0x25c($sp)
|
|
/* f040e08: 24010034 */ addiu $at,$zero,0x34
|
|
/* f040e0c: 10810003 */ beq $a0,$at,.L0f040e1c
|
|
/* f040e10: 24010019 */ addiu $at,$zero,0x19
|
|
/* f040e14: 5481001f */ bnel $a0,$at,.L0f040e94
|
|
/* f040e18: 93a40260 */ lbu $a0,0x260($sp)
|
|
.L0f040e1c:
|
|
/* f040e1c: 91820000 */ lbu $v0,0x0($t4)
|
|
/* f040e20: 24010003 */ addiu $at,$zero,0x3
|
|
/* f040e24: 8fb9025c */ lw $t9,0x25c($sp)
|
|
/* f040e28: 10410003 */ beq $v0,$at,.L0f040e38
|
|
/* f040e2c: 24010006 */ addiu $at,$zero,0x6
|
|
/* f040e30: 14410051 */ bne $v0,$at,.L0f040f78
|
|
/* f040e34: 00000000 */ nop
|
|
.L0f040e38:
|
|
/* f040e38: c7240008 */ lwc1 $f4,0x8($t9)
|
|
/* f040e3c: c7aa0244 */ lwc1 $f10,0x244($sp)
|
|
/* f040e40: c7b20248 */ lwc1 $f18,0x248($sp)
|
|
/* f040e44: e7a400b8 */ swc1 $f4,0xb8($sp)
|
|
/* f040e48: 8f2d0004 */ lw $t5,0x4($t9)
|
|
/* f040e4c: 460a2401 */ sub.s $f16,$f4,$f10
|
|
/* f040e50: c7aa024c */ lwc1 $f10,0x24c($sp)
|
|
/* f040e54: c5a800b4 */ lwc1 $f8,0xb4($t5)
|
|
/* f040e58: 27a401e0 */ addiu $a0,$sp,0x1e0
|
|
/* f040e5c: 27a501e4 */ addiu $a1,$sp,0x1e4
|
|
/* f040e60: e7a800bc */ swc1 $f8,0xbc($sp)
|
|
/* f040e64: c7260010 */ lwc1 $f6,0x10($t9)
|
|
/* f040e68: e7b001e0 */ swc1 $f16,0x1e0($sp)
|
|
/* f040e6c: 46124101 */ sub.s $f4,$f8,$f18
|
|
/* f040e70: 27a601e8 */ addiu $a2,$sp,0x1e8
|
|
/* f040e74: e7a600c0 */ swc1 $f6,0xc0($sp)
|
|
/* f040e78: 460a3401 */ sub.s $f16,$f6,$f10
|
|
/* f040e7c: e7a401e4 */ swc1 $f4,0x1e4($sp)
|
|
/* f040e80: 0c0011e4 */ jal guNormalize
|
|
/* f040e84: e7b001e8 */ swc1 $f16,0x1e8($sp)
|
|
/* f040e88: 1000003b */ b .L0f040f78
|
|
/* f040e8c: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f040e90:
|
|
/* f040e90: 93a40260 */ lbu $a0,0x260($sp)
|
|
.L0f040e94:
|
|
/* f040e94: 24050017 */ addiu $a1,$zero,0x17
|
|
/* f040e98: 24010012 */ addiu $at,$zero,0x12
|
|
/* f040e9c: 14a40003 */ bne $a1,$a0,.L0f040eac
|
|
/* f040ea0: 00000000 */ nop
|
|
/* f040ea4: 50400004 */ beqzl $v0,.L0f040eb8
|
|
/* f040ea8: 8fae025c */ lw $t6,0x25c($sp)
|
|
.L0f040eac:
|
|
/* f040eac: 14810017 */ bne $a0,$at,.L0f040f0c
|
|
/* f040eb0: 00000000 */ nop
|
|
/* f040eb4: 8fae025c */ lw $t6,0x25c($sp)
|
|
.L0f040eb8:
|
|
/* f040eb8: 24010003 */ addiu $at,$zero,0x3
|
|
/* f040ebc: 8faa025c */ lw $t2,0x25c($sp)
|
|
/* f040ec0: 91c20000 */ lbu $v0,0x0($t6)
|
|
/* f040ec4: 10410003 */ beq $v0,$at,.L0f040ed4
|
|
/* f040ec8: 24010006 */ addiu $at,$zero,0x6
|
|
/* f040ecc: 1441002a */ bne $v0,$at,.L0f040f78
|
|
/* f040ed0: 00000000 */ nop
|
|
.L0f040ed4:
|
|
/* f040ed4: c5480008 */ lwc1 $f8,0x8($t2)
|
|
/* f040ed8: 27a40244 */ addiu $a0,$sp,0x244
|
|
/* f040edc: 8fa500cc */ lw $a1,0xcc($sp)
|
|
/* f040ee0: e7a800b8 */ swc1 $f8,0xb8($sp)
|
|
/* f040ee4: 8d4b0004 */ lw $t3,0x4($t2)
|
|
/* f040ee8: 27a600b8 */ addiu $a2,$sp,0xb8
|
|
/* f040eec: 27a701e0 */ addiu $a3,$sp,0x1e0
|
|
/* f040ef0: c57200b4 */ lwc1 $f18,0xb4($t3)
|
|
/* f040ef4: e7b200bc */ swc1 $f18,0xbc($sp)
|
|
/* f040ef8: c5440010 */ lwc1 $f4,0x10($t2)
|
|
/* f040efc: 0fc100c7 */ jal func0f04031c
|
|
/* f040f00: e7a400c0 */ swc1 $f4,0xc0($sp)
|
|
/* f040f04: 1000001c */ b .L0f040f78
|
|
/* f040f08: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f040f0c:
|
|
/* f040f0c: 14a40002 */ bne $a1,$a0,.L0f040f18
|
|
/* f040f10: 24010001 */ addiu $at,$zero,0x1
|
|
/* f040f14: 10410003 */ beq $v0,$at,.L0f040f24
|
|
.L0f040f18:
|
|
/* f040f18: 2401001b */ addiu $at,$zero,0x1b
|
|
/* f040f1c: 14810016 */ bne $a0,$at,.L0f040f78
|
|
/* f040f20: 00000000 */ nop
|
|
.L0f040f24:
|
|
/* f040f24: 8faf025c */ lw $t7,0x25c($sp)
|
|
/* f040f28: 24010006 */ addiu $at,$zero,0x6
|
|
/* f040f2c: 27a40244 */ addiu $a0,$sp,0x244
|
|
/* f040f30: c5e60008 */ lwc1 $f6,0x8($t7)
|
|
/* f040f34: 27a600b8 */ addiu $a2,$sp,0xb8
|
|
/* f040f38: 27a701e0 */ addiu $a3,$sp,0x1e0
|
|
/* f040f3c: e7a600b8 */ swc1 $f6,0xb8($sp)
|
|
/* f040f40: c5ea000c */ lwc1 $f10,0xc($t7)
|
|
/* f040f44: e7aa00bc */ swc1 $f10,0xbc($sp)
|
|
/* f040f48: c5f00010 */ lwc1 $f16,0x10($t7)
|
|
/* f040f4c: e7b000c0 */ swc1 $f16,0xc0($sp)
|
|
/* f040f50: 91f80000 */ lbu $t8,0x0($t7)
|
|
/* f040f54: 17010005 */ bne $t8,$at,.L0f040f6c
|
|
/* f040f58: 3c0141c8 */ lui $at,0x41c8
|
|
/* f040f5c: 44814000 */ mtc1 $at,$f8
|
|
/* f040f60: 00000000 */ nop
|
|
/* f040f64: 46085481 */ sub.s $f18,$f10,$f8
|
|
/* f040f68: e7b200bc */ swc1 $f18,0xbc($sp)
|
|
.L0f040f6c:
|
|
/* f040f6c: 0fc100c7 */ jal func0f04031c
|
|
/* f040f70: 8fa500cc */ lw $a1,0xcc($sp)
|
|
/* f040f74: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f040f78:
|
|
/* f040f78: 10600017 */ beqz $v1,.L0f040fd8
|
|
/* f040f7c: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f040f80: 0fc122a1 */ jal chrGetAngleToPos
|
|
/* f040f84: 27a500b8 */ addiu $a1,$sp,0xb8
|
|
/* f040f88: e7a000b4 */ swc1 $f0,0xb4($sp)
|
|
/* f040f8c: 0c0068f4 */ jal cosf
|
|
/* f040f90: 46000306 */ mov.s $f12,$f0
|
|
/* f040f94: c7ac00b4 */ lwc1 $f12,0xb4($sp)
|
|
/* f040f98: 0c0068f7 */ jal sinf
|
|
/* f040f9c: e7a000b0 */ swc1 $f0,0xb0($sp)
|
|
/* f040fa0: c7ac01e8 */ lwc1 $f12,0x1e8($sp)
|
|
/* f040fa4: c7ae00b0 */ lwc1 $f14,0xb0($sp)
|
|
/* f040fa8: c7a201e0 */ lwc1 $f2,0x1e0($sp)
|
|
/* f040fac: 460c0102 */ mul.s $f4,$f0,$f12
|
|
/* f040fb0: 00000000 */ nop
|
|
/* f040fb4: 46027182 */ mul.s $f6,$f14,$f2
|
|
/* f040fb8: 00000000 */ nop
|
|
/* f040fbc: 460c7282 */ mul.s $f10,$f14,$f12
|
|
/* f040fc0: 00000000 */ nop
|
|
/* f040fc4: 46020202 */ mul.s $f8,$f0,$f2
|
|
/* f040fc8: 46062400 */ add.s $f16,$f4,$f6
|
|
/* f040fcc: e7b001e0 */ swc1 $f16,0x1e0($sp)
|
|
/* f040fd0: 46085481 */ sub.s $f18,$f10,$f8
|
|
/* f040fd4: e7b201e8 */ swc1 $f18,0x1e8($sp)
|
|
.L0f040fd8:
|
|
/* f040fd8: 0c00566c */ jal func000159b0
|
|
/* f040fdc: 27a40178 */ addiu $a0,$sp,0x178
|
|
/* f040fe0: c7ac0200 */ lwc1 $f12,0x200($sp)
|
|
/* f040fe4: 0c0058ba */ jal func000162e8
|
|
/* f040fe8: 27a5011c */ addiu $a1,$sp,0x11c
|
|
/* f040fec: c7ac0204 */ lwc1 $f12,0x204($sp)
|
|
/* f040ff0: 0c0058dd */ jal func00016374
|
|
/* f040ff4: 27a500dc */ addiu $a1,$sp,0xdc
|
|
/* f040ff8: 27a400dc */ addiu $a0,$sp,0xdc
|
|
/* f040ffc: 0c0056f8 */ jal func00015be0
|
|
/* f041000: 27a5011c */ addiu $a1,$sp,0x11c
|
|
/* f041004: c7ac0168 */ lwc1 $f12,0x168($sp)
|
|
/* f041008: c7a401e0 */ lwc1 $f4,0x1e0($sp)
|
|
/* f04100c: c7b001e4 */ lwc1 $f16,0x1e4($sp)
|
|
/* f041010: c7a801e8 */ lwc1 $f8,0x1e8($sp)
|
|
/* f041014: 460c2182 */ mul.s $f6,$f4,$f12
|
|
/* f041018: c7a200cc */ lwc1 $f2,0xcc($sp)
|
|
/* f04101c: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
|
|
/* f041020: 460c8282 */ mul.s $f10,$f16,$f12
|
|
/* f041024: c420a00c */ lwc1 $f0,%lo(g_Vars+0x4c)($at)
|
|
/* f041028: 8fac00d4 */ lw $t4,0xd4($sp)
|
|
/* f04102c: 460c4482 */ mul.s $f18,$f8,$f12
|
|
/* f041030: e7a6015c */ swc1 $f6,0x15c($sp)
|
|
/* f041034: 8fa401b8 */ lw $a0,0x1b8($sp)
|
|
/* f041038: 46022102 */ mul.s $f4,$f4,$f2
|
|
/* f04103c: e7aa0160 */ swc1 $f10,0x160($sp)
|
|
/* f041040: 2401ffff */ addiu $at,$zero,-1
|
|
/* f041044: 46003182 */ mul.s $f6,$f6,$f0
|
|
/* f041048: e7b20164 */ swc1 $f18,0x164($sp)
|
|
/* f04104c: 27a50244 */ addiu $a1,$sp,0x244
|
|
/* f041050: 27a60234 */ addiu $a2,$sp,0x234
|
|
/* f041054: 27a7011c */ addiu $a3,$sp,0x11c
|
|
/* f041058: 27ae016c */ addiu $t6,$sp,0x16c
|
|
/* f04105c: 27ab0178 */ addiu $t3,$sp,0x178
|
|
/* f041060: 46062100 */ add.s $f4,$f4,$f6
|
|
/* f041064: 46028182 */ mul.s $f6,$f16,$f2
|
|
/* f041068: e7a4016c */ swc1 $f4,0x16c($sp)
|
|
/* f04106c: 46005102 */ mul.s $f4,$f10,$f0
|
|
/* f041070: 46043400 */ add.s $f16,$f6,$f4
|
|
/* f041074: 46024282 */ mul.s $f10,$f8,$f2
|
|
/* f041078: 00000000 */ nop
|
|
/* f04107c: 46009182 */ mul.s $f6,$f18,$f0
|
|
/* f041080: e7b00170 */ swc1 $f16,0x170($sp)
|
|
/* f041084: 46065100 */ add.s $f4,$f10,$f6
|
|
/* f041088: e7a40174 */ swc1 $f4,0x174($sp)
|
|
/* f04108c: 8d8d0058 */ lw $t5,0x58($t4)
|
|
/* f041090: a48d0062 */ sh $t5,0x62($a0)
|
|
/* f041094: 84820062 */ lh $v0,0x62($a0)
|
|
/* f041098: 10410002 */ beq $v0,$at,.L0f0410a4
|
|
/* f04109c: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f0410a0: a4990062 */ sh $t9,0x62($a0)
|
|
.L0f0410a4:
|
|
/* f0410a4: 8faa0274 */ lw $t2,0x274($sp)
|
|
/* f0410a8: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0410ac: afab0014 */ sw $t3,0x14($sp)
|
|
/* f0410b0: afa5001c */ sw $a1,0x1c($sp)
|
|
/* f0410b4: 0fc27af3 */ jal func0f09ebcc
|
|
/* f0410b8: afaa0018 */ sw $t2,0x18($sp)
|
|
/* f0410bc: 8fa301b8 */ lw $v1,0x1b8($sp)
|
|
/* f0410c0: 8fac00d4 */ lw $t4,0xd4($sp)
|
|
/* f0410c4: 8c6f0040 */ lw $t7,0x40($v1)
|
|
/* f0410c8: 31f80080 */ andi $t8,$t7,0x80
|
|
/* f0410cc: 13000047 */ beqz $t8,.L0f0411ec
|
|
/* f0410d0: 00000000 */ nop
|
|
/* f0410d4: 8d820010 */ lw $v0,0x10($t4)
|
|
/* f0410d8: 00026800 */ sll $t5,$v0,0x0
|
|
/* f0410dc: 05a10007 */ bgez $t5,.L0f0410fc
|
|
/* f0410e0: 00025900 */ sll $t3,$v0,0x4
|
|
/* f0410e4: 8c620048 */ lw $v0,0x48($v1)
|
|
/* f0410e8: 3c014000 */ lui $at,0x4000
|
|
/* f0410ec: 8c590000 */ lw $t9,0x0($v0)
|
|
/* f0410f0: 03217025 */ or $t6,$t9,$at
|
|
/* f0410f4: 10000007 */ b .L0f041114
|
|
/* f0410f8: ac4e0000 */ sw $t6,0x0($v0)
|
|
.L0f0410fc:
|
|
/* f0410fc: 05630006 */ bgezl $t3,.L0f041118
|
|
/* f041100: c7b0015c */ lwc1 $f16,0x15c($sp)
|
|
/* f041104: 8c620048 */ lw $v0,0x48($v1)
|
|
/* f041108: 8c4a0000 */ lw $t2,0x0($v0)
|
|
/* f04110c: 354f0010 */ ori $t7,$t2,0x10
|
|
/* f041110: ac4f0000 */ sw $t7,0x0($v0)
|
|
.L0f041114:
|
|
/* f041114: c7b0015c */ lwc1 $f16,0x15c($sp)
|
|
.L0f041118:
|
|
/* f041118: 8c780048 */ lw $t8,0x48($v1)
|
|
/* f04111c: 241900f0 */ addiu $t9,$zero,0xf0
|
|
/* f041120: 3c017f1b */ lui $at,%hi(var7f1a90d8)
|
|
/* f041124: e7100010 */ swc1 $f16,0x10($t8)
|
|
/* f041128: 8c6c0048 */ lw $t4,0x48($v1)
|
|
/* f04112c: c7a80160 */ lwc1 $f8,0x160($sp)
|
|
/* f041130: e5880014 */ swc1 $f8,0x14($t4)
|
|
/* f041134: 8c6d0048 */ lw $t5,0x48($v1)
|
|
/* f041138: c7b20164 */ lwc1 $f18,0x164($sp)
|
|
/* f04113c: e5b20018 */ swc1 $f18,0x18($t5)
|
|
/* f041140: 8c6e0048 */ lw $t6,0x48($v1)
|
|
/* f041144: add900b4 */ sw $t9,0xb4($t6)
|
|
/* f041148: 8fab00d4 */ lw $t3,0xd4($sp)
|
|
/* f04114c: 8c6a0048 */ lw $t2,0x48($v1)
|
|
/* f041150: c56a005c */ lwc1 $f10,0x5c($t3)
|
|
/* f041154: e54a008c */ swc1 $f10,0x8c($t2)
|
|
/* f041158: 8faf00d4 */ lw $t7,0xd4($sp)
|
|
/* f04115c: c42490d8 */ lwc1 $f4,%lo(var7f1a90d8)($at)
|
|
/* f041160: 8c780048 */ lw $t8,0x48($v1)
|
|
/* f041164: c5e60050 */ lwc1 $f6,0x50($t7)
|
|
/* f041168: 46043402 */ mul.s $f16,$f6,$f4
|
|
/* f04116c: e7100098 */ swc1 $f16,0x98($t8)
|
|
/* f041170: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f041174: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f041178: 8fac01b8 */ lw $t4,0x1b8($sp)
|
|
/* f04117c: 3c01bf80 */ lui $at,0xbf80
|
|
/* f041180: 00002025 */ or $a0,$zero,$zero
|
|
/* f041184: 8d8d0048 */ lw $t5,0x48($t4)
|
|
/* f041188: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f04118c: 240effff */ addiu $t6,$zero,-1
|
|
/* f041190: ada200e8 */ sw $v0,0xe8($t5)
|
|
/* f041194: 8fb900d4 */ lw $t9,0xd4($sp)
|
|
/* f041198: 240bffff */ addiu $t3,$zero,-1
|
|
/* f04119c: 87260060 */ lh $a2,0x60($t9)
|
|
/* f0411a0: 18c00012 */ blez $a2,.L0f0411ec
|
|
/* f0411a4: 00000000 */ nop
|
|
/* f0411a8: 8d850014 */ lw $a1,0x14($t4)
|
|
/* f0411ac: 44810000 */ mtc1 $at,$f0
|
|
/* f0411b0: afab002c */ sw $t3,0x2c($sp)
|
|
/* f0411b4: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0411b8: afa00020 */ sw $zero,0x20($sp)
|
|
/* f0411bc: afa0001c */ sw $zero,0x1c($sp)
|
|
/* f0411c0: afa00018 */ sw $zero,0x18($sp)
|
|
/* f0411c4: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0411c8: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0411cc: e7a00024 */ swc1 $f0,0x24($sp)
|
|
/* f0411d0: e7a00030 */ swc1 $f0,0x30($sp)
|
|
/* f0411d4: e7a00034 */ swc1 $f0,0x34($sp)
|
|
/* f0411d8: 0fc24e7e */ jal func0f0939f8
|
|
/* f0411dc: e7a00038 */ swc1 $f0,0x38($sp)
|
|
/* f0411e0: 10000002 */ b .L0f0411ec
|
|
/* f0411e4: 00000000 */ nop
|
|
/* f0411e8: afa00268 */ sw $zero,0x268($sp)
|
|
.L0f0411ec:
|
|
/* f0411ec: 10000019 */ b .L0f041254
|
|
/* f0411f0: a3a0026e */ sb $zero,0x26e($sp)
|
|
/* f0411f4: 24010006 */ addiu $at,$zero,0x6
|
|
.L0f0411f8:
|
|
/* f0411f8: 14810016 */ bne $a0,$at,.L0f041254
|
|
/* f0411fc: 93aa026f */ lbu $t2,0x26f($sp)
|
|
/* f041200: 11400014 */ beqz $t2,.L0f041254
|
|
/* f041204: 93af0263 */ lbu $t7,0x263($sp)
|
|
/* f041208: 24010001 */ addiu $at,$zero,0x1
|
|
/* f04120c: 15e10011 */ bne $t7,$at,.L0f041254
|
|
/* f041210: 8fad0278 */ lw $t5,0x278($sp)
|
|
/* f041214: 8fa2027c */ lw $v0,0x27c($sp)
|
|
/* f041218: 8db902d4 */ lw $t9,0x2d4($t5)
|
|
/* f04121c: 3c014120 */ lui $at,0x4120
|
|
/* f041220: 0002c080 */ sll $t8,$v0,0x2
|
|
/* f041224: 03386021 */ addu $t4,$t9,$t8
|
|
/* f041228: c58800e4 */ lwc1 $f8,0xe4($t4)
|
|
/* f04122c: 44819000 */ mtc1 $at,$f18
|
|
/* f041230: 44802000 */ mtc1 $zero,$f4
|
|
/* f041234: 46124282 */ mul.s $f10,$f8,$f18
|
|
/* f041238: 4600518d */ trunc.w.s $f6,$f10
|
|
/* f04123c: 440b3000 */ mfc1 $t3,$f6
|
|
/* f041240: 00000000 */ nop
|
|
/* f041244: a3ab0262 */ sb $t3,0x262($sp)
|
|
/* f041248: 8daa02d4 */ lw $t2,0x2d4($t5)
|
|
/* f04124c: 01587821 */ addu $t7,$t2,$t8
|
|
/* f041250: e5e400e4 */ swc1 $f4,0xe4($t7)
|
|
.L0f041254:
|
|
/* f041254: 93b8026e */ lbu $t8,0x26e($sp)
|
|
/* f041258: 93b9026f */ lbu $t9,0x26f($sp)
|
|
/* f04125c: 530001c0 */ beqzl $t8,.L0f041960
|
|
/* f041260: 8fae01c0 */ lw $t6,0x1c0($sp)
|
|
/* f041264: 172000d6 */ bnez $t9,.L0f0415c0
|
|
/* f041268: 8fac0258 */ lw $t4,0x258($sp)
|
|
/* f04126c: 318e0200 */ andi $t6,$t4,0x200
|
|
/* f041270: 11c0004c */ beqz $t6,.L0f0413a4
|
|
/* f041274: 8fab025c */ lw $t3,0x25c($sp)
|
|
/* f041278: 916d0000 */ lbu $t5,0x0($t3)
|
|
/* f04127c: 24010006 */ addiu $at,$zero,0x6
|
|
/* f041280: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f041284: 15a10047 */ bne $t5,$at,.L0f0413a4
|
|
/* f041288: 27a50244 */ addiu $a1,$sp,0x244
|
|
/* f04128c: 27a60234 */ addiu $a2,$sp,0x234
|
|
/* f041290: 0fc0e47b */ jal chrCanSeeAttackTarget
|
|
/* f041294: 00003825 */ or $a3,$zero,$zero
|
|
/* f041298: 10400042 */ beqz $v0,.L0f0413a4
|
|
/* f04129c: 8faa025c */ lw $t2,0x25c($sp)
|
|
/* f0412a0: 8d440004 */ lw $a0,0x4($t2)
|
|
/* f0412a4: 8fa50278 */ lw $a1,0x278($sp)
|
|
/* f0412a8: 0fc12aa3 */ jal chrCompareTeams
|
|
/* f0412ac: 24060002 */ addiu $a2,$zero,0x2
|
|
/* f0412b0: 1040003c */ beqz $v0,.L0f0413a4
|
|
/* f0412b4: 3c014170 */ lui $at,0x4170
|
|
/* f0412b8: 44817000 */ mtc1 $at,$f14
|
|
/* f0412bc: 8faf025c */ lw $t7,0x25c($sp)
|
|
/* f0412c0: c7aa01e0 */ lwc1 $f10,0x1e0($sp)
|
|
/* f0412c4: c7a80244 */ lwc1 $f8,0x244($sp)
|
|
/* f0412c8: c5f00008 */ lwc1 $f16,0x8($t7)
|
|
/* f0412cc: 460e5182 */ mul.s $f6,$f10,$f14
|
|
/* f0412d0: c7aa01e4 */ lwc1 $f10,0x1e4($sp)
|
|
/* f0412d4: 46088481 */ sub.s $f18,$f16,$f8
|
|
/* f0412d8: c7b00248 */ lwc1 $f16,0x248($sp)
|
|
/* f0412dc: c5e4000c */ lwc1 $f4,0xc($t7)
|
|
/* f0412e0: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f0412e4: 27a501f8 */ addiu $a1,$sp,0x1f8
|
|
/* f0412e8: 46069001 */ sub.s $f0,$f18,$f6
|
|
/* f0412ec: 460e5482 */ mul.s $f18,$f10,$f14
|
|
/* f0412f0: c7aa01e8 */ lwc1 $f10,0x1e8($sp)
|
|
/* f0412f4: 46102201 */ sub.s $f8,$f4,$f16
|
|
/* f0412f8: c7a4024c */ lwc1 $f4,0x24c($sp)
|
|
/* f0412fc: c5e60010 */ lwc1 $f6,0x10($t7)
|
|
/* f041300: 27a601f4 */ addiu $a2,$sp,0x1f4
|
|
/* f041304: 46124081 */ sub.s $f2,$f8,$f18
|
|
/* f041308: 460e5202 */ mul.s $f8,$f10,$f14
|
|
/* f04130c: c7b201d0 */ lwc1 $f18,0x1d0($sp)
|
|
/* f041310: 46043401 */ sub.s $f16,$f6,$f4
|
|
/* f041314: 46000182 */ mul.s $f6,$f0,$f0
|
|
/* f041318: 00000000 */ nop
|
|
/* f04131c: 46021102 */ mul.s $f4,$f2,$f2
|
|
/* f041320: 46088301 */ sub.s $f12,$f16,$f8
|
|
/* f041324: 460c6402 */ mul.s $f16,$f12,$f12
|
|
/* f041328: 46043280 */ add.s $f10,$f6,$f4
|
|
/* f04132c: 46105200 */ add.s $f8,$f10,$f16
|
|
/* f041330: 4612403e */ c.le.s $f8,$f18
|
|
/* f041334: 00000000 */ nop
|
|
/* f041338: 4500002b */ bc1f .L0f0413e8
|
|
/* f04133c: 00000000 */ nop
|
|
/* f041340: 0fc0feac */ jal func0f03fab0
|
|
/* f041344: 27a70260 */ addiu $a3,$sp,0x260
|
|
/* f041348: 8fb801f4 */ lw $t8,0x1f4($sp)
|
|
/* f04134c: 8fac01f8 */ lw $t4,0x1f8($sp)
|
|
/* f041350: 8fae0278 */ lw $t6,0x278($sp)
|
|
/* f041354: 2f190001 */ sltiu $t9,$t8,0x1
|
|
/* f041358: 11800023 */ beqz $t4,.L0f0413e8
|
|
/* f04135c: afb901f0 */ sw $t9,0x1f0($sp)
|
|
/* f041360: 81c30007 */ lb $v1,0x7($t6)
|
|
/* f041364: 24010008 */ addiu $at,$zero,0x8
|
|
/* f041368: 3c0b800a */ lui $t3,%hi(g_Vars+0x8)
|
|
/* f04136c: 1061000a */ beq $v1,$at,.L0f041398
|
|
/* f041370: 8fad0278 */ lw $t5,0x278($sp)
|
|
/* f041374: 2401000a */ addiu $at,$zero,0xa
|
|
/* f041378: 10610007 */ beq $v1,$at,.L0f041398
|
|
/* f04137c: 2401001b */ addiu $at,$zero,0x1b
|
|
/* f041380: 10610005 */ beq $v1,$at,.L0f041398
|
|
/* f041384: 2401001c */ addiu $at,$zero,0x1c
|
|
/* f041388: 10610003 */ beq $v1,$at,.L0f041398
|
|
/* f04138c: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f041390: 54610016 */ bnel $v1,$at,.L0f0413ec
|
|
/* f041394: 8fb901f4 */ lw $t9,0x1f4($sp)
|
|
.L0f041398:
|
|
/* f041398: 8d6b9fc8 */ lw $t3,%lo(g_Vars+0x8)($t3)
|
|
/* f04139c: 10000012 */ b .L0f0413e8
|
|
/* f0413a0: adab0048 */ sw $t3,0x48($t5)
|
|
.L0f0413a4:
|
|
/* f0413a4: 8faa0278 */ lw $t2,0x278($sp)
|
|
/* f0413a8: 24010008 */ addiu $at,$zero,0x8
|
|
/* f0413ac: 3c0f800a */ lui $t7,%hi(g_Vars+0x8)
|
|
/* f0413b0: 81430007 */ lb $v1,0x7($t2)
|
|
/* f0413b4: 8fb80278 */ lw $t8,0x278($sp)
|
|
/* f0413b8: 10610009 */ beq $v1,$at,.L0f0413e0
|
|
/* f0413bc: 2401000a */ addiu $at,$zero,0xa
|
|
/* f0413c0: 10610007 */ beq $v1,$at,.L0f0413e0
|
|
/* f0413c4: 2401001b */ addiu $at,$zero,0x1b
|
|
/* f0413c8: 10610005 */ beq $v1,$at,.L0f0413e0
|
|
/* f0413cc: 2401001c */ addiu $at,$zero,0x1c
|
|
/* f0413d0: 10610003 */ beq $v1,$at,.L0f0413e0
|
|
/* f0413d4: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f0413d8: 54610004 */ bnel $v1,$at,.L0f0413ec
|
|
/* f0413dc: 8fb901f4 */ lw $t9,0x1f4($sp)
|
|
.L0f0413e0:
|
|
/* f0413e0: 8def9fc8 */ lw $t7,%lo(g_Vars+0x8)($t7)
|
|
/* f0413e4: af0f0048 */ sw $t7,0x48($t8)
|
|
.L0f0413e8:
|
|
/* f0413e8: 8fb901f4 */ lw $t9,0x1f4($sp)
|
|
.L0f0413ec:
|
|
/* f0413ec: 8faa01cc */ lw $t2,0x1cc($sp)
|
|
/* f0413f0: 13200065 */ beqz $t9,.L0f041588
|
|
/* f0413f4: 00000000 */ nop
|
|
/* f0413f8: 0fc2c74a */ jal handGetDamage
|
|
/* f0413fc: 27a40260 */ addiu $a0,$sp,0x260
|
|
/* f041400: 8fab025c */ lw $t3,0x25c($sp)
|
|
/* f041404: 240cffff */ addiu $t4,$zero,-1
|
|
/* f041408: 240e00c8 */ addiu $t6,$zero,0xc8
|
|
/* f04140c: e7a0009c */ swc1 $f0,0x9c($sp)
|
|
/* f041410: afa00098 */ sw $zero,0x98($sp)
|
|
/* f041414: afa00094 */ sw $zero,0x94($sp)
|
|
/* f041418: afac0090 */ sw $t4,0x90($sp)
|
|
/* f04141c: afae008c */ sw $t6,0x8c($sp)
|
|
/* f041420: 8d6d0004 */ lw $t5,0x4($t3)
|
|
/* f041424: afad0088 */ sw $t5,0x88($sp)
|
|
/* f041428: c5660008 */ lwc1 $f6,0x8($t3)
|
|
/* f04142c: e7a60228 */ swc1 $f6,0x228($sp)
|
|
/* f041430: c564000c */ lwc1 $f4,0xc($t3)
|
|
/* f041434: e7a4022c */ swc1 $f4,0x22c($sp)
|
|
/* f041438: c56a0010 */ lwc1 $f10,0x10($t3)
|
|
/* f04143c: 0c004b70 */ jal random
|
|
/* f041440: e7aa0230 */ swc1 $f10,0x230($sp)
|
|
/* f041444: 304a0001 */ andi $t2,$v0,0x1
|
|
/* f041448: 11400012 */ beqz $t2,.L0f041494
|
|
/* f04144c: 00000000 */ nop
|
|
/* f041450: 0c004b70 */ jal random
|
|
/* f041454: 00000000 */ nop
|
|
/* f041458: 2401000a */ addiu $at,$zero,0xa
|
|
/* f04145c: 0041001b */ divu $zero,$v0,$at
|
|
/* f041460: 00007810 */ mfhi $t7
|
|
/* f041464: 25f80002 */ addiu $t8,$t7,0x2
|
|
/* f041468: 44989000 */ mtc1 $t8,$f18
|
|
/* f04146c: c7b0022c */ lwc1 $f16,0x22c($sp)
|
|
/* f041470: 07010005 */ bgez $t8,.L0f041488
|
|
/* f041474: 46809220 */ cvt.s.w $f8,$f18
|
|
/* f041478: 3c014f80 */ lui $at,0x4f80
|
|
/* f04147c: 44813000 */ mtc1 $at,$f6
|
|
/* f041480: 00000000 */ nop
|
|
/* f041484: 46064200 */ add.s $f8,$f8,$f6
|
|
.L0f041488:
|
|
/* f041488: 46088100 */ add.s $f4,$f16,$f8
|
|
/* f04148c: 10000011 */ b .L0f0414d4
|
|
/* f041490: e7a4022c */ swc1 $f4,0x22c($sp)
|
|
.L0f041494:
|
|
/* f041494: 0c004b70 */ jal random
|
|
/* f041498: 00000000 */ nop
|
|
/* f04149c: 2401000a */ addiu $at,$zero,0xa
|
|
/* f0414a0: 0041001b */ divu $zero,$v0,$at
|
|
/* f0414a4: 0000c810 */ mfhi $t9
|
|
/* f0414a8: 272c0002 */ addiu $t4,$t9,0x2
|
|
/* f0414ac: 448c9000 */ mtc1 $t4,$f18
|
|
/* f0414b0: c7aa022c */ lwc1 $f10,0x22c($sp)
|
|
/* f0414b4: 05810005 */ bgez $t4,.L0f0414cc
|
|
/* f0414b8: 468091a0 */ cvt.s.w $f6,$f18
|
|
/* f0414bc: 3c014f80 */ lui $at,0x4f80
|
|
/* f0414c0: 44818000 */ mtc1 $at,$f16
|
|
/* f0414c4: 00000000 */ nop
|
|
/* f0414c8: 46103180 */ add.s $f6,$f6,$f16
|
|
.L0f0414cc:
|
|
/* f0414cc: 46065201 */ sub.s $f8,$f10,$f6
|
|
/* f0414d0: e7a8022c */ swc1 $f8,0x22c($sp)
|
|
.L0f0414d4:
|
|
/* f0414d4: 27a40260 */ addiu $a0,$sp,0x260
|
|
/* f0414d8: 8fa5025c */ lw $a1,0x25c($sp)
|
|
/* f0414dc: 0fc29f66 */ jal func0f0a7d98
|
|
/* f0414e0: 2406ffff */ addiu $a2,$zero,-1
|
|
/* f0414e4: 8fa40088 */ lw $a0,0x88($sp)
|
|
/* f0414e8: 8c8e0020 */ lw $t6,0x20($a0)
|
|
/* f0414ec: 51c00012 */ beqzl $t6,.L0f041538
|
|
/* f0414f0: 8faf0278 */ lw $t7,0x278($sp)
|
|
/* f0414f4: 0fc0cfe8 */ jal chrGetShield
|
|
/* f0414f8: 00000000 */ nop
|
|
/* f0414fc: 44802000 */ mtc1 $zero,$f4
|
|
/* f041500: 8fa40088 */ lw $a0,0x88($sp)
|
|
/* f041504: 27a50228 */ addiu $a1,$sp,0x228
|
|
/* f041508: 4600203c */ c.lt.s $f4,$f0
|
|
/* f04150c: 27a601e0 */ addiu $a2,$sp,0x1e0
|
|
/* f041510: 27a70098 */ addiu $a3,$sp,0x98
|
|
/* f041514: 27ad008c */ addiu $t5,$sp,0x8c
|
|
/* f041518: 45000006 */ bc1f .L0f041534
|
|
/* f04151c: 27ab0094 */ addiu $t3,$sp,0x94
|
|
/* f041520: 27aa0090 */ addiu $t2,$sp,0x90
|
|
/* f041524: afaa0018 */ sw $t2,0x18($sp)
|
|
/* f041528: afad0010 */ sw $t5,0x10($sp)
|
|
/* f04152c: 0fc0ffcb */ jal func0f03ff2c
|
|
/* f041530: afab0014 */ sw $t3,0x14($sp)
|
|
.L0f041534:
|
|
/* f041534: 8faf0278 */ lw $t7,0x278($sp)
|
|
.L0f041538:
|
|
/* f041538: 8fac025c */ lw $t4,0x25c($sp)
|
|
/* f04153c: 8fae0098 */ lw $t6,0x98($sp)
|
|
/* f041540: 8df8001c */ lw $t8,0x1c($t7)
|
|
/* f041544: 8fad0094 */ lw $t5,0x94($sp)
|
|
/* f041548: 8fab0090 */ lw $t3,0x90($sp)
|
|
/* f04154c: 241900c8 */ addiu $t9,$zero,0xc8
|
|
/* f041550: 8fa40088 */ lw $a0,0x88($sp)
|
|
/* f041554: afb90014 */ sw $t9,0x14($sp)
|
|
/* f041558: afa00028 */ sw $zero,0x28($sp)
|
|
/* f04155c: 8fa5009c */ lw $a1,0x9c($sp)
|
|
/* f041560: 27a601e0 */ addiu $a2,$sp,0x1e0
|
|
/* f041564: 27a70260 */ addiu $a3,$sp,0x260
|
|
/* f041568: afac0018 */ sw $t4,0x18($sp)
|
|
/* f04156c: afae001c */ sw $t6,0x1c($sp)
|
|
/* f041570: afb80010 */ sw $t8,0x10($sp)
|
|
/* f041574: afad0020 */ sw $t5,0x20($sp)
|
|
/* f041578: 0fc0d077 */ jal func0f0341dc
|
|
/* f04157c: afab0024 */ sw $t3,0x24($sp)
|
|
/* f041580: 10000010 */ b .L0f0415c4
|
|
/* f041584: 8faf01f0 */ lw $t7,0x1f0($sp)
|
|
.L0f041588:
|
|
/* f041588: 11400006 */ beqz $t2,.L0f0415a4
|
|
/* f04158c: c7b201d0 */ lwc1 $f18,0x1d0($sp)
|
|
/* f041590: 91420000 */ lbu $v0,0x0($t2)
|
|
/* f041594: 24010003 */ addiu $at,$zero,0x3
|
|
/* f041598: 10410009 */ beq $v0,$at,.L0f0415c0
|
|
/* f04159c: 24010006 */ addiu $at,$zero,0x6
|
|
/* f0415a0: 10410007 */ beq $v0,$at,.L0f0415c0
|
|
.L0f0415a4:
|
|
/* f0415a4: 3c017f1b */ lui $at,%hi(var7f1a90dc)
|
|
/* f0415a8: c43090dc */ lwc1 $f16,%lo(var7f1a90dc)($at)
|
|
/* f0415ac: 4610903c */ c.lt.s $f18,$f16
|
|
/* f0415b0: 00000000 */ nop
|
|
/* f0415b4: 45020003 */ bc1fl .L0f0415c4
|
|
/* f0415b8: 8faf01f0 */ lw $t7,0x1f0($sp)
|
|
/* f0415bc: afa001f0 */ sw $zero,0x1f0($sp)
|
|
.L0f0415c0:
|
|
/* f0415c0: 8faf01f0 */ lw $t7,0x1f0($sp)
|
|
.L0f0415c4:
|
|
/* f0415c4: 8fb801cc */ lw $t8,0x1cc($sp)
|
|
/* f0415c8: 51e000e5 */ beqzl $t7,.L0f041960
|
|
/* f0415cc: 8fae01c0 */ lw $t6,0x1c0($sp)
|
|
/* f0415d0: 130000a2 */ beqz $t8,.L0f04185c
|
|
/* f0415d4: 8fae0224 */ lw $t6,0x224($sp)
|
|
/* f0415d8: 93020000 */ lbu $v0,0x0($t8)
|
|
/* f0415dc: 24010006 */ addiu $at,$zero,0x6
|
|
/* f0415e0: 93b9026f */ lbu $t9,0x26f($sp)
|
|
/* f0415e4: 10410003 */ beq $v0,$at,.L0f0415f4
|
|
/* f0415e8: 24010003 */ addiu $at,$zero,0x3
|
|
/* f0415ec: 54410053 */ bnel $v0,$at,.L0f04173c
|
|
/* f0415f0: 24010001 */ addiu $at,$zero,0x1
|
|
.L0f0415f4:
|
|
/* f0415f4: 1720000c */ bnez $t9,.L0f041628
|
|
/* f0415f8: 8fac01bc */ lw $t4,0x1bc($sp)
|
|
/* f0415fc: 1580000a */ bnez $t4,.L0f041628
|
|
/* f041600: 8fae0278 */ lw $t6,0x278($sp)
|
|
/* f041604: 8dcd0018 */ lw $t5,0x18($t6)
|
|
/* f041608: 8faa01cc */ lw $t2,0x1cc($sp)
|
|
/* f04160c: 01c02825 */ or $a1,$t6,$zero
|
|
/* f041610: 31ab0040 */ andi $t3,$t5,0x40
|
|
/* f041614: 11600045 */ beqz $t3,.L0f04172c
|
|
/* f041618: 24060002 */ addiu $a2,$zero,0x2
|
|
/* f04161c: 0fc12aa3 */ jal chrCompareTeams
|
|
/* f041620: 8d440004 */ lw $a0,0x4($t2)
|
|
/* f041624: 10400041 */ beqz $v0,.L0f04172c
|
|
.L0f041628:
|
|
/* f041628: 240fffff */ addiu $t7,$zero,-1
|
|
/* f04162c: 241800c8 */ addiu $t8,$zero,0xc8
|
|
/* f041630: afa00084 */ sw $zero,0x84($sp)
|
|
/* f041634: afa00080 */ sw $zero,0x80($sp)
|
|
/* f041638: afaf007c */ sw $t7,0x7c($sp)
|
|
/* f04163c: afb80078 */ sw $t8,0x78($sp)
|
|
/* f041640: 0fc2c74a */ jal handGetDamage
|
|
/* f041644: 27a40260 */ addiu $a0,$sp,0x260
|
|
/* f041648: 8fa501cc */ lw $a1,0x1cc($sp)
|
|
/* f04164c: e7a00074 */ swc1 $f0,0x74($sp)
|
|
/* f041650: 27a40260 */ addiu $a0,$sp,0x260
|
|
/* f041654: 8cac0004 */ lw $t4,0x4($a1)
|
|
/* f041658: 2406ffff */ addiu $a2,$zero,-1
|
|
/* f04165c: 0fc29f66 */ jal func0f0a7d98
|
|
/* f041660: afac0070 */ sw $t4,0x70($sp)
|
|
/* f041664: 8fa40070 */ lw $a0,0x70($sp)
|
|
/* f041668: 8c8d0020 */ lw $t5,0x20($a0)
|
|
/* f04166c: 51a00012 */ beqzl $t5,.L0f0416b8
|
|
/* f041670: 8fb80278 */ lw $t8,0x278($sp)
|
|
/* f041674: 0fc0cfe8 */ jal chrGetShield
|
|
/* f041678: 00000000 */ nop
|
|
/* f04167c: 44805000 */ mtc1 $zero,$f10
|
|
/* f041680: 8fa40070 */ lw $a0,0x70($sp)
|
|
/* f041684: 27a50228 */ addiu $a1,$sp,0x228
|
|
/* f041688: 4600503c */ c.lt.s $f10,$f0
|
|
/* f04168c: 27a601e0 */ addiu $a2,$sp,0x1e0
|
|
/* f041690: 27a70084 */ addiu $a3,$sp,0x84
|
|
/* f041694: 27ab0078 */ addiu $t3,$sp,0x78
|
|
/* f041698: 45000006 */ bc1f .L0f0416b4
|
|
/* f04169c: 27aa0080 */ addiu $t2,$sp,0x80
|
|
/* f0416a0: 27ae007c */ addiu $t6,$sp,0x7c
|
|
/* f0416a4: afae0018 */ sw $t6,0x18($sp)
|
|
/* f0416a8: afab0010 */ sw $t3,0x10($sp)
|
|
/* f0416ac: 0fc0ffcb */ jal func0f03ff2c
|
|
/* f0416b0: afaa0014 */ sw $t2,0x14($sp)
|
|
.L0f0416b4:
|
|
/* f0416b4: 8fb80278 */ lw $t8,0x278($sp)
|
|
.L0f0416b8:
|
|
/* f0416b8: 27af01e0 */ addiu $t7,$sp,0x1e0
|
|
/* f0416bc: 8fa40070 */ lw $a0,0x70($sp)
|
|
/* f0416c0: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0416c4: 8fa501cc */ lw $a1,0x1cc($sp)
|
|
/* f0416c8: 8fa60078 */ lw $a2,0x78($sp)
|
|
/* f0416cc: 27a70228 */ addiu $a3,$sp,0x228
|
|
/* f0416d0: 0fc097a9 */ jal chrEmitSparks
|
|
/* f0416d4: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0416d8: 8fac0278 */ lw $t4,0x278($sp)
|
|
/* f0416dc: 8fab01cc */ lw $t3,0x1cc($sp)
|
|
/* f0416e0: 8faa0084 */ lw $t2,0x84($sp)
|
|
/* f0416e4: 8d99001c */ lw $t9,0x1c($t4)
|
|
/* f0416e8: 8fae0080 */ lw $t6,0x80($sp)
|
|
/* f0416ec: 8faf007c */ lw $t7,0x7c($sp)
|
|
/* f0416f0: 240d00c8 */ addiu $t5,$zero,0xc8
|
|
/* f0416f4: afad0014 */ sw $t5,0x14($sp)
|
|
/* f0416f8: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0416fc: 8fa40070 */ lw $a0,0x70($sp)
|
|
/* f041700: 8fa50074 */ lw $a1,0x74($sp)
|
|
/* f041704: 27a601e0 */ addiu $a2,$sp,0x1e0
|
|
/* f041708: 27a70260 */ addiu $a3,$sp,0x260
|
|
/* f04170c: afab0018 */ sw $t3,0x18($sp)
|
|
/* f041710: afaa001c */ sw $t2,0x1c($sp)
|
|
/* f041714: afb90010 */ sw $t9,0x10($sp)
|
|
/* f041718: afae0020 */ sw $t6,0x20($sp)
|
|
/* f04171c: 0fc0d077 */ jal func0f0341dc
|
|
/* f041720: afaf0024 */ sw $t7,0x24($sp)
|
|
/* f041724: 1000006f */ b .L0f0418e4
|
|
/* f041728: 93ac0260 */ lbu $t4,0x260($sp)
|
|
.L0f04172c:
|
|
/* f04172c: afa00250 */ sw $zero,0x250($sp)
|
|
/* f041730: 1000006b */ b .L0f0418e0
|
|
/* f041734: afa00268 */ sw $zero,0x268($sp)
|
|
/* f041738: 24010001 */ addiu $at,$zero,0x1
|
|
.L0f04173c:
|
|
/* f04173c: 10410005 */ beq $v0,$at,.L0f041754
|
|
/* f041740: 8fb801cc */ lw $t8,0x1cc($sp)
|
|
/* f041744: 24010004 */ addiu $at,$zero,0x4
|
|
/* f041748: 10410002 */ beq $v0,$at,.L0f041754
|
|
/* f04174c: 24010002 */ addiu $at,$zero,0x2
|
|
/* f041750: 14410063 */ bne $v0,$at,.L0f0418e0
|
|
.L0f041754:
|
|
/* f041754: 3c0d800a */ lui $t5,%hi(g_Vars+0x314)
|
|
/* f041758: 8dada2d4 */ lw $t5,%lo(g_Vars+0x314)($t5)
|
|
/* f04175c: 8f0c0004 */ lw $t4,0x4($t8)
|
|
/* f041760: 2419ffff */ addiu $t9,$zero,-1
|
|
/* f041764: afb90068 */ sw $t9,0x68($sp)
|
|
/* f041768: 11a00004 */ beqz $t5,.L0f04177c
|
|
/* f04176c: afac006c */ sw $t4,0x6c($sp)
|
|
/* f041770: 0fc633fe */ jal mpPlayerGetIndex
|
|
/* f041774: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f041778: afa20068 */ sw $v0,0x68($sp)
|
|
.L0f04177c:
|
|
/* f04177c: 27a40260 */ addiu $a0,$sp,0x260
|
|
/* f041780: 8fa501cc */ lw $a1,0x1cc($sp)
|
|
/* f041784: 0fc29f66 */ jal func0f0a7d98
|
|
/* f041788: 2406ffff */ addiu $a2,$zero,-1
|
|
/* f04178c: 27a40244 */ addiu $a0,$sp,0x244
|
|
/* f041790: 27a50234 */ addiu $a1,$sp,0x234
|
|
/* f041794: 27a60228 */ addiu $a2,$sp,0x228
|
|
/* f041798: 0fc1979d */ jal func0f065e74
|
|
/* f04179c: 27a70214 */ addiu $a3,$sp,0x214
|
|
/* f0417a0: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f0417a4: afab0210 */ sw $t3,0x210($sp)
|
|
/* f0417a8: 0fc4f92a */ jal chrIsUsingPaintball
|
|
/* f0417ac: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f0417b0: 1040000b */ beqz $v0,.L0f0417e0
|
|
/* f0417b4: 87a40214 */ lh $a0,0x214($sp)
|
|
/* f0417b8: 240a0019 */ addiu $t2,$zero,0x19
|
|
/* f0417bc: afaa0014 */ sw $t2,0x14($sp)
|
|
/* f0417c0: 87a40214 */ lh $a0,0x214($sp)
|
|
/* f0417c4: 8fa501cc */ lw $a1,0x1cc($sp)
|
|
/* f0417c8: 27a60228 */ addiu $a2,$sp,0x228
|
|
/* f0417cc: 00003825 */ or $a3,$zero,$zero
|
|
/* f0417d0: 0fc4be7c */ jal sparksCreate
|
|
/* f0417d4: afa00010 */ sw $zero,0x10($sp)
|
|
/* f0417d8: 10000007 */ b .L0f0417f8
|
|
/* f0417dc: 00000000 */ nop
|
|
.L0f0417e0:
|
|
/* f0417e0: 8fa501cc */ lw $a1,0x1cc($sp)
|
|
/* f0417e4: 27a60228 */ addiu $a2,$sp,0x228
|
|
/* f0417e8: 00003825 */ or $a3,$zero,$zero
|
|
/* f0417ec: afa00010 */ sw $zero,0x10($sp)
|
|
/* f0417f0: 0fc4be7c */ jal sparksCreate
|
|
/* f0417f4: afa00014 */ sw $zero,0x14($sp)
|
|
.L0f0417f8:
|
|
/* f0417f8: 3c0e800a */ lui $t6,%hi(g_MissionConfig+0x3)
|
|
/* f0417fc: 81cfdfeb */ lb $t7,%lo(g_MissionConfig+0x3)($t6)
|
|
/* f041800: 8fb80278 */ lw $t8,0x278($sp)
|
|
/* f041804: 05e1000a */ bgez $t7,.L0f041830
|
|
/* f041808: 00000000 */ nop
|
|
/* f04180c: 930c0125 */ lbu $t4,0x125($t8)
|
|
/* f041810: 24010010 */ addiu $at,$zero,0x10
|
|
/* f041814: 8fb9006c */ lw $t9,0x6c($sp)
|
|
/* f041818: 15810005 */ bne $t4,$at,.L0f041830
|
|
/* f04181c: 00000000 */ nop
|
|
/* f041820: 8f2d000c */ lw $t5,0xc($t9)
|
|
/* f041824: 31ab0001 */ andi $t3,$t5,0x1
|
|
/* f041828: 5560002e */ bnezl $t3,.L0f0418e4
|
|
/* f04182c: 93ac0260 */ lbu $t4,0x260($sp)
|
|
.L0f041830:
|
|
/* f041830: 0fc2c74a */ jal handGetDamage
|
|
/* f041834: 27a40260 */ addiu $a0,$sp,0x260
|
|
/* f041838: 8faa0068 */ lw $t2,0x68($sp)
|
|
/* f04183c: 44050000 */ mfc1 $a1,$f0
|
|
/* f041840: 8fa4006c */ lw $a0,0x6c($sp)
|
|
/* f041844: 27a60228 */ addiu $a2,$sp,0x228
|
|
/* f041848: 93a70260 */ lbu $a3,0x260($sp)
|
|
/* f04184c: 0fc2149c */ jal func0f085270
|
|
/* f041850: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f041854: 10000023 */ b .L0f0418e4
|
|
/* f041858: 93ac0260 */ lbu $t4,0x260($sp)
|
|
.L0f04185c:
|
|
/* f04185c: 11c00020 */ beqz $t6,.L0f0418e0
|
|
/* f041860: 27a40244 */ addiu $a0,$sp,0x244
|
|
/* f041864: 27a50234 */ addiu $a1,$sp,0x234
|
|
/* f041868: 27a60228 */ addiu $a2,$sp,0x228
|
|
/* f04186c: 0fc1979d */ jal func0f065e74
|
|
/* f041870: 27a70214 */ addiu $a3,$sp,0x214
|
|
/* f041874: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f041878: afaf0210 */ sw $t7,0x210($sp)
|
|
/* f04187c: 27a40260 */ addiu $a0,$sp,0x260
|
|
/* f041880: 27a50228 */ addiu $a1,$sp,0x228
|
|
/* f041884: 2406ffff */ addiu $a2,$zero,-1
|
|
/* f041888: 0fc2a132 */ jal func0f0a84c8
|
|
/* f04188c: 27a70214 */ addiu $a3,$sp,0x214
|
|
/* f041890: 0fc4f92a */ jal chrIsUsingPaintball
|
|
/* f041894: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f041898: 1040000b */ beqz $v0,.L0f0418c8
|
|
/* f04189c: 87a40214 */ lh $a0,0x214($sp)
|
|
/* f0418a0: 24180019 */ addiu $t8,$zero,0x19
|
|
/* f0418a4: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0418a8: 87a40214 */ lh $a0,0x214($sp)
|
|
/* f0418ac: 00002825 */ or $a1,$zero,$zero
|
|
/* f0418b0: 27a60228 */ addiu $a2,$sp,0x228
|
|
/* f0418b4: 00003825 */ or $a3,$zero,$zero
|
|
/* f0418b8: 0fc4be7c */ jal sparksCreate
|
|
/* f0418bc: afa00010 */ sw $zero,0x10($sp)
|
|
/* f0418c0: 10000008 */ b .L0f0418e4
|
|
/* f0418c4: 93ac0260 */ lbu $t4,0x260($sp)
|
|
.L0f0418c8:
|
|
/* f0418c8: 00002825 */ or $a1,$zero,$zero
|
|
/* f0418cc: 27a60228 */ addiu $a2,$sp,0x228
|
|
/* f0418d0: 00003825 */ or $a3,$zero,$zero
|
|
/* f0418d4: afa00010 */ sw $zero,0x10($sp)
|
|
/* f0418d8: 0fc4be7c */ jal sparksCreate
|
|
/* f0418dc: afa00014 */ sw $zero,0x14($sp)
|
|
.L0f0418e0:
|
|
/* f0418e0: 93ac0260 */ lbu $t4,0x260($sp)
|
|
.L0f0418e4:
|
|
/* f0418e4: 24010007 */ addiu $at,$zero,0x7
|
|
/* f0418e8: 93b90263 */ lbu $t9,0x263($sp)
|
|
/* f0418ec: 1581001b */ bne $t4,$at,.L0f04195c
|
|
/* f0418f0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0418f4: 17210019 */ bne $t9,$at,.L0f04195c
|
|
/* f0418f8: 8fad0278 */ lw $t5,0x278($sp)
|
|
/* f0418fc: 8dab02d4 */ lw $t3,0x2d4($t5)
|
|
/* f041900: 3c03800a */ lui $v1,%hi(g_Vars+0x28c)
|
|
/* f041904: 11600005 */ beqz $t3,.L0f04191c
|
|
/* f041908: 00000000 */ nop
|
|
/* f04190c: 0fc633fe */ jal mpPlayerGetIndex
|
|
/* f041910: 01a02025 */ or $a0,$t5,$zero
|
|
/* f041914: 10000002 */ b .L0f041920
|
|
/* f041918: 00401825 */ or $v1,$v0,$zero
|
|
.L0f04191c:
|
|
/* f04191c: 8c63a24c */ lw $v1,%lo(g_Vars+0x28c)($v1)
|
|
.L0f041920:
|
|
/* f041920: 8faa0210 */ lw $t2,0x210($sp)
|
|
/* f041924: 27a40244 */ addiu $a0,$sp,0x244
|
|
/* f041928: 27a50234 */ addiu $a1,$sp,0x234
|
|
/* f04192c: 15400005 */ bnez $t2,.L0f041944
|
|
/* f041930: 27a60228 */ addiu $a2,$sp,0x228
|
|
/* f041934: 27a70214 */ addiu $a3,$sp,0x214
|
|
/* f041938: 0fc1979d */ jal func0f065e74
|
|
/* f04193c: afa30064 */ sw $v1,0x64($sp)
|
|
/* f041940: 8fa30064 */ lw $v1,0x64($sp)
|
|
.L0f041944:
|
|
/* f041944: 00002025 */ or $a0,$zero,$zero
|
|
/* f041948: 27a50228 */ addiu $a1,$sp,0x228
|
|
/* f04194c: 27a60214 */ addiu $a2,$sp,0x214
|
|
/* f041950: 24070016 */ addiu $a3,$zero,0x16
|
|
/* f041954: 0fc4a640 */ jal explosionCreateSimple
|
|
/* f041958: afa30010 */ sw $v1,0x10($sp)
|
|
.L0f04195c:
|
|
/* f04195c: 8fae01c0 */ lw $t6,0x1c0($sp)
|
|
.L0f041960:
|
|
/* f041960: 8fa4025c */ lw $a0,0x25c($sp)
|
|
/* f041964: 51c00004 */ beqzl $t6,.L0f041978
|
|
/* f041968: 8fa80268 */ lw $t0,0x268($sp)
|
|
/* f04196c: 0fc1905e */ jal propSetCollisionsEnabled
|
|
/* f041970: 00002825 */ or $a1,$zero,$zero
|
|
/* f041974: 8fa80268 */ lw $t0,0x268($sp)
|
|
.L0f041978:
|
|
/* f041978: 8fb80250 */ lw $t8,0x250($sp)
|
|
/* f04197c: 93ac0260 */ lbu $t4,0x260($sp)
|
|
/* f041980: 0008782b */ sltu $t7,$zero,$t0
|
|
/* f041984: 1300000e */ beqz $t8,.L0f0419c0
|
|
/* f041988: 01e04025 */ or $t0,$t7,$zero
|
|
/* f04198c: 2599fffe */ addiu $t9,$t4,-2
|
|
/* f041990: 2f21002a */ sltiu $at,$t9,0x2a
|
|
/* f041994: 10200009 */ beqz $at,.L0f0419bc
|
|
/* f041998: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f04199c: 3c017f1b */ lui $at,%hi(var7f1a90e0)
|
|
/* f0419a0: 00390821 */ addu $at,$at,$t9
|
|
/* f0419a4: 8c3990e0 */ lw $t9,%lo(var7f1a90e0)($at)
|
|
/* f0419a8: 03200008 */ jr $t9
|
|
/* f0419ac: 00000000 */ nop
|
|
/* f0419b0: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f0419b4: 10000002 */ b .L0f0419c0
|
|
/* f0419b8: afab0250 */ sw $t3,0x250($sp)
|
|
.L0f0419bc:
|
|
/* f0419bc: afa00250 */ sw $zero,0x250($sp)
|
|
.L0f0419c0:
|
|
/* f0419c0: 11000004 */ beqz $t0,.L0f0419d4
|
|
/* f0419c4: 01003825 */ or $a3,$t0,$zero
|
|
/* f0419c8: 8fa70250 */ lw $a3,0x250($sp)
|
|
/* f0419cc: 0007682b */ sltu $t5,$zero,$a3
|
|
/* f0419d0: 01a03825 */ or $a3,$t5,$zero
|
|
.L0f0419d4:
|
|
/* f0419d4: 27aa0244 */ addiu $t2,$sp,0x244
|
|
/* f0419d8: 27ae0228 */ addiu $t6,$sp,0x228
|
|
/* f0419dc: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0419e0: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f0419e4: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f0419e8: 8fa5027c */ lw $a1,0x27c($sp)
|
|
/* f0419ec: 8fa60268 */ lw $a2,0x268($sp)
|
|
/* f0419f0: 0fc0f8a7 */ jal func0f03e29c
|
|
/* f0419f4: afa80054 */ sw $t0,0x54($sp)
|
|
/* f0419f8: 93af026f */ lbu $t7,0x26f($sp)
|
|
/* f0419fc: 8fa80054 */ lw $t0,0x54($sp)
|
|
/* f041a00: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f041a04: 11e00015 */ beqz $t7,.L0f041a5c
|
|
/* f041a08: 8fa5027c */ lw $a1,0x27c($sp)
|
|
/* f041a0c: 1100000a */ beqz $t0,.L0f041a38
|
|
/* f041a10: 01003025 */ or $a2,$t0,$zero
|
|
/* f041a14: 8fb80278 */ lw $t8,0x278($sp)
|
|
/* f041a18: 8fb9027c */ lw $t9,0x27c($sp)
|
|
/* f041a1c: 8f0c02d4 */ lw $t4,0x2d4($t8)
|
|
/* f041a20: 00195880 */ sll $t3,$t9,0x2
|
|
/* f041a24: 018b1021 */ addu $v0,$t4,$t3
|
|
/* f041a28: 8c430024 */ lw $v1,0x24($v0)
|
|
/* f041a2c: 18600002 */ blez $v1,.L0f041a38
|
|
/* f041a30: 246dffff */ addiu $t5,$v1,-1
|
|
/* f041a34: ac4d0024 */ sw $t5,0x24($v0)
|
|
.L0f041a38:
|
|
/* f041a38: 11000004 */ beqz $t0,.L0f041a4c
|
|
/* f041a3c: 8fa40278 */ lw $a0,0x278($sp)
|
|
/* f041a40: 93a6026e */ lbu $a2,0x26e($sp)
|
|
/* f041a44: 0006502b */ sltu $t2,$zero,$a2
|
|
/* f041a48: 01403025 */ or $a2,$t2,$zero
|
|
.L0f041a4c:
|
|
/* f041a4c: 0fc0fe12 */ jal chrSetFiring
|
|
/* f041a50: 8fa5027c */ lw $a1,0x27c($sp)
|
|
/* f041a54: 10000004 */ b .L0f041a68
|
|
/* f041a58: 8fbf0044 */ lw $ra,0x44($sp)
|
|
.L0f041a5c:
|
|
/* f041a5c: 0fc0fe12 */ jal chrSetFiring
|
|
/* f041a60: 8fa60268 */ lw $a2,0x268($sp)
|
|
/* f041a64: 8fbf0044 */ lw $ra,0x44($sp)
|
|
.L0f041a68:
|
|
/* f041a68: 27bd0278 */ addiu $sp,$sp,0x278
|
|
/* f041a6c: 03e00008 */ jr $ra
|
|
/* f041a70: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f041a74
|
|
/* f041a74: 27bdffd8 */ addiu $sp,$sp,-40
|
|
/* f041a78: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f041a7c: afb00020 */ sw $s0,0x20($sp)
|
|
/* f041a80: 948e0192 */ lhu $t6,0x192($a0)
|
|
/* f041a84: 80820007 */ lb $v0,0x7($a0)
|
|
/* f041a88: 24010022 */ addiu $at,$zero,0x22
|
|
/* f041a8c: 31cfffdf */ andi $t7,$t6,0xffdf
|
|
/* f041a90: 00808025 */ or $s0,$a0,$zero
|
|
/* f041a94: 14410041 */ bne $v0,$at,.L0f041b9c
|
|
/* f041a98: a48f0192 */ sh $t7,0x192($a0)
|
|
/* f041a9c: 9098006c */ lbu $t8,0x6c($a0)
|
|
/* f041aa0: 53000019 */ beqzl $t8,.L0f041b08
|
|
/* f041aa4: 8e02001c */ lw $v0,0x1c($s0)
|
|
/* f041aa8: 8c82001c */ lw $v0,0x1c($a0)
|
|
/* f041aac: 9048003f */ lbu $t0,0x3f($v0)
|
|
/* f041ab0: 35090020 */ ori $t1,$t0,0x20
|
|
/* f041ab4: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f041ab8: a049003f */ sb $t1,0x3f($v0)
|
|
/* f041abc: 8e0a005c */ lw $t2,0x5c($s0)
|
|
/* f041ac0: 8e04001c */ lw $a0,0x1c($s0)
|
|
/* f041ac4: 8e050348 */ lw $a1,0x348($s0)
|
|
/* f041ac8: afa20014 */ sw $v0,0x14($sp)
|
|
/* f041acc: 2606002c */ addiu $a2,$s0,0x2c
|
|
/* f041ad0: 26070044 */ addiu $a3,$s0,0x44
|
|
/* f041ad4: 0fc244b7 */ jal projectileCreate
|
|
/* f041ad8: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f041adc: 3c0b800a */ lui $t3,%hi(g_Vars+0x8)
|
|
/* f041ae0: 8d6b9fc8 */ lw $t3,%lo(g_Vars+0x8)($t3)
|
|
/* f041ae4: 8e0d034c */ lw $t5,0x34c($s0)
|
|
/* f041ae8: 256c0002 */ addiu $t4,$t3,0x2
|
|
/* f041aec: adac0008 */ sw $t4,0x8($t5)
|
|
/* f041af0: 8e0e0348 */ lw $t6,0x348($s0)
|
|
/* f041af4: 8e0f034c */ lw $t7,0x34c($s0)
|
|
/* f041af8: c5c40014 */ lwc1 $f4,0x14($t6)
|
|
/* f041afc: 10000005 */ b .L0f041b14
|
|
/* f041b00: e5e40014 */ swc1 $f4,0x14($t7)
|
|
/* f041b04: 8e02001c */ lw $v0,0x1c($s0)
|
|
.L0f041b08:
|
|
/* f041b08: 9058003f */ lbu $t8,0x3f($v0)
|
|
/* f041b0c: 3319ffdf */ andi $t9,$t8,0xffdf
|
|
/* f041b10: a059003f */ sb $t9,0x3f($v0)
|
|
.L0f041b14:
|
|
/* f041b14: 9208006d */ lbu $t0,0x6d($s0)
|
|
/* f041b18: 51000015 */ beqzl $t0,.L0f041b70
|
|
/* f041b1c: 8e02001c */ lw $v0,0x1c($s0)
|
|
/* f041b20: 8e02001c */ lw $v0,0x1c($s0)
|
|
/* f041b24: 02002025 */ or $a0,$s0,$zero
|
|
/* f041b28: 904a003f */ lbu $t2,0x3f($v0)
|
|
/* f041b2c: 354b0020 */ ori $t3,$t2,0x20
|
|
/* f041b30: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f041b34: a04b003f */ sb $t3,0x3f($v0)
|
|
/* f041b38: 8e0c0060 */ lw $t4,0x60($s0)
|
|
/* f041b3c: 8e04001c */ lw $a0,0x1c($s0)
|
|
/* f041b40: 8e05034c */ lw $a1,0x34c($s0)
|
|
/* f041b44: afa20014 */ sw $v0,0x14($sp)
|
|
/* f041b48: 26060038 */ addiu $a2,$s0,0x38
|
|
/* f041b4c: 26070050 */ addiu $a3,$s0,0x50
|
|
/* f041b50: 0fc244b7 */ jal projectileCreate
|
|
/* f041b54: afac0010 */ sw $t4,0x10($sp)
|
|
/* f041b58: 8e0d034c */ lw $t5,0x34c($s0)
|
|
/* f041b5c: 8e0e0348 */ lw $t6,0x348($s0)
|
|
/* f041b60: c5a60014 */ lwc1 $f6,0x14($t5)
|
|
/* f041b64: 10000005 */ b .L0f041b7c
|
|
/* f041b68: e5c60014 */ swc1 $f6,0x14($t6)
|
|
/* f041b6c: 8e02001c */ lw $v0,0x1c($s0)
|
|
.L0f041b70:
|
|
/* f041b70: 904f003f */ lbu $t7,0x3f($v0)
|
|
/* f041b74: 31f8ffdf */ andi $t8,$t7,0xffdf
|
|
/* f041b78: a058003f */ sb $t8,0x3f($v0)
|
|
.L0f041b7c:
|
|
/* f041b7c: 8e190348 */ lw $t9,0x348($s0)
|
|
/* f041b80: 0fc2b6ef */ jal bullettailTick
|
|
/* f041b84: 8f240004 */ lw $a0,0x4($t9)
|
|
/* f041b88: 8e08034c */ lw $t0,0x34c($s0)
|
|
/* f041b8c: 0fc2b6ef */ jal bullettailTick
|
|
/* f041b90: 8d040004 */ lw $a0,0x4($t0)
|
|
/* f041b94: 10000027 */ b .L0f041c34
|
|
/* f041b98: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f041b9c:
|
|
/* f041b9c: 24010021 */ addiu $at,$zero,0x21
|
|
/* f041ba0: 54410010 */ bnel $v0,$at,.L0f041be4
|
|
/* f041ba4: 8e020014 */ lw $v0,0x14($s0)
|
|
/* f041ba8: 82090033 */ lb $t1,0x33($s0)
|
|
/* f041bac: 820a0034 */ lb $t2,0x34($s0)
|
|
/* f041bb0: 012a082a */ slt $at,$t1,$t2
|
|
/* f041bb4: 5020001f */ beqzl $at,.L0f041c34
|
|
/* f041bb8: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f041bbc: 8e0b0014 */ lw $t3,0x14($s0)
|
|
/* f041bc0: 02002025 */ or $a0,$s0,$zero
|
|
/* f041bc4: 316c0008 */ andi $t4,$t3,0x8
|
|
/* f041bc8: 5180001a */ beqzl $t4,.L0f041c34
|
|
/* f041bcc: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f041bd0: 0fc10135 */ jal func0f0404d4
|
|
/* f041bd4: 00002825 */ or $a1,$zero,$zero
|
|
/* f041bd8: 10000016 */ b .L0f041c34
|
|
/* f041bdc: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f041be0: 8e020014 */ lw $v0,0x14($s0)
|
|
.L0f041be4:
|
|
/* f041be4: 02002025 */ or $a0,$s0,$zero
|
|
/* f041be8: 304d0008 */ andi $t5,$v0,0x8
|
|
/* f041bec: 51a00008 */ beqzl $t5,.L0f041c10
|
|
/* f041bf0: 30580004 */ andi $t8,$v0,0x4
|
|
/* f041bf4: 0fc10135 */ jal func0f0404d4
|
|
/* f041bf8: 00002825 */ or $a1,$zero,$zero
|
|
/* f041bfc: 8e0e0014 */ lw $t6,0x14($s0)
|
|
/* f041c00: 2401fff7 */ addiu $at,$zero,-9
|
|
/* f041c04: 01c11024 */ and $v0,$t6,$at
|
|
/* f041c08: ae020014 */ sw $v0,0x14($s0)
|
|
/* f041c0c: 30580004 */ andi $t8,$v0,0x4
|
|
.L0f041c10:
|
|
/* f041c10: 13000007 */ beqz $t8,.L0f041c30
|
|
/* f041c14: 02002025 */ or $a0,$s0,$zero
|
|
/* f041c18: 0fc10135 */ jal func0f0404d4
|
|
/* f041c1c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f041c20: 8e190014 */ lw $t9,0x14($s0)
|
|
/* f041c24: 2401fffb */ addiu $at,$zero,-5
|
|
/* f041c28: 03214024 */ and $t0,$t9,$at
|
|
/* f041c2c: ae080014 */ sw $t0,0x14($s0)
|
|
.L0f041c30:
|
|
/* f041c30: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f041c34:
|
|
/* f041c34: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f041c38: 27bd0028 */ addiu $sp,$sp,0x28
|
|
/* f041c3c: 03e00008 */ jr $ra
|
|
/* f041c40: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f041c44
|
|
/* f041c44: 27bdffd0 */ addiu $sp,$sp,-48
|
|
/* f041c48: 10800003 */ beqz $a0,.L0f041c58
|
|
/* f041c4c: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f041c50: 10000002 */ b .L0f041c5c
|
|
/* f041c54: 908202fe */ lbu $v0,0x2fe($a0)
|
|
.L0f041c58:
|
|
/* f041c58: 00001025 */ or $v0,$zero,$zero
|
|
.L0f041c5c:
|
|
/* f041c5c: 54400032 */ bnezl $v0,.L0f041d28
|
|
/* f041c60: 00001025 */ or $v0,$zero,$zero
|
|
/* f041c64: 8c82002c */ lw $v0,0x2c($a0)
|
|
/* f041c68: 3c0e8006 */ lui $t6,%hi(var800674b8)
|
|
/* f041c6c: 25ce74b8 */ addiu $t6,$t6,%lo(var800674b8)
|
|
/* f041c70: 11c20004 */ beq $t6,$v0,.L0f041c84
|
|
/* f041c74: 3c0f8006 */ lui $t7,%hi(var80067500)
|
|
/* f041c78: 25ef7500 */ addiu $t7,$t7,%lo(var80067500)
|
|
/* f041c7c: 55e2002a */ bnel $t7,$v0,.L0f041d28
|
|
/* f041c80: 00001025 */ or $v0,$zero,$zero
|
|
.L0f041c84:
|
|
/* f041c84: 8c820020 */ lw $v0,0x20($a0)
|
|
/* f041c88: 3c098006 */ lui $t1,%hi(var80067470)
|
|
/* f041c8c: 24080002 */ addiu $t0,$zero,0x2
|
|
/* f041c90: 8c580020 */ lw $t8,0x20($v0)
|
|
/* f041c94: 25297470 */ addiu $t1,$t1,%lo(var80067470)
|
|
/* f041c98: 3c053f33 */ lui $a1,0x3f33
|
|
/* f041c9c: 83190008 */ lb $t9,0x8($t8)
|
|
/* f041ca0: 3c063f8f */ lui $a2,0x3f8f
|
|
/* f041ca4: 34c65c29 */ ori $a2,$a2,0x5c29
|
|
/* f041ca8: afb90024 */ sw $t9,0x24($sp)
|
|
/* f041cac: a0880030 */ sb $t0,0x30($a0)
|
|
/* f041cb0: ac89002c */ sw $t1,0x2c($a0)
|
|
/* f041cb4: a0800008 */ sb $zero,0x8($a0)
|
|
/* f041cb8: 34a53333 */ ori $a1,$a1,0x3333
|
|
/* f041cbc: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f041cc0: afa2002c */ sw $v0,0x2c($sp)
|
|
/* f041cc4: 3c0141b0 */ lui $at,0x41b0
|
|
/* f041cc8: 44812000 */ mtc1 $at,$f4
|
|
/* f041ccc: 3c058006 */ lui $a1,%hi(var80067470)
|
|
/* f041cd0: 3c078006 */ lui $a3,%hi(var80067470+0x1c)
|
|
/* f041cd4: 8ce7748c */ lw $a3,%lo(var80067470+0x1c)($a3)
|
|
/* f041cd8: 84a57470 */ lh $a1,%lo(var80067470)($a1)
|
|
/* f041cdc: 8fa4002c */ lw $a0,0x2c($sp)
|
|
/* f041ce0: 8fa60024 */ lw $a2,0x24($sp)
|
|
/* f041ce4: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f041ce8: 0c007733 */ jal modelSetAnimation
|
|
/* f041cec: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f041cf0: 3c018006 */ lui $at,%hi(var80067470+0x14)
|
|
/* f041cf4: c4207484 */ lwc1 $f0,%lo(var80067470+0x14)($at)
|
|
/* f041cf8: 44803000 */ mtc1 $zero,$f6
|
|
/* f041cfc: 00000000 */ nop
|
|
/* f041d00: 4600303e */ c.le.s $f6,$f0
|
|
/* f041d04: 00000000 */ nop
|
|
/* f041d08: 45000004 */ bc1f .L0f041d1c
|
|
/* f041d0c: 00000000 */ nop
|
|
/* f041d10: 44050000 */ mfc1 $a1,$f0
|
|
/* f041d14: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f041d18: 8fa4002c */ lw $a0,0x2c($sp)
|
|
.L0f041d1c:
|
|
/* f041d1c: 10000002 */ b .L0f041d28
|
|
/* f041d20: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f041d24: 00001025 */ or $v0,$zero,$zero
|
|
.L0f041d28:
|
|
/* f041d28: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f041d2c: 27bd0030 */ addiu $sp,$sp,0x30
|
|
/* f041d30: 03e00008 */ jr $ra
|
|
/* f041d34: 00000000 */ nop
|
|
);
|
|
|
|
void chrAttackAmountUpdateAnimation(struct chrdata *chr)
|
|
{
|
|
struct model *model = chr->model;
|
|
|
|
if (chr->act_attackamount.unk02c->fstartframe2 > 0) {
|
|
modelSetAnimation(model,
|
|
modelGetAnimNum(model),
|
|
model->anim->flip,
|
|
chr->act_attackamount.unk02c->fstartframe2,
|
|
chrGetRangedSpeed(chr, 0.5f, 0.8f),
|
|
8);
|
|
} else {
|
|
modelSetAnimation(model,
|
|
modelGetAnimNum(model),
|
|
model->anim->flip,
|
|
chr->act_attackamount.unk02c->fstartframe1,
|
|
chrGetRangedSpeed(chr, 0.5f, 0.8f),
|
|
8);
|
|
}
|
|
|
|
if (chr->act_attackamount.unk02c->unk14 >= 0) {
|
|
modelSetAnimEndFrame(model, chr->act_attackamount.unk02c->unk14);
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f041e48
|
|
.late_rodata
|
|
glabel var7f1a9188
|
|
.word 0x3d2aaaab
|
|
glabel var7f1a918c
|
|
.word 0x40c907a9
|
|
.text
|
|
/* f041e48: 27bdff90 */ addiu $sp,$sp,-112
|
|
/* f041e4c: afbf0044 */ sw $ra,0x44($sp)
|
|
/* f041e50: afb30040 */ sw $s3,0x40($sp)
|
|
/* f041e54: afb2003c */ sw $s2,0x3c($sp)
|
|
/* f041e58: afb10038 */ sw $s1,0x38($sp)
|
|
/* f041e5c: afb00034 */ sw $s0,0x34($sp)
|
|
/* f041e60: f7b80028 */ sdc1 $f24,0x28($sp)
|
|
/* f041e64: f7b60020 */ sdc1 $f22,0x20($sp)
|
|
/* f041e68: f7b40018 */ sdc1 $f20,0x18($sp)
|
|
/* f041e6c: 8c930020 */ lw $s3,0x20($a0)
|
|
/* f041e70: 00808025 */ or $s0,$a0,$zero
|
|
/* f041e74: 0c00745f */ jal modelGetCurAnimFrame
|
|
/* f041e78: 02602025 */ or $a0,$s3,$zero
|
|
/* f041e7c: 46000506 */ mov.s $f20,$f0
|
|
/* f041e80: 0c00744f */ jal modelGetAnimNum
|
|
/* f041e84: 02602025 */ or $a0,$s3,$zero
|
|
/* f041e88: 24010269 */ addiu $at,$zero,0x269
|
|
/* f041e8c: 504101de */ beql $v0,$at,.L0f042608
|
|
/* f041e90: 8fbf0044 */ lw $ra,0x44($sp)
|
|
/* f041e94: 8e0f0044 */ lw $t7,0x44($s0)
|
|
/* f041e98: 8e0e0048 */ lw $t6,0x48($s0)
|
|
/* f041e9c: 25f8ffe2 */ addiu $t8,$t7,-30
|
|
/* f041ea0: 01d8082a */ slt $at,$t6,$t8
|
|
/* f041ea4: 50200051 */ beqzl $at,.L0f041fec
|
|
/* f041ea8: 3c013f00 */ lui $at,0x3f00
|
|
/* f041eac: 8e790020 */ lw $t9,0x20($s3)
|
|
/* f041eb0: 87280002 */ lh $t0,0x2($t9)
|
|
/* f041eb4: 5500004d */ bnezl $t0,.L0f041fec
|
|
/* f041eb8: 3c013f00 */ lui $at,0x3f00
|
|
/* f041ebc: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f041ec0: 3c014120 */ lui $at,0x4120
|
|
/* f041ec4: 44813000 */ mtc1 $at,$f6
|
|
/* f041ec8: c4a40018 */ lwc1 $f4,0x18($a1)
|
|
/* f041ecc: 46062200 */ add.s $f8,$f4,$f6
|
|
/* f041ed0: 4614403c */ c.lt.s $f8,$f20
|
|
/* f041ed4: 00000000 */ nop
|
|
/* f041ed8: 45020044 */ bc1fl .L0f041fec
|
|
/* f041edc: 3c013f00 */ lui $at,0x3f00
|
|
/* f041ee0: c4aa001c */ lwc1 $f10,0x1c($a1)
|
|
/* f041ee4: 460aa03c */ c.lt.s $f20,$f10
|
|
/* f041ee8: 00000000 */ nop
|
|
/* f041eec: 4502003f */ bc1fl .L0f041fec
|
|
/* f041ef0: 3c013f00 */ lui $at,0x3f00
|
|
/* f041ef4: 4480b000 */ mtc1 $zero,$f22
|
|
/* f041ef8: c4a00024 */ lwc1 $f0,0x24($a1)
|
|
/* f041efc: 4616003c */ c.lt.s $f0,$f22
|
|
/* f041f00: 00000000 */ nop
|
|
/* f041f04: 45030006 */ bc1tl .L0f041f20
|
|
/* f041f08: 82090036 */ lb $t1,0x36($s0)
|
|
/* f041f0c: 4600a03c */ c.lt.s $f20,$f0
|
|
/* f041f10: 00000000 */ nop
|
|
/* f041f14: 45020035 */ bc1fl .L0f041fec
|
|
/* f041f18: 3c013f00 */ lui $at,0x3f00
|
|
/* f041f1c: 82090036 */ lb $t1,0x36($s0)
|
|
.L0f041f20:
|
|
/* f041f20: 15200029 */ bnez $t1,.L0f041fc8
|
|
/* f041f24: 00000000 */ nop
|
|
/* f041f28: 0fc10711 */ jal func0f041c44
|
|
/* f041f2c: 02002025 */ or $a0,$s0,$zero
|
|
/* f041f30: 14400023 */ bnez $v0,.L0f041fc0
|
|
/* f041f34: 00000000 */ nop
|
|
/* f041f38: 0c00744f */ jal modelGetAnimNum
|
|
/* f041f3c: 02602025 */ or $a0,$s3,$zero
|
|
/* f041f40: 3c013f00 */ lui $at,0x3f00
|
|
/* f041f44: 4481c000 */ mtc1 $at,$f24
|
|
/* f041f48: 00028c00 */ sll $s1,$v0,0x10
|
|
/* f041f4c: 00115403 */ sra $t2,$s1,0x10
|
|
/* f041f50: 3c063f4c */ lui $a2,0x3f4c
|
|
/* f041f54: 4405c000 */ mfc1 $a1,$f24
|
|
/* f041f58: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f041f5c: 01408825 */ or $s1,$t2,$zero
|
|
/* f041f60: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f041f64: 02002025 */ or $a0,$s0,$zero
|
|
/* f041f68: 8e6c0020 */ lw $t4,0x20($s3)
|
|
/* f041f6c: 8e0d002c */ lw $t5,0x2c($s0)
|
|
/* f041f70: 3c014100 */ lui $at,0x4100
|
|
/* f041f74: 44818000 */ mtc1 $at,$f16
|
|
/* f041f78: 00112c00 */ sll $a1,$s1,0x10
|
|
/* f041f7c: 00055c03 */ sra $t3,$a1,0x10
|
|
/* f041f80: 81860008 */ lb $a2,0x8($t4)
|
|
/* f041f84: 8da7001c */ lw $a3,0x1c($t5)
|
|
/* f041f88: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f041f8c: 01602825 */ or $a1,$t3,$zero
|
|
/* f041f90: 02602025 */ or $a0,$s3,$zero
|
|
/* f041f94: 0c007733 */ jal modelSetAnimation
|
|
/* f041f98: e7b00014 */ swc1 $f16,0x14($sp)
|
|
/* f041f9c: 8e0f002c */ lw $t7,0x2c($s0)
|
|
/* f041fa0: c5e00014 */ lwc1 $f0,0x14($t7)
|
|
/* f041fa4: 4600b03e */ c.le.s $f22,$f0
|
|
/* f041fa8: 00000000 */ nop
|
|
/* f041fac: 45000004 */ bc1f .L0f041fc0
|
|
/* f041fb0: 00000000 */ nop
|
|
/* f041fb4: 44050000 */ mfc1 $a1,$f0
|
|
/* f041fb8: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f041fbc: 02602025 */ or $a0,$s3,$zero
|
|
.L0f041fc0:
|
|
/* f041fc0: 10000004 */ b .L0f041fd4
|
|
/* f041fc4: 820e0034 */ lb $t6,0x34($s0)
|
|
.L0f041fc8:
|
|
/* f041fc8: 0fc1074e */ jal chrAttackAmountUpdateAnimation
|
|
/* f041fcc: 02002025 */ or $a0,$s0,$zero
|
|
/* f041fd0: 820e0034 */ lb $t6,0x34($s0)
|
|
.L0f041fd4:
|
|
/* f041fd4: 02602025 */ or $a0,$s3,$zero
|
|
/* f041fd8: 25d80001 */ addiu $t8,$t6,0x1
|
|
/* f041fdc: 0c00745f */ jal modelGetCurAnimFrame
|
|
/* f041fe0: a2180033 */ sb $t8,0x33($s0)
|
|
/* f041fe4: 46000506 */ mov.s $f20,$f0
|
|
/* f041fe8: 3c013f00 */ lui $at,0x3f00
|
|
.L0f041fec:
|
|
/* f041fec: 4481c000 */ mtc1 $at,$f24
|
|
/* f041ff0: 4480b000 */ mtc1 $zero,$f22
|
|
/* f041ff4: 0c007468 */ jal modelGetAnimEndFrame
|
|
/* f041ff8: 02602025 */ or $a0,$s3,$zero
|
|
/* f041ffc: 4614003e */ c.le.s $f0,$f20
|
|
/* f042000: 00000000 */ nop
|
|
/* f042004: 45000080 */ bc1f .L0f042208
|
|
/* f042008: 00000000 */ nop
|
|
/* f04200c: 0c00744f */ jal modelGetAnimNum
|
|
/* f042010: 02602025 */ or $a0,$s3,$zero
|
|
/* f042014: 2401026a */ addiu $at,$zero,0x26a
|
|
/* f042018: 50410018 */ beql $v0,$at,.L0f04207c
|
|
/* f04201c: 82020033 */ lb $v0,0x33($s0)
|
|
/* f042020: 82190037 */ lb $t9,0x37($s0)
|
|
/* f042024: 17200006 */ bnez $t9,.L0f042040
|
|
/* f042028: 00000000 */ nop
|
|
/* f04202c: 82080034 */ lb $t0,0x34($s0)
|
|
/* f042030: 82090033 */ lb $t1,0x33($s0)
|
|
/* f042034: 0109082a */ slt $at,$t0,$t1
|
|
/* f042038: 50200010 */ beqzl $at,.L0f04207c
|
|
/* f04203c: 82020033 */ lb $v0,0x33($s0)
|
|
.L0f042040:
|
|
/* f042040: 0fc10711 */ jal func0f041c44
|
|
/* f042044: 02002025 */ or $a0,$s0,$zero
|
|
/* f042048: 1440006c */ bnez $v0,.L0f0421fc
|
|
/* f04204c: 00000000 */ nop
|
|
/* f042050: 8e0a004c */ lw $t2,0x4c($s0)
|
|
/* f042054: 314b0200 */ andi $t3,$t2,0x200
|
|
/* f042058: 11600003 */ beqz $t3,.L0f042068
|
|
/* f04205c: 00000000 */ nop
|
|
/* f042060: 0fc0e56b */ jal chrRecordLastSeeTargetTime
|
|
/* f042064: 02002025 */ or $a0,$s0,$zero
|
|
.L0f042068:
|
|
/* f042068: 0fc0bb57 */ jal chrStop
|
|
/* f04206c: 02002025 */ or $a0,$s0,$zero
|
|
/* f042070: 10000165 */ b .L0f042608
|
|
/* f042074: 8fbf0044 */ lw $ra,0x44($sp)
|
|
/* f042078: 82020033 */ lb $v0,0x33($s0)
|
|
.L0f04207c:
|
|
/* f04207c: 820c0034 */ lb $t4,0x34($s0)
|
|
/* f042080: 02002025 */ or $a0,$s0,$zero
|
|
/* f042084: 244d0001 */ addiu $t5,$v0,0x1
|
|
/* f042088: 55820006 */ bnel $t4,$v0,.L0f0420a4
|
|
/* f04208c: 820f0031 */ lb $t7,0x31($s0)
|
|
/* f042090: 0fc1074e */ jal chrAttackAmountUpdateAnimation
|
|
/* f042094: a20d0033 */ sb $t5,0x33($s0)
|
|
/* f042098: 10000058 */ b .L0f0421fc
|
|
/* f04209c: 00000000 */ nop
|
|
/* f0420a0: 820f0031 */ lb $t7,0x31($s0)
|
|
.L0f0420a4:
|
|
/* f0420a4: 3c014140 */ lui $at,0x4140
|
|
/* f0420a8: 02602025 */ or $a0,$s3,$zero
|
|
/* f0420ac: 11e00053 */ beqz $t7,.L0f0421fc
|
|
/* f0420b0: 00000000 */ nop
|
|
/* f0420b4: 820e0036 */ lb $t6,0x36($s0)
|
|
/* f0420b8: 4600c086 */ mov.s $f2,$f24
|
|
/* f0420bc: 51c00014 */ beqzl $t6,.L0f042110
|
|
/* f0420c0: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f0420c4: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f0420c8: c4a00020 */ lwc1 $f0,0x20($a1)
|
|
/* f0420cc: 4600b03c */ c.lt.s $f22,$f0
|
|
/* f0420d0: 00000000 */ nop
|
|
/* f0420d4: 45020004 */ bc1fl .L0f0420e8
|
|
/* f0420d8: c4ac0018 */ lwc1 $f12,0x18($a1)
|
|
/* f0420dc: 10000002 */ b .L0f0420e8
|
|
/* f0420e0: 46000306 */ mov.s $f12,$f0
|
|
/* f0420e4: c4ac0018 */ lwc1 $f12,0x18($a1)
|
|
.L0f0420e8:
|
|
/* f0420e8: c4a00024 */ lwc1 $f0,0x24($a1)
|
|
/* f0420ec: 4600b03c */ c.lt.s $f22,$f0
|
|
/* f0420f0: 00000000 */ nop
|
|
/* f0420f4: 45000003 */ bc1f .L0f042104
|
|
/* f0420f8: 00000000 */ nop
|
|
/* f0420fc: 1000000d */ b .L0f042134
|
|
/* f042100: 46000506 */ mov.s $f20,$f0
|
|
.L0f042104:
|
|
/* f042104: 1000000b */ b .L0f042134
|
|
/* f042108: c4b4001c */ lwc1 $f20,0x1c($a1)
|
|
/* f04210c: 8e05002c */ lw $a1,0x2c($s0)
|
|
.L0f042110:
|
|
/* f042110: c4a00020 */ lwc1 $f0,0x20($a1)
|
|
/* f042114: c4ac0018 */ lwc1 $f12,0x18($a1)
|
|
/* f042118: 4600b03c */ c.lt.s $f22,$f0
|
|
/* f04211c: 00000000 */ nop
|
|
/* f042120: 45020004 */ bc1fl .L0f042134
|
|
/* f042124: c4b4001c */ lwc1 $f20,0x1c($a1)
|
|
/* f042128: 10000002 */ b .L0f042134
|
|
/* f04212c: 46000506 */ mov.s $f20,$f0
|
|
/* f042130: c4b4001c */ lwc1 $f20,0x1c($a1)
|
|
.L0f042134:
|
|
/* f042134: 460ca001 */ sub.s $f0,$f20,$f12
|
|
/* f042138: 44819000 */ mtc1 $at,$f18
|
|
/* f04213c: 3c014180 */ lui $at,0x4180
|
|
/* f042140: 4612003c */ c.lt.s $f0,$f18
|
|
/* f042144: 00000000 */ nop
|
|
/* f042148: 45020007 */ bc1fl .L0f042168
|
|
/* f04214c: 44813000 */ mtc1 $at,$f6
|
|
/* f042150: 3c017f1b */ lui $at,%hi(var7f1a9188)
|
|
/* f042154: c4249188 */ lwc1 $f4,%lo(var7f1a9188)($at)
|
|
/* f042158: 46040082 */ mul.s $f2,$f0,$f4
|
|
/* f04215c: 1000000c */ b .L0f042190
|
|
/* f042160: 8218003a */ lb $t8,0x3a($s0)
|
|
/* f042164: 44813000 */ mtc1 $at,$f6
|
|
.L0f042168:
|
|
/* f042168: 3c013d00 */ lui $at,0x3d00
|
|
/* f04216c: 4600303c */ c.lt.s $f6,$f0
|
|
/* f042170: 00000000 */ nop
|
|
/* f042174: 45020006 */ bc1fl .L0f042190
|
|
/* f042178: 8218003a */ lb $t8,0x3a($s0)
|
|
/* f04217c: 44814000 */ mtc1 $at,$f8
|
|
/* f042180: 00000000 */ nop
|
|
/* f042184: 46080082 */ mul.s $f2,$f0,$f8
|
|
/* f042188: 00000000 */ nop
|
|
/* f04218c: 8218003a */ lb $t8,0x3a($s0)
|
|
.L0f042190:
|
|
/* f042190: 53000006 */ beqzl $t8,.L0f0421ac
|
|
/* f042194: a2000031 */ sb $zero,0x31($s0)
|
|
/* f042198: 8219003b */ lb $t9,0x3b($s0)
|
|
/* f04219c: 53200003 */ beqzl $t9,.L0f0421ac
|
|
/* f0421a0: a2000031 */ sb $zero,0x31($s0)
|
|
/* f0421a4: 46021080 */ add.s $f2,$f2,$f2
|
|
/* f0421a8: a2000031 */ sb $zero,0x31($s0)
|
|
.L0f0421ac:
|
|
/* f0421ac: e7ac005c */ swc1 $f12,0x5c($sp)
|
|
/* f0421b0: 0c00744f */ jal modelGetAnimNum
|
|
/* f0421b4: e7a20060 */ swc1 $f2,0x60($sp)
|
|
/* f0421b8: c7ac005c */ lwc1 $f12,0x5c($sp)
|
|
/* f0421bc: 8e690020 */ lw $t1,0x20($s3)
|
|
/* f0421c0: 3c014100 */ lui $at,0x4100
|
|
/* f0421c4: 44815000 */ mtc1 $at,$f10
|
|
/* f0421c8: c7a20060 */ lwc1 $f2,0x60($sp)
|
|
/* f0421cc: 00022c00 */ sll $a1,$v0,0x10
|
|
/* f0421d0: 00054403 */ sra $t0,$a1,0x10
|
|
/* f0421d4: 44076000 */ mfc1 $a3,$f12
|
|
/* f0421d8: 81260008 */ lb $a2,0x8($t1)
|
|
/* f0421dc: 01002825 */ or $a1,$t0,$zero
|
|
/* f0421e0: 02602025 */ or $a0,$s3,$zero
|
|
/* f0421e4: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f0421e8: 0c007733 */ jal modelSetAnimation
|
|
/* f0421ec: e7a20010 */ swc1 $f2,0x10($sp)
|
|
/* f0421f0: 4405a000 */ mfc1 $a1,$f20
|
|
/* f0421f4: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f0421f8: 02602025 */ or $a0,$s3,$zero
|
|
.L0f0421fc:
|
|
/* f0421fc: 0c00745f */ jal modelGetCurAnimFrame
|
|
/* f042200: 02602025 */ or $a0,$s3,$zero
|
|
/* f042204: 46000506 */ mov.s $f20,$f0
|
|
.L0f042208:
|
|
/* f042208: 0c00744f */ jal modelGetAnimNum
|
|
/* f04220c: 02602025 */ or $a0,$s3,$zero
|
|
/* f042210: 2401026a */ addiu $at,$zero,0x26a
|
|
/* f042214: 50410030 */ beql $v0,$at,.L0f0422d8
|
|
/* f042218: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f04221c: 8e02004c */ lw $v0,0x4c($s0)
|
|
/* f042220: 304a0040 */ andi $t2,$v0,0x40
|
|
/* f042224: 5540002c */ bnezl $t2,.L0f0422d8
|
|
/* f042228: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f04222c: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f042230: 304b0020 */ andi $t3,$v0,0x20
|
|
/* f042234: 02602025 */ or $a0,$s3,$zero
|
|
/* f042238: c4a2000c */ lwc1 $f2,0xc($a1)
|
|
/* f04223c: 1160000f */ beqz $t3,.L0f04227c
|
|
/* f042240: c4ac0004 */ lwc1 $f12,0x4($a1)
|
|
/* f042244: e7a20050 */ swc1 $f2,0x50($sp)
|
|
/* f042248: 0c007468 */ jal modelGetAnimEndFrame
|
|
/* f04224c: e7ac004c */ swc1 $f12,0x4c($sp)
|
|
/* f042250: c7ac004c */ lwc1 $f12,0x4c($sp)
|
|
/* f042254: c7a20050 */ lwc1 $f2,0x50($sp)
|
|
/* f042258: 02602025 */ or $a0,$s3,$zero
|
|
/* f04225c: 460c003c */ c.lt.s $f0,$f12
|
|
/* f042260: 00000000 */ nop
|
|
/* f042264: 45020006 */ bc1fl .L0f042280
|
|
/* f042268: 8e6c0020 */ lw $t4,0x20($s3)
|
|
/* f04226c: 0c007468 */ jal modelGetAnimEndFrame
|
|
/* f042270: e7a20050 */ swc1 $f2,0x50($sp)
|
|
/* f042274: c7a20050 */ lwc1 $f2,0x50($sp)
|
|
/* f042278: 46000306 */ mov.s $f12,$f0
|
|
.L0f04227c:
|
|
/* f04227c: 8e6c0020 */ lw $t4,0x20($s3)
|
|
.L0f042280:
|
|
/* f042280: 3c063fcc */ lui $a2,0x3fcc
|
|
/* f042284: 3c017f1b */ lui $at,%hi(var7f1a918c)
|
|
/* f042288: 818d0008 */ lb $t5,0x8($t4)
|
|
/* f04228c: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f042290: 02002025 */ or $a0,$s0,$zero
|
|
/* f042294: 11a00003 */ beqz $t5,.L0f0422a4
|
|
/* f042298: 3c053f80 */ lui $a1,0x3f80
|
|
/* f04229c: c430918c */ lwc1 $f16,%lo(var7f1a918c)($at)
|
|
/* f0422a0: 46028081 */ sub.s $f2,$f16,$f2
|
|
.L0f0422a4:
|
|
/* f0422a4: e7a20050 */ swc1 $f2,0x50($sp)
|
|
/* f0422a8: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f0422ac: e7ac004c */ swc1 $f12,0x4c($sp)
|
|
/* f0422b0: c7ac004c */ lwc1 $f12,0x4c($sp)
|
|
/* f0422b4: c7a20050 */ lwc1 $f2,0x50($sp)
|
|
/* f0422b8: 82050030 */ lb $a1,0x30($s0)
|
|
/* f0422bc: 44070000 */ mfc1 $a3,$f0
|
|
/* f0422c0: 44066000 */ mfc1 $a2,$f12
|
|
/* f0422c4: 02002025 */ or $a0,$s0,$zero
|
|
/* f0422c8: 0fc0f9e2 */ jal func0f03e788
|
|
/* f0422cc: e7a20010 */ swc1 $f2,0x10($sp)
|
|
/* f0422d0: a2020030 */ sb $v0,0x30($s0)
|
|
/* f0422d4: 8e05002c */ lw $a1,0x2c($s0)
|
|
.L0f0422d8:
|
|
/* f0422d8: c4b20028 */ lwc1 $f18,0x28($a1)
|
|
/* f0422dc: 4614903c */ c.lt.s $f18,$f20
|
|
/* f0422e0: 00000000 */ nop
|
|
/* f0422e4: 45000006 */ bc1f .L0f042300
|
|
/* f0422e8: 00000000 */ nop
|
|
/* f0422ec: c4a4002c */ lwc1 $f4,0x2c($a1)
|
|
/* f0422f0: 4604a03c */ c.lt.s $f20,$f4
|
|
/* f0422f4: 00000000 */ nop
|
|
/* f0422f8: 45030008 */ bc1tl .L0f04231c
|
|
/* f0422fc: 3c013f80 */ lui $at,0x3f80
|
|
.L0f042300:
|
|
/* f042300: 0c00744f */ jal modelGetAnimNum
|
|
/* f042304: 02602025 */ or $a0,$s3,$zero
|
|
/* f042308: 2401026a */ addiu $at,$zero,0x26a
|
|
/* f04230c: 1441000b */ bne $v0,$at,.L0f04233c
|
|
/* f042310: 00000000 */ nop
|
|
/* f042314: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f042318: 3c013f80 */ lui $at,0x3f80
|
|
.L0f04231c:
|
|
/* f04231c: 44813000 */ mtc1 $at,$f6
|
|
/* f042320: 82060039 */ lb $a2,0x39($s0)
|
|
/* f042324: 82070038 */ lb $a3,0x38($s0)
|
|
/* f042328: 02002025 */ or $a0,$s0,$zero
|
|
/* f04232c: 0fc0fa7d */ jal func0f03e9f4
|
|
/* f042330: e7a60010 */ swc1 $f6,0x10($sp)
|
|
/* f042334: 10000004 */ b .L0f042348
|
|
/* f042338: 00008825 */ or $s1,$zero,$zero
|
|
.L0f04233c:
|
|
/* f04233c: 0fc0fe0a */ jal chrResetAimEndProperties
|
|
/* f042340: 02002025 */ or $a0,$s0,$zero
|
|
/* f042344: 00008825 */ or $s1,$zero,$zero
|
|
.L0f042348:
|
|
/* f042348: 02009025 */ or $s2,$s0,$zero
|
|
.L0f04234c:
|
|
/* f04234c: 824f0038 */ lb $t7,0x38($s2)
|
|
/* f042350: 02002025 */ or $a0,$s0,$zero
|
|
/* f042354: 02202825 */ or $a1,$s1,$zero
|
|
/* f042358: 11e000a4 */ beqz $t7,.L0f0425ec
|
|
/* f04235c: 00000000 */ nop
|
|
/* f042360: 824e003a */ lb $t6,0x3a($s2)
|
|
/* f042364: 15c00066 */ bnez $t6,.L0f042500
|
|
/* f042368: 00000000 */ nop
|
|
/* f04236c: 0c00744f */ jal modelGetAnimNum
|
|
/* f042370: 02602025 */ or $a0,$s3,$zero
|
|
/* f042374: 2401026a */ addiu $at,$zero,0x26a
|
|
/* f042378: 1041000c */ beq $v0,$at,.L0f0423ac
|
|
/* f04237c: 02002025 */ or $a0,$s0,$zero
|
|
/* f042380: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f042384: 00003025 */ or $a2,$zero,$zero
|
|
/* f042388: c4a80018 */ lwc1 $f8,0x18($a1)
|
|
/* f04238c: 4614403e */ c.le.s $f8,$f20
|
|
/* f042390: 00000000 */ nop
|
|
/* f042394: 4502003f */ bc1fl .L0f042494
|
|
/* f042398: 02002025 */ or $a0,$s0,$zero
|
|
/* f04239c: c4aa001c */ lwc1 $f10,0x1c($a1)
|
|
/* f0423a0: 460aa03c */ c.lt.s $f20,$f10
|
|
/* f0423a4: 00000000 */ nop
|
|
/* f0423a8: 45000039 */ bc1f .L0f042490
|
|
.L0f0423ac:
|
|
/* f0423ac: 02202825 */ or $a1,$s1,$zero
|
|
/* f0423b0: 0fc0fe62 */ jal func0f03f988
|
|
/* f0423b4: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f0423b8: 82190007 */ lb $t9,0x7($s0)
|
|
/* f0423bc: 3c18800a */ lui $t8,%hi(g_Vars+0x8)
|
|
/* f0423c0: 8f189fc8 */ lw $t8,%lo(g_Vars+0x8)($t8)
|
|
/* f0423c4: 2401000a */ addiu $at,$zero,0xa
|
|
/* f0423c8: 1721002b */ bne $t9,$at,.L0f042478
|
|
/* f0423cc: ae180044 */ sw $t8,0x44($s0)
|
|
/* f0423d0: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f0423d4: 3c0141f0 */ lui $at,0x41f0
|
|
/* f0423d8: 44812000 */ mtc1 $at,$f4
|
|
/* f0423dc: c4b0001c */ lwc1 $f16,0x1c($a1)
|
|
/* f0423e0: c4b20018 */ lwc1 $f18,0x18($a1)
|
|
/* f0423e4: 46128001 */ sub.s $f0,$f16,$f18
|
|
/* f0423e8: 4604003c */ c.lt.s $f0,$f4
|
|
/* f0423ec: 00000000 */ nop
|
|
/* f0423f0: 4502001c */ bc1fl .L0f042464
|
|
/* f0423f4: 4405c000 */ mfc1 $a1,$f24
|
|
/* f0423f8: 4600018d */ trunc.w.s $f6,$f0
|
|
/* f0423fc: 8e080040 */ lw $t0,0x40($s0)
|
|
/* f042400: 240c003c */ addiu $t4,$zero,0x3c
|
|
/* f042404: 02602025 */ or $a0,$s3,$zero
|
|
/* f042408: 440a3000 */ mfc1 $t2,$f6
|
|
/* f04240c: 3c053dcc */ lui $a1,0x3dcc
|
|
/* f042410: 000a5840 */ sll $t3,$t2,0x1
|
|
/* f042414: 018b6823 */ subu $t5,$t4,$t3
|
|
/* f042418: 010d082a */ slt $at,$t0,$t5
|
|
/* f04241c: 54200008 */ bnezl $at,.L0f042440
|
|
/* f042420: 4406b000 */ mfc1 $a2,$f22
|
|
/* f042424: 4405c000 */ mfc1 $a1,$f24
|
|
/* f042428: 4406b000 */ mfc1 $a2,$f22
|
|
/* f04242c: 0c0077ac */ jal modelSetAnimSpeed
|
|
/* f042430: 02602025 */ or $a0,$s3,$zero
|
|
/* f042434: 10000070 */ b .L0f0425f8
|
|
/* f042438: 26310001 */ addiu $s1,$s1,0x1
|
|
/* f04243c: 4406b000 */ mfc1 $a2,$f22
|
|
.L0f042440:
|
|
/* f042440: 0c0077ac */ jal modelSetAnimSpeed
|
|
/* f042444: 34a5cccd */ ori $a1,$a1,0xcccd
|
|
/* f042448: 3c0e800a */ lui $t6,%hi(g_Vars+0x38)
|
|
/* f04244c: 8dce9ff8 */ lw $t6,%lo(g_Vars+0x38)($t6)
|
|
/* f042450: 8e0f0040 */ lw $t7,0x40($s0)
|
|
/* f042454: 01eec021 */ addu $t8,$t7,$t6
|
|
/* f042458: 10000066 */ b .L0f0425f4
|
|
/* f04245c: ae180040 */ sw $t8,0x40($s0)
|
|
/* f042460: 4405c000 */ mfc1 $a1,$f24
|
|
.L0f042464:
|
|
/* f042464: 4406b000 */ mfc1 $a2,$f22
|
|
/* f042468: 0c0077ac */ jal modelSetAnimSpeed
|
|
/* f04246c: 02602025 */ or $a0,$s3,$zero
|
|
/* f042470: 10000061 */ b .L0f0425f8
|
|
/* f042474: 26310001 */ addiu $s1,$s1,0x1
|
|
.L0f042478:
|
|
/* f042478: 4405c000 */ mfc1 $a1,$f24
|
|
/* f04247c: 4406b000 */ mfc1 $a2,$f22
|
|
/* f042480: 0c0077ac */ jal modelSetAnimSpeed
|
|
/* f042484: 02602025 */ or $a0,$s3,$zero
|
|
/* f042488: 1000005b */ b .L0f0425f8
|
|
/* f04248c: 26310001 */ addiu $s1,$s1,0x1
|
|
.L0f042490:
|
|
/* f042490: 02002025 */ or $a0,$s0,$zero
|
|
.L0f042494:
|
|
/* f042494: 0fc0fe62 */ jal func0f03f988
|
|
/* f042498: 02202825 */ or $a1,$s1,$zero
|
|
/* f04249c: 82190007 */ lb $t9,0x7($s0)
|
|
/* f0424a0: 2401000a */ addiu $at,$zero,0xa
|
|
/* f0424a4: 02002025 */ or $a0,$s0,$zero
|
|
/* f0424a8: 1721000c */ bne $t9,$at,.L0f0424dc
|
|
/* f0424ac: 3c063f4c */ lui $a2,0x3f4c
|
|
/* f0424b0: 4405c000 */ mfc1 $a1,$f24
|
|
/* f0424b4: 3c063f4c */ lui $a2,0x3f4c
|
|
/* f0424b8: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f0424bc: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f0424c0: 02002025 */ or $a0,$s0,$zero
|
|
/* f0424c4: 44050000 */ mfc1 $a1,$f0
|
|
/* f0424c8: 4406b000 */ mfc1 $a2,$f22
|
|
/* f0424cc: 0c0077ac */ jal modelSetAnimSpeed
|
|
/* f0424d0: 02602025 */ or $a0,$s3,$zero
|
|
/* f0424d4: 10000048 */ b .L0f0425f8
|
|
/* f0424d8: 26310001 */ addiu $s1,$s1,0x1
|
|
.L0f0424dc:
|
|
/* f0424dc: 4405c000 */ mfc1 $a1,$f24
|
|
/* f0424e0: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f0424e4: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f0424e8: 44050000 */ mfc1 $a1,$f0
|
|
/* f0424ec: 4406b000 */ mfc1 $a2,$f22
|
|
/* f0424f0: 0c0077ac */ jal modelSetAnimSpeed
|
|
/* f0424f4: 02602025 */ or $a0,$s3,$zero
|
|
/* f0424f8: 1000003f */ b .L0f0425f8
|
|
/* f0424fc: 26310001 */ addiu $s1,$s1,0x1
|
|
.L0f042500:
|
|
/* f042500: 0c00744f */ jal modelGetAnimNum
|
|
/* f042504: 02602025 */ or $a0,$s3,$zero
|
|
/* f042508: 2401026a */ addiu $at,$zero,0x26a
|
|
/* f04250c: 10410023 */ beq $v0,$at,.L0f04259c
|
|
/* f042510: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f042514: 82090031 */ lb $t1,0x31($s0)
|
|
/* f042518: 02002025 */ or $a0,$s0,$zero
|
|
/* f04251c: 5520002f */ bnezl $t1,.L0f0425dc
|
|
/* f042520: 02202825 */ or $a1,$s1,$zero
|
|
/* f042524: 82020032 */ lb $v0,0x32($s0)
|
|
/* f042528: 12220004 */ beq $s1,$v0,.L0f04253c
|
|
/* f04252c: 02025021 */ addu $t2,$s0,$v0
|
|
/* f042530: 814c003a */ lb $t4,0x3a($t2)
|
|
/* f042534: 55800029 */ bnezl $t4,.L0f0425dc
|
|
/* f042538: 02202825 */ or $a1,$s1,$zero
|
|
.L0f04253c:
|
|
/* f04253c: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f042540: c4a00020 */ lwc1 $f0,0x20($a1)
|
|
/* f042544: 4600b03e */ c.le.s $f22,$f0
|
|
/* f042548: 00000000 */ nop
|
|
/* f04254c: 4502000b */ bc1fl .L0f04257c
|
|
/* f042550: 4616003c */ c.lt.s $f0,$f22
|
|
/* f042554: 4614003e */ c.le.s $f0,$f20
|
|
/* f042558: 00000000 */ nop
|
|
/* f04255c: 45020007 */ bc1fl .L0f04257c
|
|
/* f042560: 4616003c */ c.lt.s $f0,$f22
|
|
/* f042564: c4a80024 */ lwc1 $f8,0x24($a1)
|
|
/* f042568: 4608a03e */ c.le.s $f20,$f8
|
|
/* f04256c: 00000000 */ nop
|
|
/* f042570: 4503000b */ bc1tl .L0f0425a0
|
|
/* f042574: 820b0032 */ lb $t3,0x32($s0)
|
|
/* f042578: 4616003c */ c.lt.s $f0,$f22
|
|
.L0f04257c:
|
|
/* f04257c: 00000000 */ nop
|
|
/* f042580: 45020016 */ bc1fl .L0f0425dc
|
|
/* f042584: 02202825 */ or $a1,$s1,$zero
|
|
/* f042588: c4aa0018 */ lwc1 $f10,0x18($a1)
|
|
/* f04258c: 4614503e */ c.le.s $f10,$f20
|
|
/* f042590: 00000000 */ nop
|
|
/* f042594: 45020011 */ bc1fl .L0f0425dc
|
|
/* f042598: 02202825 */ or $a1,$s1,$zero
|
|
.L0f04259c:
|
|
/* f04259c: 820b0032 */ lb $t3,0x32($s0)
|
|
.L0f0425a0:
|
|
/* f0425a0: 820d0033 */ lb $t5,0x33($s0)
|
|
/* f0425a4: a2060031 */ sb $a2,0x31($s0)
|
|
/* f0425a8: 00cb4023 */ subu $t0,$a2,$t3
|
|
/* f0425ac: 25af0001 */ addiu $t7,$t5,0x1
|
|
/* f0425b0: a2080032 */ sb $t0,0x32($s0)
|
|
/* f0425b4: a20f0033 */ sb $t7,0x33($s0)
|
|
/* f0425b8: 3c0e800a */ lui $t6,%hi(g_Vars+0x8)
|
|
/* f0425bc: 8dce9fc8 */ lw $t6,%lo(g_Vars+0x8)($t6)
|
|
/* f0425c0: 02002025 */ or $a0,$s0,$zero
|
|
/* f0425c4: 02202825 */ or $a1,$s1,$zero
|
|
/* f0425c8: 0fc0fe62 */ jal func0f03f988
|
|
/* f0425cc: ae0e0044 */ sw $t6,0x44($s0)
|
|
/* f0425d0: 10000009 */ b .L0f0425f8
|
|
/* f0425d4: 26310001 */ addiu $s1,$s1,0x1
|
|
/* f0425d8: 02202825 */ or $a1,$s1,$zero
|
|
.L0f0425dc:
|
|
/* f0425dc: 0fc0fe62 */ jal func0f03f988
|
|
/* f0425e0: 00003025 */ or $a2,$zero,$zero
|
|
/* f0425e4: 10000004 */ b .L0f0425f8
|
|
/* f0425e8: 26310001 */ addiu $s1,$s1,0x1
|
|
.L0f0425ec:
|
|
/* f0425ec: 0fc0fe62 */ jal func0f03f988
|
|
/* f0425f0: 00003025 */ or $a2,$zero,$zero
|
|
.L0f0425f4:
|
|
/* f0425f4: 26310001 */ addiu $s1,$s1,0x1
|
|
.L0f0425f8:
|
|
/* f0425f8: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0425fc: 1621ff53 */ bne $s1,$at,.L0f04234c
|
|
/* f042600: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f042604: 8fbf0044 */ lw $ra,0x44($sp)
|
|
.L0f042608:
|
|
/* f042608: d7b40018 */ ldc1 $f20,0x18($sp)
|
|
/* f04260c: d7b60020 */ ldc1 $f22,0x20($sp)
|
|
/* f042610: d7b80028 */ ldc1 $f24,0x28($sp)
|
|
/* f042614: 8fb00034 */ lw $s0,0x34($sp)
|
|
/* f042618: 8fb10038 */ lw $s1,0x38($sp)
|
|
/* f04261c: 8fb2003c */ lw $s2,0x3c($sp)
|
|
/* f042620: 8fb30040 */ lw $s3,0x40($sp)
|
|
/* f042624: 03e00008 */ jr $ra
|
|
/* f042628: 27bd0070 */ addiu $sp,$sp,0x70
|
|
);
|
|
|
|
void chrTickAttackAmount(struct chrdata *chr)
|
|
{
|
|
struct model *model = chr->model;
|
|
f32 frame = modelGetCurAnimFrame(model);
|
|
f32 unk0c = chr->act_attackamount.unk02c->unk0c;
|
|
f32 unk04 = chr->act_attackamount.unk02c->unk04;
|
|
f32 thing = chrGetRangedSpeed(chr, 1, 1.6f);
|
|
|
|
func0f03e788(chr, 1, unk04, thing, unk0c);
|
|
|
|
if (frame > chr->act_attackamount.unk02c->framestart
|
|
&& frame < chr->act_attackamount.unk02c->frameend) {
|
|
func0f03e9f4(chr, chr->act_attackamount.unk02c, 0, 1, 0.2f);
|
|
} else {
|
|
chrResetAimEndProperties(chr);
|
|
}
|
|
|
|
if (frame >= chr->act_attackamount.unk02c->unk18
|
|
&& chr->act_attackamount.unk037 == false) {
|
|
chr->act_attackamount.unk037 = true;
|
|
}
|
|
|
|
if (chr->act_attackamount.unk037) {
|
|
if (chr->act_attackamount.unk033++ < chr->act_attackamount.unk034) {
|
|
func0f03f988(chr, 0, 1);
|
|
} else {
|
|
chrAttackAmountUpdateAnimation(chr);
|
|
func0f03f988(chr, 0, 0);
|
|
}
|
|
} else {
|
|
func0f03f988(chr, 0, 0);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Sets the robot's muzzle flash to on or off.
|
|
*
|
|
* There are two muzzles, left and right, which is specified using the `right`
|
|
* argument.
|
|
*/
|
|
void robotSetMuzzleFlash(struct chrdata *chr, bool right, bool enabled)
|
|
{
|
|
struct modelnode *node;
|
|
struct modeldata_partid *data;
|
|
s32 partnum;
|
|
|
|
if (right) {
|
|
partnum = MODELPART_ROBOTMUZZLEFLASHR;
|
|
} else {
|
|
partnum = MODELPART_ROBOTMUZZLEFLASHL;
|
|
}
|
|
|
|
node = modelGetPart(chr->model->filedata, partnum);
|
|
|
|
if (node) {
|
|
data = modelGetNodeData(chr->model, node);
|
|
}
|
|
|
|
// @dangerous: data may be uninitialised
|
|
if (data) {
|
|
data->visible.u16 = enabled;
|
|
}
|
|
}
|
|
|
|
void robotAttack(struct chrdata *chr)
|
|
{
|
|
u32 rand = random() % 20;
|
|
|
|
if (chr->unk348 && chr->unk34c) {
|
|
chr->actiontype = ACT_ROBOTATTACK;
|
|
|
|
chr->unk348->bullettail->age = -1;
|
|
chr->unk348->unk00 = random() % 3;
|
|
chr->unk348->unk01 = 0;
|
|
chr->unk348->unk08 = -1;
|
|
chr->unk348->unk0c = 0.85f;
|
|
|
|
if ((coreGetDifficulty() == DIFF_PA) * 0.2f) {
|
|
chr->unk348->unk10 = 2.0f;
|
|
} else {
|
|
chr->unk348->unk10 = 1.0f;
|
|
}
|
|
|
|
chr->unk348->unk14 = 0.0f;
|
|
|
|
chr->act_robotattack.unk02c = 0.0f;
|
|
chr->act_robotattack.unk030 = 0.0f;
|
|
chr->act_robotattack.unk034 = 0.0f;
|
|
chr->act_robotattack.unk044 = 0.0f;
|
|
chr->act_robotattack.unk048 = 0.0f;
|
|
chr->act_robotattack.unk04c = 0.0f;
|
|
chr->act_robotattack.unk05c = 90;
|
|
chr->act_robotattack.unk06c = 0;
|
|
|
|
chr->unk34c->bullettail->age = -1;
|
|
chr->unk34c->unk00 = random() % 3;
|
|
chr->unk34c->unk01 = 0;
|
|
chr->unk34c->unk08 = -1;
|
|
chr->unk34c->unk0c = 0.85f;
|
|
chr->unk34c->unk10 = 0.2f;
|
|
chr->unk34c->unk14 = 0.0f;
|
|
|
|
chr->act_robotattack.unk060 = 90;
|
|
chr->act_robotattack.unk06d = 0;
|
|
chr->act_robotattack.unk06e = 0;
|
|
chr->act_robotattack.unk064 = rand;
|
|
chr->act_robotattack.unk068 = rand;
|
|
chr->act_robotattack.unk038 = 0.0f;
|
|
chr->act_robotattack.unk03c = 0.0f;
|
|
chr->act_robotattack.unk040 = 0.0f;
|
|
chr->act_robotattack.unk050 = 0.0f;
|
|
chr->act_robotattack.unk054 = 0.0f;
|
|
chr->act_robotattack.unk058 = 0.0f;
|
|
|
|
chrStandChooseAnimation(chr, 16);
|
|
}
|
|
}
|
|
|
|
void func0f0429d8(struct chrdata *chr, f32 arg1, f32 arg2)
|
|
{
|
|
struct prop *prop = chrGetTargetProp(chr);
|
|
f32 distance = atan2f(prop->pos.x - chr->prop->pos.x, prop->pos.z - chr->prop->pos.z);
|
|
f32 value = func0001afe8(arg2, distance, arg1);
|
|
chrSetLookAngle(chr, value);
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrTickRobotAttack
|
|
.late_rodata
|
|
glabel var7f1a91a4
|
|
.word 0x40c907a9
|
|
glabel var7f1a91a8
|
|
.word 0x3cf5c28f
|
|
glabel var7f1a91ac
|
|
.word 0x3cf5c28f
|
|
glabel var7f1a91b0
|
|
.word 0x3cf5c28f
|
|
glabel var7f1a91b4
|
|
.word 0x3cf5c28f
|
|
glabel var7f1a91b8
|
|
.word 0x404907a9
|
|
glabel var7f1a91bc
|
|
.word 0xbf0624dd
|
|
glabel var7f1a91c0
|
|
.word 0x3f0624dd
|
|
glabel var7f1a91c4
|
|
.word 0x404907a9
|
|
glabel var7f1a91c8
|
|
.word 0xbf0624dd
|
|
glabel var7f1a91cc
|
|
.word 0xbf0624dd
|
|
glabel var7f1a91d0
|
|
.word 0x3f0624dd
|
|
glabel var7f1a91d4
|
|
.word 0x3f0624dd
|
|
glabel var7f1a91d8
|
|
.word 0x3e19999a
|
|
glabel var7f1a91dc
|
|
.word 0x3e19999a
|
|
.text
|
|
/* f042a40: 27bdfee8 */ addiu $sp,$sp,-280
|
|
/* f042a44: f7bc0038 */ sdc1 $f28,0x38($sp)
|
|
/* f042a48: 4480e000 */ mtc1 $zero,$f28
|
|
/* f042a4c: afbf006c */ sw $ra,0x6c($sp)
|
|
/* f042a50: afb20050 */ sw $s2,0x50($sp)
|
|
/* f042a54: f7ba0030 */ sdc1 $f26,0x30($sp)
|
|
/* f042a58: 00809025 */ or $s2,$a0,$zero
|
|
/* f042a5c: afbe0068 */ sw $s8,0x68($sp)
|
|
/* f042a60: afb70064 */ sw $s7,0x64($sp)
|
|
/* f042a64: afb60060 */ sw $s6,0x60($sp)
|
|
/* f042a68: afb5005c */ sw $s5,0x5c($sp)
|
|
/* f042a6c: afb40058 */ sw $s4,0x58($sp)
|
|
/* f042a70: afb30054 */ sw $s3,0x54($sp)
|
|
/* f042a74: afb1004c */ sw $s1,0x4c($sp)
|
|
/* f042a78: afb00048 */ sw $s0,0x48($sp)
|
|
/* f042a7c: f7be0040 */ sdc1 $f30,0x40($sp)
|
|
/* f042a80: f7b80028 */ sdc1 $f24,0x28($sp)
|
|
/* f042a84: f7b60020 */ sdc1 $f22,0x20($sp)
|
|
/* f042a88: f7b40018 */ sdc1 $f20,0x18($sp)
|
|
/* f042a8c: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f042a90: 4600e686 */ mov.s $f26,$f28
|
|
/* f042a94: 0040f025 */ or $s8,$v0,$zero
|
|
/* f042a98: 0fc0f917 */ jal chrGetInverseTheta
|
|
/* f042a9c: 02402025 */ or $a0,$s2,$zero
|
|
/* f042aa0: 3c053dae */ lui $a1,0x3dae
|
|
/* f042aa4: 44060000 */ mfc1 $a2,$f0
|
|
/* f042aa8: e7a000fc */ swc1 $f0,0xfc($sp)
|
|
/* f042aac: 34a5147b */ ori $a1,$a1,0x147b
|
|
/* f042ab0: 0fc10a76 */ jal func0f0429d8
|
|
/* f042ab4: 02402025 */ or $a0,$s2,$zero
|
|
/* f042ab8: 8e4f0020 */ lw $t7,0x20($s2)
|
|
/* f042abc: 3c0e8008 */ lui $t6,%hi(g_ModelTypeRobot)
|
|
/* f042ac0: 25cecefc */ addiu $t6,$t6,%lo(g_ModelTypeRobot)
|
|
/* f042ac4: 8df80008 */ lw $t8,0x8($t7)
|
|
/* f042ac8: 2655002c */ addiu $s5,$s2,0x2c
|
|
/* f042acc: 02a0b825 */ or $s7,$s5,$zero
|
|
/* f042ad0: 8f190004 */ lw $t9,0x4($t8)
|
|
/* f042ad4: 0000a025 */ or $s4,$zero,$zero
|
|
/* f042ad8: 02408825 */ or $s1,$s2,$zero
|
|
/* f042adc: 11d90004 */ beq $t6,$t9,.L0f042af0
|
|
/* f042ae0: 3c017f1b */ lui $at,%hi(var7f1a91a4)
|
|
/* f042ae4: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f042ae8: 10000132 */ b .L0f042fb4
|
|
/* f042aec: a248006e */ sb $t0,0x6e($s2)
|
|
.L0f042af0:
|
|
/* f042af0: afb50070 */ sw $s5,0x70($sp)
|
|
/* f042af4: c43e91a4 */ lwc1 $f30,%lo(var7f1a91a4)($at)
|
|
.L0f042af8:
|
|
/* f042af8: 8ee90038 */ lw $t1,0x38($s7)
|
|
/* f042afc: 00009825 */ or $s3,$zero,$zero
|
|
/* f042b00: 5920000e */ blezl $t1,.L0f042b3c
|
|
/* f042b04: 8e380348 */ lw $t8,0x348($s1)
|
|
/* f042b08: 8e220348 */ lw $v0,0x348($s1)
|
|
/* f042b0c: 24010003 */ addiu $at,$zero,0x3
|
|
/* f042b10: 90450000 */ lbu $a1,0x0($v0)
|
|
/* f042b14: 00a1001a */ div $zero,$a1,$at
|
|
/* f042b18: 00005010 */ mfhi $t2
|
|
/* f042b1c: 2d4b0001 */ sltiu $t3,$t2,0x1
|
|
/* f042b20: a04b0001 */ sb $t3,0x1($v0)
|
|
/* f042b24: 8e2c0348 */ lw $t4,0x348($s1)
|
|
/* f042b28: 91850000 */ lbu $a1,0x0($t4)
|
|
/* f042b2c: 30ad0001 */ andi $t5,$a1,0x1
|
|
/* f042b30: 10000004 */ b .L0f042b44
|
|
/* f042b34: 2db60001 */ sltiu $s6,$t5,0x1
|
|
/* f042b38: 8e380348 */ lw $t8,0x348($s1)
|
|
.L0f042b3c:
|
|
/* f042b3c: 0000b025 */ or $s6,$zero,$zero
|
|
/* f042b40: a3000001 */ sb $zero,0x1($t8)
|
|
.L0f042b44:
|
|
/* f042b44: 8fae0070 */ lw $t6,0x70($sp)
|
|
/* f042b48: 00145080 */ sll $t2,$s4,0x2
|
|
/* f042b4c: 01545023 */ subu $t2,$t2,$s4
|
|
/* f042b50: a1d60040 */ sb $s6,0x40($t6)
|
|
/* f042b54: 8eb90038 */ lw $t9,0x38($s5)
|
|
/* f042b58: 000a5080 */ sll $t2,$t2,0x2
|
|
/* f042b5c: 1f200045 */ bgtz $t9,.L0f042c74
|
|
/* f042b60: 00000000 */ nop
|
|
/* f042b64: 8ea8003c */ lw $t0,0x3c($s5)
|
|
/* f042b68: 3c017f1b */ lui $at,%hi(var7f1a91a8)
|
|
/* f042b6c: 1d000041 */ bgtz $t0,.L0f042c74
|
|
/* f042b70: 00000000 */ nop
|
|
/* f042b74: c640030c */ lwc1 $f0,0x30c($s2)
|
|
/* f042b78: 44802000 */ mtc1 $zero,$f4
|
|
/* f042b7c: 24130001 */ addiu $s3,$zero,0x1
|
|
/* f042b80: 4600203c */ c.lt.s $f4,$f0
|
|
/* f042b84: 00000000 */ nop
|
|
/* f042b88: 45020004 */ bc1fl .L0f042b9c
|
|
/* f042b8c: 46000587 */ neg.s $f22,$f0
|
|
/* f042b90: 10000002 */ b .L0f042b9c
|
|
/* f042b94: 46000586 */ mov.s $f22,$f0
|
|
/* f042b98: 46000587 */ neg.s $f22,$f0
|
|
.L0f042b9c:
|
|
/* f042b9c: c42691a8 */ lwc1 $f6,%lo(var7f1a91a8)($at)
|
|
/* f042ba0: 3c017f1b */ lui $at,%hi(var7f1a91ac)
|
|
/* f042ba4: 4606b03c */ c.lt.s $f22,$f6
|
|
/* f042ba8: 00000000 */ nop
|
|
/* f042bac: 45000031 */ bc1f .L0f042c74
|
|
/* f042bb0: 00000000 */ nop
|
|
/* f042bb4: c6400314 */ lwc1 $f0,0x314($s2)
|
|
/* f042bb8: 44804000 */ mtc1 $zero,$f8
|
|
/* f042bbc: 00000000 */ nop
|
|
/* f042bc0: 4600403c */ c.lt.s $f8,$f0
|
|
/* f042bc4: 00000000 */ nop
|
|
/* f042bc8: 45020004 */ bc1fl .L0f042bdc
|
|
/* f042bcc: 46000087 */ neg.s $f2,$f0
|
|
/* f042bd0: 10000002 */ b .L0f042bdc
|
|
/* f042bd4: 46000086 */ mov.s $f2,$f0
|
|
/* f042bd8: 46000087 */ neg.s $f2,$f0
|
|
.L0f042bdc:
|
|
/* f042bdc: c42a91ac */ lwc1 $f10,%lo(var7f1a91ac)($at)
|
|
/* f042be0: 3c017f1b */ lui $at,%hi(var7f1a91b0)
|
|
/* f042be4: 460a103c */ c.lt.s $f2,$f10
|
|
/* f042be8: 00000000 */ nop
|
|
/* f042bec: 45000021 */ bc1f .L0f042c74
|
|
/* f042bf0: 00000000 */ nop
|
|
/* f042bf4: c6400310 */ lwc1 $f0,0x310($s2)
|
|
/* f042bf8: 44808000 */ mtc1 $zero,$f16
|
|
/* f042bfc: 00000000 */ nop
|
|
/* f042c00: 4600803c */ c.lt.s $f16,$f0
|
|
/* f042c04: 00000000 */ nop
|
|
/* f042c08: 45020004 */ bc1fl .L0f042c1c
|
|
/* f042c0c: 46000087 */ neg.s $f2,$f0
|
|
/* f042c10: 10000002 */ b .L0f042c1c
|
|
/* f042c14: 46000086 */ mov.s $f2,$f0
|
|
/* f042c18: 46000087 */ neg.s $f2,$f0
|
|
.L0f042c1c:
|
|
/* f042c1c: c43291b0 */ lwc1 $f18,%lo(var7f1a91b0)($at)
|
|
/* f042c20: 3c017f1b */ lui $at,%hi(var7f1a91b4)
|
|
/* f042c24: 4612103c */ c.lt.s $f2,$f18
|
|
/* f042c28: 00000000 */ nop
|
|
/* f042c2c: 45000011 */ bc1f .L0f042c74
|
|
/* f042c30: 00000000 */ nop
|
|
/* f042c34: c6400318 */ lwc1 $f0,0x318($s2)
|
|
/* f042c38: 44802000 */ mtc1 $zero,$f4
|
|
/* f042c3c: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f042c40: 4600203c */ c.lt.s $f4,$f0
|
|
/* f042c44: 00000000 */ nop
|
|
/* f042c48: 45020004 */ bc1fl .L0f042c5c
|
|
/* f042c4c: 46000087 */ neg.s $f2,$f0
|
|
/* f042c50: 10000002 */ b .L0f042c5c
|
|
/* f042c54: 46000086 */ mov.s $f2,$f0
|
|
/* f042c58: 46000087 */ neg.s $f2,$f0
|
|
.L0f042c5c:
|
|
/* f042c5c: c42691b4 */ lwc1 $f6,%lo(var7f1a91b4)($at)
|
|
/* f042c60: 4606103c */ c.lt.s $f2,$f6
|
|
/* f042c64: 00000000 */ nop
|
|
/* f042c68: 45000002 */ bc1f .L0f042c74
|
|
/* f042c6c: 00000000 */ nop
|
|
/* f042c70: a2a90042 */ sb $t1,0x42($s5)
|
|
.L0f042c74:
|
|
/* f042c74: 16600083 */ bnez $s3,.L0f042e84
|
|
/* f042c78: 3c0141a0 */ lui $at,0x41a0
|
|
/* f042c7c: c7c8000c */ lwc1 $f8,0xc($s8)
|
|
/* f042c80: 44815000 */ mtc1 $at,$f10
|
|
/* f042c84: 02aa8021 */ addu $s0,$s5,$t2
|
|
/* f042c88: 12800003 */ beqz $s4,.L0f042c98
|
|
/* f042c8c: 460a4501 */ sub.s $f20,$f8,$f10
|
|
/* f042c90: 10000002 */ b .L0f042c9c
|
|
/* f042c94: 00002825 */ or $a1,$zero,$zero
|
|
.L0f042c98:
|
|
/* f042c98: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f042c9c:
|
|
/* f042c9c: 8e4b0020 */ lw $t3,0x20($s2)
|
|
/* f042ca0: 0c006a6f */ jal modelGetPartNodeData
|
|
/* f042ca4: 8d640008 */ lw $a0,0x8($t3)
|
|
/* f042ca8: c4500000 */ lwc1 $f16,0x0($v0)
|
|
/* f042cac: 3c014396 */ lui $at,0x4396
|
|
/* f042cb0: 44812000 */ mtc1 $at,$f4
|
|
/* f042cb4: e6100000 */ swc1 $f16,0x0($s0)
|
|
/* f042cb8: c4520004 */ lwc1 $f18,0x4($v0)
|
|
/* f042cbc: 27a500a4 */ addiu $a1,$sp,0xa4
|
|
/* f042cc0: 46049181 */ sub.s $f6,$f18,$f4
|
|
/* f042cc4: e6060004 */ swc1 $f6,0x4($s0)
|
|
/* f042cc8: c4480008 */ lwc1 $f8,0x8($v0)
|
|
/* f042ccc: e6080008 */ swc1 $f8,0x8($s0)
|
|
/* f042cd0: 0c0058dd */ jal func00016374
|
|
/* f042cd4: c7ac00fc */ lwc1 $f12,0xfc($sp)
|
|
/* f042cd8: 27a400a4 */ addiu $a0,$sp,0xa4
|
|
/* f042cdc: 02002825 */ or $a1,$s0,$zero
|
|
/* f042ce0: 0c0056c5 */ jal func00015b14
|
|
/* f042ce4: 27a600e4 */ addiu $a2,$sp,0xe4
|
|
/* f042ce8: 8e4c0020 */ lw $t4,0x20($s2)
|
|
/* f042cec: c7aa00e4 */ lwc1 $f10,0xe4($sp)
|
|
/* f042cf0: c7a400e8 */ lwc1 $f4,0xe8($sp)
|
|
/* f042cf4: c5900014 */ lwc1 $f16,0x14($t4)
|
|
/* f042cf8: 46105482 */ mul.s $f18,$f10,$f16
|
|
/* f042cfc: c7aa00ec */ lwc1 $f10,0xec($sp)
|
|
/* f042d00: e7b200e4 */ swc1 $f18,0xe4($sp)
|
|
/* f042d04: 8e4d0020 */ lw $t5,0x20($s2)
|
|
/* f042d08: c5a60014 */ lwc1 $f6,0x14($t5)
|
|
/* f042d0c: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f042d10: e7a800e8 */ swc1 $f8,0xe8($sp)
|
|
/* f042d14: 8e4f0020 */ lw $t7,0x20($s2)
|
|
/* f042d18: c5f00014 */ lwc1 $f16,0x14($t7)
|
|
/* f042d1c: 46105102 */ mul.s $f4,$f10,$f16
|
|
/* f042d20: e7a400ec */ swc1 $f4,0xec($sp)
|
|
/* f042d24: 8e58001c */ lw $t8,0x1c($s2)
|
|
/* f042d28: c7060008 */ lwc1 $f6,0x8($t8)
|
|
/* f042d2c: 46123200 */ add.s $f8,$f6,$f18
|
|
/* f042d30: e6080000 */ swc1 $f8,0x0($s0)
|
|
/* f042d34: 8e4e001c */ lw $t6,0x1c($s2)
|
|
/* f042d38: c7b000e8 */ lwc1 $f16,0xe8($sp)
|
|
/* f042d3c: c5ca000c */ lwc1 $f10,0xc($t6)
|
|
/* f042d40: 46105100 */ add.s $f4,$f10,$f16
|
|
/* f042d44: c6100000 */ lwc1 $f16,0x0($s0)
|
|
/* f042d48: e6040004 */ swc1 $f4,0x4($s0)
|
|
/* f042d4c: 8e59001c */ lw $t9,0x1c($s2)
|
|
/* f042d50: c7b200ec */ lwc1 $f18,0xec($sp)
|
|
/* f042d54: c7260010 */ lwc1 $f6,0x10($t9)
|
|
/* f042d58: 46123200 */ add.s $f8,$f6,$f18
|
|
/* f042d5c: e6080008 */ swc1 $f8,0x8($s0)
|
|
/* f042d60: c6060008 */ lwc1 $f6,0x8($s0)
|
|
/* f042d64: c7c40010 */ lwc1 $f4,0x10($s8)
|
|
/* f042d68: c7ca0008 */ lwc1 $f10,0x8($s8)
|
|
/* f042d6c: 46062381 */ sub.s $f14,$f4,$f6
|
|
/* f042d70: 0fc259d4 */ jal atan2f
|
|
/* f042d74: 46105301 */ sub.s $f12,$f10,$f16
|
|
/* f042d78: c7ac00fc */ lwc1 $f12,0xfc($sp)
|
|
/* f042d7c: 3c017f1b */ lui $at,%hi(var7f1a91b8)
|
|
/* f042d80: 460c003c */ c.lt.s $f0,$f12
|
|
/* f042d84: 460c0081 */ sub.s $f2,$f0,$f12
|
|
/* f042d88: 45000002 */ bc1f .L0f042d94
|
|
/* f042d8c: 46001686 */ mov.s $f26,$f2
|
|
/* f042d90: 461e1680 */ add.s $f26,$f2,$f30
|
|
.L0f042d94:
|
|
/* f042d94: c43291b8 */ lwc1 $f18,%lo(var7f1a91b8)($at)
|
|
/* f042d98: 3c017f1b */ lui $at,%hi(var7f1a91bc)
|
|
/* f042d9c: 461a903c */ c.lt.s $f18,$f26
|
|
/* f042da0: 00000000 */ nop
|
|
/* f042da4: 45000002 */ bc1f .L0f042db0
|
|
/* f042da8: 00000000 */ nop
|
|
/* f042dac: 461ed681 */ sub.s $f26,$f26,$f30
|
|
.L0f042db0:
|
|
/* f042db0: c42e91bc */ lwc1 $f14,%lo(var7f1a91bc)($at)
|
|
/* f042db4: 3c017f1b */ lui $at,%hi(var7f1a91c0)
|
|
/* f042db8: 460ed03c */ c.lt.s $f26,$f14
|
|
/* f042dbc: 00000000 */ nop
|
|
/* f042dc0: 45000002 */ bc1f .L0f042dcc
|
|
/* f042dc4: 00000000 */ nop
|
|
/* f042dc8: 46007686 */ mov.s $f26,$f14
|
|
.L0f042dcc:
|
|
/* f042dcc: c42091c0 */ lwc1 $f0,%lo(var7f1a91c0)($at)
|
|
/* f042dd0: 461a003c */ c.lt.s $f0,$f26
|
|
/* f042dd4: 00000000 */ nop
|
|
/* f042dd8: 45020003 */ bc1fl .L0f042de8
|
|
/* f042ddc: c7c80008 */ lwc1 $f8,0x8($s8)
|
|
/* f042de0: 46000686 */ mov.s $f26,$f0
|
|
/* f042de4: c7c80008 */ lwc1 $f8,0x8($s8)
|
|
.L0f042de8:
|
|
/* f042de8: c60a0000 */ lwc1 $f10,0x0($s0)
|
|
/* f042dec: c7d00010 */ lwc1 $f16,0x10($s8)
|
|
/* f042df0: c6040008 */ lwc1 $f4,0x8($s0)
|
|
/* f042df4: 460a4001 */ sub.s $f0,$f8,$f10
|
|
/* f042df8: 46048081 */ sub.s $f2,$f16,$f4
|
|
/* f042dfc: 46000182 */ mul.s $f6,$f0,$f0
|
|
/* f042e00: 00000000 */ nop
|
|
/* f042e04: 46021482 */ mul.s $f18,$f2,$f2
|
|
/* f042e08: 0c012974 */ jal sqrtf
|
|
/* f042e0c: 46123300 */ add.s $f12,$f6,$f18
|
|
/* f042e10: c6080004 */ lwc1 $f8,0x4($s0)
|
|
/* f042e14: 46000386 */ mov.s $f14,$f0
|
|
/* f042e18: 0fc259d4 */ jal atan2f
|
|
/* f042e1c: 4608a301 */ sub.s $f12,$f20,$f8
|
|
/* f042e20: 4600f081 */ sub.s $f2,$f30,$f0
|
|
/* f042e24: 3c017f1b */ lui $at,%hi(var7f1a91c4)
|
|
/* f042e28: c42a91c4 */ lwc1 $f10,%lo(var7f1a91c4)($at)
|
|
/* f042e2c: 3c017f1b */ lui $at,%hi(var7f1a91c8)
|
|
/* f042e30: 46001706 */ mov.s $f28,$f2
|
|
/* f042e34: 4602503c */ c.lt.s $f10,$f2
|
|
/* f042e38: 00000000 */ nop
|
|
/* f042e3c: 45000002 */ bc1f .L0f042e48
|
|
/* f042e40: 00000000 */ nop
|
|
/* f042e44: 461e1701 */ sub.s $f28,$f2,$f30
|
|
.L0f042e48:
|
|
/* f042e48: c43091c8 */ lwc1 $f16,%lo(var7f1a91c8)($at)
|
|
/* f042e4c: 3c017f1b */ lui $at,%hi(var7f1a91cc)
|
|
/* f042e50: 4610e03c */ c.lt.s $f28,$f16
|
|
/* f042e54: 00000000 */ nop
|
|
/* f042e58: 45000002 */ bc1f .L0f042e64
|
|
/* f042e5c: 00000000 */ nop
|
|
/* f042e60: c43c91cc */ lwc1 $f28,%lo(var7f1a91cc)($at)
|
|
.L0f042e64:
|
|
/* f042e64: 3c017f1b */ lui $at,%hi(var7f1a91d0)
|
|
/* f042e68: c42491d0 */ lwc1 $f4,%lo(var7f1a91d0)($at)
|
|
/* f042e6c: 3c017f1b */ lui $at,%hi(var7f1a91d4)
|
|
/* f042e70: 461c203c */ c.lt.s $f4,$f28
|
|
/* f042e74: 00000000 */ nop
|
|
/* f042e78: 45020003 */ bc1fl .L0f042e88
|
|
/* f042e7c: c620030c */ lwc1 $f0,0x30c($s1)
|
|
/* f042e80: c43c91d4 */ lwc1 $f28,%lo(var7f1a91d4)($at)
|
|
.L0f042e84:
|
|
/* f042e84: c620030c */ lwc1 $f0,0x30c($s1)
|
|
.L0f042e88:
|
|
/* f042e88: 3c017f1b */ lui $at,%hi(var7f1a91d8)
|
|
/* f042e8c: c43291d8 */ lwc1 $f18,%lo(var7f1a91d8)($at)
|
|
/* f042e90: 4600d181 */ sub.s $f6,$f26,$f0
|
|
/* f042e94: c6220314 */ lwc1 $f2,0x314($s1)
|
|
/* f042e98: 3c017f1b */ lui $at,%hi(var7f1a91dc)
|
|
/* f042e9c: 46123202 */ mul.s $f8,$f6,$f18
|
|
/* f042ea0: 4602e401 */ sub.s $f16,$f28,$f2
|
|
/* f042ea4: 46080280 */ add.s $f10,$f0,$f8
|
|
/* f042ea8: e62a030c */ swc1 $f10,0x30c($s1)
|
|
/* f042eac: c42491dc */ lwc1 $f4,%lo(var7f1a91dc)($at)
|
|
/* f042eb0: 46048182 */ mul.s $f6,$f16,$f4
|
|
/* f042eb4: 46061480 */ add.s $f18,$f2,$f6
|
|
/* f042eb8: 16600036 */ bnez $s3,.L0f042f94
|
|
/* f042ebc: e6320314 */ swc1 $f18,0x314($s1)
|
|
/* f042ec0: 12c00030 */ beqz $s6,.L0f042f84
|
|
/* f042ec4: c7a800fc */ lwc1 $f8,0xfc($sp)
|
|
/* f042ec8: 44800000 */ mtc1 $zero,$f0
|
|
/* f042ecc: c6380314 */ lwc1 $f24,0x314($s1)
|
|
/* f042ed0: 00144080 */ sll $t0,$s4,0x2
|
|
/* f042ed4: 01144023 */ subu $t0,$t0,$s4
|
|
/* f042ed8: 4600c03c */ c.lt.s $f24,$f0
|
|
/* f042edc: 00084080 */ sll $t0,$t0,0x2
|
|
/* f042ee0: c634030c */ lwc1 $f20,0x30c($s1)
|
|
/* f042ee4: 02a88021 */ addu $s0,$s5,$t0
|
|
/* f042ee8: 45020003 */ bc1fl .L0f042ef8
|
|
/* f042eec: 4600a03c */ c.lt.s $f20,$f0
|
|
/* f042ef0: 461ec600 */ add.s $f24,$f24,$f30
|
|
/* f042ef4: 4600a03c */ c.lt.s $f20,$f0
|
|
.L0f042ef8:
|
|
/* f042ef8: 00000000 */ nop
|
|
/* f042efc: 45020003 */ bc1fl .L0f042f0c
|
|
/* f042f00: 4608a500 */ add.s $f20,$f20,$f8
|
|
/* f042f04: 461ea500 */ add.s $f20,$f20,$f30
|
|
/* f042f08: 4608a500 */ add.s $f20,$f20,$f8
|
|
.L0f042f0c:
|
|
/* f042f0c: 4614f03e */ c.le.s $f30,$f20
|
|
/* f042f10: 00000000 */ nop
|
|
/* f042f14: 45000002 */ bc1f .L0f042f20
|
|
/* f042f18: 00000000 */ nop
|
|
/* f042f1c: 461ea501 */ sub.s $f20,$f20,$f30
|
|
.L0f042f20:
|
|
/* f042f20: 0c0068f7 */ jal sinf
|
|
/* f042f24: 4600a306 */ mov.s $f12,$f20
|
|
/* f042f28: 46000586 */ mov.s $f22,$f0
|
|
/* f042f2c: 0c0068f4 */ jal cosf
|
|
/* f042f30: 4600c306 */ mov.s $f12,$f24
|
|
/* f042f34: 46160282 */ mul.s $f10,$f0,$f22
|
|
/* f042f38: 4600c306 */ mov.s $f12,$f24
|
|
/* f042f3c: 0c0068f7 */ jal sinf
|
|
/* f042f40: e60a0018 */ swc1 $f10,0x18($s0)
|
|
/* f042f44: 46000407 */ neg.s $f16,$f0
|
|
/* f042f48: 4600a306 */ mov.s $f12,$f20
|
|
/* f042f4c: 0c0068f4 */ jal cosf
|
|
/* f042f50: e610001c */ swc1 $f16,0x1c($s0)
|
|
/* f042f54: 46000586 */ mov.s $f22,$f0
|
|
/* f042f58: 0c0068f4 */ jal cosf
|
|
/* f042f5c: 4600c306 */ mov.s $f12,$f24
|
|
/* f042f60: 46160102 */ mul.s $f4,$f0,$f22
|
|
/* f042f64: 02402025 */ or $a0,$s2,$zero
|
|
/* f042f68: 02802825 */ or $a1,$s4,$zero
|
|
/* f042f6c: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f042f70: 0fc109e7 */ jal robotSetMuzzleFlash
|
|
/* f042f74: e6040020 */ swc1 $f4,0x20($s0)
|
|
/* f042f78: 8ee90038 */ lw $t1,0x38($s7)
|
|
/* f042f7c: 252affff */ addiu $t2,$t1,-1
|
|
/* f042f80: aeea0038 */ sw $t2,0x38($s7)
|
|
.L0f042f84:
|
|
/* f042f84: 8e220348 */ lw $v0,0x348($s1)
|
|
/* f042f88: 904b0000 */ lbu $t3,0x0($v0)
|
|
/* f042f8c: 256c0001 */ addiu $t4,$t3,0x1
|
|
/* f042f90: a04c0000 */ sb $t4,0x0($v0)
|
|
.L0f042f94:
|
|
/* f042f94: 8fad0070 */ lw $t5,0x70($sp)
|
|
/* f042f98: 26940001 */ addiu $s4,$s4,0x1
|
|
/* f042f9c: 24010002 */ addiu $at,$zero,0x2
|
|
/* f042fa0: 25af0001 */ addiu $t7,$t5,0x1
|
|
/* f042fa4: afaf0070 */ sw $t7,0x70($sp)
|
|
/* f042fa8: 26310004 */ addiu $s1,$s1,0x4
|
|
/* f042fac: 1681fed2 */ bne $s4,$at,.L0f042af8
|
|
/* f042fb0: 26f70004 */ addiu $s7,$s7,0x4
|
|
.L0f042fb4:
|
|
/* f042fb4: 8fbf006c */ lw $ra,0x6c($sp)
|
|
/* f042fb8: d7b40018 */ ldc1 $f20,0x18($sp)
|
|
/* f042fbc: d7b60020 */ ldc1 $f22,0x20($sp)
|
|
/* f042fc0: d7b80028 */ ldc1 $f24,0x28($sp)
|
|
/* f042fc4: d7ba0030 */ ldc1 $f26,0x30($sp)
|
|
/* f042fc8: d7bc0038 */ ldc1 $f28,0x38($sp)
|
|
/* f042fcc: d7be0040 */ ldc1 $f30,0x40($sp)
|
|
/* f042fd0: 8fb00048 */ lw $s0,0x48($sp)
|
|
/* f042fd4: 8fb1004c */ lw $s1,0x4c($sp)
|
|
/* f042fd8: 8fb20050 */ lw $s2,0x50($sp)
|
|
/* f042fdc: 8fb30054 */ lw $s3,0x54($sp)
|
|
/* f042fe0: 8fb40058 */ lw $s4,0x58($sp)
|
|
/* f042fe4: 8fb5005c */ lw $s5,0x5c($sp)
|
|
/* f042fe8: 8fb60060 */ lw $s6,0x60($sp)
|
|
/* f042fec: 8fb70064 */ lw $s7,0x64($sp)
|
|
/* f042ff0: 8fbe0068 */ lw $s8,0x68($sp)
|
|
/* f042ff4: 03e00008 */ jr $ra
|
|
/* f042ff8: 27bd0118 */ addiu $sp,$sp,0x118
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrTickAttack
|
|
.late_rodata
|
|
glabel var7f1a91e0
|
|
.word 0x3e4ccccd
|
|
.text
|
|
/* f042ffc: 27bdffc0 */ addiu $sp,$sp,-64
|
|
/* f043000: afb00020 */ sw $s0,0x20($sp)
|
|
/* f043004: 00808025 */ or $s0,$a0,$zero
|
|
/* f043008: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f04300c: 8c840020 */ lw $a0,0x20($a0)
|
|
/* f043010: 0c00745f */ jal modelGetCurAnimFrame
|
|
/* f043014: afa4003c */ sw $a0,0x3c($sp)
|
|
/* f043018: e7a00038 */ swc1 $f0,0x38($sp)
|
|
/* f04301c: 8e0e0014 */ lw $t6,0x14($s0)
|
|
/* f043020: 000e7a80 */ sll $t7,$t6,0xa
|
|
/* f043024: 05e3001b */ bgezl $t7,.L0f043094
|
|
/* f043028: 8e08002c */ lw $t0,0x2c($s0)
|
|
/* f04302c: 0c0076e5 */ jal modelIsAnimMerging
|
|
/* f043030: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f043034: 144000e5 */ bnez $v0,.L0f0433cc
|
|
/* f043038: 02002025 */ or $a0,$s0,$zero
|
|
/* f04303c: 3c063f4c */ lui $a2,0x3f4c
|
|
/* f043040: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f043044: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f043048: 3c053f00 */ lui $a1,0x3f00
|
|
/* f04304c: 8e02002c */ lw $v0,0x2c($s0)
|
|
/* f043050: 3c014180 */ lui $at,0x4180
|
|
/* f043054: 44812000 */ mtc1 $at,$f4
|
|
/* f043058: 8206003e */ lb $a2,0x3e($s0)
|
|
/* f04305c: 84450000 */ lh $a1,0x0($v0)
|
|
/* f043060: 8c470010 */ lw $a3,0x10($v0)
|
|
/* f043064: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f043068: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f04306c: 0c007733 */ jal modelSetAnimation
|
|
/* f043070: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f043074: 0fc0c495 */ jal func0f031254
|
|
/* f043078: 02002025 */ or $a0,$s0,$zero
|
|
/* f04307c: 8e180014 */ lw $t8,0x14($s0)
|
|
/* f043080: 3c01ffdf */ lui $at,0xffdf
|
|
/* f043084: 3421ffff */ ori $at,$at,0xffff
|
|
/* f043088: 0301c824 */ and $t9,$t8,$at
|
|
/* f04308c: ae190014 */ sw $t9,0x14($s0)
|
|
/* f043090: 8e08002c */ lw $t0,0x2c($s0)
|
|
.L0f043094:
|
|
/* f043094: 24010269 */ addiu $at,$zero,0x269
|
|
/* f043098: 85090000 */ lh $t1,0x0($t0)
|
|
/* f04309c: 55210019 */ bnel $t1,$at,.L0f043104
|
|
/* f0430a0: 8e0302d4 */ lw $v1,0x2d4($s0)
|
|
/* f0430a4: 0c007468 */ jal modelGetAnimEndFrame
|
|
/* f0430a8: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f0430ac: c7a60038 */ lwc1 $f6,0x38($sp)
|
|
/* f0430b0: 3c0a8006 */ lui $t2,%hi(var80067d70)
|
|
/* f0430b4: 3c063f4c */ lui $a2,0x3f4c
|
|
/* f0430b8: 4606003e */ c.le.s $f0,$f6
|
|
/* f0430bc: 254a7d70 */ addiu $t2,$t2,%lo(var80067d70)
|
|
/* f0430c0: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f0430c4: 02002025 */ or $a0,$s0,$zero
|
|
/* f0430c8: 4500000d */ bc1f .L0f043100
|
|
/* f0430cc: 3c053f00 */ lui $a1,0x3f00
|
|
/* f0430d0: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f0430d4: ae0a002c */ sw $t2,0x2c($s0)
|
|
/* f0430d8: 8e02002c */ lw $v0,0x2c($s0)
|
|
/* f0430dc: 3c014180 */ lui $at,0x4180
|
|
/* f0430e0: 44814000 */ mtc1 $at,$f8
|
|
/* f0430e4: 8206003e */ lb $a2,0x3e($s0)
|
|
/* f0430e8: 84450000 */ lh $a1,0x0($v0)
|
|
/* f0430ec: 8c470010 */ lw $a3,0x10($v0)
|
|
/* f0430f0: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f0430f4: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f0430f8: 0c007733 */ jal modelSetAnimation
|
|
/* f0430fc: e7a80014 */ swc1 $f8,0x14($sp)
|
|
.L0f043100:
|
|
/* f043100: 8e0302d4 */ lw $v1,0x2d4($s0)
|
|
.L0f043104:
|
|
/* f043104: 14600050 */ bnez $v1,.L0f043248
|
|
/* f043108: 00000000 */ nop
|
|
/* f04310c: 8e020058 */ lw $v0,0x58($s0)
|
|
/* f043110: 24010001 */ addiu $at,$zero,0x1
|
|
/* f043114: 1040004c */ beqz $v0,.L0f043248
|
|
/* f043118: 00000000 */ nop
|
|
/* f04311c: 1441002e */ bne $v0,$at,.L0f0431d8
|
|
/* f043120: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f043124: 8e02002c */ lw $v0,0x2c($s0)
|
|
/* f043128: 44805000 */ mtc1 $zero,$f10
|
|
/* f04312c: c4400024 */ lwc1 $f0,0x24($v0)
|
|
/* f043130: 4600503e */ c.le.s $f10,$f0
|
|
/* f043134: 00000000 */ nop
|
|
/* f043138: 45020004 */ bc1fl .L0f04314c
|
|
/* f04313c: c442001c */ lwc1 $f2,0x1c($v0)
|
|
/* f043140: 10000002 */ b .L0f04314c
|
|
/* f043144: 46000086 */ mov.s $f2,$f0
|
|
/* f043148: c442001c */ lwc1 $f2,0x1c($v0)
|
|
.L0f04314c:
|
|
/* f04314c: 0c00744f */ jal modelGetAnimNum
|
|
/* f043150: e7a20034 */ swc1 $f2,0x34($sp)
|
|
/* f043154: 3c063f4c */ lui $a2,0x3f4c
|
|
/* f043158: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f04315c: a7a2002e */ sh $v0,0x2e($sp)
|
|
/* f043160: 02002025 */ or $a0,$s0,$zero
|
|
/* f043164: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f043168: 3c053f00 */ lui $a1,0x3f00
|
|
/* f04316c: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f043170: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
/* f043174: 3c014180 */ lui $at,0x4180
|
|
/* f043178: 8c8b0020 */ lw $t3,0x20($a0)
|
|
/* f04317c: 44818000 */ mtc1 $at,$f16
|
|
/* f043180: 44071000 */ mfc1 $a3,$f2
|
|
/* f043184: 81660008 */ lb $a2,0x8($t3)
|
|
/* f043188: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f04318c: 87a5002e */ lh $a1,0x2e($sp)
|
|
/* f043190: 0c007733 */ jal modelSetAnimation
|
|
/* f043194: e7b00014 */ swc1 $f16,0x14($sp)
|
|
/* f043198: 8e0c002c */ lw $t4,0x2c($s0)
|
|
/* f04319c: 44809000 */ mtc1 $zero,$f18
|
|
/* f0431a0: c5800014 */ lwc1 $f0,0x14($t4)
|
|
/* f0431a4: 4600903e */ c.le.s $f18,$f0
|
|
/* f0431a8: 00000000 */ nop
|
|
/* f0431ac: 45020005 */ bc1fl .L0f0431c4
|
|
/* f0431b0: 240d0002 */ addiu $t5,$zero,0x2
|
|
/* f0431b4: 44050000 */ mfc1 $a1,$f0
|
|
/* f0431b8: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f0431bc: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f0431c0: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f0431c4:
|
|
/* f0431c4: ae0d0058 */ sw $t5,0x58($s0)
|
|
/* f0431c8: 0fc0fe0a */ jal chrResetAimEndProperties
|
|
/* f0431cc: 02002025 */ or $a0,$s0,$zero
|
|
/* f0431d0: 1000007f */ b .L0f0433d0
|
|
/* f0431d4: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f0431d8:
|
|
/* f0431d8: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0431dc: 1441001a */ bne $v0,$at,.L0f043248
|
|
/* f0431e0: 00000000 */ nop
|
|
/* f0431e4: 0c007468 */ jal modelGetAnimEndFrame
|
|
/* f0431e8: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f0431ec: c7a40038 */ lwc1 $f4,0x38($sp)
|
|
/* f0431f0: 4604003e */ c.le.s $f0,$f4
|
|
/* f0431f4: 00000000 */ nop
|
|
/* f0431f8: 45020075 */ bc1fl .L0f0433d0
|
|
/* f0431fc: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f043200: 8e0e004c */ lw $t6,0x4c($s0)
|
|
/* f043204: 8e180054 */ lw $t8,0x54($s0)
|
|
/* f043208: 2401ffbf */ addiu $at,$zero,-65
|
|
/* f04320c: 01c17824 */ and $t7,$t6,$at
|
|
/* f043210: 13000007 */ beqz $t8,.L0f043230
|
|
/* f043214: ae0f004c */ sw $t7,0x4c($s0)
|
|
/* f043218: 02002025 */ or $a0,$s0,$zero
|
|
/* f04321c: 01e02825 */ or $a1,$t7,$zero
|
|
/* f043220: 0fc0c048 */ jal chrAttackStand
|
|
/* f043224: 8e060050 */ lw $a2,0x50($s0)
|
|
/* f043228: 10000069 */ b .L0f0433d0
|
|
/* f04322c: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f043230:
|
|
/* f043230: 02002025 */ or $a0,$s0,$zero
|
|
/* f043234: 8e05004c */ lw $a1,0x4c($s0)
|
|
/* f043238: 0fc0c0e8 */ jal chrAttackKneel
|
|
/* f04323c: 8e060050 */ lw $a2,0x50($s0)
|
|
/* f043240: 10000063 */ b .L0f0433d0
|
|
/* f043244: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f043248:
|
|
/* f043248: 54600020 */ bnezl $v1,.L0f0432cc
|
|
/* f04324c: 8e0d02d4 */ lw $t5,0x2d4($s0)
|
|
/* f043250: 8e02004c */ lw $v0,0x4c($s0)
|
|
/* f043254: 30590020 */ andi $t9,$v0,0x20
|
|
/* f043258: 1320001b */ beqz $t9,.L0f0432c8
|
|
/* f04325c: 30480040 */ andi $t0,$v0,0x40
|
|
/* f043260: 1100000c */ beqz $t0,.L0f043294
|
|
/* f043264: 02002025 */ or $a0,$s0,$zero
|
|
/* f043268: 3c017f1b */ lui $at,%hi(var7f1a91e0)
|
|
/* f04326c: c42691e0 */ lwc1 $f6,%lo(var7f1a91e0)($at)
|
|
/* f043270: 8e05002c */ lw $a1,0x2c($s0)
|
|
/* f043274: 82060039 */ lb $a2,0x39($s0)
|
|
/* f043278: 82070038 */ lb $a3,0x38($s0)
|
|
/* f04327c: 0fc0fa7d */ jal func0f03e9f4
|
|
/* f043280: e7a60010 */ swc1 $f6,0x10($sp)
|
|
/* f043284: 14400051 */ bnez $v0,.L0f0433cc
|
|
/* f043288: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f04328c: 1000004f */ b .L0f0433cc
|
|
/* f043290: ae090058 */ sw $t1,0x58($s0)
|
|
.L0f043294:
|
|
/* f043294: 0c007468 */ jal modelGetAnimEndFrame
|
|
/* f043298: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f04329c: c7a80038 */ lwc1 $f8,0x38($sp)
|
|
/* f0432a0: 4608003e */ c.le.s $f0,$f8
|
|
/* f0432a4: 00000000 */ nop
|
|
/* f0432a8: 45020008 */ bc1fl .L0f0432cc
|
|
/* f0432ac: 8e0d02d4 */ lw $t5,0x2d4($s0)
|
|
/* f0432b0: 8e0a004c */ lw $t2,0x4c($s0)
|
|
/* f0432b4: 240c0002 */ addiu $t4,$zero,0x2
|
|
/* f0432b8: a20c0030 */ sb $t4,0x30($s0)
|
|
/* f0432bc: 354b0040 */ ori $t3,$t2,0x40
|
|
/* f0432c0: 10000042 */ b .L0f0433cc
|
|
/* f0432c4: ae0b004c */ sw $t3,0x4c($s0)
|
|
.L0f0432c8:
|
|
/* f0432c8: 8e0d02d4 */ lw $t5,0x2d4($s0)
|
|
.L0f0432cc:
|
|
/* f0432cc: 15a0003d */ bnez $t5,.L0f0433c4
|
|
/* f0432d0: 00000000 */ nop
|
|
/* f0432d4: 820e0036 */ lb $t6,0x36($s0)
|
|
/* f0432d8: 15c0003a */ bnez $t6,.L0f0433c4
|
|
/* f0432dc: 00000000 */ nop
|
|
/* f0432e0: 8e0f002c */ lw $t7,0x2c($s0)
|
|
/* f0432e4: 44805000 */ mtc1 $zero,$f10
|
|
/* f0432e8: c7b00038 */ lwc1 $f16,0x38($sp)
|
|
/* f0432ec: c5e00024 */ lwc1 $f0,0x24($t7)
|
|
/* f0432f0: 4600503c */ c.lt.s $f10,$f0
|
|
/* f0432f4: 00000000 */ nop
|
|
/* f0432f8: 45000032 */ bc1f .L0f0433c4
|
|
/* f0432fc: 00000000 */ nop
|
|
/* f043300: 4600803e */ c.le.s $f16,$f0
|
|
/* f043304: 00000000 */ nop
|
|
/* f043308: 4500002e */ bc1f .L0f0433c4
|
|
/* f04330c: 00000000 */ nop
|
|
/* f043310: 0c007468 */ jal modelGetAnimEndFrame
|
|
/* f043314: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f043318: c7b20038 */ lwc1 $f18,0x38($sp)
|
|
/* f04331c: 4612003e */ c.le.s $f0,$f18
|
|
/* f043320: 00000000 */ nop
|
|
/* f043324: 45000027 */ bc1f .L0f0433c4
|
|
/* f043328: 00000000 */ nop
|
|
/* f04332c: 0c00744f */ jal modelGetAnimNum
|
|
/* f043330: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f043334: 3c063f4c */ lui $a2,0x3f4c
|
|
/* f043338: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f04333c: a7a2002e */ sh $v0,0x2e($sp)
|
|
/* f043340: 02002025 */ or $a0,$s0,$zero
|
|
/* f043344: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f043348: 3c053f00 */ lui $a1,0x3f00
|
|
/* f04334c: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f043350: 8e08002c */ lw $t0,0x2c($s0)
|
|
/* f043354: 3c014180 */ lui $at,0x4180
|
|
/* f043358: 8c990020 */ lw $t9,0x20($a0)
|
|
/* f04335c: 44812000 */ mtc1 $at,$f4
|
|
/* f043360: 8d070024 */ lw $a3,0x24($t0)
|
|
/* f043364: 83260008 */ lb $a2,0x8($t9)
|
|
/* f043368: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f04336c: 87a5002e */ lh $a1,0x2e($sp)
|
|
/* f043370: 0c007733 */ jal modelSetAnimation
|
|
/* f043374: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f043378: 82090037 */ lb $t1,0x37($s0)
|
|
/* f04337c: 5120000e */ beqzl $t1,.L0f0433b8
|
|
/* f043380: 8e0b002c */ lw $t3,0x2c($s0)
|
|
/* f043384: 8e0a002c */ lw $t2,0x2c($s0)
|
|
/* f043388: 44803000 */ mtc1 $zero,$f6
|
|
/* f04338c: c5400014 */ lwc1 $f0,0x14($t2)
|
|
/* f043390: 4600303e */ c.le.s $f6,$f0
|
|
/* f043394: 00000000 */ nop
|
|
/* f043398: 4500000a */ bc1f .L0f0433c4
|
|
/* f04339c: 00000000 */ nop
|
|
/* f0433a0: 44050000 */ mfc1 $a1,$f0
|
|
/* f0433a4: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f0433a8: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f0433ac: 10000005 */ b .L0f0433c4
|
|
/* f0433b0: 00000000 */ nop
|
|
/* f0433b4: 8e0b002c */ lw $t3,0x2c($s0)
|
|
.L0f0433b8:
|
|
/* f0433b8: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f0433bc: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f0433c0: 8d65001c */ lw $a1,0x1c($t3)
|
|
.L0f0433c4:
|
|
/* f0433c4: 0fc10792 */ jal func0f041e48
|
|
/* f0433c8: 02002025 */ or $a0,$s0,$zero
|
|
.L0f0433cc:
|
|
/* f0433cc: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f0433d0:
|
|
/* f0433d0: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f0433d4: 27bd0040 */ addiu $sp,$sp,0x40
|
|
/* f0433d8: 03e00008 */ jr $ra
|
|
/* f0433dc: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrTickAttackRoll
|
|
/* f0433e0: 27bdffb8 */ addiu $sp,$sp,-72
|
|
/* f0433e4: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f0433e8: afa40048 */ sw $a0,0x48($sp)
|
|
/* f0433ec: 8c8f0014 */ lw $t7,0x14($a0)
|
|
/* f0433f0: 000fc280 */ sll $t8,$t7,0xa
|
|
/* f0433f4: 0703000e */ bgezl $t8,.L0f043430
|
|
/* f0433f8: 8fa90048 */ lw $t1,0x48($sp)
|
|
/* f0433fc: 0c0076e5 */ jal modelIsAnimMerging
|
|
/* f043400: 8c840020 */ lw $a0,0x20($a0)
|
|
/* f043404: 5440014c */ bnezl $v0,.L0f043938
|
|
/* f043408: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f04340c: 0fc0c290 */ jal chrAttackRollChooseAnimation
|
|
/* f043410: 8fa40048 */ lw $a0,0x48($sp)
|
|
/* f043414: 8fa20048 */ lw $v0,0x48($sp)
|
|
/* f043418: 3c01ffdf */ lui $at,0xffdf
|
|
/* f04341c: 3421ffff */ ori $at,$at,0xffff
|
|
/* f043420: 8c590014 */ lw $t9,0x14($v0)
|
|
/* f043424: 03214024 */ and $t0,$t9,$at
|
|
/* f043428: ac480014 */ sw $t0,0x14($v0)
|
|
/* f04342c: 8fa90048 */ lw $t1,0x48($sp)
|
|
.L0f043430:
|
|
/* f043430: 812a0035 */ lb $t2,0x35($t1)
|
|
/* f043434: 1140013d */ beqz $t2,.L0f04392c
|
|
/* f043438: 00000000 */ nop
|
|
/* f04343c: 8d240020 */ lw $a0,0x20($t1)
|
|
/* f043440: 0c00745f */ jal modelGetCurAnimFrame
|
|
/* f043444: afa40044 */ sw $a0,0x44($sp)
|
|
/* f043448: 8fa70048 */ lw $a3,0x48($sp)
|
|
/* f04344c: 3c0b8006 */ lui $t3,%hi(var80067548)
|
|
/* f043450: 256b7548 */ addiu $t3,$t3,%lo(var80067548)
|
|
/* f043454: 8ce2002c */ lw $v0,0x2c($a3)
|
|
/* f043458: 3c0c8006 */ lui $t4,%hi(var80067590)
|
|
/* f04345c: 46000306 */ mov.s $f12,$f0
|
|
/* f043460: 11620009 */ beq $t3,$v0,.L0f043488
|
|
/* f043464: 258c7590 */ addiu $t4,$t4,%lo(var80067590)
|
|
/* f043468: 11820007 */ beq $t4,$v0,.L0f043488
|
|
/* f04346c: 3c0d8006 */ lui $t5,%hi(var800675d8)
|
|
/* f043470: 25ad75d8 */ addiu $t5,$t5,%lo(var800675d8)
|
|
/* f043474: 11a20004 */ beq $t5,$v0,.L0f043488
|
|
/* f043478: 3c0f8006 */ lui $t7,%hi(var80067620)
|
|
/* f04347c: 25ef7620 */ addiu $t7,$t7,%lo(var80067620)
|
|
/* f043480: 15e200c8 */ bne $t7,$v0,.L0f0437a4
|
|
/* f043484: 3c0c8006 */ lui $t4,%hi(var80067668)
|
|
.L0f043488:
|
|
/* f043488: c4440014 */ lwc1 $f4,0x14($v0)
|
|
/* f04348c: 8fb80044 */ lw $t8,0x44($sp)
|
|
/* f043490: 4600203e */ c.le.s $f4,$f0
|
|
/* f043494: 00000000 */ nop
|
|
/* f043498: 450000c0 */ bc1f .L0f04379c
|
|
/* f04349c: 00000000 */ nop
|
|
/* f0434a0: 8f0e0020 */ lw $t6,0x20($t8)
|
|
/* f0434a4: 3c014180 */ lui $at,0x4180
|
|
/* f0434a8: 44811000 */ mtc1 $at,$f2
|
|
/* f0434ac: 81d90008 */ lb $t9,0x8($t6)
|
|
/* f0434b0: 24430120 */ addiu $v1,$v0,0x120
|
|
/* f0434b4: afb90038 */ sw $t9,0x38($sp)
|
|
/* f0434b8: 80e80039 */ lb $t0,0x39($a3)
|
|
/* f0434bc: 11000010 */ beqz $t0,.L0f043500
|
|
/* f0434c0: 00000000 */ nop
|
|
/* f0434c4: 80ea0038 */ lb $t2,0x38($a3)
|
|
/* f0434c8: 1140000d */ beqz $t2,.L0f043500
|
|
/* f0434cc: 00000000 */ nop
|
|
/* f0434d0: afa3003c */ sw $v1,0x3c($sp)
|
|
/* f0434d4: 0c004b70 */ jal random
|
|
/* f0434d8: e7a20034 */ swc1 $f2,0x34($sp)
|
|
/* f0434dc: 30490001 */ andi $t1,$v0,0x1
|
|
/* f0434e0: 8fa3003c */ lw $v1,0x3c($sp)
|
|
/* f0434e4: 15200004 */ bnez $t1,.L0f0434f8
|
|
/* f0434e8: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
/* f0434ec: 24630120 */ addiu $v1,$v1,0x120
|
|
/* f0434f0: 10000003 */ b .L0f043500
|
|
/* f0434f4: 8fa70048 */ lw $a3,0x48($sp)
|
|
.L0f0434f8:
|
|
/* f0434f8: 24630240 */ addiu $v1,$v1,0x240
|
|
/* f0434fc: 8fa70048 */ lw $a3,0x48($sp)
|
|
.L0f043500:
|
|
/* f043500: 3c028006 */ lui $v0,%hi(var80067428)
|
|
/* f043504: 24427428 */ addiu $v0,$v0,%lo(var80067428)
|
|
/* f043508: 244b0240 */ addiu $t3,$v0,0x240
|
|
/* f04350c: 146b0005 */ bne $v1,$t3,.L0f043524
|
|
/* f043510: 00e02025 */ or $a0,$a3,$zero
|
|
/* f043514: 3c0141c0 */ lui $at,0x41c0
|
|
/* f043518: 44811000 */ mtc1 $at,$f2
|
|
/* f04351c: 10000043 */ b .L0f04362c
|
|
/* f043520: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f043524:
|
|
/* f043524: 244c0288 */ addiu $t4,$v0,0x288
|
|
/* f043528: 146c0005 */ bne $v1,$t4,.L0f043540
|
|
/* f04352c: 244d02d0 */ addiu $t5,$v0,0x2d0
|
|
/* f043530: 3c0141c0 */ lui $at,0x41c0
|
|
/* f043534: 44811000 */ mtc1 $at,$f2
|
|
/* f043538: 1000003c */ b .L0f04362c
|
|
/* f04353c: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f043540:
|
|
/* f043540: 146d0005 */ bne $v1,$t5,.L0f043558
|
|
/* f043544: 244f0318 */ addiu $t7,$v0,0x318
|
|
/* f043548: 3c014200 */ lui $at,0x4200
|
|
/* f04354c: 44811000 */ mtc1 $at,$f2
|
|
/* f043550: 10000036 */ b .L0f04362c
|
|
/* f043554: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f043558:
|
|
/* f043558: 146f0005 */ bne $v1,$t7,.L0f043570
|
|
/* f04355c: 24580360 */ addiu $t8,$v0,0x360
|
|
/* f043560: 3c014230 */ lui $at,0x4230
|
|
/* f043564: 44811000 */ mtc1 $at,$f2
|
|
/* f043568: 10000030 */ b .L0f04362c
|
|
/* f04356c: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f043570:
|
|
/* f043570: 14780005 */ bne $v1,$t8,.L0f043588
|
|
/* f043574: 244e03a8 */ addiu $t6,$v0,0x3a8
|
|
/* f043578: 3c0141c0 */ lui $at,0x41c0
|
|
/* f04357c: 44811000 */ mtc1 $at,$f2
|
|
/* f043580: 1000002a */ b .L0f04362c
|
|
/* f043584: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f043588:
|
|
/* f043588: 146e0005 */ bne $v1,$t6,.L0f0435a0
|
|
/* f04358c: 245903f0 */ addiu $t9,$v0,0x3f0
|
|
/* f043590: 3c014208 */ lui $at,0x4208
|
|
/* f043594: 44811000 */ mtc1 $at,$f2
|
|
/* f043598: 10000024 */ b .L0f04362c
|
|
/* f04359c: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f0435a0:
|
|
/* f0435a0: 14790005 */ bne $v1,$t9,.L0f0435b8
|
|
/* f0435a4: 24480438 */ addiu $t0,$v0,0x438
|
|
/* f0435a8: 3c014200 */ lui $at,0x4200
|
|
/* f0435ac: 44811000 */ mtc1 $at,$f2
|
|
/* f0435b0: 1000001e */ b .L0f04362c
|
|
/* f0435b4: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f0435b8:
|
|
/* f0435b8: 14680005 */ bne $v1,$t0,.L0f0435d0
|
|
/* f0435bc: 244a0480 */ addiu $t2,$v0,0x480
|
|
/* f0435c0: 3c014230 */ lui $at,0x4230
|
|
/* f0435c4: 44811000 */ mtc1 $at,$f2
|
|
/* f0435c8: 10000018 */ b .L0f04362c
|
|
/* f0435cc: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f0435d0:
|
|
/* f0435d0: 146a0005 */ bne $v1,$t2,.L0f0435e8
|
|
/* f0435d4: 244904c8 */ addiu $t1,$v0,0x4c8
|
|
/* f0435d8: 3c0141c0 */ lui $at,0x41c0
|
|
/* f0435dc: 44811000 */ mtc1 $at,$f2
|
|
/* f0435e0: 10000012 */ b .L0f04362c
|
|
/* f0435e4: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f0435e8:
|
|
/* f0435e8: 14690005 */ bne $v1,$t1,.L0f043600
|
|
/* f0435ec: 244b0510 */ addiu $t3,$v0,0x510
|
|
/* f0435f0: 3c014208 */ lui $at,0x4208
|
|
/* f0435f4: 44811000 */ mtc1 $at,$f2
|
|
/* f0435f8: 1000000c */ b .L0f04362c
|
|
/* f0435fc: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f043600:
|
|
/* f043600: 146b0005 */ bne $v1,$t3,.L0f043618
|
|
/* f043604: 244c0558 */ addiu $t4,$v0,0x558
|
|
/* f043608: 3c014200 */ lui $at,0x4200
|
|
/* f04360c: 44811000 */ mtc1 $at,$f2
|
|
/* f043610: 10000006 */ b .L0f04362c
|
|
/* f043614: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f043618:
|
|
/* f043618: 146c0003 */ bne $v1,$t4,.L0f043628
|
|
/* f04361c: 3c014230 */ lui $at,0x4230
|
|
/* f043620: 44811000 */ mtc1 $at,$f2
|
|
/* f043624: 00000000 */ nop
|
|
.L0f043628:
|
|
/* f043628: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f04362c:
|
|
/* f04362c: a0ed0030 */ sb $t5,0x30($a3)
|
|
/* f043630: ace3002c */ sw $v1,0x2c($a3)
|
|
/* f043634: a0e00008 */ sb $zero,0x8($a3)
|
|
/* f043638: 3c063f4c */ lui $a2,0x3f4c
|
|
/* f04363c: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f043640: e7a20034 */ swc1 $f2,0x34($sp)
|
|
/* f043644: afa3003c */ sw $v1,0x3c($sp)
|
|
/* f043648: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f04364c: 3c053f00 */ lui $a1,0x3f00
|
|
/* f043650: 8fa3003c */ lw $v1,0x3c($sp)
|
|
/* f043654: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
/* f043658: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f04365c: 84650000 */ lh $a1,0x0($v1)
|
|
/* f043660: 8c670010 */ lw $a3,0x10($v1)
|
|
/* f043664: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f043668: 8fa60038 */ lw $a2,0x38($sp)
|
|
/* f04366c: 0c007733 */ jal modelSetAnimation
|
|
/* f043670: e7a20014 */ swc1 $f2,0x14($sp)
|
|
/* f043674: 8faf0048 */ lw $t7,0x48($sp)
|
|
/* f043678: 8fa3003c */ lw $v1,0x3c($sp)
|
|
/* f04367c: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
/* f043680: 81f80036 */ lb $t8,0x36($t7)
|
|
/* f043684: 53000014 */ beqzl $t8,.L0f0436d8
|
|
/* f043688: c4600020 */ lwc1 $f0,0x20($v1)
|
|
/* f04368c: c4600024 */ lwc1 $f0,0x24($v1)
|
|
/* f043690: 44803000 */ mtc1 $zero,$f6
|
|
/* f043694: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f043698: 4600303e */ c.le.s $f6,$f0
|
|
/* f04369c: 00000000 */ nop
|
|
/* f0436a0: 45020008 */ bc1fl .L0f0436c4
|
|
/* f0436a4: 8c65001c */ lw $a1,0x1c($v1)
|
|
/* f0436a8: 44050000 */ mfc1 $a1,$f0
|
|
/* f0436ac: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0436b0: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f0436b4: e7a20034 */ swc1 $f2,0x34($sp)
|
|
/* f0436b8: 1000001d */ b .L0f043730
|
|
/* f0436bc: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
/* f0436c0: 8c65001c */ lw $a1,0x1c($v1)
|
|
.L0f0436c4:
|
|
/* f0436c4: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f0436c8: e7a20034 */ swc1 $f2,0x34($sp)
|
|
/* f0436cc: 10000018 */ b .L0f043730
|
|
/* f0436d0: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
/* f0436d4: c4600020 */ lwc1 $f0,0x20($v1)
|
|
.L0f0436d8:
|
|
/* f0436d8: 44804000 */ mtc1 $zero,$f8
|
|
/* f0436dc: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0436e0: 4600403e */ c.le.s $f8,$f0
|
|
/* f0436e4: 00000000 */ nop
|
|
/* f0436e8: 45020007 */ bc1fl .L0f043708
|
|
/* f0436ec: c4600014 */ lwc1 $f0,0x14($v1)
|
|
/* f0436f0: 44050000 */ mfc1 $a1,$f0
|
|
/* f0436f4: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f0436f8: e7a20034 */ swc1 $f2,0x34($sp)
|
|
/* f0436fc: 1000000c */ b .L0f043730
|
|
/* f043700: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
/* f043704: c4600014 */ lwc1 $f0,0x14($v1)
|
|
.L0f043708:
|
|
/* f043708: 44805000 */ mtc1 $zero,$f10
|
|
/* f04370c: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f043710: 4600503e */ c.le.s $f10,$f0
|
|
/* f043714: 00000000 */ nop
|
|
/* f043718: 45020006 */ bc1fl .L0f043734
|
|
/* f04371c: 8fae0048 */ lw $t6,0x48($sp)
|
|
/* f043720: 44050000 */ mfc1 $a1,$f0
|
|
/* f043724: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f043728: e7a20034 */ swc1 $f2,0x34($sp)
|
|
/* f04372c: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
.L0f043730:
|
|
/* f043730: 8fae0048 */ lw $t6,0x48($sp)
|
|
.L0f043734:
|
|
/* f043734: 44808000 */ mtc1 $zero,$f16
|
|
/* f043738: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f04373c: 8dd9002c */ lw $t9,0x2c($t6)
|
|
/* f043740: c732000c */ lwc1 $f18,0xc($t9)
|
|
/* f043744: 46128032 */ c.eq.s $f16,$f18
|
|
/* f043748: 00000000 */ nop
|
|
/* f04374c: 45010013 */ bc1t .L0f04379c
|
|
/* f043750: 00000000 */ nop
|
|
/* f043754: 8c880008 */ lw $t0,0x8($a0)
|
|
/* f043758: 8d050000 */ lw $a1,0x0($t0)
|
|
/* f04375c: 0c006a87 */ jal modelGetNodeData
|
|
/* f043760: e7a20034 */ swc1 $f2,0x34($sp)
|
|
/* f043764: c7a20034 */ lwc1 $f2,0x34($sp)
|
|
/* f043768: e442005c */ swc1 $f2,0x5c($v0)
|
|
/* f04376c: 8faa0048 */ lw $t2,0x48($sp)
|
|
/* f043770: 8d49002c */ lw $t1,0x2c($t2)
|
|
/* f043774: c524000c */ lwc1 $f4,0xc($t1)
|
|
/* f043778: 46002187 */ neg.s $f6,$f4
|
|
/* f04377c: 46023203 */ div.s $f8,$f6,$f2
|
|
/* f043780: e4480058 */ swc1 $f8,0x58($v0)
|
|
/* f043784: 8fab0038 */ lw $t3,0x38($sp)
|
|
/* f043788: 11600004 */ beqz $t3,.L0f04379c
|
|
/* f04378c: 00000000 */ nop
|
|
/* f043790: c44a0058 */ lwc1 $f10,0x58($v0)
|
|
/* f043794: 46005407 */ neg.s $f16,$f10
|
|
/* f043798: e4500058 */ swc1 $f16,0x58($v0)
|
|
.L0f04379c:
|
|
/* f04379c: 10000063 */ b .L0f04392c
|
|
/* f0437a0: 00000000 */ nop
|
|
.L0f0437a4:
|
|
/* f0437a4: 258c7668 */ addiu $t4,$t4,%lo(var80067668)
|
|
/* f0437a8: 11820022 */ beq $t4,$v0,.L0f043834
|
|
/* f0437ac: 3c0d8006 */ lui $t5,%hi(var800676b0)
|
|
/* f0437b0: 25ad76b0 */ addiu $t5,$t5,%lo(var800676b0)
|
|
/* f0437b4: 11a2001f */ beq $t5,$v0,.L0f043834
|
|
/* f0437b8: 3c0f8006 */ lui $t7,%hi(var800676f8)
|
|
/* f0437bc: 25ef76f8 */ addiu $t7,$t7,%lo(var800676f8)
|
|
/* f0437c0: 11e2001c */ beq $t7,$v0,.L0f043834
|
|
/* f0437c4: 3c188006 */ lui $t8,%hi(var80067740)
|
|
/* f0437c8: 27187740 */ addiu $t8,$t8,%lo(var80067740)
|
|
/* f0437cc: 13020019 */ beq $t8,$v0,.L0f043834
|
|
/* f0437d0: 3c0e8006 */ lui $t6,%hi(var80067788)
|
|
/* f0437d4: 25ce7788 */ addiu $t6,$t6,%lo(var80067788)
|
|
/* f0437d8: 11c20016 */ beq $t6,$v0,.L0f043834
|
|
/* f0437dc: 3c198006 */ lui $t9,%hi(var800677d0)
|
|
/* f0437e0: 273977d0 */ addiu $t9,$t9,%lo(var800677d0)
|
|
/* f0437e4: 13220013 */ beq $t9,$v0,.L0f043834
|
|
/* f0437e8: 3c088006 */ lui $t0,%hi(var80067818)
|
|
/* f0437ec: 25087818 */ addiu $t0,$t0,%lo(var80067818)
|
|
/* f0437f0: 11020010 */ beq $t0,$v0,.L0f043834
|
|
/* f0437f4: 3c0a8006 */ lui $t2,%hi(var80067860)
|
|
/* f0437f8: 254a7860 */ addiu $t2,$t2,%lo(var80067860)
|
|
/* f0437fc: 1142000d */ beq $t2,$v0,.L0f043834
|
|
/* f043800: 3c098006 */ lui $t1,%hi(var800678a8)
|
|
/* f043804: 252978a8 */ addiu $t1,$t1,%lo(var800678a8)
|
|
/* f043808: 1122000a */ beq $t1,$v0,.L0f043834
|
|
/* f04380c: 3c0b8006 */ lui $t3,%hi(var800678f0)
|
|
/* f043810: 256b78f0 */ addiu $t3,$t3,%lo(var800678f0)
|
|
/* f043814: 11620007 */ beq $t3,$v0,.L0f043834
|
|
/* f043818: 3c0c8006 */ lui $t4,%hi(var80067938)
|
|
/* f04381c: 258c7938 */ addiu $t4,$t4,%lo(var80067938)
|
|
/* f043820: 11820004 */ beq $t4,$v0,.L0f043834
|
|
/* f043824: 3c0d8006 */ lui $t5,%hi(var80067980)
|
|
/* f043828: 25ad7980 */ addiu $t5,$t5,%lo(var80067980)
|
|
/* f04382c: 15a2003f */ bne $t5,$v0,.L0f04392c
|
|
/* f043830: 00000000 */ nop
|
|
.L0f043834:
|
|
/* f043834: 80ef0036 */ lb $t7,0x36($a3)
|
|
/* f043838: 15e0003c */ bnez $t7,.L0f04392c
|
|
/* f04383c: 00000000 */ nop
|
|
/* f043840: c4420024 */ lwc1 $f2,0x24($v0)
|
|
/* f043844: 44809000 */ mtc1 $zero,$f18
|
|
/* f043848: 00000000 */ nop
|
|
/* f04384c: 4602903c */ c.lt.s $f18,$f2
|
|
/* f043850: 00000000 */ nop
|
|
/* f043854: 45000035 */ bc1f .L0f04392c
|
|
/* f043858: 00000000 */ nop
|
|
/* f04385c: 4602003e */ c.le.s $f0,$f2
|
|
/* f043860: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f043864: 45000031 */ bc1f .L0f04392c
|
|
/* f043868: 00000000 */ nop
|
|
/* f04386c: 0c007468 */ jal modelGetAnimEndFrame
|
|
/* f043870: e7ac0040 */ swc1 $f12,0x40($sp)
|
|
/* f043874: c7ac0040 */ lwc1 $f12,0x40($sp)
|
|
/* f043878: 460c003e */ c.le.s $f0,$f12
|
|
/* f04387c: 00000000 */ nop
|
|
/* f043880: 4500002a */ bc1f .L0f04392c
|
|
/* f043884: 00000000 */ nop
|
|
/* f043888: 0c00744f */ jal modelGetAnimNum
|
|
/* f04388c: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f043890: 3c063f4c */ lui $a2,0x3f4c
|
|
/* f043894: 34c6cccd */ ori $a2,$a2,0xcccd
|
|
/* f043898: a7a20026 */ sh $v0,0x26($sp)
|
|
/* f04389c: 8fa40048 */ lw $a0,0x48($sp)
|
|
/* f0438a0: 0fc0b857 */ jal chrGetRangedSpeed
|
|
/* f0438a4: 3c053f00 */ lui $a1,0x3f00
|
|
/* f0438a8: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0438ac: 8fb90048 */ lw $t9,0x48($sp)
|
|
/* f0438b0: 3c014180 */ lui $at,0x4180
|
|
/* f0438b4: 8c8e0020 */ lw $t6,0x20($a0)
|
|
/* f0438b8: 8f28002c */ lw $t0,0x2c($t9)
|
|
/* f0438bc: 44812000 */ mtc1 $at,$f4
|
|
/* f0438c0: 81c60008 */ lb $a2,0x8($t6)
|
|
/* f0438c4: 8d070024 */ lw $a3,0x24($t0)
|
|
/* f0438c8: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f0438cc: 87a50026 */ lh $a1,0x26($sp)
|
|
/* f0438d0: 0c007733 */ jal modelSetAnimation
|
|
/* f0438d4: e7a40014 */ swc1 $f4,0x14($sp)
|
|
/* f0438d8: 8faa0048 */ lw $t2,0x48($sp)
|
|
/* f0438dc: 8fac0048 */ lw $t4,0x48($sp)
|
|
/* f0438e0: 81490037 */ lb $t1,0x37($t2)
|
|
/* f0438e4: 5120000e */ beqzl $t1,.L0f043920
|
|
/* f0438e8: 8d8d002c */ lw $t5,0x2c($t4)
|
|
/* f0438ec: 8d4b002c */ lw $t3,0x2c($t2)
|
|
/* f0438f0: 44803000 */ mtc1 $zero,$f6
|
|
/* f0438f4: c5600014 */ lwc1 $f0,0x14($t3)
|
|
/* f0438f8: 4600303e */ c.le.s $f6,$f0
|
|
/* f0438fc: 00000000 */ nop
|
|
/* f043900: 4500000a */ bc1f .L0f04392c
|
|
/* f043904: 00000000 */ nop
|
|
/* f043908: 44050000 */ mfc1 $a1,$f0
|
|
/* f04390c: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f043910: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f043914: 10000005 */ b .L0f04392c
|
|
/* f043918: 00000000 */ nop
|
|
/* f04391c: 8d8d002c */ lw $t5,0x2c($t4)
|
|
.L0f043920:
|
|
/* f043920: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f043924: 0c007787 */ jal modelSetAnimEndFrame
|
|
/* f043928: 8da5001c */ lw $a1,0x1c($t5)
|
|
.L0f04392c:
|
|
/* f04392c: 0fc10792 */ jal func0f041e48
|
|
/* f043930: 8fa40048 */ lw $a0,0x48($sp)
|
|
/* f043934: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f043938:
|
|
/* f043938: 27bd0048 */ addiu $sp,$sp,0x48
|
|
/* f04393c: 03e00008 */ jr $ra
|
|
/* f043940: 00000000 */ nop
|
|
);
|
|
|
|
void propPrintDangerous(void)
|
|
{
|
|
u8 i;
|
|
|
|
osSyncPrintf("Current dangerous items:");
|
|
|
|
for (i = 0; i < MAX_DANGEROUSPROPS; i++) {
|
|
struct prop *prop = g_DangerousProps[i];
|
|
|
|
if (prop) {
|
|
if (prop->weapon
|
|
&& prop->weapon->weaponnum == WEAPON_GRENADE
|
|
&& prop->type == PROPTYPE_WEAPON) {
|
|
osSyncPrintf(" Grenade %x", prop);
|
|
} else if (prop->type == PROPTYPE_EXPLOSION) {
|
|
osSyncPrintf(" Explosion %x", prop);
|
|
} else {
|
|
osSyncPrintf("misc dangerous prop");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void propUnsetDangerous(struct prop *prop)
|
|
{
|
|
s32 i;
|
|
|
|
for (i = 0; i != MAX_DANGEROUSPROPS; i++) {
|
|
if (g_DangerousProps[i] == prop) {
|
|
g_DangerousProps[i] = NULL;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
void propSetDangerous(struct prop *prop)
|
|
{
|
|
s32 i;
|
|
|
|
for (i = 0; i != MAX_DANGEROUSPROPS; i++) {
|
|
if (g_DangerousProps[i] == NULL) {
|
|
g_DangerousProps[i] = prop;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
void chrTickThrowGrenade(struct chrdata *chr)
|
|
{
|
|
struct model *model;
|
|
f32 frame;
|
|
u32 hand;
|
|
struct prop *weaponprop;
|
|
struct defaultobj *obj;
|
|
struct weaponobj *weapon;
|
|
f32 frame2;
|
|
|
|
if (chr->hidden & CHRHFLAG_NEEDANIM) {
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
return;
|
|
}
|
|
|
|
chrThrowGrenadeChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
|
|
model = chr->model;
|
|
frame = modelGetCurAnimFrame(model);
|
|
hand = model->anim->flip ? 1 : 0;
|
|
weaponprop = chrGetEquippedWeaponProp(chr, hand);
|
|
|
|
if ((frame >= 20 && weaponprop && modelGetAnimNum(model) == ANIM_THROWGRENADE_STANDING) ||
|
|
(frame >= 1 && weaponprop && modelGetAnimNum(model) == ANIM_THROWGRENADE_NOPIN) ||
|
|
(frame >= 1 && weaponprop && modelGetAnimNum(model) == ANIM_THROWGRENADE_CROUCHING)) {
|
|
obj = weaponprop->obj;
|
|
obj->hidden &= ~OBJHFLAG_00000800;
|
|
}
|
|
|
|
if ((frame >= 119 && weaponprop && modelGetAnimNum(model) == ANIM_THROWGRENADE_STANDING) ||
|
|
(frame >= 57 && weaponprop && modelGetAnimNum(model) == ANIM_THROWGRENADE_NOPIN) ||
|
|
(frame >= 58 && weaponprop && modelGetAnimNum(model) == ANIM_THROWGRENADE_CROUCHING)) {
|
|
weapon = weaponprop->weapon;
|
|
propobjSetDropped(weaponprop, DROPREASON_3);
|
|
chr->hidden |= CHRHFLAG_00000001;
|
|
weapon->unk62 = 240;
|
|
}
|
|
|
|
frame2 = modelGetCurAnimFrame(model);
|
|
|
|
if (frame2 >= modelGetAnimEndFrame(model)) {
|
|
chrStop(chr);
|
|
} else {
|
|
if ((frame >= 87 && frame <= 110 && modelGetAnimNum(model) == ANIM_THROWGRENADE_STANDING) ||
|
|
(frame >= 5 && frame <= 45 && modelGetAnimNum(model) == ANIM_THROWGRENADE_NOPIN) ||
|
|
((frame >= 20 && frame <= 45 && modelGetAnimNum(model) == ANIM_THROWGRENADE_CROUCHING))) {
|
|
f32 value = chrGetRangedSpeed(chr, 1, 3.2);
|
|
func0f03e788(chr, 1, 110, value, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
bool chrDetectDangerousObject(struct chrdata *chr, u8 flags)
|
|
{
|
|
s32 i;
|
|
|
|
for (i = 0; i != MAX_DANGEROUSPROPS; i++) {
|
|
struct prop *prop = g_DangerousProps[i];
|
|
bool pass = false;
|
|
|
|
if (prop) {
|
|
if ((flags & 1) && prop->weapon &&
|
|
prop->weapon->weaponnum == WEAPON_GRENADE &&
|
|
prop->weapon->unk62 < 480) {
|
|
pass = true;
|
|
}
|
|
|
|
if ((flags & 2) && prop->type == PROPTYPE_EXPLOSION) {
|
|
pass = true;
|
|
}
|
|
|
|
if (pass && chrGetSquaredDistanceToCoord(chr, &prop->pos) < 1600) {
|
|
chr->runfrompos.x = g_DangerousProps[i]->pos.x;
|
|
chr->runfrompos.y = g_DangerousProps[i]->pos.y;
|
|
chr->runfrompos.z = g_DangerousProps[i]->pos.z;
|
|
|
|
if (chr->aibot) {
|
|
chr->aibot->unk064 |= 0x0004;
|
|
chr->aibot->dangerouspropnum = i;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (chr->aibot) {
|
|
chr->aibot->unk064 &= ~0x0004;
|
|
chr->aibot->dangerouspropnum = -1;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void chrTickBondDie(struct chrdata *chr)
|
|
{
|
|
// empty
|
|
}
|
|
|
|
const char var7f1a8ba0[] = "chraction.c";
|
|
const char var7f1a8bac[] = "chraction.c";
|
|
const char var7f1a8bb8[] = "chraction.c";
|
|
const char var7f1a8bc4[] = "chraction.c";
|
|
const char var7f1a8bd0[] = "chraction.c";
|
|
const char var7f1a8bdc[] = "chraction.c";
|
|
const char var7f1a8be8[] = "CHARS -> FRAMETIMESCALEI(240) = %d";
|
|
const char var7f1a8c0c[] = "CHARS -> numseenbond1 \t= %d/%d";
|
|
const char var7f1a8c30[] = "CHARS -> numseenbond2 \t= %d/%d";
|
|
const char var7f1a8c54[] = "CHARS -> numseenbond3 \t= %d/%d";
|
|
const char var7f1a8c78[] = "CHARS -> numseenbond \t= %d/%d";
|
|
const char var7f1a8c9c[] = "CHARS -> DEAD = %d/%d";
|
|
const char var7f1a8cb4[] = "chrdisttopad : %x -> %d : Dist=%f";
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f043f2c
|
|
.late_rodata
|
|
glabel var7f1a91e4
|
|
.word 0x40c907a9
|
|
glabel var7f1a91e8
|
|
.word 0x40c907a9
|
|
glabel var7f1a91ec
|
|
.word 0x3bab8ba8
|
|
glabel var7f1a91f0
|
|
.word 0x40c907a9
|
|
glabel var7f1a91f4
|
|
.word 0x39a4af08
|
|
glabel var7f1a91f8
|
|
.word 0x404907a9
|
|
glabel var7f1a91fc
|
|
.word 0x3e992a68
|
|
glabel var7f1a9200
|
|
.word 0x3c7510a7
|
|
glabel var7f1a9204
|
|
.word 0x3ec907a9
|
|
glabel var7f1a9208
|
|
.word 0x3ca0d2ee
|
|
glabel var7f1a920c
|
|
.word 0x3fa0d2ee
|
|
glabel var7f1a9210
|
|
.word 0x3dc907a9
|
|
glabel var7f1a9214
|
|
.word 0x3e4907a9
|
|
glabel var7f1a9218
|
|
.word 0x3c7510a7
|
|
glabel var7f1a921c
|
|
.word 0x3ec907a9
|
|
glabel var7f1a9220
|
|
.word 0x3c20d2ee
|
|
glabel var7f1a9224
|
|
.word 0x3fa0d2ee
|
|
glabel var7f1a9228
|
|
.word 0x3d4907a9
|
|
glabel var7f1a922c
|
|
.word 0x3e00a8be
|
|
glabel var7f1a9230
|
|
.word 0x3c20d2ee
|
|
glabel var7f1a9234
|
|
.word 0x3c23d70a
|
|
.text
|
|
/* f043f2c: 27bdffa8 */ addiu $sp,$sp,-88
|
|
/* f043f30: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f043f34: afa60060 */ sw $a2,0x60($sp)
|
|
/* f043f38: afa70064 */ sw $a3,0x64($sp)
|
|
/* f043f3c: 8c8e0020 */ lw $t6,0x20($a0)
|
|
/* f043f40: 8c82001c */ lw $v0,0x1c($a0)
|
|
/* f043f44: afae0050 */ sw $t6,0x50($sp)
|
|
/* f043f48: c4a40000 */ lwc1 $f4,0x0($a1)
|
|
/* f043f4c: c4a80008 */ lwc1 $f8,0x8($a1)
|
|
/* f043f50: c4460008 */ lwc1 $f6,0x8($v0)
|
|
/* f043f54: c44a0010 */ lwc1 $f10,0x10($v0)
|
|
/* f043f58: afa0002c */ sw $zero,0x2c($sp)
|
|
/* f043f5c: afa40058 */ sw $a0,0x58($sp)
|
|
/* f043f60: 46062301 */ sub.s $f12,$f4,$f6
|
|
/* f043f64: 0fc259d4 */ jal atan2f
|
|
/* f043f68: 460a4381 */ sub.s $f14,$f8,$f10
|
|
/* f043f6c: 8fa40058 */ lw $a0,0x58($sp)
|
|
/* f043f70: 0fc0f95e */ jal func0f03e578
|
|
/* f043f74: e7a00044 */ swc1 $f0,0x44($sp)
|
|
/* f043f78: c7ae0044 */ lwc1 $f14,0x44($sp)
|
|
/* f043f7c: 8fa20060 */ lw $v0,0x60($sp)
|
|
/* f043f80: e7a00040 */ swc1 $f0,0x40($sp)
|
|
/* f043f84: 4600703c */ c.lt.s $f14,$f0
|
|
/* f043f88: 3c017f1b */ lui $at,%hi(var7f1a91e4)
|
|
/* f043f8c: 46007301 */ sub.s $f12,$f14,$f0
|
|
/* f043f90: 8faf0058 */ lw $t7,0x58($sp)
|
|
/* f043f94: 304e0003 */ andi $t6,$v0,0x3
|
|
/* f043f98: 45000003 */ bc1f .L0f043fa8
|
|
/* f043f9c: 46006086 */ mov.s $f2,$f12
|
|
/* f043fa0: c43091e4 */ lwc1 $f16,%lo(var7f1a91e4)($at)
|
|
/* f043fa4: 46106080 */ add.s $f2,$f12,$f16
|
|
.L0f043fa8:
|
|
/* f043fa8: 8df802d4 */ lw $t8,0x2d4($t7)
|
|
/* f043fac: 3c017f1b */ lui $at,%hi(var7f1a91e8)
|
|
/* f043fb0: c43091e8 */ lwc1 $f16,%lo(var7f1a91e8)($at)
|
|
/* f043fb4: 1300002b */ beqz $t8,.L0f044064
|
|
/* f043fb8: 3c017f1b */ lui $at,%hi(var7f1a91ec)
|
|
/* f043fbc: 85f902d8 */ lh $t9,0x2d8($t7)
|
|
/* f043fc0: 3c08800a */ lui $t0,%hi(g_Vars+0x8)
|
|
/* f043fc4: 5b200021 */ blezl $t9,.L0f04404c
|
|
/* f043fc8: 44804000 */ mtc1 $zero,$f8
|
|
/* f043fcc: 8d089fc8 */ lw $t0,%lo(g_Vars+0x8)($t0)
|
|
/* f043fd0: 240104b0 */ addiu $at,$zero,0x4b0
|
|
/* f043fd4: e7ae0044 */ swc1 $f14,0x44($sp)
|
|
/* f043fd8: 0101001a */ div $zero,$t0,$at
|
|
/* f043fdc: 00004810 */ mfhi $t1
|
|
/* f043fe0: 44899000 */ mtc1 $t1,$f18
|
|
/* f043fe4: 3c017f1b */ lui $at,%hi(var7f1a91f0)
|
|
/* f043fe8: c42691ec */ lwc1 $f6,%lo(var7f1a91ec)($at)
|
|
/* f043fec: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f043ff0: 46062302 */ mul.s $f12,$f4,$f6
|
|
/* f043ff4: 0c0068f7 */ jal sinf
|
|
/* f043ff8: 00000000 */ nop
|
|
/* f043ffc: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f044000: 3c017f1b */ lui $at,%hi(var7f1a91f4)
|
|
/* f044004: c43091f0 */ lwc1 $f16,%lo(var7f1a91f0)($at)
|
|
/* f044008: 854b02d8 */ lh $t3,0x2d8($t2)
|
|
/* f04400c: 3c017f1b */ lui $at,%hi(var7f1a91f8)
|
|
/* f044010: c43291f4 */ lwc1 $f18,%lo(var7f1a91f4)($at)
|
|
/* f044014: 448b4000 */ mtc1 $t3,$f8
|
|
/* f044018: c7ae0044 */ lwc1 $f14,0x44($sp)
|
|
/* f04401c: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f044020: 46125102 */ mul.s $f4,$f10,$f18
|
|
/* f044024: 00000000 */ nop
|
|
/* f044028: 46002182 */ mul.s $f6,$f4,$f0
|
|
/* f04402c: 46067380 */ add.s $f14,$f14,$f6
|
|
/* f044030: 460e803e */ c.le.s $f16,$f14
|
|
/* f044034: 00000000 */ nop
|
|
/* f044038: 45000002 */ bc1f .L0f044044
|
|
/* f04403c: 00000000 */ nop
|
|
/* f044040: 46107381 */ sub.s $f14,$f14,$f16
|
|
.L0f044044:
|
|
/* f044044: 46107380 */ add.s $f14,$f14,$f16
|
|
/* f044048: 44804000 */ mtc1 $zero,$f8
|
|
.L0f04404c:
|
|
/* f04404c: 8fac0064 */ lw $t4,0x64($sp)
|
|
/* f044050: e7ae0040 */ swc1 $f14,0x40($sp)
|
|
/* f044054: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f044058: e5880000 */ swc1 $f8,0x0($t4)
|
|
/* f04405c: 10000062 */ b .L0f0441e8
|
|
/* f044060: afad002c */ sw $t5,0x2c($sp)
|
|
.L0f044064:
|
|
/* f044064: c42a91f8 */ lwc1 $f10,%lo(var7f1a91f8)($at)
|
|
/* f044068: 46001006 */ mov.s $f0,$f2
|
|
/* f04406c: 24010002 */ addiu $at,$zero,0x2
|
|
/* f044070: 4602503c */ c.lt.s $f10,$f2
|
|
/* f044074: 8fb80050 */ lw $t8,0x50($sp)
|
|
/* f044078: 45000002 */ bc1f .L0f044084
|
|
/* f04407c: 00000000 */ nop
|
|
/* f044080: 46028001 */ sub.s $f0,$f16,$f2
|
|
.L0f044084:
|
|
/* f044084: 15c10006 */ bne $t6,$at,.L0f0440a0
|
|
/* f044088: 01c01025 */ or $v0,$t6,$zero
|
|
/* f04408c: 3c017f1b */ lui $at,%hi(var7f1a91fc)
|
|
/* f044090: c42c91fc */ lwc1 $f12,%lo(var7f1a91fc)($at)
|
|
/* f044094: 3c017f1b */ lui $at,%hi(var7f1a9200)
|
|
/* f044098: 10000030 */ b .L0f04415c
|
|
/* f04409c: c4209200 */ lwc1 $f0,%lo(var7f1a9200)($at)
|
|
.L0f0440a0:
|
|
/* f0440a0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0440a4: 14410017 */ bne $v0,$at,.L0f044104
|
|
/* f0440a8: 3c017f1b */ lui $at,%hi(var7f1a9204)
|
|
/* f0440ac: c4329204 */ lwc1 $f18,%lo(var7f1a9204)($at)
|
|
/* f0440b0: 3c017f1b */ lui $at,%hi(var7f1a9208)
|
|
/* f0440b4: 4612003c */ c.lt.s $f0,$f18
|
|
/* f0440b8: 00000000 */ nop
|
|
/* f0440bc: 45000004 */ bc1f .L0f0440d0
|
|
/* f0440c0: 00000000 */ nop
|
|
/* f0440c4: 3c017f1b */ lui $at,%hi(var7f1a920c)
|
|
/* f0440c8: 1000000b */ b .L0f0440f8
|
|
/* f0440cc: c42c9208 */ lwc1 $f12,%lo(var7f1a9208)($at)
|
|
.L0f0440d0:
|
|
/* f0440d0: c424920c */ lwc1 $f4,%lo(var7f1a920c)($at)
|
|
/* f0440d4: 3c017f1b */ lui $at,%hi(var7f1a9210)
|
|
/* f0440d8: 4604003c */ c.lt.s $f0,$f4
|
|
/* f0440dc: 00000000 */ nop
|
|
/* f0440e0: 45000004 */ bc1f .L0f0440f4
|
|
/* f0440e4: 00000000 */ nop
|
|
/* f0440e8: 3c017f1b */ lui $at,%hi(var7f1a9214)
|
|
/* f0440ec: 10000002 */ b .L0f0440f8
|
|
/* f0440f0: c42c9210 */ lwc1 $f12,%lo(var7f1a9210)($at)
|
|
.L0f0440f4:
|
|
/* f0440f4: c42c9214 */ lwc1 $f12,%lo(var7f1a9214)($at)
|
|
.L0f0440f8:
|
|
/* f0440f8: 3c017f1b */ lui $at,%hi(var7f1a9218)
|
|
/* f0440fc: 10000017 */ b .L0f04415c
|
|
/* f044100: c4209218 */ lwc1 $f0,%lo(var7f1a9218)($at)
|
|
.L0f044104:
|
|
/* f044104: 3c017f1b */ lui $at,%hi(var7f1a921c)
|
|
/* f044108: c426921c */ lwc1 $f6,%lo(var7f1a921c)($at)
|
|
/* f04410c: 3c017f1b */ lui $at,%hi(var7f1a9220)
|
|
/* f044110: 4606003c */ c.lt.s $f0,$f6
|
|
/* f044114: 00000000 */ nop
|
|
/* f044118: 45000004 */ bc1f .L0f04412c
|
|
/* f04411c: 00000000 */ nop
|
|
/* f044120: 3c017f1b */ lui $at,%hi(var7f1a9224)
|
|
/* f044124: 1000000b */ b .L0f044154
|
|
/* f044128: c42c9220 */ lwc1 $f12,%lo(var7f1a9220)($at)
|
|
.L0f04412c:
|
|
/* f04412c: c4289224 */ lwc1 $f8,%lo(var7f1a9224)($at)
|
|
/* f044130: 3c017f1b */ lui $at,%hi(var7f1a9228)
|
|
/* f044134: 4608003c */ c.lt.s $f0,$f8
|
|
/* f044138: 00000000 */ nop
|
|
/* f04413c: 45000004 */ bc1f .L0f044150
|
|
/* f044140: 00000000 */ nop
|
|
/* f044144: 3c017f1b */ lui $at,%hi(var7f1a922c)
|
|
/* f044148: 10000002 */ b .L0f044154
|
|
/* f04414c: c42c9228 */ lwc1 $f12,%lo(var7f1a9228)($at)
|
|
.L0f044150:
|
|
/* f044150: c42c922c */ lwc1 $f12,%lo(var7f1a922c)($at)
|
|
.L0f044154:
|
|
/* f044154: 3c017f1b */ lui $at,%hi(var7f1a9230)
|
|
/* f044158: c4209230 */ lwc1 $f0,%lo(var7f1a9230)($at)
|
|
.L0f04415c:
|
|
/* f04415c: 8f0f0020 */ lw $t7,0x20($t8)
|
|
/* f044160: 44057000 */ mfc1 $a1,$f14
|
|
/* f044164: 27a40040 */ addiu $a0,$sp,0x40
|
|
/* f044168: c5e20074 */ lwc1 $f2,0x74($t7)
|
|
/* f04416c: e7ae0044 */ swc1 $f14,0x44($sp)
|
|
/* f044170: 8fa60064 */ lw $a2,0x64($sp)
|
|
/* f044174: 46026302 */ mul.s $f12,$f12,$f2
|
|
/* f044178: 00000000 */ nop
|
|
/* f04417c: 46020002 */ mul.s $f0,$f0,$f2
|
|
/* f044180: e7ac0014 */ swc1 $f12,0x14($sp)
|
|
/* f044184: 46000280 */ add.s $f10,$f0,$f0
|
|
/* f044188: 44070000 */ mfc1 $a3,$f0
|
|
/* f04418c: 0fc1b6c0 */ jal func0f06db00
|
|
/* f044190: e7aa0010 */ swc1 $f10,0x10($sp)
|
|
/* f044194: c7ae0044 */ lwc1 $f14,0x44($sp)
|
|
/* f044198: c7b20040 */ lwc1 $f18,0x40($sp)
|
|
/* f04419c: 3c017f1b */ lui $at,%hi(var7f1a9234)
|
|
/* f0441a0: c7a40040 */ lwc1 $f4,0x40($sp)
|
|
/* f0441a4: 4612703c */ c.lt.s $f14,$f18
|
|
/* f0441a8: 8fb90064 */ lw $t9,0x64($sp)
|
|
/* f0441ac: 45020004 */ bc1fl .L0f0441c0
|
|
/* f0441b0: 460e2001 */ sub.s $f0,$f4,$f14
|
|
/* f0441b4: 10000003 */ b .L0f0441c4
|
|
/* f0441b8: 460e9001 */ sub.s $f0,$f18,$f14
|
|
/* f0441bc: 460e2001 */ sub.s $f0,$f4,$f14
|
|
.L0f0441c0:
|
|
/* f0441c0: 46000007 */ neg.s $f0,$f0
|
|
.L0f0441c4:
|
|
/* f0441c4: c4269234 */ lwc1 $f6,%lo(var7f1a9234)($at)
|
|
/* f0441c8: 4606003c */ c.lt.s $f0,$f6
|
|
/* f0441cc: 00000000 */ nop
|
|
/* f0441d0: 45020006 */ bc1fl .L0f0441ec
|
|
/* f0441d4: 8fa40058 */ lw $a0,0x58($sp)
|
|
/* f0441d8: 44804000 */ mtc1 $zero,$f8
|
|
/* f0441dc: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f0441e0: e7280000 */ swc1 $f8,0x0($t9)
|
|
/* f0441e4: afa8002c */ sw $t0,0x2c($sp)
|
|
.L0f0441e8:
|
|
/* f0441e8: 8fa40058 */ lw $a0,0x58($sp)
|
|
.L0f0441ec:
|
|
/* f0441ec: 0fc0f96c */ jal func0f03e5b0
|
|
/* f0441f0: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f0441f4: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f0441f8: 8fa2002c */ lw $v0,0x2c($sp)
|
|
/* f0441fc: 27bd0058 */ addiu $sp,$sp,0x58
|
|
/* f044200: 03e00008 */ jr $ra
|
|
/* f044204: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrTickAttackWalk
|
|
/* f044208: 27bdffb0 */ addiu $sp,$sp,-80
|
|
/* f04420c: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f044210: afb20028 */ sw $s2,0x28($sp)
|
|
/* f044214: afb10024 */ sw $s1,0x24($sp)
|
|
/* f044218: afb00020 */ sw $s0,0x20($sp)
|
|
/* f04421c: 8c8e001c */ lw $t6,0x1c($a0)
|
|
/* f044220: 8c910020 */ lw $s1,0x20($a0)
|
|
/* f044224: 00808025 */ or $s0,$a0,$zero
|
|
/* f044228: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f04422c: afae0048 */ sw $t6,0x48($sp)
|
|
/* f044230: 8e0f0014 */ lw $t7,0x14($s0)
|
|
/* f044234: 00409025 */ or $s2,$v0,$zero
|
|
/* f044238: 000fc280 */ sll $t8,$t7,0xa
|
|
/* f04423c: 0701000c */ bgez $t8,.L0f044270
|
|
/* f044240: 00000000 */ nop
|
|
/* f044244: 0c0076e5 */ jal modelIsAnimMerging
|
|
/* f044248: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f04424c: 544000d8 */ bnezl $v0,.L0f0445b0
|
|
/* f044250: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f044254: 0fc0c161 */ jal chrAttackWalkChooseAnimation
|
|
/* f044258: 02002025 */ or $a0,$s0,$zero
|
|
/* f04425c: 8e190014 */ lw $t9,0x14($s0)
|
|
/* f044260: 3c01ffdf */ lui $at,0xffdf
|
|
/* f044264: 3421ffff */ ori $at,$at,0xffff
|
|
/* f044268: 03214024 */ and $t0,$t9,$at
|
|
/* f04426c: ae080014 */ sw $t0,0x14($s0)
|
|
.L0f044270:
|
|
/* f044270: 3c02800a */ lui $v0,%hi(g_Vars)
|
|
/* f044274: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars)
|
|
/* f044278: 8c4a0038 */ lw $t2,0x38($v0)
|
|
/* f04427c: 8e090030 */ lw $t1,0x30($s0)
|
|
/* f044280: 820d0009 */ lb $t5,0x9($s0)
|
|
/* f044284: 24010001 */ addiu $at,$zero,0x1
|
|
/* f044288: 012a5821 */ addu $t3,$t1,$t2
|
|
/* f04428c: ae0b0030 */ sw $t3,0x30($s0)
|
|
/* f044290: 8c4c0008 */ lw $t4,0x8($v0)
|
|
/* f044294: 11a1000c */ beq $t5,$at,.L0f0442c8
|
|
/* f044298: ae0c00d4 */ sw $t4,0xd4($s0)
|
|
/* f04429c: 8c4f0008 */ lw $t7,0x8($v0)
|
|
/* f0442a0: 8e0e00d8 */ lw $t6,0xd8($s0)
|
|
/* f0442a4: 25f8ffc4 */ addiu $t8,$t7,-60
|
|
/* f0442a8: 01d8082a */ slt $at,$t6,$t8
|
|
/* f0442ac: 14200006 */ bnez $at,.L0f0442c8
|
|
/* f0442b0: 00000000 */ nop
|
|
/* f0442b4: 8e190034 */ lw $t9,0x34($s0)
|
|
/* f0442b8: 8fa20048 */ lw $v0,0x48($sp)
|
|
/* f0442bc: 032b082a */ slt $at,$t9,$t3
|
|
/* f0442c0: 50200029 */ beqzl $at,.L0f044368
|
|
/* f0442c4: c64a0008 */ lwc1 $f10,0x8($s2)
|
|
.L0f0442c8:
|
|
/* f0442c8: 0c00745f */ jal modelGetCurAnimFrame
|
|
/* f0442cc: 02202025 */ or $a0,$s1,$zero
|
|
/* f0442d0: e7a00034 */ swc1 $f0,0x34($sp)
|
|
/* f0442d4: 0c007486 */ jal modelGetNumAnimFrames
|
|
/* f0442d8: 02202025 */ or $a0,$s1,$zero
|
|
/* f0442dc: 44822000 */ mtc1 $v0,$f4
|
|
/* f0442e0: 3c013f00 */ lui $at,0x3f00
|
|
/* f0442e4: 44814000 */ mtc1 $at,$f8
|
|
/* f0442e8: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0442ec: c7b00034 */ lwc1 $f16,0x34($sp)
|
|
/* f0442f0: 02202025 */ or $a0,$s1,$zero
|
|
/* f0442f4: 24050000 */ addiu $a1,$zero,0x0
|
|
/* f0442f8: 46083282 */ mul.s $f10,$f6,$f8
|
|
/* f0442fc: 4610503c */ c.lt.s $f10,$f16
|
|
/* f044300: 00000000 */ nop
|
|
/* f044304: 45000005 */ bc1f .L0f04431c
|
|
/* f044308: 00000000 */ nop
|
|
/* f04430c: 0c0077c1 */ jal modelSetAnimSpeedAuto
|
|
/* f044310: 3c064180 */ lui $a2,0x4180
|
|
/* f044314: 1000000d */ b .L0f04434c
|
|
/* f044318: 00000000 */ nop
|
|
.L0f04431c:
|
|
/* f04431c: 0c007486 */ jal modelGetNumAnimFrames
|
|
/* f044320: 02202025 */ or $a0,$s1,$zero
|
|
/* f044324: 44829000 */ mtc1 $v0,$f18
|
|
/* f044328: 3c013f00 */ lui $at,0x3f00
|
|
/* f04432c: 44813000 */ mtc1 $at,$f6
|
|
/* f044330: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f044334: 02202025 */ or $a0,$s1,$zero
|
|
/* f044338: 3c064180 */ lui $a2,0x4180
|
|
/* f04433c: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f044340: 44054000 */ mfc1 $a1,$f8
|
|
/* f044344: 0c0077c1 */ jal modelSetAnimSpeedAuto
|
|
/* f044348: 00000000 */ nop
|
|
.L0f04434c:
|
|
/* f04434c: 0fc0e56b */ jal chrRecordLastSeeTargetTime
|
|
/* f044350: 02002025 */ or $a0,$s0,$zero
|
|
/* f044354: 0fc0bb57 */ jal chrStop
|
|
/* f044358: 02002025 */ or $a0,$s0,$zero
|
|
/* f04435c: 10000094 */ b .L0f0445b0
|
|
/* f044360: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f044364: c64a0008 */ lwc1 $f10,0x8($s2)
|
|
.L0f044368:
|
|
/* f044368: c4500008 */ lwc1 $f16,0x8($v0)
|
|
/* f04436c: 3c014396 */ lui $at,0x4396
|
|
/* f044370: 44816000 */ mtc1 $at,$f12
|
|
/* f044374: 46105001 */ sub.s $f0,$f10,$f16
|
|
/* f044378: c6520010 */ lwc1 $f18,0x10($s2)
|
|
/* f04437c: c4440010 */ lwc1 $f4,0x10($v0)
|
|
/* f044380: 3c01c396 */ lui $at,0xc396
|
|
/* f044384: 460c003c */ c.lt.s $f0,$f12
|
|
/* f044388: 02002025 */ or $a0,$s0,$zero
|
|
/* f04438c: 26450008 */ addiu $a1,$s2,0x8
|
|
/* f044390: 00003025 */ or $a2,$zero,$zero
|
|
/* f044394: 45000015 */ bc1f .L0f0443ec
|
|
/* f044398: 46049081 */ sub.s $f2,$f18,$f4
|
|
/* f04439c: 44817000 */ mtc1 $at,$f14
|
|
/* f0443a0: 00000000 */ nop
|
|
/* f0443a4: 4600703c */ c.lt.s $f14,$f0
|
|
/* f0443a8: 00000000 */ nop
|
|
/* f0443ac: 4500000f */ bc1f .L0f0443ec
|
|
/* f0443b0: 00000000 */ nop
|
|
/* f0443b4: 460c103c */ c.lt.s $f2,$f12
|
|
/* f0443b8: 00000000 */ nop
|
|
/* f0443bc: 4500000b */ bc1f .L0f0443ec
|
|
/* f0443c0: 00000000 */ nop
|
|
/* f0443c4: 4602703c */ c.lt.s $f14,$f2
|
|
/* f0443c8: 00000000 */ nop
|
|
/* f0443cc: 45000007 */ bc1f .L0f0443ec
|
|
/* f0443d0: 00000000 */ nop
|
|
/* f0443d4: 0fc0e56b */ jal chrRecordLastSeeTargetTime
|
|
/* f0443d8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0443dc: 0fc0bb57 */ jal chrStop
|
|
/* f0443e0: 02002025 */ or $a0,$s0,$zero
|
|
/* f0443e4: 10000072 */ b .L0f0445b0
|
|
/* f0443e8: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f0443ec:
|
|
/* f0443ec: 0fc10fcb */ jal func0f043f2c
|
|
/* f0443f0: 26070054 */ addiu $a3,$s0,0x54
|
|
/* f0443f4: 10400002 */ beqz $v0,.L0f044400
|
|
/* f0443f8: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f0443fc: ae090038 */ sw $t1,0x38($s0)
|
|
.L0f044400:
|
|
/* f044400: 8e0a0030 */ lw $t2,0x30($s0)
|
|
/* f044404: 02002025 */ or $a0,$s0,$zero
|
|
/* f044408: 29410015 */ slti $at,$t2,0x15
|
|
/* f04440c: 14200009 */ bnez $at,.L0f044434
|
|
/* f044410: 3c013f80 */ lui $at,0x3f80
|
|
/* f044414: 44813000 */ mtc1 $at,$f6
|
|
/* f044418: 8e05003c */ lw $a1,0x3c($s0)
|
|
/* f04441c: 82060049 */ lb $a2,0x49($s0)
|
|
/* f044420: 82070048 */ lb $a3,0x48($s0)
|
|
/* f044424: 0fc0fa7d */ jal func0f03e9f4
|
|
/* f044428: e7a60010 */ swc1 $f6,0x10($sp)
|
|
/* f04442c: 10000004 */ b .L0f044440
|
|
/* f044430: 8e0b0038 */ lw $t3,0x38($s0)
|
|
.L0f044434:
|
|
/* f044434: 0fc0fe0a */ jal chrResetAimEndProperties
|
|
/* f044438: 02002025 */ or $a0,$s0,$zero
|
|
/* f04443c: 8e0b0038 */ lw $t3,0x38($s0)
|
|
.L0f044440:
|
|
/* f044440: 02002025 */ or $a0,$s0,$zero
|
|
/* f044444: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f044448: 11600052 */ beqz $t3,.L0f044594
|
|
/* f04444c: 00000000 */ nop
|
|
/* f044450: 8e0c0030 */ lw $t4,0x30($s0)
|
|
/* f044454: 00008825 */ or $s1,$zero,$zero
|
|
/* f044458: 02009025 */ or $s2,$s0,$zero
|
|
/* f04445c: 2981001f */ slti $at,$t4,0x1f
|
|
/* f044460: 1420004c */ bnez $at,.L0f044594
|
|
/* f044464: 00000000 */ nop
|
|
.L0f044468:
|
|
/* f044468: 824d0048 */ lb $t5,0x48($s2)
|
|
/* f04446c: 02002025 */ or $a0,$s0,$zero
|
|
/* f044470: 02202825 */ or $a1,$s1,$zero
|
|
/* f044474: 11a0003f */ beqz $t5,.L0f044574
|
|
/* f044478: 00000000 */ nop
|
|
/* f04447c: 824f004a */ lb $t7,0x4a($s2)
|
|
/* f044480: 02002025 */ or $a0,$s0,$zero
|
|
/* f044484: 02202825 */ or $a1,$s1,$zero
|
|
/* f044488: 55e00006 */ bnezl $t7,.L0f0444a4
|
|
/* f04448c: 8e020030 */ lw $v0,0x30($s0)
|
|
/* f044490: 0fc0fe62 */ jal func0f03f988
|
|
/* f044494: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f044498: 10000039 */ b .L0f044580
|
|
/* f04449c: 26310001 */ addiu $s1,$s1,0x1
|
|
/* f0444a0: 8e020030 */ lw $v0,0x30($s0)
|
|
.L0f0444a4:
|
|
/* f0444a4: 8e0e0040 */ lw $t6,0x40($s0)
|
|
/* f0444a8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0444ac: 02202825 */ or $a1,$s1,$zero
|
|
/* f0444b0: 01c2082a */ slt $at,$t6,$v0
|
|
/* f0444b4: 1020002b */ beqz $at,.L0f044564
|
|
/* f0444b8: 00000000 */ nop
|
|
/* f0444bc: 8e030044 */ lw $v1,0x44($s0)
|
|
/* f0444c0: 00114023 */ negu $t0,$s1
|
|
/* f0444c4: 02084821 */ addu $t1,$s0,$t0
|
|
/* f0444c8: 12230004 */ beq $s1,$v1,.L0f0444dc
|
|
/* f0444cc: 0203c021 */ addu $t8,$s0,$v1
|
|
/* f0444d0: 8319004a */ lb $t9,0x4a($t8)
|
|
/* f0444d4: 17200023 */ bnez $t9,.L0f044564
|
|
/* f0444d8: 00000000 */ nop
|
|
.L0f0444dc:
|
|
/* f0444dc: ae020040 */ sw $v0,0x40($s0)
|
|
/* f0444e0: 812a004b */ lb $t2,0x4b($t1)
|
|
/* f0444e4: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0444e8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0444ec: 5140000c */ beqzl $t2,.L0f044520
|
|
/* f0444f0: 8258004c */ lb $t8,0x4c($s2)
|
|
/* f0444f4: 824b004c */ lb $t3,0x4c($s2)
|
|
/* f0444f8: 244d005a */ addiu $t5,$v0,0x5a
|
|
/* f0444fc: 51600004 */ beqzl $t3,.L0f044510
|
|
/* f044500: 8e0f0040 */ lw $t7,0x40($s0)
|
|
/* f044504: 1000000f */ b .L0f044544
|
|
/* f044508: ae0d0040 */ sw $t5,0x40($s0)
|
|
/* f04450c: 8e0f0040 */ lw $t7,0x40($s0)
|
|
.L0f044510:
|
|
/* f044510: 25ee0014 */ addiu $t6,$t7,0x14
|
|
/* f044514: 1000000b */ b .L0f044544
|
|
/* f044518: ae0e0040 */ sw $t6,0x40($s0)
|
|
/* f04451c: 8258004c */ lb $t8,0x4c($s2)
|
|
.L0f044520:
|
|
/* f044520: 53000006 */ beqzl $t8,.L0f04453c
|
|
/* f044524: 8e090040 */ lw $t1,0x40($s0)
|
|
/* f044528: 8e190040 */ lw $t9,0x40($s0)
|
|
/* f04452c: 272800b4 */ addiu $t0,$t9,0xb4
|
|
/* f044530: 10000004 */ b .L0f044544
|
|
/* f044534: ae080040 */ sw $t0,0x40($s0)
|
|
/* f044538: 8e090040 */ lw $t1,0x40($s0)
|
|
.L0f04453c:
|
|
/* f04453c: 252a0028 */ addiu $t2,$t1,0x28
|
|
/* f044540: ae0a0040 */ sw $t2,0x40($s0)
|
|
.L0f044544:
|
|
/* f044544: 8e0b0044 */ lw $t3,0x44($s0)
|
|
/* f044548: 02202825 */ or $a1,$s1,$zero
|
|
/* f04454c: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f044550: 018b6823 */ subu $t5,$t4,$t3
|
|
/* f044554: 0fc0fe62 */ jal func0f03f988
|
|
/* f044558: ae0d0044 */ sw $t5,0x44($s0)
|
|
/* f04455c: 10000008 */ b .L0f044580
|
|
/* f044560: 26310001 */ addiu $s1,$s1,0x1
|
|
.L0f044564:
|
|
/* f044564: 0fc0fe62 */ jal func0f03f988
|
|
/* f044568: 00003025 */ or $a2,$zero,$zero
|
|
/* f04456c: 10000004 */ b .L0f044580
|
|
/* f044570: 26310001 */ addiu $s1,$s1,0x1
|
|
.L0f044574:
|
|
/* f044574: 0fc0fe62 */ jal func0f03f988
|
|
/* f044578: 00003025 */ or $a2,$zero,$zero
|
|
/* f04457c: 26310001 */ addiu $s1,$s1,0x1
|
|
.L0f044580:
|
|
/* f044580: 24010002 */ addiu $at,$zero,0x2
|
|
/* f044584: 1621ffb8 */ bne $s1,$at,.L0f044468
|
|
/* f044588: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f04458c: 10000008 */ b .L0f0445b0
|
|
/* f044590: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f044594:
|
|
/* f044594: 0fc0fe62 */ jal func0f03f988
|
|
/* f044598: 00003025 */ or $a2,$zero,$zero
|
|
/* f04459c: 02002025 */ or $a0,$s0,$zero
|
|
/* f0445a0: 00002825 */ or $a1,$zero,$zero
|
|
/* f0445a4: 0fc0fe62 */ jal func0f03f988
|
|
/* f0445a8: 00003025 */ or $a2,$zero,$zero
|
|
/* f0445ac: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f0445b0:
|
|
/* f0445b0: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f0445b4: 8fb10024 */ lw $s1,0x24($sp)
|
|
/* f0445b8: 8fb20028 */ lw $s2,0x28($sp)
|
|
/* f0445bc: 03e00008 */ jr $ra
|
|
/* f0445c0: 27bd0050 */ addiu $sp,$sp,0x50
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f0445c4
|
|
/* f0445c4: c4c40000 */ lwc1 $f4,0x0($a2)
|
|
/* f0445c8: c4860000 */ lwc1 $f6,0x0($a0)
|
|
/* f0445cc: 27bdfff0 */ addiu $sp,$sp,-16
|
|
/* f0445d0: 44808000 */ mtc1 $zero,$f16
|
|
/* f0445d4: 46062201 */ sub.s $f8,$f4,$f6
|
|
/* f0445d8: 44876000 */ mtc1 $a3,$f12
|
|
/* f0445dc: e7a80004 */ swc1 $f8,0x4($sp)
|
|
/* f0445e0: c4840008 */ lwc1 $f4,0x8($a0)
|
|
/* f0445e4: c4ca0008 */ lwc1 $f10,0x8($a2)
|
|
/* f0445e8: 46045181 */ sub.s $f6,$f10,$f4
|
|
/* f0445ec: e7a6000c */ swc1 $f6,0xc($sp)
|
|
/* f0445f0: c4a00000 */ lwc1 $f0,0x0($a1)
|
|
/* f0445f4: c7aa000c */ lwc1 $f10,0xc($sp)
|
|
/* f0445f8: 46008032 */ c.eq.s $f16,$f0
|
|
/* f0445fc: 00000000 */ nop
|
|
/* f044600: 45020015 */ bc1fl .L0f044658
|
|
/* f044604: c4a20008 */ lwc1 $f2,0x8($a1)
|
|
/* f044608: c4a80008 */ lwc1 $f8,0x8($a1)
|
|
/* f04460c: c7a2000c */ lwc1 $f2,0xc($sp)
|
|
/* f044610: 46088032 */ c.eq.s $f16,$f8
|
|
/* f044614: 00000000 */ nop
|
|
/* f044618: 4502000f */ bc1fl .L0f044658
|
|
/* f04461c: c4a20008 */ lwc1 $f2,0x8($a1)
|
|
/* f044620: 46021282 */ mul.s $f10,$f2,$f2
|
|
/* f044624: c7a00004 */ lwc1 $f0,0x4($sp)
|
|
/* f044628: 00001025 */ or $v0,$zero,$zero
|
|
/* f04462c: 46000102 */ mul.s $f4,$f0,$f0
|
|
/* f044630: 46045180 */ add.s $f6,$f10,$f4
|
|
/* f044634: 460c6202 */ mul.s $f8,$f12,$f12
|
|
/* f044638: 4608303e */ c.le.s $f6,$f8
|
|
/* f04463c: 00000000 */ nop
|
|
/* f044640: 45000025 */ bc1f .L0f0446d8
|
|
/* f044644: 00000000 */ nop
|
|
/* f044648: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f04464c: 10000022 */ b .L0f0446d8
|
|
/* f044650: 00000000 */ nop
|
|
/* f044654: c4a20008 */ lwc1 $f2,0x8($a1)
|
|
.L0f044658:
|
|
/* f044658: c7a80004 */ lwc1 $f8,0x4($sp)
|
|
/* f04465c: 00001025 */ or $v0,$zero,$zero
|
|
/* f044660: 46025102 */ mul.s $f4,$f10,$f2
|
|
/* f044664: 00000000 */ nop
|
|
/* f044668: 46080182 */ mul.s $f6,$f0,$f8
|
|
/* f04466c: 46062380 */ add.s $f14,$f4,$f6
|
|
/* f044670: 460e803c */ c.lt.s $f16,$f14
|
|
/* f044674: 00000000 */ nop
|
|
/* f044678: 45000017 */ bc1f .L0f0446d8
|
|
/* f04467c: 00000000 */ nop
|
|
/* f044680: 46021102 */ mul.s $f4,$f2,$f2
|
|
/* f044684: 00000000 */ nop
|
|
/* f044688: 46000182 */ mul.s $f6,$f0,$f0
|
|
/* f04468c: 46062400 */ add.s $f16,$f4,$f6
|
|
/* f044690: 460a5102 */ mul.s $f4,$f10,$f10
|
|
/* f044694: 00000000 */ nop
|
|
/* f044698: 46084182 */ mul.s $f6,$f8,$f8
|
|
/* f04469c: 00000000 */ nop
|
|
/* f0446a0: 460e7282 */ mul.s $f10,$f14,$f14
|
|
/* f0446a4: 00000000 */ nop
|
|
/* f0446a8: 460c6202 */ mul.s $f8,$f12,$f12
|
|
/* f0446ac: 46062480 */ add.s $f18,$f4,$f6
|
|
/* f0446b0: 46089101 */ sub.s $f4,$f18,$f8
|
|
/* f0446b4: 46102182 */ mul.s $f6,$f4,$f16
|
|
/* f0446b8: 460a303e */ c.le.s $f6,$f10
|
|
/* f0446bc: 00000000 */ nop
|
|
/* f0446c0: 45000003 */ bc1f .L0f0446d0
|
|
/* f0446c4: 00000000 */ nop
|
|
/* f0446c8: 10000003 */ b .L0f0446d8
|
|
/* f0446cc: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0446d0:
|
|
/* f0446d0: 10000001 */ b .L0f0446d8
|
|
/* f0446d4: 00001025 */ or $v0,$zero,$zero
|
|
.L0f0446d8:
|
|
/* f0446d8: 03e00008 */ jr $ra
|
|
/* f0446dc: 27bd0010 */ addiu $sp,$sp,0x10
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f0446e0
|
|
/* f0446e0: 27bdffc0 */ addiu $sp,$sp,-64
|
|
/* f0446e4: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f0446e8: afb00018 */ sw $s0,0x18($sp)
|
|
/* f0446ec: 44876000 */ mtc1 $a3,$f12
|
|
/* f0446f0: c4c00000 */ lwc1 $f0,0x0($a2)
|
|
/* f0446f4: c4900000 */ lwc1 $f16,0x0($a0)
|
|
/* f0446f8: 00a08025 */ or $s0,$a1,$zero
|
|
/* f0446fc: 460c0081 */ sub.s $f2,$f0,$f12
|
|
/* f044700: 4602803e */ c.le.s $f16,$f2
|
|
/* f044704: 00000000 */ nop
|
|
/* f044708: 45020009 */ bc1fl .L0f044730
|
|
/* f04470c: 460c0080 */ add.s $f2,$f0,$f12
|
|
/* f044710: c4a40000 */ lwc1 $f4,0x0($a1)
|
|
/* f044714: 4602203e */ c.le.s $f4,$f2
|
|
/* f044718: 00000000 */ nop
|
|
/* f04471c: 45020004 */ bc1fl .L0f044730
|
|
/* f044720: 460c0080 */ add.s $f2,$f0,$f12
|
|
/* f044724: 10000033 */ b .L0f0447f4
|
|
/* f044728: 00001025 */ or $v0,$zero,$zero
|
|
/* f04472c: 460c0080 */ add.s $f2,$f0,$f12
|
|
.L0f044730:
|
|
/* f044730: 4610103e */ c.le.s $f2,$f16
|
|
/* f044734: 00000000 */ nop
|
|
/* f044738: 45020009 */ bc1fl .L0f044760
|
|
/* f04473c: c4c00008 */ lwc1 $f0,0x8($a2)
|
|
/* f044740: c6060000 */ lwc1 $f6,0x0($s0)
|
|
/* f044744: 4606103e */ c.le.s $f2,$f6
|
|
/* f044748: 00000000 */ nop
|
|
/* f04474c: 45020004 */ bc1fl .L0f044760
|
|
/* f044750: c4c00008 */ lwc1 $f0,0x8($a2)
|
|
/* f044754: 10000027 */ b .L0f0447f4
|
|
/* f044758: 00001025 */ or $v0,$zero,$zero
|
|
/* f04475c: c4c00008 */ lwc1 $f0,0x8($a2)
|
|
.L0f044760:
|
|
/* f044760: c48e0008 */ lwc1 $f14,0x8($a0)
|
|
/* f044764: 460c0081 */ sub.s $f2,$f0,$f12
|
|
/* f044768: 4602703e */ c.le.s $f14,$f2
|
|
/* f04476c: 00000000 */ nop
|
|
/* f044770: 45020009 */ bc1fl .L0f044798
|
|
/* f044774: 460c0080 */ add.s $f2,$f0,$f12
|
|
/* f044778: c6080008 */ lwc1 $f8,0x8($s0)
|
|
/* f04477c: 4602403e */ c.le.s $f8,$f2
|
|
/* f044780: 00000000 */ nop
|
|
/* f044784: 45020004 */ bc1fl .L0f044798
|
|
/* f044788: 460c0080 */ add.s $f2,$f0,$f12
|
|
/* f04478c: 10000019 */ b .L0f0447f4
|
|
/* f044790: 00001025 */ or $v0,$zero,$zero
|
|
/* f044794: 460c0080 */ add.s $f2,$f0,$f12
|
|
.L0f044798:
|
|
/* f044798: 460e103e */ c.le.s $f2,$f14
|
|
/* f04479c: 00000000 */ nop
|
|
/* f0447a0: 45020009 */ bc1fl .L0f0447c8
|
|
/* f0447a4: c6120000 */ lwc1 $f18,0x0($s0)
|
|
/* f0447a8: c60a0008 */ lwc1 $f10,0x8($s0)
|
|
/* f0447ac: 460a103e */ c.le.s $f2,$f10
|
|
/* f0447b0: 00000000 */ nop
|
|
/* f0447b4: 45020004 */ bc1fl .L0f0447c8
|
|
/* f0447b8: c6120000 */ lwc1 $f18,0x0($s0)
|
|
/* f0447bc: 1000000d */ b .L0f0447f4
|
|
/* f0447c0: 00001025 */ or $v0,$zero,$zero
|
|
/* f0447c4: c6120000 */ lwc1 $f18,0x0($s0)
|
|
.L0f0447c8:
|
|
/* f0447c8: 44803000 */ mtc1 $zero,$f6
|
|
/* f0447cc: 44076000 */ mfc1 $a3,$f12
|
|
/* f0447d0: 46109101 */ sub.s $f4,$f18,$f16
|
|
/* f0447d4: e7a60038 */ swc1 $f6,0x38($sp)
|
|
/* f0447d8: 27a50034 */ addiu $a1,$sp,0x34
|
|
/* f0447dc: e7a40034 */ swc1 $f4,0x34($sp)
|
|
/* f0447e0: c48a0008 */ lwc1 $f10,0x8($a0)
|
|
/* f0447e4: c6080008 */ lwc1 $f8,0x8($s0)
|
|
/* f0447e8: 460a4481 */ sub.s $f18,$f8,$f10
|
|
/* f0447ec: 0fc11171 */ jal func0f0445c4
|
|
/* f0447f0: e7b2003c */ swc1 $f18,0x3c($sp)
|
|
.L0f0447f4:
|
|
/* f0447f4: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f0447f8: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f0447fc: 27bd0040 */ addiu $sp,$sp,0x40
|
|
/* f044800: 03e00008 */ jr $ra
|
|
/* f044804: 00000000 */ nop
|
|
);
|
|
|
|
bool func0f044808(struct coord *prevpos, struct coord *curpos, struct coord *targetpos, f32 arg3)
|
|
{
|
|
if (targetpos->y - 150 >= prevpos->y && targetpos->y - 150 >= curpos->y) {
|
|
return false;
|
|
}
|
|
|
|
if (targetpos->y + 150 <= prevpos->y && targetpos->y + 150 <= curpos->y) {
|
|
return false;
|
|
}
|
|
|
|
return func0f0446e0(prevpos, curpos, targetpos, arg3);
|
|
}
|
|
|
|
void chrTickRunPos(struct chrdata *chr)
|
|
{
|
|
struct prop *prop = chr->prop;
|
|
struct model *model = chr->model;
|
|
u32 race = CHRRACE(chr);
|
|
f32 fVar6;
|
|
f32 zero;
|
|
f32 fVar7;
|
|
|
|
if (chr->hidden & CHRHFLAG_NEEDANIM) {
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
return;
|
|
}
|
|
|
|
chrRunPosChooseAnimation(chr);
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
|
|
chr->lastwalk60 = g_Vars.lvframe60;
|
|
|
|
if (chr->invalidmove == 1
|
|
|| g_Vars.lvframe60 - 60 > chr->lastmoveok60
|
|
|| func0f0446e0(&chr->prevpos, &prop->pos, &chr->act_runpos.pos, chr->act_runpos.unk038)) {
|
|
if (race == RACE_HUMAN) {
|
|
modelGetAnimNum(model);
|
|
}
|
|
|
|
zero = 0;
|
|
fVar7 = modelGetCurAnimFrame(model);
|
|
fVar6 = fVar7 - zero;
|
|
|
|
if (fVar7 < 0) {
|
|
fVar6 += modelGetNumAnimFrames(model);
|
|
}
|
|
|
|
if (modelGetNumAnimFrames(model) * 0.5f < fVar6) {
|
|
zero = 0;
|
|
modelSetAnimSpeedAuto(model, modelGetNumAnimFrames(model) - zero, 16);
|
|
} else {
|
|
zero = 0;
|
|
fVar7 = modelGetNumAnimFrames(model) * 0.5f;
|
|
fVar6 = fVar7 - zero;
|
|
|
|
if (fVar7 < 0) {
|
|
fVar6 += modelGetNumAnimFrames(model);
|
|
}
|
|
|
|
modelSetAnimSpeedAuto(model, fVar6, 16);
|
|
}
|
|
|
|
chrStop(chr);
|
|
return;
|
|
}
|
|
|
|
func0f043f2c(chr, &chr->act_runpos.pos, 1, &chr->act_runpos.unk040);
|
|
|
|
if (chr->act_runpos.unk03c > 0) {
|
|
chr->act_runpos.unk03c -= g_Vars.lvupdate240_60;
|
|
} else {
|
|
fVar7 = 1;
|
|
|
|
if (race == RACE_HUMAN) {
|
|
if (modelGetAnimNum(model) == ANIM_RUNNING_ONEHANDGUN) {
|
|
fVar7 = func0f02dff0(ANIM_RUNNING_ONEHANDGUN);
|
|
} else {
|
|
fVar7 = func0f02dff0(ANIM_RUNNING_TWOHANDGUN);
|
|
}
|
|
} else if (race == RACE_SKEDAR) {
|
|
fVar7 = func0f02dff0(ANIM_SKEDAR_RUNNING);
|
|
}
|
|
|
|
chr->act_runpos.unk038 += fVar7 * g_Vars.lvupdate240freal * modelGetAbsAnimSpeed(model);
|
|
}
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f044b68
|
|
/* f044b68: c4a40000 */ lwc1 $f4,0x0($a1)
|
|
/* f044b6c: c4860000 */ lwc1 $f6,0x0($a0)
|
|
/* f044b70: 27bdffe8 */ addiu $sp,$sp,-24
|
|
/* f044b74: 44800000 */ mtc1 $zero,$f0
|
|
/* f044b78: 46062201 */ sub.s $f8,$f4,$f6
|
|
/* f044b7c: e7a8000c */ swc1 $f8,0xc($sp)
|
|
/* f044b80: c4900004 */ lwc1 $f16,0x4($a0)
|
|
/* f044b84: c4aa0004 */ lwc1 $f10,0x4($a1)
|
|
/* f044b88: 46105481 */ sub.s $f18,$f10,$f16
|
|
/* f044b8c: e7b20010 */ swc1 $f18,0x10($sp)
|
|
/* f044b90: c4860008 */ lwc1 $f6,0x8($a0)
|
|
/* f044b94: c4a40008 */ lwc1 $f4,0x8($a1)
|
|
/* f044b98: 46062201 */ sub.s $f8,$f4,$f6
|
|
/* f044b9c: e7a80014 */ swc1 $f8,0x14($sp)
|
|
/* f044ba0: c4ca0008 */ lwc1 $f10,0x8($a2)
|
|
/* f044ba4: e7a00004 */ swc1 $f0,0x4($sp)
|
|
/* f044ba8: c7a40014 */ lwc1 $f4,0x14($sp)
|
|
/* f044bac: 46005407 */ neg.s $f16,$f10
|
|
/* f044bb0: e7b00000 */ swc1 $f16,0x0($sp)
|
|
/* f044bb4: c4d20000 */ lwc1 $f18,0x0($a2)
|
|
/* f044bb8: c7aa0000 */ lwc1 $f10,0x0($sp)
|
|
/* f044bbc: c7b0000c */ lwc1 $f16,0xc($sp)
|
|
/* f044bc0: e7b20008 */ swc1 $f18,0x8($sp)
|
|
/* f044bc4: c7a60008 */ lwc1 $f6,0x8($sp)
|
|
/* f044bc8: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f044bcc: 00000000 */ nop
|
|
/* f044bd0: 46105482 */ mul.s $f18,$f10,$f16
|
|
/* f044bd4: 46124100 */ add.s $f4,$f8,$f18
|
|
/* f044bd8: 4604003c */ c.lt.s $f0,$f4
|
|
/* f044bdc: 00000000 */ nop
|
|
/* f044be0: 45010013 */ bc1t .L0f044c30
|
|
/* f044be4: 00000000 */ nop
|
|
/* f044be8: c4860000 */ lwc1 $f6,0x0($a0)
|
|
/* f044bec: e7a6000c */ swc1 $f6,0xc($sp)
|
|
/* f044bf0: c48a0004 */ lwc1 $f10,0x4($a0)
|
|
/* f044bf4: e7aa0010 */ swc1 $f10,0x10($sp)
|
|
/* f044bf8: c4900008 */ lwc1 $f16,0x8($a0)
|
|
/* f044bfc: e7b00014 */ swc1 $f16,0x14($sp)
|
|
/* f044c00: c4a80000 */ lwc1 $f8,0x0($a1)
|
|
/* f044c04: e4880000 */ swc1 $f8,0x0($a0)
|
|
/* f044c08: c4b20004 */ lwc1 $f18,0x4($a1)
|
|
/* f044c0c: e4920004 */ swc1 $f18,0x4($a0)
|
|
/* f044c10: c4a40008 */ lwc1 $f4,0x8($a1)
|
|
/* f044c14: e4840008 */ swc1 $f4,0x8($a0)
|
|
/* f044c18: c7a6000c */ lwc1 $f6,0xc($sp)
|
|
/* f044c1c: e4a60000 */ swc1 $f6,0x0($a1)
|
|
/* f044c20: c7aa0010 */ lwc1 $f10,0x10($sp)
|
|
/* f044c24: e4aa0004 */ swc1 $f10,0x4($a1)
|
|
/* f044c28: c7b00014 */ lwc1 $f16,0x14($sp)
|
|
/* f044c2c: e4b00008 */ swc1 $f16,0x8($a1)
|
|
.L0f044c30:
|
|
/* f044c30: 03e00008 */ jr $ra
|
|
/* f044c34: 27bd0018 */ addiu $sp,$sp,0x18
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f044c38
|
|
.late_rodata
|
|
glabel var7f1a9238
|
|
.word 0x3f733333
|
|
glabel var7f1a923c
|
|
.word 0x3f733333
|
|
glabel var7f1a9240
|
|
.word 0x3f99999a
|
|
glabel var7f1a9244
|
|
.word 0x3f99999a
|
|
.text
|
|
/* f044c38: 27bdff20 */ addiu $sp,$sp,-224
|
|
/* f044c3c: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f044c40: afb00028 */ sw $s0,0x28($sp)
|
|
/* f044c44: afa400e0 */ sw $a0,0xe0($sp)
|
|
/* f044c48: afa600e8 */ sw $a2,0xe8($sp)
|
|
/* f044c4c: afa700ec */ sw $a3,0xec($sp)
|
|
/* f044c50: afa000bc */ sw $zero,0xbc($sp)
|
|
/* f044c54: afa000b8 */ sw $zero,0xb8($sp)
|
|
/* f044c58: afa00084 */ sw $zero,0x84($sp)
|
|
/* f044c5c: 8c84001c */ lw $a0,0x1c($a0)
|
|
/* f044c60: 00a08025 */ or $s0,$a1,$zero
|
|
/* f044c64: 27a50078 */ addiu $a1,$sp,0x78
|
|
/* f044c68: 27a7007c */ addiu $a3,$sp,0x7c
|
|
/* f044c6c: 27a60080 */ addiu $a2,$sp,0x80
|
|
/* f044c70: 0fc0a277 */ jal propChrGetBbox
|
|
/* f044c74: afa4003c */ sw $a0,0x3c($sp)
|
|
/* f044c78: 8fa200ec */ lw $v0,0xec($sp)
|
|
/* f044c7c: c6060000 */ lwc1 $f6,0x0($s0)
|
|
/* f044c80: 44800000 */ mtc1 $zero,$f0
|
|
/* f044c84: c4440000 */ lwc1 $f4,0x0($v0)
|
|
/* f044c88: e7a000d8 */ swc1 $f0,0xd8($sp)
|
|
/* f044c8c: 46062201 */ sub.s $f8,$f4,$f6
|
|
/* f044c90: e7a800d4 */ swc1 $f8,0xd4($sp)
|
|
/* f044c94: c7a800d4 */ lwc1 $f8,0xd4($sp)
|
|
/* f044c98: c6040008 */ lwc1 $f4,0x8($s0)
|
|
/* f044c9c: c44a0008 */ lwc1 $f10,0x8($v0)
|
|
/* f044ca0: 46080032 */ c.eq.s $f0,$f8
|
|
/* f044ca4: 46045181 */ sub.s $f6,$f10,$f4
|
|
/* f044ca8: 45000008 */ bc1f .L0f044ccc
|
|
/* f044cac: e7a600dc */ swc1 $f6,0xdc($sp)
|
|
/* f044cb0: c7b200dc */ lwc1 $f18,0xdc($sp)
|
|
/* f044cb4: 46120032 */ c.eq.s $f0,$f18
|
|
/* f044cb8: 00000000 */ nop
|
|
/* f044cbc: 45020004 */ bc1fl .L0f044cd0
|
|
/* f044cc0: c7b200dc */ lwc1 $f18,0xdc($sp)
|
|
/* f044cc4: 10000133 */ b .L0f045194
|
|
/* f044cc8: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f044ccc:
|
|
/* f044ccc: c7b200dc */ lwc1 $f18,0xdc($sp)
|
|
.L0f044cd0:
|
|
/* f044cd0: c7b000d4 */ lwc1 $f16,0xd4($sp)
|
|
/* f044cd4: 46129282 */ mul.s $f10,$f18,$f18
|
|
/* f044cd8: 00000000 */ nop
|
|
/* f044cdc: 46108102 */ mul.s $f4,$f16,$f16
|
|
/* f044ce0: 0c012974 */ jal sqrtf
|
|
/* f044ce4: 46045300 */ add.s $f12,$f10,$f4
|
|
/* f044ce8: 3c013f80 */ lui $at,0x3f80
|
|
/* f044cec: 44813000 */ mtc1 $at,$f6
|
|
/* f044cf0: c7b000d4 */ lwc1 $f16,0xd4($sp)
|
|
/* f044cf4: c7b200dc */ lwc1 $f18,0xdc($sp)
|
|
/* f044cf8: 46003083 */ div.s $f2,$f6,$f0
|
|
/* f044cfc: c7a800fc */ lwc1 $f8,0xfc($sp)
|
|
/* f044d00: 3c017f1b */ lui $at,%hi(var7f1a9238)
|
|
/* f044d04: c42a9238 */ lwc1 $f10,%lo(var7f1a9238)($at)
|
|
/* f044d08: 3c017f1b */ lui $at,%hi(var7f1a923c)
|
|
/* f044d0c: c426923c */ lwc1 $f6,%lo(var7f1a923c)($at)
|
|
/* f044d10: 3c017f1b */ lui $at,%hi(var7f1a9240)
|
|
/* f044d14: 8fa400e0 */ lw $a0,0xe0($sp)
|
|
/* f044d18: 00002825 */ or $a1,$zero,$zero
|
|
/* f044d1c: 46028402 */ mul.s $f16,$f16,$f2
|
|
/* f044d20: 00000000 */ nop
|
|
/* f044d24: 46029482 */ mul.s $f18,$f18,$f2
|
|
/* f044d28: 00000000 */ nop
|
|
/* f044d2c: 46088302 */ mul.s $f12,$f16,$f8
|
|
/* f044d30: e7b000d4 */ swc1 $f16,0xd4($sp)
|
|
/* f044d34: e7b200dc */ swc1 $f18,0xdc($sp)
|
|
/* f044d38: 460a6102 */ mul.s $f4,$f12,$f10
|
|
/* f044d3c: 00000000 */ nop
|
|
/* f044d40: 46089382 */ mul.s $f14,$f18,$f8
|
|
/* f044d44: e7a400d0 */ swc1 $f4,0xd0($sp)
|
|
/* f044d48: c4249240 */ lwc1 $f4,%lo(var7f1a9240)($at)
|
|
/* f044d4c: 3c017f1b */ lui $at,%hi(var7f1a9244)
|
|
/* f044d50: 46067282 */ mul.s $f10,$f14,$f6
|
|
/* f044d54: c4269244 */ lwc1 $f6,%lo(var7f1a9244)($at)
|
|
/* f044d58: 46046202 */ mul.s $f8,$f12,$f4
|
|
/* f044d5c: e7aa00cc */ swc1 $f10,0xcc($sp)
|
|
/* f044d60: 46067282 */ mul.s $f10,$f14,$f6
|
|
/* f044d64: e7a800c8 */ swc1 $f8,0xc8($sp)
|
|
/* f044d68: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f044d6c: e7aa00c4 */ swc1 $f10,0xc4($sp)
|
|
/* f044d70: c6040000 */ lwc1 $f4,0x0($s0)
|
|
/* f044d74: c7a800cc */ lwc1 $f8,0xcc($sp)
|
|
/* f044d78: 8fa200ec */ lw $v0,0xec($sp)
|
|
/* f044d7c: c7a200f8 */ lwc1 $f2,0xf8($sp)
|
|
/* f044d80: 46082180 */ add.s $f6,$f4,$f8
|
|
/* f044d84: c7a800d0 */ lwc1 $f8,0xd0($sp)
|
|
/* f044d88: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f044d8c: 8fb9003c */ lw $t9,0x3c($sp)
|
|
/* f044d90: e7a6006c */ swc1 $f6,0x6c($sp)
|
|
/* f044d94: c60a0004 */ lwc1 $f10,0x4($s0)
|
|
/* f044d98: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f044d9c: 02002025 */ or $a0,$s0,$zero
|
|
/* f044da0: e7aa0070 */ swc1 $f10,0x70($sp)
|
|
/* f044da4: c6040008 */ lwc1 $f4,0x8($s0)
|
|
/* f044da8: 8fa500e8 */ lw $a1,0xe8($sp)
|
|
/* f044dac: 27a6006c */ addiu $a2,$sp,0x6c
|
|
/* f044db0: 46082181 */ sub.s $f6,$f4,$f8
|
|
/* f044db4: c7a400c4 */ lwc1 $f4,0xc4($sp)
|
|
/* f044db8: 27a70050 */ addiu $a3,$sp,0x50
|
|
/* f044dbc: e7a60074 */ swc1 $f6,0x74($sp)
|
|
/* f044dc0: c44a0000 */ lwc1 $f10,0x0($v0)
|
|
/* f044dc4: c7a600d4 */ lwc1 $f6,0xd4($sp)
|
|
/* f044dc8: 46045200 */ add.s $f8,$f10,$f4
|
|
/* f044dcc: 46023282 */ mul.s $f10,$f6,$f2
|
|
/* f044dd0: 46085100 */ add.s $f4,$f10,$f8
|
|
/* f044dd4: c7a800c8 */ lwc1 $f8,0xc8($sp)
|
|
/* f044dd8: e7a40060 */ swc1 $f4,0x60($sp)
|
|
/* f044ddc: c4460004 */ lwc1 $f6,0x4($v0)
|
|
/* f044de0: e7a60064 */ swc1 $f6,0x64($sp)
|
|
/* f044de4: c44a0008 */ lwc1 $f10,0x8($v0)
|
|
/* f044de8: c7a600dc */ lwc1 $f6,0xdc($sp)
|
|
/* f044dec: afb80014 */ sw $t8,0x14($sp)
|
|
/* f044df0: 46085101 */ sub.s $f4,$f10,$f8
|
|
/* f044df4: 46023282 */ mul.s $f10,$f6,$f2
|
|
/* f044df8: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f044dfc: c7a60080 */ lwc1 $f6,0x80($sp)
|
|
/* f044e00: 46045200 */ add.s $f8,$f10,$f4
|
|
/* f044e04: c7a4007c */ lwc1 $f4,0x7c($sp)
|
|
/* f044e08: e7a80068 */ swc1 $f8,0x68($sp)
|
|
/* f044e0c: c720000c */ lwc1 $f0,0xc($t9)
|
|
/* f044e10: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f044e14: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f044e18: e7aa0018 */ swc1 $f10,0x18($sp)
|
|
/* f044e1c: 0c00b694 */ jal func0002da50
|
|
/* f044e20: e7a8001c */ swc1 $f8,0x1c($sp)
|
|
/* f044e24: 10400010 */ beqz $v0,.L0f044e68
|
|
/* f044e28: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f044e2c: 8fa9003c */ lw $t1,0x3c($sp)
|
|
/* f044e30: afa80010 */ sw $t0,0x10($sp)
|
|
/* f044e34: c7a60080 */ lwc1 $f6,0x80($sp)
|
|
/* f044e38: c520000c */ lwc1 $f0,0xc($t1)
|
|
/* f044e3c: c7a4007c */ lwc1 $f4,0x7c($sp)
|
|
/* f044e40: 27a4006c */ addiu $a0,$sp,0x6c
|
|
/* f044e44: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f044e48: 27a50050 */ addiu $a1,$sp,0x50
|
|
/* f044e4c: 27a60060 */ addiu $a2,$sp,0x60
|
|
/* f044e50: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f044e54: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f044e58: 8fa70100 */ lw $a3,0x100($sp)
|
|
/* f044e5c: 0c00b5f0 */ jal func0002d7c0
|
|
/* f044e60: e7a80018 */ swc1 $f8,0x18($sp)
|
|
/* f044e64: 1440000c */ bnez $v0,.L0f044e98
|
|
.L0f044e68:
|
|
/* f044e68: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f044e6c: 3c077f1b */ lui $a3,%hi(var7f1a8ba0)
|
|
/* f044e70: afaa00bc */ sw $t2,0xbc($sp)
|
|
/* f044e74: 24e78ba0 */ addiu $a3,$a3,%lo(var7f1a8ba0)
|
|
/* f044e78: 27a400ac */ addiu $a0,$sp,0xac
|
|
/* f044e7c: 27a500a0 */ addiu $a1,$sp,0xa0
|
|
/* f044e80: 0c009393 */ jal func00024e4c
|
|
/* f044e84: 24063741 */ addiu $a2,$zero,0x3741
|
|
/* f044e88: 27a400ac */ addiu $a0,$sp,0xac
|
|
/* f044e8c: 27a500a0 */ addiu $a1,$sp,0xa0
|
|
/* f044e90: 0fc112da */ jal func0f044b68
|
|
/* f044e94: 27a600d4 */ addiu $a2,$sp,0xd4
|
|
.L0f044e98:
|
|
/* f044e98: c6060000 */ lwc1 $f6,0x0($s0)
|
|
/* f044e9c: c7aa00cc */ lwc1 $f10,0xcc($sp)
|
|
/* f044ea0: 8fa200ec */ lw $v0,0xec($sp)
|
|
/* f044ea4: c7a200f8 */ lwc1 $f2,0xf8($sp)
|
|
/* f044ea8: 460a3101 */ sub.s $f4,$f6,$f10
|
|
/* f044eac: c7aa00d0 */ lwc1 $f10,0xd0($sp)
|
|
/* f044eb0: 8fab0100 */ lw $t3,0x100($sp)
|
|
/* f044eb4: 8fad003c */ lw $t5,0x3c($sp)
|
|
/* f044eb8: e7a4006c */ swc1 $f4,0x6c($sp)
|
|
/* f044ebc: c6080004 */ lwc1 $f8,0x4($s0)
|
|
/* f044ec0: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f044ec4: 02002025 */ or $a0,$s0,$zero
|
|
/* f044ec8: e7a80070 */ swc1 $f8,0x70($sp)
|
|
/* f044ecc: c6060008 */ lwc1 $f6,0x8($s0)
|
|
/* f044ed0: 8fa500e8 */ lw $a1,0xe8($sp)
|
|
/* f044ed4: 27a6006c */ addiu $a2,$sp,0x6c
|
|
/* f044ed8: 460a3100 */ add.s $f4,$f6,$f10
|
|
/* f044edc: c7a600c4 */ lwc1 $f6,0xc4($sp)
|
|
/* f044ee0: 27a70050 */ addiu $a3,$sp,0x50
|
|
/* f044ee4: e7a40074 */ swc1 $f4,0x74($sp)
|
|
/* f044ee8: c4480000 */ lwc1 $f8,0x0($v0)
|
|
/* f044eec: c7a400d4 */ lwc1 $f4,0xd4($sp)
|
|
/* f044ef0: 46064281 */ sub.s $f10,$f8,$f6
|
|
/* f044ef4: 46022202 */ mul.s $f8,$f4,$f2
|
|
/* f044ef8: 460a4180 */ add.s $f6,$f8,$f10
|
|
/* f044efc: c7aa00c8 */ lwc1 $f10,0xc8($sp)
|
|
/* f044f00: e7a60060 */ swc1 $f6,0x60($sp)
|
|
/* f044f04: c4440004 */ lwc1 $f4,0x4($v0)
|
|
/* f044f08: e7a40064 */ swc1 $f4,0x64($sp)
|
|
/* f044f0c: c4480008 */ lwc1 $f8,0x8($v0)
|
|
/* f044f10: c7a400dc */ lwc1 $f4,0xdc($sp)
|
|
/* f044f14: afac0014 */ sw $t4,0x14($sp)
|
|
/* f044f18: 460a4180 */ add.s $f6,$f8,$f10
|
|
/* f044f1c: 46022202 */ mul.s $f8,$f4,$f2
|
|
/* f044f20: afab0010 */ sw $t3,0x10($sp)
|
|
/* f044f24: c7a40080 */ lwc1 $f4,0x80($sp)
|
|
/* f044f28: 46064280 */ add.s $f10,$f8,$f6
|
|
/* f044f2c: c7a6007c */ lwc1 $f6,0x7c($sp)
|
|
/* f044f30: e7aa0068 */ swc1 $f10,0x68($sp)
|
|
/* f044f34: c5a0000c */ lwc1 $f0,0xc($t5)
|
|
/* f044f38: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f044f3c: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f044f40: e7a80018 */ swc1 $f8,0x18($sp)
|
|
/* f044f44: 0c00b694 */ jal func0002da50
|
|
/* f044f48: e7aa001c */ swc1 $f10,0x1c($sp)
|
|
/* f044f4c: 10400010 */ beqz $v0,.L0f044f90
|
|
/* f044f50: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f044f54: 8faf003c */ lw $t7,0x3c($sp)
|
|
/* f044f58: afae0010 */ sw $t6,0x10($sp)
|
|
/* f044f5c: c7a40080 */ lwc1 $f4,0x80($sp)
|
|
/* f044f60: c5e0000c */ lwc1 $f0,0xc($t7)
|
|
/* f044f64: c7a6007c */ lwc1 $f6,0x7c($sp)
|
|
/* f044f68: 27a4006c */ addiu $a0,$sp,0x6c
|
|
/* f044f6c: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f044f70: 8fa500e8 */ lw $a1,0xe8($sp)
|
|
/* f044f74: 27a60060 */ addiu $a2,$sp,0x60
|
|
/* f044f78: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f044f7c: e7a80014 */ swc1 $f8,0x14($sp)
|
|
/* f044f80: 8fa70100 */ lw $a3,0x100($sp)
|
|
/* f044f84: 0c00b5f0 */ jal func0002d7c0
|
|
/* f044f88: e7aa0018 */ swc1 $f10,0x18($sp)
|
|
/* f044f8c: 1440000c */ bnez $v0,.L0f044fc0
|
|
.L0f044f90:
|
|
/* f044f90: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f044f94: 3c077f1b */ lui $a3,%hi(var7f1a8bac)
|
|
/* f044f98: afb800b8 */ sw $t8,0xb8($sp)
|
|
/* f044f9c: 24e78bac */ addiu $a3,$a3,%lo(var7f1a8bac)
|
|
/* f044fa0: 27a40094 */ addiu $a0,$sp,0x94
|
|
/* f044fa4: 27a50088 */ addiu $a1,$sp,0x88
|
|
/* f044fa8: 0c009393 */ jal func00024e4c
|
|
/* f044fac: 24063750 */ addiu $a2,$zero,0x3750
|
|
/* f044fb0: 27a40094 */ addiu $a0,$sp,0x94
|
|
/* f044fb4: 27a50088 */ addiu $a1,$sp,0x88
|
|
/* f044fb8: 0fc112da */ jal func0f044b68
|
|
/* f044fbc: 27a600d4 */ addiu $a2,$sp,0xd4
|
|
.L0f044fc0:
|
|
/* f044fc0: 8fb900bc */ lw $t9,0xbc($sp)
|
|
/* f044fc4: 8fa800b8 */ lw $t0,0xb8($sp)
|
|
/* f044fc8: 8fa900bc */ lw $t1,0xbc($sp)
|
|
/* f044fcc: 13200019 */ beqz $t9,.L0f045034
|
|
/* f044fd0: 00000000 */ nop
|
|
/* f044fd4: 11000017 */ beqz $t0,.L0f045034
|
|
/* f044fd8: 27a400ac */ addiu $a0,$sp,0xac
|
|
/* f044fdc: 27a50094 */ addiu $a1,$sp,0x94
|
|
/* f044fe0: 0fc112da */ jal func0f044b68
|
|
/* f044fe4: 27a600d4 */ addiu $a2,$sp,0xd4
|
|
/* f044fe8: 27a400a0 */ addiu $a0,$sp,0xa0
|
|
/* f044fec: 27a50088 */ addiu $a1,$sp,0x88
|
|
/* f044ff0: 0fc112da */ jal func0f044b68
|
|
/* f044ff4: 27a600d4 */ addiu $a2,$sp,0xd4
|
|
/* f044ff8: 8fa400f0 */ lw $a0,0xf0($sp)
|
|
/* f044ffc: c7a400ac */ lwc1 $f4,0xac($sp)
|
|
/* f045000: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f045004: e4840000 */ swc1 $f4,0x0($a0)
|
|
/* f045008: c7a800b0 */ lwc1 $f8,0xb0($sp)
|
|
/* f04500c: e4880004 */ swc1 $f8,0x4($a0)
|
|
/* f045010: c7a600b4 */ lwc1 $f6,0xb4($sp)
|
|
/* f045014: e4860008 */ swc1 $f6,0x8($a0)
|
|
/* f045018: c7aa0088 */ lwc1 $f10,0x88($sp)
|
|
/* f04501c: e4aa0000 */ swc1 $f10,0x0($a1)
|
|
/* f045020: c7a4008c */ lwc1 $f4,0x8c($sp)
|
|
/* f045024: e4a40004 */ swc1 $f4,0x4($a1)
|
|
/* f045028: c7a80090 */ lwc1 $f8,0x90($sp)
|
|
/* f04502c: 10000055 */ b .L0f045184
|
|
/* f045030: e4a80008 */ swc1 $f8,0x8($a1)
|
|
.L0f045034:
|
|
/* f045034: 11200010 */ beqz $t1,.L0f045078
|
|
/* f045038: 8faa00b8 */ lw $t2,0xb8($sp)
|
|
/* f04503c: 8fa400f0 */ lw $a0,0xf0($sp)
|
|
/* f045040: c7a600ac */ lwc1 $f6,0xac($sp)
|
|
/* f045044: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f045048: e4860000 */ swc1 $f6,0x0($a0)
|
|
/* f04504c: c7aa00b0 */ lwc1 $f10,0xb0($sp)
|
|
/* f045050: e48a0004 */ swc1 $f10,0x4($a0)
|
|
/* f045054: c7a400b4 */ lwc1 $f4,0xb4($sp)
|
|
/* f045058: e4840008 */ swc1 $f4,0x8($a0)
|
|
/* f04505c: c7a800a0 */ lwc1 $f8,0xa0($sp)
|
|
/* f045060: e4a80000 */ swc1 $f8,0x0($a1)
|
|
/* f045064: c7a600a4 */ lwc1 $f6,0xa4($sp)
|
|
/* f045068: e4a60004 */ swc1 $f6,0x4($a1)
|
|
/* f04506c: c7aa00a8 */ lwc1 $f10,0xa8($sp)
|
|
/* f045070: 10000044 */ b .L0f045184
|
|
/* f045074: e4aa0008 */ swc1 $f10,0x8($a1)
|
|
.L0f045078:
|
|
/* f045078: 11400010 */ beqz $t2,.L0f0450bc
|
|
/* f04507c: 8fab0100 */ lw $t3,0x100($sp)
|
|
/* f045080: 8fa400f0 */ lw $a0,0xf0($sp)
|
|
/* f045084: c7a40094 */ lwc1 $f4,0x94($sp)
|
|
/* f045088: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f04508c: e4840000 */ swc1 $f4,0x0($a0)
|
|
/* f045090: c7a80098 */ lwc1 $f8,0x98($sp)
|
|
/* f045094: e4880004 */ swc1 $f8,0x4($a0)
|
|
/* f045098: c7a6009c */ lwc1 $f6,0x9c($sp)
|
|
/* f04509c: e4860008 */ swc1 $f6,0x8($a0)
|
|
/* f0450a0: c7aa0088 */ lwc1 $f10,0x88($sp)
|
|
/* f0450a4: e4aa0000 */ swc1 $f10,0x0($a1)
|
|
/* f0450a8: c7a4008c */ lwc1 $f4,0x8c($sp)
|
|
/* f0450ac: e4a40004 */ swc1 $f4,0x4($a1)
|
|
/* f0450b0: c7a80090 */ lwc1 $f8,0x90($sp)
|
|
/* f0450b4: 10000033 */ b .L0f045184
|
|
/* f0450b8: e4a80008 */ swc1 $f8,0x8($a1)
|
|
.L0f0450bc:
|
|
/* f0450bc: 8fad003c */ lw $t5,0x3c($sp)
|
|
/* f0450c0: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0450c4: afac0014 */ sw $t4,0x14($sp)
|
|
/* f0450c8: afab0010 */ sw $t3,0x10($sp)
|
|
/* f0450cc: c5a0000c */ lwc1 $f0,0xc($t5)
|
|
/* f0450d0: c7a60080 */ lwc1 $f6,0x80($sp)
|
|
/* f0450d4: c7a4007c */ lwc1 $f4,0x7c($sp)
|
|
/* f0450d8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0450dc: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f0450e0: 8fa500e8 */ lw $a1,0xe8($sp)
|
|
/* f0450e4: 8fa600ec */ lw $a2,0xec($sp)
|
|
/* f0450e8: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f0450ec: e7aa0018 */ swc1 $f10,0x18($sp)
|
|
/* f0450f0: 27a70040 */ addiu $a3,$sp,0x40
|
|
/* f0450f4: 0c00b694 */ jal func0002da50
|
|
/* f0450f8: e7a8001c */ swc1 $f8,0x1c($sp)
|
|
/* f0450fc: 10400017 */ beqz $v0,.L0f04515c
|
|
/* f045100: 8fae0104 */ lw $t6,0x104($sp)
|
|
/* f045104: 11c00012 */ beqz $t6,.L0f045150
|
|
/* f045108: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f04510c: 8fb9003c */ lw $t9,0x3c($sp)
|
|
/* f045110: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f045114: afb80014 */ sw $t8,0x14($sp)
|
|
/* f045118: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f04511c: c720000c */ lwc1 $f0,0xc($t9)
|
|
/* f045120: c7a60080 */ lwc1 $f6,0x80($sp)
|
|
/* f045124: c7a4007c */ lwc1 $f4,0x7c($sp)
|
|
/* f045128: 02002025 */ or $a0,$s0,$zero
|
|
/* f04512c: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f045130: 8fa500ec */ lw $a1,0xec($sp)
|
|
/* f045134: 8fa600fc */ lw $a2,0xfc($sp)
|
|
/* f045138: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f04513c: e7aa0018 */ swc1 $f10,0x18($sp)
|
|
/* f045140: 27a70040 */ addiu $a3,$sp,0x40
|
|
/* f045144: 0c00a9bf */ jal func0002a6fc
|
|
/* f045148: e7a8001c */ swc1 $f8,0x1c($sp)
|
|
/* f04514c: 10400003 */ beqz $v0,.L0f04515c
|
|
.L0f045150:
|
|
/* f045150: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f045154: 1000000b */ b .L0f045184
|
|
/* f045158: afa80084 */ sw $t0,0x84($sp)
|
|
.L0f04515c:
|
|
/* f04515c: 3c077f1b */ lui $a3,%hi(var7f1a8bb8)
|
|
/* f045160: 8fa400f0 */ lw $a0,0xf0($sp)
|
|
/* f045164: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f045168: 24e78bb8 */ addiu $a3,$a3,%lo(var7f1a8bb8)
|
|
/* f04516c: 0c009393 */ jal func00024e4c
|
|
/* f045170: 24063796 */ addiu $a2,$zero,0x3796
|
|
/* f045174: 8fa400f0 */ lw $a0,0xf0($sp)
|
|
/* f045178: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f04517c: 0fc112da */ jal func0f044b68
|
|
/* f045180: 27a600d4 */ addiu $a2,$sp,0xd4
|
|
.L0f045184:
|
|
/* f045184: 8fa400e0 */ lw $a0,0xe0($sp)
|
|
/* f045188: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f04518c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f045190: 8fa20084 */ lw $v0,0x84($sp)
|
|
.L0f045194:
|
|
/* f045194: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f045198: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f04519c: 27bd00e0 */ addiu $sp,$sp,0xe0
|
|
/* f0451a0: 03e00008 */ jr $ra
|
|
/* f0451a4: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f0451a8
|
|
.late_rodata
|
|
glabel var7f1a9248
|
|
.word 0x3f733333
|
|
glabel var7f1a924c
|
|
.word 0x3f733333
|
|
glabel var7f1a9250
|
|
.word 0x3f99999a
|
|
glabel var7f1a9254
|
|
.word 0x3f99999a
|
|
.text
|
|
/* f0451a8: 27bdff18 */ addiu $sp,$sp,-232
|
|
/* f0451ac: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f0451b0: afb00028 */ sw $s0,0x28($sp)
|
|
/* f0451b4: afa400e8 */ sw $a0,0xe8($sp)
|
|
/* f0451b8: afa600f0 */ sw $a2,0xf0($sp)
|
|
/* f0451bc: afa700f4 */ sw $a3,0xf4($sp)
|
|
/* f0451c0: afa000c4 */ sw $zero,0xc4($sp)
|
|
/* f0451c4: afa000c0 */ sw $zero,0xc0($sp)
|
|
/* f0451c8: afa0008c */ sw $zero,0x8c($sp)
|
|
/* f0451cc: 8c84001c */ lw $a0,0x1c($a0)
|
|
/* f0451d0: 00a08025 */ or $s0,$a1,$zero
|
|
/* f0451d4: 27a50078 */ addiu $a1,$sp,0x78
|
|
/* f0451d8: 27a7007c */ addiu $a3,$sp,0x7c
|
|
/* f0451dc: 27a60080 */ addiu $a2,$sp,0x80
|
|
/* f0451e0: 0fc0a277 */ jal propChrGetBbox
|
|
/* f0451e4: afa4003c */ sw $a0,0x3c($sp)
|
|
/* f0451e8: 8fa200f4 */ lw $v0,0xf4($sp)
|
|
/* f0451ec: c6060000 */ lwc1 $f6,0x0($s0)
|
|
/* f0451f0: 44800000 */ mtc1 $zero,$f0
|
|
/* f0451f4: c4440000 */ lwc1 $f4,0x0($v0)
|
|
/* f0451f8: e7a000e0 */ swc1 $f0,0xe0($sp)
|
|
/* f0451fc: 46062201 */ sub.s $f8,$f4,$f6
|
|
/* f045200: e7a800dc */ swc1 $f8,0xdc($sp)
|
|
/* f045204: c7a800dc */ lwc1 $f8,0xdc($sp)
|
|
/* f045208: c6040008 */ lwc1 $f4,0x8($s0)
|
|
/* f04520c: c44a0008 */ lwc1 $f10,0x8($v0)
|
|
/* f045210: 46080032 */ c.eq.s $f0,$f8
|
|
/* f045214: 46045181 */ sub.s $f6,$f10,$f4
|
|
/* f045218: 45000008 */ bc1f .L0f04523c
|
|
/* f04521c: e7a600e4 */ swc1 $f6,0xe4($sp)
|
|
/* f045220: c7b200e4 */ lwc1 $f18,0xe4($sp)
|
|
/* f045224: 46120032 */ c.eq.s $f0,$f18
|
|
/* f045228: 00000000 */ nop
|
|
/* f04522c: 45020004 */ bc1fl .L0f045240
|
|
/* f045230: c7b200e4 */ lwc1 $f18,0xe4($sp)
|
|
/* f045234: 10000145 */ b .L0f04574c
|
|
/* f045238: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f04523c:
|
|
/* f04523c: c7b200e4 */ lwc1 $f18,0xe4($sp)
|
|
.L0f045240:
|
|
/* f045240: c7b000dc */ lwc1 $f16,0xdc($sp)
|
|
/* f045244: 46129282 */ mul.s $f10,$f18,$f18
|
|
/* f045248: 00000000 */ nop
|
|
/* f04524c: 46108102 */ mul.s $f4,$f16,$f16
|
|
/* f045250: 0c012974 */ jal sqrtf
|
|
/* f045254: 46045300 */ add.s $f12,$f10,$f4
|
|
/* f045258: 3c013f80 */ lui $at,0x3f80
|
|
/* f04525c: 44813000 */ mtc1 $at,$f6
|
|
/* f045260: c7b000dc */ lwc1 $f16,0xdc($sp)
|
|
/* f045264: c7b200e4 */ lwc1 $f18,0xe4($sp)
|
|
/* f045268: 46003083 */ div.s $f2,$f6,$f0
|
|
/* f04526c: c7a80104 */ lwc1 $f8,0x104($sp)
|
|
/* f045270: 3c017f1b */ lui $at,%hi(var7f1a9248)
|
|
/* f045274: c42a9248 */ lwc1 $f10,%lo(var7f1a9248)($at)
|
|
/* f045278: 3c017f1b */ lui $at,%hi(var7f1a924c)
|
|
/* f04527c: c426924c */ lwc1 $f6,%lo(var7f1a924c)($at)
|
|
/* f045280: 3c017f1b */ lui $at,%hi(var7f1a9250)
|
|
/* f045284: 8fa400e8 */ lw $a0,0xe8($sp)
|
|
/* f045288: 00002825 */ or $a1,$zero,$zero
|
|
/* f04528c: 46028402 */ mul.s $f16,$f16,$f2
|
|
/* f045290: 00000000 */ nop
|
|
/* f045294: 46029482 */ mul.s $f18,$f18,$f2
|
|
/* f045298: 00000000 */ nop
|
|
/* f04529c: 46088302 */ mul.s $f12,$f16,$f8
|
|
/* f0452a0: e7b000dc */ swc1 $f16,0xdc($sp)
|
|
/* f0452a4: e7b200e4 */ swc1 $f18,0xe4($sp)
|
|
/* f0452a8: 460a6102 */ mul.s $f4,$f12,$f10
|
|
/* f0452ac: 00000000 */ nop
|
|
/* f0452b0: 46089382 */ mul.s $f14,$f18,$f8
|
|
/* f0452b4: e7a400d8 */ swc1 $f4,0xd8($sp)
|
|
/* f0452b8: c4249250 */ lwc1 $f4,%lo(var7f1a9250)($at)
|
|
/* f0452bc: 3c017f1b */ lui $at,%hi(var7f1a9254)
|
|
/* f0452c0: 46067282 */ mul.s $f10,$f14,$f6
|
|
/* f0452c4: c4269254 */ lwc1 $f6,%lo(var7f1a9254)($at)
|
|
/* f0452c8: 46046202 */ mul.s $f8,$f12,$f4
|
|
/* f0452cc: e7aa00d4 */ swc1 $f10,0xd4($sp)
|
|
/* f0452d0: 46067282 */ mul.s $f10,$f14,$f6
|
|
/* f0452d4: e7a800d0 */ swc1 $f8,0xd0($sp)
|
|
/* f0452d8: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f0452dc: e7aa00cc */ swc1 $f10,0xcc($sp)
|
|
/* f0452e0: c6040000 */ lwc1 $f4,0x0($s0)
|
|
/* f0452e4: c7a800d4 */ lwc1 $f8,0xd4($sp)
|
|
/* f0452e8: 8fa200f4 */ lw $v0,0xf4($sp)
|
|
/* f0452ec: c7a20100 */ lwc1 $f2,0x100($sp)
|
|
/* f0452f0: 46082180 */ add.s $f6,$f4,$f8
|
|
/* f0452f4: c7a800d8 */ lwc1 $f8,0xd8($sp)
|
|
/* f0452f8: 8faf0108 */ lw $t7,0x108($sp)
|
|
/* f0452fc: 8fb9003c */ lw $t9,0x3c($sp)
|
|
/* f045300: e7a6006c */ swc1 $f6,0x6c($sp)
|
|
/* f045304: c60a0004 */ lwc1 $f10,0x4($s0)
|
|
/* f045308: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f04530c: 02002025 */ or $a0,$s0,$zero
|
|
/* f045310: e7aa0070 */ swc1 $f10,0x70($sp)
|
|
/* f045314: c6040008 */ lwc1 $f4,0x8($s0)
|
|
/* f045318: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f04531c: 27a6006c */ addiu $a2,$sp,0x6c
|
|
/* f045320: 46082181 */ sub.s $f6,$f4,$f8
|
|
/* f045324: c7a400cc */ lwc1 $f4,0xcc($sp)
|
|
/* f045328: 27a70050 */ addiu $a3,$sp,0x50
|
|
/* f04532c: e7a60074 */ swc1 $f6,0x74($sp)
|
|
/* f045330: c44a0000 */ lwc1 $f10,0x0($v0)
|
|
/* f045334: c7a600dc */ lwc1 $f6,0xdc($sp)
|
|
/* f045338: 46045200 */ add.s $f8,$f10,$f4
|
|
/* f04533c: 46023282 */ mul.s $f10,$f6,$f2
|
|
/* f045340: 46085100 */ add.s $f4,$f10,$f8
|
|
/* f045344: c7a800d0 */ lwc1 $f8,0xd0($sp)
|
|
/* f045348: e7a40060 */ swc1 $f4,0x60($sp)
|
|
/* f04534c: c4460004 */ lwc1 $f6,0x4($v0)
|
|
/* f045350: e7a60064 */ swc1 $f6,0x64($sp)
|
|
/* f045354: c44a0008 */ lwc1 $f10,0x8($v0)
|
|
/* f045358: c7a600e4 */ lwc1 $f6,0xe4($sp)
|
|
/* f04535c: afb80014 */ sw $t8,0x14($sp)
|
|
/* f045360: 46085101 */ sub.s $f4,$f10,$f8
|
|
/* f045364: 46023282 */ mul.s $f10,$f6,$f2
|
|
/* f045368: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f04536c: c7a60080 */ lwc1 $f6,0x80($sp)
|
|
/* f045370: 46045200 */ add.s $f8,$f10,$f4
|
|
/* f045374: c7a4007c */ lwc1 $f4,0x7c($sp)
|
|
/* f045378: e7a80068 */ swc1 $f8,0x68($sp)
|
|
/* f04537c: c720000c */ lwc1 $f0,0xc($t9)
|
|
/* f045380: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f045384: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f045388: e7aa0018 */ swc1 $f10,0x18($sp)
|
|
/* f04538c: 0c00b694 */ jal func0002da50
|
|
/* f045390: e7a8001c */ swc1 $f8,0x1c($sp)
|
|
/* f045394: 10400010 */ beqz $v0,.L0f0453d8
|
|
/* f045398: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f04539c: 8fa9003c */ lw $t1,0x3c($sp)
|
|
/* f0453a0: afa80010 */ sw $t0,0x10($sp)
|
|
/* f0453a4: c7a60080 */ lwc1 $f6,0x80($sp)
|
|
/* f0453a8: c520000c */ lwc1 $f0,0xc($t1)
|
|
/* f0453ac: c7a4007c */ lwc1 $f4,0x7c($sp)
|
|
/* f0453b0: 27a4006c */ addiu $a0,$sp,0x6c
|
|
/* f0453b4: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f0453b8: 27a50050 */ addiu $a1,$sp,0x50
|
|
/* f0453bc: 27a60060 */ addiu $a2,$sp,0x60
|
|
/* f0453c0: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f0453c4: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f0453c8: 8fa70108 */ lw $a3,0x108($sp)
|
|
/* f0453cc: 0c00b5f0 */ jal func0002d7c0
|
|
/* f0453d0: e7a80018 */ swc1 $f8,0x18($sp)
|
|
/* f0453d4: 1440000f */ bnez $v0,.L0f045414
|
|
.L0f0453d8:
|
|
/* f0453d8: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f0453dc: 3c077f1b */ lui $a3,%hi(var7f1a8bc4)
|
|
/* f0453e0: afaa00c4 */ sw $t2,0xc4($sp)
|
|
/* f0453e4: 24e78bc4 */ addiu $a3,$a3,%lo(var7f1a8bc4)
|
|
/* f0453e8: 27a400b4 */ addiu $a0,$sp,0xb4
|
|
/* f0453ec: 27a500a8 */ addiu $a1,$sp,0xa8
|
|
/* f0453f0: 0c009393 */ jal func00024e4c
|
|
/* f0453f4: 240637e6 */ addiu $a2,$zero,0x37e6
|
|
/* f0453f8: 27a400b4 */ addiu $a0,$sp,0xb4
|
|
/* f0453fc: 27a500a8 */ addiu $a1,$sp,0xa8
|
|
/* f045400: 0fc112da */ jal func0f044b68
|
|
/* f045404: 27a600dc */ addiu $a2,$sp,0xdc
|
|
/* f045408: 0c009390 */ jal func00024e40
|
|
/* f04540c: 00000000 */ nop
|
|
/* f045410: e7a00088 */ swc1 $f0,0x88($sp)
|
|
.L0f045414:
|
|
/* f045414: c6060000 */ lwc1 $f6,0x0($s0)
|
|
/* f045418: c7aa00d4 */ lwc1 $f10,0xd4($sp)
|
|
/* f04541c: 8fa200f4 */ lw $v0,0xf4($sp)
|
|
/* f045420: c7a20100 */ lwc1 $f2,0x100($sp)
|
|
/* f045424: 460a3101 */ sub.s $f4,$f6,$f10
|
|
/* f045428: c7aa00d8 */ lwc1 $f10,0xd8($sp)
|
|
/* f04542c: 8fab0108 */ lw $t3,0x108($sp)
|
|
/* f045430: 8fad003c */ lw $t5,0x3c($sp)
|
|
/* f045434: e7a4006c */ swc1 $f4,0x6c($sp)
|
|
/* f045438: c6080004 */ lwc1 $f8,0x4($s0)
|
|
/* f04543c: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f045440: 02002025 */ or $a0,$s0,$zero
|
|
/* f045444: e7a80070 */ swc1 $f8,0x70($sp)
|
|
/* f045448: c6060008 */ lwc1 $f6,0x8($s0)
|
|
/* f04544c: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f045450: 27a6006c */ addiu $a2,$sp,0x6c
|
|
/* f045454: 460a3100 */ add.s $f4,$f6,$f10
|
|
/* f045458: c7a600cc */ lwc1 $f6,0xcc($sp)
|
|
/* f04545c: 27a70050 */ addiu $a3,$sp,0x50
|
|
/* f045460: e7a40074 */ swc1 $f4,0x74($sp)
|
|
/* f045464: c4480000 */ lwc1 $f8,0x0($v0)
|
|
/* f045468: c7a400dc */ lwc1 $f4,0xdc($sp)
|
|
/* f04546c: 46064281 */ sub.s $f10,$f8,$f6
|
|
/* f045470: 46022202 */ mul.s $f8,$f4,$f2
|
|
/* f045474: 460a4180 */ add.s $f6,$f8,$f10
|
|
/* f045478: c7aa00d0 */ lwc1 $f10,0xd0($sp)
|
|
/* f04547c: e7a60060 */ swc1 $f6,0x60($sp)
|
|
/* f045480: c4440004 */ lwc1 $f4,0x4($v0)
|
|
/* f045484: e7a40064 */ swc1 $f4,0x64($sp)
|
|
/* f045488: c4480008 */ lwc1 $f8,0x8($v0)
|
|
/* f04548c: c7a400e4 */ lwc1 $f4,0xe4($sp)
|
|
/* f045490: afac0014 */ sw $t4,0x14($sp)
|
|
/* f045494: 460a4180 */ add.s $f6,$f8,$f10
|
|
/* f045498: 46022202 */ mul.s $f8,$f4,$f2
|
|
/* f04549c: afab0010 */ sw $t3,0x10($sp)
|
|
/* f0454a0: c7a40080 */ lwc1 $f4,0x80($sp)
|
|
/* f0454a4: 46064280 */ add.s $f10,$f8,$f6
|
|
/* f0454a8: c7a6007c */ lwc1 $f6,0x7c($sp)
|
|
/* f0454ac: e7aa0068 */ swc1 $f10,0x68($sp)
|
|
/* f0454b0: c5a0000c */ lwc1 $f0,0xc($t5)
|
|
/* f0454b4: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f0454b8: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f0454bc: e7a80018 */ swc1 $f8,0x18($sp)
|
|
/* f0454c0: 0c00b694 */ jal func0002da50
|
|
/* f0454c4: e7aa001c */ swc1 $f10,0x1c($sp)
|
|
/* f0454c8: 10400010 */ beqz $v0,.L0f04550c
|
|
/* f0454cc: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0454d0: 8faf003c */ lw $t7,0x3c($sp)
|
|
/* f0454d4: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0454d8: c7a40080 */ lwc1 $f4,0x80($sp)
|
|
/* f0454dc: c5e0000c */ lwc1 $f0,0xc($t7)
|
|
/* f0454e0: c7a6007c */ lwc1 $f6,0x7c($sp)
|
|
/* f0454e4: 27a4006c */ addiu $a0,$sp,0x6c
|
|
/* f0454e8: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f0454ec: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0454f0: 27a60060 */ addiu $a2,$sp,0x60
|
|
/* f0454f4: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f0454f8: e7a80014 */ swc1 $f8,0x14($sp)
|
|
/* f0454fc: 8fa70108 */ lw $a3,0x108($sp)
|
|
/* f045500: 0c00b5f0 */ jal func0002d7c0
|
|
/* f045504: e7aa0018 */ swc1 $f10,0x18($sp)
|
|
/* f045508: 1440000f */ bnez $v0,.L0f045548
|
|
.L0f04550c:
|
|
/* f04550c: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f045510: 3c077f1b */ lui $a3,%hi(var7f1a8bd0)
|
|
/* f045514: afb800c0 */ sw $t8,0xc0($sp)
|
|
/* f045518: 24e78bd0 */ addiu $a3,$a3,%lo(var7f1a8bd0)
|
|
/* f04551c: 27a4009c */ addiu $a0,$sp,0x9c
|
|
/* f045520: 27a50090 */ addiu $a1,$sp,0x90
|
|
/* f045524: 0c009393 */ jal func00024e4c
|
|
/* f045528: 240637f5 */ addiu $a2,$zero,0x37f5
|
|
/* f04552c: 27a4009c */ addiu $a0,$sp,0x9c
|
|
/* f045530: 27a50090 */ addiu $a1,$sp,0x90
|
|
/* f045534: 0fc112da */ jal func0f044b68
|
|
/* f045538: 27a600dc */ addiu $a2,$sp,0xdc
|
|
/* f04553c: 0c009390 */ jal func00024e40
|
|
/* f045540: 00000000 */ nop
|
|
/* f045544: e7a00084 */ swc1 $f0,0x84($sp)
|
|
.L0f045548:
|
|
/* f045548: 8fb900c4 */ lw $t9,0xc4($sp)
|
|
/* f04554c: 8fa800c0 */ lw $t0,0xc0($sp)
|
|
/* f045550: 8fa900c4 */ lw $t1,0xc4($sp)
|
|
/* f045554: 13200025 */ beqz $t9,.L0f0455ec
|
|
/* f045558: 00000000 */ nop
|
|
/* f04555c: 11000023 */ beqz $t0,.L0f0455ec
|
|
/* f045560: c7a40088 */ lwc1 $f4,0x88($sp)
|
|
/* f045564: c7a80084 */ lwc1 $f8,0x84($sp)
|
|
/* f045568: c7a600b4 */ lwc1 $f6,0xb4($sp)
|
|
/* f04556c: 8fa400f8 */ lw $a0,0xf8($sp)
|
|
/* f045570: 4608203c */ c.lt.s $f4,$f8
|
|
/* f045574: c7a4009c */ lwc1 $f4,0x9c($sp)
|
|
/* f045578: 45020010 */ bc1fl .L0f0455bc
|
|
/* f04557c: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f045580: 8fa400f8 */ lw $a0,0xf8($sp)
|
|
/* f045584: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f045588: e4860000 */ swc1 $f6,0x0($a0)
|
|
/* f04558c: c7aa00b8 */ lwc1 $f10,0xb8($sp)
|
|
/* f045590: e48a0004 */ swc1 $f10,0x4($a0)
|
|
/* f045594: c7a400bc */ lwc1 $f4,0xbc($sp)
|
|
/* f045598: e4840008 */ swc1 $f4,0x8($a0)
|
|
/* f04559c: c7a800a8 */ lwc1 $f8,0xa8($sp)
|
|
/* f0455a0: e4a80000 */ swc1 $f8,0x0($a1)
|
|
/* f0455a4: c7a600ac */ lwc1 $f6,0xac($sp)
|
|
/* f0455a8: e4a60004 */ swc1 $f6,0x4($a1)
|
|
/* f0455ac: c7aa00b0 */ lwc1 $f10,0xb0($sp)
|
|
/* f0455b0: 10000062 */ b .L0f04573c
|
|
/* f0455b4: e4aa0008 */ swc1 $f10,0x8($a1)
|
|
/* f0455b8: 8fa500fc */ lw $a1,0xfc($sp)
|
|
.L0f0455bc:
|
|
/* f0455bc: e4840000 */ swc1 $f4,0x0($a0)
|
|
/* f0455c0: c7a800a0 */ lwc1 $f8,0xa0($sp)
|
|
/* f0455c4: e4880004 */ swc1 $f8,0x4($a0)
|
|
/* f0455c8: c7a600a4 */ lwc1 $f6,0xa4($sp)
|
|
/* f0455cc: e4860008 */ swc1 $f6,0x8($a0)
|
|
/* f0455d0: c7aa0090 */ lwc1 $f10,0x90($sp)
|
|
/* f0455d4: e4aa0000 */ swc1 $f10,0x0($a1)
|
|
/* f0455d8: c7a40094 */ lwc1 $f4,0x94($sp)
|
|
/* f0455dc: e4a40004 */ swc1 $f4,0x4($a1)
|
|
/* f0455e0: c7a80098 */ lwc1 $f8,0x98($sp)
|
|
/* f0455e4: 10000055 */ b .L0f04573c
|
|
/* f0455e8: e4a80008 */ swc1 $f8,0x8($a1)
|
|
.L0f0455ec:
|
|
/* f0455ec: 11200010 */ beqz $t1,.L0f045630
|
|
/* f0455f0: 8faa00c0 */ lw $t2,0xc0($sp)
|
|
/* f0455f4: 8fa400f8 */ lw $a0,0xf8($sp)
|
|
/* f0455f8: c7a600b4 */ lwc1 $f6,0xb4($sp)
|
|
/* f0455fc: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f045600: e4860000 */ swc1 $f6,0x0($a0)
|
|
/* f045604: c7aa00b8 */ lwc1 $f10,0xb8($sp)
|
|
/* f045608: e48a0004 */ swc1 $f10,0x4($a0)
|
|
/* f04560c: c7a400bc */ lwc1 $f4,0xbc($sp)
|
|
/* f045610: e4840008 */ swc1 $f4,0x8($a0)
|
|
/* f045614: c7a800a8 */ lwc1 $f8,0xa8($sp)
|
|
/* f045618: e4a80000 */ swc1 $f8,0x0($a1)
|
|
/* f04561c: c7a600ac */ lwc1 $f6,0xac($sp)
|
|
/* f045620: e4a60004 */ swc1 $f6,0x4($a1)
|
|
/* f045624: c7aa00b0 */ lwc1 $f10,0xb0($sp)
|
|
/* f045628: 10000044 */ b .L0f04573c
|
|
/* f04562c: e4aa0008 */ swc1 $f10,0x8($a1)
|
|
.L0f045630:
|
|
/* f045630: 11400010 */ beqz $t2,.L0f045674
|
|
/* f045634: 8fab0108 */ lw $t3,0x108($sp)
|
|
/* f045638: 8fa400f8 */ lw $a0,0xf8($sp)
|
|
/* f04563c: c7a4009c */ lwc1 $f4,0x9c($sp)
|
|
/* f045640: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f045644: e4840000 */ swc1 $f4,0x0($a0)
|
|
/* f045648: c7a800a0 */ lwc1 $f8,0xa0($sp)
|
|
/* f04564c: e4880004 */ swc1 $f8,0x4($a0)
|
|
/* f045650: c7a600a4 */ lwc1 $f6,0xa4($sp)
|
|
/* f045654: e4860008 */ swc1 $f6,0x8($a0)
|
|
/* f045658: c7aa0090 */ lwc1 $f10,0x90($sp)
|
|
/* f04565c: e4aa0000 */ swc1 $f10,0x0($a1)
|
|
/* f045660: c7a40094 */ lwc1 $f4,0x94($sp)
|
|
/* f045664: e4a40004 */ swc1 $f4,0x4($a1)
|
|
/* f045668: c7a80098 */ lwc1 $f8,0x98($sp)
|
|
/* f04566c: 10000033 */ b .L0f04573c
|
|
/* f045670: e4a80008 */ swc1 $f8,0x8($a1)
|
|
.L0f045674:
|
|
/* f045674: 8fad003c */ lw $t5,0x3c($sp)
|
|
/* f045678: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f04567c: afac0014 */ sw $t4,0x14($sp)
|
|
/* f045680: afab0010 */ sw $t3,0x10($sp)
|
|
/* f045684: c5a0000c */ lwc1 $f0,0xc($t5)
|
|
/* f045688: c7a60080 */ lwc1 $f6,0x80($sp)
|
|
/* f04568c: c7a4007c */ lwc1 $f4,0x7c($sp)
|
|
/* f045690: 02002025 */ or $a0,$s0,$zero
|
|
/* f045694: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f045698: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f04569c: 8fa600f4 */ lw $a2,0xf4($sp)
|
|
/* f0456a0: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f0456a4: e7aa0018 */ swc1 $f10,0x18($sp)
|
|
/* f0456a8: 27a70040 */ addiu $a3,$sp,0x40
|
|
/* f0456ac: 0c00b694 */ jal func0002da50
|
|
/* f0456b0: e7a8001c */ swc1 $f8,0x1c($sp)
|
|
/* f0456b4: 10400017 */ beqz $v0,.L0f045714
|
|
/* f0456b8: 8fae010c */ lw $t6,0x10c($sp)
|
|
/* f0456bc: 11c00012 */ beqz $t6,.L0f045708
|
|
/* f0456c0: 8faf0108 */ lw $t7,0x108($sp)
|
|
/* f0456c4: 8fb9003c */ lw $t9,0x3c($sp)
|
|
/* f0456c8: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f0456cc: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0456d0: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0456d4: c720000c */ lwc1 $f0,0xc($t9)
|
|
/* f0456d8: c7a60080 */ lwc1 $f6,0x80($sp)
|
|
/* f0456dc: c7a4007c */ lwc1 $f4,0x7c($sp)
|
|
/* f0456e0: 02002025 */ or $a0,$s0,$zero
|
|
/* f0456e4: 46003281 */ sub.s $f10,$f6,$f0
|
|
/* f0456e8: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f0456ec: 8fa60104 */ lw $a2,0x104($sp)
|
|
/* f0456f0: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f0456f4: e7aa0018 */ swc1 $f10,0x18($sp)
|
|
/* f0456f8: 27a70040 */ addiu $a3,$sp,0x40
|
|
/* f0456fc: 0c00a9bf */ jal func0002a6fc
|
|
/* f045700: e7a8001c */ swc1 $f8,0x1c($sp)
|
|
/* f045704: 10400003 */ beqz $v0,.L0f045714
|
|
.L0f045708:
|
|
/* f045708: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f04570c: 1000000b */ b .L0f04573c
|
|
/* f045710: afa8008c */ sw $t0,0x8c($sp)
|
|
.L0f045714:
|
|
/* f045714: 3c077f1b */ lui $a3,%hi(var7f1a8bdc)
|
|
/* f045718: 8fa400f8 */ lw $a0,0xf8($sp)
|
|
/* f04571c: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f045720: 24e78bdc */ addiu $a3,$a3,%lo(var7f1a8bdc)
|
|
/* f045724: 0c009393 */ jal func00024e4c
|
|
/* f045728: 2406383b */ addiu $a2,$zero,0x383b
|
|
/* f04572c: 8fa400f8 */ lw $a0,0xf8($sp)
|
|
/* f045730: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f045734: 0fc112da */ jal func0f044b68
|
|
/* f045738: 27a600dc */ addiu $a2,$sp,0xdc
|
|
.L0f04573c:
|
|
/* f04573c: 8fa400e8 */ lw $a0,0xe8($sp)
|
|
/* f045740: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f045744: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f045748: 8fa2008c */ lw $v0,0x8c($sp)
|
|
.L0f04574c:
|
|
/* f04574c: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f045750: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f045754: 27bd00e8 */ addiu $sp,$sp,0xe8
|
|
/* f045758: 03e00008 */ jr $ra
|
|
/* f04575c: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f045760
|
|
.late_rodata
|
|
glabel var7f1a9258
|
|
.word 0x3f4907a9
|
|
glabel var7f1a925c
|
|
.word 0x40c907a9
|
|
.text
|
|
/* f045760: 27bdff88 */ addiu $sp,$sp,-120
|
|
/* f045764: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f045768: afa40078 */ sw $a0,0x78($sp)
|
|
/* f04576c: afa5007c */ sw $a1,0x7c($sp)
|
|
/* f045770: afa60080 */ sw $a2,0x80($sp)
|
|
/* f045774: 8c8f001c */ lw $t7,0x1c($a0)
|
|
/* f045778: 10c00004 */ beqz $a2,.L0f04578c
|
|
/* f04577c: afaf0074 */ sw $t7,0x74($sp)
|
|
/* f045780: afa50044 */ sw $a1,0x44($sp)
|
|
/* f045784: 10000004 */ b .L0f045798
|
|
/* f045788: afa70040 */ sw $a3,0x40($sp)
|
|
.L0f04578c:
|
|
/* f04578c: 8fa8007c */ lw $t0,0x7c($sp)
|
|
/* f045790: afa70044 */ sw $a3,0x44($sp)
|
|
/* f045794: afa80040 */ sw $t0,0x40($sp)
|
|
.L0f045798:
|
|
/* f045798: 8fa9007c */ lw $t1,0x7c($sp)
|
|
/* f04579c: 8faa0074 */ lw $t2,0x74($sp)
|
|
/* f0457a0: 44808000 */ mtc1 $zero,$f16
|
|
/* f0457a4: c5240000 */ lwc1 $f4,0x0($t1)
|
|
/* f0457a8: c5460008 */ lwc1 $f6,0x8($t2)
|
|
/* f0457ac: e7b0006c */ swc1 $f16,0x6c($sp)
|
|
/* f0457b0: 46062201 */ sub.s $f8,$f4,$f6
|
|
/* f0457b4: e7a80068 */ swc1 $f8,0x68($sp)
|
|
/* f0457b8: c52a0008 */ lwc1 $f10,0x8($t1)
|
|
/* f0457bc: c5440010 */ lwc1 $f4,0x10($t2)
|
|
/* f0457c0: 46088032 */ c.eq.s $f16,$f8
|
|
/* f0457c4: 46045181 */ sub.s $f6,$f10,$f4
|
|
/* f0457c8: 45000006 */ bc1f .L0f0457e4
|
|
/* f0457cc: e7a60070 */ swc1 $f6,0x70($sp)
|
|
/* f0457d0: 46068032 */ c.eq.s $f16,$f6
|
|
/* f0457d4: c7ae0088 */ lwc1 $f14,0x88($sp)
|
|
/* f0457d8: 3c013f80 */ lui $at,0x3f80
|
|
/* f0457dc: 45030023 */ bc1tl .L0f04586c
|
|
/* f0457e0: 44811000 */ mtc1 $at,$f2
|
|
.L0f0457e4:
|
|
/* f0457e4: c7aa0070 */ lwc1 $f10,0x70($sp)
|
|
/* f0457e8: c7b20068 */ lwc1 $f18,0x68($sp)
|
|
/* f0457ec: 460a5102 */ mul.s $f4,$f10,$f10
|
|
/* f0457f0: 00000000 */ nop
|
|
/* f0457f4: 46129202 */ mul.s $f8,$f18,$f18
|
|
/* f0457f8: 0c012974 */ jal sqrtf
|
|
/* f0457fc: 46082300 */ add.s $f12,$f4,$f8
|
|
/* f045800: 44808000 */ mtc1 $zero,$f16
|
|
/* f045804: c7ae0088 */ lwc1 $f14,0x88($sp)
|
|
/* f045808: 3c013f80 */ lui $at,0x3f80
|
|
/* f04580c: 4600803c */ c.lt.s $f16,$f0
|
|
/* f045810: 00000000 */ nop
|
|
/* f045814: 45020010 */ bc1fl .L0f045858
|
|
/* f045818: 44811000 */ mtc1 $at,$f2
|
|
/* f04581c: 3c013f80 */ lui $at,0x3f80
|
|
/* f045820: 44813000 */ mtc1 $at,$f6
|
|
/* f045824: c7ae0088 */ lwc1 $f14,0x88($sp)
|
|
/* f045828: c7b20068 */ lwc1 $f18,0x68($sp)
|
|
/* f04582c: 46003083 */ div.s $f2,$f6,$f0
|
|
/* f045830: c7aa0070 */ lwc1 $f10,0x70($sp)
|
|
/* f045834: 46027302 */ mul.s $f12,$f14,$f2
|
|
/* f045838: 00000000 */ nop
|
|
/* f04583c: 460c9482 */ mul.s $f18,$f18,$f12
|
|
/* f045840: 00000000 */ nop
|
|
/* f045844: 460c5102 */ mul.s $f4,$f10,$f12
|
|
/* f045848: e7b20068 */ swc1 $f18,0x68($sp)
|
|
/* f04584c: 1000000a */ b .L0f045878
|
|
/* f045850: e7a40070 */ swc1 $f4,0x70($sp)
|
|
/* f045854: 44811000 */ mtc1 $at,$f2
|
|
.L0f045858:
|
|
/* f045858: e7ae0070 */ swc1 $f14,0x70($sp)
|
|
/* f04585c: 46027302 */ mul.s $f12,$f14,$f2
|
|
/* f045860: 10000006 */ b .L0f04587c
|
|
/* f045864: 3c013f80 */ lui $at,0x3f80
|
|
/* f045868: 44811000 */ mtc1 $at,$f2
|
|
.L0f04586c:
|
|
/* f04586c: e7ae0070 */ swc1 $f14,0x70($sp)
|
|
/* f045870: 46027302 */ mul.s $f12,$f14,$f2
|
|
/* f045874: 00000000 */ nop
|
|
.L0f045878:
|
|
/* f045878: 3c013f80 */ lui $at,0x3f80
|
|
.L0f04587c:
|
|
/* f04587c: 44814000 */ mtc1 $at,$f8
|
|
/* f045880: 3c017f1b */ lui $at,%hi(var7f1a9258)
|
|
/* f045884: 460c403c */ c.lt.s $f8,$f12
|
|
/* f045888: 00000000 */ nop
|
|
/* f04588c: 45000003 */ bc1f .L0f04589c
|
|
/* f045890: 00000000 */ nop
|
|
/* f045894: 10000005 */ b .L0f0458ac
|
|
/* f045898: c42c9258 */ lwc1 $f12,%lo(var7f1a9258)($at)
|
|
.L0f04589c:
|
|
/* f04589c: 0fc25a74 */ jal func0f0969d0
|
|
/* f0458a0: 00000000 */ nop
|
|
/* f0458a4: 44808000 */ mtc1 $zero,$f16
|
|
/* f0458a8: 46000306 */ mov.s $f12,$f0
|
|
.L0f0458ac:
|
|
/* f0458ac: 8fab0080 */ lw $t3,0x80($sp)
|
|
/* f0458b0: 15600007 */ bnez $t3,.L0f0458d0
|
|
/* f0458b4: 00000000 */ nop
|
|
/* f0458b8: 46106032 */ c.eq.s $f12,$f16
|
|
/* f0458bc: 3c017f1b */ lui $at,%hi(var7f1a925c)
|
|
/* f0458c0: 45010003 */ bc1t .L0f0458d0
|
|
/* f0458c4: 00000000 */ nop
|
|
/* f0458c8: c426925c */ lwc1 $f6,%lo(var7f1a925c)($at)
|
|
/* f0458cc: 460c3301 */ sub.s $f12,$f6,$f12
|
|
.L0f0458d0:
|
|
/* f0458d0: 0c0068f4 */ jal cosf
|
|
/* f0458d4: e7ac0054 */ swc1 $f12,0x54($sp)
|
|
/* f0458d8: c7ac0054 */ lwc1 $f12,0x54($sp)
|
|
/* f0458dc: 0c0068f7 */ jal sinf
|
|
/* f0458e0: e7a00038 */ swc1 $f0,0x38($sp)
|
|
/* f0458e4: c7aa0070 */ lwc1 $f10,0x70($sp)
|
|
/* f0458e8: c7a80038 */ lwc1 $f8,0x38($sp)
|
|
/* f0458ec: c7b20068 */ lwc1 $f18,0x68($sp)
|
|
/* f0458f0: 46005102 */ mul.s $f4,$f10,$f0
|
|
/* f0458f4: 46004187 */ neg.s $f6,$f8
|
|
/* f0458f8: 44808000 */ mtc1 $zero,$f16
|
|
/* f0458fc: 46123282 */ mul.s $f10,$f6,$f18
|
|
/* f045900: c7ac0054 */ lwc1 $f12,0x54($sp)
|
|
/* f045904: e7b0004c */ swc1 $f16,0x4c($sp)
|
|
/* f045908: 460a2200 */ add.s $f8,$f4,$f10
|
|
/* f04590c: 0c0068f7 */ jal sinf
|
|
/* f045910: e7a80048 */ swc1 $f8,0x48($sp)
|
|
/* f045914: c7ac0054 */ lwc1 $f12,0x54($sp)
|
|
/* f045918: 0c0068f4 */ jal cosf
|
|
/* f04591c: e7a00038 */ swc1 $f0,0x38($sp)
|
|
/* f045920: c7a60038 */ lwc1 $f6,0x38($sp)
|
|
/* f045924: c7aa0068 */ lwc1 $f10,0x68($sp)
|
|
/* f045928: 8fac007c */ lw $t4,0x7c($sp)
|
|
/* f04592c: 46003107 */ neg.s $f4,$f6
|
|
/* f045930: c7a60070 */ lwc1 $f6,0x70($sp)
|
|
/* f045934: 460a2202 */ mul.s $f8,$f4,$f10
|
|
/* f045938: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f04593c: 8faf0040 */ lw $t7,0x40($sp)
|
|
/* f045940: 46003102 */ mul.s $f4,$f6,$f0
|
|
/* f045944: c7a60048 */ lwc1 $f6,0x48($sp)
|
|
/* f045948: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f04594c: 8fa50074 */ lw $a1,0x74($sp)
|
|
/* f045950: 8fa60074 */ lw $a2,0x74($sp)
|
|
/* f045954: 8fb8009c */ lw $t8,0x9c($sp)
|
|
/* f045958: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f04595c: 46044281 */ sub.s $f10,$f8,$f4
|
|
/* f045960: 24a50008 */ addiu $a1,$a1,0x8
|
|
/* f045964: 24c60028 */ addiu $a2,$a2,0x28
|
|
/* f045968: 27a7005c */ addiu $a3,$sp,0x5c
|
|
/* f04596c: e7aa0050 */ swc1 $f10,0x50($sp)
|
|
/* f045970: c5880000 */ lwc1 $f8,0x0($t4)
|
|
/* f045974: 46083100 */ add.s $f4,$f6,$f8
|
|
/* f045978: e7a4005c */ swc1 $f4,0x5c($sp)
|
|
/* f04597c: c5860004 */ lwc1 $f6,0x4($t4)
|
|
/* f045980: e7a60060 */ swc1 $f6,0x60($sp)
|
|
/* f045984: c5880008 */ lwc1 $f8,0x8($t4)
|
|
/* f045988: c7a60098 */ lwc1 $f6,0x98($sp)
|
|
/* f04598c: afae0010 */ sw $t6,0x10($sp)
|
|
/* f045990: 46085100 */ add.s $f4,$f10,$f8
|
|
/* f045994: afaf0014 */ sw $t7,0x14($sp)
|
|
/* f045998: e7a60018 */ swc1 $f6,0x18($sp)
|
|
/* f04599c: e7a40064 */ swc1 $f4,0x64($sp)
|
|
/* f0459a0: c48a0024 */ lwc1 $f10,0x24($a0)
|
|
/* f0459a4: afa60030 */ sw $a2,0x30($sp)
|
|
/* f0459a8: afa50034 */ sw $a1,0x34($sp)
|
|
/* f0459ac: afb90024 */ sw $t9,0x24($sp)
|
|
/* f0459b0: afb80020 */ sw $t8,0x20($sp)
|
|
/* f0459b4: 0fc1130e */ jal func0f044c38
|
|
/* f0459b8: e7aa001c */ swc1 $f10,0x1c($sp)
|
|
/* f0459bc: 8fa50034 */ lw $a1,0x34($sp)
|
|
/* f0459c0: 10400026 */ beqz $v0,.L0f045a5c
|
|
/* f0459c4: 8fa60030 */ lw $a2,0x30($sp)
|
|
/* f0459c8: 8fa8008c */ lw $t0,0x8c($sp)
|
|
/* f0459cc: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f0459d0: 8fa90090 */ lw $t1,0x90($sp)
|
|
/* f0459d4: 51000009 */ beqzl $t0,.L0f0459fc
|
|
/* f0459d8: 8fab00a0 */ lw $t3,0xa0($sp)
|
|
/* f0459dc: 8faa009c */ lw $t2,0x9c($sp)
|
|
/* f0459e0: 27a7005c */ addiu $a3,$sp,0x5c
|
|
/* f0459e4: afa90010 */ sw $t1,0x10($sp)
|
|
/* f0459e8: 0fc0d917 */ jal func0f03645c
|
|
/* f0459ec: afaa0014 */ sw $t2,0x14($sp)
|
|
/* f0459f0: 5040001b */ beqzl $v0,.L0f045a60
|
|
/* f0459f4: 00001025 */ or $v0,$zero,$zero
|
|
/* f0459f8: 8fab00a0 */ lw $t3,0xa0($sp)
|
|
.L0f0459fc:
|
|
/* f0459fc: 8fa20094 */ lw $v0,0x94($sp)
|
|
/* f045a00: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f045a04: 5160000d */ beqzl $t3,.L0f045a3c
|
|
/* f045a08: a04e0002 */ sb $t6,0x2($v0)
|
|
/* f045a0c: 8fa20094 */ lw $v0,0x94($sp)
|
|
/* f045a10: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f045a14: a04c0003 */ sb $t4,0x3($v0)
|
|
/* f045a18: c7a8005c */ lwc1 $f8,0x5c($sp)
|
|
/* f045a1c: e448002c */ swc1 $f8,0x2c($v0)
|
|
/* f045a20: c7a40060 */ lwc1 $f4,0x60($sp)
|
|
/* f045a24: e4440030 */ swc1 $f4,0x30($v0)
|
|
/* f045a28: c7a60064 */ lwc1 $f6,0x64($sp)
|
|
/* f045a2c: e4460034 */ swc1 $f6,0x34($v0)
|
|
/* f045a30: 1000000b */ b .L0f045a60
|
|
/* f045a34: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f045a38: a04e0002 */ sb $t6,0x2($v0)
|
|
.L0f045a3c:
|
|
/* f045a3c: c7aa005c */ lwc1 $f10,0x5c($sp)
|
|
/* f045a40: e44a0004 */ swc1 $f10,0x4($v0)
|
|
/* f045a44: c7a80060 */ lwc1 $f8,0x60($sp)
|
|
/* f045a48: e4480008 */ swc1 $f8,0x8($v0)
|
|
/* f045a4c: c7a40064 */ lwc1 $f4,0x64($sp)
|
|
/* f045a50: e444000c */ swc1 $f4,0xc($v0)
|
|
/* f045a54: 10000002 */ b .L0f045a60
|
|
/* f045a58: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f045a5c:
|
|
/* f045a5c: 00001025 */ or $v0,$zero,$zero
|
|
.L0f045a60:
|
|
/* f045a60: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f045a64: 27bd0078 */ addiu $sp,$sp,0x78
|
|
/* f045a68: 03e00008 */ jr $ra
|
|
/* f045a6c: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f045a70
|
|
.late_rodata
|
|
glabel var7f1a9260
|
|
.word 0x471c4000
|
|
.text
|
|
/* f045a70: 27bdffd0 */ addiu $sp,$sp,-48
|
|
/* f045a74: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f045a78: afb00028 */ sw $s0,0x28($sp)
|
|
/* f045a7c: afa40030 */ sw $a0,0x30($sp)
|
|
/* f045a80: 8c82001c */ lw $v0,0x1c($a0)
|
|
/* f045a84: 44800000 */ mtc1 $zero,$f0
|
|
/* f045a88: 00a03025 */ or $a2,$a1,$zero
|
|
/* f045a8c: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f045a90: 00008025 */ or $s0,$zero,$zero
|
|
/* f045a94: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f045a98: 24075020 */ addiu $a3,$zero,0x5020
|
|
/* f045a9c: 24450028 */ addiu $a1,$v0,0x28
|
|
/* f045aa0: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f045aa4: e7a00014 */ swc1 $f0,0x14($sp)
|
|
/* f045aa8: 0c00b5f0 */ jal func0002d7c0
|
|
/* f045aac: e7a00018 */ swc1 $f0,0x18($sp)
|
|
/* f045ab0: 14400004 */ bnez $v0,.L0f045ac4
|
|
/* f045ab4: 00000000 */ nop
|
|
/* f045ab8: 0c0093ac */ jal cdGetObstacle
|
|
/* f045abc: 00000000 */ nop
|
|
/* f045ac0: 00408025 */ or $s0,$v0,$zero
|
|
.L0f045ac4:
|
|
/* f045ac4: 12000030 */ beqz $s0,.L0f045b88
|
|
/* f045ac8: 8fa40030 */ lw $a0,0x30($sp)
|
|
/* f045acc: 8c9802d4 */ lw $t8,0x2d4($a0)
|
|
/* f045ad0: 8e030004 */ lw $v1,0x4($s0)
|
|
/* f045ad4: 57000006 */ bnezl $t8,.L0f045af0
|
|
/* f045ad8: 8c82001c */ lw $v0,0x1c($a0)
|
|
/* f045adc: 8c79000c */ lw $t9,0xc($v1)
|
|
/* f045ae0: 00194080 */ sll $t0,$t9,0x2
|
|
/* f045ae4: 05020028 */ bltzl $t0,.L0f045b88
|
|
/* f045ae8: 00008025 */ or $s0,$zero,$zero
|
|
/* f045aec: 8c82001c */ lw $v0,0x1c($a0)
|
|
.L0f045af0:
|
|
/* f045af0: c6040008 */ lwc1 $f4,0x8($s0)
|
|
/* f045af4: c6080010 */ lwc1 $f8,0x10($s0)
|
|
/* f045af8: c4460008 */ lwc1 $f6,0x8($v0)
|
|
/* f045afc: c44a0010 */ lwc1 $f10,0x10($v0)
|
|
/* f045b00: 3c017f1b */ lui $at,%hi(var7f1a9260)
|
|
/* f045b04: 46062001 */ sub.s $f0,$f4,$f6
|
|
/* f045b08: c4269260 */ lwc1 $f6,%lo(var7f1a9260)($at)
|
|
/* f045b0c: 460a4081 */ sub.s $f2,$f8,$f10
|
|
/* f045b10: 46000402 */ mul.s $f16,$f0,$f0
|
|
/* f045b14: 00000000 */ nop
|
|
/* f045b18: 46021482 */ mul.s $f18,$f2,$f2
|
|
/* f045b1c: 46128100 */ add.s $f4,$f16,$f18
|
|
/* f045b20: 4606203c */ c.lt.s $f4,$f6
|
|
/* f045b24: 00000000 */ nop
|
|
/* f045b28: 45010005 */ bc1t .L0f045b40
|
|
/* f045b2c: 00000000 */ nop
|
|
/* f045b30: 94690070 */ lhu $t1,0x70($v1)
|
|
/* f045b34: 312a0400 */ andi $t2,$t1,0x400
|
|
/* f045b38: 11400010 */ beqz $t2,.L0f045b7c
|
|
/* f045b3c: 00000000 */ nop
|
|
.L0f045b40:
|
|
/* f045b40: 0fc0dc87 */ jal chrGoPosClearRestartTtl
|
|
/* f045b44: 00000000 */ nop
|
|
/* f045b48: 8fab0030 */ lw $t3,0x30($sp)
|
|
/* f045b4c: 8e050004 */ lw $a1,0x4($s0)
|
|
/* f045b50: 0fc24030 */ jal doorsChooseSwingDirection
|
|
/* f045b54: 8d64001c */ lw $a0,0x1c($t3)
|
|
/* f045b58: 02002025 */ or $a0,$s0,$zero
|
|
/* f045b5c: 0fc198c4 */ jal doorCallLift
|
|
/* f045b60: 00002825 */ or $a1,$zero,$zero
|
|
/* f045b64: 14400008 */ bnez $v0,.L0f045b88
|
|
/* f045b68: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f045b6c: 0fc23922 */ jal doorsRequestMode
|
|
/* f045b70: 8e040004 */ lw $a0,0x4($s0)
|
|
/* f045b74: 10000005 */ b .L0f045b8c
|
|
/* f045b78: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f045b7c:
|
|
/* f045b7c: 10000002 */ b .L0f045b88
|
|
/* f045b80: 00008025 */ or $s0,$zero,$zero
|
|
/* f045b84: 00008025 */ or $s0,$zero,$zero
|
|
.L0f045b88:
|
|
/* f045b88: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f045b8c:
|
|
/* f045b8c: 02001025 */ or $v0,$s0,$zero
|
|
/* f045b90: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f045b94: 03e00008 */ jr $ra
|
|
/* f045b98: 27bd0030 */ addiu $sp,$sp,0x30
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f045b9c
|
|
.late_rodata
|
|
glabel var7f1a9264
|
|
.word 0x404907a9
|
|
glabel var7f1a9268
|
|
.word 0x40c907a9
|
|
glabel var7f1a926c
|
|
.word 0x3fa147ae
|
|
glabel var7f1a9270
|
|
.word 0x3fa147ae
|
|
glabel var7f1a9274
|
|
.word 0x3fa147ae
|
|
glabel var7f1a9278
|
|
.word 0x3f8ccccd
|
|
glabel var7f1a927c
|
|
.word 0x3f8ccccd
|
|
.text
|
|
/* f045b9c: 27bdfef0 */ addiu $sp,$sp,-272
|
|
/* f045ba0: afbf0084 */ sw $ra,0x84($sp)
|
|
/* f045ba4: afb70080 */ sw $s7,0x80($sp)
|
|
/* f045ba8: afb6007c */ sw $s6,0x7c($sp)
|
|
/* f045bac: afb50078 */ sw $s5,0x78($sp)
|
|
/* f045bb0: afb40074 */ sw $s4,0x74($sp)
|
|
/* f045bb4: afb30070 */ sw $s3,0x70($sp)
|
|
/* f045bb8: afb2006c */ sw $s2,0x6c($sp)
|
|
/* f045bbc: afb10068 */ sw $s1,0x68($sp)
|
|
/* f045bc0: afb00064 */ sw $s0,0x64($sp)
|
|
/* f045bc4: f7be0058 */ sdc1 $f30,0x58($sp)
|
|
/* f045bc8: f7bc0050 */ sdc1 $f28,0x50($sp)
|
|
/* f045bcc: f7ba0048 */ sdc1 $f26,0x48($sp)
|
|
/* f045bd0: f7b80040 */ sdc1 $f24,0x40($sp)
|
|
/* f045bd4: f7b60038 */ sdc1 $f22,0x38($sp)
|
|
/* f045bd8: f7b40030 */ sdc1 $f20,0x30($sp)
|
|
/* f045bdc: afa7011c */ sw $a3,0x11c($sp)
|
|
/* f045be0: 8c8e0014 */ lw $t6,0x14($a0)
|
|
/* f045be4: 00c08025 */ or $s0,$a2,$zero
|
|
/* f045be8: 00809025 */ or $s2,$a0,$zero
|
|
/* f045bec: 31cf0010 */ andi $t7,$t6,0x10
|
|
/* f045bf0: 00a09825 */ or $s3,$a1,$zero
|
|
/* f045bf4: 8c91001c */ lw $s1,0x1c($a0)
|
|
/* f045bf8: 11e00002 */ beqz $t7,.L0f045c04
|
|
/* f045bfc: 3416803d */ dli $s6,0x803d
|
|
/* f045c00: 2416003f */ addiu $s6,$zero,0x3f
|
|
.L0f045c04:
|
|
/* f045c04: 3c017f1b */ lui $at,%hi(var7f1a9264)
|
|
/* f045c08: c43e9264 */ lwc1 $f30,%lo(var7f1a9264)($at)
|
|
/* f045c0c: 3c017f1b */ lui $at,%hi(var7f1a9268)
|
|
/* f045c10: 4480d000 */ mtc1 $zero,$f26
|
|
/* f045c14: c43c9268 */ lwc1 $f28,%lo(var7f1a9268)($at)
|
|
/* f045c18: afa000f0 */ sw $zero,0xf0($sp)
|
|
/* f045c1c: 24170001 */ addiu $s7,$zero,0x1
|
|
/* f045c20: 24150004 */ addiu $s5,$zero,0x4
|
|
/* f045c24: 27b400f4 */ addiu $s4,$sp,0xf4
|
|
.L0f045c28:
|
|
/* f045c28: 82020000 */ lb $v0,0x0($s0)
|
|
/* f045c2c: 24010002 */ addiu $at,$zero,0x2
|
|
/* f045c30: 02402025 */ or $a0,$s2,$zero
|
|
/* f045c34: 10400003 */ beqz $v0,.L0f045c44
|
|
/* f045c38: 26250008 */ addiu $a1,$s1,0x8
|
|
/* f045c3c: 1441002d */ bne $v0,$at,.L0f045cf4
|
|
/* f045c40: 00000000 */ nop
|
|
.L0f045c44:
|
|
/* f045c44: c6640000 */ lwc1 $f4,0x0($s3)
|
|
/* f045c48: 26180010 */ addiu $t8,$s0,0x10
|
|
/* f045c4c: 2619001c */ addiu $t9,$s0,0x1c
|
|
/* f045c50: e7a40100 */ swc1 $f4,0x100($sp)
|
|
/* f045c54: c6660004 */ lwc1 $f6,0x4($s3)
|
|
/* f045c58: 8faa011c */ lw $t2,0x11c($sp)
|
|
/* f045c5c: 24090030 */ addiu $t1,$zero,0x30
|
|
/* f045c60: e7a60104 */ swc1 $f6,0x104($sp)
|
|
/* f045c64: c6680008 */ lwc1 $f8,0x8($s3)
|
|
/* f045c68: afb90014 */ sw $t9,0x14($sp)
|
|
/* f045c6c: afb80010 */ sw $t8,0x10($sp)
|
|
/* f045c70: e7a80108 */ swc1 $f8,0x108($sp)
|
|
/* f045c74: c6400024 */ lwc1 $f0,0x24($s2)
|
|
/* f045c78: afa90020 */ sw $t1,0x20($sp)
|
|
/* f045c7c: 26260028 */ addiu $a2,$s1,0x28
|
|
/* f045c80: 46000287 */ neg.s $f10,$f0
|
|
/* f045c84: 27a70100 */ addiu $a3,$sp,0x100
|
|
/* f045c88: e7aa0018 */ swc1 $f10,0x18($sp)
|
|
/* f045c8c: afaa0024 */ sw $t2,0x24($sp)
|
|
/* f045c90: 0fc1130e */ jal func0f044c38
|
|
/* f045c94: e7a0001c */ swc1 $f0,0x1c($sp)
|
|
/* f045c98: 5040000b */ beqzl $v0,.L0f045cc8
|
|
/* f045c9c: 82020000 */ lb $v0,0x0($s0)
|
|
/* f045ca0: a2170002 */ sb $s7,0x2($s0)
|
|
/* f045ca4: c7b20100 */ lwc1 $f18,0x100($sp)
|
|
/* f045ca8: e6120004 */ swc1 $f18,0x4($s0)
|
|
/* f045cac: c7a40104 */ lwc1 $f4,0x104($sp)
|
|
/* f045cb0: e6040008 */ swc1 $f4,0x8($s0)
|
|
/* f045cb4: c7a60108 */ lwc1 $f6,0x108($sp)
|
|
/* f045cb8: a2150000 */ sb $s5,0x0($s0)
|
|
/* f045cbc: 100001a9 */ b .L0f046364
|
|
/* f045cc0: e606000c */ swc1 $f6,0xc($s0)
|
|
/* f045cc4: 82020000 */ lb $v0,0x0($s0)
|
|
.L0f045cc8:
|
|
/* f045cc8: 24010002 */ addiu $at,$zero,0x2
|
|
/* f045ccc: 14400004 */ bnez $v0,.L0f045ce0
|
|
/* f045cd0: 00000000 */ nop
|
|
/* f045cd4: a2170000 */ sb $s7,0x0($s0)
|
|
/* f045cd8: 100001a2 */ b .L0f046364
|
|
/* f045cdc: a2000001 */ sb $zero,0x1($s0)
|
|
.L0f045ce0:
|
|
/* f045ce0: 144101a0 */ bne $v0,$at,.L0f046364
|
|
/* f045ce4: 240b0003 */ addiu $t3,$zero,0x3
|
|
/* f045ce8: a20b0000 */ sb $t3,0x0($s0)
|
|
/* f045cec: 1000019d */ b .L0f046364
|
|
/* f045cf0: a2000001 */ sb $zero,0x1($s0)
|
|
.L0f045cf4:
|
|
/* f045cf4: 16e20032 */ bne $s7,$v0,.L0f045dc0
|
|
/* f045cf8: 24010003 */ addiu $at,$zero,0x3
|
|
/* f045cfc: 3c017f1b */ lui $at,%hi(var7f1a926c)
|
|
/* f045d00: c42a926c */ lwc1 $f10,%lo(var7f1a926c)($at)
|
|
/* f045d04: c6480024 */ lwc1 $f8,0x24($s2)
|
|
/* f045d08: 240c0030 */ addiu $t4,$zero,0x30
|
|
/* f045d0c: afac0024 */ sw $t4,0x24($sp)
|
|
/* f045d10: 460a4002 */ mul.s $f0,$f8,$f10
|
|
/* f045d14: afa00028 */ sw $zero,0x28($sp)
|
|
/* f045d18: e7ba0020 */ swc1 $f26,0x20($sp)
|
|
/* f045d1c: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f045d20: afb30018 */ sw $s3,0x18($sp)
|
|
/* f045d24: afb70014 */ sw $s7,0x14($sp)
|
|
/* f045d28: 02402025 */ or $a0,$s2,$zero
|
|
/* f045d2c: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f045d30: e7a000e8 */ swc1 $f0,0xe8($sp)
|
|
/* f045d34: 26050010 */ addiu $a1,$s0,0x10
|
|
/* f045d38: 02e03025 */ or $a2,$s7,$zero
|
|
/* f045d3c: 0fc115d8 */ jal func0f045760
|
|
/* f045d40: 02803825 */ or $a3,$s4,$zero
|
|
/* f045d44: 10400003 */ beqz $v0,.L0f045d54
|
|
/* f045d48: c7a000e8 */ lwc1 $f0,0xe8($sp)
|
|
/* f045d4c: 10000185 */ b .L0f046364
|
|
/* f045d50: a2150000 */ sb $s5,0x0($s0)
|
|
.L0f045d54:
|
|
/* f045d54: 240d0030 */ addiu $t5,$zero,0x30
|
|
/* f045d58: afad0024 */ sw $t5,0x24($sp)
|
|
/* f045d5c: 02402025 */ or $a0,$s2,$zero
|
|
/* f045d60: 2605001c */ addiu $a1,$s0,0x1c
|
|
/* f045d64: 00003025 */ or $a2,$zero,$zero
|
|
/* f045d68: 02803825 */ or $a3,$s4,$zero
|
|
/* f045d6c: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f045d70: afb70014 */ sw $s7,0x14($sp)
|
|
/* f045d74: afb30018 */ sw $s3,0x18($sp)
|
|
/* f045d78: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f045d7c: e7ba0020 */ swc1 $f26,0x20($sp)
|
|
/* f045d80: 0fc115d8 */ jal func0f045760
|
|
/* f045d84: afa00028 */ sw $zero,0x28($sp)
|
|
/* f045d88: 50400004 */ beqzl $v0,.L0f045d9c
|
|
/* f045d8c: 820e0001 */ lb $t6,0x1($s0)
|
|
/* f045d90: 10000174 */ b .L0f046364
|
|
/* f045d94: a2150000 */ sb $s5,0x0($s0)
|
|
/* f045d98: 820e0001 */ lb $t6,0x1($s0)
|
|
.L0f045d9c:
|
|
/* f045d9c: 24190002 */ addiu $t9,$zero,0x2
|
|
/* f045da0: 25cf0001 */ addiu $t7,$t6,0x1
|
|
/* f045da4: a20f0001 */ sb $t7,0x1($s0)
|
|
/* f045da8: 82180001 */ lb $t8,0x1($s0)
|
|
/* f045dac: 2b010006 */ slti $at,$t8,0x6
|
|
/* f045db0: 5420016d */ bnezl $at,.L0f046368
|
|
/* f045db4: 8fab00f0 */ lw $t3,0xf0($sp)
|
|
/* f045db8: 1000016a */ b .L0f046364
|
|
/* f045dbc: a2190000 */ sb $t9,0x0($s0)
|
|
.L0f045dc0:
|
|
/* f045dc0: 1441003c */ bne $v0,$at,.L0f045eb4
|
|
/* f045dc4: 02402025 */ or $a0,$s2,$zero
|
|
/* f045dc8: 3c017f1b */ lui $at,%hi(var7f1a9270)
|
|
/* f045dcc: c4249270 */ lwc1 $f4,%lo(var7f1a9270)($at)
|
|
/* f045dd0: c6520024 */ lwc1 $f18,0x24($s2)
|
|
/* f045dd4: 24090030 */ addiu $t1,$zero,0x30
|
|
/* f045dd8: afa90024 */ sw $t1,0x24($sp)
|
|
/* f045ddc: 46049002 */ mul.s $f0,$f18,$f4
|
|
/* f045de0: afa00028 */ sw $zero,0x28($sp)
|
|
/* f045de4: e7ba0020 */ swc1 $f26,0x20($sp)
|
|
/* f045de8: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f045dec: afa00018 */ sw $zero,0x18($sp)
|
|
/* f045df0: afa00014 */ sw $zero,0x14($sp)
|
|
/* f045df4: 26050010 */ addiu $a1,$s0,0x10
|
|
/* f045df8: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f045dfc: e7a000e4 */ swc1 $f0,0xe4($sp)
|
|
/* f045e00: 02e03025 */ or $a2,$s7,$zero
|
|
/* f045e04: 0fc115d8 */ jal func0f045760
|
|
/* f045e08: 02803825 */ or $a3,$s4,$zero
|
|
/* f045e0c: 10400003 */ beqz $v0,.L0f045e1c
|
|
/* f045e10: c7a000e4 */ lwc1 $f0,0xe4($sp)
|
|
/* f045e14: 10000153 */ b .L0f046364
|
|
/* f045e18: a2150000 */ sb $s5,0x0($s0)
|
|
.L0f045e1c:
|
|
/* f045e1c: 240a0030 */ addiu $t2,$zero,0x30
|
|
/* f045e20: afaa0024 */ sw $t2,0x24($sp)
|
|
/* f045e24: 02402025 */ or $a0,$s2,$zero
|
|
/* f045e28: 2605001c */ addiu $a1,$s0,0x1c
|
|
/* f045e2c: 00003025 */ or $a2,$zero,$zero
|
|
/* f045e30: 02803825 */ or $a3,$s4,$zero
|
|
/* f045e34: e7a00010 */ swc1 $f0,0x10($sp)
|
|
/* f045e38: afa00014 */ sw $zero,0x14($sp)
|
|
/* f045e3c: afa00018 */ sw $zero,0x18($sp)
|
|
/* f045e40: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f045e44: e7ba0020 */ swc1 $f26,0x20($sp)
|
|
/* f045e48: 0fc115d8 */ jal func0f045760
|
|
/* f045e4c: afa00028 */ sw $zero,0x28($sp)
|
|
/* f045e50: 50400004 */ beqzl $v0,.L0f045e64
|
|
/* f045e54: 820b0001 */ lb $t3,0x1($s0)
|
|
/* f045e58: 10000142 */ b .L0f046364
|
|
/* f045e5c: a2150000 */ sb $s5,0x0($s0)
|
|
/* f045e60: 820b0001 */ lb $t3,0x1($s0)
|
|
.L0f045e64:
|
|
/* f045e64: 256c0001 */ addiu $t4,$t3,0x1
|
|
/* f045e68: a20c0001 */ sb $t4,0x1($s0)
|
|
/* f045e6c: 820d0001 */ lb $t5,0x1($s0)
|
|
/* f045e70: 29a10006 */ slti $at,$t5,0x6
|
|
/* f045e74: 5420013c */ bnezl $at,.L0f046368
|
|
/* f045e78: 8fab00f0 */ lw $t3,0xf0($sp)
|
|
/* f045e7c: a2000002 */ sb $zero,0x2($s0)
|
|
/* f045e80: 820e0002 */ lb $t6,0x2($s0)
|
|
/* f045e84: a20e0003 */ sb $t6,0x3($s0)
|
|
/* f045e88: c6600000 */ lwc1 $f0,0x0($s3)
|
|
/* f045e8c: e6000004 */ swc1 $f0,0x4($s0)
|
|
/* f045e90: e600002c */ swc1 $f0,0x2c($s0)
|
|
/* f045e94: c6600004 */ lwc1 $f0,0x4($s3)
|
|
/* f045e98: e6000008 */ swc1 $f0,0x8($s0)
|
|
/* f045e9c: e6000030 */ swc1 $f0,0x30($s0)
|
|
/* f045ea0: c6600008 */ lwc1 $f0,0x8($s3)
|
|
/* f045ea4: a2000000 */ sb $zero,0x0($s0)
|
|
/* f045ea8: e600000c */ swc1 $f0,0xc($s0)
|
|
/* f045eac: 1000012d */ b .L0f046364
|
|
/* f045eb0: e6000034 */ swc1 $f0,0x34($s0)
|
|
.L0f045eb4:
|
|
/* f045eb4: 16a20034 */ bne $s5,$v0,.L0f045f88
|
|
/* f045eb8: 24010005 */ addiu $at,$zero,0x5
|
|
/* f045ebc: 8faf011c */ lw $t7,0x11c($sp)
|
|
/* f045ec0: 02e01025 */ or $v0,$s7,$zero
|
|
/* f045ec4: 26250008 */ addiu $a1,$s1,0x8
|
|
/* f045ec8: 26260028 */ addiu $a2,$s1,0x28
|
|
/* f045ecc: 26030010 */ addiu $v1,$s0,0x10
|
|
/* f045ed0: 2608001c */ addiu $t0,$s0,0x1c
|
|
/* f045ed4: 15e00014 */ bnez $t7,.L0f045f28
|
|
/* f045ed8: 26070004 */ addiu $a3,$s0,0x4
|
|
/* f045edc: c6060004 */ lwc1 $f6,0x4($s0)
|
|
/* f045ee0: c6680000 */ lwc1 $f8,0x0($s3)
|
|
/* f045ee4: 46083032 */ c.eq.s $f6,$f8
|
|
/* f045ee8: 00000000 */ nop
|
|
/* f045eec: 4502000f */ bc1fl .L0f045f2c
|
|
/* f045ef0: afa30010 */ sw $v1,0x10($sp)
|
|
/* f045ef4: c60a0008 */ lwc1 $f10,0x8($s0)
|
|
/* f045ef8: c6720004 */ lwc1 $f18,0x4($s3)
|
|
/* f045efc: 46125032 */ c.eq.s $f10,$f18
|
|
/* f045f00: 00000000 */ nop
|
|
/* f045f04: 45020009 */ bc1fl .L0f045f2c
|
|
/* f045f08: afa30010 */ sw $v1,0x10($sp)
|
|
/* f045f0c: c604000c */ lwc1 $f4,0xc($s0)
|
|
/* f045f10: c6660008 */ lwc1 $f6,0x8($s3)
|
|
/* f045f14: 46062032 */ c.eq.s $f4,$f6
|
|
/* f045f18: 00000000 */ nop
|
|
/* f045f1c: 45020003 */ bc1fl .L0f045f2c
|
|
/* f045f20: afa30010 */ sw $v1,0x10($sp)
|
|
/* f045f24: 00001025 */ or $v0,$zero,$zero
|
|
.L0f045f28:
|
|
/* f045f28: afa30010 */ sw $v1,0x10($sp)
|
|
.L0f045f2c:
|
|
/* f045f2c: afa80014 */ sw $t0,0x14($sp)
|
|
/* f045f30: c6400024 */ lwc1 $f0,0x24($s2)
|
|
/* f045f34: afa20024 */ sw $v0,0x24($sp)
|
|
/* f045f38: afb60020 */ sw $s6,0x20($sp)
|
|
/* f045f3c: 46000207 */ neg.s $f8,$f0
|
|
/* f045f40: 02402025 */ or $a0,$s2,$zero
|
|
/* f045f44: e7a80018 */ swc1 $f8,0x18($sp)
|
|
/* f045f48: 0fc1146a */ jal func0f0451a8
|
|
/* f045f4c: e7a0001c */ swc1 $f0,0x1c($sp)
|
|
/* f045f50: 1040000a */ beqz $v0,.L0f045f7c
|
|
/* f045f54: 24180005 */ addiu $t8,$zero,0x5
|
|
/* f045f58: c60a0004 */ lwc1 $f10,0x4($s0)
|
|
/* f045f5c: c6120008 */ lwc1 $f18,0x8($s0)
|
|
/* f045f60: c604000c */ lwc1 $f4,0xc($s0)
|
|
/* f045f64: a2170003 */ sb $s7,0x3($s0)
|
|
/* f045f68: a2000000 */ sb $zero,0x0($s0)
|
|
/* f045f6c: e60a002c */ swc1 $f10,0x2c($s0)
|
|
/* f045f70: e6120030 */ swc1 $f18,0x30($s0)
|
|
/* f045f74: 100000fb */ b .L0f046364
|
|
/* f045f78: e6040034 */ swc1 $f4,0x34($s0)
|
|
.L0f045f7c:
|
|
/* f045f7c: a2180000 */ sb $t8,0x0($s0)
|
|
/* f045f80: 100000f8 */ b .L0f046364
|
|
/* f045f84: a2000001 */ sb $zero,0x1($s0)
|
|
.L0f045f88:
|
|
/* f045f88: 144100f6 */ bne $v0,$at,.L0f046364
|
|
/* f045f8c: 3c017f1b */ lui $at,%hi(var7f1a9274)
|
|
/* f045f90: c4289274 */ lwc1 $f8,%lo(var7f1a9274)($at)
|
|
/* f045f94: c6460024 */ lwc1 $f6,0x24($s2)
|
|
/* f045f98: c60a0004 */ lwc1 $f10,0x4($s0)
|
|
/* f045f9c: c6320008 */ lwc1 $f18,0x8($s1)
|
|
/* f045fa0: 46083602 */ mul.s $f24,$f6,$f8
|
|
/* f045fa4: c6260010 */ lwc1 $f6,0x10($s1)
|
|
/* f045fa8: c604000c */ lwc1 $f4,0xc($s0)
|
|
/* f045fac: 46125301 */ sub.s $f12,$f10,$f18
|
|
/* f045fb0: 0fc259d4 */ jal atan2f
|
|
/* f045fb4: 46062381 */ sub.s $f14,$f4,$f6
|
|
/* f045fb8: c6160010 */ lwc1 $f22,0x10($s0)
|
|
/* f045fbc: c6320008 */ lwc1 $f18,0x8($s1)
|
|
/* f045fc0: c6100018 */ lwc1 $f16,0x18($s0)
|
|
/* f045fc4: c62a0010 */ lwc1 $f10,0x10($s1)
|
|
/* f045fc8: 4612b301 */ sub.s $f12,$f22,$f18
|
|
/* f045fcc: 46000506 */ mov.s $f20,$f0
|
|
/* f045fd0: 0fc259d4 */ jal atan2f
|
|
/* f045fd4: 460a8381 */ sub.s $f14,$f16,$f10
|
|
/* f045fd8: 4600a581 */ sub.s $f22,$f20,$f0
|
|
/* f045fdc: c612001c */ lwc1 $f18,0x1c($s0)
|
|
/* f045fe0: c6300008 */ lwc1 $f16,0x8($s1)
|
|
/* f045fe4: c60a0024 */ lwc1 $f10,0x24($s0)
|
|
/* f045fe8: c6280010 */ lwc1 $f8,0x10($s1)
|
|
/* f045fec: 46109301 */ sub.s $f12,$f18,$f16
|
|
/* f045ff0: e7b600d0 */ swc1 $f22,0xd0($sp)
|
|
/* f045ff4: 0fc259d4 */ jal atan2f
|
|
/* f045ff8: 46085381 */ sub.s $f14,$f10,$f8
|
|
/* f045ffc: c7b000d0 */ lwc1 $f16,0xd0($sp)
|
|
/* f046000: 4600a301 */ sub.s $f12,$f20,$f0
|
|
/* f046004: 02803825 */ or $a3,$s4,$zero
|
|
/* f046008: 02402025 */ or $a0,$s2,$zero
|
|
/* f04600c: 461a803c */ c.lt.s $f16,$f26
|
|
/* f046010: 46006086 */ mov.s $f2,$f12
|
|
/* f046014: 2605001c */ addiu $a1,$s0,0x1c
|
|
/* f046018: 00003025 */ or $a2,$zero,$zero
|
|
/* f04601c: 45000002 */ bc1f .L0f046028
|
|
/* f046020: 3c017f1b */ lui $at,%hi(var7f1a9278)
|
|
/* f046024: 461c8400 */ add.s $f16,$f16,$f28
|
|
.L0f046028:
|
|
/* f046028: 4610f03e */ c.le.s $f30,$f16
|
|
/* f04602c: 00000000 */ nop
|
|
/* f046030: 45020003 */ bc1fl .L0f046040
|
|
/* f046034: 461a803c */ c.lt.s $f16,$f26
|
|
/* f046038: 461c8401 */ sub.s $f16,$f16,$f28
|
|
/* f04603c: 461a803c */ c.lt.s $f16,$f26
|
|
.L0f046040:
|
|
/* f046040: 00000000 */ nop
|
|
/* f046044: 45020003 */ bc1fl .L0f046054
|
|
/* f046048: 461a603c */ c.lt.s $f12,$f26
|
|
/* f04604c: 46008407 */ neg.s $f16,$f16
|
|
/* f046050: 461a603c */ c.lt.s $f12,$f26
|
|
.L0f046054:
|
|
/* f046054: 00000000 */ nop
|
|
/* f046058: 45020003 */ bc1fl .L0f046068
|
|
/* f04605c: 4602f03e */ c.le.s $f30,$f2
|
|
/* f046060: 461c6080 */ add.s $f2,$f12,$f28
|
|
/* f046064: 4602f03e */ c.le.s $f30,$f2
|
|
.L0f046068:
|
|
/* f046068: 00000000 */ nop
|
|
/* f04606c: 45020003 */ bc1fl .L0f04607c
|
|
/* f046070: 461a103c */ c.lt.s $f2,$f26
|
|
/* f046074: 461c1081 */ sub.s $f2,$f2,$f28
|
|
/* f046078: 461a103c */ c.lt.s $f2,$f26
|
|
.L0f04607c:
|
|
/* f04607c: 00000000 */ nop
|
|
/* f046080: 45020003 */ bc1fl .L0f046090
|
|
/* f046084: 4602803c */ c.lt.s $f16,$f2
|
|
/* f046088: 46001087 */ neg.s $f2,$f2
|
|
/* f04608c: 4602803c */ c.lt.s $f16,$f2
|
|
.L0f046090:
|
|
/* f046090: 00000000 */ nop
|
|
/* f046094: 45000057 */ bc1f .L0f0461f4
|
|
/* f046098: 00000000 */ nop
|
|
/* f04609c: 3c017f1b */ lui $at,%hi(var7f1a927c)
|
|
/* f0460a0: c4249278 */ lwc1 $f4,%lo(var7f1a9278)($at)
|
|
/* f0460a4: 02402025 */ or $a0,$s2,$zero
|
|
/* f0460a8: 26050010 */ addiu $a1,$s0,0x10
|
|
/* f0460ac: 4604c582 */ mul.s $f22,$f24,$f4
|
|
/* f0460b0: 02e03025 */ or $a2,$s7,$zero
|
|
/* f0460b4: e7b80010 */ swc1 $f24,0x10($sp)
|
|
/* f0460b8: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0460bc: afa00018 */ sw $zero,0x18($sp)
|
|
/* f0460c0: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f0460c4: afb60024 */ sw $s6,0x24($sp)
|
|
/* f0460c8: e7b60020 */ swc1 $f22,0x20($sp)
|
|
/* f0460cc: 0fc115d8 */ jal func0f045760
|
|
/* f0460d0: afb70028 */ sw $s7,0x28($sp)
|
|
/* f0460d4: 50400004 */ beqzl $v0,.L0f0460e8
|
|
/* f0460d8: c6060010 */ lwc1 $f6,0x10($s0)
|
|
/* f0460dc: 100000a5 */ b .L0f046374
|
|
/* f0460e0: a2000000 */ sb $zero,0x0($s0)
|
|
/* f0460e4: c6060010 */ lwc1 $f6,0x10($s0)
|
|
.L0f0460e8:
|
|
/* f0460e8: c6280008 */ lwc1 $f8,0x8($s1)
|
|
/* f0460ec: c60a0018 */ lwc1 $f10,0x18($s0)
|
|
/* f0460f0: c6320010 */ lwc1 $f18,0x10($s1)
|
|
/* f0460f4: 46083301 */ sub.s $f12,$f6,$f8
|
|
/* f0460f8: 0fc259d4 */ jal atan2f
|
|
/* f0460fc: 46125381 */ sub.s $f14,$f10,$f18
|
|
/* f046100: 4600a481 */ sub.s $f18,$f20,$f0
|
|
/* f046104: c7b000f4 */ lwc1 $f16,0xf4($sp)
|
|
/* f046108: c62a0008 */ lwc1 $f10,0x8($s1)
|
|
/* f04610c: c7a800fc */ lwc1 $f8,0xfc($sp)
|
|
/* f046110: c6260010 */ lwc1 $f6,0x10($s1)
|
|
/* f046114: 460a8301 */ sub.s $f12,$f16,$f10
|
|
/* f046118: e7b200c0 */ swc1 $f18,0xc0($sp)
|
|
/* f04611c: 0fc259d4 */ jal atan2f
|
|
/* f046120: 46064381 */ sub.s $f14,$f8,$f6
|
|
/* f046124: c7b000c0 */ lwc1 $f16,0xc0($sp)
|
|
/* f046128: 4600a301 */ sub.s $f12,$f20,$f0
|
|
/* f04612c: 02402025 */ or $a0,$s2,$zero
|
|
/* f046130: 02802825 */ or $a1,$s4,$zero
|
|
/* f046134: 461a803c */ c.lt.s $f16,$f26
|
|
/* f046138: 46006086 */ mov.s $f2,$f12
|
|
/* f04613c: 00003025 */ or $a2,$zero,$zero
|
|
/* f046140: 02803825 */ or $a3,$s4,$zero
|
|
/* f046144: 45020003 */ bc1fl .L0f046154
|
|
/* f046148: 4610f03e */ c.le.s $f30,$f16
|
|
/* f04614c: 461c8400 */ add.s $f16,$f16,$f28
|
|
/* f046150: 4610f03e */ c.le.s $f30,$f16
|
|
.L0f046154:
|
|
/* f046154: 00000000 */ nop
|
|
/* f046158: 45020003 */ bc1fl .L0f046168
|
|
/* f04615c: 461a803c */ c.lt.s $f16,$f26
|
|
/* f046160: 461c8401 */ sub.s $f16,$f16,$f28
|
|
/* f046164: 461a803c */ c.lt.s $f16,$f26
|
|
.L0f046168:
|
|
/* f046168: 00000000 */ nop
|
|
/* f04616c: 45020003 */ bc1fl .L0f04617c
|
|
/* f046170: 461a603c */ c.lt.s $f12,$f26
|
|
/* f046174: 46008407 */ neg.s $f16,$f16
|
|
/* f046178: 461a603c */ c.lt.s $f12,$f26
|
|
.L0f04617c:
|
|
/* f04617c: 00000000 */ nop
|
|
/* f046180: 45020003 */ bc1fl .L0f046190
|
|
/* f046184: 4602f03e */ c.le.s $f30,$f2
|
|
/* f046188: 461c6080 */ add.s $f2,$f12,$f28
|
|
/* f04618c: 4602f03e */ c.le.s $f30,$f2
|
|
.L0f046190:
|
|
/* f046190: 00000000 */ nop
|
|
/* f046194: 45020003 */ bc1fl .L0f0461a4
|
|
/* f046198: 461a103c */ c.lt.s $f2,$f26
|
|
/* f04619c: 461c1081 */ sub.s $f2,$f2,$f28
|
|
/* f0461a0: 461a103c */ c.lt.s $f2,$f26
|
|
.L0f0461a4:
|
|
/* f0461a4: 00000000 */ nop
|
|
/* f0461a8: 45020003 */ bc1fl .L0f0461b8
|
|
/* f0461ac: 4610103c */ c.lt.s $f2,$f16
|
|
/* f0461b0: 46001087 */ neg.s $f2,$f2
|
|
/* f0461b4: 4610103c */ c.lt.s $f2,$f16
|
|
.L0f0461b8:
|
|
/* f0461b8: 00000000 */ nop
|
|
/* f0461bc: 45020061 */ bc1fl .L0f046344
|
|
/* f0461c0: 82190001 */ lb $t9,0x1($s0)
|
|
/* f0461c4: e7b80010 */ swc1 $f24,0x10($sp)
|
|
/* f0461c8: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0461cc: afa00018 */ sw $zero,0x18($sp)
|
|
/* f0461d0: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f0461d4: e7b60020 */ swc1 $f22,0x20($sp)
|
|
/* f0461d8: afb60024 */ sw $s6,0x24($sp)
|
|
/* f0461dc: 0fc115d8 */ jal func0f045760
|
|
/* f0461e0: afb70028 */ sw $s7,0x28($sp)
|
|
/* f0461e4: 50400057 */ beqzl $v0,.L0f046344
|
|
/* f0461e8: 82190001 */ lb $t9,0x1($s0)
|
|
/* f0461ec: 10000061 */ b .L0f046374
|
|
/* f0461f0: a2000000 */ sb $zero,0x0($s0)
|
|
.L0f0461f4:
|
|
/* f0461f4: c432927c */ lwc1 $f18,%lo(var7f1a927c)($at)
|
|
/* f0461f8: 02803825 */ or $a3,$s4,$zero
|
|
/* f0461fc: e7b80010 */ swc1 $f24,0x10($sp)
|
|
/* f046200: 4612c582 */ mul.s $f22,$f24,$f18
|
|
/* f046204: afa00014 */ sw $zero,0x14($sp)
|
|
/* f046208: afa00018 */ sw $zero,0x18($sp)
|
|
/* f04620c: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f046210: afb60024 */ sw $s6,0x24($sp)
|
|
/* f046214: afb70028 */ sw $s7,0x28($sp)
|
|
/* f046218: 0fc115d8 */ jal func0f045760
|
|
/* f04621c: e7b60020 */ swc1 $f22,0x20($sp)
|
|
/* f046220: 50400004 */ beqzl $v0,.L0f046234
|
|
/* f046224: c604001c */ lwc1 $f4,0x1c($s0)
|
|
/* f046228: 10000052 */ b .L0f046374
|
|
/* f04622c: a2000000 */ sb $zero,0x0($s0)
|
|
/* f046230: c604001c */ lwc1 $f4,0x1c($s0)
|
|
.L0f046234:
|
|
/* f046234: c6260008 */ lwc1 $f6,0x8($s1)
|
|
/* f046238: c6080024 */ lwc1 $f8,0x24($s0)
|
|
/* f04623c: c62a0010 */ lwc1 $f10,0x10($s1)
|
|
/* f046240: 46062301 */ sub.s $f12,$f4,$f6
|
|
/* f046244: 0fc259d4 */ jal atan2f
|
|
/* f046248: 460a4381 */ sub.s $f14,$f8,$f10
|
|
/* f04624c: 4600a481 */ sub.s $f18,$f20,$f0
|
|
/* f046250: c7b000f4 */ lwc1 $f16,0xf4($sp)
|
|
/* f046254: c62a0008 */ lwc1 $f10,0x8($s1)
|
|
/* f046258: c7a800fc */ lwc1 $f8,0xfc($sp)
|
|
/* f04625c: c6260010 */ lwc1 $f6,0x10($s1)
|
|
/* f046260: 460a8301 */ sub.s $f12,$f16,$f10
|
|
/* f046264: e7b200b0 */ swc1 $f18,0xb0($sp)
|
|
/* f046268: 0fc259d4 */ jal atan2f
|
|
/* f04626c: 46064381 */ sub.s $f14,$f8,$f6
|
|
/* f046270: c7b000b0 */ lwc1 $f16,0xb0($sp)
|
|
/* f046274: 4600a301 */ sub.s $f12,$f20,$f0
|
|
/* f046278: 02402025 */ or $a0,$s2,$zero
|
|
/* f04627c: 02802825 */ or $a1,$s4,$zero
|
|
/* f046280: 461a803c */ c.lt.s $f16,$f26
|
|
/* f046284: 46006086 */ mov.s $f2,$f12
|
|
/* f046288: 02e03025 */ or $a2,$s7,$zero
|
|
/* f04628c: 02803825 */ or $a3,$s4,$zero
|
|
/* f046290: 45020003 */ bc1fl .L0f0462a0
|
|
/* f046294: 4610f03e */ c.le.s $f30,$f16
|
|
/* f046298: 461c8400 */ add.s $f16,$f16,$f28
|
|
/* f04629c: 4610f03e */ c.le.s $f30,$f16
|
|
.L0f0462a0:
|
|
/* f0462a0: 00000000 */ nop
|
|
/* f0462a4: 45020003 */ bc1fl .L0f0462b4
|
|
/* f0462a8: 461a803c */ c.lt.s $f16,$f26
|
|
/* f0462ac: 461c8401 */ sub.s $f16,$f16,$f28
|
|
/* f0462b0: 461a803c */ c.lt.s $f16,$f26
|
|
.L0f0462b4:
|
|
/* f0462b4: 00000000 */ nop
|
|
/* f0462b8: 45020003 */ bc1fl .L0f0462c8
|
|
/* f0462bc: 461a603c */ c.lt.s $f12,$f26
|
|
/* f0462c0: 46008407 */ neg.s $f16,$f16
|
|
/* f0462c4: 461a603c */ c.lt.s $f12,$f26
|
|
.L0f0462c8:
|
|
/* f0462c8: 00000000 */ nop
|
|
/* f0462cc: 45020003 */ bc1fl .L0f0462dc
|
|
/* f0462d0: 4602f03e */ c.le.s $f30,$f2
|
|
/* f0462d4: 461c6080 */ add.s $f2,$f12,$f28
|
|
/* f0462d8: 4602f03e */ c.le.s $f30,$f2
|
|
.L0f0462dc:
|
|
/* f0462dc: 00000000 */ nop
|
|
/* f0462e0: 45020003 */ bc1fl .L0f0462f0
|
|
/* f0462e4: 461a103c */ c.lt.s $f2,$f26
|
|
/* f0462e8: 461c1081 */ sub.s $f2,$f2,$f28
|
|
/* f0462ec: 461a103c */ c.lt.s $f2,$f26
|
|
.L0f0462f0:
|
|
/* f0462f0: 00000000 */ nop
|
|
/* f0462f4: 45020003 */ bc1fl .L0f046304
|
|
/* f0462f8: 4610103c */ c.lt.s $f2,$f16
|
|
/* f0462fc: 46001087 */ neg.s $f2,$f2
|
|
/* f046300: 4610103c */ c.lt.s $f2,$f16
|
|
.L0f046304:
|
|
/* f046304: 00000000 */ nop
|
|
/* f046308: 4502000e */ bc1fl .L0f046344
|
|
/* f04630c: 82190001 */ lb $t9,0x1($s0)
|
|
/* f046310: e7b80010 */ swc1 $f24,0x10($sp)
|
|
/* f046314: afa00014 */ sw $zero,0x14($sp)
|
|
/* f046318: afa00018 */ sw $zero,0x18($sp)
|
|
/* f04631c: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f046320: e7b60020 */ swc1 $f22,0x20($sp)
|
|
/* f046324: afb60024 */ sw $s6,0x24($sp)
|
|
/* f046328: 0fc115d8 */ jal func0f045760
|
|
/* f04632c: afb70028 */ sw $s7,0x28($sp)
|
|
/* f046330: 50400004 */ beqzl $v0,.L0f046344
|
|
/* f046334: 82190001 */ lb $t9,0x1($s0)
|
|
/* f046338: 1000000e */ b .L0f046374
|
|
/* f04633c: a2000000 */ sb $zero,0x0($s0)
|
|
/* f046340: 82190001 */ lb $t9,0x1($s0)
|
|
.L0f046344:
|
|
/* f046344: 27290001 */ addiu $t1,$t9,0x1
|
|
/* f046348: a2090001 */ sb $t1,0x1($s0)
|
|
/* f04634c: 820a0001 */ lb $t2,0x1($s0)
|
|
/* f046350: 29410006 */ slti $at,$t2,0x6
|
|
/* f046354: 54200004 */ bnezl $at,.L0f046368
|
|
/* f046358: 8fab00f0 */ lw $t3,0xf0($sp)
|
|
/* f04635c: a2000003 */ sb $zero,0x3($s0)
|
|
/* f046360: a2000000 */ sb $zero,0x0($s0)
|
|
.L0f046364:
|
|
/* f046364: 8fab00f0 */ lw $t3,0xf0($sp)
|
|
.L0f046368:
|
|
/* f046368: 256c0001 */ addiu $t4,$t3,0x1
|
|
/* f04636c: 1597fe2e */ bne $t4,$s7,.L0f045c28
|
|
/* f046370: afac00f0 */ sw $t4,0xf0($sp)
|
|
.L0f046374:
|
|
/* f046374: 820d0003 */ lb $t5,0x3($s0)
|
|
/* f046378: 02402025 */ or $a0,$s2,$zero
|
|
/* f04637c: 55a00008 */ bnezl $t5,.L0f0463a0
|
|
/* f046380: 8e0e0028 */ lw $t6,0x28($s0)
|
|
/* f046384: c60a0004 */ lwc1 $f10,0x4($s0)
|
|
/* f046388: c6120008 */ lwc1 $f18,0x8($s0)
|
|
/* f04638c: c604000c */ lwc1 $f4,0xc($s0)
|
|
/* f046390: e60a002c */ swc1 $f10,0x2c($s0)
|
|
/* f046394: e6120030 */ swc1 $f18,0x30($s0)
|
|
/* f046398: e6040034 */ swc1 $f4,0x34($s0)
|
|
/* f04639c: 8e0e0028 */ lw $t6,0x28($s0)
|
|
.L0f0463a0:
|
|
/* f0463a0: 2401000a */ addiu $at,$zero,0xa
|
|
/* f0463a4: 01c1001a */ div $zero,$t6,$at
|
|
/* f0463a8: 00007810 */ mfhi $t7
|
|
/* f0463ac: 55e00039 */ bnezl $t7,.L0f046494
|
|
/* f0463b0: 82590007 */ lb $t9,0x7($s2)
|
|
/* f0463b4: 0fc1169c */ jal func0f045a70
|
|
/* f0463b8: 2605002c */ addiu $a1,$s0,0x2c
|
|
/* f0463bc: 10400011 */ beqz $v0,.L0f046404
|
|
/* f0463c0: 00408825 */ or $s1,$v0,$zero
|
|
/* f0463c4: 8e5802d4 */ lw $t8,0x2d4($s2)
|
|
/* f0463c8: 1700000e */ bnez $t8,.L0f046404
|
|
/* f0463cc: 00000000 */ nop
|
|
/* f0463d0: 8e590014 */ lw $t9,0x14($s2)
|
|
/* f0463d4: 33290010 */ andi $t1,$t9,0x10
|
|
/* f0463d8: 1520000a */ bnez $t1,.L0f046404
|
|
/* f0463dc: 00000000 */ nop
|
|
/* f0463e0: 0fc0b819 */ jal func0f02e064
|
|
/* f0463e4: 02402025 */ or $a0,$s2,$zero
|
|
/* f0463e8: 14400006 */ bnez $v0,.L0f046404
|
|
/* f0463ec: 02402025 */ or $a0,$s2,$zero
|
|
/* f0463f0: 0fc0b9b7 */ jal chrStandChooseAnimation
|
|
/* f0463f4: 3c054180 */ lui $a1,0x4180
|
|
/* f0463f8: 3c0a800a */ lui $t2,%hi(g_Vars+0x8)
|
|
/* f0463fc: 8d4a9fc8 */ lw $t2,%lo(g_Vars+0x8)($t2)
|
|
/* f046400: ae4a00d8 */ sw $t2,0xd8($s2)
|
|
.L0f046404:
|
|
/* f046404: 52200006 */ beqzl $s1,.L0f046420
|
|
/* f046408: 8e4d02d4 */ lw $t5,0x2d4($s2)
|
|
/* f04640c: 8e4b0014 */ lw $t3,0x14($s2)
|
|
/* f046410: 316c0010 */ andi $t4,$t3,0x10
|
|
/* f046414: 5180001f */ beqzl $t4,.L0f046494
|
|
/* f046418: 82590007 */ lb $t9,0x7($s2)
|
|
/* f04641c: 8e4d02d4 */ lw $t5,0x2d4($s2)
|
|
.L0f046420:
|
|
/* f046420: 15a00015 */ bnez $t5,.L0f046478
|
|
/* f046424: 00000000 */ nop
|
|
/* f046428: 0fc0b819 */ jal func0f02e064
|
|
/* f04642c: 02402025 */ or $a0,$s2,$zero
|
|
/* f046430: 10400011 */ beqz $v0,.L0f046478
|
|
/* f046434: 00000000 */ nop
|
|
/* f046438: 9242032c */ lbu $v0,0x32c($s2)
|
|
/* f04643c: 24010003 */ addiu $at,$zero,0x3
|
|
/* f046440: 12e2000d */ beq $s7,$v0,.L0f046478
|
|
/* f046444: 00000000 */ nop
|
|
/* f046448: 1041000b */ beq $v0,$at,.L0f046478
|
|
/* f04644c: 00000000 */ nop
|
|
/* f046450: 824e0007 */ lb $t6,0x7($s2)
|
|
/* f046454: 2401000e */ addiu $at,$zero,0xe
|
|
/* f046458: 15c10005 */ bne $t6,$at,.L0f046470
|
|
/* f04645c: 00000000 */ nop
|
|
/* f046460: 0fc0e21a */ jal func0f038868
|
|
/* f046464: 02402025 */ or $a0,$s2,$zero
|
|
/* f046468: 10000003 */ b .L0f046478
|
|
/* f04646c: 00000000 */ nop
|
|
.L0f046470:
|
|
/* f046470: 0fc0dedc */ jal chrGoPosChooseAnimation
|
|
/* f046474: 02402025 */ or $a0,$s2,$zero
|
|
.L0f046478:
|
|
/* f046478: 56200006 */ bnezl $s1,.L0f046494
|
|
/* f04647c: 82590007 */ lb $t9,0x7($s2)
|
|
/* f046480: 8e4f0014 */ lw $t7,0x14($s2)
|
|
/* f046484: 2401ffef */ addiu $at,$zero,-17
|
|
/* f046488: 01e1c024 */ and $t8,$t7,$at
|
|
/* f04648c: ae580014 */ sw $t8,0x14($s2)
|
|
/* f046490: 82590007 */ lb $t9,0x7($s2)
|
|
.L0f046494:
|
|
/* f046494: 2401000e */ addiu $at,$zero,0xe
|
|
/* f046498: 2605002c */ addiu $a1,$s0,0x2c
|
|
/* f04649c: 17210007 */ bne $t9,$at,.L0f0464bc
|
|
/* f0464a0: 02402025 */ or $a0,$s2,$zero
|
|
/* f0464a4: 02402025 */ or $a0,$s2,$zero
|
|
/* f0464a8: 00003025 */ or $a2,$zero,$zero
|
|
/* f0464ac: 0fc10fcb */ jal func0f043f2c
|
|
/* f0464b0: 2647007c */ addiu $a3,$s2,0x7c
|
|
/* f0464b4: 10000054 */ b .L0f046608
|
|
/* f0464b8: 8fbf0084 */ lw $ra,0x84($sp)
|
|
.L0f0464bc:
|
|
/* f0464bc: c64600ac */ lwc1 $f6,0xac($s2)
|
|
/* f0464c0: 00004825 */ or $t1,$zero,$zero
|
|
/* f0464c4: 264700ac */ addiu $a3,$s2,0xac
|
|
/* f0464c8: 4606d032 */ c.eq.s $f26,$f6
|
|
/* f0464cc: 00000000 */ nop
|
|
/* f0464d0: 45030003 */ bc1tl .L0f0464e0
|
|
/* f0464d4: 924d032e */ lbu $t5,0x32e($s2)
|
|
/* f0464d8: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f0464dc: 924d032e */ lbu $t5,0x32e($s2)
|
|
.L0f0464e0:
|
|
/* f0464e0: 00095880 */ sll $t3,$t1,0x2
|
|
/* f0464e4: 316c0004 */ andi $t4,$t3,0x4
|
|
/* f0464e8: 31aefffb */ andi $t6,$t5,0xfffb
|
|
/* f0464ec: 018e7825 */ or $t7,$t4,$t6
|
|
/* f0464f0: a24f032e */ sb $t7,0x32e($s2)
|
|
/* f0464f4: 0fc10fcb */ jal func0f043f2c
|
|
/* f0464f8: 92460065 */ lbu $a2,0x65($s2)
|
|
/* f0464fc: 8e5802d4 */ lw $t8,0x2d4($s2)
|
|
/* f046500: 57000041 */ bnezl $t8,.L0f046608
|
|
/* f046504: 8fbf0084 */ lw $ra,0x84($sp)
|
|
/* f046508: 0fc0b819 */ jal func0f02e064
|
|
/* f04650c: 02402025 */ or $a0,$s2,$zero
|
|
/* f046510: 5440003d */ bnezl $v0,.L0f046608
|
|
/* f046514: 8fbf0084 */ lw $ra,0x84($sp)
|
|
/* f046518: 92420065 */ lbu $v0,0x65($s2)
|
|
/* f04651c: 24010002 */ addiu $at,$zero,0x2
|
|
/* f046520: 30590003 */ andi $t9,$v0,0x3
|
|
/* f046524: 17210025 */ bne $t9,$at,.L0f0465bc
|
|
/* f046528: 03201025 */ or $v0,$t9,$zero
|
|
/* f04652c: c64800ac */ lwc1 $f8,0xac($s2)
|
|
/* f046530: 4608d032 */ c.eq.s $f26,$f8
|
|
/* f046534: 00000000 */ nop
|
|
/* f046538: 4503000c */ bc1tl .L0f04656c
|
|
/* f04653c: 8e4d032c */ lw $t5,0x32c($s2)
|
|
/* f046540: 8e49032c */ lw $t1,0x32c($s2)
|
|
/* f046544: 3c053e80 */ lui $a1,0x3e80
|
|
/* f046548: 3c064100 */ lui $a2,0x4100
|
|
/* f04654c: 00095d40 */ sll $t3,$t1,0x15
|
|
/* f046550: 0562002d */ bltzl $t3,.L0f046608
|
|
/* f046554: 8fbf0084 */ lw $ra,0x84($sp)
|
|
/* f046558: 0c0077ac */ jal modelSetAnimSpeed
|
|
/* f04655c: 8e440020 */ lw $a0,0x20($s2)
|
|
/* f046560: 10000029 */ b .L0f046608
|
|
/* f046564: 8fbf0084 */ lw $ra,0x84($sp)
|
|
/* f046568: 8e4d032c */ lw $t5,0x32c($s2)
|
|
.L0f04656c:
|
|
/* f04656c: 000d7540 */ sll $t6,$t5,0x15
|
|
/* f046570: 05c30025 */ bgezl $t6,.L0f046608
|
|
/* f046574: 8fbf0084 */ lw $ra,0x84($sp)
|
|
/* f046578: 8e4f0018 */ lw $t7,0x18($s2)
|
|
/* f04657c: 3c053f00 */ lui $a1,0x3f00
|
|
/* f046580: 3c064200 */ lui $a2,0x4200
|
|
/* f046584: 000fc300 */ sll $t8,$t7,0xc
|
|
/* f046588: 07010008 */ bgez $t8,.L0f0465ac
|
|
/* f04658c: 00000000 */ nop
|
|
/* f046590: 3c053f26 */ lui $a1,0x3f26
|
|
/* f046594: 34a56666 */ ori $a1,$a1,0x6666
|
|
/* f046598: 8e440020 */ lw $a0,0x20($s2)
|
|
/* f04659c: 0c0077ac */ jal modelSetAnimSpeed
|
|
/* f0465a0: 3c064200 */ lui $a2,0x4200
|
|
/* f0465a4: 10000018 */ b .L0f046608
|
|
/* f0465a8: 8fbf0084 */ lw $ra,0x84($sp)
|
|
.L0f0465ac:
|
|
/* f0465ac: 0c0077ac */ jal modelSetAnimSpeed
|
|
/* f0465b0: 8e440020 */ lw $a0,0x20($s2)
|
|
/* f0465b4: 10000014 */ b .L0f046608
|
|
/* f0465b8: 8fbf0084 */ lw $ra,0x84($sp)
|
|
.L0f0465bc:
|
|
/* f0465bc: 56e20012 */ bnel $s7,$v0,.L0f046608
|
|
/* f0465c0: 8fbf0084 */ lw $ra,0x84($sp)
|
|
/* f0465c4: c64a00ac */ lwc1 $f10,0xac($s2)
|
|
/* f0465c8: 3c053f00 */ lui $a1,0x3f00
|
|
/* f0465cc: 460ad032 */ c.eq.s $f26,$f10
|
|
/* f0465d0: 00000000 */ nop
|
|
/* f0465d4: 45030009 */ bc1tl .L0f0465fc
|
|
/* f0465d8: 4406d000 */ mfc1 $a2,$f26
|
|
/* f0465dc: 3c053ecc */ lui $a1,0x3ecc
|
|
/* f0465e0: 4406d000 */ mfc1 $a2,$f26
|
|
/* f0465e4: 34a5cccd */ ori $a1,$a1,0xcccd
|
|
/* f0465e8: 0c0077ac */ jal modelSetAnimSpeed
|
|
/* f0465ec: 8e440020 */ lw $a0,0x20($s2)
|
|
/* f0465f0: 10000005 */ b .L0f046608
|
|
/* f0465f4: 8fbf0084 */ lw $ra,0x84($sp)
|
|
/* f0465f8: 4406d000 */ mfc1 $a2,$f26
|
|
.L0f0465fc:
|
|
/* f0465fc: 0c0077ac */ jal modelSetAnimSpeed
|
|
/* f046600: 8e440020 */ lw $a0,0x20($s2)
|
|
/* f046604: 8fbf0084 */ lw $ra,0x84($sp)
|
|
.L0f046608:
|
|
/* f046608: d7b40030 */ ldc1 $f20,0x30($sp)
|
|
/* f04660c: d7b60038 */ ldc1 $f22,0x38($sp)
|
|
/* f046610: d7b80040 */ ldc1 $f24,0x40($sp)
|
|
/* f046614: d7ba0048 */ ldc1 $f26,0x48($sp)
|
|
/* f046618: d7bc0050 */ ldc1 $f28,0x50($sp)
|
|
/* f04661c: d7be0058 */ ldc1 $f30,0x58($sp)
|
|
/* f046620: 8fb00064 */ lw $s0,0x64($sp)
|
|
/* f046624: 8fb10068 */ lw $s1,0x68($sp)
|
|
/* f046628: 8fb2006c */ lw $s2,0x6c($sp)
|
|
/* f04662c: 8fb30070 */ lw $s3,0x70($sp)
|
|
/* f046630: 8fb40074 */ lw $s4,0x74($sp)
|
|
/* f046634: 8fb50078 */ lw $s5,0x78($sp)
|
|
/* f046638: 8fb6007c */ lw $s6,0x7c($sp)
|
|
/* f04663c: 8fb70080 */ lw $s7,0x80($sp)
|
|
/* f046640: 03e00008 */ jr $ra
|
|
/* f046644: 27bd0110 */ addiu $sp,$sp,0x110
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f046648
|
|
/* f046648: 27bdff60 */ addiu $sp,$sp,-160
|
|
/* f04664c: afb00018 */ sw $s0,0x18($sp)
|
|
/* f046650: 00808025 */ or $s0,$a0,$zero
|
|
/* f046654: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f046658: afa500a4 */ sw $a1,0xa4($sp)
|
|
/* f04665c: afa600a8 */ sw $a2,0xa8($sp)
|
|
/* f046660: afa700ac */ sw $a3,0xac($sp)
|
|
/* f046664: 87a400b2 */ lh $a0,0xb2($sp)
|
|
/* f046668: afa00044 */ sw $zero,0x44($sp)
|
|
/* f04666c: 0fc1c396 */ jal liftFindByPad
|
|
/* f046670: afa0009c */ sw $zero,0x9c($sp)
|
|
/* f046674: 8fa30044 */ lw $v1,0x44($sp)
|
|
/* f046678: 8fa8009c */ lw $t0,0x9c($sp)
|
|
/* f04667c: 14400003 */ bnez $v0,.L0f04668c
|
|
/* f046680: 00402825 */ or $a1,$v0,$zero
|
|
/* f046684: 100000e5 */ b .L0f046a1c
|
|
/* f046688: 00001025 */ or $v0,$zero,$zero
|
|
.L0f04668c:
|
|
/* f04668c: 8ca40004 */ lw $a0,0x4($a1)
|
|
/* f046690: afa8009c */ sw $t0,0x9c($sp)
|
|
/* f046694: afa30044 */ sw $v1,0x44($sp)
|
|
/* f046698: 0fc1c3ab */ jal func0f070eac
|
|
/* f04669c: afa40038 */ sw $a0,0x38($sp)
|
|
/* f0466a0: 8fae00b4 */ lw $t6,0xb4($sp)
|
|
/* f0466a4: 8fa30044 */ lw $v1,0x44($sp)
|
|
/* f0466a8: 8fa8009c */ lw $t0,0x9c($sp)
|
|
/* f0466ac: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f0466b0: 05c0000b */ bltz $t6,.L0f0466e0
|
|
/* f0466b4: 46000086 */ mov.s $f2,$f0
|
|
/* f0466b8: 01c02025 */ or $a0,$t6,$zero
|
|
/* f0466bc: 240500c2 */ addiu $a1,$zero,0xc2
|
|
/* f0466c0: 27a60048 */ addiu $a2,$sp,0x48
|
|
/* f0466c4: afa8009c */ sw $t0,0x9c($sp)
|
|
/* f0466c8: 0fc456ac */ jal padUnpack
|
|
/* f0466cc: e7a2003c */ swc1 $f2,0x3c($sp)
|
|
/* f0466d0: 8fa8009c */ lw $t0,0x9c($sp)
|
|
/* f0466d4: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f0466d8: c7a2003c */ lwc1 $f2,0x3c($sp)
|
|
/* f0466dc: 8fa30094 */ lw $v1,0x94($sp)
|
|
.L0f0466e0:
|
|
/* f0466e0: 8fa200a4 */ lw $v0,0xa4($sp)
|
|
/* f0466e4: 30780800 */ andi $t8,$v1,0x800
|
|
/* f0466e8: 304f0400 */ andi $t7,$v0,0x400
|
|
/* f0466ec: 11e00061 */ beqz $t7,.L0f046874
|
|
/* f0466f0: 304b0800 */ andi $t3,$v0,0x800
|
|
/* f0466f4: 1300005a */ beqz $t8,.L0f046860
|
|
/* f0466f8: 8faa00ac */ lw $t2,0xac($sp)
|
|
/* f0466fc: 8fa400ac */ lw $a0,0xac($sp)
|
|
/* f046700: 3c0a800a */ lui $t2,%hi(g_Vars+0x318)
|
|
/* f046704: 54800005 */ bnezl $a0,.L0f04671c
|
|
/* f046708: 3c014220 */ lui $at,0x4220
|
|
/* f04670c: 9219032c */ lbu $t9,0x32c($s0)
|
|
/* f046710: 24010001 */ addiu $at,$zero,0x1
|
|
/* f046714: 17210028 */ bne $t9,$at,.L0f0467b8
|
|
/* f046718: 3c014220 */ lui $at,0x4220
|
|
.L0f04671c:
|
|
/* f04671c: 44812000 */ mtc1 $at,$f4
|
|
/* f046720: c60000b4 */ lwc1 $f0,0xb4($s0)
|
|
/* f046724: 00004025 */ or $t0,$zero,$zero
|
|
/* f046728: 46040180 */ add.s $f6,$f0,$f4
|
|
/* f04672c: 4606103e */ c.le.s $f2,$f6
|
|
/* f046730: 00000000 */ nop
|
|
/* f046734: 45000002 */ bc1f .L0f046740
|
|
/* f046738: 00000000 */ nop
|
|
/* f04673c: 24080001 */ addiu $t0,$zero,0x1
|
|
.L0f046740:
|
|
/* f046740: 8d4aa2d8 */ lw $t2,%lo(g_Vars+0x318)($t2)
|
|
/* f046744: 1540000b */ bnez $t2,.L0f046774
|
|
/* f046748: 00000000 */ nop
|
|
/* f04674c: 11000009 */ beqz $t0,.L0f046774
|
|
/* f046750: 3c0142c8 */ lui $at,0x42c8
|
|
/* f046754: 44814000 */ mtc1 $at,$f8
|
|
/* f046758: 00004025 */ or $t0,$zero,$zero
|
|
/* f04675c: 46080281 */ sub.s $f10,$f0,$f8
|
|
/* f046760: 4602503c */ c.lt.s $f10,$f2
|
|
/* f046764: 00000000 */ nop
|
|
/* f046768: 45000002 */ bc1f .L0f046774
|
|
/* f04676c: 00000000 */ nop
|
|
/* f046770: 24080001 */ addiu $t0,$zero,0x1
|
|
.L0f046774:
|
|
/* f046774: 11000010 */ beqz $t0,.L0f0467b8
|
|
/* f046778: 00000000 */ nop
|
|
/* f04677c: 812b0085 */ lb $t3,0x85($t1)
|
|
/* f046780: 3c013f00 */ lui $at,0x3f00
|
|
/* f046784: 000b6080 */ sll $t4,$t3,0x2
|
|
/* f046788: 012c6821 */ addu $t5,$t1,$t4
|
|
/* f04678c: 8da20064 */ lw $v0,0x64($t5)
|
|
/* f046790: 10400009 */ beqz $v0,.L0f0467b8
|
|
/* f046794: 00000000 */ nop
|
|
/* f046798: c450007c */ lwc1 $f16,0x7c($v0)
|
|
/* f04679c: 44819000 */ mtc1 $at,$f18
|
|
/* f0467a0: 00000000 */ nop
|
|
/* f0467a4: 4612803c */ c.lt.s $f16,$f18
|
|
/* f0467a8: 00000000 */ nop
|
|
/* f0467ac: 45000002 */ bc1f .L0f0467b8
|
|
/* f0467b0: 00000000 */ nop
|
|
/* f0467b4: 00004025 */ or $t0,$zero,$zero
|
|
.L0f0467b8:
|
|
/* f0467b8: 55000016 */ bnezl $t0,.L0f046814
|
|
/* f0467bc: a200032c */ sb $zero,0x32c($s0)
|
|
/* f0467c0: 50800096 */ beqzl $a0,.L0f046a1c
|
|
/* f0467c4: 01001025 */ or $v0,$t0,$zero
|
|
/* f0467c8: 920e032c */ lbu $t6,0x32c($s0)
|
|
/* f0467cc: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0467d0: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f0467d4: 11c10090 */ beq $t6,$at,.L0f046a18
|
|
/* f0467d8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0467dc: a20f032c */ sb $t7,0x32c($s0)
|
|
/* f0467e0: afa8009c */ sw $t0,0x9c($sp)
|
|
/* f0467e4: 0fc0b9b7 */ jal chrStandChooseAnimation
|
|
/* f0467e8: 3c054180 */ lui $a1,0x4180
|
|
/* f0467ec: 8fb800b4 */ lw $t8,0xb4($sp)
|
|
/* f0467f0: 8fa8009c */ lw $t0,0x9c($sp)
|
|
/* f0467f4: 02002025 */ or $a0,$s0,$zero
|
|
/* f0467f8: 07000087 */ bltz $t8,.L0f046a18
|
|
/* f0467fc: 27a50048 */ addiu $a1,$sp,0x48
|
|
/* f046800: 0fc1169c */ jal func0f045a70
|
|
/* f046804: afa8009c */ sw $t0,0x9c($sp)
|
|
/* f046808: 10000083 */ b .L0f046a18
|
|
/* f04680c: 8fa8009c */ lw $t0,0x9c($sp)
|
|
/* f046810: a200032c */ sb $zero,0x32c($s0)
|
|
.L0f046814:
|
|
/* f046814: afa8009c */ sw $t0,0x9c($sp)
|
|
/* f046818: 0fc0b819 */ jal func0f02e064
|
|
/* f04681c: 02002025 */ or $a0,$s0,$zero
|
|
/* f046820: 1040007d */ beqz $v0,.L0f046a18
|
|
/* f046824: 8fa8009c */ lw $t0,0x9c($sp)
|
|
/* f046828: 82190007 */ lb $t9,0x7($s0)
|
|
/* f04682c: 2401000e */ addiu $at,$zero,0xe
|
|
/* f046830: 02002025 */ or $a0,$s0,$zero
|
|
/* f046834: 17210006 */ bne $t9,$at,.L0f046850
|
|
/* f046838: 00000000 */ nop
|
|
/* f04683c: 02002025 */ or $a0,$s0,$zero
|
|
/* f046840: 0fc0e21a */ jal func0f038868
|
|
/* f046844: afa8009c */ sw $t0,0x9c($sp)
|
|
/* f046848: 10000073 */ b .L0f046a18
|
|
/* f04684c: 8fa8009c */ lw $t0,0x9c($sp)
|
|
.L0f046850:
|
|
/* f046850: 0fc0dedc */ jal chrGoPosChooseAnimation
|
|
/* f046854: afa8009c */ sw $t0,0x9c($sp)
|
|
/* f046858: 1000006f */ b .L0f046a18
|
|
/* f04685c: 8fa8009c */ lw $t0,0x9c($sp)
|
|
.L0f046860:
|
|
/* f046860: 5140006e */ beqzl $t2,.L0f046a1c
|
|
/* f046864: 01001025 */ or $v0,$t0,$zero
|
|
/* f046868: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f04686c: 1000006a */ b .L0f046a18
|
|
/* f046870: a200032c */ sb $zero,0x32c($s0)
|
|
.L0f046874:
|
|
/* f046874: 11600068 */ beqz $t3,.L0f046a18
|
|
/* f046878: 306c0400 */ andi $t4,$v1,0x400
|
|
/* f04687c: 11800060 */ beqz $t4,.L0f046a00
|
|
/* f046880: 8fad00a8 */ lw $t5,0xa8($sp)
|
|
/* f046884: 15a00004 */ bnez $t5,.L0f046898
|
|
/* f046888: 27a5002c */ addiu $a1,$sp,0x2c
|
|
/* f04688c: 920e032c */ lbu $t6,0x32c($s0)
|
|
/* f046890: 24010003 */ addiu $at,$zero,0x3
|
|
/* f046894: 15c10036 */ bne $t6,$at,.L0f046970
|
|
.L0f046898:
|
|
/* f046898: 3c0f8007 */ lui $t7,%hi(var8006843c)
|
|
/* f04689c: 25ef843c */ addiu $t7,$t7,%lo(var8006843c)
|
|
/* f0468a0: 8de10000 */ lw $at,0x0($t7)
|
|
/* f0468a4: 27a40048 */ addiu $a0,$sp,0x48
|
|
/* f0468a8: 00003025 */ or $a2,$zero,$zero
|
|
/* f0468ac: aca10000 */ sw $at,0x0($a1)
|
|
/* f0468b0: 8faa0090 */ lw $t2,0x90($sp)
|
|
/* f0468b4: e7a2003c */ swc1 $f2,0x3c($sp)
|
|
/* f0468b8: 00003825 */ or $a3,$zero,$zero
|
|
/* f0468bc: 0c00a8db */ jal func0002a36c
|
|
/* f0468c0: a7aa002c */ sh $t2,0x2c($sp)
|
|
/* f0468c4: 3c0141f0 */ lui $at,0x41f0
|
|
/* f0468c8: 44812000 */ mtc1 $at,$f4
|
|
/* f0468cc: c7a2003c */ lwc1 $f2,0x3c($sp)
|
|
/* f0468d0: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f0468d4: 46040181 */ sub.s $f6,$f0,$f4
|
|
/* f0468d8: 00001025 */ or $v0,$zero,$zero
|
|
/* f0468dc: 3c0b800a */ lui $t3,%hi(g_Vars+0x318)
|
|
/* f0468e0: 4602303e */ c.le.s $f6,$f2
|
|
/* f0468e4: 00000000 */ nop
|
|
/* f0468e8: 45000002 */ bc1f .L0f0468f4
|
|
/* f0468ec: 00000000 */ nop
|
|
/* f0468f0: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0468f4:
|
|
/* f0468f4: 8d6ba2d8 */ lw $t3,%lo(g_Vars+0x318)($t3)
|
|
/* f0468f8: 00404025 */ or $t0,$v0,$zero
|
|
/* f0468fc: 1560000b */ bnez $t3,.L0f04692c
|
|
/* f046900: 00000000 */ nop
|
|
/* f046904: 10400009 */ beqz $v0,.L0f04692c
|
|
/* f046908: 3c0142c8 */ lui $at,0x42c8
|
|
/* f04690c: 44814000 */ mtc1 $at,$f8
|
|
/* f046910: 00004025 */ or $t0,$zero,$zero
|
|
/* f046914: 46080280 */ add.s $f10,$f0,$f8
|
|
/* f046918: 460a103c */ c.lt.s $f2,$f10
|
|
/* f04691c: 00000000 */ nop
|
|
/* f046920: 45000002 */ bc1f .L0f04692c
|
|
/* f046924: 00000000 */ nop
|
|
/* f046928: 24080001 */ addiu $t0,$zero,0x1
|
|
.L0f04692c:
|
|
/* f04692c: 11000010 */ beqz $t0,.L0f046970
|
|
/* f046930: 00000000 */ nop
|
|
/* f046934: 812c0085 */ lb $t4,0x85($t1)
|
|
/* f046938: 3c013f00 */ lui $at,0x3f00
|
|
/* f04693c: 000c6880 */ sll $t5,$t4,0x2
|
|
/* f046940: 012d7021 */ addu $t6,$t1,$t5
|
|
/* f046944: 8dc20064 */ lw $v0,0x64($t6)
|
|
/* f046948: 10400009 */ beqz $v0,.L0f046970
|
|
/* f04694c: 00000000 */ nop
|
|
/* f046950: c450007c */ lwc1 $f16,0x7c($v0)
|
|
/* f046954: 44819000 */ mtc1 $at,$f18
|
|
/* f046958: 00000000 */ nop
|
|
/* f04695c: 4612803c */ c.lt.s $f16,$f18
|
|
/* f046960: 00000000 */ nop
|
|
/* f046964: 45000002 */ bc1f .L0f046970
|
|
/* f046968: 00000000 */ nop
|
|
/* f04696c: 00004025 */ or $t0,$zero,$zero
|
|
.L0f046970:
|
|
/* f046970: 1500000f */ bnez $t0,.L0f0469b0
|
|
/* f046974: 240a0002 */ addiu $t2,$zero,0x2
|
|
/* f046978: 8fb800a8 */ lw $t8,0xa8($sp)
|
|
/* f04697c: 53000027 */ beqzl $t8,.L0f046a1c
|
|
/* f046980: 01001025 */ or $v0,$t0,$zero
|
|
/* f046984: 920f032c */ lbu $t7,0x32c($s0)
|
|
/* f046988: 24010003 */ addiu $at,$zero,0x3
|
|
/* f04698c: 24190003 */ addiu $t9,$zero,0x3
|
|
/* f046990: 11e10021 */ beq $t7,$at,.L0f046a18
|
|
/* f046994: 02002025 */ or $a0,$s0,$zero
|
|
/* f046998: a219032c */ sb $t9,0x32c($s0)
|
|
/* f04699c: afa8009c */ sw $t0,0x9c($sp)
|
|
/* f0469a0: 0fc0b9b7 */ jal chrStandChooseAnimation
|
|
/* f0469a4: 3c054180 */ lui $a1,0x4180
|
|
/* f0469a8: 1000001b */ b .L0f046a18
|
|
/* f0469ac: 8fa8009c */ lw $t0,0x9c($sp)
|
|
.L0f0469b0:
|
|
/* f0469b0: a20a032c */ sb $t2,0x32c($s0)
|
|
/* f0469b4: afa8009c */ sw $t0,0x9c($sp)
|
|
/* f0469b8: 0fc0b819 */ jal func0f02e064
|
|
/* f0469bc: 02002025 */ or $a0,$s0,$zero
|
|
/* f0469c0: 10400015 */ beqz $v0,.L0f046a18
|
|
/* f0469c4: 8fa8009c */ lw $t0,0x9c($sp)
|
|
/* f0469c8: 820b0007 */ lb $t3,0x7($s0)
|
|
/* f0469cc: 2401000e */ addiu $at,$zero,0xe
|
|
/* f0469d0: 02002025 */ or $a0,$s0,$zero
|
|
/* f0469d4: 15610006 */ bne $t3,$at,.L0f0469f0
|
|
/* f0469d8: 00000000 */ nop
|
|
/* f0469dc: 02002025 */ or $a0,$s0,$zero
|
|
/* f0469e0: 0fc0e21a */ jal func0f038868
|
|
/* f0469e4: afa8009c */ sw $t0,0x9c($sp)
|
|
/* f0469e8: 1000000b */ b .L0f046a18
|
|
/* f0469ec: 8fa8009c */ lw $t0,0x9c($sp)
|
|
.L0f0469f0:
|
|
/* f0469f0: 0fc0dedc */ jal chrGoPosChooseAnimation
|
|
/* f0469f4: afa8009c */ sw $t0,0x9c($sp)
|
|
/* f0469f8: 10000007 */ b .L0f046a18
|
|
/* f0469fc: 8fa8009c */ lw $t0,0x9c($sp)
|
|
.L0f046a00:
|
|
/* f046a00: 8fac00a8 */ lw $t4,0xa8($sp)
|
|
/* f046a04: 240d0002 */ addiu $t5,$zero,0x2
|
|
/* f046a08: 51800004 */ beqzl $t4,.L0f046a1c
|
|
/* f046a0c: 01001025 */ or $v0,$t0,$zero
|
|
/* f046a10: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f046a14: a20d032c */ sb $t5,0x32c($s0)
|
|
.L0f046a18:
|
|
/* f046a18: 01001025 */ or $v0,$t0,$zero
|
|
.L0f046a1c:
|
|
/* f046a1c: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f046a20: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f046a24: 27bd00a0 */ addiu $sp,$sp,0xa0
|
|
/* f046a28: 03e00008 */ jr $ra
|
|
/* f046a2c: 00000000 */ nop
|
|
);
|
|
|
|
s32 chrIsUsingLift(struct chrdata *chr)
|
|
{
|
|
return (chr->actiontype == ACT_GOPOS || chr->actiontype == ACT_PATROL) && chr->liftaction > 0;
|
|
}
|
|
|
|
s16 chrGoPosGetNextPadNum(struct chrdata *chr)
|
|
{
|
|
if (chr->act_gopos.waypoints[chr->act_gopos.curindex + 1]) {
|
|
return chr->act_gopos.waypoints[chr->act_gopos.curindex + 1]->padnum;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
void chrTickGoPos(struct chrdata *chr)
|
|
{
|
|
struct waypoint *waypoint;
|
|
struct coord pos;
|
|
s16 rooms[8];
|
|
struct prop *prop = chr->prop;
|
|
bool enteringcheap = false;
|
|
struct pad pad;
|
|
bool sp240 = true;
|
|
struct coord curwppos;
|
|
s16 curwprooms[8];
|
|
u32 curwpflags;
|
|
|
|
chr->act_gopos.flags &= ~(GOPOSFLAG_DUCK | GOPOSFLAG_80);
|
|
|
|
if (chr->hidden & CHRHFLAG_NEEDANIM) {
|
|
if (modelIsAnimMerging(chr->model)) {
|
|
return;
|
|
}
|
|
|
|
chrGoPosChooseAnimation(chr);
|
|
|
|
chr->hidden &= ~CHRHFLAG_NEEDANIM;
|
|
}
|
|
|
|
chr->act_gopos.waydata.age++;
|
|
|
|
// If stuck for 1 second
|
|
if (chr->lastmoveok60 < g_Vars.lvframe60 - 60) {
|
|
if (chr->goposforce >= 0) {
|
|
// Try and warp the chr past whatever obstacle is blocking them?
|
|
struct coord sp196 = {0, 0, 0};
|
|
|
|
chrPoison(chr, 1, &sp196, NULL, NULL);
|
|
|
|
chr->lastmoveok60 = g_Vars.lvframe60;
|
|
return;
|
|
}
|
|
|
|
// Goposforce was not set - restart the action to try and find a new route
|
|
chrGoToPos(chr, &chr->act_gopos.pos, chr->act_gopos.rooms, chr->act_gopos.flags);
|
|
}
|
|
|
|
chrGoPosConsiderRestart(chr);
|
|
chrGoPosGetCurWaypointInfoWithFlags(chr, &curwppos, curwprooms, &curwpflags);
|
|
|
|
// If cheap mode ended over 3 seconds ago, not multiplayer, not in view of
|
|
// eyespy, pad is nothing special and not in lift, then enter the cheap move
|
|
// mode.
|
|
if (chr->act_gopos.waydata.mode != WAYMODE_CHEAP
|
|
&& chr->act_gopos.cheapend60 + 180 < g_Vars.lvframe60
|
|
&& g_Vars.normmplayerisrunning == false
|
|
&& func0f036c08(chr, &curwppos, curwprooms) // related to eyespy
|
|
&& (curwpflags & (PADFLAG_AIWAITLIFT | PADFLAG_AIONLIFT)) == 0
|
|
&& chr->inlift == false) {
|
|
enteringcheap = true;
|
|
chrGoPosInitCheap(chr, &chr->act_gopos.waydata, &curwppos, &prop->pos);
|
|
}
|
|
|
|
if (var80062cbc >= 9
|
|
&& (chr->hidden & CHRHFLAG_00400000)
|
|
&& (chr->flags & CHRFLAG0_CAN_GO_TO_PLACES) == 0) {
|
|
chrStop(chr);
|
|
return;
|
|
}
|
|
|
|
// If goposforce is set then decrease it on each tick. If it's reached -1
|
|
// then stop the chr. I guess goposforce is not only used to warp past
|
|
// obstacles, but is also used as a run countdown timer.
|
|
if (chr->goposforce >= 0) {
|
|
chr->goposforce -= g_Vars.lvupdate240_60;
|
|
|
|
if (chr->goposforce < 0) {
|
|
chrStop(chr);
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (chr->act_gopos.waydata.mode == WAYMODE_CHEAP) {
|
|
// Check if chr needs to exit cheap mode
|
|
if ((!enteringcheap && ((prop->flags & (PROPFLAG_80 | PROPFLAG_40 | PROPFLAG_02)) || !func0f036c08(chr, &curwppos, curwprooms)))
|
|
|| (curwpflags & (PADFLAG_AIWAITLIFT | PADFLAG_AIONLIFT))
|
|
|| chr->inlift) {
|
|
// Exiting cheap mode
|
|
chrGoPosInitExpensive(chr);
|
|
chr->act_gopos.cheapend60 = g_Vars.lvframe60;
|
|
return;
|
|
}
|
|
|
|
// Tick the cheap mode
|
|
func0f0375e8(chr, &chr->act_gopos.waydata, func0f0370a8(chr), &curwppos, curwprooms);
|
|
return;
|
|
}
|
|
|
|
{
|
|
bool advance = false;
|
|
bool sp188;
|
|
bool sp184;
|
|
f32 sp180;
|
|
f32 sp176;
|
|
f32 sp172;
|
|
f32 sp168;
|
|
bool candosomething;
|
|
f32 sp160;
|
|
f32 sp156;
|
|
struct waypoint *next;
|
|
struct pad pad2;
|
|
|
|
waypoint = chr->act_gopos.waypoints[chr->act_gopos.curindex];
|
|
|
|
if (waypoint) {
|
|
padUnpack(waypoint->padnum, PADFIELD_FLAGS | PADFIELD_POS, &pad);
|
|
|
|
// Both of these functions are calculating something with the coords
|
|
// and are returning a boolean. There are no write operations.
|
|
sp188 = func0f044808(&chr->prevpos, &prop->pos, &pad.pos, 30);
|
|
sp184 = func0f0446e0(&chr->prevpos, &prop->pos, &pad.pos, 30);
|
|
|
|
if (pad.flags & PADFLAG_AIDUCK) {
|
|
chr->act_gopos.flags |= GOPOSFLAG_DUCK;
|
|
} else if (pad.flags & PADFLAG_10000) {
|
|
chr->act_gopos.flags |= GOPOSFLAG_80;
|
|
}
|
|
|
|
if ((pad.flags & PADFLAG_AIWAITLIFT) || (pad.flags & PADFLAG_AIONLIFT)) {
|
|
advance = func0f046648(chr, pad.flags, sp184, sp188, waypoint->padnum, chrGoPosGetNextPadNum(chr));
|
|
} else {
|
|
if (sp188 || (sp184 && (chr->inlift || (pad.flags & PADFLAG_8000)))) {
|
|
advance = true;
|
|
}
|
|
}
|
|
} else {
|
|
// No more waypoints - chr is finished
|
|
if (func0f044808(&chr->prevpos, &prop->pos, &chr->act_gopos.pos, 30) ||
|
|
(chr->inlift && func0f0446e0(&chr->prevpos, &prop->pos, &chr->act_gopos.pos, 30))) {
|
|
if (chr->act_gopos.flags & GOPOSFLAG_ONPRESETPATH) {
|
|
chrStartPath(chr);
|
|
return;
|
|
}
|
|
|
|
chrStop(chr);
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (advance) {
|
|
chrGoPosAdvanceWaypoint(chr);
|
|
}
|
|
|
|
// Every 10 ticks: Check something a couple of waypoints ahead
|
|
// This might be checking if the chr has line of sight to that pad and can
|
|
// walk straight to it.
|
|
if (chr->act_gopos.waydata.age % 10 == 5 || (chr->act_gopos.flags & GOPOSFLAG_INIT)) {
|
|
// Load waypoint that the chr is running to
|
|
waypoint = chr->act_gopos.waypoints[chr->act_gopos.curindex];
|
|
|
|
if (waypoint) {
|
|
padUnpack(waypoint->padnum, PADFIELD_FLAGS, &pad);
|
|
|
|
if ((pad.flags & PADFLAG_AIWALKDIRECT) == 0) {
|
|
// The waypoint the chr is running to doesn't have
|
|
// PADFLAG_AIWALKDIRECT, so the chr is able to ignore it and run
|
|
// towards the next one if it's in sight.
|
|
|
|
// Load the next waypoint after the one the chr is running to
|
|
waypoint = chr->act_gopos.waypoints[chr->act_gopos.curindex + 1];
|
|
|
|
if (waypoint) {
|
|
padUnpack(waypoint->padnum, PADFIELD_FLAGS, &pad);
|
|
|
|
if ((pad.flags & PADFLAG_AIWALKDIRECT) == 0) {
|
|
// And this one doesn't have PADFLAG_AIWALKDIRECT either,
|
|
// so the chr can consider skipping this one too.
|
|
waypoint = chr->act_gopos.waypoints[chr->act_gopos.curindex + 2];
|
|
|
|
if (waypoint) {
|
|
padUnpack(waypoint->padnum, PADFIELD_ROOM | PADFIELD_POS, &pad);
|
|
|
|
pos.x = pad.pos.x;
|
|
pos.y = pad.pos.y;
|
|
pos.z = pad.pos.z;
|
|
|
|
rooms[0] = pad.room;
|
|
rooms[1] = -1;
|
|
} else {
|
|
pos.x = chr->act_gopos.pos.x;
|
|
pos.y = chr->act_gopos.pos.y;
|
|
pos.z = chr->act_gopos.pos.z;
|
|
|
|
roomsCopy(chr->act_gopos.rooms, rooms);
|
|
}
|
|
|
|
// Some bbox related check
|
|
if (func0f03654c(chr, &prop->pos, prop->rooms, &pos, rooms, NULL, chr->chrwidth * 1.2f, CDTYPE_10 | CDTYPE_BG)) {
|
|
chrGoPosAdvanceWaypoint(chr);
|
|
chrGoPosAdvanceWaypoint(chr);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (chr->act_gopos.waydata.age % 10 == 0 || (chr->act_gopos.flags & GOPOSFLAG_INIT)) {
|
|
waypoint = chr->act_gopos.waypoints[chr->act_gopos.curindex];
|
|
|
|
if (waypoint) {
|
|
candosomething = (chr->act_gopos.flags & GOPOSFLAG_INIT) != 0;
|
|
padUnpack(waypoint->padnum, PADFIELD_FLAGS | PADFIELD_POS, &pad);
|
|
|
|
next = chr->act_gopos.waypoints[chr->act_gopos.curindex + 1];
|
|
|
|
if (next) {
|
|
padUnpack(next->padnum, PADFIELD_ROOM | PADFIELD_POS, &pad2);
|
|
|
|
if ((pad.flags & (PADFLAG_AIWAITLIFT | PADFLAG_AIONLIFT))
|
|
&& (pad2.flags & (PADFLAG_AIWAITLIFT | PADFLAG_AIONLIFT))) {
|
|
candosomething = false;
|
|
}
|
|
}
|
|
|
|
if ((pad.flags & PADFLAG_AIWALKDIRECT) == 0 || candosomething) {
|
|
if (next) {
|
|
pos.x = pad2.pos.x;
|
|
pos.y = pad2.pos.y;
|
|
pos.z = pad2.pos.z;
|
|
|
|
rooms[0] = pad2.room;
|
|
rooms[1] = -1;
|
|
} else {
|
|
pos.x = chr->act_gopos.pos.x;
|
|
pos.y = chr->act_gopos.pos.y;
|
|
pos.z = chr->act_gopos.pos.z;
|
|
|
|
roomsCopy(chr->act_gopos.rooms, rooms);
|
|
}
|
|
|
|
// I suspect this is making the chr turn to face the next pad
|
|
if ((pad.flags & PADFLAG_AIWALKDIRECT) && candosomething) {
|
|
if (true) {
|
|
sp180 = prop->pos.x - pad.pos.x;
|
|
sp176 = prop->pos.z - pad.pos.z;
|
|
sp172 = pos.x - pad.pos.x;
|
|
sp168 = pos.z - pad.pos.z;
|
|
}
|
|
|
|
sp156 = sqrtf((sp180 * sp180 + sp176 * sp176) * (sp172 * sp172 + sp168 * sp168));
|
|
|
|
if (sp156 > 0) {
|
|
sp160 = func0f0969d0((sp180 * sp172 + sp176 * sp168) / sp156);
|
|
|
|
// sp160 < DEG2RAD(45) || sp160 > DEG2RAD(315)
|
|
if (sp160 < 0.7852731347084f || sp160 > 5.4969120025635f) {
|
|
if (func0f03654c(chr, &prop->pos, prop->rooms, &pos, rooms, NULL, chr->chrwidth * 1.2f, CDTYPE_10 | CDTYPE_BG)) {
|
|
chrGoPosAdvanceWaypoint(chr);
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if (func0f03654c(chr, &prop->pos, prop->rooms, &pos, rooms, NULL, chr->chrwidth * 1.2f, CDTYPE_10 | CDTYPE_BG)) {
|
|
chrGoPosAdvanceWaypoint(chr);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
chr->act_gopos.flags &= ~GOPOSFLAG_INIT;
|
|
}
|
|
|
|
waypoint = chr->act_gopos.waypoints[chr->act_gopos.curindex];
|
|
|
|
if (waypoint) {
|
|
padUnpack(waypoint->padnum, PADFIELD_POS, &pad);
|
|
|
|
pos.x = pad.pos.x;
|
|
pos.y = pad.pos.y;
|
|
pos.z = pad.pos.z;
|
|
} else {
|
|
pos.x = chr->act_gopos.pos.x;
|
|
pos.y = chr->act_gopos.pos.y;
|
|
pos.z = chr->act_gopos.pos.z;
|
|
|
|
if (chr->aibot && chr->myaction == MA_AIBOTGETITEM) {
|
|
sp240 = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
func0f045b9c(chr, &pos, &chr->act_gopos.waydata, sp240);
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrTickPatrol
|
|
/* f0473cc: 27bdff90 */ addiu $sp,$sp,-112
|
|
/* f0473d0: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f0473d4: afb00020 */ sw $s0,0x20($sp)
|
|
/* f0473d8: 8c8e001c */ lw $t6,0x1c($a0)
|
|
/* f0473dc: afa00064 */ sw $zero,0x64($sp)
|
|
/* f0473e0: afa00068 */ sw $zero,0x68($sp)
|
|
/* f0473e4: afae006c */ sw $t6,0x6c($sp)
|
|
/* f0473e8: 8c8f0014 */ lw $t7,0x14($a0)
|
|
/* f0473ec: 00808025 */ or $s0,$a0,$zero
|
|
/* f0473f0: 000fc280 */ sll $t8,$t7,0xa
|
|
/* f0473f4: 0703000d */ bgezl $t8,.L0f04742c
|
|
/* f0473f8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0473fc: 0c0076e5 */ jal modelIsAnimMerging
|
|
/* f047400: 8c840020 */ lw $a0,0x20($a0)
|
|
/* f047404: 54400099 */ bnezl $v0,.L0f04766c
|
|
/* f047408: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f04740c: 0fc0e21a */ jal func0f038868
|
|
/* f047410: 02002025 */ or $a0,$s0,$zero
|
|
/* f047414: 8e190014 */ lw $t9,0x14($s0)
|
|
/* f047418: 3c01ffdf */ lui $at,0xffdf
|
|
/* f04741c: 3421ffff */ ori $at,$at,0xffff
|
|
/* f047420: 03214024 */ and $t0,$t9,$at
|
|
/* f047424: ae080014 */ sw $t0,0x14($s0)
|
|
/* f047428: 02002025 */ or $a0,$s0,$zero
|
|
.L0f04742c:
|
|
/* f04742c: 27a50058 */ addiu $a1,$sp,0x58
|
|
/* f047430: 27a60048 */ addiu $a2,$sp,0x48
|
|
/* f047434: 0fc0dd39 */ jal chrPatrolGetCurWaypointInfoWithFlags
|
|
/* f047438: 27a70064 */ addiu $a3,$sp,0x64
|
|
/* f04743c: 8e090060 */ lw $t1,0x60($s0)
|
|
/* f047440: 820b0038 */ lb $t3,0x38($s0)
|
|
/* f047444: 24010006 */ addiu $at,$zero,0x6
|
|
/* f047448: 252a0001 */ addiu $t2,$t1,0x1
|
|
/* f04744c: 1161001f */ beq $t3,$at,.L0f0474cc
|
|
/* f047450: ae0a0060 */ sw $t2,0x60($s0)
|
|
/* f047454: 8e0d0078 */ lw $t5,0x78($s0)
|
|
/* f047458: 3c0c800a */ lui $t4,%hi(g_Vars+0x8)
|
|
/* f04745c: 8d8c9fc8 */ lw $t4,%lo(g_Vars+0x8)($t4)
|
|
/* f047460: 25ae00b4 */ addiu $t6,$t5,0xb4
|
|
/* f047464: 3c0f800a */ lui $t7,%hi(g_Vars+0x318)
|
|
/* f047468: 01cc082a */ slt $at,$t6,$t4
|
|
/* f04746c: 50200018 */ beqzl $at,.L0f0474d0
|
|
/* f047470: 820b0038 */ lb $t3,0x38($s0)
|
|
/* f047474: 8defa2d8 */ lw $t7,%lo(g_Vars+0x318)($t7)
|
|
/* f047478: 02002025 */ or $a0,$s0,$zero
|
|
/* f04747c: 27a50058 */ addiu $a1,$sp,0x58
|
|
/* f047480: 55e00013 */ bnezl $t7,.L0f0474d0
|
|
/* f047484: 820b0038 */ lb $t3,0x38($s0)
|
|
/* f047488: 0fc0db02 */ jal func0f036c08
|
|
/* f04748c: 27a60048 */ addiu $a2,$sp,0x48
|
|
/* f047490: 1040000e */ beqz $v0,.L0f0474cc
|
|
/* f047494: 8fb80064 */ lw $t8,0x64($sp)
|
|
/* f047498: 33190c00 */ andi $t9,$t8,0xc00
|
|
/* f04749c: 5720000c */ bnezl $t9,.L0f0474d0
|
|
/* f0474a0: 820b0038 */ lb $t3,0x38($s0)
|
|
/* f0474a4: 8209032d */ lb $t1,0x32d($s0)
|
|
/* f0474a8: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f0474ac: 02002025 */ or $a0,$s0,$zero
|
|
/* f0474b0: 05200006 */ bltz $t1,.L0f0474cc
|
|
/* f0474b4: 26050038 */ addiu $a1,$s0,0x38
|
|
/* f0474b8: 8fa7006c */ lw $a3,0x6c($sp)
|
|
/* f0474bc: afaa0068 */ sw $t2,0x68($sp)
|
|
/* f0474c0: 27a60058 */ addiu $a2,$sp,0x58
|
|
/* f0474c4: 0fc0dbb9 */ jal chrGoPosInitCheap
|
|
/* f0474c8: 24e70008 */ addiu $a3,$a3,0x8
|
|
.L0f0474cc:
|
|
/* f0474cc: 820b0038 */ lb $t3,0x38($s0)
|
|
.L0f0474d0:
|
|
/* f0474d0: 24010006 */ addiu $at,$zero,0x6
|
|
/* f0474d4: 260400c8 */ addiu $a0,$s0,0xc8
|
|
/* f0474d8: 1561002b */ bne $t3,$at,.L0f047588
|
|
/* f0474dc: 8fa5006c */ lw $a1,0x6c($sp)
|
|
/* f0474e0: 8fad0068 */ lw $t5,0x68($sp)
|
|
/* f0474e4: 8fac006c */ lw $t4,0x6c($sp)
|
|
/* f0474e8: 55a0000c */ bnezl $t5,.L0f04751c
|
|
/* f0474ec: 8fb80064 */ lw $t8,0x64($sp)
|
|
/* f0474f0: 918e0001 */ lbu $t6,0x1($t4)
|
|
/* f0474f4: 02002025 */ or $a0,$s0,$zero
|
|
/* f0474f8: 27a50058 */ addiu $a1,$sp,0x58
|
|
/* f0474fc: 31cf00c2 */ andi $t7,$t6,0xc2
|
|
/* f047500: 15e0000d */ bnez $t7,.L0f047538
|
|
/* f047504: 00000000 */ nop
|
|
/* f047508: 0fc0db02 */ jal func0f036c08
|
|
/* f04750c: 27a60048 */ addiu $a2,$sp,0x48
|
|
/* f047510: 10400009 */ beqz $v0,.L0f047538
|
|
/* f047514: 00000000 */ nop
|
|
/* f047518: 8fb80064 */ lw $t8,0x64($sp)
|
|
.L0f04751c:
|
|
/* f04751c: 33190c00 */ andi $t9,$t8,0xc00
|
|
/* f047520: 17200005 */ bnez $t9,.L0f047538
|
|
/* f047524: 00000000 */ nop
|
|
/* f047528: 8209032d */ lb $t1,0x32d($s0)
|
|
/* f04752c: 02002025 */ or $a0,$s0,$zero
|
|
/* f047530: 260b0038 */ addiu $t3,$s0,0x38
|
|
/* f047534: 05210007 */ bgez $t1,.L0f047554
|
|
.L0f047538:
|
|
/* f047538: 3c0a800a */ lui $t2,%hi(g_Vars+0x8)
|
|
/* f04753c: 8d4a9fc8 */ lw $t2,%lo(g_Vars+0x8)($t2)
|
|
/* f047540: 02002025 */ or $a0,$s0,$zero
|
|
/* f047544: 0fc0dd60 */ jal func0f037580
|
|
/* f047548: ae0a0078 */ sw $t2,0x78($s0)
|
|
/* f04754c: 1000000a */ b .L0f047578
|
|
/* f047550: 00000000 */ nop
|
|
.L0f047554:
|
|
/* f047554: 0fc0dc2a */ jal func0f0370a8
|
|
/* f047558: afab0030 */ sw $t3,0x30($sp)
|
|
/* f04755c: 44060000 */ mfc1 $a2,$f0
|
|
/* f047560: 27ad0048 */ addiu $t5,$sp,0x48
|
|
/* f047564: afad0010 */ sw $t5,0x10($sp)
|
|
/* f047568: 02002025 */ or $a0,$s0,$zero
|
|
/* f04756c: 8fa50030 */ lw $a1,0x30($sp)
|
|
/* f047570: 0fc0dd7a */ jal func0f0375e8
|
|
/* f047574: 27a70058 */ addiu $a3,$sp,0x58
|
|
.L0f047578:
|
|
/* f047578: 0fc01948 */ jal func0f006520
|
|
/* f04757c: 02002025 */ or $a0,$s0,$zero
|
|
/* f047580: 1000003a */ b .L0f04766c
|
|
/* f047584: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f047588:
|
|
/* f047588: 24a50008 */ addiu $a1,$a1,0x8
|
|
/* f04758c: 260c0038 */ addiu $t4,$s0,0x38
|
|
/* f047590: afac0030 */ sw $t4,0x30($sp)
|
|
/* f047594: afa5002c */ sw $a1,0x2c($sp)
|
|
/* f047598: 27a60058 */ addiu $a2,$sp,0x58
|
|
/* f04759c: 3c0741f0 */ lui $a3,0x41f0
|
|
/* f0475a0: 0fc111b8 */ jal func0f0446e0
|
|
/* f0475a4: afa40028 */ sw $a0,0x28($sp)
|
|
/* f0475a8: 8fa40028 */ lw $a0,0x28($sp)
|
|
/* f0475ac: 8fa5002c */ lw $a1,0x2c($sp)
|
|
/* f0475b0: afa20044 */ sw $v0,0x44($sp)
|
|
/* f0475b4: 27a60058 */ addiu $a2,$sp,0x58
|
|
/* f0475b8: 0fc11202 */ jal func0f044808
|
|
/* f0475bc: 3c0741f0 */ lui $a3,0x41f0
|
|
/* f0475c0: 8fae0064 */ lw $t6,0x64($sp)
|
|
/* f0475c4: afa20040 */ sw $v0,0x40($sp)
|
|
/* f0475c8: 00001825 */ or $v1,$zero,$zero
|
|
/* f0475cc: 31cf0400 */ andi $t7,$t6,0x400
|
|
/* f0475d0: 15e00002 */ bnez $t7,.L0f0475dc
|
|
/* f0475d4: 31d80800 */ andi $t8,$t6,0x800
|
|
/* f0475d8: 13000011 */ beqz $t8,.L0f047620
|
|
.L0f0475dc:
|
|
/* f0475dc: 02002025 */ or $a0,$s0,$zero
|
|
/* f0475e0: 0fc0dd28 */ jal chrPatrolCalculatePadNum
|
|
/* f0475e4: 00002825 */ or $a1,$zero,$zero
|
|
/* f0475e8: a7a20034 */ sh $v0,0x34($sp)
|
|
/* f0475ec: 02002025 */ or $a0,$s0,$zero
|
|
/* f0475f0: 0fc0dd28 */ jal chrPatrolCalculatePadNum
|
|
/* f0475f4: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f0475f8: 87b90034 */ lh $t9,0x34($sp)
|
|
/* f0475fc: 02002025 */ or $a0,$s0,$zero
|
|
/* f047600: 8fa50064 */ lw $a1,0x64($sp)
|
|
/* f047604: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f047608: 8fa70040 */ lw $a3,0x40($sp)
|
|
/* f04760c: afa20014 */ sw $v0,0x14($sp)
|
|
/* f047610: 0fc11992 */ jal func0f046648
|
|
/* f047614: afb90010 */ sw $t9,0x10($sp)
|
|
/* f047618: 10000004 */ b .L0f04762c
|
|
/* f04761c: 00401825 */ or $v1,$v0,$zero
|
|
.L0f047620:
|
|
/* f047620: 10400002 */ beqz $v0,.L0f04762c
|
|
/* f047624: 00000000 */ nop
|
|
/* f047628: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f04762c:
|
|
/* f04762c: 50600008 */ beqzl $v1,.L0f047650
|
|
/* f047630: 02002025 */ or $a0,$s0,$zero
|
|
/* f047634: 0fc0dd6c */ jal func0f0375b0
|
|
/* f047638: 02002025 */ or $a0,$s0,$zero
|
|
/* f04763c: 02002025 */ or $a0,$s0,$zero
|
|
/* f047640: 27a50058 */ addiu $a1,$sp,0x58
|
|
/* f047644: 0fc0dd58 */ jal chrPatrolGetCurWaypointInfo
|
|
/* f047648: 27a60048 */ addiu $a2,$sp,0x48
|
|
/* f04764c: 02002025 */ or $a0,$s0,$zero
|
|
.L0f047650:
|
|
/* f047650: 27a50058 */ addiu $a1,$sp,0x58
|
|
/* f047654: 8fa60030 */ lw $a2,0x30($sp)
|
|
/* f047658: 0fc116e7 */ jal func0f045b9c
|
|
/* f04765c: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f047660: 0fc01877 */ jal func0f0061dc
|
|
/* f047664: 02002025 */ or $a0,$s0,$zero
|
|
/* f047668: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f04766c:
|
|
/* f04766c: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f047670: 27bd0070 */ addiu $sp,$sp,0x70
|
|
/* f047674: 03e00008 */ jr $ra
|
|
/* f047678: 00000000 */ nop
|
|
);
|
|
|
|
bool chrTrySkJump(struct chrdata *chr, u8 arg1, u8 arg2, s32 arg3, u8 arg4)
|
|
{
|
|
if (chr && chr->actiontype != ACT_SKJUMP
|
|
&& chrIsReadyForOrders(chr)
|
|
&& CHRRACE(chr) == RACE_SKEDAR) {
|
|
return chrStartSkJump(chr, arg1, arg2, arg3, arg4);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrStartSkJump(struct chrdata *chr, u8 arg1, u8 arg2, s32 arg3, u8 arg4)
|
|
{
|
|
f32 width;
|
|
f32 ymax;
|
|
f32 ymin;
|
|
struct prop *prop = chr->prop;
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
bool iVar2;
|
|
f32 distance = chrGetDistanceToCoord(chr, &target->pos);
|
|
f32 diffs[2];
|
|
f32 thing;
|
|
s32 hspeed;
|
|
|
|
if (distance < 200 || distance > 550 || !target) {
|
|
return false;
|
|
}
|
|
|
|
propChrGetBbox(prop, &width, &ymax, &ymin);
|
|
chrSetOrUnsetHiddenFlag00000100(chr, false);
|
|
propSetCollisionsEnabled(target, false);
|
|
iVar2 = func0002d6ac(&prop->pos, prop->rooms, &target->pos, 51, 1,
|
|
ymax - prop->pos.y, ymin - prop->pos.y);
|
|
chrSetOrUnsetHiddenFlag00000100(chr, true);
|
|
propSetCollisionsEnabled(target, true);
|
|
|
|
if (iVar2) {
|
|
diffs[0] = target->pos.x - chr->prop->pos.x;
|
|
diffs[1] = target->pos.z - chr->prop->pos.z;
|
|
thing = sqrtf(diffs[0] * diffs[0] + diffs[1] * diffs[1]) * 2.5f / 21.0f;
|
|
hspeed = thing;
|
|
|
|
if (hspeed < 10) {
|
|
hspeed = 10;
|
|
}
|
|
|
|
chr->act_skjump.xspeed = diffs[0] / hspeed;
|
|
chr->act_skjump.zspeed = diffs[1] / hspeed;
|
|
chr->act_skjump.angle = chrGetInverseTheta(chr) + chrGetAngleToPos(chr, &target->pos);
|
|
chr->act_skjump.hit = false;
|
|
chr->act_skjump.unk03c = hspeed;
|
|
chr->act_skjump.unk04c = hspeed;
|
|
chr->act_skjump.y = cdFindGroundYSimple(&chr->prop->pos, chr->chrwidth, chr->prop->rooms, NULL, NULL);
|
|
} else {
|
|
return false;
|
|
}
|
|
|
|
chr->actiontype = ACT_SKJUMP;
|
|
chr->act_skjump.needsnewanim = true;
|
|
chr->act_skjump.state = SKJUMPSTATE_TAKEOFF;
|
|
|
|
return true;
|
|
}
|
|
|
|
void chrTickSkJump(struct chrdata *chr)
|
|
{
|
|
if (g_Vars.lvupdate240_60 == 0) {
|
|
return;
|
|
}
|
|
|
|
if (chr->act_skjump.needsnewanim) {
|
|
chr->act_skjump.needsnewanim = false;
|
|
|
|
switch (chr->act_skjump.state) {
|
|
case SKJUMPSTATE_TAKEOFF:
|
|
modelSetAnimation(chr->model, ANIM_SKEDAR_JUMPSTART, 0, 0, -1, 8);
|
|
modelSetAnimSpeed(chr->model, 2.5, 0);
|
|
break;
|
|
case SKJUMPSTATE_AIRBORNE: {
|
|
u16 sounds[] = {
|
|
SFX_SKEDAR_ROAR_0532,
|
|
SFX_SKEDAR_ROAR_0533,
|
|
SFX_SKEDAR_ROAR_0534,
|
|
};
|
|
|
|
func0f0939f8(NULL, chr->prop, sounds[random() % 3], -1,
|
|
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
|
modelSetAnimation(chr->model, ANIM_SKEDAR_JUMPAIR, 0, 0, -1, 16);
|
|
modelSetAnimSpeed(chr->model, 1, 0);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
{
|
|
f32 fVar5;
|
|
f32 fVar6;
|
|
f32 fVar7;
|
|
u32 stack[1];
|
|
f32 frame;
|
|
|
|
switch (chr->act_skjump.state) {
|
|
case SKJUMPSTATE_TAKEOFF:
|
|
fVar6 = chrGetInverseTheta(chr);
|
|
fVar5 = func0001afe8(fVar6, chr->act_skjump.angle, 0.35);
|
|
chrSetLookAngle(chr, fVar5);
|
|
frame = modelGetCurAnimFrame(chr->model);
|
|
|
|
if (frame >= modelGetAnimEndFrame(chr->model)) {
|
|
chr->act_skjump.state++;
|
|
chr->act_skjump.needsnewanim = true;
|
|
}
|
|
break;
|
|
case SKJUMPSTATE_AIRBORNE:
|
|
chr->act_skjump.newpos.x = chr->act_skjump.xspeed * g_Vars.lvupdate240_60 + chr->prop->pos.x;
|
|
chr->act_skjump.newpos.z = chr->act_skjump.zspeed * g_Vars.lvupdate240_60 + chr->prop->pos.z;
|
|
|
|
if (chr->act_skjump.unk04c > 0) {
|
|
fVar6 = 1.0f - chr->act_skjump.unk03c / (f32)chr->act_skjump.unk04c;
|
|
fVar7 = sinf(M_PI * fVar6);
|
|
fVar7 = fVar7 * 160.0f + chr->act_skjump.y;
|
|
} else {
|
|
fVar6 = 1;
|
|
fVar7 = chr->act_skjump.y;
|
|
}
|
|
|
|
chr->act_skjump.newpos.y = fVar7 - chr->prop->pos.y;
|
|
|
|
if (fVar6 < 0.5f && chr->act_skjump.newpos.y < 0.0f) {
|
|
chr->act_skjump.newpos.y = 0;
|
|
}
|
|
|
|
if (chr->act_skjump.hit == false && chrGetDistanceToTarget(chr) < 150.0f) {
|
|
func0f03ba44(chr, 3, 0x96, 0);
|
|
chr->act_skjump.hit = true;
|
|
}
|
|
|
|
if (chr->act_skjump.unk03c > 0) {
|
|
chr->act_skjump.unk03c -= g_Vars.lvupdate240_60;
|
|
} else {
|
|
chrTryStop(chr);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void chrTick(struct chrdata *chr)
|
|
{
|
|
u32 race = CHRRACE(chr);
|
|
|
|
if (g_Vars.lvupdate240 < 1) {
|
|
return;
|
|
}
|
|
|
|
if (chr->actiontype == ACT_INIT) {
|
|
chr->chrflags |= CHRCFLAG_00000001;
|
|
func0f02e9a0(chr, 0);
|
|
chr->sleep = 0;
|
|
}
|
|
|
|
if (race == RACE_DRCAROLL) {
|
|
g_DrCarollDyingTimer += g_Vars.lvupdate240_60;
|
|
}
|
|
|
|
chr->soundtimer += g_Vars.lvupdate240_60;
|
|
chr->talktimer += g_Vars.lvupdate240_60;
|
|
|
|
if (chr->aibot) {
|
|
chr->aibot->unk030 += g_Vars.lvupdate240_60;
|
|
}
|
|
|
|
if (chr->hidden & CHRHFLAG_TIMER_RUNNING) {
|
|
chr->timer60 += g_Vars.lvupdate240_60;
|
|
}
|
|
|
|
chr->sleep -= g_Vars.lvupdate240_60;
|
|
|
|
if (chr->sleep < 0
|
|
|| (chr->chrflags & CHRCFLAG_00040000)
|
|
|| chr->alertness >= 65
|
|
|| (chr->aibot && (chr->actiontype == ACT_DIE || chr->actiontype == ACT_DEAD))) {
|
|
u8 pass = race == RACE_HUMAN || race == RACE_SKEDAR;
|
|
chr->sleep = 0;
|
|
|
|
chraiExecute(chr, PROPTYPE_CHR);
|
|
|
|
// Consider setting shootingatmelist
|
|
if (chr->prop) {
|
|
if (chr->aimtesttimer60 < 1) {
|
|
chr->aimtesttimer60 = 30;
|
|
|
|
if (chr->aishootingatmelist >= 0
|
|
&& ailistFindById(chr->aishootingatmelist) != chr->ailist
|
|
&& chrCanSeeTargetWithExtraCheck(chr)) {
|
|
chr->chrflags |= CHRCFLAG_CONSIDER_DODGE;
|
|
}
|
|
} else {
|
|
chr->aimtesttimer60 -= g_Vars.lvupdate240_60;
|
|
}
|
|
}
|
|
|
|
// Consider setting darkroomlist
|
|
if (chr->prop
|
|
&& chr->aidarkroomlist >= 0
|
|
&& roomGetBrightness(chr->prop->rooms[0]) < 25
|
|
&& ailistFindById(chr->aidarkroomlist) != chr->ailist) {
|
|
chr->darkroomthing = true;
|
|
}
|
|
|
|
// Consider setting playerdeadlist
|
|
if (chr->prop && chr->aiplayerdeadlist >= 0 && g_Vars.currentplayer->isdead) {
|
|
u32 prevplayernum = g_Vars.currentplayernum;
|
|
s32 i;
|
|
s32 playercount = PLAYERCOUNT();
|
|
bool alldead = true;
|
|
|
|
if (playercount >= 2) {
|
|
for (i = 0; i < playercount && alldead; i++) {
|
|
if (i != prevplayernum) {
|
|
setCurrentPlayerNum(i);
|
|
|
|
if (g_Vars.currentplayer->isdead == false) {
|
|
alldead = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
setCurrentPlayerNum(prevplayernum);
|
|
}
|
|
|
|
if (alldead && ailistFindById(chr->aiplayerdeadlist) != chr->ailist) {
|
|
chr->playerdeadthing = true;
|
|
}
|
|
}
|
|
|
|
if (race == RACE_ROBOT) {
|
|
robotSetMuzzleFlash(chr, 0, false);
|
|
robotSetMuzzleFlash(chr, 1, false);
|
|
}
|
|
|
|
if (chr->prop) {
|
|
if (g_Vars.in_cutscene) {
|
|
switch (chr->actiontype) {
|
|
case ACT_ANIM: chrTickAnim(chr); break;
|
|
case ACT_PATROL: chrTickPatrol(chr); pass = false; break;
|
|
}
|
|
} else {
|
|
switch (chr->actiontype) {
|
|
case ACT_STAND: chrTickStand(chr); break;
|
|
case ACT_KNEEL: chrTickKneel(chr); break;
|
|
case ACT_ANIM: chrTickAnim(chr); break;
|
|
case ACT_DIE: chrTickDie(chr); break;
|
|
case ACT_ARGH: chrTickArgh(chr); break;
|
|
case ACT_PREARGH: chrTickPreArgh(chr); break;
|
|
case ACT_SIDESTEP: chrTickSidestep(chr); break;
|
|
case ACT_JUMPOUT: chrTickJumpOut(chr); break;
|
|
case ACT_DEAD: chrTickDead(chr); break;
|
|
case ACT_ATTACK: chrTickAttack(chr); break;
|
|
case ACT_ATTACKWALK: chrTickAttackWalk(chr); break;
|
|
case ACT_ATTACKROLL: chrTickAttackRoll(chr); break;
|
|
case ACT_RUNPOS: chrTickRunPos(chr); break;
|
|
case ACT_PATROL: chrTickPatrol(chr); pass = false; break;
|
|
case ACT_GOPOS: chrTickGoPos(chr); break;
|
|
case ACT_SURRENDER: chrTickSurrender(chr); break;
|
|
case ACT_TEST: chrTickTest(chr); break;
|
|
case ACT_SURPRISED: chrTickSurprised(chr); break;
|
|
case ACT_STARTALARM: chrTickStartAlarm(chr); break;
|
|
case ACT_THROWGRENADE: chrTickThrowGrenade(chr); break;
|
|
case ACT_BONDDIE: chrTickBondDie(chr); break;
|
|
case ACT_DRUGGEDCOMINGUP: chrTickDruggedComingUp(chr); break;
|
|
case ACT_DRUGGEDDROP: chrTickDruggedDrop(chr); break;
|
|
case ACT_DRUGGEDKO: chrTickDruggedKo(chr); break;
|
|
case ACT_ATTACKAMOUNT: chrTickAttackAmount(chr); break;
|
|
case ACT_ROBOTATTACK: chrTickRobotAttack(chr); break;
|
|
case ACT_SKJUMP: chrTickSkJump(chr); break;
|
|
}
|
|
}
|
|
}
|
|
|
|
chr->hidden &= ~CHRHFLAG_IS_HEARING_TARGET;
|
|
chr->hidden2 &= ~CHRH2FLAG_0040;
|
|
|
|
if (pass) {
|
|
func0f0061dc(chr);
|
|
}
|
|
} else {
|
|
func0f006520(chr);
|
|
}
|
|
}
|
|
|
|
void func0f0482cc(u32 ailistid)
|
|
{
|
|
struct prop *prop;
|
|
|
|
var8009de20 = 0;
|
|
var8009de24 = 0;
|
|
var8009de28 = 0;
|
|
|
|
prop = g_Vars.list1head;
|
|
|
|
while (prop) {
|
|
prop->unk38 = 0xffff;
|
|
prop->unk3a = 0;
|
|
prop->unk3c = 2;
|
|
|
|
prop = prop->next;
|
|
}
|
|
|
|
g_BgChrs[g_NumBgChrs - 1].ailist = ailistFindById(ailistid);
|
|
g_BgChrs[g_NumBgChrs - 1].aioffset = 0;
|
|
g_BgChrs[g_NumBgChrs - 1].aireturnlist = -1;
|
|
}
|
|
|
|
u32 var80068454 = 0;
|
|
s32 var80068458 = 0;
|
|
u32 var8006845c = 0x01020408;
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f048398
|
|
/* f048398: 27bdff18 */ addiu $sp,$sp,-232
|
|
/* f04839c: afbf003c */ sw $ra,0x3c($sp)
|
|
/* f0483a0: afbe0038 */ sw $s8,0x38($sp)
|
|
/* f0483a4: afb70034 */ sw $s7,0x34($sp)
|
|
/* f0483a8: afb60030 */ sw $s6,0x30($sp)
|
|
/* f0483ac: afb5002c */ sw $s5,0x2c($sp)
|
|
/* f0483b0: afb40028 */ sw $s4,0x28($sp)
|
|
/* f0483b4: afb30024 */ sw $s3,0x24($sp)
|
|
/* f0483b8: afb20020 */ sw $s2,0x20($sp)
|
|
/* f0483bc: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f0483c0: 0fc07934 */ jal getNumChrSlots
|
|
/* f0483c4: afb00018 */ sw $s0,0x18($sp)
|
|
/* f0483c8: 3c1e8006 */ lui $s8,%hi(var80062cb0)
|
|
/* f0483cc: 27de2cb0 */ addiu $s8,$s8,%lo(var80062cb0)
|
|
/* f0483d0: afc00000 */ sw $zero,0x0($s8)
|
|
/* f0483d4: 3c018006 */ lui $at,%hi(var80062cb4)
|
|
/* f0483d8: ac202cb4 */ sw $zero,%lo(var80062cb4)($at)
|
|
/* f0483dc: 3c0e800a */ lui $t6,%hi(g_Vars+0x318)
|
|
/* f0483e0: 8dcea2d8 */ lw $t6,%lo(g_Vars+0x318)($t6)
|
|
/* f0483e4: 3c018006 */ lui $at,%hi(var80062cb8)
|
|
/* f0483e8: ac202cb8 */ sw $zero,%lo(var80062cb8)($at)
|
|
/* f0483ec: 3c018006 */ lui $at,%hi(var80062cbc)
|
|
/* f0483f0: afa200e0 */ sw $v0,0xe0($sp)
|
|
/* f0483f4: afa000dc */ sw $zero,0xdc($sp)
|
|
/* f0483f8: 00009025 */ or $s2,$zero,$zero
|
|
/* f0483fc: 0000b025 */ or $s6,$zero,$zero
|
|
/* f048400: 15c0005a */ bnez $t6,.L0f04856c
|
|
/* f048404: ac202cbc */ sw $zero,%lo(var80062cbc)($at)
|
|
/* f048408: 18400058 */ blez $v0,.L0f04856c
|
|
/* f04840c: 0000a825 */ or $s5,$zero,$zero
|
|
/* f048410: 00009825 */ or $s3,$zero,$zero
|
|
/* f048414: 24170006 */ addiu $s7,$zero,0x6
|
|
/* f048418: 24140003 */ addiu $s4,$zero,0x3
|
|
.L0f04841c:
|
|
/* f04841c: 3c0f8006 */ lui $t7,%hi(g_ChrSlots)
|
|
/* f048420: 8def2988 */ lw $t7,%lo(g_ChrSlots)($t7)
|
|
/* f048424: 026f8021 */ addu $s0,$s3,$t7
|
|
/* f048428: 8e180020 */ lw $t8,0x20($s0)
|
|
/* f04842c: 5300004b */ beqzl $t8,.L0f04855c
|
|
/* f048430: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f048434: 8e19001c */ lw $t9,0x1c($s0)
|
|
/* f048438: 53200048 */ beqzl $t9,.L0f04855c
|
|
/* f04843c: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f048440: 0fc0e6a5 */ jal chrIsDead
|
|
/* f048444: 02002025 */ or $a0,$s0,$zero
|
|
/* f048448: 54400044 */ bnezl $v0,.L0f04855c
|
|
/* f04844c: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f048450: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f048454: 02002025 */ or $a0,$s0,$zero
|
|
/* f048458: 1040003f */ beqz $v0,.L0f048558
|
|
/* f04845c: 00408825 */ or $s1,$v0,$zero
|
|
/* f048460: 90430000 */ lbu $v1,0x0($v0)
|
|
/* f048464: 12830003 */ beq $s4,$v1,.L0f048474
|
|
/* f048468: 00000000 */ nop
|
|
/* f04846c: 56e3003b */ bnel $s7,$v1,.L0f04855c
|
|
/* f048470: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
.L0f048474:
|
|
/* f048474: 16e30011 */ bne $s7,$v1,.L0f0484bc
|
|
/* f048478: 3c07800a */ lui $a3,%hi(g_Vars)
|
|
/* f04847c: 24e79fc0 */ addiu $a3,$a3,%lo(g_Vars)
|
|
/* f048480: 8ce8029c */ lw $t0,0x29c($a3)
|
|
/* f048484: 02002025 */ or $a0,$s0,$zero
|
|
/* f048488: 24060002 */ addiu $a2,$zero,0x2
|
|
/* f04848c: 05000007 */ bltz $t0,.L0f0484ac
|
|
/* f048490: 00000000 */ nop
|
|
/* f048494: 8ce302a8 */ lw $v1,0x2a8($a3)
|
|
/* f048498: 10600004 */ beqz $v1,.L0f0484ac
|
|
/* f04849c: 00000000 */ nop
|
|
/* f0484a0: 8c6900bc */ lw $t1,0xbc($v1)
|
|
/* f0484a4: 50490006 */ beql $v0,$t1,.L0f0484c0
|
|
/* f0484a8: 8e220004 */ lw $v0,0x4($s1)
|
|
.L0f0484ac:
|
|
/* f0484ac: 0fc12aa3 */ jal chrCompareTeams
|
|
/* f0484b0: 8e250004 */ lw $a1,0x4($s1)
|
|
/* f0484b4: 5440000a */ bnezl $v0,.L0f0484e0
|
|
/* f0484b8: 8fca0000 */ lw $t2,0x0($s8)
|
|
.L0f0484bc:
|
|
/* f0484bc: 8e220004 */ lw $v0,0x4($s1)
|
|
.L0f0484c0:
|
|
/* f0484c0: 00001825 */ or $v1,$zero,$zero
|
|
/* f0484c4: 10400003 */ beqz $v0,.L0f0484d4
|
|
/* f0484c8: 00000000 */ nop
|
|
/* f0484cc: 10000001 */ b .L0f0484d4
|
|
/* f0484d0: 904302fe */ lbu $v1,0x2fe($v0)
|
|
.L0f0484d4:
|
|
/* f0484d4: 54740021 */ bnel $v1,$s4,.L0f04855c
|
|
/* f0484d8: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0484dc: 8fca0000 */ lw $t2,0x0($s8)
|
|
.L0f0484e0:
|
|
/* f0484e0: 254b0001 */ addiu $t3,$t2,0x1
|
|
/* f0484e4: afcb0000 */ sw $t3,0x0($s8)
|
|
/* f0484e8: 8e0300e0 */ lw $v1,0xe0($s0)
|
|
/* f0484ec: 8e0400e4 */ lw $a0,0xe4($s0)
|
|
/* f0484f0: 0083082a */ slt $at,$a0,$v1
|
|
/* f0484f4: 10200003 */ beqz $at,.L0f048504
|
|
/* f0484f8: 00801025 */ or $v0,$a0,$zero
|
|
/* f0484fc: 10000001 */ b .L0f048504
|
|
/* f048500: 00601025 */ or $v0,$v1,$zero
|
|
.L0f048504:
|
|
/* f048504: 10400014 */ beqz $v0,.L0f048558
|
|
/* f048508: 3c038006 */ lui $v1,%hi(var80062cb4)
|
|
/* f04850c: 24632cb4 */ addiu $v1,$v1,%lo(var80062cb4)
|
|
/* f048510: 8c6c0000 */ lw $t4,0x0($v1)
|
|
/* f048514: 3c0e800a */ lui $t6,%hi(g_Vars+0x8)
|
|
/* f048518: 3c048006 */ lui $a0,%hi(var80062cbc)
|
|
/* f04851c: 258d0001 */ addiu $t5,$t4,0x1
|
|
/* f048520: ac6d0000 */ sw $t5,0x0($v1)
|
|
/* f048524: 8dce9fc8 */ lw $t6,%lo(g_Vars+0x8)($t6)
|
|
/* f048528: 24842cbc */ addiu $a0,$a0,%lo(var80062cbc)
|
|
/* f04852c: 01c27823 */ subu $t7,$t6,$v0
|
|
/* f048530: 29e100f0 */ slti $at,$t7,0xf0
|
|
/* f048534: 10200008 */ beqz $at,.L0f048558
|
|
/* f048538: 3c028006 */ lui $v0,%hi(var80062cb8)
|
|
/* f04853c: 24422cb8 */ addiu $v0,$v0,%lo(var80062cb8)
|
|
/* f048540: 8c580000 */ lw $t8,0x0($v0)
|
|
/* f048544: 8c880000 */ lw $t0,0x0($a0)
|
|
/* f048548: 27190001 */ addiu $t9,$t8,0x1
|
|
/* f04854c: 25090001 */ addiu $t1,$t0,0x1
|
|
/* f048550: ac590000 */ sw $t9,0x0($v0)
|
|
/* f048554: ac890000 */ sw $t1,0x0($a0)
|
|
.L0f048558:
|
|
/* f048558: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
.L0f04855c:
|
|
/* f04855c: 26b50001 */ addiu $s5,$s5,0x1
|
|
/* f048560: 26730368 */ addiu $s3,$s3,0x368
|
|
/* f048564: 16aaffad */ bne $s5,$t2,.L0f04841c
|
|
/* f048568: 00000000 */ nop
|
|
.L0f04856c:
|
|
/* f04856c: 3c028007 */ lui $v0,%hi(var80068454)
|
|
/* f048570: 8c428454 */ lw $v0,%lo(var80068454)($v0)
|
|
/* f048574: 3c018007 */ lui $at,%hi(var80068454)
|
|
/* f048578: 0000a825 */ or $s5,$zero,$zero
|
|
/* f04857c: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f048580: ac228454 */ sw $v0,%lo(var80068454)($at)
|
|
/* f048584: 2c41000b */ sltiu $at,$v0,0xb
|
|
/* f048588: 14200002 */ bnez $at,.L0f048594
|
|
/* f04858c: 3c018007 */ lui $at,%hi(var80068454)
|
|
/* f048590: ac208454 */ sw $zero,%lo(var80068454)($at)
|
|
.L0f048594:
|
|
/* f048594: 0fc47bac */ jal debug0f11eeb0
|
|
/* f048598: 00000000 */ nop
|
|
/* f04859c: 10400003 */ beqz $v0,.L0f0485ac
|
|
/* f0485a0: 00000000 */ nop
|
|
/* f0485a4: 0fc10e51 */ jal propPrintDangerous
|
|
/* f0485a8: 00000000 */ nop
|
|
.L0f0485ac:
|
|
/* f0485ac: 3c02800a */ lui $v0,%hi(g_Vars+0x4d2)
|
|
/* f0485b0: 8042a492 */ lb $v0,%lo(g_Vars+0x4d2)($v0)
|
|
/* f0485b4: 04400009 */ bltz $v0,.L0f0485dc
|
|
/* f0485b8: 00000000 */ nop
|
|
/* f0485bc: 0fc120b3 */ jal func0f0482cc
|
|
/* f0485c0: 24440c00 */ addiu $a0,$v0,0xc00
|
|
/* f0485c4: 240bffff */ addiu $t3,$zero,-1
|
|
/* f0485c8: 3c01800a */ lui $at,%hi(g_Vars+0x4d2)
|
|
/* f0485cc: a02ba492 */ sb $t3,%lo(g_Vars+0x4d2)($at)
|
|
/* f0485d0: 3c01800a */ lui $at,%hi(g_Vars+0x4d3)
|
|
/* f0485d4: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0485d8: a02ca493 */ sb $t4,%lo(g_Vars+0x4d3)($at)
|
|
.L0f0485dc:
|
|
/* f0485dc: 3c038006 */ lui $v1,%hi(g_NumBgChrs)
|
|
/* f0485e0: 8c637e60 */ lw $v1,%lo(g_NumBgChrs)($v1)
|
|
/* f0485e4: 00009825 */ or $s3,$zero,$zero
|
|
/* f0485e8: 18600013 */ blez $v1,.L0f048638
|
|
.L0f0485ec:
|
|
/* f0485ec: 3c0d800a */ lui $t5,%hi(g_Vars+0x4d3)
|
|
/* f0485f0: 81ada493 */ lb $t5,%lo(g_Vars+0x4d3)($t5)
|
|
/* f0485f4: 3c028006 */ lui $v0,%hi(g_BgChrs)
|
|
/* f0485f8: 8c427e58 */ lw $v0,%lo(g_BgChrs)($v0)
|
|
/* f0485fc: 11a00005 */ beqz $t5,.L0f048614
|
|
/* f048600: 00537021 */ addu $t6,$v0,$s3
|
|
/* f048604: 95cf0192 */ lhu $t7,0x192($t6)
|
|
/* f048608: 31f80010 */ andi $t8,$t7,0x10
|
|
/* f04860c: 53000006 */ beqzl $t8,.L0f048628
|
|
/* f048610: 26b50001 */ addiu $s5,$s5,0x1
|
|
.L0f048614:
|
|
/* f048614: 0fc11f20 */ jal chrTick
|
|
/* f048618: 02622021 */ addu $a0,$s3,$v0
|
|
/* f04861c: 3c038006 */ lui $v1,%hi(g_NumBgChrs)
|
|
/* f048620: 8c637e60 */ lw $v1,%lo(g_NumBgChrs)($v1)
|
|
/* f048624: 26b50001 */ addiu $s5,$s5,0x1
|
|
.L0f048628:
|
|
/* f048628: 02a3082a */ slt $at,$s5,$v1
|
|
/* f04862c: 1420ffef */ bnez $at,.L0f0485ec
|
|
/* f048630: 26730368 */ addiu $s3,$s3,0x368
|
|
/* f048634: 0000a825 */ or $s5,$zero,$zero
|
|
.L0f048638:
|
|
/* f048638: 8fb900e0 */ lw $t9,0xe0($sp)
|
|
/* f04863c: 0000a025 */ or $s4,$zero,$zero
|
|
/* f048640: 00009825 */ or $s3,$zero,$zero
|
|
/* f048644: 1b200052 */ blez $t9,.L0f048790
|
|
/* f048648: 241e001f */ addiu $s8,$zero,0x1f
|
|
/* f04864c: 24170005 */ addiu $s7,$zero,0x5
|
|
/* f048650: 27b1007c */ addiu $s1,$sp,0x7c
|
|
.L0f048654:
|
|
/* f048654: 3c088006 */ lui $t0,%hi(g_ChrSlots)
|
|
/* f048658: 8d082988 */ lw $t0,%lo(g_ChrSlots)($t0)
|
|
/* f04865c: 02682021 */ addu $a0,$s3,$t0
|
|
/* f048660: 8c890020 */ lw $t1,0x20($a0)
|
|
/* f048664: 51200046 */ beqzl $t1,.L0f048780
|
|
/* f048668: 8fb800e0 */ lw $t8,0xe0($sp)
|
|
/* f04866c: 8c83001c */ lw $v1,0x1c($a0)
|
|
/* f048670: 50600043 */ beqzl $v1,.L0f048780
|
|
/* f048674: 8fb800e0 */ lw $t8,0xe0($sp)
|
|
/* f048678: 80820007 */ lb $v0,0x7($a0)
|
|
/* f04867c: 52e20005 */ beql $s7,$v0,.L0f048694
|
|
/* f048680: 906a0001 */ lbu $t2,0x1($v1)
|
|
/* f048684: 53c20003 */ beql $s8,$v0,.L0f048694
|
|
/* f048688: 906a0001 */ lbu $t2,0x1($v1)
|
|
/* f04868c: 26940001 */ addiu $s4,$s4,0x1
|
|
/* f048690: 906a0001 */ lbu $t2,0x1($v1)
|
|
.L0f048694:
|
|
/* f048694: 314b0080 */ andi $t3,$t2,0x80
|
|
/* f048698: 11600011 */ beqz $t3,.L0f0486e0
|
|
/* f04869c: 00000000 */ nop
|
|
/* f0486a0: 12e20006 */ beq $s7,$v0,.L0f0486bc
|
|
/* f0486a4: 00000000 */ nop
|
|
/* f0486a8: 13c20004 */ beq $s8,$v0,.L0f0486bc
|
|
/* f0486ac: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0486b0: 258d0001 */ addiu $t5,$t4,0x1
|
|
/* f0486b4: 1000000a */ b .L0f0486e0
|
|
/* f0486b8: afad00dc */ sw $t5,0xdc($sp)
|
|
.L0f0486bc:
|
|
/* f0486bc: 57c20008 */ bnel $s8,$v0,.L0f0486e0
|
|
/* f0486c0: 26d60001 */ addiu $s6,$s6,0x1
|
|
/* f0486c4: 8c8e0018 */ lw $t6,0x18($a0)
|
|
/* f0486c8: 000e7940 */ sll $t7,$t6,0x5
|
|
/* f0486cc: 05e00004 */ bltz $t7,.L0f0486e0
|
|
/* f0486d0: 00000000 */ nop
|
|
/* f0486d4: 10000002 */ b .L0f0486e0
|
|
/* f0486d8: 26d60001 */ addiu $s6,$s6,0x1
|
|
/* f0486dc: 26d60001 */ addiu $s6,$s6,0x1
|
|
.L0f0486e0:
|
|
/* f0486e0: 52e20008 */ beql $s7,$v0,.L0f048704
|
|
/* f0486e4: 94880192 */ lhu $t0,0x192($a0)
|
|
/* f0486e8: 57c20025 */ bnel $s8,$v0,.L0f048780
|
|
/* f0486ec: 8fb800e0 */ lw $t8,0xe0($sp)
|
|
/* f0486f0: 8c980018 */ lw $t8,0x18($a0)
|
|
/* f0486f4: 0018c940 */ sll $t9,$t8,0x5
|
|
/* f0486f8: 07220021 */ bltzl $t9,.L0f048780
|
|
/* f0486fc: 8fb800e0 */ lw $t8,0xe0($sp)
|
|
/* f048700: 94880192 */ lhu $t0,0x192($a0)
|
|
.L0f048704:
|
|
/* f048704: 00125080 */ sll $t2,$s2,0x2
|
|
/* f048708: 022a1821 */ addu $v1,$s1,$t2
|
|
/* f04870c: 31090080 */ andi $t1,$t0,0x80
|
|
/* f048710: 5120001b */ beqzl $t1,.L0f048780
|
|
/* f048714: 8fb800e0 */ lw $t8,0xe0($sp)
|
|
/* f048718: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f04871c: 2a41000a */ slti $at,$s2,0xa
|
|
/* f048720: ac640000 */ sw $a0,0x0($v1)
|
|
/* f048724: 14200015 */ bnez $at,.L0f04877c
|
|
/* f048728: 24630004 */ addiu $v1,$v1,4
|
|
/* f04872c: 0c004b70 */ jal random
|
|
/* f048730: afa30048 */ sw $v1,0x48($sp)
|
|
/* f048734: 0052001b */ divu $zero,$v0,$s2
|
|
/* f048738: 00002810 */ mfhi $a1
|
|
/* f04873c: 00055880 */ sll $t3,$a1,0x2
|
|
/* f048740: 022b6021 */ addu $t4,$s1,$t3
|
|
/* f048744: 00a08025 */ or $s0,$a1,$zero
|
|
/* f048748: 8fa30048 */ lw $v1,0x48($sp)
|
|
/* f04874c: 16400002 */ bnez $s2,.L0f048758
|
|
/* f048750: 00000000 */ nop
|
|
/* f048754: 0007000d */ break 0x7
|
|
.L0f048758:
|
|
/* f048758: 8d840000 */ lw $a0,0x0($t4)
|
|
/* f04875c: 0fc0f337 */ jal chrFadeCorpse
|
|
/* f048760: 00000000 */ nop
|
|
/* f048764: 8fa30048 */ lw $v1,0x48($sp)
|
|
/* f048768: 00107080 */ sll $t6,$s0,0x2
|
|
/* f04876c: 022e7821 */ addu $t7,$s1,$t6
|
|
/* f048770: 8c6dfffc */ lw $t5,-0x4($v1)
|
|
/* f048774: 2652ffff */ addiu $s2,$s2,-1
|
|
/* f048778: aded0000 */ sw $t5,0x0($t7)
|
|
.L0f04877c:
|
|
/* f04877c: 8fb800e0 */ lw $t8,0xe0($sp)
|
|
.L0f048780:
|
|
/* f048780: 26b50001 */ addiu $s5,$s5,0x1
|
|
/* f048784: 26730368 */ addiu $s3,$s3,0x368
|
|
/* f048788: 16b8ffb2 */ bne $s5,$t8,.L0f048654
|
|
/* f04878c: 00000000 */ nop
|
|
.L0f048790:
|
|
/* f048790: 3c198007 */ lui $t9,%hi(var80068458)
|
|
/* f048794: 8f398458 */ lw $t9,%lo(var80068458)($t9)
|
|
/* f048798: 24170005 */ addiu $s7,$zero,0x5
|
|
/* f04879c: 241e001f */ addiu $s8,$zero,0x1f
|
|
/* f0487a0: 0334082a */ slt $at,$t9,$s4
|
|
/* f0487a4: 10200003 */ beqz $at,.L0f0487b4
|
|
/* f0487a8: 3c03800a */ lui $v1,%hi(g_Vars+0x38)
|
|
/* f0487ac: 3c018007 */ lui $at,%hi(var80068458)
|
|
/* f0487b0: ac348458 */ sw $s4,%lo(var80068458)($at)
|
|
.L0f0487b4:
|
|
/* f0487b4: 8fa800dc */ lw $t0,0xdc($sp)
|
|
/* f0487b8: 8c639ff8 */ lw $v1,%lo(g_Vars+0x38)($v1)
|
|
/* f0487bc: 00008825 */ or $s1,$zero,$zero
|
|
/* f0487c0: 02e81023 */ subu $v0,$s7,$t0
|
|
/* f0487c4: 28610007 */ slti $at,$v1,0x7
|
|
/* f0487c8: 14200004 */ bnez $at,.L0f0487dc
|
|
/* f0487cc: afa20074 */ sw $v0,0x74($sp)
|
|
/* f0487d0: 00434823 */ subu $t1,$v0,$v1
|
|
/* f0487d4: 252a0006 */ addiu $t2,$t1,0x6
|
|
/* f0487d8: afaa0074 */ sw $t2,0x74($sp)
|
|
.L0f0487dc:
|
|
/* f0487dc: 8fab0074 */ lw $t3,0x74($sp)
|
|
/* f0487e0: 05610002 */ bgez $t3,.L0f0487ec
|
|
/* f0487e4: 00000000 */ nop
|
|
/* f0487e8: afa00074 */ sw $zero,0x74($sp)
|
|
.L0f0487ec:
|
|
/* f0487ec: 12c0007d */ beqz $s6,.L0f0489e4
|
|
/* f0487f0: 8fac00e0 */ lw $t4,0xe0($sp)
|
|
/* f0487f4: 0000b025 */ or $s6,$zero,$zero
|
|
/* f0487f8: 00009025 */ or $s2,$zero,$zero
|
|
/* f0487fc: 19800079 */ blez $t4,.L0f0489e4
|
|
/* f048800: 0000a825 */ or $s5,$zero,$zero
|
|
/* f048804: 00009825 */ or $s3,$zero,$zero
|
|
/* f048808: 27b400a4 */ addiu $s4,$sp,0xa4
|
|
.L0f04880c:
|
|
/* f04880c: 3c0e8006 */ lui $t6,%hi(g_ChrSlots)
|
|
/* f048810: 8dce2988 */ lw $t6,%lo(g_ChrSlots)($t6)
|
|
/* f048814: 026e2021 */ addu $a0,$s3,$t6
|
|
/* f048818: 8c8d0020 */ lw $t5,0x20($a0)
|
|
/* f04881c: 51a0006d */ beqzl $t5,.L0f0489d4
|
|
/* f048820: 8fac00e0 */ lw $t4,0xe0($sp)
|
|
/* f048824: 80820007 */ lb $v0,0x7($a0)
|
|
/* f048828: 52e2000b */ beql $s7,$v0,.L0f048858
|
|
/* f04882c: 8c88001c */ lw $t0,0x1c($a0)
|
|
/* f048830: 57c20068 */ bnel $s8,$v0,.L0f0489d4
|
|
/* f048834: 8fac00e0 */ lw $t4,0xe0($sp)
|
|
/* f048838: 8c8f001c */ lw $t7,0x1c($a0)
|
|
/* f04883c: 51e00065 */ beqzl $t7,.L0f0489d4
|
|
/* f048840: 8fac00e0 */ lw $t4,0xe0($sp)
|
|
/* f048844: 8c980018 */ lw $t8,0x18($a0)
|
|
/* f048848: 0018c940 */ sll $t9,$t8,0x5
|
|
/* f04884c: 07220061 */ bltzl $t9,.L0f0489d4
|
|
/* f048850: 8fac00e0 */ lw $t4,0xe0($sp)
|
|
/* f048854: 8c88001c */ lw $t0,0x1c($a0)
|
|
.L0f048858:
|
|
/* f048858: 91090001 */ lbu $t1,0x1($t0)
|
|
/* f04885c: 312a0080 */ andi $t2,$t1,0x80
|
|
/* f048860: 51400033 */ beqzl $t2,.L0f048930
|
|
/* f048864: 8c8c0030 */ lw $t4,0x30($a0)
|
|
/* f048868: 8c8b0038 */ lw $t3,0x38($a0)
|
|
/* f04886c: 05630059 */ bgezl $t3,.L0f0489d4
|
|
/* f048870: 8fac00e0 */ lw $t4,0xe0($sp)
|
|
/* f048874: 8c8c002c */ lw $t4,0x2c($a0)
|
|
/* f048878: 8fae0074 */ lw $t6,0x74($sp)
|
|
/* f04887c: 55800055 */ bnezl $t4,.L0f0489d4
|
|
/* f048880: 8fac00e0 */ lw $t4,0xe0($sp)
|
|
/* f048884: 26d60001 */ addiu $s6,$s6,0x1
|
|
/* f048888: 01d6082a */ slt $at,$t6,$s6
|
|
/* f04888c: 14200004 */ bnez $at,.L0f0488a0
|
|
/* f048890: 00000000 */ nop
|
|
/* f048894: 8c8d02d4 */ lw $t5,0x2d4($a0)
|
|
/* f048898: 51a00006 */ beqzl $t5,.L0f0488b4
|
|
/* f04889c: 8c8f0030 */ lw $t7,0x30($a0)
|
|
.L0f0488a0:
|
|
/* f0488a0: 0fc0f337 */ jal chrFadeCorpse
|
|
/* f0488a4: 00000000 */ nop
|
|
/* f0488a8: 10000049 */ b .L0f0489d0
|
|
/* f0488ac: 26d6ffff */ addiu $s6,$s6,-1
|
|
/* f0488b0: 8c8f0030 */ lw $t7,0x30($a0)
|
|
.L0f0488b4:
|
|
/* f0488b4: 0011c080 */ sll $t8,$s1,0x2
|
|
/* f0488b8: 27b900b8 */ addiu $t9,$sp,0xb8
|
|
/* f0488bc: 15e00044 */ bnez $t7,.L0f0489d0
|
|
/* f0488c0: 03191821 */ addu $v1,$t8,$t9
|
|
/* f0488c4: 26310001 */ addiu $s1,$s1,0x1
|
|
/* f0488c8: 2a210002 */ slti $at,$s1,0x2
|
|
/* f0488cc: ac640000 */ sw $a0,0x0($v1)
|
|
/* f0488d0: 1420003f */ bnez $at,.L0f0489d0
|
|
/* f0488d4: 24630004 */ addiu $v1,$v1,4
|
|
/* f0488d8: 0c004b70 */ jal random
|
|
/* f0488dc: afa30048 */ sw $v1,0x48($sp)
|
|
/* f0488e0: 0051001b */ divu $zero,$v0,$s1
|
|
/* f0488e4: 00002810 */ mfhi $a1
|
|
/* f0488e8: 00054080 */ sll $t0,$a1,0x2
|
|
/* f0488ec: 03a82021 */ addu $a0,$sp,$t0
|
|
/* f0488f0: 00a08025 */ or $s0,$a1,$zero
|
|
/* f0488f4: 8fa30048 */ lw $v1,0x48($sp)
|
|
/* f0488f8: 16200002 */ bnez $s1,.L0f048904
|
|
/* f0488fc: 00000000 */ nop
|
|
/* f048900: 0007000d */ break 0x7
|
|
.L0f048904:
|
|
/* f048904: 8c8400b8 */ lw $a0,0xb8($a0)
|
|
/* f048908: 0fc0f341 */ jal chrEnableReap
|
|
/* f04890c: 00000000 */ nop
|
|
/* f048910: 8fa30048 */ lw $v1,0x48($sp)
|
|
/* f048914: 00105080 */ sll $t2,$s0,0x2
|
|
/* f048918: 03aa5821 */ addu $t3,$sp,$t2
|
|
/* f04891c: 8c69fffc */ lw $t1,-0x4($v1)
|
|
/* f048920: 2631ffff */ addiu $s1,$s1,-1
|
|
/* f048924: 1000002a */ b .L0f0489d0
|
|
/* f048928: ad6900b8 */ sw $t1,0xb8($t3)
|
|
/* f04892c: 8c8c0030 */ lw $t4,0x30($a0)
|
|
.L0f048930:
|
|
/* f048930: 00127080 */ sll $t6,$s2,0x2
|
|
/* f048934: 028e2821 */ addu $a1,$s4,$t6
|
|
/* f048938: 55800026 */ bnezl $t4,.L0f0489d4
|
|
/* f04893c: 8fac00e0 */ lw $t4,0xe0($sp)
|
|
/* f048940: 26520001 */ addiu $s2,$s2,0x1
|
|
/* f048944: 2a410005 */ slti $at,$s2,0x5
|
|
/* f048948: aca40000 */ sw $a0,0x0($a1)
|
|
/* f04894c: 14200020 */ bnez $at,.L0f0489d0
|
|
/* f048950: 24a50004 */ addiu $a1,$a1,0x4
|
|
/* f048954: 0c004b70 */ jal random
|
|
/* f048958: afa50048 */ sw $a1,0x48($sp)
|
|
/* f04895c: 0052001b */ divu $zero,$v0,$s2
|
|
/* f048960: 00001810 */ mfhi $v1
|
|
/* f048964: 00036880 */ sll $t5,$v1,0x2
|
|
/* f048968: 028d7821 */ addu $t7,$s4,$t5
|
|
/* f04896c: 8df80000 */ lw $t8,0x0($t7)
|
|
/* f048970: 00608025 */ or $s0,$v1,$zero
|
|
/* f048974: 8fa50048 */ lw $a1,0x48($sp)
|
|
/* f048978: 83190007 */ lb $t9,0x7($t8)
|
|
/* f04897c: 16400002 */ bnez $s2,.L0f048988
|
|
/* f048980: 00000000 */ nop
|
|
/* f048984: 0007000d */ break 0x7
|
|
.L0f048988:
|
|
/* f048988: 00034080 */ sll $t0,$v1,0x2
|
|
/* f04898c: 12f90005 */ beq $s7,$t9,.L0f0489a4
|
|
/* f048990: 02884821 */ addu $t1,$s4,$t0
|
|
/* f048994: 8d240000 */ lw $a0,0x0($t1)
|
|
/* f048998: 0fc0c467 */ jal chrBeginDead
|
|
/* f04899c: afa50048 */ sw $a1,0x48($sp)
|
|
/* f0489a0: 8fa50048 */ lw $a1,0x48($sp)
|
|
.L0f0489a4:
|
|
/* f0489a4: 00105080 */ sll $t2,$s0,0x2
|
|
/* f0489a8: 028a1021 */ addu $v0,$s4,$t2
|
|
/* f0489ac: 8c440000 */ lw $a0,0x0($v0)
|
|
/* f0489b0: afa50048 */ sw $a1,0x48($sp)
|
|
/* f0489b4: 0fc0f341 */ jal chrEnableReap
|
|
/* f0489b8: afa20044 */ sw $v0,0x44($sp)
|
|
/* f0489bc: 8fa50048 */ lw $a1,0x48($sp)
|
|
/* f0489c0: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f0489c4: 2652ffff */ addiu $s2,$s2,-1
|
|
/* f0489c8: 8cabfffc */ lw $t3,-0x4($a1)
|
|
/* f0489cc: ac4b0000 */ sw $t3,0x0($v0)
|
|
.L0f0489d0:
|
|
/* f0489d0: 8fac00e0 */ lw $t4,0xe0($sp)
|
|
.L0f0489d4:
|
|
/* f0489d4: 26b50001 */ addiu $s5,$s5,0x1
|
|
/* f0489d8: 26730368 */ addiu $s3,$s3,0x368
|
|
/* f0489dc: 16acff8b */ bne $s5,$t4,.L0f04880c
|
|
/* f0489e0: 00000000 */ nop
|
|
.L0f0489e4:
|
|
/* f0489e4: 8fbf003c */ lw $ra,0x3c($sp)
|
|
/* f0489e8: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f0489ec: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f0489f0: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f0489f4: 8fb30024 */ lw $s3,0x24($sp)
|
|
/* f0489f8: 8fb40028 */ lw $s4,0x28($sp)
|
|
/* f0489fc: 8fb5002c */ lw $s5,0x2c($sp)
|
|
/* f048a00: 8fb60030 */ lw $s6,0x30($sp)
|
|
/* f048a04: 8fb70034 */ lw $s7,0x34($sp)
|
|
/* f048a08: 8fbe0038 */ lw $s8,0x38($sp)
|
|
/* f048a0c: 03e00008 */ jr $ra
|
|
/* f048a10: 27bd00e8 */ addiu $sp,$sp,0xe8
|
|
);
|
|
|
|
// Mismatch because it uses the stack differently.
|
|
//void func0f048398(void)
|
|
//{
|
|
// s32 numchrs = getNumChrSlots(); // e0
|
|
// s32 numalivewithpropflag80; // dc
|
|
// struct chrdata *spb8[10];
|
|
// struct chrdata *spa4[5]; // a4
|
|
// struct chrdata *sp7c[10]; // 7c
|
|
// s32 writeindex;
|
|
// s32 sp74;
|
|
// s32 numreapablewithpropflag80;
|
|
// s32 numalive;
|
|
// s32 s1len;
|
|
// s32 s2len;
|
|
// s32 i;
|
|
// s32 time60;
|
|
//
|
|
// var80062cb0 = 0;
|
|
// var80062cb4 = 0;
|
|
// var80062cb8 = 0;
|
|
// numalivewithpropflag80 = 0;
|
|
// var80062cbc = 0;
|
|
//
|
|
// // 400
|
|
// if (g_Vars.normmplayerisrunning == false) {
|
|
// for (i = 0; i < numchrs; i++) {
|
|
// struct chrdata *chr = &g_ChrSlots[i]; // s0
|
|
//
|
|
// if (chr->model && chr->prop && chrIsDead(chr) == false) {
|
|
// struct prop *targetprop = chrGetTargetProp(chr);
|
|
//
|
|
// if (targetprop && (targetprop->type == PROPTYPE_CHR || targetprop->type == PROPTYPE_PLAYER)) {
|
|
// if ((targetprop->type == PROPTYPE_PLAYER
|
|
// && !(g_Vars.antiplayernum >= 0 && g_Vars.anti && g_Vars.anti->prop == targetprop)
|
|
// && chrCompareTeams(chr, targetprop->chr, COMPARE_ENEMIES))
|
|
// || CHRRACE(targetprop->chr) == RACE_EYESPY) {
|
|
// var80062cb0++;
|
|
//
|
|
// if (chr->lastvisibletarget60 < chr->lastseetarget60) {
|
|
// time60 = chr->lastseetarget60;
|
|
// } else {
|
|
// time60 = chr->lastvisibletarget60;
|
|
// }
|
|
//
|
|
// if (time60) {
|
|
// var80062cb4++;
|
|
//
|
|
// if (g_Vars.lvframe60 - time60 < 240) {
|
|
// var80062cb8++;
|
|
// var80062cbc++;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// // 56c
|
|
// var80068454++;
|
|
//
|
|
// if (var80068454 > 10) {
|
|
// var80068454 = 0;
|
|
// }
|
|
//
|
|
// if (debug0f11eeb0()) {
|
|
// propPrintDangerous();
|
|
// }
|
|
//
|
|
// if (g_Vars.unk0004d2 >= 0) {
|
|
// func0f0482cc(g_Vars.unk0004d2 + 0xc00);
|
|
// g_Vars.unk0004d2 = -1;
|
|
// g_Vars.unk0004d3 = 1;
|
|
// }
|
|
//
|
|
// for (i = 0; i < g_NumBgChrs; i++) {
|
|
// if (g_Vars.unk0004d3 == 0 || (g_BgChrs[i].hidden2 & CHRH2FLAG_0010)) {
|
|
// chrTick(&g_BgChrs[i]);
|
|
// }
|
|
// }
|
|
//
|
|
// // 634
|
|
// numalive = 0;
|
|
// s2len = 0;
|
|
//
|
|
// for (i = 0; i < numchrs; i++) {
|
|
// struct chrdata *chr = &g_ChrSlots[i];
|
|
//
|
|
// // 664
|
|
// if (chr->model && chr->prop) {
|
|
// // 67c
|
|
// if (chr->actiontype != ACT_DEAD && chr->actiontype != ACT_DRUGGEDKO) {
|
|
// numalive++;
|
|
// }
|
|
//
|
|
// // 698
|
|
// if (chr->prop->flags & PROPFLAG_80) {
|
|
// // 6a0
|
|
// if (chr->actiontype != ACT_DEAD && chr->actiontype != ACT_DRUGGEDKO) {
|
|
// numalivewithpropflag80++;
|
|
// } else /*6bc*/ if (chr->actiontype == ACT_DRUGGEDKO) {
|
|
// if ((chr->chrflags & CHRCFLAG_KEEPCORPSEKO) == 0) {
|
|
// numreapablewithpropflag80++;
|
|
// }
|
|
// } else {
|
|
// numreapablewithpropflag80++;
|
|
// }
|
|
// }
|
|
//
|
|
// // 6e0
|
|
// if (chr->actiontype == ACT_DEAD
|
|
// || (chr->actiontype == ACT_DRUGGEDKO && (chr->chrflags & CHRCFLAG_KEEPCORPSEKO) == 0)) {
|
|
// if (chr->hidden2 & CHRH2FLAG_0080) {
|
|
// sp7c[s2len] = chr;
|
|
// s2len++;
|
|
//
|
|
// if (s2len >= 10) {
|
|
// writeindex = random() % s2len;
|
|
// chrFadeCorpse(sp7c[writeindex]);
|
|
// sp7c[writeindex] = sp7c[s2len - 1];
|
|
// s2len--;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// // 790
|
|
// if (var80068458 < numalive) {
|
|
// var80068458 = numalive;
|
|
// }
|
|
//
|
|
// // 7b4
|
|
// sp74 = 5 - numalivewithpropflag80;
|
|
//
|
|
// // 7c8
|
|
// if (g_Vars.lvupdate240_60 > 6) {
|
|
// sp74 = (sp74 - g_Vars.lvupdate240_60) + 6;
|
|
// }
|
|
//
|
|
// // 7dc
|
|
// if (sp74 < 0) {
|
|
// sp74 = 0;
|
|
// }
|
|
//
|
|
// // 7ec
|
|
// if (numreapablewithpropflag80) {
|
|
// numreapablewithpropflag80 = 0;
|
|
// s1len = 0;
|
|
// s2len = 0;
|
|
//
|
|
// for (i = 0; i < numchrs; i++) {
|
|
// struct chrdata *chr = &g_ChrSlots[i];
|
|
//
|
|
// if (chr->model) {
|
|
// if (chr->actiontype == ACT_DEAD
|
|
// || (chr->actiontype == ACT_DRUGGEDKO && chr->prop && (chr->chrflags & CHRCFLAG_KEEPCORPSEKO) == 0)) {
|
|
// if (chr->prop->flags & PROPFLAG_80) {
|
|
// if (chr->act_dead.fadetimer < 0 && !chr->act_dead.allowfade) {
|
|
// numreapablewithpropflag80++;
|
|
//
|
|
// if (sp74 < numreapablewithpropflag80 || chr->aibot) {
|
|
// chrFadeCorpse(chr);
|
|
// numreapablewithpropflag80--;
|
|
// } else {
|
|
// if (chr->act_dead.allowreap == 0) {
|
|
// spb8[s1len] = chr;
|
|
// s1len++;
|
|
//
|
|
// if (s1len >= 2) {
|
|
// writeindex = random() % s1len;
|
|
//
|
|
//
|
|
// chrEnableReap(spb8[writeindex]);
|
|
// spb8[writeindex] = spb8[s1len - 1];
|
|
// s1len--;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// } else {
|
|
// // 938
|
|
// if (chr->act_dead.allowreap == 0) {
|
|
// spa4[s2len] = chr;
|
|
// s2len++;
|
|
//
|
|
// if (s2len >= 5) {
|
|
// writeindex = random() % s2len;
|
|
//
|
|
// if (spa4[writeindex]->actiontype != ACT_DEAD);
|
|
// if (spa4[writeindex]->actiontype != ACT_DEAD) {
|
|
// chrBeginDead(spa4[writeindex]);
|
|
// }
|
|
//
|
|
// chrEnableReap(spa4[writeindex]);
|
|
// spa4[writeindex] = spa4[s2len - 1];
|
|
// s2len--;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
bool chrSawTargetRecently(struct chrdata *chr)
|
|
{
|
|
if (chr->lastseetarget60 > 0 && g_Vars.lvframe60 - chr->lastseetarget60 < 600) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrHeardTargetRecently(struct chrdata *chr)
|
|
{
|
|
if (chr->lastheartarget60 > 0 && g_Vars.lvframe60 - chr->lastheartarget60 < 600) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
f32 chrGetAngleToPos(struct chrdata *chr, struct coord *pos)
|
|
{
|
|
f32 fVar3;
|
|
f32 fVar2;
|
|
f32 fVar4;
|
|
struct prop *prop;
|
|
|
|
if (chr->prop->type == PROPTYPE_PLAYER) {
|
|
u32 playernum = propGetPlayerNum(chr->prop);
|
|
fVar3 = (360 - g_Vars.players[playernum]->vv_theta) * (M_BADTAU / 360);
|
|
} else {
|
|
fVar3 = chrGetInverseTheta(chr);
|
|
}
|
|
|
|
prop = chr->prop;
|
|
fVar2 = atan2f(pos->x - prop->pos.x, pos->z - prop->pos.z);
|
|
fVar4 = fVar2 - fVar3;
|
|
|
|
if (fVar2 < fVar3) {
|
|
fVar4 += M_BADTAU;
|
|
}
|
|
|
|
return fVar4;
|
|
}
|
|
|
|
f32 chrGetAngleToTarget(struct chrdata *chr)
|
|
{
|
|
struct prop *prop = chrGetTargetProp(chr);
|
|
return chrGetAngleToPos(chr, &prop->pos);
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f048b78
|
|
/* f048b78: 27bdff80 */ addiu $sp,$sp,-128
|
|
/* f048b7c: 30ae0004 */ andi $t6,$a1,0x4
|
|
/* f048b80: 11c0001f */ beqz $t6,.L0f048c00
|
|
/* f048b84: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f048b88: 00c02825 */ or $a1,$a2,$zero
|
|
/* f048b8c: afa40080 */ sw $a0,0x80($sp)
|
|
/* f048b90: 0fc126d1 */ jal chrFindById
|
|
/* f048b94: afa7008c */ sw $a3,0x8c($sp)
|
|
/* f048b98: 8fa40080 */ lw $a0,0x80($sp)
|
|
/* f048b9c: 8fa7008c */ lw $a3,0x8c($sp)
|
|
/* f048ba0: 10400004 */ beqz $v0,.L0f048bb4
|
|
/* f048ba4: 00401825 */ or $v1,$v0,$zero
|
|
/* f048ba8: 8c4f001c */ lw $t7,0x1c($v0)
|
|
/* f048bac: 55e00003 */ bnezl $t7,.L0f048bbc
|
|
/* f048bb0: 8c78001c */ lw $t8,0x1c($v1)
|
|
.L0f048bb4:
|
|
/* f048bb4: 00801825 */ or $v1,$a0,$zero
|
|
/* f048bb8: 8c78001c */ lw $t8,0x1c($v1)
|
|
.L0f048bbc:
|
|
/* f048bbc: c7040008 */ lwc1 $f4,0x8($t8)
|
|
/* f048bc0: e4e40000 */ swc1 $f4,0x0($a3)
|
|
/* f048bc4: 8c79001c */ lw $t9,0x1c($v1)
|
|
/* f048bc8: c726000c */ lwc1 $f6,0xc($t9)
|
|
/* f048bcc: e4e60004 */ swc1 $f6,0x4($a3)
|
|
/* f048bd0: 8c68001c */ lw $t0,0x1c($v1)
|
|
/* f048bd4: c5080010 */ lwc1 $f8,0x10($t0)
|
|
/* f048bd8: 10600003 */ beqz $v1,.L0f048be8
|
|
/* f048bdc: e4e80008 */ swc1 $f8,0x8($a3)
|
|
/* f048be0: 10000002 */ b .L0f048bec
|
|
/* f048be4: 8c64001c */ lw $a0,0x1c($v1)
|
|
.L0f048be8:
|
|
/* f048be8: 8c64001c */ lw $a0,0x1c($v1)
|
|
.L0f048bec:
|
|
/* f048bec: 8fa50090 */ lw $a1,0x90($sp)
|
|
/* f048bf0: 0fc195e9 */ jal roomsCopy
|
|
/* f048bf4: 24840028 */ addiu $a0,$a0,0x28
|
|
/* f048bf8: 1000002e */ b .L0f048cb4
|
|
/* f048bfc: 8fbf0014 */ lw $ra,0x14($sp)
|
|
.L0f048c00:
|
|
/* f048c00: 30a90008 */ andi $t1,$a1,0x8
|
|
/* f048c04: 11200014 */ beqz $t1,.L0f048c58
|
|
/* f048c08: 00c02825 */ or $a1,$a2,$zero
|
|
/* f048c0c: 0fc1258b */ jal chrResolvePadId
|
|
/* f048c10: afa7008c */ sw $a3,0x8c($sp)
|
|
/* f048c14: 00402025 */ or $a0,$v0,$zero
|
|
/* f048c18: 24050042 */ addiu $a1,$zero,0x42
|
|
/* f048c1c: 0fc456ac */ jal padUnpack
|
|
/* f048c20: 27a60024 */ addiu $a2,$sp,0x24
|
|
/* f048c24: 8fa7008c */ lw $a3,0x8c($sp)
|
|
/* f048c28: c7aa0024 */ lwc1 $f10,0x24($sp)
|
|
/* f048c2c: 8fa50090 */ lw $a1,0x90($sp)
|
|
/* f048c30: 240bffff */ addiu $t3,$zero,-1
|
|
/* f048c34: e4ea0000 */ swc1 $f10,0x0($a3)
|
|
/* f048c38: c7b00028 */ lwc1 $f16,0x28($sp)
|
|
/* f048c3c: e4f00004 */ swc1 $f16,0x4($a3)
|
|
/* f048c40: c7b2002c */ lwc1 $f18,0x2c($sp)
|
|
/* f048c44: e4f20008 */ swc1 $f18,0x8($a3)
|
|
/* f048c48: 8faa006c */ lw $t2,0x6c($sp)
|
|
/* f048c4c: a4ab0002 */ sh $t3,0x2($a1)
|
|
/* f048c50: 10000017 */ b .L0f048cb0
|
|
/* f048c54: a4aa0000 */ sh $t2,0x0($a1)
|
|
.L0f048c58:
|
|
/* f048c58: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f048c5c: afa7008c */ sw $a3,0x8c($sp)
|
|
/* f048c60: 8fa7008c */ lw $a3,0x8c($sp)
|
|
/* f048c64: c4440008 */ lwc1 $f4,0x8($v0)
|
|
/* f048c68: 24010003 */ addiu $at,$zero,0x3
|
|
/* f048c6c: 00403025 */ or $a2,$v0,$zero
|
|
/* f048c70: e4e40000 */ swc1 $f4,0x0($a3)
|
|
/* f048c74: c446000c */ lwc1 $f6,0xc($v0)
|
|
/* f048c78: e4e60004 */ swc1 $f6,0x4($a3)
|
|
/* f048c7c: c4480010 */ lwc1 $f8,0x10($v0)
|
|
/* f048c80: e4e80008 */ swc1 $f8,0x8($a3)
|
|
/* f048c84: 904c0000 */ lbu $t4,0x0($v0)
|
|
/* f048c88: 8fa50090 */ lw $a1,0x90($sp)
|
|
/* f048c8c: 15810006 */ bne $t4,$at,.L0f048ca8
|
|
/* f048c90: 00000000 */ nop
|
|
/* f048c94: 8c430004 */ lw $v1,0x4($v0)
|
|
/* f048c98: 10600003 */ beqz $v1,.L0f048ca8
|
|
/* f048c9c: 00000000 */ nop
|
|
/* f048ca0: 10000001 */ b .L0f048ca8
|
|
/* f048ca4: 00000000 */ nop
|
|
.L0f048ca8:
|
|
/* f048ca8: 0fc195e9 */ jal roomsCopy
|
|
/* f048cac: 24c40028 */ addiu $a0,$a2,0x28
|
|
.L0f048cb0:
|
|
/* f048cb0: 8fbf0014 */ lw $ra,0x14($sp)
|
|
.L0f048cb4:
|
|
/* f048cb4: 27bd0080 */ addiu $sp,$sp,0x80
|
|
/* f048cb8: 03e00008 */ jr $ra
|
|
/* f048cbc: 00000000 */ nop
|
|
);
|
|
|
|
f32 chrGetAngleFromTargetsFov(struct chrdata *chr)
|
|
{
|
|
f32 targetfacingangle = 0;
|
|
struct prop *prop = chr->prop;
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
f32 xdiff;
|
|
f32 zdiff;
|
|
f32 angletotarget;
|
|
f32 result;
|
|
|
|
if (prop && target) {
|
|
xdiff = prop->pos.f[0] - target->pos.f[0];
|
|
zdiff = prop->pos.f[2] - target->pos.f[2];
|
|
angletotarget = atan2f(xdiff, zdiff);
|
|
|
|
if (target->type == PROPTYPE_PLAYER) {
|
|
s32 playernum = propGetPlayerNum(target);
|
|
targetfacingangle = (360.0f - g_Vars.players[playernum]->vv_theta) * M_BADTAU / 360.0f;
|
|
} else if (target->type == PROPTYPE_CHR) {
|
|
targetfacingangle = chrGetInverseTheta(target->chr);
|
|
}
|
|
|
|
result = angletotarget - targetfacingangle;
|
|
|
|
if (angletotarget < targetfacingangle) {
|
|
result += M_BADTAU;
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
f32 chrGetVerticalAngleToTarget(struct chrdata *chr)
|
|
{
|
|
struct prop *prop = chr->prop;
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
f32 result = 0;
|
|
|
|
if (prop && target) {
|
|
f32 ydiff;
|
|
f32 xdiff;
|
|
f32 zdiff;
|
|
|
|
xdiff = prop->pos.x - target->pos.x;
|
|
ydiff = prop->pos.y - target->pos.y;
|
|
zdiff = prop->pos.z - target->pos.z;
|
|
|
|
result = atan2f(ydiff, sqrtf(xdiff * xdiff + zdiff * zdiff));
|
|
|
|
if (result < 0) {
|
|
result += M_BADTAU;
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
bool chrIsInTargetsFovX(struct chrdata *chr, u8 fov360)
|
|
{
|
|
f32 angle = chrGetAngleFromTargetsFov(chr);
|
|
|
|
if ((angle < fov360 * 0.024539785459638f && angle < M_PI)
|
|
|| (angle > M_BADTAU - fov360 * 0.024539785459638f && angle > M_PI)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrIsVerticalAngleToTargetWithin(struct chrdata *chr, u8 fov360)
|
|
{
|
|
f32 val = chrGetVerticalAngleToTarget(chr);
|
|
|
|
if ((val < fov360 * 0.024539785459638f && val < M_PI)
|
|
|| (val > M_BADTAU - fov360 * 0.024539785459638f && val > M_PI)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
f32 func0f048fcc(struct chrdata *chr, u8 arg1)
|
|
{
|
|
f32 result;
|
|
|
|
struct prop *chrprop = chr->prop;
|
|
struct prop *targetprop = chrGetTargetProp(chr);
|
|
|
|
f32 xdiff = chrprop->pos.x - targetprop->pos.x;
|
|
f32 zdiff = chrprop->pos.z - targetprop->pos.z;
|
|
|
|
f32 angle1 = atan2f(-xdiff, -zdiff);
|
|
f32 angle2 = chrGetInverseTheta(chr) + M_PI * (s32)arg1;
|
|
|
|
result = angle1 - angle2;
|
|
|
|
if (angle1 < angle2) {
|
|
result += M_BADTAU;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
bool chrIsTargetInFov(struct chrdata *chr, u8 arg1, u8 arg2)
|
|
{
|
|
f32 angle = func0f048fcc(chr, arg2);
|
|
|
|
if ((angle < arg1 * 0.024539785459638f && angle < M_PI)
|
|
|| (angle > M_BADTAU - arg1 * 0.024539785459638f && angle > M_PI)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool func0f04911c(struct chrdata *chr, struct coord *pos, u8 arg2)
|
|
{
|
|
f32 angle = chrGetAngleToPos(chr, pos);
|
|
|
|
if ((angle < arg2 * 0.024539785459638f && angle < M_PI) ||
|
|
(M_BADTAU - arg2 * 0.024539785459638f < angle && M_PI < angle)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
f32 chrGetDistanceToTarget(struct chrdata *chr)
|
|
{
|
|
struct prop *prop = chrGetTargetProp(chr);
|
|
return propGetDistanceToProp(chr->prop, prop);
|
|
}
|
|
|
|
// Redundant function - it's the same as above
|
|
f32 chrGetDistanceToTarget2(struct chrdata *chr)
|
|
{
|
|
struct prop *prop = chrGetTargetProp(chr);
|
|
return propGetDistanceToProp(chr->prop, prop);
|
|
}
|
|
|
|
f32 chrGetDistanceToCurrentPlayer(struct chrdata *chr)
|
|
{
|
|
return propGetDistanceToProp(chr->prop, g_Vars.currentplayer->prop);
|
|
}
|
|
|
|
f32 propGetDistanceToProp(struct prop *a, struct prop *b)
|
|
{
|
|
f32 xdiff = a->pos.x - b->pos.x;
|
|
f32 ydiff = a->pos.y - b->pos.y;
|
|
f32 zdiff = a->pos.z - b->pos.z;
|
|
|
|
return sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
|
|
}
|
|
|
|
f32 propGetLateralDistanceToProp(struct prop *a, struct prop *b)
|
|
{
|
|
f32 xdiff = a->pos.x - b->pos.x;
|
|
f32 zdiff = a->pos.z - b->pos.z;
|
|
|
|
return sqrtf(xdiff * xdiff + zdiff * zdiff);
|
|
}
|
|
|
|
f32 chrGetDistanceToPad(struct chrdata *chr, s32 pad_id)
|
|
{
|
|
struct prop *prop = chr->prop;
|
|
f32 xdiff, ydiff, zdiff;
|
|
f32 distance = 0;
|
|
struct pad pad;
|
|
pad_id = chrResolvePadId(chr, pad_id);
|
|
|
|
if (pad_id >= 0) {
|
|
padUnpack(pad_id, PADFIELD_POS, &pad);
|
|
xdiff = pad.pos.x - prop->pos.x;
|
|
ydiff = pad.pos.y - prop->pos.y;
|
|
zdiff = pad.pos.z - prop->pos.z;
|
|
distance = sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
|
|
}
|
|
|
|
return distance;
|
|
}
|
|
|
|
f32 chrGetSameFloorDistanceToPad(struct chrdata *chr, s32 pad_id)
|
|
{
|
|
struct prop *prop = chr->prop;
|
|
f32 xdiff, ydiff, zdiff, ydiff_absolute;
|
|
struct pad pad;
|
|
f32 ret;
|
|
|
|
pad_id = chrResolvePadId(chr, pad_id);
|
|
padUnpack(pad_id, PADFIELD_POS, &pad);
|
|
xdiff = pad.pos.x - prop->pos.x;
|
|
ydiff = pad.pos.y - prop->pos.y;
|
|
zdiff = pad.pos.z - prop->pos.z;
|
|
|
|
if (ydiff > 0) {
|
|
ydiff_absolute = ydiff;
|
|
} else {
|
|
ydiff_absolute = -ydiff;
|
|
}
|
|
|
|
if (ydiff_absolute < 150) {
|
|
ret = sqrtf(xdiff * xdiff + zdiff * zdiff);
|
|
} else {
|
|
ret = 100000000;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
f32 chrGetDistanceToCoord(struct chrdata *chr, struct coord *pos)
|
|
{
|
|
f32 xdiff = pos->x - chr->prop->pos.x;
|
|
f32 ydiff = pos->y - chr->prop->pos.y;
|
|
f32 zdiff = pos->z - chr->prop->pos.z;
|
|
|
|
return sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
|
|
}
|
|
|
|
f32 chrGetLateralDistanceToCoord(struct chrdata *chr, struct coord *pos)
|
|
{
|
|
f32 xdiff = pos->x - chr->prop->pos.x;
|
|
f32 zdiff = pos->z - chr->prop->pos.z;
|
|
|
|
return sqrtf(xdiff * xdiff + zdiff * zdiff);
|
|
}
|
|
|
|
f32 chrGetLateralDistanceToPad(struct chrdata *chr, s32 pad_id)
|
|
{
|
|
struct prop *prop = chr->prop;
|
|
f32 xdiff, zdiff;
|
|
struct pad pad;
|
|
f32 distance = 0;
|
|
pad_id = chrResolvePadId(chr, pad_id);
|
|
|
|
if (pad_id >= 0) {
|
|
padUnpack(pad_id, PADFIELD_POS, &pad);
|
|
xdiff = pad.pos.x - prop->pos.x;
|
|
zdiff = pad.pos.z - prop->pos.z;
|
|
distance = sqrtf(xdiff * xdiff + zdiff * zdiff);
|
|
}
|
|
|
|
return distance;
|
|
}
|
|
|
|
f32 chrGetSquaredDistanceToCoord(struct chrdata *chr, struct coord *pos)
|
|
{
|
|
f32 xdiff = pos->x - chr->prop->pos.x;
|
|
f32 ydiff = pos->y - chr->prop->pos.y;
|
|
f32 zdiff = pos->z - chr->prop->pos.z;
|
|
|
|
return xdiff * xdiff + ydiff * ydiff + zdiff * zdiff;
|
|
}
|
|
|
|
f32 coordGetSquaredDistanceToCoord(struct coord *a, struct coord *b)
|
|
{
|
|
f32 xdiff = a->x - b->x;
|
|
f32 ydiff = a->y - b->y;
|
|
f32 zdiff = a->z - b->z;
|
|
|
|
return xdiff * xdiff + ydiff * ydiff + zdiff * zdiff;
|
|
}
|
|
|
|
s32 chrGetPadRoom(struct chrdata *chr, s32 pad_id)
|
|
{
|
|
s32 ret = -1;
|
|
s32 pad_id_backup = pad_id;
|
|
struct pad pad;
|
|
|
|
if (pad_id >= 10000) {
|
|
s32 resolved_pad_id = chrResolvePadId(chr, pad_id - 10000);
|
|
|
|
if (resolved_pad_id >= 0) {
|
|
padUnpack(resolved_pad_id, PADFIELD_ROOM, &pad);
|
|
ret = pad.room;
|
|
}
|
|
} else {
|
|
ret = pad_id;
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
s32 chrResolvePadId(struct chrdata *chr, s32 pad_id)
|
|
{
|
|
if (pad_id == 9000) {
|
|
pad_id = chr->padpreset1;
|
|
}
|
|
|
|
return pad_id;
|
|
}
|
|
|
|
/**
|
|
* For all chrs, clear their target and p1p2 values if set to the given player.
|
|
*
|
|
* This function is called when the given player has died. It causes all guards
|
|
* to switch their focus to the remaining coop player.
|
|
*/
|
|
void chrsClearRefsToPlayer(s32 playernum)
|
|
{
|
|
s32 otherplayernum;
|
|
s32 playerpropnum;
|
|
s32 i;
|
|
|
|
if (g_Vars.coopplayernum >= 0) {
|
|
if (playernum == g_Vars.bondplayernum) {
|
|
otherplayernum = g_Vars.coopplayernum;
|
|
playerpropnum = g_Vars.bond->prop - g_Vars.props;
|
|
} else {
|
|
otherplayernum = g_Vars.bondplayernum;
|
|
playerpropnum = g_Vars.coop->prop - g_Vars.props;
|
|
}
|
|
|
|
for (i = 0; i < getNumChrSlots(); i++) {
|
|
if (g_ChrSlots[i].p1p2 == playernum) {
|
|
g_ChrSlots[i].p1p2 = otherplayernum;
|
|
}
|
|
|
|
if (g_ChrSlots[i].target == playerpropnum) {
|
|
g_ChrSlots[i].target = -1;
|
|
}
|
|
}
|
|
|
|
for (i = 0; i < g_NumBgChrs; i++) {
|
|
if (g_BgChrs[i].p1p2 == playernum) {
|
|
g_BgChrs[i].p1p2 = otherplayernum;
|
|
}
|
|
|
|
if (g_BgChrs[i].target == playerpropnum) {
|
|
g_BgChrs[i].target = -1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
s32 chrResolveId(struct chrdata *ref, s32 id)
|
|
{
|
|
if (ref) {
|
|
switch (id) {
|
|
case CHR_SEESHOT:
|
|
id = ref->chrseeshot;
|
|
break;
|
|
case CHR_SEEDIE:
|
|
id = ref->chrseedie;
|
|
break;
|
|
case CHR_PRESET:
|
|
id = ref->chrpreset1;
|
|
break;
|
|
case CHR_SELF:
|
|
id = ref->chrnum;
|
|
break;
|
|
case CHR_CLONE:
|
|
id = ref->chrdup;
|
|
break;
|
|
case CHR_BOND:
|
|
if (g_Vars.bond && g_Vars.bond->prop && g_Vars.bond->prop->chr) {
|
|
id = g_Vars.bond->prop->chr->chrnum;
|
|
}
|
|
break;
|
|
case CHR_COOP:
|
|
if (g_Vars.coop && g_Vars.coop->prop && g_Vars.coop->prop->chr) {
|
|
id = g_Vars.coop->prop->chr->chrnum;
|
|
}
|
|
break;
|
|
case CHR_ANTI:
|
|
if (g_Vars.anti && g_Vars.anti->prop && g_Vars.anti->prop->chr) {
|
|
id = g_Vars.anti->prop->chr->chrnum;
|
|
}
|
|
break;
|
|
case CHR_P1P2:
|
|
{
|
|
u32 index = g_Vars.coopplayernum >= 0 ? ref->p1p2 : g_Vars.bondplayernum;
|
|
struct player *player = g_Vars.players[index];
|
|
if (player && player->prop && player->prop->chr) {
|
|
id = player->prop->chr->chrnum;
|
|
}
|
|
}
|
|
break;
|
|
case CHR_P1P2_OPPOSITE:
|
|
if (g_Vars.coopplayernum >= 0) {
|
|
struct player *player = g_Vars.players[1 - ref->p1p2];
|
|
if (player && player->prop && player->prop->chr) {
|
|
id = player->prop->chr->chrnum;
|
|
}
|
|
}
|
|
break;
|
|
case CHR_TARGET:
|
|
{
|
|
struct prop *target = chrGetTargetProp(ref);
|
|
if ((target->type == PROPTYPE_CHR || target->type == PROPTYPE_PLAYER) && target->chr) {
|
|
id = target->chr->chrnum;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
} else { // ref is NULL
|
|
switch (id) {
|
|
case CHR_BOND:
|
|
if (g_Vars.bond && g_Vars.bond->prop && g_Vars.bond->prop->chr) {
|
|
id = g_Vars.bond->prop->chr->chrnum;
|
|
}
|
|
break;
|
|
case CHR_COOP:
|
|
if (g_Vars.coop && g_Vars.coop->prop && g_Vars.coop->prop->chr) {
|
|
id = g_Vars.coop->prop->chr->chrnum;
|
|
}
|
|
break;
|
|
case CHR_ANTI:
|
|
if (g_Vars.anti && g_Vars.anti->prop && g_Vars.anti->prop->chr) {
|
|
id = g_Vars.anti->prop->chr->chrnum;
|
|
}
|
|
break;
|
|
case CHR_P1P2:
|
|
{
|
|
struct player *player = g_Vars.players[g_Vars.bondplayernum];
|
|
if (player && player->prop && player->prop->chr) {
|
|
id = player->prop->chr->chrnum;
|
|
}
|
|
}
|
|
break;
|
|
case CHR_P1P2_OPPOSITE:
|
|
if (g_Vars.coopplayernum >= 0) {
|
|
struct player *player = g_Vars.players[g_Vars.coopplayernum];
|
|
if (player && player->prop && player->prop->chr) {
|
|
id = player->prop->chr->chrnum;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
return id;
|
|
}
|
|
|
|
struct chrdata *chrFindById(struct chrdata *basechr, s32 chrnum)
|
|
{
|
|
struct chrdata *chr;
|
|
s32 lower;
|
|
s32 upper;
|
|
s32 i;
|
|
|
|
chrnum = chrResolveId(basechr, chrnum);
|
|
chr = chrFindByLiteralId(chrnum);
|
|
|
|
if (chr) {
|
|
return chr;
|
|
}
|
|
|
|
lower = 0;
|
|
upper = g_NumBgChrs;
|
|
|
|
while (upper >= lower) {
|
|
i = (lower + upper) / 2;
|
|
|
|
if (chrnum == g_BgChrnums[i]) {
|
|
return &g_BgChrs[i];
|
|
}
|
|
|
|
if (chrnum < g_BgChrnums[i]) {
|
|
upper = i - 1;
|
|
} else {
|
|
lower = i + 1;
|
|
}
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
s32 propGetIndexByChrId(struct chrdata *basechr, s32 chrnum)
|
|
{
|
|
s32 index;
|
|
|
|
if (chrnum == CHR_BOND || chrnum == CHR_BOND) {
|
|
index = g_Vars.bond->prop - g_Vars.props;
|
|
} else {
|
|
struct chrdata *chr = chrFindById(basechr, chrnum);
|
|
|
|
if (chr && chr->prop) {
|
|
index = chr->prop - g_Vars.props;
|
|
} else {
|
|
index = -1;
|
|
}
|
|
}
|
|
|
|
return index;
|
|
}
|
|
|
|
f32 chrGetDistanceToChr(struct chrdata *chr1, s32 chr2num)
|
|
{
|
|
struct prop *prop1 = chr1->prop;
|
|
struct chrdata *chr2 = chrFindById(chr1, chr2num);
|
|
f32 distance = 0;
|
|
|
|
if (chr2 && chr2->prop) {
|
|
f32 xdiff = chr2->prop->pos.x - prop1->pos.x;
|
|
f32 ydiff = chr2->prop->pos.y - prop1->pos.y;
|
|
f32 zdiff = chr2->prop->pos.z - prop1->pos.z;
|
|
distance = sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
|
|
}
|
|
|
|
return distance;
|
|
}
|
|
|
|
f32 chrGetDistanceFromTargetToPad(struct chrdata *chr, s32 pad_id)
|
|
{
|
|
struct prop *prop = chrGetTargetProp(chr);
|
|
f32 xdiff, ydiff, zdiff;
|
|
struct pad pad;
|
|
f32 distance = 0;
|
|
pad_id = chrResolvePadId(chr, pad_id);
|
|
|
|
if (pad_id >= 0) {
|
|
padUnpack(pad_id, PADFIELD_POS, &pad);
|
|
xdiff = pad.pos.x - prop->pos.x;
|
|
ydiff = pad.pos.y - prop->pos.y;
|
|
zdiff = pad.pos.z - prop->pos.z;
|
|
distance = sqrtf(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
|
|
}
|
|
|
|
return distance;
|
|
}
|
|
|
|
void chrSetFlags(struct chrdata *chr, u32 flags, u8 bank)
|
|
{
|
|
if (bank == 0) {
|
|
chr->flags |= flags;
|
|
} else {
|
|
chr->flags2 |= flags;
|
|
}
|
|
}
|
|
|
|
void chrUnsetFlags(struct chrdata *chr, u32 flags, u8 bank)
|
|
{
|
|
if (bank == 0) {
|
|
chr->flags &= ~flags;
|
|
} else {
|
|
chr->flags2 &= ~flags;
|
|
}
|
|
}
|
|
|
|
bool chrHasFlag(struct chrdata *chr, u32 flag, u8 bank)
|
|
{
|
|
if (bank == 0) {
|
|
return (chr->flags & flag) != 0;
|
|
} else {
|
|
return (chr->flags2 & flag) != 0;
|
|
}
|
|
}
|
|
|
|
void chrSetFlagsById(struct chrdata *ref, u32 chrnum, u32 flags, u32 bank)
|
|
{
|
|
struct chrdata *chr = chrFindById(ref, chrnum);
|
|
|
|
if (chr) {
|
|
chrSetFlags(chr, flags, bank);
|
|
}
|
|
}
|
|
|
|
void chrUnsetFlagsById(struct chrdata *ref, u32 chrnum, u32 flags, u32 bank)
|
|
{
|
|
struct chrdata *chr = chrFindById(ref, chrnum);
|
|
|
|
if (chr) {
|
|
chrUnsetFlags(chr, flags, bank);
|
|
}
|
|
}
|
|
|
|
bool chrHasFlagById(struct chrdata *ref, u32 chrnum, u32 flag, u32 bank)
|
|
{
|
|
struct chrdata *chr = chrFindById(ref, chrnum);
|
|
|
|
if (chr) {
|
|
return chrHasFlag(chr, flag, bank);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void chrSetStageFlag(struct chrdata *chr, u32 flag)
|
|
{
|
|
g_StageFlags |= flag;
|
|
}
|
|
|
|
void chrUnsetStageFlag(struct chrdata *chr, u32 flag)
|
|
{
|
|
g_StageFlags = g_StageFlags & ~flag;
|
|
}
|
|
|
|
bool chrHasStageFlag(struct chrdata *chr, u32 flag)
|
|
{
|
|
return (g_StageFlags & flag) != 0;
|
|
}
|
|
|
|
bool chrIsHearingTarget(struct chrdata *chr)
|
|
{
|
|
return (chr->hidden & CHRHFLAG_IS_HEARING_TARGET) != 0;
|
|
}
|
|
|
|
void chrRestartTimer(struct chrdata *chr)
|
|
{
|
|
chr->timer60 = 0;
|
|
chr->hidden |= CHRHFLAG_TIMER_RUNNING;
|
|
}
|
|
|
|
f32 chrGetTimer(struct chrdata *chr)
|
|
{
|
|
return chr->timer60 * FRAMEDURATION;
|
|
}
|
|
|
|
bool chrCanSeeTargetWithExtraCheck(struct chrdata *chr)
|
|
{
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
|
|
if (target) {
|
|
if (target->type == PROPTYPE_CHR) {
|
|
if (!chrCanSeeTarget(chr)) {
|
|
return false;
|
|
}
|
|
|
|
return chrIsInTargetsFovX(chr, 20);
|
|
}
|
|
|
|
if (target->type == PROPTYPE_PLAYER) {
|
|
if (g_Vars.bondvisible &&
|
|
(hasLineOfSight(&target->pos, target->rooms, &chr->prop->pos, chr->prop->rooms, 51, 8))) {
|
|
struct model *model = chr->model;
|
|
struct coord sp68;
|
|
struct coord sp56;
|
|
struct coord sp44;
|
|
f32 somefloat = func0001af80(model) * 0.8f;
|
|
|
|
func0f0a0c08(&sp68, &sp56);
|
|
modelGetRootPosition(model, &sp44);
|
|
func00015b64(currentPlayerGetMatrix1740(), &sp44);
|
|
|
|
if (func0f06b39c(&sp68, &sp56, &sp44, somefloat)) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrResetNearMiss(struct chrdata *chr)
|
|
{
|
|
bool has_flag = (chr->chrflags & CHRCFLAG_NEAR_MISS) != 0;
|
|
chr->chrflags &= ~CHRCFLAG_NEAR_MISS;
|
|
|
|
return has_flag;
|
|
}
|
|
|
|
s32 chrGetNumArghs(struct chrdata *chr)
|
|
{
|
|
return chr->numarghs;
|
|
}
|
|
|
|
s32 chrGetNumCloseArghs(struct chrdata *chr)
|
|
{
|
|
return chr->numclosearghs;
|
|
}
|
|
|
|
bool chrSawInjury(struct chrdata *chr, u8 arg1)
|
|
{
|
|
bool saw_injury = chr->chrseeshot >= 0;
|
|
|
|
if (saw_injury && arg1 == 0) {
|
|
chr->chrseeshot = -1;
|
|
} else if (saw_injury && arg1 == 1) {
|
|
struct chrdata *victim = chrFindById(chr, chr->chrseeshot);
|
|
|
|
if (victim && !chrCompareTeams(chr, victim, COMPARE_FRIENDS)) {
|
|
saw_injury = false;
|
|
}
|
|
} else {
|
|
chr->chrseeshot = -1;
|
|
}
|
|
|
|
return saw_injury;
|
|
}
|
|
|
|
bool chrSawDeath(struct chrdata *chr, u8 arg1)
|
|
{
|
|
bool saw_death = chr->chrseedie >= 0;
|
|
|
|
// The commented line below was likely originally there but removed before
|
|
// the final version. Compare with chrSawInjury above.
|
|
if (saw_death && arg1 == 0) {
|
|
//chr->chrseedie = -1;
|
|
} else if (saw_death && arg1 == 1) {
|
|
struct chrdata *victim = chrFindById(chr, chr->chrseedie);
|
|
|
|
if (victim && !chrCompareTeams(chr, victim, COMPARE_FRIENDS)) {
|
|
saw_death = false;
|
|
chr->chrseedie = -1;
|
|
}
|
|
} else {
|
|
chr->chrseedie = -1;
|
|
}
|
|
|
|
return saw_death;
|
|
}
|
|
|
|
void decrementByte(u8 *dst, u8 amount)
|
|
{
|
|
if (*dst < amount) {
|
|
*dst = 0;
|
|
return;
|
|
}
|
|
|
|
*dst -= amount;
|
|
}
|
|
|
|
void incrementByte(u8 *dst, u8 amount)
|
|
{
|
|
if (0xff - amount < *dst) {
|
|
*dst = 0xff;
|
|
return;
|
|
}
|
|
|
|
*dst += amount;
|
|
}
|
|
|
|
bool chrCanHearAlarm(struct chrdata *chr)
|
|
{
|
|
return alarmIsActive();
|
|
}
|
|
|
|
bool waypointIsWithin90DegreesOfPosAngle(struct waypoint *waypoint, struct coord *pos, f32 angle)
|
|
{
|
|
u32 stack[3];
|
|
f32 diffangle;
|
|
struct pad pad;
|
|
|
|
padUnpack(waypoint->padnum, PADFIELD_POS, &pad);
|
|
|
|
diffangle = angle - atan2f(pad.pos.x - pos->x, pad.pos.z - pos->z);
|
|
|
|
if (diffangle < 0) {
|
|
diffangle += M_BADTAU;
|
|
}
|
|
|
|
if (diffangle < 1.5705462694168f || diffangle > 4.7116389274597f) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Attempt to find a waypoint near pos which is in a particular quadrant to pos,
|
|
* then return its padnum.
|
|
*
|
|
* For example, pos is typically the player's position, angle is the direction
|
|
* the player is facing, and quadrant is which quadrant (front/back/left/right)
|
|
* that is desired relative to the player's position and angle.
|
|
*
|
|
* The function starts by finding the closest waypoint to the pos. If it's not
|
|
* in the quadrant then its neighouring waypoints are checked too. If none of
|
|
* those are in the quadrant then no further checks are made and the function
|
|
* returns -1.
|
|
*/
|
|
s32 chrFindWaypointWithinPosQuadrant(struct coord *pos, s16 *rooms, f32 angle, u8 quadrant)
|
|
{
|
|
struct waypoint *waypoint = waypointFindClosestToPos(pos, rooms);
|
|
s32 neighbournum;
|
|
s32 i;
|
|
|
|
if (waypoint) {
|
|
switch (quadrant) {
|
|
case QUADRANT_BACK:
|
|
angle += M_BADPI;
|
|
break;
|
|
case QUADRANT_SIDE1:
|
|
angle += 1.5705462694168f;
|
|
break;
|
|
case QUADRANT_SIDE2:
|
|
angle += 4.7116389274597f;
|
|
break;
|
|
case QUADRANT_FRONT:
|
|
break;
|
|
}
|
|
|
|
if (angle >= M_BADTAU) {
|
|
angle -= M_BADTAU;
|
|
}
|
|
|
|
if (waypointIsWithin90DegreesOfPosAngle(waypoint, pos, angle)) {
|
|
return waypoint->padnum;
|
|
}
|
|
|
|
for (i = 0; (neighbournum = waypoint->neighbours[i]) >= 0; i++) {
|
|
if ((neighbournum & 0x8000) == 0) {
|
|
neighbournum &= 0x3fff;
|
|
|
|
if (waypointIsWithin90DegreesOfPosAngle(&g_StageSetup.waypoints[neighbournum], pos, angle)) {
|
|
return g_StageSetup.waypoints[neighbournum].padnum;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
bool func0f04a4ec(struct chrdata *chr, u8 quadrant)
|
|
{
|
|
if (quadrant == QUADRANT_2NDWPTOTARGET || quadrant == QUADRANT_20) {
|
|
struct prop *prop = chr->prop;
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
|
|
struct waypoint *fromwp = waypointFindClosestToPos(&prop->pos, prop->rooms);
|
|
struct waypoint *towp = waypointFindClosestToPos(&target->pos, target->rooms);
|
|
|
|
// @dangerous: I'm creating an array overflow here to get a match.
|
|
// waypoints should have len 3 but this causes a mismatch due to too
|
|
// much stack usage. If compiling using anything other than IDO and -O2
|
|
// then this will need to be changed to 3.
|
|
s32 numwaypoints;
|
|
struct waypoint *waypoints[2];
|
|
u32 hash;
|
|
|
|
if (fromwp && towp) {
|
|
if (quadrant == QUADRANT_2NDWPTOTARGET) {
|
|
hash = (g_Vars.lvframe60 >> 9) * 128 + chr->chrnum * 8;
|
|
|
|
waypointSetHashThing(hash, hash);
|
|
numwaypoints = waypointFindRoute(fromwp, towp, waypoints, 3);
|
|
waypointSetHashThing(0, 0);
|
|
|
|
if (numwaypoints >= 3) {
|
|
chr->padpreset1 = waypoints[1]->padnum;
|
|
return true;
|
|
}
|
|
} else {
|
|
hash = (g_Vars.lvframe60 >> 9) * 128 + chr->chrnum * 8;
|
|
|
|
waypointSetHashThing(hash, hash);
|
|
fromwp = func0f1155e0(fromwp, towp);
|
|
waypointSetHashThing(0, 0);
|
|
|
|
if (fromwp) {
|
|
chr->padpreset1 = fromwp->padnum;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
s32 padnum = chrFindWaypointWithinPosQuadrant(&chr->prop->pos, chr->prop->rooms, chrGetInverseTheta(chr), quadrant);
|
|
|
|
if (padnum >= 0) {
|
|
chr->padpreset1 = padnum;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrSetPadPresetToWaypointWithinTargetQuadrant(struct chrdata *chr, u8 quadrant)
|
|
{
|
|
f32 angle;
|
|
s32 padnum;
|
|
struct prop *prop;
|
|
|
|
if (quadrant == QUADRANT_2NDWPTOTARGET || quadrant == QUADRANT_20) {
|
|
return func0f04a4ec(chr, quadrant);
|
|
}
|
|
|
|
angle = 0;
|
|
prop = chrGetTargetProp(chr);
|
|
|
|
if (prop->type == PROPTYPE_PLAYER) {
|
|
angle = (360.0f - g_Vars.players[propGetPlayerNum(prop)]->vv_theta) * M_BADTAU / 360.0f;
|
|
} else if (prop->type == PROPTYPE_CHR) {
|
|
angle = chrGetInverseTheta(prop->chr);
|
|
}
|
|
|
|
padnum = chrFindWaypointWithinPosQuadrant(&prop->pos, prop->rooms, angle, quadrant);
|
|
|
|
if (padnum >= 0) {
|
|
chr->padpreset1 = padnum;
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrSetChrPresetToAnyChrNearSelf(struct chrdata *chr, f32 distance)
|
|
{
|
|
return chrSetChrPresetToChrNearSelf(COMPARE_ANY, chr, distance);
|
|
}
|
|
|
|
bool chrSetChrPresetToChrNearSelf(u8 checktype, struct chrdata *chr, f32 distance)
|
|
{
|
|
return chrSetChrPresetToChrNearPos(checktype, chr, distance, &chr->prop->pos, chr->prop->rooms);
|
|
}
|
|
|
|
bool chrSetChrPresetToChrNearPad(u32 checktype, struct chrdata *chr, f32 distance, s32 padnum)
|
|
{
|
|
struct pad pad;
|
|
s16 rooms[2];
|
|
|
|
padnum = chrResolvePadId(chr, padnum);
|
|
padUnpack(padnum, PADFIELD_POS | PADFIELD_ROOM, &pad);
|
|
|
|
rooms[0] = pad.room;
|
|
rooms[1] = -1;
|
|
|
|
return chrSetChrPresetToChrNearPos(checktype, chr, distance, &pad.pos, rooms);
|
|
}
|
|
|
|
bool chrSetChrPresetToChrNearPos(u8 checktype, struct chrdata *chr, f32 distance, struct coord *pos, s16 *rooms)
|
|
{
|
|
s32 i;
|
|
s16 *propnumptr;
|
|
s16 propnums[256];
|
|
s16 allrooms[21];
|
|
f32 xmin = pos->x - distance;
|
|
f32 xmax = pos->x + distance;
|
|
f32 ymin = pos->y - distance;
|
|
f32 ymax = pos->y + distance;
|
|
f32 zmin = pos->z - distance;
|
|
f32 zmax = pos->z + distance;
|
|
s16 neighbours[11];
|
|
|
|
roomsCopy(rooms, allrooms);
|
|
|
|
for (i = 0; rooms[i] != -1; i++) {
|
|
roomGetNeighbours(rooms[i], neighbours, 10);
|
|
roomsAppend(neighbours, allrooms, 20);
|
|
}
|
|
|
|
roomGetProps(allrooms, propnums, 256);
|
|
|
|
propnumptr = propnums;
|
|
|
|
while (*propnumptr >= 0) {
|
|
struct prop *prop = &g_Vars.props[*propnumptr];
|
|
|
|
if (prop->type == PROPTYPE_CHR || prop->type == PROPTYPE_PLAYER) {
|
|
struct chrdata *loopchr = prop->chr;
|
|
|
|
if (loopchr->chrnum != chr->chrnum
|
|
&& !chrIsDead(loopchr)
|
|
&& prop->pos.x >= xmin
|
|
&& prop->pos.x <= xmax
|
|
&& prop->pos.y >= ymin
|
|
&& prop->pos.y <= ymax
|
|
&& prop->pos.z >= zmin
|
|
&& prop->pos.z <= zmax
|
|
&& chrCompareTeams(loopchr, chr, checktype)) {
|
|
chr->chrpreset1 = loopchr->chrnum;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
*propnumptr++;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool chrCompareTeams(struct chrdata *chr1, struct chrdata *chr2, u8 checktype)
|
|
{
|
|
if (chr1 && chr1->prop) {
|
|
if (checktype == COMPARE_ANY) {
|
|
return true;
|
|
}
|
|
|
|
if (checktype == COMPARE_FRIENDS) { // Return true if chrs are friends
|
|
if (g_Vars.normmplayerisrunning) {
|
|
if ((g_MpSetup.options & MPOPTION_TEAMSENABLED) && chr2->team == chr1->team) {
|
|
return true;
|
|
}
|
|
} else {
|
|
if (g_Vars.bond && g_Vars.bond->prop) {
|
|
struct chrdata *playerchr = g_Vars.bond->prop->chr;
|
|
|
|
// @bug: This makes Jon an ally in Duel
|
|
if ((chr2 == playerchr && chr1->headnum == HEAD_JONATHAN) ||
|
|
(chr1 == playerchr && chr2->headnum == HEAD_JONATHAN)) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
if ((chr2->team & chr1->team) != 0) {
|
|
return true;
|
|
}
|
|
}
|
|
} else if (checktype == COMPARE_ENEMIES) { // Return true if chrs are enemies
|
|
if (g_Vars.normmplayerisrunning) {
|
|
if ((g_MpSetup.options & MPOPTION_TEAMSENABLED) == 0 || chr2->team != chr1->team) {
|
|
return true;
|
|
}
|
|
} else {
|
|
if (g_Vars.bond && g_Vars.bond->prop) {
|
|
struct chrdata *playerchr = g_Vars.bond->prop->chr;
|
|
|
|
// @bug: This makes Jon an ally in Duel
|
|
if ((chr2 == playerchr && chr1->headnum == HEAD_JONATHAN) ||
|
|
(chr1 == playerchr && chr2->headnum == HEAD_JONATHAN)) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if ((chr2->team & chr1->team) == 0) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void chrSetChrPreset(struct chrdata *chr, s32 chrpreset)
|
|
{
|
|
chr->chrpreset1 = chrResolveId(chr, chrpreset);
|
|
}
|
|
|
|
void chrSetChrPresetByChrnum(struct chrdata *basechr, s32 chrnum, s32 chrpreset)
|
|
{
|
|
struct chrdata *chr = chrFindById(basechr, chrnum);
|
|
|
|
if (chr) {
|
|
chr->chrpreset1 = chrResolveId(basechr, chrpreset);
|
|
}
|
|
}
|
|
|
|
void chrSetPadPreset(struct chrdata *chr, s32 pad_id)
|
|
{
|
|
chr->padpreset1 = chrResolvePadId(chr, pad_id);
|
|
}
|
|
|
|
void chrSetPadPresetByChrnum(struct chrdata *basechr, s32 chrnum, s32 pad_id)
|
|
{
|
|
struct chrdata *chr = chrFindById(basechr, chrnum);
|
|
|
|
if (chr) {
|
|
chr->padpreset1 = chrResolvePadId(basechr, pad_id);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check if chr has line of sight (I think?) to their target. If so, find a
|
|
* route to them, then iterate the route backwards (from target to chr). Find
|
|
* the first waypoint with line of sight and store it as the chr's pad preset.
|
|
*/
|
|
bool chrSetPadPresetToPadOnRouteToTarget(struct chrdata *chr)
|
|
{
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
struct prop *prop = chr->prop;
|
|
struct waypoint *fromwp;
|
|
struct waypoint *towp;
|
|
struct waypoint *waypoints[5];
|
|
s32 numwaypoints;
|
|
s32 i;
|
|
struct pad pad;
|
|
|
|
if (target->type != PROPTYPE_PLAYER || g_Vars.bondvisible) {
|
|
if (func0002dc18(&prop->pos, prop->rooms, &target->pos, CDTYPE_BG)) {
|
|
return false;
|
|
}
|
|
|
|
fromwp = waypointFindClosestToPos(&prop->pos, prop->rooms);
|
|
towp = waypointFindClosestToPos(&target->pos, target->rooms);
|
|
|
|
if (fromwp && towp) {
|
|
u32 hash = (g_Vars.lvframe60 >> 9) * 128 + chr->chrnum * 8;
|
|
|
|
// Note from/to are swapped here, so the route is from target to chr
|
|
waypointSetHashThing(hash, hash);
|
|
numwaypoints = waypointFindRoute(towp, fromwp, waypoints, 5);
|
|
waypointSetHashThing(0, 0);
|
|
|
|
if (numwaypoints >= 3) {
|
|
for (i = 0; waypoints[i] != NULL; i++) {
|
|
struct waypoint *wp = waypoints[i];
|
|
|
|
padUnpack(wp->padnum, PADFIELD_POS, &pad);
|
|
|
|
if (func0002dc18(&target->pos, target->rooms, &pad.pos, CDTYPE_BG)) {
|
|
if (func0002dc18(&prop->pos, prop->rooms, &pad.pos, CDTYPE_BG)) {
|
|
chr->padpreset1 = wp->padnum;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f04aeb0
|
|
/* f04aeb0: 27bdffd0 */ addiu $sp,$sp,-48
|
|
/* f04aeb4: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f04aeb8: afa50034 */ sw $a1,0x34($sp)
|
|
/* f04aebc: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f04aec0: afb20020 */ sw $s2,0x20($sp)
|
|
/* f04aec4: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f04aec8: afb00018 */ sw $s0,0x18($sp)
|
|
/* f04aecc: afa40030 */ sw $a0,0x30($sp)
|
|
/* f04aed0: afae002c */ sw $t6,0x2c($sp)
|
|
/* f04aed4: 0fc599be */ jal func0f1666f8
|
|
/* f04aed8: 24050000 */ addiu $a1,$zero,0x0
|
|
/* f04aedc: 50400023 */ beqzl $v0,.L0f04af6c
|
|
/* f04aee0: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f04aee4: 8fa20034 */ lw $v0,0x34($sp)
|
|
/* f04aee8: 2412ffff */ addiu $s2,$zero,-1
|
|
/* f04aeec: 00008825 */ or $s1,$zero,$zero
|
|
/* f04aef0: 844f0000 */ lh $t7,0x0($v0)
|
|
/* f04aef4: 00408025 */ or $s0,$v0,$zero
|
|
/* f04aef8: 524f000f */ beql $s2,$t7,.L0f04af38
|
|
/* f04aefc: 0011c040 */ sll $t8,$s1,0x1
|
|
/* f04af00: 84440000 */ lh $a0,0x0($v0)
|
|
.L0f04af04:
|
|
/* f04af04: 0fc575ba */ jal roomIsVisibleByAnyPlayer
|
|
/* f04af08: 00000000 */ nop
|
|
/* f04af0c: 50400004 */ beqzl $v0,.L0f04af20
|
|
/* f04af10: 86040002 */ lh $a0,0x2($s0)
|
|
/* f04af14: 10000007 */ b .L0f04af34
|
|
/* f04af18: 8fa20034 */ lw $v0,0x34($sp)
|
|
/* f04af1c: 86040002 */ lh $a0,0x2($s0)
|
|
.L0f04af20:
|
|
/* f04af20: 26310001 */ addiu $s1,$s1,0x1
|
|
/* f04af24: 26100002 */ addiu $s0,$s0,0x2
|
|
/* f04af28: 1644fff6 */ bne $s2,$a0,.L0f04af04
|
|
/* f04af2c: 00000000 */ nop
|
|
/* f04af30: 8fa20034 */ lw $v0,0x34($sp)
|
|
.L0f04af34:
|
|
/* f04af34: 0011c040 */ sll $t8,$s1,0x1
|
|
.L0f04af38:
|
|
/* f04af38: 0058c821 */ addu $t9,$v0,$t8
|
|
/* f04af3c: 87240000 */ lh $a0,0x0($t9)
|
|
/* f04af40: 5244000a */ beql $s2,$a0,.L0f04af6c
|
|
/* f04af44: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f04af48: 0fc56050 */ jal func0f158140
|
|
/* f04af4c: 00000000 */ nop
|
|
/* f04af50: 8fa40030 */ lw $a0,0x30($sp)
|
|
/* f04af54: 3c054348 */ lui $a1,0x4348
|
|
/* f04af58: 0fc2d74e */ jal func0f0b5d38
|
|
/* f04af5c: 00403025 */ or $a2,$v0,$zero
|
|
/* f04af60: 2c480001 */ sltiu $t0,$v0,0x1
|
|
/* f04af64: afa8002c */ sw $t0,0x2c($sp)
|
|
/* f04af68: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f04af6c:
|
|
/* f04af6c: 8fa2002c */ lw $v0,0x2c($sp)
|
|
/* f04af70: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f04af74: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f04af78: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f04af7c: 03e00008 */ jr $ra
|
|
/* f04af80: 27bd0030 */ addiu $sp,$sp,0x30
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f04af84
|
|
.late_rodata
|
|
glabel var7f1a9404
|
|
.word 0x40c907a9
|
|
glabel var7f1a9408
|
|
.word 0x3f4907a9
|
|
glabel var7f1a940c
|
|
.word 0xc7c35000
|
|
glabel var7f1a9410
|
|
.word 0x40c907a9
|
|
glabel var7f1a9414
|
|
.word 0xc7c35000
|
|
glabel var7f1a9418
|
|
.word 0xc7c35000
|
|
glabel var7f1a941c
|
|
.word 0x3f4907a9
|
|
.text
|
|
/* f04af84: 27bdff58 */ addiu $sp,$sp,-168
|
|
/* f04af88: 8fae00bc */ lw $t6,0xbc($sp)
|
|
/* f04af8c: 44877000 */ mtc1 $a3,$f14
|
|
/* f04af90: afb50068 */ sw $s5,0x68($sp)
|
|
/* f04af94: afb2005c */ sw $s2,0x5c($sp)
|
|
/* f04af98: f7b60028 */ sdc1 $f22,0x28($sp)
|
|
/* f04af9c: 00a09025 */ or $s2,$a1,$zero
|
|
/* f04afa0: 00c0a825 */ or $s5,$a2,$zero
|
|
/* f04afa4: afbf006c */ sw $ra,0x6c($sp)
|
|
/* f04afa8: afb40064 */ sw $s4,0x64($sp)
|
|
/* f04afac: afb30060 */ sw $s3,0x60($sp)
|
|
/* f04afb0: afb10058 */ sw $s1,0x58($sp)
|
|
/* f04afb4: afb00054 */ sw $s0,0x54($sp)
|
|
/* f04afb8: f7be0048 */ sdc1 $f30,0x48($sp)
|
|
/* f04afbc: f7bc0040 */ sdc1 $f28,0x40($sp)
|
|
/* f04afc0: f7ba0038 */ sdc1 $f26,0x38($sp)
|
|
/* f04afc4: f7b80030 */ sdc1 $f24,0x30($sp)
|
|
/* f04afc8: f7b40020 */ sdc1 $f20,0x20($sp)
|
|
/* f04afcc: e7ac00a8 */ swc1 $f12,0xa8($sp)
|
|
/* f04afd0: 11c00005 */ beqz $t6,.L0f04afe8
|
|
/* f04afd4: 46007586 */ mov.s $f22,$f14
|
|
/* f04afd8: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f04afdc: 2410001f */ addiu $s0,$zero,0x1f
|
|
/* f04afe0: 10000002 */ b .L0f04afec
|
|
/* f04afe4: afaf00b8 */ sw $t7,0xb8($sp)
|
|
.L0f04afe8:
|
|
/* f04afe8: 2410003f */ addiu $s0,$zero,0x3f
|
|
.L0f04afec:
|
|
/* f04afec: 8fb400c0 */ lw $s4,0xc0($sp)
|
|
/* f04aff0: 3c01c348 */ lui $at,0xc348
|
|
/* f04aff4: 02402025 */ or $a0,$s2,$zero
|
|
/* f04aff8: 1280000f */ beqz $s4,.L0f04b038
|
|
/* f04affc: 8fa500a8 */ lw $a1,0xa8($sp)
|
|
/* f04b000: 3c017f1b */ lui $at,%hi(var7f1a9404)
|
|
/* f04b004: c43c9404 */ lwc1 $f28,%lo(var7f1a9404)($at)
|
|
/* f04b008: 3c017f1b */ lui $at,%hi(var7f1a9408)
|
|
/* f04b00c: c4249408 */ lwc1 $f4,%lo(var7f1a9408)($at)
|
|
/* f04b010: 3c014348 */ lui $at,0x4348
|
|
/* f04b014: 4481f000 */ mtc1 $at,$f30
|
|
/* f04b018: 46047580 */ add.s $f22,$f14,$f4
|
|
/* f04b01c: 4616e03e */ c.le.s $f28,$f22
|
|
/* f04b020: 00000000 */ nop
|
|
/* f04b024: 45000002 */ bc1f .L0f04b030
|
|
/* f04b028: 00000000 */ nop
|
|
/* f04b02c: 461cb581 */ sub.s $f22,$f22,$f28
|
|
.L0f04b030:
|
|
/* f04b030: 10000029 */ b .L0f04b0d8
|
|
/* f04b034: 00000000 */ nop
|
|
.L0f04b038:
|
|
/* f04b038: 4481a000 */ mtc1 $at,$f20
|
|
/* f04b03c: 02a03025 */ or $a2,$s5,$zero
|
|
/* f04b040: 00003825 */ or $a3,$zero,$zero
|
|
/* f04b044: 0c00a8cc */ jal cdFindGroundYSimple
|
|
/* f04b048: afa00010 */ sw $zero,0x10($sp)
|
|
/* f04b04c: 3c017f1b */ lui $at,%hi(var7f1a940c)
|
|
/* f04b050: c426940c */ lwc1 $f6,%lo(var7f1a940c)($at)
|
|
/* f04b054: 02402025 */ or $a0,$s2,$zero
|
|
/* f04b058: 8fa500a8 */ lw $a1,0xa8($sp)
|
|
/* f04b05c: 4600303c */ c.lt.s $f6,$f0
|
|
/* f04b060: 02a03025 */ or $a2,$s5,$zero
|
|
/* f04b064: 02003825 */ or $a3,$s0,$zero
|
|
/* f04b068: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f04b06c: 4502000b */ bc1fl .L0f04b09c
|
|
/* f04b070: 3c014348 */ lui $at,0x4348
|
|
/* f04b074: c6480004 */ lwc1 $f8,0x4($s2)
|
|
/* f04b078: 3c01c348 */ lui $at,0xc348
|
|
/* f04b07c: 44815000 */ mtc1 $at,$f10
|
|
/* f04b080: 46080081 */ sub.s $f2,$f0,$f8
|
|
/* f04b084: 460a103c */ c.lt.s $f2,$f10
|
|
/* f04b088: 00000000 */ nop
|
|
/* f04b08c: 45020003 */ bc1fl .L0f04b09c
|
|
/* f04b090: 3c014348 */ lui $at,0x4348
|
|
/* f04b094: 46001506 */ mov.s $f20,$f2
|
|
/* f04b098: 3c014348 */ lui $at,0x4348
|
|
.L0f04b09c:
|
|
/* f04b09c: 4481f000 */ mtc1 $at,$f30
|
|
/* f04b0a0: afb80010 */ sw $t8,0x10($sp)
|
|
/* f04b0a4: e7b40018 */ swc1 $f20,0x18($sp)
|
|
/* f04b0a8: 0c00a9a1 */ jal cdTestVolume
|
|
/* f04b0ac: e7be0014 */ swc1 $f30,0x14($sp)
|
|
/* f04b0b0: 10400009 */ beqz $v0,.L0f04b0d8
|
|
/* f04b0b4: 8fb900b8 */ lw $t9,0xb8($sp)
|
|
/* f04b0b8: 17200005 */ bnez $t9,.L0f04b0d0
|
|
/* f04b0bc: 02402025 */ or $a0,$s2,$zero
|
|
/* f04b0c0: 0fc12bac */ jal func0f04aeb0
|
|
/* f04b0c4: 02a02825 */ or $a1,$s5,$zero
|
|
/* f04b0c8: 10400003 */ beqz $v0,.L0f04b0d8
|
|
/* f04b0cc: 00000000 */ nop
|
|
.L0f04b0d0:
|
|
/* f04b0d0: 10000079 */ b .L0f04b2b8
|
|
/* f04b0d4: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f04b0d8:
|
|
/* f04b0d8: 3c017f1b */ lui $at,%hi(var7f1a9410)
|
|
/* f04b0dc: c43c9410 */ lwc1 $f28,%lo(var7f1a9410)($at)
|
|
/* f04b0e0: 3c014270 */ lui $at,0x4270
|
|
/* f04b0e4: 4481d000 */ mtc1 $at,$f26
|
|
/* f04b0e8: 00009825 */ or $s3,$zero,$zero
|
|
/* f04b0ec: 27b1009c */ addiu $s1,$sp,0x9c
|
|
/* f04b0f0: 27b00084 */ addiu $s0,$sp,0x84
|
|
.L0f04b0f4:
|
|
/* f04b0f4: 0c0068f7 */ jal sinf
|
|
/* f04b0f8: 4600b306 */ mov.s $f12,$f22
|
|
/* f04b0fc: 461a0402 */ mul.s $f16,$f0,$f26
|
|
/* f04b100: c6520000 */ lwc1 $f18,0x0($s2)
|
|
/* f04b104: 4600b306 */ mov.s $f12,$f22
|
|
/* f04b108: 46128100 */ add.s $f4,$f16,$f18
|
|
/* f04b10c: e7a4009c */ swc1 $f4,0x9c($sp)
|
|
/* f04b110: c6460004 */ lwc1 $f6,0x4($s2)
|
|
/* f04b114: 0c0068f4 */ jal cosf
|
|
/* f04b118: e7a600a0 */ swc1 $f6,0xa0($sp)
|
|
/* f04b11c: 461a0202 */ mul.s $f8,$f0,$f26
|
|
/* f04b120: c64a0008 */ lwc1 $f10,0x8($s2)
|
|
/* f04b124: 02402025 */ or $a0,$s2,$zero
|
|
/* f04b128: 02a02825 */ or $a1,$s5,$zero
|
|
/* f04b12c: 02203025 */ or $a2,$s1,$zero
|
|
/* f04b130: 02003825 */ or $a3,$s0,$zero
|
|
/* f04b134: 2408003b */ addiu $t0,$zero,0x3b
|
|
/* f04b138: 460a4400 */ add.s $f16,$f8,$f10
|
|
/* f04b13c: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f04b140: 3c01c348 */ lui $at,0xc348
|
|
/* f04b144: 12800009 */ beqz $s4,.L0f04b16c
|
|
/* f04b148: e7b000a4 */ swc1 $f16,0xa4($sp)
|
|
/* f04b14c: 44819000 */ mtc1 $at,$f18
|
|
/* f04b150: afa80010 */ sw $t0,0x10($sp)
|
|
/* f04b154: afa90014 */ sw $t1,0x14($sp)
|
|
/* f04b158: e7be0018 */ swc1 $f30,0x18($sp)
|
|
/* f04b15c: 0c00b610 */ jal func0002d840
|
|
/* f04b160: e7b2001c */ swc1 $f18,0x1c($sp)
|
|
/* f04b164: 5440000b */ bnezl $v0,.L0f04b194
|
|
/* f04b168: 3c01c348 */ lui $at,0xc348
|
|
.L0f04b16c:
|
|
/* f04b16c: 16800045 */ bnez $s4,.L0f04b284
|
|
/* f04b170: 02402025 */ or $a0,$s2,$zero
|
|
/* f04b174: 240a0020 */ addiu $t2,$zero,0x20
|
|
/* f04b178: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f04b17c: 02a02825 */ or $a1,$s5,$zero
|
|
/* f04b180: 02203025 */ or $a2,$s1,$zero
|
|
/* f04b184: 0c00b7ab */ jal func0002deac
|
|
/* f04b188: 02003825 */ or $a3,$s0,$zero
|
|
/* f04b18c: 1040003d */ beqz $v0,.L0f04b284
|
|
/* f04b190: 3c01c348 */ lui $at,0xc348
|
|
.L0f04b194:
|
|
/* f04b194: 4481a000 */ mtc1 $at,$f20
|
|
/* f04b198: 00002025 */ or $a0,$zero,$zero
|
|
/* f04b19c: 02202825 */ or $a1,$s1,$zero
|
|
/* f04b1a0: 0fc087ea */ jal func0f021fa8
|
|
/* f04b1a4: 02003025 */ or $a2,$s0,$zero
|
|
/* f04b1a8: 02202025 */ or $a0,$s1,$zero
|
|
/* f04b1ac: 8fa500a8 */ lw $a1,0xa8($sp)
|
|
/* f04b1b0: 02003025 */ or $a2,$s0,$zero
|
|
/* f04b1b4: 00003825 */ or $a3,$zero,$zero
|
|
/* f04b1b8: 0c00a8cc */ jal cdFindGroundYSimple
|
|
/* f04b1bc: afa00010 */ sw $zero,0x10($sp)
|
|
/* f04b1c0: 3c017f1b */ lui $at,%hi(var7f1a9414)
|
|
/* f04b1c4: c4249414 */ lwc1 $f4,%lo(var7f1a9414)($at)
|
|
/* f04b1c8: 46000606 */ mov.s $f24,$f0
|
|
/* f04b1cc: 02202025 */ or $a0,$s1,$zero
|
|
/* f04b1d0: 4600203c */ c.lt.s $f4,$f0
|
|
/* f04b1d4: 8fa500a8 */ lw $a1,0xa8($sp)
|
|
/* f04b1d8: 02003025 */ or $a2,$s0,$zero
|
|
/* f04b1dc: 2407003f */ addiu $a3,$zero,0x3f
|
|
/* f04b1e0: 4500000a */ bc1f .L0f04b20c
|
|
/* f04b1e4: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f04b1e8: c6460004 */ lwc1 $f6,0x4($s2)
|
|
/* f04b1ec: 3c01c348 */ lui $at,0xc348
|
|
/* f04b1f0: 44814000 */ mtc1 $at,$f8
|
|
/* f04b1f4: 46060081 */ sub.s $f2,$f0,$f6
|
|
/* f04b1f8: 4608103c */ c.lt.s $f2,$f8
|
|
/* f04b1fc: 00000000 */ nop
|
|
/* f04b200: 45020003 */ bc1fl .L0f04b210
|
|
/* f04b204: afab0010 */ sw $t3,0x10($sp)
|
|
/* f04b208: 46001506 */ mov.s $f20,$f2
|
|
.L0f04b20c:
|
|
/* f04b20c: afab0010 */ sw $t3,0x10($sp)
|
|
.L0f04b210:
|
|
/* f04b210: e7be0014 */ swc1 $f30,0x14($sp)
|
|
/* f04b214: 0c00a9a1 */ jal cdTestVolume
|
|
/* f04b218: e7b40018 */ swc1 $f20,0x18($sp)
|
|
/* f04b21c: 10400019 */ beqz $v0,.L0f04b284
|
|
/* f04b220: 8fac00b8 */ lw $t4,0xb8($sp)
|
|
/* f04b224: 15800005 */ bnez $t4,.L0f04b23c
|
|
/* f04b228: 02202025 */ or $a0,$s1,$zero
|
|
/* f04b22c: 0fc12bac */ jal func0f04aeb0
|
|
/* f04b230: 02002825 */ or $a1,$s0,$zero
|
|
/* f04b234: 10400013 */ beqz $v0,.L0f04b284
|
|
/* f04b238: 00000000 */ nop
|
|
.L0f04b23c:
|
|
/* f04b23c: 12800006 */ beqz $s4,.L0f04b258
|
|
/* f04b240: 3c017f1b */ lui $at,%hi(var7f1a9418)
|
|
/* f04b244: c42a9418 */ lwc1 $f10,%lo(var7f1a9418)($at)
|
|
/* f04b248: 4618503c */ c.lt.s $f10,$f24
|
|
/* f04b24c: 00000000 */ nop
|
|
/* f04b250: 4500000c */ bc1f .L0f04b284
|
|
/* f04b254: 00000000 */ nop
|
|
.L0f04b258:
|
|
/* f04b258: c7b0009c */ lwc1 $f16,0x9c($sp)
|
|
/* f04b25c: 02002025 */ or $a0,$s0,$zero
|
|
/* f04b260: 02a02825 */ or $a1,$s5,$zero
|
|
/* f04b264: e6500000 */ swc1 $f16,0x0($s2)
|
|
/* f04b268: c7b200a0 */ lwc1 $f18,0xa0($sp)
|
|
/* f04b26c: e6520004 */ swc1 $f18,0x4($s2)
|
|
/* f04b270: c7a400a4 */ lwc1 $f4,0xa4($sp)
|
|
/* f04b274: 0fc195e9 */ jal roomsCopy
|
|
/* f04b278: e6440008 */ swc1 $f4,0x8($s2)
|
|
/* f04b27c: 1000000e */ b .L0f04b2b8
|
|
/* f04b280: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f04b284:
|
|
/* f04b284: 3c017f1b */ lui $at,%hi(var7f1a941c)
|
|
/* f04b288: c426941c */ lwc1 $f6,%lo(var7f1a941c)($at)
|
|
/* f04b28c: 24010008 */ addiu $at,$zero,0x8
|
|
/* f04b290: 26730001 */ addiu $s3,$s3,0x1
|
|
/* f04b294: 4606b580 */ add.s $f22,$f22,$f6
|
|
/* f04b298: 4616e03e */ c.le.s $f28,$f22
|
|
/* f04b29c: 00000000 */ nop
|
|
/* f04b2a0: 45000002 */ bc1f .L0f04b2ac
|
|
/* f04b2a4: 00000000 */ nop
|
|
/* f04b2a8: 461cb581 */ sub.s $f22,$f22,$f28
|
|
.L0f04b2ac:
|
|
/* f04b2ac: 1661ff91 */ bne $s3,$at,.L0f04b0f4
|
|
/* f04b2b0: 00000000 */ nop
|
|
/* f04b2b4: 00001025 */ or $v0,$zero,$zero
|
|
.L0f04b2b8:
|
|
/* f04b2b8: 8fbf006c */ lw $ra,0x6c($sp)
|
|
/* f04b2bc: d7b40020 */ ldc1 $f20,0x20($sp)
|
|
/* f04b2c0: d7b60028 */ ldc1 $f22,0x28($sp)
|
|
/* f04b2c4: d7b80030 */ ldc1 $f24,0x30($sp)
|
|
/* f04b2c8: d7ba0038 */ ldc1 $f26,0x38($sp)
|
|
/* f04b2cc: d7bc0040 */ ldc1 $f28,0x40($sp)
|
|
/* f04b2d0: d7be0048 */ ldc1 $f30,0x48($sp)
|
|
/* f04b2d4: 8fb00054 */ lw $s0,0x54($sp)
|
|
/* f04b2d8: 8fb10058 */ lw $s1,0x58($sp)
|
|
/* f04b2dc: 8fb2005c */ lw $s2,0x5c($sp)
|
|
/* f04b2e0: 8fb30060 */ lw $s3,0x60($sp)
|
|
/* f04b2e4: 8fb40064 */ lw $s4,0x64($sp)
|
|
/* f04b2e8: 8fb50068 */ lw $s5,0x68($sp)
|
|
/* f04b2ec: 03e00008 */ jr $ra
|
|
/* f04b2f0: 27bd00a8 */ addiu $sp,$sp,0xa8
|
|
);
|
|
|
|
/**
|
|
* Attempts to spawn a chr at the given coordinates.
|
|
*
|
|
* In low memory conditions, the function will iterate all existing chrs in
|
|
* search of a corpse that can be reaped. If one is found then the reap will be
|
|
* triggered, but the function will not attempt to spawn the chr until the next
|
|
* time it's called.
|
|
*/
|
|
struct prop *chrSpawnAtCoord(s32 bodynum, s32 headnum, struct coord *pos, s16 *rooms, f32 arg4, u8 *ailist, u32 flags)
|
|
{
|
|
struct prop *prop;
|
|
struct coord pos2;
|
|
s16 rooms2[8];
|
|
s32 stack;
|
|
|
|
if (getNumFreeChrSlots() > 1) {
|
|
if (headnum < 0) {
|
|
headnum = bodyChooseHead(bodynum);
|
|
}
|
|
|
|
pos2.x = pos->x;
|
|
pos2.y = pos->y;
|
|
pos2.z = pos->z;
|
|
roomsCopy(rooms, rooms2);
|
|
|
|
if (func0f04af84(20, &pos2, rooms2, arg4, (flags & 0x10) != 0, 0, 0)) {
|
|
struct model *model = modelAllocateChr(bodynum, headnum, flags);
|
|
struct chrdata *chr;
|
|
|
|
if (model) {
|
|
prop = propAllocateChr(model, &pos2, rooms2, arg4, ailist);
|
|
|
|
if (prop) {
|
|
propAppendToList1(prop);
|
|
propShow(prop);
|
|
|
|
chr = prop->chr;
|
|
chr->headnum = headnum;
|
|
chr->bodynum = bodynum;
|
|
chr->race = bodyGetRace(chr->bodynum);
|
|
chr->flags = 0;
|
|
chr->flags2 = 0;
|
|
chr->hidden2 |= CHRH2FLAG_0080;
|
|
|
|
if (flags & 0x2000) {
|
|
chr->unk32c_19 = true;
|
|
}
|
|
|
|
return prop;
|
|
}
|
|
|
|
modelFree(model);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Low memory - find a corpse to reap
|
|
if (getNumFreeChrSlots() < 4) {
|
|
s32 stack2;
|
|
struct chrdata *replacechr = NULL;
|
|
s32 startindex = random() % g_NumChrSlots;
|
|
s32 index = startindex;
|
|
|
|
do {
|
|
if (g_ChrSlots[index].chrnum >= 0 && g_ChrSlots[index].model && g_ChrSlots[index].prop) {
|
|
if (g_ChrSlots[index].actiontype == ACT_DEAD
|
|
|| (g_ChrSlots[index].actiontype == ACT_DRUGGEDKO && (g_ChrSlots[index].chrflags & CHRCFLAG_KEEPCORPSEKO) == 0)) {
|
|
// If we've found a chr that's ready to be reaped, great.
|
|
// Bail out of the loop.
|
|
if (g_ChrSlots[index].act_dead.reaptimer >= 120) {
|
|
replacechr = &g_ChrSlots[index];
|
|
break;
|
|
}
|
|
|
|
// Otherwise, this chr is dead/KO'ed and can be reaped as a
|
|
// last resort, so store them and keep looping in search of
|
|
// a better chr.
|
|
if (replacechr == NULL) {
|
|
replacechr = &g_ChrSlots[index];
|
|
}
|
|
}
|
|
}
|
|
|
|
index = (index + 1) % g_NumChrSlots;
|
|
} while (index != startindex);
|
|
|
|
if (replacechr) {
|
|
replacechr->act_dead.allowreap = true;
|
|
replacechr->act_dead.allowfade = true;
|
|
}
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
struct prop *chrSpawnAtPad(struct chrdata *basechr, s32 body, s32 head, s32 pad_id, u8 *ailist, u32 flags)
|
|
{
|
|
s32 resolved_pad_id = chrResolvePadId(basechr, pad_id);
|
|
struct pad pad;
|
|
s16 room[2];
|
|
f32 fvalue;
|
|
padUnpack(resolved_pad_id, PADFIELD_POS | PADFIELD_LOOK | PADFIELD_ROOM, &pad);
|
|
fvalue = atan2f(pad.look.x, pad.look.z);
|
|
room[0] = pad.room;
|
|
room[1] = -1;
|
|
|
|
return chrSpawnAtCoord(body, head, &pad.pos, &room[0], fvalue, ailist, flags);
|
|
}
|
|
|
|
struct prop *chrSpawnAtChr(struct chrdata *basechr, s32 body, s32 head, u32 chrnum, u8 *ailist, u32 flags)
|
|
{
|
|
struct chrdata *chr = chrFindById(basechr, chrnum);
|
|
f32 fvalue;
|
|
|
|
if (1) {
|
|
fvalue = chrGetInverseTheta(chr);
|
|
}
|
|
|
|
return chrSpawnAtCoord(body, head, &chr->prop->pos, chr->prop->rooms, fvalue, ailist, flags);
|
|
}
|
|
|
|
bool func0f04b658(struct chrdata *chr)
|
|
{
|
|
bool result = false;
|
|
struct prop *prop = chr->prop;
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
|
|
if (chr->proppreset1 >= 0) {
|
|
chrSetOrUnsetHiddenFlag00000100(chr, false);
|
|
propSetCollisionsEnabled(target, false);
|
|
|
|
if (!func0002dc18(&prop->pos, prop->rooms, &target->pos, 0x33)) {
|
|
struct prop *thing = cdGetObstacle();
|
|
|
|
if (thing && thing->type == PROPTYPE_OBJ
|
|
&& chr->proppreset1 == (s16)(thing - g_Vars.props)) {
|
|
result = true;
|
|
}
|
|
}
|
|
|
|
chrSetOrUnsetHiddenFlag00000100(chr, true);
|
|
propSetCollisionsEnabled(target, true);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
void func0f04b740(void)
|
|
{
|
|
// empty
|
|
}
|
|
|
|
bool chrMoveToPos(struct chrdata *chr, struct coord *pos, s16 *rooms, f32 angle, bool allowonscreen)
|
|
{
|
|
struct coord pos2;
|
|
s16 rooms2[8];
|
|
bool result = false;
|
|
u32 nodetype;
|
|
struct modeldata_root *data;
|
|
struct player *player;
|
|
f32 ground;
|
|
|
|
pos2.x = pos->x;
|
|
pos2.y = pos->y;
|
|
pos2.z = pos->z;
|
|
|
|
roomsCopy(rooms, rooms2);
|
|
propSetCollisionsEnabled(chr->prop, false);
|
|
|
|
if (func0f04af84(chr->chrwidth, &pos2, rooms2, angle, (chr->hidden & CHRHFLAG_00100000) != 0, allowonscreen, (chr->hidden & CHRHFLAG_00000200) != 0)) {
|
|
ground = cdFindGroundY(&pos2, chr->chrwidth, rooms2, &chr->floorcol,
|
|
&chr->floortype, NULL, &chr->floorroom, NULL, NULL);
|
|
|
|
chr->ground = ground;
|
|
chr->manground = ground;
|
|
chr->sumground = ground * 9.999998f;
|
|
chr->prop->pos.x = pos2.x;
|
|
chr->prop->pos.y = pos2.y;
|
|
chr->prop->pos.z = pos2.z;
|
|
|
|
func0f065c44(chr->prop);
|
|
roomsCopy(rooms2, chr->prop->rooms);
|
|
func0f0220ac(chr);
|
|
modelSetRootPosition(chr->model, &pos2);
|
|
|
|
nodetype = chr->model->filedata->rootnode->type;
|
|
|
|
if ((nodetype & 0xff) == MODELNODETYPE_ROOT) {
|
|
data = modelGetNodeData(chr->model, chr->model->filedata->rootnode);
|
|
data->ground = ground;
|
|
}
|
|
|
|
chr->chrflags |= CHRCFLAG_00000001;
|
|
chrSetLookAngle(chr, angle);
|
|
|
|
if (chr->prop->type == PROPTYPE_PLAYER) {
|
|
player = g_Vars.players[propGetPlayerNum(chr->prop)];
|
|
player->vv_manground = ground;
|
|
player->vv_ground = ground;
|
|
player->vv_theta = ((M_BADTAU - angle) * 360.0f) / M_BADTAU;
|
|
player->vv_verta = 0;
|
|
player->unk1c64 = 1;
|
|
}
|
|
|
|
result = true;
|
|
}
|
|
|
|
propSetCollisionsEnabled(chr->prop, true);
|
|
|
|
return result;
|
|
}
|
|
|
|
bool chrCheckCoverOutOfSight(struct chrdata *chr, s32 covernum, bool arg2)
|
|
{
|
|
struct cover cover;
|
|
struct prop *target;
|
|
bool targetcanseecover;
|
|
|
|
// @bug: Should be >= coverGetCount()
|
|
if (covernum < 0 || covernum > coverGetCount() || !coverUnpack(covernum, &cover)) {
|
|
return false;
|
|
}
|
|
|
|
target = chrGetTargetProp(chr);
|
|
|
|
if (!target) {
|
|
return false;
|
|
}
|
|
|
|
if (arg2) {
|
|
targetcanseecover = func0002db98(&target->pos, target->rooms, cover.pos, 35, 8);
|
|
} else {
|
|
targetcanseecover = func0002f450(&target->pos, target->rooms, cover.pos, 50, 35);
|
|
}
|
|
|
|
if (!targetcanseecover != false) {
|
|
// Target can't see cover
|
|
coverSetFlag0001(covernum, true);
|
|
return true;
|
|
}
|
|
|
|
coverSetFlag0001(covernum, false);
|
|
return false;
|
|
}
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f04ba34
|
|
/* f04ba34: 27bdff48 */ addiu $sp,$sp,-184
|
|
/* f04ba38: afbf003c */ sw $ra,0x3c($sp)
|
|
/* f04ba3c: afb40028 */ sw $s4,0x28($sp)
|
|
/* f04ba40: afa500bc */ sw $a1,0xbc($sp)
|
|
/* f04ba44: 0080a025 */ or $s4,$a0,$zero
|
|
/* f04ba48: afbe0038 */ sw $s8,0x38($sp)
|
|
/* f04ba4c: afb70034 */ sw $s7,0x34($sp)
|
|
/* f04ba50: afb60030 */ sw $s6,0x30($sp)
|
|
/* f04ba54: afb5002c */ sw $s5,0x2c($sp)
|
|
/* f04ba58: afb30024 */ sw $s3,0x24($sp)
|
|
/* f04ba5c: afb20020 */ sw $s2,0x20($sp)
|
|
/* f04ba60: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f04ba64: afb00018 */ sw $s0,0x18($sp)
|
|
/* f04ba68: afa600c0 */ sw $a2,0xc0($sp)
|
|
/* f04ba6c: 0fc458b4 */ jal coverGetCount
|
|
/* f04ba70: a7a500be */ sh $a1,0xbe($sp)
|
|
/* f04ba74: afa20078 */ sw $v0,0x78($sp)
|
|
/* f04ba78: 0000f025 */ or $s8,$zero,$zero
|
|
/* f04ba7c: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f04ba80: 02802025 */ or $a0,$s4,$zero
|
|
/* f04ba84: 8e8f001c */ lw $t7,0x1c($s4)
|
|
/* f04ba88: 3c01432a */ lui $at,0x432a
|
|
/* f04ba8c: 44813000 */ mtc1 $at,$f6
|
|
/* f04ba90: c5e4000c */ lwc1 $f4,0xc($t7)
|
|
/* f04ba94: 97b100be */ lhu $s1,0xbe($sp)
|
|
/* f04ba98: 8fa400c0 */ lw $a0,0xc0($sp)
|
|
/* f04ba9c: 46062200 */ add.s $f8,$f4,$f6
|
|
/* f04baa0: 32384000 */ andi $t8,$s1,0x4000
|
|
/* f04baa4: 0040b025 */ or $s6,$v0,$zero
|
|
/* f04baa8: 00009825 */ or $s3,$zero,$zero
|
|
/* f04baac: e7a80060 */ swc1 $f8,0x60($sp)
|
|
/* f04bab0: 1300000a */ beqz $t8,.L0f04badc
|
|
/* f04bab4: 0080b825 */ or $s7,$a0,$zero
|
|
/* f04bab8: 8e8202d4 */ lw $v0,0x2d4($s4)
|
|
/* f04babc: 10400004 */ beqz $v0,.L0f04bad0
|
|
/* f04bac0: 00000000 */ nop
|
|
/* f04bac4: 8c430010 */ lw $v1,0x10($v0)
|
|
/* f04bac8: 54600004 */ bnezl $v1,.L0f04badc
|
|
/* f04bacc: afa30058 */ sw $v1,0x58($sp)
|
|
.L0f04bad0:
|
|
/* f04bad0: 1000013e */ b .L0f04bfcc
|
|
/* f04bad4: 2402ffff */ addiu $v0,$zero,-1
|
|
/* f04bad8: afa30058 */ sw $v1,0x58($sp)
|
|
.L0f04badc:
|
|
/* f04badc: 16800003 */ bnez $s4,.L0f04baec
|
|
/* f04bae0: 00000000 */ nop
|
|
/* f04bae4: 10000139 */ b .L0f04bfcc
|
|
/* f04bae8: 00001025 */ or $v0,$zero,$zero
|
|
.L0f04baec:
|
|
/* f04baec: 00840019 */ multu $a0,$a0
|
|
/* f04baf0: 8fa80078 */ lw $t0,0x78($sp)
|
|
/* f04baf4: 86990292 */ lh $t9,0x292($s4)
|
|
/* f04baf8: 3c12800a */ lui $s2,%hi(var800a2368)
|
|
/* f04bafc: 26522368 */ addiu $s2,$s2,%lo(var800a2368)
|
|
/* f04bb00: 00008025 */ or $s0,$zero,$zero
|
|
/* f04bb04: 27b500a0 */ addiu $s5,$sp,0xa0
|
|
/* f04bb08: afb90084 */ sw $t9,0x84($sp)
|
|
/* f04bb0c: 00002012 */ mflo $a0
|
|
/* f04bb10: 190000ba */ blez $t0,.L0f04bdfc
|
|
/* f04bb14: 00000000 */ nop
|
|
/* f04bb18: afa400c0 */ sw $a0,0xc0($sp)
|
|
/* f04bb1c: 02002025 */ or $a0,$s0,$zero
|
|
.L0f04bb20:
|
|
/* f04bb20: 0fc458b8 */ jal coverUnpack
|
|
/* f04bb24: 27a50098 */ addiu $a1,$sp,0x98
|
|
/* f04bb28: 504000b0 */ beqzl $v0,.L0f04bdec
|
|
/* f04bb2c: 8fae0078 */ lw $t6,0x78($sp)
|
|
/* f04bb30: 0fc4596c */ jal coverIsSpecial
|
|
/* f04bb34: 27a40098 */ addiu $a0,$sp,0x98
|
|
/* f04bb38: 144000ab */ bnez $v0,.L0f04bde8
|
|
/* f04bb3c: 32292000 */ andi $t1,$s1,0x2000
|
|
/* f04bb40: 11200003 */ beqz $t1,.L0f04bb50
|
|
/* f04bb44: 97aa00a4 */ lhu $t2,0xa4($sp)
|
|
/* f04bb48: 314b0010 */ andi $t3,$t2,0x10
|
|
/* f04bb4c: 116000a6 */ beqz $t3,.L0f04bde8
|
|
.L0f04bb50:
|
|
/* f04bb50: 322c1000 */ andi $t4,$s1,0x1000
|
|
/* f04bb54: 15800007 */ bnez $t4,.L0f04bb74
|
|
/* f04bb58: 97ad00a4 */ lhu $t5,0xa4($sp)
|
|
/* f04bb5c: 31ae0008 */ andi $t6,$t5,0x8
|
|
/* f04bb60: 11c00004 */ beqz $t6,.L0f04bb74
|
|
/* f04bb64: 02a02025 */ or $a0,$s5,$zero
|
|
/* f04bb68: 0fc19620 */ jal arrayIntersects
|
|
/* f04bb6c: 26c50028 */ addiu $a1,$s6,0x28
|
|
/* f04bb70: 1440009d */ bnez $v0,.L0f04bde8
|
|
.L0f04bb74:
|
|
/* f04bb74: 322f0001 */ andi $t7,$s1,0x1
|
|
/* f04bb78: 11e00006 */ beqz $t7,.L0f04bb94
|
|
/* f04bb7c: 00009825 */ or $s3,$zero,$zero
|
|
/* f04bb80: 32380002 */ andi $t8,$s1,0x2
|
|
/* f04bb84: 13000003 */ beqz $t8,.L0f04bb94
|
|
/* f04bb88: 02202825 */ or $a1,$s1,$zero
|
|
/* f04bb8c: 24130001 */ addiu $s3,$zero,0x1
|
|
/* f04bb90: 30b1fffc */ andi $s1,$a1,0xfffc
|
|
.L0f04bb94:
|
|
/* f04bb94: 32280010 */ andi $t0,$s1,0x10
|
|
/* f04bb98: 11000002 */ beqz $t0,.L0f04bba4
|
|
/* f04bb9c: 8fa90084 */ lw $t1,0x84($sp)
|
|
/* f04bba0: 12090091 */ beq $s0,$t1,.L0f04bde8
|
|
.L0f04bba4:
|
|
/* f04bba4: 322a2000 */ andi $t2,$s1,0x2000
|
|
/* f04bba8: 5540000b */ bnezl $t2,.L0f04bbd8
|
|
/* f04bbac: 322c0040 */ andi $t4,$s1,0x40
|
|
/* f04bbb0: 0fc45917 */ jal coverIsInUse
|
|
/* f04bbb4: 02002025 */ or $a0,$s0,$zero
|
|
/* f04bbb8: 1440008b */ bnez $v0,.L0f04bde8
|
|
/* f04bbbc: 8fab0098 */ lw $t3,0x98($sp)
|
|
/* f04bbc0: c7aa0060 */ lwc1 $f10,0x60($sp)
|
|
/* f04bbc4: c5700004 */ lwc1 $f16,0x4($t3)
|
|
/* f04bbc8: 4610503c */ c.lt.s $f10,$f16
|
|
/* f04bbcc: 00000000 */ nop
|
|
/* f04bbd0: 45010085 */ bc1t .L0f04bde8
|
|
/* f04bbd4: 322c0040 */ andi $t4,$s1,0x40
|
|
.L0f04bbd8:
|
|
/* f04bbd8: 322d0800 */ andi $t5,$s1,0x800
|
|
/* f04bbdc: afac004c */ sw $t4,0x4c($sp)
|
|
/* f04bbe0: 11a00003 */ beqz $t5,.L0f04bbf0
|
|
/* f04bbe4: 32230080 */ andi $v1,$s1,0x80
|
|
/* f04bbe8: 1000000b */ b .L0f04bc18
|
|
/* f04bbec: 8e82001c */ lw $v0,0x1c($s4)
|
|
.L0f04bbf0:
|
|
/* f04bbf0: 322e0400 */ andi $t6,$s1,0x400
|
|
/* f04bbf4: 11c00003 */ beqz $t6,.L0f04bc04
|
|
/* f04bbf8: 322f0008 */ andi $t7,$s1,0x8
|
|
/* f04bbfc: 10000006 */ b .L0f04bc18
|
|
/* f04bc00: 02c01025 */ or $v0,$s6,$zero
|
|
.L0f04bc04:
|
|
/* f04bc04: 51e00004 */ beqzl $t7,.L0f04bc18
|
|
/* f04bc08: 8e82001c */ lw $v0,0x1c($s4)
|
|
/* f04bc0c: 10000002 */ b .L0f04bc18
|
|
/* f04bc10: 02c01025 */ or $v0,$s6,$zero
|
|
/* f04bc14: 8e82001c */ lw $v0,0x1c($s4)
|
|
.L0f04bc18:
|
|
/* f04bc18: 84580028 */ lh $t8,0x28($v0)
|
|
/* f04bc1c: 2419ffff */ addiu $t9,$zero,-1
|
|
/* f04bc20: a7b900aa */ sh $t9,0xaa($sp)
|
|
/* f04bc24: 10600007 */ beqz $v1,.L0f04bc44
|
|
/* f04bc28: a7b800a8 */ sh $t8,0xa8($sp)
|
|
/* f04bc2c: 84440028 */ lh $a0,0x28($v0)
|
|
/* f04bc30: 27a500aa */ addiu $a1,$sp,0xaa
|
|
/* f04bc34: 0fc5916a */ jal roomGetNeighbours
|
|
/* f04bc38: 24060006 */ addiu $a2,$zero,0x6
|
|
/* f04bc3c: 10000008 */ b .L0f04bc60
|
|
/* f04bc40: 8fa9004c */ lw $t1,0x4c($sp)
|
|
.L0f04bc44:
|
|
/* f04bc44: 32280100 */ andi $t0,$s1,0x100
|
|
/* f04bc48: 11000004 */ beqz $t0,.L0f04bc5c
|
|
/* f04bc4c: 27a500a8 */ addiu $a1,$sp,0xa8
|
|
/* f04bc50: 84440028 */ lh $a0,0x28($v0)
|
|
/* f04bc54: 0fc5916a */ jal roomGetNeighbours
|
|
/* f04bc58: 24060007 */ addiu $a2,$zero,0x7
|
|
.L0f04bc5c:
|
|
/* f04bc5c: 8fa9004c */ lw $t1,0x4c($sp)
|
|
.L0f04bc60:
|
|
/* f04bc60: 02a02025 */ or $a0,$s5,$zero
|
|
/* f04bc64: 51200005 */ beqzl $t1,.L0f04bc7c
|
|
/* f04bc68: 322a0020 */ andi $t2,$s1,0x20
|
|
/* f04bc6c: 0fc19620 */ jal arrayIntersects
|
|
/* f04bc70: 27a500a8 */ addiu $a1,$sp,0xa8
|
|
/* f04bc74: 1440005c */ bnez $v0,.L0f04bde8
|
|
/* f04bc78: 322a0020 */ andi $t2,$s1,0x20
|
|
.L0f04bc7c:
|
|
/* f04bc7c: 11400005 */ beqz $t2,.L0f04bc94
|
|
/* f04bc80: 02a02025 */ or $a0,$s5,$zero
|
|
/* f04bc84: 0fc19620 */ jal arrayIntersects
|
|
/* f04bc88: 27a500a8 */ addiu $a1,$sp,0xa8
|
|
/* f04bc8c: 50400057 */ beqzl $v0,.L0f04bdec
|
|
/* f04bc90: 8fae0078 */ lw $t6,0x78($sp)
|
|
.L0f04bc94:
|
|
/* f04bc94: 87ab00aa */ lh $t3,0xaa($sp)
|
|
/* f04bc98: 2401ffff */ addiu $at,$zero,-1
|
|
/* f04bc9c: 5161000c */ beql $t3,$at,.L0f04bcd0
|
|
/* f04bca0: 322e0004 */ andi $t6,$s1,0x4
|
|
/* f04bca4: 868c02b8 */ lh $t4,0x2b8($s4)
|
|
/* f04bca8: 2401ffff */ addiu $at,$zero,-1
|
|
/* f04bcac: 322d0200 */ andi $t5,$s1,0x200
|
|
/* f04bcb0: 51810007 */ beql $t4,$at,.L0f04bcd0
|
|
/* f04bcb4: 322e0004 */ andi $t6,$s1,0x4
|
|
/* f04bcb8: 11a00004 */ beqz $t5,.L0f04bccc
|
|
/* f04bcbc: 02a02025 */ or $a0,$s5,$zero
|
|
/* f04bcc0: 0fc19620 */ jal arrayIntersects
|
|
/* f04bcc4: 268502b8 */ addiu $a1,$s4,0x2b8
|
|
/* f04bcc8: 14400047 */ bnez $v0,.L0f04bde8
|
|
.L0f04bccc:
|
|
/* f04bccc: 322e0004 */ andi $t6,$s1,0x4
|
|
.L0f04bcd0:
|
|
/* f04bcd0: 11c00006 */ beqz $t6,.L0f04bcec
|
|
/* f04bcd4: 322f0008 */ andi $t7,$s1,0x8
|
|
/* f04bcd8: 02802025 */ or $a0,$s4,$zero
|
|
/* f04bcdc: 0fc12555 */ jal chrGetSquaredDistanceToCoord
|
|
/* f04bce0: 8fa50098 */ lw $a1,0x98($sp)
|
|
/* f04bce4: 10000021 */ b .L0f04bd6c
|
|
/* f04bce8: 46000306 */ mov.s $f12,$f0
|
|
.L0f04bcec:
|
|
/* f04bcec: 11e00006 */ beqz $t7,.L0f04bd08
|
|
/* f04bcf0: 32384000 */ andi $t8,$s1,0x4000
|
|
/* f04bcf4: 26c40008 */ addiu $a0,$s6,0x8
|
|
/* f04bcf8: 0fc12565 */ jal coordGetSquaredDistanceToCoord
|
|
/* f04bcfc: 8fa50098 */ lw $a1,0x98($sp)
|
|
/* f04bd00: 1000001a */ b .L0f04bd6c
|
|
/* f04bd04: 46000306 */ mov.s $f12,$f0
|
|
.L0f04bd08:
|
|
/* f04bd08: 13000006 */ beqz $t8,.L0f04bd24
|
|
/* f04bd0c: 8fa40058 */ lw $a0,0x58($sp)
|
|
/* f04bd10: 24840008 */ addiu $a0,$a0,0x8
|
|
/* f04bd14: 0fc12565 */ jal coordGetSquaredDistanceToCoord
|
|
/* f04bd18: 8fa50098 */ lw $a1,0x98($sp)
|
|
/* f04bd1c: 10000013 */ b .L0f04bd6c
|
|
/* f04bd20: 46000306 */ mov.s $f12,$f0
|
|
.L0f04bd24:
|
|
/* f04bd24: 52600010 */ beqzl $s3,.L0f04bd68
|
|
/* f04bd28: 44806000 */ mtc1 $zero,$f12
|
|
/* f04bd2c: 0c004b70 */ jal random
|
|
/* f04bd30: 00000000 */ nop
|
|
/* f04bd34: 3401f000 */ dli $at,0xf000
|
|
/* f04bd38: 0041001b */ divu $zero,$v0,$at
|
|
/* f04bd3c: 0000c810 */ mfhi $t9
|
|
/* f04bd40: 44999000 */ mtc1 $t9,$f18
|
|
/* f04bd44: 3c014f80 */ lui $at,0x4f80
|
|
/* f04bd48: 07210008 */ bgez $t9,.L0f04bd6c
|
|
/* f04bd4c: 46809320 */ cvt.s.w $f12,$f18
|
|
/* f04bd50: 44812000 */ mtc1 $at,$f4
|
|
/* f04bd54: 00000000 */ nop
|
|
/* f04bd58: 46046300 */ add.s $f12,$f12,$f4
|
|
/* f04bd5c: 10000003 */ b .L0f04bd6c
|
|
/* f04bd60: 00000000 */ nop
|
|
/* f04bd64: 44806000 */ mtc1 $zero,$f12
|
|
.L0f04bd68:
|
|
/* f04bd68: 0000b825 */ or $s7,$zero,$zero
|
|
.L0f04bd6c:
|
|
/* f04bd6c: 12e00013 */ beqz $s7,.L0f04bdbc
|
|
/* f04bd70: 001e2100 */ sll $a0,$s8,0x4
|
|
/* f04bd74: 06e10008 */ bgez $s7,.L0f04bd98
|
|
/* f04bd78: 8fa800c0 */ lw $t0,0xc0($sp)
|
|
/* f04bd7c: 44883000 */ mtc1 $t0,$f6
|
|
/* f04bd80: 00000000 */ nop
|
|
/* f04bd84: 46803220 */ cvt.s.w $f8,$f6
|
|
/* f04bd88: 460c403c */ c.lt.s $f8,$f12
|
|
/* f04bd8c: 00000000 */ nop
|
|
/* f04bd90: 4501000a */ bc1t .L0f04bdbc
|
|
/* f04bd94: 00000000 */ nop
|
|
.L0f04bd98:
|
|
/* f04bd98: 1ae00013 */ blez $s7,.L0f04bde8
|
|
/* f04bd9c: 8fa900c0 */ lw $t1,0xc0($sp)
|
|
/* f04bda0: 44895000 */ mtc1 $t1,$f10
|
|
/* f04bda4: 00000000 */ nop
|
|
/* f04bda8: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f04bdac: 4610603c */ c.lt.s $f12,$f16
|
|
/* f04bdb0: 00000000 */ nop
|
|
/* f04bdb4: 4502000d */ bc1fl .L0f04bdec
|
|
/* f04bdb8: 8fae0078 */ lw $t6,0x78($sp)
|
|
.L0f04bdbc:
|
|
/* f04bdbc: 0c00169f */ jal __f_to_ull
|
|
/* f04bdc0: afa40050 */ sw $a0,0x50($sp)
|
|
/* f04bdc4: 8fa40050 */ lw $a0,0x50($sp)
|
|
/* f04bdc8: 8e4a0000 */ lw $t2,0x0($s2)
|
|
/* f04bdcc: 27de0001 */ addiu $s8,$s8,0x1
|
|
/* f04bdd0: 01445821 */ addu $t3,$t2,$a0
|
|
/* f04bdd4: ad620000 */ sw $v0,0x0($t3)
|
|
/* f04bdd8: ad630004 */ sw $v1,0x4($t3)
|
|
/* f04bddc: 8e4c0000 */ lw $t4,0x0($s2)
|
|
/* f04bde0: 01846821 */ addu $t5,$t4,$a0
|
|
/* f04bde4: adb00008 */ sw $s0,0x8($t5)
|
|
.L0f04bde8:
|
|
/* f04bde8: 8fae0078 */ lw $t6,0x78($sp)
|
|
.L0f04bdec:
|
|
/* f04bdec: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f04bdf0: 560eff4b */ bnel $s0,$t6,.L0f04bb20
|
|
/* f04bdf4: 02002025 */ or $a0,$s0,$zero
|
|
/* f04bdf8: 00008025 */ or $s0,$zero,$zero
|
|
.L0f04bdfc:
|
|
/* f04bdfc: 3c12800a */ lui $s2,%hi(var800a2368)
|
|
/* f04be00: 2bc10002 */ slti $at,$s8,0x2
|
|
/* f04be04: 1420004b */ bnez $at,.L0f04bf34
|
|
/* f04be08: 26522368 */ addiu $s2,$s2,%lo(var800a2368)
|
|
/* f04be0c: 27c6ffff */ addiu $a2,$s8,-1
|
|
/* f04be10: 27a30088 */ addiu $v1,$sp,0x88
|
|
.L0f04be14:
|
|
/* f04be14: 18c00045 */ blez $a2,.L0f04bf2c
|
|
/* f04be18: 00002825 */ or $a1,$zero,$zero
|
|
/* f04be1c: 32240001 */ andi $a0,$s1,0x1
|
|
.L0f04be20:
|
|
/* f04be20: 14800005 */ bnez $a0,.L0f04be38
|
|
/* f04be24: 322f4000 */ andi $t7,$s1,0x4000
|
|
/* f04be28: 55e00004 */ bnezl $t7,.L0f04be3c
|
|
/* f04be2c: 8e580000 */ lw $t8,0x0($s2)
|
|
/* f04be30: 5260000f */ beqzl $s3,.L0f04be70
|
|
/* f04be34: 32390002 */ andi $t9,$s1,0x2
|
|
.L0f04be38:
|
|
/* f04be38: 8e580000 */ lw $t8,0x0($s2)
|
|
.L0f04be3c:
|
|
/* f04be3c: 00103900 */ sll $a3,$s0,0x4
|
|
/* f04be40: 03071021 */ addu $v0,$t8,$a3
|
|
/* f04be44: 8c480010 */ lw $t0,0x10($v0)
|
|
/* f04be48: 8c4a0000 */ lw $t2,0x0($v0)
|
|
/* f04be4c: 8c490014 */ lw $t1,0x14($v0)
|
|
/* f04be50: 8c4b0004 */ lw $t3,0x4($v0)
|
|
/* f04be54: 010a082b */ sltu $at,$t0,$t2
|
|
/* f04be58: 14200015 */ bnez $at,.L0f04beb0
|
|
/* f04be5c: 0148082b */ sltu $at,$t2,$t0
|
|
/* f04be60: 14200002 */ bnez $at,.L0f04be6c
|
|
/* f04be64: 012b082b */ sltu $at,$t1,$t3
|
|
/* f04be68: 14200011 */ bnez $at,.L0f04beb0
|
|
.L0f04be6c:
|
|
/* f04be6c: 32390002 */ andi $t9,$s1,0x2
|
|
.L0f04be70:
|
|
/* f04be70: 5320002b */ beqzl $t9,.L0f04bf20
|
|
/* f04be74: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f04be78: 8e4c0000 */ lw $t4,0x0($s2)
|
|
/* f04be7c: 00103900 */ sll $a3,$s0,0x4
|
|
/* f04be80: 01871021 */ addu $v0,$t4,$a3
|
|
/* f04be84: 8c4e0000 */ lw $t6,0x0($v0)
|
|
/* f04be88: 8c580010 */ lw $t8,0x10($v0)
|
|
/* f04be8c: 8c4f0004 */ lw $t7,0x4($v0)
|
|
/* f04be90: 8c590014 */ lw $t9,0x14($v0)
|
|
/* f04be94: 030e082b */ sltu $at,$t8,$t6
|
|
/* f04be98: 14200020 */ bnez $at,.L0f04bf1c
|
|
/* f04be9c: 01d8082b */ sltu $at,$t6,$t8
|
|
/* f04bea0: 14200003 */ bnez $at,.L0f04beb0
|
|
/* f04bea4: 01f9082b */ sltu $at,$t7,$t9
|
|
/* f04bea8: 5020001d */ beqzl $at,.L0f04bf20
|
|
/* f04beac: 26100001 */ addiu $s0,$s0,0x1
|
|
.L0f04beb0:
|
|
/* f04beb0: 8c410000 */ lw $at,0x0($v0)
|
|
/* f04beb4: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f04beb8: ac610000 */ sw $at,0x0($v1)
|
|
/* f04bebc: 8c480004 */ lw $t0,0x4($v0)
|
|
/* f04bec0: ac680004 */ sw $t0,0x4($v1)
|
|
/* f04bec4: 8c410008 */ lw $at,0x8($v0)
|
|
/* f04bec8: ac610008 */ sw $at,0x8($v1)
|
|
/* f04becc: 8c48000c */ lw $t0,0xc($v0)
|
|
/* f04bed0: ac68000c */ sw $t0,0xc($v1)
|
|
/* f04bed4: 8c4a0014 */ lw $t2,0x14($v0)
|
|
/* f04bed8: 8c410010 */ lw $at,0x10($v0)
|
|
/* f04bedc: ac4a0004 */ sw $t2,0x4($v0)
|
|
/* f04bee0: ac410000 */ sw $at,0x0($v0)
|
|
/* f04bee4: 8c410018 */ lw $at,0x18($v0)
|
|
/* f04bee8: 8c4a001c */ lw $t2,0x1c($v0)
|
|
/* f04beec: ac410008 */ sw $at,0x8($v0)
|
|
/* f04bef0: ac4a000c */ sw $t2,0xc($v0)
|
|
/* f04bef4: 8e4b0000 */ lw $t3,0x0($s2)
|
|
/* f04bef8: 8c610000 */ lw $at,0x0($v1)
|
|
/* f04befc: 01676021 */ addu $t4,$t3,$a3
|
|
/* f04bf00: ad810010 */ sw $at,0x10($t4)
|
|
/* f04bf04: 8c6f0004 */ lw $t7,0x4($v1)
|
|
/* f04bf08: ad8f0014 */ sw $t7,0x14($t4)
|
|
/* f04bf0c: 8c610008 */ lw $at,0x8($v1)
|
|
/* f04bf10: ad810018 */ sw $at,0x18($t4)
|
|
/* f04bf14: 8c6f000c */ lw $t7,0xc($v1)
|
|
/* f04bf18: ad8f001c */ sw $t7,0x1c($t4)
|
|
.L0f04bf1c:
|
|
/* f04bf1c: 26100001 */ addiu $s0,$s0,0x1
|
|
.L0f04bf20:
|
|
/* f04bf20: 1606ffbf */ bne $s0,$a2,.L0f04be20
|
|
/* f04bf24: 00000000 */ nop
|
|
/* f04bf28: 00008025 */ or $s0,$zero,$zero
|
|
.L0f04bf2c:
|
|
/* f04bf2c: 14a0ffb9 */ bnez $a1,.L0f04be14
|
|
/* f04bf30: 00000000 */ nop
|
|
.L0f04bf34:
|
|
/* f04bf34: 1bc00024 */ blez $s8,.L0f04bfc8
|
|
/* f04bf38: 00003825 */ or $a3,$zero,$zero
|
|
/* f04bf3c: 32388000 */ andi $t8,$s1,0x8000
|
|
/* f04bf40: afb80050 */ sw $t8,0x50($sp)
|
|
.L0f04bf44:
|
|
/* f04bf44: 8e420000 */ lw $v0,0x0($s2)
|
|
/* f04bf48: 02802025 */ or $a0,$s4,$zero
|
|
/* f04bf4c: 8fa60050 */ lw $a2,0x50($sp)
|
|
/* f04bf50: 0047c821 */ addu $t9,$v0,$a3
|
|
/* f04bf54: 8f250008 */ lw $a1,0x8($t9)
|
|
/* f04bf58: 0fc12e54 */ jal chrCheckCoverOutOfSight
|
|
/* f04bf5c: afa70048 */ sw $a3,0x48($sp)
|
|
/* f04bf60: 10400016 */ beqz $v0,.L0f04bfbc
|
|
/* f04bf64: 8fa70048 */ lw $a3,0x48($sp)
|
|
/* f04bf68: 8e4d0000 */ lw $t5,0x0($s2)
|
|
/* f04bf6c: 2401ffff */ addiu $at,$zero,-1
|
|
/* f04bf70: 00002825 */ or $a1,$zero,$zero
|
|
/* f04bf74: 01a74021 */ addu $t0,$t5,$a3
|
|
/* f04bf78: 8d090008 */ lw $t1,0x8($t0)
|
|
/* f04bf7c: a6890292 */ sh $t1,0x292($s4)
|
|
/* f04bf80: 8faa0084 */ lw $t2,0x84($sp)
|
|
/* f04bf84: 11410004 */ beq $t2,$at,.L0f04bf98
|
|
/* f04bf88: 01402025 */ or $a0,$t2,$zero
|
|
/* f04bf8c: 0fc45929 */ jal coverSetInUse
|
|
/* f04bf90: afa70048 */ sw $a3,0x48($sp)
|
|
/* f04bf94: 8fa70048 */ lw $a3,0x48($sp)
|
|
.L0f04bf98:
|
|
/* f04bf98: 86840292 */ lh $a0,0x292($s4)
|
|
/* f04bf9c: afa70048 */ sw $a3,0x48($sp)
|
|
/* f04bfa0: 0fc45929 */ jal coverSetInUse
|
|
/* f04bfa4: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f04bfa8: 8fa70048 */ lw $a3,0x48($sp)
|
|
/* f04bfac: 8e4b0000 */ lw $t3,0x0($s2)
|
|
/* f04bfb0: 01677021 */ addu $t6,$t3,$a3
|
|
/* f04bfb4: 10000005 */ b .L0f04bfcc
|
|
/* f04bfb8: 8dc20008 */ lw $v0,0x8($t6)
|
|
.L0f04bfbc:
|
|
/* f04bfbc: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f04bfc0: 161effe0 */ bne $s0,$s8,.L0f04bf44
|
|
/* f04bfc4: 24e70010 */ addiu $a3,$a3,0x10
|
|
.L0f04bfc8:
|
|
/* f04bfc8: 2402ffff */ addiu $v0,$zero,-1
|
|
.L0f04bfcc:
|
|
/* f04bfcc: 8fbf003c */ lw $ra,0x3c($sp)
|
|
/* f04bfd0: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f04bfd4: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f04bfd8: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f04bfdc: 8fb30024 */ lw $s3,0x24($sp)
|
|
/* f04bfe0: 8fb40028 */ lw $s4,0x28($sp)
|
|
/* f04bfe4: 8fb5002c */ lw $s5,0x2c($sp)
|
|
/* f04bfe8: 8fb60030 */ lw $s6,0x30($sp)
|
|
/* f04bfec: 8fb70034 */ lw $s7,0x34($sp)
|
|
/* f04bff0: 8fbe0038 */ lw $s8,0x38($sp)
|
|
/* f04bff4: 03e00008 */ jr $ra
|
|
/* f04bff8: 27bd00b8 */ addiu $sp,$sp,0xb8
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel chrAssignCoverAwayFromDanger
|
|
/* f04bffc: 27bdff58 */ addiu $sp,$sp,-168
|
|
/* f04c000: afbf005c */ sw $ra,0x5c($sp)
|
|
/* f04c004: afbe0058 */ sw $s8,0x58($sp)
|
|
/* f04c008: afb70054 */ sw $s7,0x54($sp)
|
|
/* f04c00c: afb60050 */ sw $s6,0x50($sp)
|
|
/* f04c010: afb5004c */ sw $s5,0x4c($sp)
|
|
/* f04c014: afb40048 */ sw $s4,0x48($sp)
|
|
/* f04c018: afb30044 */ sw $s3,0x44($sp)
|
|
/* f04c01c: afb20040 */ sw $s2,0x40($sp)
|
|
/* f04c020: afb1003c */ sw $s1,0x3c($sp)
|
|
/* f04c024: afb00038 */ sw $s0,0x38($sp)
|
|
/* f04c028: f7ba0030 */ sdc1 $f26,0x30($sp)
|
|
/* f04c02c: f7b80028 */ sdc1 $f24,0x28($sp)
|
|
/* f04c030: f7b60020 */ sdc1 $f22,0x20($sp)
|
|
/* f04c034: f7b40018 */ sdc1 $f20,0x18($sp)
|
|
/* f04c038: 8c8e001c */ lw $t6,0x1c($a0)
|
|
/* f04c03c: 4480d000 */ mtc1 $zero,$f26
|
|
/* f04c040: 3c01432a */ lui $at,0x432a
|
|
/* f04c044: 44813000 */ mtc1 $at,$f6
|
|
/* f04c048: c5c4000c */ lwc1 $f4,0xc($t6)
|
|
/* f04c04c: 240fffff */ addiu $t7,$zero,-1
|
|
/* f04c050: 00808825 */ or $s1,$a0,$zero
|
|
/* f04c054: 00a0a025 */ or $s4,$a1,$zero
|
|
/* f04c058: 00c0a825 */ or $s5,$a2,$zero
|
|
/* f04c05c: afaf0078 */ sw $t7,0x78($sp)
|
|
/* f04c060: e7ba0090 */ swc1 $f26,0x90($sp)
|
|
/* f04c064: 4600d586 */ mov.s $f22,$f26
|
|
/* f04c068: 0fc458b4 */ jal coverGetCount
|
|
/* f04c06c: 46062600 */ add.s $f24,$f4,$f6
|
|
/* f04c070: 02940019 */ multu $s4,$s4
|
|
/* f04c074: 86380292 */ lh $t8,0x292($s1)
|
|
/* f04c078: 27b60090 */ addiu $s6,$sp,0x90
|
|
/* f04c07c: 00409825 */ or $s3,$v0,$zero
|
|
/* f04c080: afb8007c */ sw $t8,0x7c($sp)
|
|
/* f04c084: 8e39001c */ lw $t9,0x1c($s1)
|
|
/* f04c088: c62a02c8 */ lwc1 $f10,0x2c8($s1)
|
|
/* f04c08c: 02c02825 */ or $a1,$s6,$zero
|
|
/* f04c090: c7280008 */ lwc1 $f8,0x8($t9)
|
|
/* f04c094: 27a4009c */ addiu $a0,$sp,0x9c
|
|
/* f04c098: 0000a012 */ mflo $s4
|
|
/* f04c09c: 460a4401 */ sub.s $f16,$f8,$f10
|
|
/* f04c0a0: 27a600a0 */ addiu $a2,$sp,0xa0
|
|
/* f04c0a4: 02b50019 */ multu $s5,$s5
|
|
/* f04c0a8: e7b0009c */ swc1 $f16,0x9c($sp)
|
|
/* f04c0ac: 8e28001c */ lw $t0,0x1c($s1)
|
|
/* f04c0b0: c62402d0 */ lwc1 $f4,0x2d0($s1)
|
|
/* f04c0b4: c5120010 */ lwc1 $f18,0x10($t0)
|
|
/* f04c0b8: 46049181 */ sub.s $f6,$f18,$f4
|
|
/* f04c0bc: 0000a812 */ mflo $s5
|
|
/* f04c0c0: 0c0011e4 */ jal guNormalize
|
|
/* f04c0c4: e7a600a0 */ swc1 $f6,0xa0($sp)
|
|
/* f04c0c8: 1a600048 */ blez $s3,.L0f04c1ec
|
|
/* f04c0cc: 00008025 */ or $s0,$zero,$zero
|
|
/* f04c0d0: 27be0098 */ addiu $s8,$sp,0x98
|
|
/* f04c0d4: 27b70094 */ addiu $s7,$sp,0x94
|
|
/* f04c0d8: 27b20064 */ addiu $s2,$sp,0x64
|
|
/* f04c0dc: 02002025 */ or $a0,$s0,$zero
|
|
.L0f04c0e0:
|
|
/* f04c0e0: 0fc458b8 */ jal coverUnpack
|
|
/* f04c0e4: 02402825 */ or $a1,$s2,$zero
|
|
/* f04c0e8: 5040003e */ beqzl $v0,.L0f04c1e4
|
|
/* f04c0ec: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f04c0f0: 0fc45917 */ jal coverIsInUse
|
|
/* f04c0f4: 02002025 */ or $a0,$s0,$zero
|
|
/* f04c0f8: 14400039 */ bnez $v0,.L0f04c1e0
|
|
/* f04c0fc: 8fa90064 */ lw $t1,0x64($sp)
|
|
/* f04c100: c5280004 */ lwc1 $f8,0x4($t1)
|
|
/* f04c104: 4608c03c */ c.lt.s $f24,$f8
|
|
/* f04c108: 00000000 */ nop
|
|
/* f04c10c: 45030035 */ bc1tl .L0f04c1e4
|
|
/* f04c110: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f04c114: 0fc4596c */ jal coverIsSpecial
|
|
/* f04c118: 02402025 */ or $a0,$s2,$zero
|
|
/* f04c11c: 14400030 */ bnez $v0,.L0f04c1e0
|
|
/* f04c120: 262402c8 */ addiu $a0,$s1,0x2c8
|
|
/* f04c124: 44945000 */ mtc1 $s4,$f10
|
|
/* f04c128: 8fa50064 */ lw $a1,0x64($sp)
|
|
/* f04c12c: 0fc12565 */ jal coordGetSquaredDistanceToCoord
|
|
/* f04c130: 46805520 */ cvt.s.w $f20,$f10
|
|
/* f04c134: 4614003c */ c.lt.s $f0,$f20
|
|
/* f04c138: 00000000 */ nop
|
|
/* f04c13c: 45030029 */ bc1tl .L0f04c1e4
|
|
/* f04c140: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f04c144: 44958000 */ mtc1 $s5,$f16
|
|
/* f04c148: 8faa0064 */ lw $t2,0x64($sp)
|
|
/* f04c14c: 468084a0 */ cvt.s.w $f18,$f16
|
|
/* f04c150: 4600903c */ c.lt.s $f18,$f0
|
|
/* f04c154: 00000000 */ nop
|
|
/* f04c158: 45030022 */ bc1tl .L0f04c1e4
|
|
/* f04c15c: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f04c160: 8e2b001c */ lw $t3,0x1c($s1)
|
|
/* f04c164: c5440000 */ lwc1 $f4,0x0($t2)
|
|
/* f04c168: 02e02025 */ or $a0,$s7,$zero
|
|
/* f04c16c: c5660008 */ lwc1 $f6,0x8($t3)
|
|
/* f04c170: 02c02825 */ or $a1,$s6,$zero
|
|
/* f04c174: 03c03025 */ or $a2,$s8,$zero
|
|
/* f04c178: 46062201 */ sub.s $f8,$f4,$f6
|
|
/* f04c17c: e7a80094 */ swc1 $f8,0x94($sp)
|
|
/* f04c180: 8e2c001c */ lw $t4,0x1c($s1)
|
|
/* f04c184: c54a0008 */ lwc1 $f10,0x8($t2)
|
|
/* f04c188: c5900010 */ lwc1 $f16,0x10($t4)
|
|
/* f04c18c: 46105481 */ sub.s $f18,$f10,$f16
|
|
/* f04c190: 0c0011e4 */ jal guNormalize
|
|
/* f04c194: e7b20098 */ swc1 $f18,0x98($sp)
|
|
/* f04c198: c7a40098 */ lwc1 $f4,0x98($sp)
|
|
/* f04c19c: c7a600a0 */ lwc1 $f6,0xa0($sp)
|
|
/* f04c1a0: c7aa009c */ lwc1 $f10,0x9c($sp)
|
|
/* f04c1a4: c7b00094 */ lwc1 $f16,0x94($sp)
|
|
/* f04c1a8: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f04c1ac: 00000000 */ nop
|
|
/* f04c1b0: 46105482 */ mul.s $f18,$f10,$f16
|
|
/* f04c1b4: 46124080 */ add.s $f2,$f8,$f18
|
|
/* f04c1b8: 461a103c */ c.lt.s $f2,$f26
|
|
/* f04c1bc: 00000000 */ nop
|
|
/* f04c1c0: 45010007 */ bc1t .L0f04c1e0
|
|
/* f04c1c4: 00000000 */ nop
|
|
/* f04c1c8: 4602b03c */ c.lt.s $f22,$f2
|
|
/* f04c1cc: 00000000 */ nop
|
|
/* f04c1d0: 45020004 */ bc1fl .L0f04c1e4
|
|
/* f04c1d4: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f04c1d8: 46001586 */ mov.s $f22,$f2
|
|
/* f04c1dc: afb00078 */ sw $s0,0x78($sp)
|
|
.L0f04c1e0:
|
|
/* f04c1e0: 26100001 */ addiu $s0,$s0,0x1
|
|
.L0f04c1e4:
|
|
/* f04c1e4: 5613ffbe */ bnel $s0,$s3,.L0f04c0e0
|
|
/* f04c1e8: 02002025 */ or $a0,$s0,$zero
|
|
.L0f04c1ec:
|
|
/* f04c1ec: 8fad0078 */ lw $t5,0x78($sp)
|
|
/* f04c1f0: 2402ffff */ addiu $v0,$zero,-1
|
|
/* f04c1f4: a62d0292 */ sh $t5,0x292($s1)
|
|
/* f04c1f8: 8fae0078 */ lw $t6,0x78($sp)
|
|
/* f04c1fc: 8fa4007c */ lw $a0,0x7c($sp)
|
|
/* f04c200: 51c20009 */ beql $t6,$v0,.L0f04c228
|
|
/* f04c204: 8fbf005c */ lw $ra,0x5c($sp)
|
|
/* f04c208: 50820004 */ beql $a0,$v0,.L0f04c21c
|
|
/* f04c20c: 86240292 */ lh $a0,0x292($s1)
|
|
/* f04c210: 0fc45929 */ jal coverSetInUse
|
|
/* f04c214: 00002825 */ or $a1,$zero,$zero
|
|
/* f04c218: 86240292 */ lh $a0,0x292($s1)
|
|
.L0f04c21c:
|
|
/* f04c21c: 0fc45929 */ jal coverSetInUse
|
|
/* f04c220: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f04c224: 8fbf005c */ lw $ra,0x5c($sp)
|
|
.L0f04c228:
|
|
/* f04c228: 8fa20078 */ lw $v0,0x78($sp)
|
|
/* f04c22c: d7b40018 */ ldc1 $f20,0x18($sp)
|
|
/* f04c230: d7b60020 */ ldc1 $f22,0x20($sp)
|
|
/* f04c234: d7b80028 */ ldc1 $f24,0x28($sp)
|
|
/* f04c238: d7ba0030 */ ldc1 $f26,0x30($sp)
|
|
/* f04c23c: 8fb00038 */ lw $s0,0x38($sp)
|
|
/* f04c240: 8fb1003c */ lw $s1,0x3c($sp)
|
|
/* f04c244: 8fb20040 */ lw $s2,0x40($sp)
|
|
/* f04c248: 8fb30044 */ lw $s3,0x44($sp)
|
|
/* f04c24c: 8fb40048 */ lw $s4,0x48($sp)
|
|
/* f04c250: 8fb5004c */ lw $s5,0x4c($sp)
|
|
/* f04c254: 8fb60050 */ lw $s6,0x50($sp)
|
|
/* f04c258: 8fb70054 */ lw $s7,0x54($sp)
|
|
/* f04c25c: 8fbe0058 */ lw $s8,0x58($sp)
|
|
/* f04c260: 03e00008 */ jr $ra
|
|
/* f04c264: 27bd00a8 */ addiu $sp,$sp,0xa8
|
|
);
|
|
|
|
/**
|
|
* Find cover in the opposite direction (?) of the chr's runfrompos and assign
|
|
* it to the chr. The distance from the runfrompos to the cover must be between
|
|
* mindist and maxdist along the X/Z plane. The chr will not choose cover more
|
|
* than 170cm higher than their current elevation, but strangely there is no
|
|
* lower Y limit.
|
|
*
|
|
* Testing with this function logic results in the following, where:
|
|
* R = run from pos
|
|
* C = chr's pos
|
|
* A = available cover
|
|
* . = unavailable cover
|
|
*
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A R A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . .
|
|
* A A A A A A A A A A A A A A . . . . . A
|
|
* A A A A A A A A A A A A A A . . . A A A
|
|
* A A A A A A A A A A A A A A . A A A A A
|
|
* A A A A A A A A A A A A A C A A A A A A
|
|
* . . . . . . . . . . . A A A A A A A A A
|
|
* . . . . . . . . . A A A A A A A A A A A
|
|
*
|
|
* The block of available cover around the runfrompos might be a bug, but if
|
|
* this function is called with mindist = chr - runfrompos or higher then it
|
|
* will work as expected.
|
|
*
|
|
* Preference is given to cover which is the "most opposite", meaning ones
|
|
* which are directly behind the chr from the perspective of runfrompos.
|
|
*/
|
|
// Mismatch: Regalloc in callee-save registers
|
|
//s32 chrAssignCoverAwayFromDanger(struct chrdata *chr, s32 mindist, s32 maxdist)
|
|
//{
|
|
// s32 i;
|
|
// f32 vecfromdanger[2];
|
|
// f32 vectocover[2];
|
|
// f32 y;
|
|
// f32 ymax;
|
|
// f32 bestsqdist;
|
|
// f32 sqdist;
|
|
// s32 numcovers;
|
|
// s32 prevcover;
|
|
// s32 newcover;
|
|
// f32 coversqdistfrompos;
|
|
// struct cover cover;
|
|
//
|
|
// ymax = chr->prop->pos.y + 170;
|
|
// y = 0;
|
|
// bestsqdist = 0;
|
|
// newcover = -1;
|
|
// numcovers = coverGetCount();
|
|
// prevcover = chr->cover;
|
|
//
|
|
// mindist = mindist * mindist;
|
|
// maxdist = maxdist * maxdist;
|
|
//
|
|
// if (mindist);
|
|
// if (maxdist);
|
|
//
|
|
// vecfromdanger[0] = chr->prop->pos.x - chr->runfrompos.x;
|
|
// vecfromdanger[1] = chr->prop->pos.z - chr->runfrompos.z;
|
|
//
|
|
// guNormalize(&vecfromdanger[0], &y, &vecfromdanger[1]);
|
|
//
|
|
// for (i = 0; i < numcovers; i++) {
|
|
// if (coverUnpack(i, &cover)
|
|
// && !coverIsInUse(i)
|
|
// && !(cover.pos->y > ymax)
|
|
// && !coverIsSpecial(&cover)) {
|
|
// coversqdistfrompos = coordGetSquaredDistanceToCoord(&chr->runfrompos, cover.pos);
|
|
//
|
|
// if (!(coversqdistfrompos < mindist) && !(coversqdistfrompos > maxdist)) {
|
|
// vectocover[0] = cover.pos->x - chr->prop->pos.x;
|
|
// vectocover[1] = cover.pos->z - chr->prop->pos.z;
|
|
//
|
|
// guNormalize(&vectocover[0], &y, &vectocover[1]);
|
|
//
|
|
// sqdist = vecfromdanger[0] * vectocover[0] + vecfromdanger[1] * vectocover[1];
|
|
//
|
|
// if (!(sqdist < 0) && sqdist > bestsqdist) {
|
|
// bestsqdist = sqdist;
|
|
// newcover = i;
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// if (numcovers);
|
|
// }
|
|
//
|
|
// chr->cover = newcover;
|
|
//
|
|
// if (newcover != -1) {
|
|
// if (prevcover != -1) {
|
|
// coverSetInUse(prevcover, false);
|
|
// }
|
|
//
|
|
// coverSetInUse(chr->cover, true);
|
|
// }
|
|
//
|
|
// return newcover;
|
|
//}
|
|
|
|
s16 chrGoToCover(struct chrdata *chr, u8 speed)
|
|
{
|
|
struct cover cover;
|
|
|
|
if (!chr) {
|
|
return 0;
|
|
}
|
|
|
|
if (chrIsReadyForOrders(chr) && chr->cover != -1 && coverUnpack(chr->cover, &cover)) {
|
|
chrGoToPos(chr, cover.pos, &cover.room, speed);
|
|
return chr->cover;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
bool chrRunFromPos(struct chrdata *chr, u32 speed, f32 rundist, struct coord *frompos)
|
|
{
|
|
f32 curdistfrompos;
|
|
struct coord delta;
|
|
s16 rooms[8];
|
|
f32 zero = 0;
|
|
|
|
if (chrIsReadyForOrders(chr)) {
|
|
delta.x = chr->prop->pos.x - frompos->x;
|
|
delta.y = chr->prop->pos.y;
|
|
delta.z = chr->prop->pos.z - frompos->z;
|
|
|
|
// @bug: This check should be &&. The runfrompos will fail if the
|
|
// frompos is on the same X or Z axis as the chr, which is unlikely
|
|
// because it's a floating point number.
|
|
if (zero == delta.x || zero == delta.z) {
|
|
return false;
|
|
}
|
|
|
|
curdistfrompos = sqrtf(delta.z * delta.z + delta.x * delta.x);
|
|
delta.x *= rundist / curdistfrompos;
|
|
delta.z *= rundist / curdistfrompos;
|
|
|
|
chrSetOrUnsetHiddenFlag00000100(chr, false);
|
|
|
|
if (cdTestAToB4(&chr->prop->pos, chr->prop->rooms, &delta, CDTYPE_ALL, 4) == CDRESULT_COLLISION) {
|
|
cdGetPos(&delta, 18547, "chraction.c");
|
|
}
|
|
|
|
chrSetOrUnsetHiddenFlag00000100(chr, true);
|
|
|
|
func0f065e74(&chr->prop->pos, chr->prop->rooms, &delta, rooms);
|
|
|
|
return chrGoToPos(chr, &delta, rooms, speed);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void chrAddTargetToBdlist(struct chrdata *chr)
|
|
{
|
|
if (chr->prop) {
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
s32 i;
|
|
|
|
if (target) {
|
|
for (i = 0; i < g_Vars.lvupdate240_60; i++) {
|
|
chr->bdlist[chr->bdstart] = target->pos.x - chr->prop->pos.x;
|
|
chr->bdstart++;
|
|
chr->bdstart %= 60;
|
|
|
|
chr->bdlist[chr->bdstart] = target->pos.z - chr->prop->pos.z;
|
|
chr->bdstart++;
|
|
chr->bdstart %= 60;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
s32 chrGetDistanceLostToTargetInLastSecond(struct chrdata *chr)
|
|
{
|
|
s32 *bdlist = &chr->bdlist[0];
|
|
s32 index = chr->bdstart;
|
|
u32 stack[2];
|
|
|
|
s32 x1 = bdlist[(index + 1) % 60];
|
|
s32 z1 = bdlist[index];
|
|
s32 olddist = sqrtf(x1 * x1 + z1 * z1);
|
|
|
|
s32 x2 = bdlist[(index + 59) % 60];
|
|
s32 z2 = bdlist[(index + 58) % 60];
|
|
s32 curdist = sqrtf(x2 * x2 + z2 * z2);
|
|
|
|
return curdist - olddist;
|
|
}
|
|
|
|
bool chrIsTargetNearlyInSight(struct chrdata *chr, u32 distance)
|
|
{
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
|
|
return func0002f450(&chr->prop->pos, chr->prop->rooms, &target->pos, distance, 32);
|
|
}
|
|
|
|
bool chrIsNearlyInTargetsSight(struct chrdata *chr, u32 distance)
|
|
{
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
|
|
return func0002f450(&target->pos, target->rooms, &chr->prop->pos, distance, 32);
|
|
}
|
|
|
|
f32 func0f04c784(struct chrdata *chr)
|
|
{
|
|
f32 targetfacingangle = 0;
|
|
u32 stack;
|
|
struct prop *target = chrGetTargetProp(chr);
|
|
f32 angletotarget;
|
|
f32 result;
|
|
|
|
if (target->type == PROPTYPE_CHR) {
|
|
targetfacingangle = chrGetInverseTheta(target->chr);
|
|
} else if (target->type == PROPTYPE_PLAYER) {
|
|
s32 playernum = propGetPlayerNum(target);
|
|
targetfacingangle = g_Vars.players[playernum]->vv_theta;
|
|
}
|
|
|
|
angletotarget = atan2f(target->pos.z - chr->prop->pos.z, target->pos.x - chr->prop->pos.x);
|
|
result = (angletotarget * 360 / M_BADTAU - targetfacingangle) + 90;
|
|
|
|
if (result > 180) {
|
|
result -= 360;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
const char var7f1a8ce4[] = "chraction.c";
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f04c874
|
|
.late_rodata
|
|
glabel var7f1a942c
|
|
.word 0x3c8ef461
|
|
.text
|
|
/* f04c874: 27bdff18 */ addiu $sp,$sp,-232
|
|
/* f04c878: afbf007c */ sw $ra,0x7c($sp)
|
|
/* f04c87c: afb40068 */ sw $s4,0x68($sp)
|
|
/* f04c880: afb30064 */ sw $s3,0x64($sp)
|
|
/* f04c884: afb20060 */ sw $s2,0x60($sp)
|
|
/* f04c888: afb00058 */ sw $s0,0x58($sp)
|
|
/* f04c88c: 00c08025 */ or $s0,$a2,$zero
|
|
/* f04c890: 00a09025 */ or $s2,$a1,$zero
|
|
/* f04c894: 00809825 */ or $s3,$a0,$zero
|
|
/* f04c898: 30f400ff */ andi $s4,$a3,0xff
|
|
/* f04c89c: afbe0078 */ sw $s8,0x78($sp)
|
|
/* f04c8a0: afb70074 */ sw $s7,0x74($sp)
|
|
/* f04c8a4: afb60070 */ sw $s6,0x70($sp)
|
|
/* f04c8a8: afb5006c */ sw $s5,0x6c($sp)
|
|
/* f04c8ac: afb1005c */ sw $s1,0x5c($sp)
|
|
/* f04c8b0: f7be0050 */ sdc1 $f30,0x50($sp)
|
|
/* f04c8b4: f7bc0048 */ sdc1 $f28,0x48($sp)
|
|
/* f04c8b8: f7ba0040 */ sdc1 $f26,0x40($sp)
|
|
/* f04c8bc: f7b80038 */ sdc1 $f24,0x38($sp)
|
|
/* f04c8c0: f7b60030 */ sdc1 $f22,0x30($sp)
|
|
/* f04c8c4: f7b40028 */ sdc1 $f20,0x28($sp)
|
|
/* f04c8c8: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f04c8cc: afa700f4 */ sw $a3,0xf4($sp)
|
|
/* f04c8d0: 4480d000 */ mtc1 $zero,$f26
|
|
/* f04c8d4: 00408825 */ or $s1,$v0,$zero
|
|
/* f04c8d8: 0fc131e1 */ jal func0f04c784
|
|
/* f04c8dc: 02602025 */ or $a0,$s3,$zero
|
|
/* f04c8e0: 8e6e001c */ lw $t6,0x1c($s3)
|
|
/* f04c8e4: 3c0143b4 */ lui $at,0x43b4
|
|
/* f04c8e8: 4481f000 */ mtc1 $at,$f30
|
|
/* f04c8ec: c5c40008 */ lwc1 $f4,0x8($t6)
|
|
/* f04c8f0: 3c014334 */ lui $at,0x4334
|
|
/* f04c8f4: 4481e000 */ mtc1 $at,$f28
|
|
/* f04c8f8: e7a400c8 */ swc1 $f4,0xc8($sp)
|
|
/* f04c8fc: 8e6f001c */ lw $t7,0x1c($s3)
|
|
/* f04c900: 46000606 */ mov.s $f24,$f0
|
|
/* f04c904: 27be00c8 */ addiu $s8,$sp,0xc8
|
|
/* f04c908: c5e6000c */ lwc1 $f6,0xc($t7)
|
|
/* f04c90c: 27b7009c */ addiu $s7,$sp,0x9c
|
|
/* f04c910: 27b600a0 */ addiu $s6,$sp,0xa0
|
|
/* f04c914: e7a600cc */ swc1 $f6,0xcc($sp)
|
|
/* f04c918: 8e78001c */ lw $t8,0x1c($s3)
|
|
/* f04c91c: 27b50098 */ addiu $s5,$sp,0x98
|
|
/* f04c920: c7080010 */ lwc1 $f8,0x10($t8)
|
|
/* f04c924: e7a800d0 */ swc1 $f8,0xd0($sp)
|
|
/* f04c928: 44925000 */ mtc1 $s2,$f10
|
|
.L0f04c92c:
|
|
/* f04c92c: 3c014f80 */ lui $at,0x4f80
|
|
/* f04c930: 06410004 */ bgez $s2,.L0f04c944
|
|
/* f04c934: 46805020 */ cvt.s.w $f0,$f10
|
|
/* f04c938: 44818000 */ mtc1 $at,$f16
|
|
/* f04c93c: 00000000 */ nop
|
|
/* f04c940: 46100000 */ add.s $f0,$f0,$f16
|
|
.L0f04c944:
|
|
/* f04c944: 4600e03c */ c.lt.s $f28,$f0
|
|
/* f04c948: 46000506 */ mov.s $f20,$f0
|
|
/* f04c94c: 3c017f1b */ lui $at,%hi(var7f1a942c)
|
|
/* f04c950: 45020003 */ bc1fl .L0f04c960
|
|
/* f04c954: 4618a501 */ sub.s $f20,$f20,$f24
|
|
/* f04c958: 461e0501 */ sub.s $f20,$f0,$f30
|
|
/* f04c95c: 4618a501 */ sub.s $f20,$f20,$f24
|
|
.L0f04c960:
|
|
/* f04c960: c432942c */ lwc1 $f18,%lo(var7f1a942c)($at)
|
|
/* f04c964: 4612a502 */ mul.s $f20,$f20,$f18
|
|
/* f04c968: 0c0068f4 */ jal cosf
|
|
/* f04c96c: 4600a306 */ mov.s $f12,$f20
|
|
/* f04c970: 46000586 */ mov.s $f22,$f0
|
|
/* f04c974: 0c0068f7 */ jal sinf
|
|
/* f04c978: 4600a306 */ mov.s $f12,$f20
|
|
/* f04c97c: c62e0008 */ lwc1 $f14,0x8($s1)
|
|
/* f04c980: c7a400c8 */ lwc1 $f4,0xc8($sp)
|
|
/* f04c984: c7a600d0 */ lwc1 $f6,0xd0($sp)
|
|
/* f04c988: c6280010 */ lwc1 $f8,0x10($s1)
|
|
/* f04c98c: 460e2081 */ sub.s $f2,$f4,$f14
|
|
/* f04c990: 02a02825 */ or $a1,$s5,$zero
|
|
/* f04c994: 02c03025 */ or $a2,$s6,$zero
|
|
/* f04c998: 46083301 */ sub.s $f12,$f6,$f8
|
|
/* f04c99c: 46161282 */ mul.s $f10,$f2,$f22
|
|
/* f04c9a0: 02e03825 */ or $a3,$s7,$zero
|
|
/* f04c9a4: 46006402 */ mul.s $f16,$f12,$f0
|
|
/* f04c9a8: 46105481 */ sub.s $f18,$f10,$f16
|
|
/* f04c9ac: 46001202 */ mul.s $f8,$f2,$f0
|
|
/* f04c9b0: 00000000 */ nop
|
|
/* f04c9b4: 46166282 */ mul.s $f10,$f12,$f22
|
|
/* f04c9b8: 46127100 */ add.s $f4,$f14,$f18
|
|
/* f04c9bc: e6040000 */ swc1 $f4,0x0($s0)
|
|
/* f04c9c0: c7a600cc */ lwc1 $f6,0xcc($sp)
|
|
/* f04c9c4: 460a4400 */ add.s $f16,$f8,$f10
|
|
/* f04c9c8: e6060004 */ swc1 $f6,0x4($s0)
|
|
/* f04c9cc: c6320010 */ lwc1 $f18,0x10($s1)
|
|
/* f04c9d0: 46109100 */ add.s $f4,$f18,$f16
|
|
/* f04c9d4: e6040008 */ swc1 $f4,0x8($s0)
|
|
/* f04c9d8: 0fc0a277 */ jal propChrGetBbox
|
|
/* f04c9dc: 8e64001c */ lw $a0,0x1c($s3)
|
|
/* f04c9e0: c7a800cc */ lwc1 $f8,0xcc($sp)
|
|
/* f04c9e4: c7a600a0 */ lwc1 $f6,0xa0($sp)
|
|
/* f04c9e8: c7b2009c */ lwc1 $f18,0x9c($sp)
|
|
/* f04c9ec: 8e65001c */ lw $a1,0x1c($s3)
|
|
/* f04c9f0: 46083281 */ sub.s $f10,$f6,$f8
|
|
/* f04c9f4: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f04c9f8: afb90010 */ sw $t9,0x10($sp)
|
|
/* f04c9fc: 46089401 */ sub.s $f16,$f18,$f8
|
|
/* f04ca00: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f04ca04: 03c02025 */ or $a0,$s8,$zero
|
|
/* f04ca08: 02003025 */ or $a2,$s0,$zero
|
|
/* f04ca0c: e7b00018 */ swc1 $f16,0x18($sp)
|
|
/* f04ca10: 24070023 */ addiu $a3,$zero,0x23
|
|
/* f04ca14: 0c00b5f0 */ jal func0002d7c0
|
|
/* f04ca18: 24a50028 */ addiu $a1,$a1,0x28
|
|
/* f04ca1c: 1440002a */ bnez $v0,.L0f04cac8
|
|
/* f04ca20: 02002025 */ or $a0,$s0,$zero
|
|
/* f04ca24: 3c067f1b */ lui $a2,%hi(var7f1a8ce4)
|
|
/* f04ca28: 24c68ce4 */ addiu $a2,$a2,%lo(var7f1a8ce4)
|
|
/* f04ca2c: 0c0093af */ jal cdGetPos
|
|
/* f04ca30: 240548fe */ addiu $a1,$zero,0x48fe
|
|
/* f04ca34: c6040000 */ lwc1 $f4,0x0($s0)
|
|
/* f04ca38: c7a600c8 */ lwc1 $f6,0xc8($sp)
|
|
/* f04ca3c: c60a0008 */ lwc1 $f10,0x8($s0)
|
|
/* f04ca40: c7b200d0 */ lwc1 $f18,0xd0($sp)
|
|
/* f04ca44: 46062501 */ sub.s $f20,$f4,$f6
|
|
/* f04ca48: 46125581 */ sub.s $f22,$f10,$f18
|
|
/* f04ca4c: 4614a202 */ mul.s $f8,$f20,$f20
|
|
/* f04ca50: 00000000 */ nop
|
|
/* f04ca54: 4616b402 */ mul.s $f16,$f22,$f22
|
|
/* f04ca58: 0c012974 */ jal sqrtf
|
|
/* f04ca5c: 46104300 */ add.s $f12,$f8,$f16
|
|
/* f04ca60: 3c014248 */ lui $at,0x4248
|
|
/* f04ca64: 44812000 */ mtc1 $at,$f4
|
|
/* f04ca68: 44805000 */ mtc1 $zero,$f10
|
|
/* f04ca6c: c7b200c8 */ lwc1 $f18,0xc8($sp)
|
|
/* f04ca70: 46040181 */ sub.s $f6,$f0,$f4
|
|
/* f04ca74: c7a400c8 */ lwc1 $f4,0xc8($sp)
|
|
/* f04ca78: 46003083 */ div.s $f2,$f6,$f0
|
|
/* f04ca7c: 460a103c */ c.lt.s $f2,$f10
|
|
/* f04ca80: 00000000 */ nop
|
|
/* f04ca84: 45000007 */ bc1f .L0f04caa4
|
|
/* f04ca88: 00000000 */ nop
|
|
/* f04ca8c: e6120000 */ swc1 $f18,0x0($s0)
|
|
/* f04ca90: c7a800cc */ lwc1 $f8,0xcc($sp)
|
|
/* f04ca94: e6080004 */ swc1 $f8,0x4($s0)
|
|
/* f04ca98: c7b000d0 */ lwc1 $f16,0xd0($sp)
|
|
/* f04ca9c: 1000000a */ b .L0f04cac8
|
|
/* f04caa0: e6100008 */ swc1 $f16,0x8($s0)
|
|
.L0f04caa4:
|
|
/* f04caa4: 4602a502 */ mul.s $f20,$f20,$f2
|
|
/* f04caa8: 46142180 */ add.s $f6,$f4,$f20
|
|
/* f04caac: 4602b582 */ mul.s $f22,$f22,$f2
|
|
/* f04cab0: e6060000 */ swc1 $f6,0x0($s0)
|
|
/* f04cab4: c7aa00cc */ lwc1 $f10,0xcc($sp)
|
|
/* f04cab8: e60a0004 */ swc1 $f10,0x4($s0)
|
|
/* f04cabc: c7b200d0 */ lwc1 $f18,0xd0($sp)
|
|
/* f04cac0: 46169200 */ add.s $f8,$f18,$f22
|
|
/* f04cac4: e6080008 */ swc1 $f8,0x8($s0)
|
|
.L0f04cac8:
|
|
/* f04cac8: 12800019 */ beqz $s4,.L0f04cb30
|
|
/* f04cacc: 00001025 */ or $v0,$zero,$zero
|
|
/* f04cad0: c6000000 */ lwc1 $f0,0x0($s0)
|
|
/* f04cad4: c7b000c8 */ lwc1 $f16,0xc8($sp)
|
|
/* f04cad8: c7a400cc */ lwc1 $f4,0xcc($sp)
|
|
/* f04cadc: c6060004 */ lwc1 $f6,0x4($s0)
|
|
/* f04cae0: 46008081 */ sub.s $f2,$f16,$f0
|
|
/* f04cae4: c7aa00d0 */ lwc1 $f10,0xd0($sp)
|
|
/* f04cae8: c6120008 */ lwc1 $f18,0x8($s0)
|
|
/* f04caec: 46062381 */ sub.s $f14,$f4,$f6
|
|
/* f04caf0: 46021202 */ mul.s $f8,$f2,$f2
|
|
/* f04caf4: e7a000a8 */ swc1 $f0,0xa8($sp)
|
|
/* f04caf8: 46125301 */ sub.s $f12,$f10,$f18
|
|
/* f04cafc: 460e7402 */ mul.s $f16,$f14,$f14
|
|
/* f04cb00: c60a0004 */ lwc1 $f10,0x4($s0)
|
|
/* f04cb04: 24080168 */ addiu $t0,$zero,0x168
|
|
/* f04cb08: 460c6182 */ mul.s $f6,$f12,$f12
|
|
/* f04cb0c: e7aa00ac */ swc1 $f10,0xac($sp)
|
|
/* f04cb10: c6120008 */ lwc1 $f18,0x8($s0)
|
|
/* f04cb14: 01129023 */ subu $s2,$t0,$s2
|
|
/* f04cb18: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f04cb1c: 46104100 */ add.s $f4,$f8,$f16
|
|
/* f04cb20: 0000a025 */ or $s4,$zero,$zero
|
|
/* f04cb24: e7b200b0 */ swc1 $f18,0xb0($sp)
|
|
/* f04cb28: 10000001 */ b .L0f04cb30
|
|
/* f04cb2c: 46062680 */ add.s $f26,$f4,$f6
|
|
.L0f04cb30:
|
|
/* f04cb30: 5440ff7e */ bnezl $v0,.L0f04c92c
|
|
/* f04cb34: 44925000 */ mtc1 $s2,$f10
|
|
/* f04cb38: 44804000 */ mtc1 $zero,$f8
|
|
/* f04cb3c: c7b000c8 */ lwc1 $f16,0xc8($sp)
|
|
/* f04cb40: 02602025 */ or $a0,$s3,$zero
|
|
/* f04cb44: 4608d032 */ c.eq.s $f26,$f8
|
|
/* f04cb48: 02002825 */ or $a1,$s0,$zero
|
|
/* f04cb4c: 45010018 */ bc1t .L0f04cbb0
|
|
/* f04cb50: 00000000 */ nop
|
|
/* f04cb54: c6040000 */ lwc1 $f4,0x0($s0)
|
|
/* f04cb58: c7a600cc */ lwc1 $f6,0xcc($sp)
|
|
/* f04cb5c: c60a0004 */ lwc1 $f10,0x4($s0)
|
|
/* f04cb60: 46048081 */ sub.s $f2,$f16,$f4
|
|
/* f04cb64: c7b200d0 */ lwc1 $f18,0xd0($sp)
|
|
/* f04cb68: c6080008 */ lwc1 $f8,0x8($s0)
|
|
/* f04cb6c: 460a3381 */ sub.s $f14,$f6,$f10
|
|
/* f04cb70: 46021402 */ mul.s $f16,$f2,$f2
|
|
/* f04cb74: 46089301 */ sub.s $f12,$f18,$f8
|
|
/* f04cb78: 460e7102 */ mul.s $f4,$f14,$f14
|
|
/* f04cb7c: c7a800a8 */ lwc1 $f8,0xa8($sp)
|
|
/* f04cb80: 460c6282 */ mul.s $f10,$f12,$f12
|
|
/* f04cb84: 46048180 */ add.s $f6,$f16,$f4
|
|
/* f04cb88: 460a3480 */ add.s $f18,$f6,$f10
|
|
/* f04cb8c: 461a903c */ c.lt.s $f18,$f26
|
|
/* f04cb90: 00000000 */ nop
|
|
/* f04cb94: 45000006 */ bc1f .L0f04cbb0
|
|
/* f04cb98: 00000000 */ nop
|
|
/* f04cb9c: e6080000 */ swc1 $f8,0x0($s0)
|
|
/* f04cba0: c7b000ac */ lwc1 $f16,0xac($sp)
|
|
/* f04cba4: e6100004 */ swc1 $f16,0x4($s0)
|
|
/* f04cba8: c7a400b0 */ lwc1 $f4,0xb0($sp)
|
|
/* f04cbac: e6040008 */ swc1 $f4,0x8($s0)
|
|
.L0f04cbb0:
|
|
/* f04cbb0: 0fc0eaf4 */ jal func0f03abd0
|
|
/* f04cbb4: 93a600fb */ lbu $a2,0xfb($sp)
|
|
/* f04cbb8: 8fbf007c */ lw $ra,0x7c($sp)
|
|
/* f04cbbc: d7b40028 */ ldc1 $f20,0x28($sp)
|
|
/* f04cbc0: d7b60030 */ ldc1 $f22,0x30($sp)
|
|
/* f04cbc4: d7b80038 */ ldc1 $f24,0x38($sp)
|
|
/* f04cbc8: d7ba0040 */ ldc1 $f26,0x40($sp)
|
|
/* f04cbcc: d7bc0048 */ ldc1 $f28,0x48($sp)
|
|
/* f04cbd0: d7be0050 */ ldc1 $f30,0x50($sp)
|
|
/* f04cbd4: 8fb00058 */ lw $s0,0x58($sp)
|
|
/* f04cbd8: 8fb1005c */ lw $s1,0x5c($sp)
|
|
/* f04cbdc: 8fb20060 */ lw $s2,0x60($sp)
|
|
/* f04cbe0: 8fb30064 */ lw $s3,0x64($sp)
|
|
/* f04cbe4: 8fb40068 */ lw $s4,0x68($sp)
|
|
/* f04cbe8: 8fb5006c */ lw $s5,0x6c($sp)
|
|
/* f04cbec: 8fb60070 */ lw $s6,0x70($sp)
|
|
/* f04cbf0: 8fb70074 */ lw $s7,0x74($sp)
|
|
/* f04cbf4: 8fbe0078 */ lw $s8,0x78($sp)
|
|
/* f04cbf8: 27bd00e8 */ addiu $sp,$sp,0xe8
|
|
/* f04cbfc: 03e00008 */ jr $ra
|
|
/* f04cc00: 24020001 */ addiu $v0,$zero,0x1
|
|
);
|
|
|
|
// Mismatch: Probably due to variable reuse.
|
|
//bool func0f04c874(struct chrdata *chr, u32 angle360, struct coord *pos, u8 arg3, u8 arg4)
|
|
//{
|
|
// struct prop *target = chrGetTargetProp(chr);
|
|
// f32 fVar7 = 0;
|
|
// f32 uVar9 = func0f04c784(chr);
|
|
// struct coord chrpos; // c8, cc, d0
|
|
// struct coord saved; // a8, ac, b0
|
|
// f32 ymax; // a0
|
|
// f32 ymin; // 9c
|
|
// f32 width; // 98
|
|
// f32 cosine;
|
|
// f32 sine;
|
|
// f32 xdiff;
|
|
// f32 ydiff;
|
|
// f32 zdiff;
|
|
// f32 xdiff2;
|
|
// f32 ydiff2;
|
|
// f32 zdiff2;
|
|
// f32 scale;
|
|
// bool again;
|
|
//
|
|
// chrpos.x = chr->prop->pos.x;
|
|
// chrpos.y = chr->prop->pos.y;
|
|
// chrpos.z = chr->prop->pos.z;
|
|
//
|
|
// do {
|
|
// s32 result;
|
|
// f32 angle360f = angle360;
|
|
//
|
|
// if (angle360f > 180) {
|
|
// angle360f -= 360;
|
|
// }
|
|
//
|
|
// cosine = cosf((angle360f - uVar9) * 0.017450513318181f);
|
|
// sine = sinf((angle360f - uVar9) * 0.017450513318181f);
|
|
// xdiff = chrpos.x - target->pos.x;
|
|
// zdiff = chrpos.z - target->pos.z;
|
|
//
|
|
// pos->x = target->pos.x + (xdiff * cosine - zdiff * sine);
|
|
// pos->y = chrpos.y;
|
|
// pos->z = target->pos.z + (xdiff * sine + zdiff * cosine);
|
|
//
|
|
// propChrGetBbox(chr->prop, &width, &ymax, &ymin);
|
|
//
|
|
// // a14
|
|
// result = func0002d7c0(&chrpos, chr->prop->rooms, pos,
|
|
// CDTYPE_BG | CDTYPE_OBJS | CDTYPE_DOORS, 1,
|
|
// ymax - chrpos.y,
|
|
// ymin - chrpos.y);
|
|
//
|
|
// if (result == CDRESULT_COLLISION) {
|
|
// f32 xdiff;
|
|
// f32 zdiff;
|
|
// f32 tmp;
|
|
// cdGetPos(pos, 18686, "chraction.c");
|
|
//
|
|
// xdiff = pos->x - chrpos.x;
|
|
// zdiff = pos->z - chrpos.z;
|
|
// tmp = sqrtf(xdiff * xdiff + zdiff * zdiff);
|
|
// scale = (tmp - 50.0f) / tmp;
|
|
//
|
|
// if (scale < 0) {
|
|
// pos->x = chrpos.x;
|
|
// pos->y = chrpos.y;
|
|
// pos->z = chrpos.z;
|
|
// } else {
|
|
// pos->x = chrpos.x + xdiff * scale;
|
|
// pos->y = chrpos.y;
|
|
// pos->z = chrpos.z + zdiff * scale;
|
|
// }
|
|
// }
|
|
//
|
|
// // ac8
|
|
// if (arg3) {
|
|
// xdiff2 = chrpos.x - pos->x;
|
|
// ydiff2 = chrpos.y - pos->y;
|
|
// zdiff2 = chrpos.z - pos->z;
|
|
//
|
|
// saved.x = pos->x;
|
|
// saved.y = pos->y;
|
|
// saved.z = pos->z;
|
|
//
|
|
// fVar7 = xdiff2 * xdiff2 + ydiff2 * ydiff2 + zdiff2 * zdiff2;
|
|
//
|
|
// angle360 = 360 - angle360;
|
|
// again = true;
|
|
// arg3 = 0;
|
|
// } else {
|
|
// again = false;
|
|
// }
|
|
// } while (again);
|
|
//
|
|
// if (fVar7 != 0) {
|
|
// f32 tmp;
|
|
// xdiff2 = chrpos.x - pos->x;
|
|
// ydiff2 = chrpos.y - pos->y;
|
|
// zdiff2 = chrpos.z - pos->z;
|
|
//
|
|
// tmp = xdiff2 * xdiff2 + ydiff2 * ydiff2 + zdiff2 * zdiff2;
|
|
//
|
|
// if (tmp < fVar7) {
|
|
// pos->x = saved.x;
|
|
// pos->y = saved.y;
|
|
// pos->z = saved.z;
|
|
// }
|
|
// }
|
|
//
|
|
// func0f03abd0(chr, pos, arg4);
|
|
//
|
|
// return true;
|
|
//}
|
|
|
|
GLOBAL_ASM(
|
|
glabel rebuildTeams
|
|
/* f04cc04: 27bdffc0 */ addiu $sp,$sp,-64
|
|
/* f04cc08: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f04cc0c: 0fc07934 */ jal getNumChrSlots
|
|
/* f04cc10: 00000000 */ nop
|
|
/* f04cc14: 3c0e8007 */ lui $t6,%hi(var8006845c)
|
|
/* f04cc18: 25ce845c */ addiu $t6,$t6,%lo(var8006845c)
|
|
/* f04cc1c: 8dc10000 */ lw $at,0x0($t6)
|
|
/* f04cc20: 27ab0024 */ addiu $t3,$sp,0x24
|
|
/* f04cc24: 3c0c8006 */ lui $t4,%hi(g_ChrSlots)
|
|
/* f04cc28: ad610000 */ sw $at,0x0($t3)
|
|
/* f04cc2c: 8dd90004 */ lw $t9,0x4($t6)
|
|
/* f04cc30: 3c098006 */ lui $t1,%hi(g_TeamList)
|
|
/* f04cc34: 00405025 */ or $t2,$v0,$zero
|
|
/* f04cc38: 24070007 */ addiu $a3,$zero,0x7
|
|
/* f04cc3c: 25297e64 */ addiu $t1,$t1,%lo(g_TeamList)
|
|
/* f04cc40: 258c2988 */ addiu $t4,$t4,%lo(g_ChrSlots)
|
|
/* f04cc44: 00004025 */ or $t0,$zero,$zero
|
|
/* f04cc48: 241f0008 */ addiu $ra,$zero,0x8
|
|
/* f04cc4c: 240dfffe */ addiu $t5,$zero,-2
|
|
/* f04cc50: ad790004 */ sw $t9,0x4($t3)
|
|
.L0f04cc54:
|
|
/* f04cc54: 11000005 */ beqz $t0,.L0f04cc6c
|
|
/* f04cc58: 00003025 */ or $a2,$zero,$zero
|
|
/* f04cc5c: 8d380000 */ lw $t8,0x0($t1)
|
|
/* f04cc60: 00087840 */ sll $t7,$t0,0x1
|
|
/* f04cc64: 030f7021 */ addu $t6,$t8,$t7
|
|
/* f04cc68: a5c7fffe */ sh $a3,-0x2($t6)
|
|
.L0f04cc6c:
|
|
/* f04cc6c: 18400015 */ blez $v0,.L0f04ccc4
|
|
/* f04cc70: 00001825 */ or $v1,$zero,$zero
|
|
.L0f04cc74:
|
|
/* f04cc74: 8d990000 */ lw $t9,0x0($t4)
|
|
/* f04cc78: 24c60001 */ addiu $a2,$a2,0x1
|
|
/* f04cc7c: 0168c021 */ addu $t8,$t3,$t0
|
|
/* f04cc80: 00792021 */ addu $a0,$v1,$t9
|
|
/* f04cc84: 84850000 */ lh $a1,0x0($a0)
|
|
/* f04cc88: 04a0000c */ bltz $a1,.L0f04ccbc
|
|
/* f04cc8c: 00000000 */ nop
|
|
/* f04cc90: 930f0000 */ lbu $t7,0x0($t8)
|
|
/* f04cc94: 908e0125 */ lbu $t6,0x125($a0)
|
|
/* f04cc98: 01eec824 */ and $t9,$t7,$t6
|
|
/* f04cc9c: 13200007 */ beqz $t9,.L0f04ccbc
|
|
/* f04cca0: 00077840 */ sll $t7,$a3,0x1
|
|
/* f04cca4: 8d380000 */ lw $t8,0x0($t1)
|
|
/* f04cca8: 24e70001 */ addiu $a3,$a3,0x1
|
|
/* f04ccac: 0007cc00 */ sll $t9,$a3,0x10
|
|
/* f04ccb0: 030f7021 */ addu $t6,$t8,$t7
|
|
/* f04ccb4: a5c50000 */ sh $a1,0x0($t6)
|
|
/* f04ccb8: 00193c03 */ sra $a3,$t9,0x10
|
|
.L0f04ccbc:
|
|
/* f04ccbc: 14caffed */ bne $a2,$t2,.L0f04cc74
|
|
/* f04ccc0: 24630368 */ addiu $v1,$v1,0x368
|
|
.L0f04ccc4:
|
|
/* f04ccc4: 00077040 */ sll $t6,$a3,0x1
|
|
/* f04ccc8: 8d2f0000 */ lw $t7,0x0($t1)
|
|
/* f04cccc: 24e70001 */ addiu $a3,$a3,0x1
|
|
/* f04ccd0: 0007c400 */ sll $t8,$a3,0x10
|
|
/* f04ccd4: 00183c03 */ sra $a3,$t8,0x10
|
|
/* f04ccd8: 28e10108 */ slti $at,$a3,0x108
|
|
/* f04ccdc: 01eec821 */ addu $t9,$t7,$t6
|
|
/* f04cce0: 10200004 */ beqz $at,.L0f04ccf4
|
|
/* f04cce4: a72d0000 */ sh $t5,0x0($t9)
|
|
/* f04cce8: 25080001 */ addiu $t0,$t0,0x1
|
|
/* f04ccec: 151fffd9 */ bne $t0,$ra,.L0f04cc54
|
|
/* f04ccf0: 00000000 */ nop
|
|
.L0f04ccf4:
|
|
/* f04ccf4: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f04ccf8: 27bd0040 */ addiu $sp,$sp,0x40
|
|
/* f04ccfc: 03e00008 */ jr $ra
|
|
/* f04cd00: 00000000 */ nop
|
|
);
|
|
|
|
GLOBAL_ASM(
|
|
glabel rebuildSquadrons
|
|
/* f04cd04: 27bdffe0 */ addiu $sp,$sp,-32
|
|
/* f04cd08: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f04cd0c: 0fc07934 */ jal getNumChrSlots
|
|
/* f04cd10: afb00018 */ sw $s0,0x18($sp)
|
|
/* f04cd14: 3c0c8006 */ lui $t4,%hi(g_ChrSlots)
|
|
/* f04cd18: 3c0a8006 */ lui $t2,%hi(g_SquadronList)
|
|
/* f04cd1c: 00405825 */ or $t3,$v0,$zero
|
|
/* f04cd20: 2408000f */ addiu $t0,$zero,0xf
|
|
/* f04cd24: 254a7e68 */ addiu $t2,$t2,%lo(g_SquadronList)
|
|
/* f04cd28: 258c2988 */ addiu $t4,$t4,%lo(g_ChrSlots)
|
|
/* f04cd2c: 00004825 */ or $t1,$zero,$zero
|
|
/* f04cd30: 24100010 */ addiu $s0,$zero,0x10
|
|
/* f04cd34: 241ffffe */ addiu $ra,$zero,-2
|
|
/* f04cd38: 240d0006 */ addiu $t5,$zero,0x6
|
|
.L0f04cd3c:
|
|
/* f04cd3c: 11200005 */ beqz $t1,.L0f04cd54
|
|
/* f04cd40: 00003825 */ or $a3,$zero,$zero
|
|
/* f04cd44: 8d4e0000 */ lw $t6,0x0($t2)
|
|
/* f04cd48: 00097840 */ sll $t7,$t1,0x1
|
|
/* f04cd4c: 01cfc021 */ addu $t8,$t6,$t7
|
|
/* f04cd50: a708fffe */ sh $t0,-0x2($t8)
|
|
.L0f04cd54:
|
|
/* f04cd54: 18400019 */ blez $v0,.L0f04cdbc
|
|
/* f04cd58: 00002825 */ or $a1,$zero,$zero
|
|
.L0f04cd5c:
|
|
/* f04cd5c: 8d990000 */ lw $t9,0x0($t4)
|
|
/* f04cd60: 24e70001 */ addiu $a3,$a3,0x1
|
|
/* f04cd64: 00b91821 */ addu $v1,$a1,$t9
|
|
/* f04cd68: 84660000 */ lh $a2,0x0($v1)
|
|
/* f04cd6c: 04c00011 */ bltz $a2,.L0f04cdb4
|
|
/* f04cd70: 00000000 */ nop
|
|
/* f04cd74: 906e02a2 */ lbu $t6,0x2a2($v1)
|
|
/* f04cd78: 152e000e */ bne $t1,$t6,.L0f04cdb4
|
|
/* f04cd7c: 00000000 */ nop
|
|
/* f04cd80: 8c64001c */ lw $a0,0x1c($v1)
|
|
/* f04cd84: 0008c840 */ sll $t9,$t0,0x1
|
|
/* f04cd88: 50800005 */ beqzl $a0,.L0f04cda0
|
|
/* f04cd8c: 8d580000 */ lw $t8,0x0($t2)
|
|
/* f04cd90: 908f0000 */ lbu $t7,0x0($a0)
|
|
/* f04cd94: 11af0007 */ beq $t5,$t7,.L0f04cdb4
|
|
/* f04cd98: 00000000 */ nop
|
|
/* f04cd9c: 8d580000 */ lw $t8,0x0($t2)
|
|
.L0f04cda0:
|
|
/* f04cda0: 25080001 */ addiu $t0,$t0,0x1
|
|
/* f04cda4: 00087c00 */ sll $t7,$t0,0x10
|
|
/* f04cda8: 03197021 */ addu $t6,$t8,$t9
|
|
/* f04cdac: a5c60000 */ sh $a2,0x0($t6)
|
|
/* f04cdb0: 000f4403 */ sra $t0,$t7,0x10
|
|
.L0f04cdb4:
|
|
/* f04cdb4: 14ebffe9 */ bne $a3,$t3,.L0f04cd5c
|
|
/* f04cdb8: 24a50368 */ addiu $a1,$a1,0x368
|
|
.L0f04cdbc:
|
|
/* f04cdbc: 00087040 */ sll $t6,$t0,0x1
|
|
/* f04cdc0: 8d590000 */ lw $t9,0x0($t2)
|
|
/* f04cdc4: 25080001 */ addiu $t0,$t0,0x1
|
|
/* f04cdc8: 0008c400 */ sll $t8,$t0,0x10
|
|
/* f04cdcc: 00184403 */ sra $t0,$t8,0x10
|
|
/* f04cdd0: 29010110 */ slti $at,$t0,0x110
|
|
/* f04cdd4: 032e7821 */ addu $t7,$t9,$t6
|
|
/* f04cdd8: 10200004 */ beqz $at,.L0f04cdec
|
|
/* f04cddc: a5ff0000 */ sh $ra,0x0($t7)
|
|
/* f04cde0: 25290001 */ addiu $t1,$t1,0x1
|
|
/* f04cde4: 1530ffd5 */ bne $t1,$s0,.L0f04cd3c
|
|
/* f04cde8: 00000000 */ nop
|
|
.L0f04cdec:
|
|
/* f04cdec: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f04cdf0: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f04cdf4: 27bd0020 */ addiu $sp,$sp,0x20
|
|
/* f04cdf8: 03e00008 */ jr $ra
|
|
/* f04cdfc: 00000000 */ nop
|
|
);
|
|
|
|
u32 var80068460 = 0x10204080;
|
|
|
|
s16 *teamGetChrIds(s32 team_id)
|
|
{
|
|
s32 i;
|
|
u8 lookup[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
|
|
|
|
for (i = 0; i != MAX_TEAMS; i++) {
|
|
if (lookup[i] == team_id) {
|
|
team_id = i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (team_id < 0 || team_id >= MAX_TEAMS) {
|
|
return NULL;
|
|
}
|
|
|
|
if (team_id != 0) {
|
|
return &g_TeamList[g_TeamList[team_id - 1]];
|
|
}
|
|
|
|
return &g_TeamList[MAX_TEAMS - 1];
|
|
}
|
|
|
|
s16 *squadronGetChrIds(s32 squadron_id)
|
|
{
|
|
if (squadron_id < 0 || squadron_id >= MAX_SQUADRONS) {
|
|
return NULL;
|
|
}
|
|
|
|
if (squadron_id != 0) {
|
|
return &g_SquadronList[g_SquadronList[squadron_id - 1]];
|
|
}
|
|
|
|
return &g_SquadronList[MAX_SQUADRONS - 1];
|
|
}
|
|
|
|
void audioMarkAsRecentlyPlayed(s16 audioid)
|
|
{
|
|
g_RecentQuipsPlayed[g_RecentQuipsIndex++] = audioid;
|
|
|
|
if (g_RecentQuipsIndex > 4) {
|
|
g_RecentQuipsIndex = 0;
|
|
}
|
|
}
|
|
|
|
bool audioWasNotPlayedRecently(s16 audioid)
|
|
{
|
|
u8 i;
|
|
|
|
for (i = 0; i < 5; i++) {
|
|
if (g_RecentQuipsPlayed[i] == audioid) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
s32 func0f004cd84(s32 arg0, s32 arg1)
|
|
{
|
|
return arg0;
|
|
}
|
|
|
|
void chrToggleModelPart(struct chrdata *chr, s32 partnum)
|
|
{
|
|
if (chr && chr->model && chr->model->filedata) {
|
|
struct modelnode *node = modelGetPart(chr->model->filedata, partnum);
|
|
struct modeldata_partid *data = NULL;
|
|
|
|
if (node) {
|
|
data = modelGetNodeData(chr->model, node);
|
|
}
|
|
|
|
if (data) {
|
|
bool visible = data->visible.u32;
|
|
data->visible.u32 = !visible;
|
|
}
|
|
}
|
|
}
|
|
|
|
u32 var8006846c = 0x00000064;
|
|
u32 var80068470 = 0x00000065;
|
|
u32 var80068474 = 0x00000066;
|
|
u32 var80068478 = 0x00000067;
|
|
u32 var8006847c = 0x00000030;
|
|
u32 var80068480 = 0x0000003a;
|
|
u32 var80068484 = 0x00000023;
|
|
u32 var80068488 = 0x00000023;
|
|
u32 var8006848c = 0x00000000;
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f04d000
|
|
.late_rodata
|
|
glabel var7f1a9430
|
|
.word 0x40c907a9
|
|
glabel var7f1a9434
|
|
.word 0x40490fdb
|
|
glabel var7f1a9438
|
|
.word 0x439d8000
|
|
glabel var7f1a943c
|
|
.word 0x40490fdb
|
|
glabel var7f1a9440
|
|
.word 0x3fc90fdb
|
|
glabel var7f1a9444
|
|
.word 0x3fc90fdb
|
|
glabel var7f1a9448
|
|
.word 0x3f19999a
|
|
.text
|
|
/* f04d000: 27bdff58 */ addiu $sp,$sp,-168
|
|
/* f04d004: 3c0f8007 */ lui $t7,%hi(var8006846c)
|
|
/* f04d008: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f04d00c: afb00028 */ sw $s0,0x28($sp)
|
|
/* f04d010: 25ef846c */ addiu $t7,$t7,%lo(var8006846c)
|
|
/* f04d014: 8de10000 */ lw $at,0x0($t7)
|
|
/* f04d018: 8de80004 */ lw $t0,0x4($t7)
|
|
/* f04d01c: 27ae0088 */ addiu $t6,$sp,0x88
|
|
/* f04d020: adc10000 */ sw $at,0x0($t6)
|
|
/* f04d024: adc80004 */ sw $t0,0x4($t6)
|
|
/* f04d028: 8de8000c */ lw $t0,0xc($t7)
|
|
/* f04d02c: 8de10008 */ lw $at,0x8($t7)
|
|
/* f04d030: 00808025 */ or $s0,$a0,$zero
|
|
/* f04d034: adc8000c */ sw $t0,0xc($t6)
|
|
/* f04d038: adc10008 */ sw $at,0x8($t6)
|
|
/* f04d03c: 8de10010 */ lw $at,0x10($t7)
|
|
/* f04d040: 8de80014 */ lw $t0,0x14($t7)
|
|
/* f04d044: adc10010 */ sw $at,0x10($t6)
|
|
/* f04d048: adc80014 */ sw $t0,0x14($t6)
|
|
/* f04d04c: 8de8001c */ lw $t0,0x1c($t7)
|
|
/* f04d050: 8de10018 */ lw $at,0x18($t7)
|
|
/* f04d054: adc8001c */ sw $t0,0x1c($t6)
|
|
/* f04d058: 0fc0a221 */ jal chrGetTargetProp
|
|
/* f04d05c: adc10018 */ sw $at,0x18($t6)
|
|
/* f04d060: 02002025 */ or $a0,$s0,$zero
|
|
/* f04d064: 0fc122a1 */ jal chrGetAngleToPos
|
|
/* f04d068: 24450008 */ addiu $a1,$v0,0x8
|
|
/* f04d06c: 3c017f1b */ lui $at,%hi(var7f1a9430)
|
|
/* f04d070: c4249430 */ lwc1 $f4,%lo(var7f1a9430)($at)
|
|
/* f04d074: 3c0143b4 */ lui $at,0x43b4
|
|
/* f04d078: 44814000 */ mtc1 $at,$f8
|
|
/* f04d07c: 46040183 */ div.s $f6,$f0,$f4
|
|
/* f04d080: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f04d084: afa00078 */ sw $zero,0x78($sp)
|
|
/* f04d088: afa90068 */ sw $t1,0x68($sp)
|
|
/* f04d08c: 8e040020 */ lw $a0,0x20($s0)
|
|
/* f04d090: 46083082 */ mul.s $f2,$f6,$f8
|
|
/* f04d094: 0c006b91 */ jal func0001ae44
|
|
/* f04d098: e7a2007c */ swc1 $f2,0x7c($sp)
|
|
/* f04d09c: 02002025 */ or $a0,$s0,$zero
|
|
/* f04d0a0: 00002825 */ or $a1,$zero,$zero
|
|
/* f04d0a4: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f04d0a8: e7a00058 */ swc1 $f0,0x58($sp)
|
|
/* f04d0ac: 0fc0e686 */ jal chrIsReadyForOrders
|
|
/* f04d0b0: 02002025 */ or $a0,$s0,$zero
|
|
/* f04d0b4: c7a2007c */ lwc1 $f2,0x7c($sp)
|
|
/* f04d0b8: 104000df */ beqz $v0,.L0f04d438
|
|
/* f04d0bc: c7ac0058 */ lwc1 $f12,0x58($sp)
|
|
/* f04d0c0: 02002025 */ or $a0,$s0,$zero
|
|
/* f04d0c4: 00002825 */ or $a1,$zero,$zero
|
|
/* f04d0c8: e7a2007c */ swc1 $f2,0x7c($sp)
|
|
/* f04d0cc: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f04d0d0: e7ac0058 */ swc1 $f12,0x58($sp)
|
|
/* f04d0d4: 3c014234 */ lui $at,0x4234
|
|
/* f04d0d8: c7a2007c */ lwc1 $f2,0x7c($sp)
|
|
/* f04d0dc: 44815000 */ mtc1 $at,$f10
|
|
/* f04d0e0: c7ac0058 */ lwc1 $f12,0x58($sp)
|
|
/* f04d0e4: 3c014307 */ lui $at,0x4307
|
|
/* f04d0e8: 4602503c */ c.lt.s $f10,$f2
|
|
/* f04d0ec: 00000000 */ nop
|
|
/* f04d0f0: 4502000e */ bc1fl .L0f04d12c
|
|
/* f04d0f4: 3c014307 */ lui $at,0x4307
|
|
/* f04d0f8: 44818000 */ mtc1 $at,$f16
|
|
/* f04d0fc: 240a0003 */ addiu $t2,$zero,0x3
|
|
/* f04d100: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f04d104: 4610103e */ c.le.s $f2,$f16
|
|
/* f04d108: 3c017f1b */ lui $at,%hi(var7f1a9434)
|
|
/* f04d10c: 45020007 */ bc1fl .L0f04d12c
|
|
/* f04d110: 3c014307 */ lui $at,0x4307
|
|
/* f04d114: c4329434 */ lwc1 $f18,%lo(var7f1a9434)($at)
|
|
/* f04d118: afaa0084 */ sw $t2,0x84($sp)
|
|
/* f04d11c: afab0078 */ sw $t3,0x78($sp)
|
|
/* f04d120: 10000046 */ b .L0f04d23c
|
|
/* f04d124: 46126300 */ add.s $f12,$f12,$f18
|
|
/* f04d128: 3c014307 */ lui $at,0x4307
|
|
.L0f04d12c:
|
|
/* f04d12c: 44812000 */ mtc1 $at,$f4
|
|
/* f04d130: 3c014361 */ lui $at,0x4361
|
|
/* f04d134: 4602203c */ c.lt.s $f4,$f2
|
|
/* f04d138: 00000000 */ nop
|
|
/* f04d13c: 45020018 */ bc1fl .L0f04d1a0
|
|
/* f04d140: 3c014361 */ lui $at,0x4361
|
|
/* f04d144: 44813000 */ mtc1 $at,$f6
|
|
/* f04d148: 240c0002 */ addiu $t4,$zero,0x2
|
|
/* f04d14c: 4606103c */ c.lt.s $f2,$f6
|
|
/* f04d150: 00000000 */ nop
|
|
/* f04d154: 45020012 */ bc1fl .L0f04d1a0
|
|
/* f04d158: 3c014361 */ lui $at,0x4361
|
|
/* f04d15c: afac0084 */ sw $t4,0x84($sp)
|
|
/* f04d160: 0c004b70 */ jal random
|
|
/* f04d164: e7ac0058 */ swc1 $f12,0x58($sp)
|
|
/* f04d168: 240100ff */ addiu $at,$zero,0xff
|
|
/* f04d16c: 0041001b */ divu $zero,$v0,$at
|
|
/* f04d170: 00006810 */ mfhi $t5
|
|
/* f04d174: 2da10002 */ sltiu $at,$t5,0x2
|
|
/* f04d178: 14200030 */ bnez $at,.L0f04d23c
|
|
/* f04d17c: c7ac0058 */ lwc1 $f12,0x58($sp)
|
|
/* f04d180: afa00068 */ sw $zero,0x68($sp)
|
|
/* f04d184: 8e190018 */ lw $t9,0x18($s0)
|
|
/* f04d188: 3c01efff */ lui $at,0xefff
|
|
/* f04d18c: 3421ffff */ ori $at,$at,0xffff
|
|
/* f04d190: 0321c024 */ and $t8,$t9,$at
|
|
/* f04d194: 10000029 */ b .L0f04d23c
|
|
/* f04d198: ae180018 */ sw $t8,0x18($s0)
|
|
/* f04d19c: 3c014361 */ lui $at,0x4361
|
|
.L0f04d1a0:
|
|
/* f04d1a0: 44814000 */ mtc1 $at,$f8
|
|
/* f04d1a4: 3c017f1b */ lui $at,%hi(var7f1a9438)
|
|
/* f04d1a8: 4602403c */ c.lt.s $f8,$f2
|
|
/* f04d1ac: 00000000 */ nop
|
|
/* f04d1b0: 4500000c */ bc1f .L0f04d1e4
|
|
/* f04d1b4: 00000000 */ nop
|
|
/* f04d1b8: c42a9438 */ lwc1 $f10,%lo(var7f1a9438)($at)
|
|
/* f04d1bc: 240e0003 */ addiu $t6,$zero,0x3
|
|
/* f04d1c0: 3c017f1b */ lui $at,%hi(var7f1a943c)
|
|
/* f04d1c4: 460a103c */ c.lt.s $f2,$f10
|
|
/* f04d1c8: 00000000 */ nop
|
|
/* f04d1cc: 45000005 */ bc1f .L0f04d1e4
|
|
/* f04d1d0: 00000000 */ nop
|
|
/* f04d1d4: c430943c */ lwc1 $f16,%lo(var7f1a943c)($at)
|
|
/* f04d1d8: afae0084 */ sw $t6,0x84($sp)
|
|
/* f04d1dc: 10000017 */ b .L0f04d23c
|
|
/* f04d1e0: 46106300 */ add.s $f12,$f12,$f16
|
|
.L0f04d1e4:
|
|
/* f04d1e4: 0c004b70 */ jal random
|
|
/* f04d1e8: e7ac0058 */ swc1 $f12,0x58($sp)
|
|
/* f04d1ec: 24010064 */ addiu $at,$zero,0x64
|
|
/* f04d1f0: 0041001b */ divu $zero,$v0,$at
|
|
/* f04d1f4: 00007810 */ mfhi $t7
|
|
/* f04d1f8: 2de10032 */ sltiu $at,$t7,0x32
|
|
/* f04d1fc: 10200003 */ beqz $at,.L0f04d20c
|
|
/* f04d200: c7ac0058 */ lwc1 $f12,0x58($sp)
|
|
/* f04d204: 10000003 */ b .L0f04d214
|
|
/* f04d208: afa00084 */ sw $zero,0x84($sp)
|
|
.L0f04d20c:
|
|
/* f04d20c: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f04d210: afa80084 */ sw $t0,0x84($sp)
|
|
.L0f04d214:
|
|
/* f04d214: 8fa90084 */ lw $t1,0x84($sp)
|
|
/* f04d218: 3c017f1b */ lui $at,%hi(var7f1a9440)
|
|
/* f04d21c: 15200005 */ bnez $t1,.L0f04d234
|
|
/* f04d220: 00000000 */ nop
|
|
/* f04d224: 3c017f1b */ lui $at,%hi(var7f1a9444)
|
|
/* f04d228: c4329440 */ lwc1 $f18,%lo(var7f1a9440)($at)
|
|
/* f04d22c: 10000003 */ b .L0f04d23c
|
|
/* f04d230: 46126301 */ sub.s $f12,$f12,$f18
|
|
.L0f04d234:
|
|
/* f04d234: c4249444 */ lwc1 $f4,%lo(var7f1a9444)($at)
|
|
/* f04d238: 46046300 */ add.s $f12,$f12,$f4
|
|
.L0f04d23c:
|
|
/* f04d23c: 8faa0068 */ lw $t2,0x68($sp)
|
|
/* f04d240: 5140007b */ beqzl $t2,.L0f04d430
|
|
/* f04d244: 02002025 */ or $a0,$s0,$zero
|
|
/* f04d248: 0c0068f7 */ jal sinf
|
|
/* f04d24c: e7ac0058 */ swc1 $f12,0x58($sp)
|
|
/* f04d250: 3c0142c8 */ lui $at,0x42c8
|
|
/* f04d254: 44814000 */ mtc1 $at,$f8
|
|
/* f04d258: 8e0b001c */ lw $t3,0x1c($s0)
|
|
/* f04d25c: c7ac0058 */ lwc1 $f12,0x58($sp)
|
|
/* f04d260: 46080282 */ mul.s $f10,$f0,$f8
|
|
/* f04d264: c5660008 */ lwc1 $f6,0x8($t3)
|
|
/* f04d268: 460a3401 */ sub.s $f16,$f6,$f10
|
|
/* f04d26c: e7b0003c */ swc1 $f16,0x3c($sp)
|
|
/* f04d270: 8e0c001c */ lw $t4,0x1c($s0)
|
|
/* f04d274: c592000c */ lwc1 $f18,0xc($t4)
|
|
/* f04d278: 0c0068f4 */ jal cosf
|
|
/* f04d27c: e7b20040 */ swc1 $f18,0x40($sp)
|
|
/* f04d280: 3c0142c8 */ lui $at,0x42c8
|
|
/* f04d284: 44812000 */ mtc1 $at,$f4
|
|
/* f04d288: 8e0d001c */ lw $t5,0x1c($s0)
|
|
/* f04d28c: 27a5006c */ addiu $a1,$sp,0x6c
|
|
/* f04d290: 46040202 */ mul.s $f8,$f0,$f4
|
|
/* f04d294: c5a60010 */ lwc1 $f6,0x10($t5)
|
|
/* f04d298: 27a60074 */ addiu $a2,$sp,0x74
|
|
/* f04d29c: 27a70070 */ addiu $a3,$sp,0x70
|
|
/* f04d2a0: 46064280 */ add.s $f10,$f8,$f6
|
|
/* f04d2a4: e7aa0044 */ swc1 $f10,0x44($sp)
|
|
/* f04d2a8: 0fc0a277 */ jal propChrGetBbox
|
|
/* f04d2ac: 8e04001c */ lw $a0,0x1c($s0)
|
|
/* f04d2b0: 3c013f00 */ lui $at,0x3f00
|
|
/* f04d2b4: 44819000 */ mtc1 $at,$f18
|
|
/* f04d2b8: c7b0006c */ lwc1 $f16,0x6c($sp)
|
|
/* f04d2bc: 8e02001c */ lw $v0,0x1c($s0)
|
|
/* f04d2c0: 27a6003c */ addiu $a2,$sp,0x3c
|
|
/* f04d2c4: 46128002 */ mul.s $f0,$f16,$f18
|
|
/* f04d2c8: 27a70048 */ addiu $a3,$sp,0x48
|
|
/* f04d2cc: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f04d2d0: 24450028 */ addiu $a1,$v0,0x28
|
|
/* f04d2d4: 0fc1979d */ jal func0f065e74
|
|
/* f04d2d8: e7a0005c */ swc1 $f0,0x5c($sp)
|
|
/* f04d2dc: 02002025 */ or $a0,$s0,$zero
|
|
/* f04d2e0: 27a5003c */ addiu $a1,$sp,0x3c
|
|
/* f04d2e4: 0fc087ea */ jal func0f021fa8
|
|
/* f04d2e8: 27a60048 */ addiu $a2,$sp,0x48
|
|
/* f04d2ec: 8e02001c */ lw $v0,0x1c($s0)
|
|
/* f04d2f0: c7a4003c */ lwc1 $f4,0x3c($sp)
|
|
/* f04d2f4: c7a0005c */ lwc1 $f0,0x5c($sp)
|
|
/* f04d2f8: c4480008 */ lwc1 $f8,0x8($v0)
|
|
/* f04d2fc: c7a60044 */ lwc1 $f6,0x44($sp)
|
|
/* f04d300: c44a0010 */ lwc1 $f10,0x10($v0)
|
|
/* f04d304: 46082081 */ sub.s $f2,$f4,$f8
|
|
/* f04d308: 2419003f */ addiu $t9,$zero,0x3f
|
|
/* f04d30c: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f04d310: 460a3301 */ sub.s $f12,$f6,$f10
|
|
/* f04d314: 4602003c */ c.lt.s $f0,$f2
|
|
/* f04d318: 00000000 */ nop
|
|
/* f04d31c: 4503000f */ bc1tl .L0f04d35c
|
|
/* f04d320: afb90010 */ sw $t9,0x10($sp)
|
|
/* f04d324: 460c003c */ c.lt.s $f0,$f12
|
|
/* f04d328: 00000000 */ nop
|
|
/* f04d32c: 4503000b */ bc1tl .L0f04d35c
|
|
/* f04d330: afb90010 */ sw $t9,0x10($sp)
|
|
/* f04d334: 46000387 */ neg.s $f14,$f0
|
|
/* f04d338: 460e103c */ c.lt.s $f2,$f14
|
|
/* f04d33c: 00000000 */ nop
|
|
/* f04d340: 45030006 */ bc1tl .L0f04d35c
|
|
/* f04d344: afb90010 */ sw $t9,0x10($sp)
|
|
/* f04d348: 460e603c */ c.lt.s $f12,$f14
|
|
/* f04d34c: 00000000 */ nop
|
|
/* f04d350: 45020011 */ bc1fl .L0f04d398
|
|
/* f04d354: 8fa30068 */ lw $v1,0x68($sp)
|
|
/* f04d358: afb90010 */ sw $t9,0x10($sp)
|
|
.L0f04d35c:
|
|
/* f04d35c: afb80014 */ sw $t8,0x14($sp)
|
|
/* f04d360: c440000c */ lwc1 $f0,0xc($v0)
|
|
/* f04d364: c7b00074 */ lwc1 $f16,0x74($sp)
|
|
/* f04d368: c7a40070 */ lwc1 $f4,0x70($sp)
|
|
/* f04d36c: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f04d370: 46008481 */ sub.s $f18,$f16,$f0
|
|
/* f04d374: 24450028 */ addiu $a1,$v0,0x28
|
|
/* f04d378: 27a6003c */ addiu $a2,$sp,0x3c
|
|
/* f04d37c: 46002201 */ sub.s $f8,$f4,$f0
|
|
/* f04d380: e7b20018 */ swc1 $f18,0x18($sp)
|
|
/* f04d384: 27a70048 */ addiu $a3,$sp,0x48
|
|
/* f04d388: 0c00b62e */ jal func0002d8b8
|
|
/* f04d38c: e7a8001c */ swc1 $f8,0x1c($sp)
|
|
/* f04d390: afa20068 */ sw $v0,0x68($sp)
|
|
/* f04d394: 8fa30068 */ lw $v1,0x68($sp)
|
|
.L0f04d398:
|
|
/* f04d398: 2401ffff */ addiu $at,$zero,-1
|
|
/* f04d39c: 54610008 */ bnel $v1,$at,.L0f04d3c0
|
|
/* f04d3a0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f04d3a4: 8e0e0018 */ lw $t6,0x18($s0)
|
|
/* f04d3a8: 3c01efff */ lui $at,0xefff
|
|
/* f04d3ac: 3421ffff */ ori $at,$at,0xffff
|
|
/* f04d3b0: 01c17824 */ and $t7,$t6,$at
|
|
/* f04d3b4: 1000001d */ b .L0f04d42c
|
|
/* f04d3b8: ae0f0018 */ sw $t7,0x18($s0)
|
|
/* f04d3bc: 24010001 */ addiu $at,$zero,0x1
|
|
.L0f04d3c0:
|
|
/* f04d3c0: 14610015 */ bne $v1,$at,.L0f04d418
|
|
/* f04d3c4: 8fa80084 */ lw $t0,0x84($sp)
|
|
/* f04d3c8: 00084880 */ sll $t1,$t0,0x2
|
|
/* f04d3cc: 27aa0088 */ addiu $t2,$sp,0x88
|
|
/* f04d3d0: 012a1021 */ addu $v0,$t1,$t2
|
|
/* f04d3d4: 8c4b0010 */ lw $t3,0x10($v0)
|
|
/* f04d3d8: 3c017f1b */ lui $at,%hi(var7f1a9448)
|
|
/* f04d3dc: c42a9448 */ lwc1 $f10,%lo(var7f1a9448)($at)
|
|
/* f04d3e0: 448b3000 */ mtc1 $t3,$f6
|
|
/* f04d3e4: 8fac0078 */ lw $t4,0x78($sp)
|
|
/* f04d3e8: 8c450000 */ lw $a1,0x0($v0)
|
|
/* f04d3ec: 468031a0 */ cvt.s.w $f6,$f6
|
|
/* f04d3f0: 240d0002 */ addiu $t5,$zero,0x2
|
|
/* f04d3f4: afad0014 */ sw $t5,0x14($sp)
|
|
/* f04d3f8: 02002025 */ or $a0,$s0,$zero
|
|
/* f04d3fc: 24060000 */ addiu $a2,$zero,0x0
|
|
/* f04d400: e7aa0018 */ swc1 $f10,0x18($sp)
|
|
/* f04d404: 44073000 */ mfc1 $a3,$f6
|
|
/* f04d408: 0fc0c3fe */ jal func0f030ff8
|
|
/* f04d40c: afac0010 */ sw $t4,0x10($sp)
|
|
/* f04d410: 10000007 */ b .L0f04d430
|
|
/* f04d414: 02002025 */ or $a0,$s0,$zero
|
|
.L0f04d418:
|
|
/* f04d418: 8e190018 */ lw $t9,0x18($s0)
|
|
/* f04d41c: 3c01efff */ lui $at,0xefff
|
|
/* f04d420: 3421ffff */ ori $at,$at,0xffff
|
|
/* f04d424: 0321c024 */ and $t8,$t9,$at
|
|
/* f04d428: ae180018 */ sw $t8,0x18($s0)
|
|
.L0f04d42c:
|
|
/* f04d42c: 02002025 */ or $a0,$s0,$zero
|
|
.L0f04d430:
|
|
/* f04d430: 0fc079ef */ jal chrSetOrUnsetHiddenFlag00000100
|
|
/* f04d434: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f04d438:
|
|
/* f04d438: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f04d43c: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f04d440: 27bd00a8 */ addiu $sp,$sp,0xa8
|
|
/* f04d444: 03e00008 */ jr $ra
|
|
/* f04d448: 00000000 */ nop
|
|
);
|
|
|
|
/**
|
|
* Checks if the chr is doing an avoiding animation.
|
|
*
|
|
* These animations are possibly unused. In each one, the chr jumps backwards or
|
|
* to the side as if avoiding something, then looks at whatever it was that just
|
|
* went past.
|
|
*/
|
|
bool chrIsAvoiding(struct chrdata *chr)
|
|
{
|
|
s32 anim = modelGetAnimNum(chr->model);
|
|
chr->chrflags &= ~CHRCFLAG_10000000;
|
|
|
|
// Possible @bug or just sloppy code: The flag check below can never pass
|
|
// because that flag was just turned off above.
|
|
if (anim == 0x64
|
|
|| anim == 0x65
|
|
|| anim == 0x66
|
|
|| anim == 0x67
|
|
|| (chr->chrflags & CHRCFLAG_10000000)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void chrDrCarollEmitSparks(struct chrdata *chr)
|
|
{
|
|
if (chr && chr->prop) {
|
|
func0f0939f8(0, chr->prop, SFX_SHIELD_DAMAGE, -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
|
|
sparksCreate(chr->prop->rooms[0], chr->prop, &chr->prop->pos, NULL, 0, 1);
|
|
}
|
|
}
|