mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-08-18 13:13:11 -04:00
32709 lines
1.1 MiB
Plaintext
32709 lines
1.1 MiB
Plaintext
#include <ultra64.h>
|
|
#include "constants.h"
|
|
#include "game/bondmove.h"
|
|
#include "game/cheats.h"
|
|
#include "game/chraction.h"
|
|
#include "game/inv.h"
|
|
#include "game/game_006900.h"
|
|
#include "game/chr.h"
|
|
#include "game/prop.h"
|
|
#include "game/propsnd.h"
|
|
#include "game/game_096360.h"
|
|
#include "game/acosfasinf.h"
|
|
#include "game/game_096b20.h"
|
|
#include "game/quaternion.h"
|
|
#include "game/game_097aa0.h"
|
|
#include "game/bondgun.h"
|
|
#include "game/gunfx.h"
|
|
#include "game/game_0b0fd0.h"
|
|
#include "game/game_0b28d0.h"
|
|
#include "game/tex.h"
|
|
#include "game/camera.h"
|
|
#include "game/player.h"
|
|
#include "game/game_0c33f0.h"
|
|
#include "game/gfxmemory.h"
|
|
#include "game/sight.h"
|
|
#include "game/inv.h"
|
|
#include "game/playermgr.h"
|
|
#include "game/smoke.h"
|
|
#include "game/game_1531a0.h"
|
|
#include "game/file.h"
|
|
#include "game/lv.h"
|
|
#include "game/texdecompress.h"
|
|
#include "game/game_176080.h"
|
|
#include "game/training.h"
|
|
#include "game/lang.h"
|
|
#include "game/mplayer/mplayer.h"
|
|
#include "game/pak.h"
|
|
#include "game/options.h"
|
|
#include "game/propobj.h"
|
|
#include "game/objectives.h"
|
|
#include "bss.h"
|
|
#include "lib/vi.h"
|
|
#include "lib/joy.h"
|
|
#include "lib/main.h"
|
|
#include "lib/model.h"
|
|
#include "lib/snd.h"
|
|
#include "lib/rng.h"
|
|
#include "lib/mtx.h"
|
|
#include "lib/anim.h"
|
|
#include "lib/lib_317f0.h"
|
|
#include "data.h"
|
|
#include "types.h"
|
|
|
|
#define GUNLOADSTATE_FLUX 0
|
|
#define GUNLOADSTATE_MODEL 1
|
|
#define GUNLOADSTATE_TEXTURES 2
|
|
#define GUNLOADSTATE_DLS 3
|
|
#define GUNLOADSTATE_LOADED 4
|
|
|
|
#define MASTERLOADSTATE_FLUX 0
|
|
#define MASTERLOADSTATE_HANDS 1
|
|
#define MASTERLOADSTATE_GUN 2
|
|
#define MASTERLOADSTATE_CARTS 3
|
|
#define MASTERLOADSTATE_LOADED 4
|
|
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
struct sndstate *g_CasingAudioHandles[2];
|
|
s32 var8009d0d8;
|
|
u32 fill2;
|
|
struct sndstate *g_BgunAudioHandles[4];
|
|
s32 var8009d0dc;
|
|
u32 fill2_2;
|
|
s32 var8009d0f0[3];
|
|
u32 var8009d0fc;
|
|
u32 var8009d100;
|
|
u32 var8009d104;
|
|
u32 var8009d108;
|
|
u32 var8009d10c;
|
|
u32 var8009d110;
|
|
u32 var8009d114;
|
|
u32 var8009d118;
|
|
u32 var8009d11c;
|
|
u32 var8009d120;
|
|
u32 var8009d124;
|
|
u32 var8009d128;
|
|
u32 var8009d12c;
|
|
u32 var8009d130;
|
|
u32 var8009d134;
|
|
u32 var8009d138;
|
|
u32 var8009d13c;
|
|
f32 var8009d140;
|
|
struct hand *var8009d144;
|
|
s32 var8009d148;
|
|
u32 var8009d14c;
|
|
struct fireslot g_Fireslots[NUM_FIRESLOTS];
|
|
#elif VERSION >= VERSION_NTSC_1_0
|
|
struct sndstate *g_CasingAudioHandles[2];
|
|
s32 var8009d0d8;
|
|
s32 var8009d0dc;
|
|
struct sndstate *g_BgunAudioHandles[4];
|
|
s32 var8009d0f0[3];
|
|
u32 var8009d0fc;
|
|
u32 var8009d100;
|
|
u32 var8009d104;
|
|
u32 var8009d108;
|
|
u32 var8009d10c;
|
|
u32 var8009d110;
|
|
u32 var8009d114;
|
|
u32 var8009d118;
|
|
u32 var8009d11c;
|
|
u32 var8009d120;
|
|
u32 var8009d124;
|
|
u32 var8009d128;
|
|
u32 var8009d12c;
|
|
u32 var8009d130;
|
|
u32 var8009d134;
|
|
u32 var8009d138;
|
|
u32 var8009d13c;
|
|
f32 var8009d140;
|
|
struct hand *var8009d144;
|
|
s32 var8009d148;
|
|
u32 var8009d14c;
|
|
struct fireslot g_Fireslots[NUM_FIRESLOTS];
|
|
#else
|
|
s32 var8009d0dc;
|
|
u32 var800a1800nb;
|
|
s32 var8009d0f0[3];
|
|
u32 var8009d0fc;
|
|
u32 var8009d100;
|
|
u32 var8009d104;
|
|
u32 var8009d108;
|
|
u32 var8009d10c;
|
|
u32 var8009d110;
|
|
u32 var8009d114;
|
|
u32 var8009d118;
|
|
u32 var8009d11c;
|
|
u32 var8009d120;
|
|
u32 var8009d124;
|
|
u32 var8009d128;
|
|
u32 var8009d12c;
|
|
u32 var8009d130;
|
|
u32 var8009d134;
|
|
u32 var8009d138;
|
|
u32 var8009d13c;
|
|
f32 var8009d140;
|
|
struct hand *var8009d144;
|
|
s32 var8009d148;
|
|
u32 var8009d14c;
|
|
struct sndstate *g_CasingAudioHandles[2];
|
|
s32 var8009d0d8;
|
|
struct sndstate *g_BgunAudioHandles[4];
|
|
struct fireslot g_Fireslots[NUM_FIRESLOTS];
|
|
u32 fill2[1];
|
|
#endif
|
|
|
|
u32 var80070090 = 0x96969600;
|
|
u32 var80070094 = 0x96969600;
|
|
u32 var80070098 = 0xffffff00;
|
|
u32 var8007009c = 0xffffff00;
|
|
u32 var800700a0 = 0xb24d2e00;
|
|
u32 var800700a4 = 0x00000000;
|
|
u32 var800700a8 = 0x00025800;
|
|
u32 var800700ac = 0x0001e000;
|
|
|
|
u16 var800700b0[] = {
|
|
FILE_GCARTRIDGE,
|
|
FILE_GCARTRIFLE,
|
|
FILE_GCARTBLUE,
|
|
FILE_GCARTSHELL,
|
|
};
|
|
|
|
u32 var800700b8 = 0x00000000;
|
|
u32 var800700bc = 0x69646c65;
|
|
u32 var800700c0 = 0x00000000;
|
|
u32 var800700c4 = 0x00007072;
|
|
u32 var800700c8 = 0x65706172;
|
|
u32 var800700cc = 0x65000000;
|
|
u32 var800700d0 = 0x63616e74;
|
|
u32 var800700d4 = 0x75736500;
|
|
u32 var800700d8 = 0x00006e6f;
|
|
u32 var800700dc = 0x616d6d6f;
|
|
u32 var800700e0 = 0x00000000;
|
|
u32 var800700e4 = 0x75736532;
|
|
u32 var800700e8 = 0x00000000;
|
|
u32 var800700ec = 0x00006368;
|
|
u32 var800700f0 = 0x616e6765;
|
|
u32 var800700f4 = 0x00000000;
|
|
u32 var800700f8 = 0x75706772;
|
|
u32 var800700fc = 0x61646500;
|
|
u32 var80070100 = 0x00006368;
|
|
u32 var80070104 = 0x616e6765;
|
|
u32 var80070108 = 0x666e0000;
|
|
u32 var8007010c = 0x69646c65;
|
|
u32 var80070110 = 0x73747563;
|
|
u32 var80070114 = 0x6b007878;
|
|
u32 var80070118 = 0x78000000;
|
|
u32 var8007011c = 0x00000000;
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
void bgunRumble(s32 handnum, s32 weaponnum)
|
|
{
|
|
u32 stack;
|
|
s32 contpadtouse1;
|
|
s32 contpadtouse2;
|
|
bool singlewield = false;
|
|
s32 contpad1;
|
|
s32 contpad2;
|
|
s32 contpad1hasrumble;
|
|
s32 contpad2hasrumble;
|
|
|
|
joyGetContpadNumsForPlayer(g_Vars.currentplayernum, &contpad1, &contpad2);
|
|
|
|
if (optionsGetControlMode(g_Vars.currentplayerstats->mpindex) >= CONTROLMODE_21
|
|
&& contpad1 >= 0 && contpad2 >= 0) {
|
|
contpad1hasrumble = pakGetType(contpad1) == PAKTYPE_RUMBLE;
|
|
contpad2hasrumble = pakGetType(contpad2) == PAKTYPE_RUMBLE;
|
|
|
|
if (!weaponHasFlag(weaponnum, WEAPONFLAG_DUALWIELD)) {
|
|
singlewield = true;
|
|
}
|
|
|
|
if (contpad1hasrumble && contpad2hasrumble) {
|
|
if (singlewield) {
|
|
pakRumble(contpad1, 0.2f, 2, 4);
|
|
pakRumble(contpad2, 0.2f, 2, 4);
|
|
} else {
|
|
s32 contpadtouse1 = contpad1;
|
|
|
|
if (handnum == HAND_LEFT) {
|
|
contpadtouse1 = contpad2;
|
|
}
|
|
|
|
pakRumble(contpadtouse1, 0.2f, 2, 4);
|
|
}
|
|
} else {
|
|
s32 contpadtouse2 = contpad1;
|
|
|
|
if (contpad2hasrumble) {
|
|
contpadtouse2 = contpad2;
|
|
}
|
|
|
|
pakRumble(contpadtouse2, 0.2f, 2, 4);
|
|
}
|
|
} else {
|
|
if (contpad1 >= 0) {
|
|
pakRumble(contpad1, 0.2f, 2, 4);
|
|
}
|
|
}
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
glabel bgunRumble
|
|
/* f095b30: 27bdffd0 */ addiu $sp,$sp,-48
|
|
/* f095b34: 3c08800a */ lui $t0,0x800a
|
|
/* f095b38: 2508e6c0 */ addiu $t0,$t0,-6464
|
|
/* f095b3c: 8d0e0288 */ lw $t6,0x288($t0)
|
|
/* f095b40: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f095b44: afa40030 */ sw $a0,0x30($sp)
|
|
/* f095b48: afa50034 */ sw $a1,0x34($sp)
|
|
/* f095b4c: 0fc53380 */ jal optionsGetControlMode
|
|
/* f095b50: 8dc40070 */ lw $a0,0x70($t6)
|
|
/* f095b54: 3c08800a */ lui $t0,0x800a
|
|
/* f095b58: 28410004 */ slti $at,$v0,0x4
|
|
/* f095b5c: 1420007c */ bnez $at,.NB0f095d50
|
|
/* f095b60: 2508e6c0 */ addiu $t0,$t0,-6464
|
|
/* f095b64: 0fc44336 */ jal pakGetType
|
|
/* f095b68: 8104028f */ lb $a0,0x28f($t0)
|
|
/* f095b6c: 3c08800a */ lui $t0,0x800a
|
|
/* f095b70: 2508e6c0 */ addiu $t0,$t0,-6464
|
|
/* f095b74: 8d0f006c */ lw $t7,0x6c($t0)
|
|
/* f095b78: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f095b7c: 00453026 */ xor $a2,$v0,$a1
|
|
/* f095b80: 11e00003 */ beqz $t7,.NB0f095b90
|
|
/* f095b84: 2cc60001 */ sltiu $a2,$a2,0x1
|
|
/* f095b88: 10000002 */ beqz $zero,.NB0f095b94
|
|
/* f095b8c: 00a05025 */ or $t2,$a1,$zero
|
|
.NB0f095b90:
|
|
/* f095b90: 00005025 */ or $t2,$zero,$zero
|
|
.NB0f095b94:
|
|
/* f095b94: 8d180068 */ lw $t8,0x68($t0)
|
|
/* f095b98: 00004825 */ or $t1,$zero,$zero
|
|
/* f095b9c: 00001825 */ or $v1,$zero,$zero
|
|
/* f095ba0: 13000003 */ beqz $t8,.NB0f095bb0
|
|
/* f095ba4: 00001025 */ or $v0,$zero,$zero
|
|
/* f095ba8: 10000001 */ beqz $zero,.NB0f095bb0
|
|
/* f095bac: 00a04825 */ or $t1,$a1,$zero
|
|
.NB0f095bb0:
|
|
/* f095bb0: 8d190064 */ lw $t9,0x64($t0)
|
|
/* f095bb4: 13200003 */ beqz $t9,.NB0f095bc4
|
|
/* f095bb8: 00000000 */ sll $zero,$zero,0x0
|
|
/* f095bbc: 10000001 */ beqz $zero,.NB0f095bc4
|
|
/* f095bc0: 00a01825 */ or $v1,$a1,$zero
|
|
.NB0f095bc4:
|
|
/* f095bc4: 8d0c0070 */ lw $t4,0x70($t0)
|
|
/* f095bc8: 11800003 */ beqz $t4,.NB0f095bd8
|
|
/* f095bcc: 00000000 */ sll $zero,$zero,0x0
|
|
/* f095bd0: 10000001 */ beqz $zero,.NB0f095bd8
|
|
/* f095bd4: 00a01025 */ or $v0,$a1,$zero
|
|
.NB0f095bd8:
|
|
/* f095bd8: 8d18028c */ lw $t8,0x28c($t0)
|
|
/* f095bdc: 00436821 */ addu $t5,$v0,$v1
|
|
/* f095be0: 01a97021 */ addu $t6,$t5,$t1
|
|
/* f095be4: 01ca7821 */ addu $t7,$t6,$t2
|
|
/* f095be8: 01f82021 */ addu $a0,$t7,$t8
|
|
/* f095bec: 0004ce00 */ sll $t9,$a0,0x18
|
|
/* f095bf0: 00192603 */ sra $a0,$t9,0x18
|
|
/* f095bf4: 0fc44336 */ jal pakGetType
|
|
/* f095bf8: afa6001c */ sw $a2,0x1c($sp)
|
|
/* f095bfc: 8fa6001c */ lw $a2,0x1c($sp)
|
|
/* f095c00: 3c08800a */ lui $t0,0x800a
|
|
/* f095c04: 2508e6c0 */ addiu $t0,$t0,-6464
|
|
/* f095c08: 10c0002a */ beqz $a2,.NB0f095cb4
|
|
/* f095c0c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f095c10: 14450028 */ bne $v0,$a1,.NB0f095cb4
|
|
/* f095c14: 8fae0030 */ lw $t6,0x30($sp)
|
|
/* f095c18: 15c5001c */ bne $t6,$a1,.NB0f095c8c
|
|
/* f095c1c: 8d0b028c */ lw $t3,0x28c($t0)
|
|
/* f095c20: 8d0f0070 */ lw $t7,0x70($t0)
|
|
/* f095c24: 00005025 */ or $t2,$zero,$zero
|
|
/* f095c28: 00004825 */ or $t1,$zero,$zero
|
|
/* f095c2c: 11e00003 */ beqz $t7,.NB0f095c3c
|
|
/* f095c30: 00001825 */ or $v1,$zero,$zero
|
|
/* f095c34: 10000001 */ beqz $zero,.NB0f095c3c
|
|
/* f095c38: 240a0001 */ addiu $t2,$zero,0x1
|
|
.NB0f095c3c:
|
|
/* f095c3c: 8d18006c */ lw $t8,0x6c($t0)
|
|
/* f095c40: 00001025 */ or $v0,$zero,$zero
|
|
/* f095c44: 13000003 */ beqz $t8,.NB0f095c54
|
|
/* f095c48: 00000000 */ sll $zero,$zero,0x0
|
|
/* f095c4c: 10000001 */ beqz $zero,.NB0f095c54
|
|
/* f095c50: 24090001 */ addiu $t1,$zero,0x1
|
|
.NB0f095c54:
|
|
/* f095c54: 8d190068 */ lw $t9,0x68($t0)
|
|
/* f095c58: 13200003 */ beqz $t9,.NB0f095c68
|
|
/* f095c5c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f095c60: 10000001 */ beqz $zero,.NB0f095c68
|
|
/* f095c64: 24030001 */ addiu $v1,$zero,0x1
|
|
.NB0f095c68:
|
|
/* f095c68: 8d0c0064 */ lw $t4,0x64($t0)
|
|
/* f095c6c: 11800003 */ beqz $t4,.NB0f095c7c
|
|
/* f095c70: 00000000 */ sll $zero,$zero,0x0
|
|
/* f095c74: 10000001 */ beqz $zero,.NB0f095c7c
|
|
/* f095c78: 24020001 */ addiu $v0,$zero,0x1
|
|
.NB0f095c7c:
|
|
/* f095c7c: 01626821 */ addu $t5,$t3,$v0
|
|
/* f095c80: 01a37021 */ addu $t6,$t5,$v1
|
|
/* f095c84: 01c97821 */ addu $t7,$t6,$t1
|
|
/* f095c88: 01ea5821 */ addu $t3,$t7,$t2
|
|
.NB0f095c8c:
|
|
/* f095c8c: 000b2600 */ sll $a0,$t3,0x18
|
|
/* f095c90: 0004c603 */ sra $t8,$a0,0x18
|
|
/* f095c94: 3c053e4c */ lui $a1,0x3e4c
|
|
/* f095c98: 34a5cccd */ ori $a1,$a1,0xcccd
|
|
/* f095c9c: 03002025 */ or $a0,$t8,$zero
|
|
/* f095ca0: 24060002 */ addiu $a2,$zero,0x2
|
|
/* f095ca4: 0fc45e2f */ jal pakRumble
|
|
/* f095ca8: 24070004 */ addiu $a3,$zero,0x4
|
|
/* f095cac: 1000002f */ beqz $zero,.NB0f095d6c
|
|
/* f095cb0: 8fbf0014 */ lw $ra,0x14($sp)
|
|
.NB0f095cb4:
|
|
/* f095cb4: 1445001c */ bne $v0,$a1,.NB0f095d28
|
|
/* f095cb8: 8d0b028c */ lw $t3,0x28c($t0)
|
|
/* f095cbc: 8d0c0070 */ lw $t4,0x70($t0)
|
|
/* f095cc0: 00005025 */ or $t2,$zero,$zero
|
|
/* f095cc4: 00004825 */ or $t1,$zero,$zero
|
|
/* f095cc8: 11800003 */ beqz $t4,.NB0f095cd8
|
|
/* f095ccc: 00001825 */ or $v1,$zero,$zero
|
|
/* f095cd0: 10000001 */ beqz $zero,.NB0f095cd8
|
|
/* f095cd4: 240a0001 */ addiu $t2,$zero,0x1
|
|
.NB0f095cd8:
|
|
/* f095cd8: 8d0d006c */ lw $t5,0x6c($t0)
|
|
/* f095cdc: 00001025 */ or $v0,$zero,$zero
|
|
/* f095ce0: 11a00003 */ beqz $t5,.NB0f095cf0
|
|
/* f095ce4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f095ce8: 10000001 */ beqz $zero,.NB0f095cf0
|
|
/* f095cec: 24090001 */ addiu $t1,$zero,0x1
|
|
.NB0f095cf0:
|
|
/* f095cf0: 8d0e0068 */ lw $t6,0x68($t0)
|
|
/* f095cf4: 11c00003 */ beqz $t6,.NB0f095d04
|
|
/* f095cf8: 00000000 */ sll $zero,$zero,0x0
|
|
/* f095cfc: 10000001 */ beqz $zero,.NB0f095d04
|
|
/* f095d00: 24030001 */ addiu $v1,$zero,0x1
|
|
.NB0f095d04:
|
|
/* f095d04: 8d0f0064 */ lw $t7,0x64($t0)
|
|
/* f095d08: 11e00003 */ beqz $t7,.NB0f095d18
|
|
/* f095d0c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f095d10: 10000001 */ beqz $zero,.NB0f095d18
|
|
/* f095d14: 24020001 */ addiu $v0,$zero,0x1
|
|
.NB0f095d18:
|
|
/* f095d18: 0162c021 */ addu $t8,$t3,$v0
|
|
/* f095d1c: 0303c821 */ addu $t9,$t8,$v1
|
|
/* f095d20: 03296021 */ addu $t4,$t9,$t1
|
|
/* f095d24: 018a5821 */ addu $t3,$t4,$t2
|
|
.NB0f095d28:
|
|
/* f095d28: 000b2600 */ sll $a0,$t3,0x18
|
|
/* f095d2c: 00046e03 */ sra $t5,$a0,0x18
|
|
/* f095d30: 3c053e4c */ lui $a1,0x3e4c
|
|
/* f095d34: 34a5cccd */ ori $a1,$a1,0xcccd
|
|
/* f095d38: 01a02025 */ or $a0,$t5,$zero
|
|
/* f095d3c: 24060002 */ addiu $a2,$zero,0x2
|
|
/* f095d40: 0fc45e2f */ jal pakRumble
|
|
/* f095d44: 24070004 */ addiu $a3,$zero,0x4
|
|
/* f095d48: 10000008 */ beqz $zero,.NB0f095d6c
|
|
/* f095d4c: 8fbf0014 */ lw $ra,0x14($sp)
|
|
.NB0f095d50:
|
|
/* f095d50: 3c053e4c */ lui $a1,0x3e4c
|
|
/* f095d54: 34a5cccd */ ori $a1,$a1,0xcccd
|
|
/* f095d58: 8104028f */ lb $a0,0x28f($t0)
|
|
/* f095d5c: 24060002 */ addiu $a2,$zero,0x2
|
|
/* f095d60: 0fc45e2f */ jal pakRumble
|
|
/* f095d64: 24070004 */ addiu $a3,$zero,0x4
|
|
/* f095d68: 8fbf0014 */ lw $ra,0x14($sp)
|
|
.NB0f095d6c:
|
|
/* f095d6c: 27bd0030 */ addiu $sp,$sp,0x30
|
|
/* f095d70: 03e00008 */ jr $ra
|
|
/* f095d74: 00000000 */ sll $zero,$zero,0x0
|
|
);
|
|
#endif
|
|
|
|
s32 bgunGetUnequippedReloadIndex(s32 weaponnum)
|
|
{
|
|
if (weaponnum == WEAPON_CROSSBOW) {
|
|
return 0;
|
|
}
|
|
|
|
if (weaponnum == WEAPON_SHOTGUN) {
|
|
return 1;
|
|
}
|
|
|
|
if (weaponnum == WEAPON_DY357MAGNUM) {
|
|
return 2;
|
|
}
|
|
|
|
if (weaponnum == WEAPON_DY357LX) {
|
|
return 3;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
/**
|
|
* The magnums, shotgun and crossbow are special because that the game remembers
|
|
* how much ammo is loaded in their clips when the weapon is not being used.
|
|
* Their clips are gradually reloaded while the weapon is not in use, and that
|
|
* gradual reloading is handled by this function.
|
|
*
|
|
* The gunroundsspent value is actually a countdown timer,
|
|
* not the number of rounds as the name suggests.
|
|
*/
|
|
void bgunTickUnequippedReload(void)
|
|
{
|
|
s32 i;
|
|
s32 j;
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
for (j = 0; j < 4; j++) {
|
|
u16 spent = g_Vars.currentplayer->hands[i].gunroundsspent[j];
|
|
|
|
if (spent > g_Vars.lvupdate240_60) {
|
|
spent -= g_Vars.lvupdate240_60;
|
|
} else {
|
|
spent = 0;
|
|
}
|
|
|
|
g_Vars.currentplayer->hands[i].gunroundsspent[j] = spent;
|
|
}
|
|
}
|
|
}
|
|
|
|
bool bgun0f097df0(struct inventory_typef *arg0, struct hand *hand)
|
|
{
|
|
bool result = true;
|
|
|
|
switch (arg0->unk00) {
|
|
case 4:
|
|
if (((hand->gset.unk0639 >> arg0->unk02) & 1) == 0) {
|
|
result = false;
|
|
}
|
|
break;
|
|
case 5:
|
|
if (hand != &g_Vars.currentplayer->hands[HAND_LEFT]) {
|
|
result = false;
|
|
}
|
|
break;
|
|
case 6:
|
|
if (hand != &g_Vars.currentplayer->hands[HAND_RIGHT]) {
|
|
result = false;
|
|
}
|
|
break;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
void bgunSetPartVisible(s16 partnum, bool visible, struct hand *hand, struct modelfiledata *filedata)
|
|
{
|
|
struct modelnode *node;
|
|
|
|
if (partnum == MODELPART_0035 || partnum == MODELPART_0036) {
|
|
if (g_Vars.currentplayer->gunctrl.handmodeldef) {
|
|
node = modelGetPart(g_Vars.currentplayer->gunctrl.handmodeldef, partnum);
|
|
|
|
if (node) {
|
|
struct modelrodata_toggle *rodata = &node->rodata->toggle;
|
|
u32 *ptr = &hand->handsavedata[rodata->rwdataindex];
|
|
*ptr = visible;
|
|
}
|
|
}
|
|
} else {
|
|
node = modelGetPart(filedata, partnum);
|
|
|
|
if (node) {
|
|
struct modelrodata_toggle *rodata = &node->rodata->toggle;
|
|
u32 *ptr = &hand->unk0a6c[rodata->rwdataindex];
|
|
*ptr = visible;
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgun0f097f28(struct hand *hand, struct modelfiledata *filedata, struct inventory_typef *arg2)
|
|
{
|
|
struct inventory_typef *thing = arg2;
|
|
bool done = false;
|
|
|
|
if (thing == NULL) {
|
|
return;
|
|
}
|
|
|
|
while (!done) {
|
|
if (bgun0f097df0(thing, hand)) {
|
|
if (thing->unk04 == 0) {
|
|
bgunSetPartVisible(thing->partnum, true, hand, filedata);
|
|
}
|
|
|
|
if (thing->unk04 == 1) {
|
|
bgunSetPartVisible(thing->partnum, false, hand, filedata);
|
|
}
|
|
|
|
if (thing->unk04 == 3) {
|
|
bgunSetPartVisible(thing->partnum, true, hand, filedata);
|
|
}
|
|
} else {
|
|
if (thing->unk04 == 3) {
|
|
bgunSetPartVisible(thing->partnum, false, hand, filedata);
|
|
}
|
|
}
|
|
|
|
thing++;
|
|
|
|
if (thing->unk00 == 0) {
|
|
done = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgun0f098030(struct hand *hand, struct modelfiledata *filedata)
|
|
{
|
|
struct weapon *weapon = weaponFindById(hand->gset.weaponnum);
|
|
s32 i;
|
|
s32 j;
|
|
|
|
bgun0f097f28(hand, filedata, weapon->fptr);
|
|
bgunSetPartVisible(MODELPART_0042, false, hand, filedata);
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
if (weapon->ammos[i] && (weapon->ammos[i]->flags & AMMOFLAG_QTYAFFECTSPARTVIS)) {
|
|
for (j = 0; j < hand->clipsizes[i]; j++) {
|
|
if (j >= hand->loadedammo[i]) {
|
|
bgunSetPartVisible(j + 100, false, hand, filedata);
|
|
} else {
|
|
bgunSetPartVisible(j + 100, true, hand, filedata);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
f32 bgun0f09815c(struct hand *hand)
|
|
{
|
|
if (hand->animmode == HANDANIMMODE_BUSY && hand->unk0ce8 != NULL) {
|
|
if (hand->unk0ce8->unk04 < 0) {
|
|
return modelGetNumAnimFrames(&hand->gunmodel) - modelGetCurAnimFrame(&hand->gunmodel);
|
|
}
|
|
|
|
return modelGetCurAnimFrame(&hand->gunmodel);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
GLOBAL_ASM(
|
|
glabel bgun0f0981e8
|
|
.late_rodata
|
|
glabel var7f1ac1a8
|
|
.word 0x461c4000
|
|
glabel var7f1ac1ac
|
|
.word 0x3f451eb8
|
|
glabel var7f1ac1b0
|
|
.word 0x3f333333
|
|
.text
|
|
/* f098f88: 27bdfea0 */ addiu $sp,$sp,-352
|
|
/* f098f8c: afbf004c */ sw $ra,0x4c($sp)
|
|
/* f098f90: afb40048 */ sw $s4,0x48($sp)
|
|
/* f098f94: afb30044 */ sw $s3,0x44($sp)
|
|
/* f098f98: afb20040 */ sw $s2,0x40($sp)
|
|
/* f098f9c: afb1003c */ sw $s1,0x3c($sp)
|
|
/* f098fa0: afb00038 */ sw $s0,0x38($sp)
|
|
/* f098fa4: f7b40030 */ sdc1 $f20,0x30($sp)
|
|
/* f098fa8: afa50164 */ sw $a1,0x164($sp)
|
|
/* f098fac: 908e0690 */ lbu $t6,0x690($a0)
|
|
/* f098fb0: 8c98068c */ lw $t8,0x68c($a0)
|
|
/* f098fb4: 24010002 */ li $at,0x2
|
|
/* f098fb8: 31cfffe3 */ andi $t7,$t6,0xffe3
|
|
/* f098fbc: 00809025 */ move $s2,$a0
|
|
/* f098fc0: 1701000f */ bne $t8,$at,.JF0f099000
|
|
/* f098fc4: a08f0690 */ sb $t7,0x690($a0)
|
|
/* f098fc8: 0fc263bf */ jal bgun0f09815c
|
|
/* f098fcc: 00000000 */ nop
|
|
/* f098fd0: 46000506 */ mov.s $f20,$f0
|
|
/* f098fd4: 0c00747e */ jal modelGetNumAnimFrames
|
|
/* f098fd8: 26440384 */ addiu $a0,$s2,0x384
|
|
/* f098fdc: 2459ffff */ addiu $t9,$v0,-1
|
|
/* f098fe0: 44992000 */ mtc1 $t9,$f4
|
|
/* f098fe4: 00000000 */ nop
|
|
/* f098fe8: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f098fec: 4614303e */ c.le.s $f6,$f20
|
|
/* f098ff0: 00000000 */ nop
|
|
/* f098ff4: 45020003 */ bc1fl .JF0f099004
|
|
/* f098ff8: 8e480680 */ lw $t0,0x680($s2)
|
|
/* f098ffc: ae40068c */ sw $zero,0x68c($s2)
|
|
.JF0f099000:
|
|
/* f099000: 8e480680 */ lw $t0,0x680($s2)
|
|
.JF0f099004:
|
|
/* f099004: 8e49068c */ lw $t1,0x68c($s2)
|
|
/* f099008: 29020000 */ slti $v0,$t0,0x0
|
|
/* f09900c: 392a0002 */ xori $t2,$t1,0x2
|
|
/* f099010: 2d4a0001 */ sltiu $t2,$t2,0x1
|
|
/* f099014: 38420001 */ xori $v0,$v0,0x1
|
|
/* f099018: 01425825 */ or $t3,$t2,$v0
|
|
/* f09901c: 516001c7 */ beqzl $t3,.JF0f09973c
|
|
/* f099020: 8fbf004c */ lw $ra,0x4c($sp)
|
|
/* f099024: 44801000 */ mtc1 $zero,$f2
|
|
/* f099028: c64806d0 */ lwc1 $f8,0x6d0($s2)
|
|
/* f09902c: 26540384 */ addiu $s4,$s2,0x384
|
|
/* f099030: 4608103c */ c.lt.s $f2,$f8
|
|
/* f099034: 00000000 */ nop
|
|
/* f099038: 45000006 */ bc1f .JF0f099054
|
|
/* f09903c: 00000000 */ nop
|
|
/* f099040: 8e480680 */ lw $t0,0x680($s2)
|
|
/* f099044: ae400684 */ sw $zero,0x684($s2)
|
|
/* f099048: e6420688 */ swc1 $f2,0x688($s2)
|
|
/* f09904c: 29020000 */ slti $v0,$t0,0x0
|
|
/* f099050: 38420001 */ xori $v0,$v0,0x1
|
|
.JF0f099054:
|
|
/* f099054: 50400057 */ beqzl $v0,.JF0f0991b4
|
|
/* f099058: 8e4d0690 */ lw $t5,0x690($s2)
|
|
/* f09905c: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f099060: 3c013f80 */ lui $at,0x3f80
|
|
/* f099064: 924d06d6 */ lbu $t5,0x6d6($s2)
|
|
/* f099068: 8c6c0004 */ lw $t4,0x4($v1)
|
|
/* f09906c: 44810000 */ mtc1 $at,$f0
|
|
/* f099070: 3c017f1b */ lui $at,0x7f1b
|
|
/* f099074: 448c5000 */ mtc1 $t4,$f10
|
|
/* f099078: c432ce28 */ lwc1 $f18,-0x31d8($at)
|
|
/* f09907c: 31ae0001 */ andi $t6,$t5,0x1
|
|
/* f099080: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f099084: 3c0f800a */ lui $t7,0x800a
|
|
/* f099088: 11c0001a */ beqz $t6,.JF0f0990f4
|
|
/* f09908c: 46128503 */ div.s $f20,$f16,$f18
|
|
/* f099090: 8defa8b4 */ lw $t7,-0x574c($t7)
|
|
/* f099094: 81f80de4 */ lb $t8,0xde4($t7)
|
|
/* f099098: 13000016 */ beqz $t8,.JF0f0990f4
|
|
/* f09909c: 00000000 */ nop
|
|
/* f0990a0: 0c004b60 */ jal random
|
|
/* f0990a4: 00000000 */ nop
|
|
/* f0990a8: 44822000 */ mtc1 $v0,$f4
|
|
/* f0990ac: 3c014f80 */ lui $at,0x4f80
|
|
/* f0990b0: 04410004 */ bgez $v0,.JF0f0990c4
|
|
/* f0990b4: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0990b8: 44814000 */ mtc1 $at,$f8
|
|
/* f0990bc: 00000000 */ nop
|
|
/* f0990c0: 46083180 */ add.s $f6,$f6,$f8
|
|
.JF0f0990c4:
|
|
/* f0990c4: 3c012f80 */ lui $at,0x2f80
|
|
/* f0990c8: 44815000 */ mtc1 $at,$f10
|
|
/* f0990cc: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0990d0: c432ce2c */ lwc1 $f18,-0x31d4($at)
|
|
/* f0990d4: 460a3402 */ mul.s $f16,$f6,$f10
|
|
/* f0990d8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0990dc: c428ce30 */ lwc1 $f8,-0x31d0($at)
|
|
/* f0990e0: 44801000 */ mtc1 $zero,$f2
|
|
/* f0990e4: 8e480680 */ lw $t0,0x680($s2)
|
|
/* f0990e8: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f0990ec: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0990f0: 46082000 */ add.s $f0,$f4,$f8
|
|
.JF0f0990f4:
|
|
/* f0990f4: 10600018 */ beqz $v1,.JF0f099158
|
|
/* f0990f8: 02802025 */ move $a0,$s4
|
|
/* f0990fc: 4602a03c */ c.lt.s $f20,$f2
|
|
/* f099100: 00082c00 */ sll $a1,$t0,0x10
|
|
/* f099104: 0005cc03 */ sra $t9,$a1,0x10
|
|
/* f099108: 45000013 */ bc1f .JF0f099158
|
|
/* f09910c: 00000000 */ nop
|
|
/* f099110: 46140182 */ mul.s $f6,$f0,$f20
|
|
/* f099114: 44071000 */ mfc1 $a3,$f2
|
|
/* f099118: 02802025 */ move $a0,$s4
|
|
/* f09911c: 03202825 */ move $a1,$t9
|
|
/* f099120: 00003025 */ move $a2,$zero
|
|
/* f099124: e7a20014 */ swc1 $f2,0x14($sp)
|
|
/* f099128: 0c00772b */ jal modelSetAnimation
|
|
/* f09912c: e7a60010 */ swc1 $f6,0x10($sp)
|
|
/* f099130: 0c00747e */ jal modelGetNumAnimFrames
|
|
/* f099134: 02802025 */ move $a0,$s4
|
|
/* f099138: 44825000 */ mtc1 $v0,$f10
|
|
/* f09913c: 02802025 */ move $a0,$s4
|
|
/* f099140: 468052a0 */ cvt.s.w $f10,$f10
|
|
/* f099144: 44055000 */ mfc1 $a1,$f10
|
|
/* f099148: 0c0077fe */ jal model0001e018
|
|
/* f09914c: 00000000 */ nop
|
|
/* f099150: 1000000b */ b .JF0f099180
|
|
/* f099154: 240affff */ li $t2,-1
|
|
.JF0f099158:
|
|
/* f099158: 46140402 */ mul.s $f16,$f0,$f20
|
|
/* f09915c: 00082c00 */ sll $a1,$t0,0x10
|
|
/* f099160: 00054c03 */ sra $t1,$a1,0x10
|
|
/* f099164: 44071000 */ mfc1 $a3,$f2
|
|
/* f099168: 01202825 */ move $a1,$t1
|
|
/* f09916c: 00003025 */ move $a2,$zero
|
|
/* f099170: e7a20014 */ swc1 $f2,0x14($sp)
|
|
/* f099174: 0c00772b */ jal modelSetAnimation
|
|
/* f099178: e7b00010 */ swc1 $f16,0x10($sp)
|
|
/* f09917c: 240affff */ li $t2,-1
|
|
.JF0f099180:
|
|
/* f099180: 240b0002 */ li $t3,0x2
|
|
/* f099184: ae4a0680 */ sw $t2,0x680($s2)
|
|
/* f099188: ae4b068c */ sw $t3,0x68c($s2)
|
|
/* f09918c: 0c00749a */ jal modelGetAbsAnimSpeed
|
|
/* f099190: 02802025 */ move $a0,$s4
|
|
/* f099194: 8e4c0684 */ lw $t4,0x684($s2)
|
|
/* f099198: 44801000 */ mtc1 $zero,$f2
|
|
/* f09919c: 448c9000 */ mtc1 $t4,$f18
|
|
/* f0991a0: 00000000 */ nop
|
|
/* f0991a4: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f0991a8: 46040202 */ mul.s $f8,$f0,$f4
|
|
/* f0991ac: e6480688 */ swc1 $f8,0x688($s2)
|
|
/* f0991b0: 8e4d0690 */ lw $t5,0x690($s2)
|
|
.JF0f0991b4:
|
|
/* f0991b4: 000d7840 */ sll $t7,$t5,0x1
|
|
/* f0991b8: 05e10003 */ bgez $t7,.JF0f0991c8
|
|
/* f0991bc: 00000000 */ nop
|
|
/* f0991c0: ae400684 */ sw $zero,0x684($s2)
|
|
/* f0991c4: e6420688 */ swc1 $f2,0x688($s2)
|
|
.JF0f0991c8:
|
|
/* f0991c8: 0fc263bf */ jal bgun0f09815c
|
|
/* f0991cc: 02402025 */ move $a0,$s2
|
|
/* f0991d0: 44805000 */ mtc1 $zero,$f10
|
|
/* f0991d4: c6460688 */ lwc1 $f6,0x688($s2)
|
|
/* f0991d8: 46000506 */ mov.s $f20,$f0
|
|
/* f0991dc: 460a0032 */ c.eq.s $f0,$f10
|
|
/* f0991e0: 46003380 */ add.s $f14,$f6,$f0
|
|
/* f0991e4: 4502000b */ bc1fl .JF0f099214
|
|
/* f0991e8: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f0991ec: 44808000 */ mtc1 $zero,$f16
|
|
/* f0991f0: 3c013f80 */ lui $at,0x3f80
|
|
/* f0991f4: 460e803c */ c.lt.s $f16,$f14
|
|
/* f0991f8: 00000000 */ nop
|
|
/* f0991fc: 45020005 */ bc1fl .JF0f099214
|
|
/* f099200: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f099204: 44819000 */ mtc1 $at,$f18
|
|
/* f099208: 00000000 */ nop
|
|
/* f09920c: 46120501 */ sub.s $f20,$f0,$f18
|
|
/* f099210: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
.JF0f099214:
|
|
/* f099214: 106000d1 */ beqz $v1,.JF0f09955c
|
|
/* f099218: 00608825 */ move $s1,$v1
|
|
/* f09921c: 106000cf */ beqz $v1,.JF0f09955c
|
|
/* f099220: afa0014c */ sw $zero,0x14c($sp)
|
|
/* f099224: 00008025 */ move $s0,$zero
|
|
/* f099228: 24130001 */ li $s3,0x1
|
|
/* f09922c: 92230000 */ lbu $v1,0x0($s1)
|
|
.JF0f099230:
|
|
/* f099230: 14600003 */ bnez $v1,.JF0f099240
|
|
/* f099234: 00000000 */ nop
|
|
/* f099238: 100000af */ b .JF0f0994f8
|
|
/* f09923c: afb3014c */ sw $s3,0x14c($sp)
|
|
.JF0f099240:
|
|
/* f099240: 12630003 */ beq $s3,$v1,.JF0f099250
|
|
/* f099244: 24010002 */ li $at,0x2
|
|
/* f099248: 54610036 */ bnel $v1,$at,.JF0f099324
|
|
/* f09924c: 24010003 */ li $at,0x3
|
|
.JF0f099250:
|
|
/* f099250: 96260002 */ lhu $a2,0x2($s1)
|
|
/* f099254: 3c014f80 */ lui $at,0x4f80
|
|
/* f099258: 2405ffff */ li $a1,-1
|
|
/* f09925c: 44862000 */ mtc1 $a2,$f4
|
|
/* f099260: 27ab0094 */ addiu $t3,$sp,0x94
|
|
/* f099264: 04c10004 */ bgez $a2,.JF0f099278
|
|
/* f099268: 46802220 */ cvt.s.w $f8,$f4
|
|
/* f09926c: 44813000 */ mtc1 $at,$f6
|
|
/* f099270: 00000000 */ nop
|
|
/* f099274: 46064200 */ add.s $f8,$f8,$f6
|
|
.JF0f099278:
|
|
/* f099278: 460e403e */ c.le.s $f8,$f14
|
|
/* f09927c: 2401ffff */ li $at,-1
|
|
/* f099280: 4502009e */ bc1fl .JF0f0994fc
|
|
/* f099284: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f099288: 1a00000a */ blez $s0,.JF0f0992b4
|
|
/* f09928c: 00001025 */ move $v0,$zero
|
|
/* f099290: 8e240004 */ lw $a0,0x4($s1)
|
|
/* f099294: 27a3010c */ addiu $v1,$sp,0x10c
|
|
.JF0f099298:
|
|
/* f099298: 8c780000 */ lw $t8,0x0($v1)
|
|
/* f09929c: 54980003 */ bnel $a0,$t8,.JF0f0992ac
|
|
/* f0992a0: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f0992a4: 00402825 */ move $a1,$v0
|
|
/* f0992a8: 24420001 */ addiu $v0,$v0,0x1
|
|
.JF0f0992ac:
|
|
/* f0992ac: 1450fffa */ bne $v0,$s0,.JF0f099298
|
|
/* f0992b0: 24630004 */ addiu $v1,$v1,0x4
|
|
.JF0f0992b4:
|
|
/* f0992b4: 14a1000a */ bne $a1,$at,.JF0f0992e0
|
|
/* f0992b8: 2409ffff */ li $t1,-1
|
|
/* f0992bc: 8e240004 */ lw $a0,0x4($s1)
|
|
/* f0992c0: 02002825 */ move $a1,$s0
|
|
/* f0992c4: 00051080 */ sll $v0,$a1,0x2
|
|
/* f0992c8: 03a2c821 */ addu $t9,$sp,$v0
|
|
/* f0992cc: 03a25021 */ addu $t2,$sp,$v0
|
|
/* f0992d0: af24010c */ sw $a0,0x10c($t9)
|
|
/* f0992d4: ad490094 */ sw $t1,0x94($t2)
|
|
/* f0992d8: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f0992dc: 96260002 */ lhu $a2,0x2($s1)
|
|
.JF0f0992e0:
|
|
/* f0992e0: 00051080 */ sll $v0,$a1,0x2
|
|
/* f0992e4: 004b1821 */ addu $v1,$v0,$t3
|
|
/* f0992e8: 8c6c0000 */ lw $t4,0x0($v1)
|
|
/* f0992ec: 0186082a */ slt $at,$t4,$a2
|
|
/* f0992f0: 50200082 */ beqzl $at,.JF0f0994fc
|
|
/* f0992f4: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f0992f8: ac660000 */ sw $a2,0x0($v1)
|
|
/* f0992fc: 922d0000 */ lbu $t5,0x0($s1)
|
|
/* f099300: 03a27821 */ addu $t7,$sp,$v0
|
|
/* f099304: 03a27021 */ addu $t6,$sp,$v0
|
|
/* f099308: 166d0003 */ bne $s3,$t5,.JF0f099318
|
|
/* f09930c: 00000000 */ nop
|
|
/* f099310: 10000079 */ b .JF0f0994f8
|
|
/* f099314: add300d0 */ sw $s3,0xd0($t6)
|
|
.JF0f099318:
|
|
/* f099318: 10000077 */ b .JF0f0994f8
|
|
/* f09931c: ade000d0 */ sw $zero,0xd0($t7)
|
|
/* f099320: 24010003 */ li $at,0x3
|
|
.JF0f099324:
|
|
/* f099324: 10610005 */ beq $v1,$at,.JF0f09933c
|
|
/* f099328: 24010008 */ li $at,0x8
|
|
/* f09932c: 50610042 */ beql $v1,$at,.JF0f099438
|
|
/* f099330: 8e4e0690 */ lw $t6,0x690($s2)
|
|
/* f099334: 10000071 */ b .JF0f0994fc
|
|
/* f099338: 8fac014c */ lw $t4,0x14c($sp)
|
|
.JF0f09933c:
|
|
/* f09933c: 8e580690 */ lw $t8,0x690($s2)
|
|
/* f099340: 0018cfc2 */ srl $t9,$t8,0x1f
|
|
/* f099344: 5320006d */ beqzl $t9,.JF0f0994fc
|
|
/* f099348: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f09934c: 96290002 */ lhu $t1,0x2($s1)
|
|
/* f099350: 3c014f80 */ lui $at,0x4f80
|
|
/* f099354: 44895000 */ mtc1 $t1,$f10
|
|
/* f099358: 05210004 */ bgez $t1,.JF0f09936c
|
|
/* f09935c: 468050a0 */ cvt.s.w $f2,$f10
|
|
/* f099360: 44818000 */ mtc1 $at,$f16
|
|
/* f099364: 00000000 */ nop
|
|
/* f099368: 46101080 */ add.s $f2,$f2,$f16
|
|
.JF0f09936c:
|
|
/* f09936c: 460e103e */ c.le.s $f2,$f14
|
|
/* f099370: 00000000 */ nop
|
|
/* f099374: 45020061 */ bc1fl .JF0f0994fc
|
|
/* f099378: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f09937c: 4602a03c */ c.lt.s $f20,$f2
|
|
/* f099380: 00000000 */ nop
|
|
/* f099384: 4502005d */ bc1fl .JF0f0994fc
|
|
/* f099388: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f09938c: 460ea03c */ c.lt.s $f20,$f14
|
|
/* f099390: 00000000 */ nop
|
|
/* f099394: 45020059 */ bc1fl .JF0f0994fc
|
|
/* f099398: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f09939c: 0fc263bf */ jal bgun0f09815c
|
|
/* f0993a0: 02402025 */ move $a0,$s2
|
|
/* f0993a4: 962a0002 */ lhu $t2,0x2($s1)
|
|
/* f0993a8: 3c014f80 */ lui $at,0x4f80
|
|
/* f0993ac: 02802025 */ move $a0,$s4
|
|
/* f0993b0: 448a9000 */ mtc1 $t2,$f18
|
|
/* f0993b4: 05410004 */ bgez $t2,.JF0f0993c8
|
|
/* f0993b8: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f0993bc: 44813000 */ mtc1 $at,$f6
|
|
/* f0993c0: 00000000 */ nop
|
|
/* f0993c4: 46062100 */ add.s $f4,$f4,$f6
|
|
.JF0f0993c8:
|
|
/* f0993c8: 46002081 */ sub.s $f2,$f4,$f0
|
|
/* f0993cc: 3c014000 */ lui $at,0x4000
|
|
/* f0993d0: 44814000 */ mtc1 $at,$f8
|
|
/* f0993d4: c64c0688 */ lwc1 $f12,0x688($s2)
|
|
/* f0993d8: 46081083 */ div.s $f2,$f2,$f8
|
|
/* f0993dc: 460c103c */ c.lt.s $f2,$f12
|
|
/* f0993e0: 00000000 */ nop
|
|
/* f0993e4: 45000011 */ bc1f .JF0f09942c
|
|
/* f0993e8: 00000000 */ nop
|
|
/* f0993ec: 0c00749a */ jal modelGetAbsAnimSpeed
|
|
/* f0993f0: e7a20084 */ swc1 $f2,0x84($sp)
|
|
/* f0993f4: c7a20084 */ lwc1 $f2,0x84($sp)
|
|
/* f0993f8: 02802025 */ move $a0,$s4
|
|
/* f0993fc: 46001283 */ div.s $f10,$f2,$f0
|
|
/* f099400: 4600540d */ trunc.w.s $f16,$f10
|
|
/* f099404: 440c8000 */ mfc1 $t4,$f16
|
|
/* f099408: 0c00749a */ jal modelGetAbsAnimSpeed
|
|
/* f09940c: ae4c0684 */ sw $t4,0x684($s2)
|
|
/* f099410: 8e4d0684 */ lw $t5,0x684($s2)
|
|
/* f099414: 448d9000 */ mtc1 $t5,$f18
|
|
/* f099418: 00000000 */ nop
|
|
/* f09941c: 468091a0 */ cvt.s.w $f6,$f18
|
|
/* f099420: 46060102 */ mul.s $f4,$f0,$f6
|
|
/* f099424: e6440688 */ swc1 $f4,0x688($s2)
|
|
/* f099428: c64c0688 */ lwc1 $f12,0x688($s2)
|
|
.JF0f09942c:
|
|
/* f09942c: 10000032 */ b .JF0f0994f8
|
|
/* f099430: 46146380 */ add.s $f14,$f12,$f20
|
|
/* f099434: 8e4e0690 */ lw $t6,0x690($s2)
|
|
.JF0f099438:
|
|
/* f099438: 000ec080 */ sll $t8,$t6,0x2
|
|
/* f09943c: 0703002f */ bgezl $t8,.JF0f0994fc
|
|
/* f099440: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f099444: 96260002 */ lhu $a2,0x2($s1)
|
|
/* f099448: 3c014f80 */ lui $at,0x4f80
|
|
/* f09944c: 44864000 */ mtc1 $a2,$f8
|
|
/* f099450: 04c10004 */ bgez $a2,.JF0f099464
|
|
/* f099454: 468040a0 */ cvt.s.w $f2,$f8
|
|
/* f099458: 44815000 */ mtc1 $at,$f10
|
|
/* f09945c: 00000000 */ nop
|
|
/* f099460: 460a1080 */ add.s $f2,$f2,$f10
|
|
.JF0f099464:
|
|
/* f099464: 460e103e */ c.le.s $f2,$f14
|
|
/* f099468: 00000000 */ nop
|
|
/* f09946c: 45020023 */ bc1fl .JF0f0994fc
|
|
/* f099470: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f099474: 4602a03c */ c.lt.s $f20,$f2
|
|
/* f099478: 00000000 */ nop
|
|
/* f09947c: 4502001f */ bc1fl .JF0f0994fc
|
|
/* f099480: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f099484: 460ea03c */ c.lt.s $f20,$f14
|
|
/* f099488: 02802025 */ move $a0,$s4
|
|
/* f09948c: 4502001b */ bc1fl .JF0f0994fc
|
|
/* f099490: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f099494: 460e103e */ c.le.s $f2,$f14
|
|
/* f099498: 44809000 */ mtc1 $zero,$f18
|
|
/* f09949c: 46007006 */ mov.s $f0,$f14
|
|
/* f0994a0: 4502000c */ bc1fl .JF0f0994d4
|
|
/* f0994a4: ae400684 */ sw $zero,0x684($s2)
|
|
/* f0994a8: 8e390004 */ lw $t9,0x4($s1)
|
|
/* f0994ac: 03264823 */ subu $t1,$t9,$a2
|
|
/* f0994b0: 44898000 */ mtc1 $t1,$f16
|
|
/* f0994b4: 00000000 */ nop
|
|
/* f0994b8: 46808320 */ cvt.s.w $f12,$f16
|
|
/* f0994bc: 460c0000 */ add.s $f0,$f0,$f12
|
|
.JF0f0994c0:
|
|
/* f0994c0: 4600103e */ c.le.s $f2,$f0
|
|
/* f0994c4: 00000000 */ nop
|
|
/* f0994c8: 4503fffd */ bc1tl .JF0f0994c0
|
|
/* f0994cc: 460c0000 */ add.s $f0,$f0,$f12
|
|
/* f0994d0: ae400684 */ sw $zero,0x684($s2)
|
|
.JF0f0994d4:
|
|
/* f0994d4: e6520688 */ swc1 $f18,0x688($s2)
|
|
/* f0994d8: 44050000 */ mfc1 $a1,$f0
|
|
/* f0994dc: 46000506 */ mov.s $f20,$f0
|
|
/* f0994e0: 0c0077fe */ jal model0001e018
|
|
/* f0994e4: e7a00080 */ swc1 $f0,0x80($sp)
|
|
/* f0994e8: 924a0691 */ lbu $t2,0x691($s2)
|
|
/* f0994ec: c7ae0080 */ lwc1 $f14,0x80($sp)
|
|
/* f0994f0: 254b0001 */ addiu $t3,$t2,0x1
|
|
/* f0994f4: a24b0691 */ sb $t3,0x691($s2)
|
|
.JF0f0994f8:
|
|
/* f0994f8: 8fac014c */ lw $t4,0x14c($sp)
|
|
.JF0f0994fc:
|
|
/* f0994fc: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f099500: 5180ff4b */ beqzl $t4,.JF0f099230
|
|
/* f099504: 92230000 */ lbu $v1,0x0($s1)
|
|
/* f099508: 5a000015 */ blezl $s0,.JF0f099560
|
|
/* f09950c: 02802025 */ move $a0,$s4
|
|
/* f099510: 1a000012 */ blez $s0,.JF0f09955c
|
|
/* f099514: 00001025 */ move $v0,$zero
|
|
/* f099518: 27a3010c */ addiu $v1,$sp,0x10c
|
|
/* f09951c: 27a800d0 */ addiu $t0,$sp,0xd0
|
|
.JF0f099520:
|
|
/* f099520: 84640002 */ lh $a0,0x2($v1)
|
|
/* f099524: 8d050000 */ lw $a1,0x0($t0)
|
|
/* f099528: afa80058 */ sw $t0,0x58($sp)
|
|
/* f09952c: afa3005c */ sw $v1,0x5c($sp)
|
|
/* f099530: afa2007c */ sw $v0,0x7c($sp)
|
|
/* f099534: 02403025 */ move $a2,$s2
|
|
/* f099538: 0fc26305 */ jal bgunSetPartVisible
|
|
/* f09953c: 8fa70164 */ lw $a3,0x164($sp)
|
|
/* f099540: 8fa2007c */ lw $v0,0x7c($sp)
|
|
/* f099544: 8fa3005c */ lw $v1,0x5c($sp)
|
|
/* f099548: 8fa80058 */ lw $t0,0x58($sp)
|
|
/* f09954c: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f099550: 24630004 */ addiu $v1,$v1,0x4
|
|
/* f099554: 1450fff2 */ bne $v0,$s0,.JF0f099520
|
|
/* f099558: 25080004 */ addiu $t0,$t0,0x4
|
|
.JF0f09955c:
|
|
/* f09955c: 02802025 */ move $a0,$s4
|
|
.JF0f099560:
|
|
/* f099560: 3c054080 */ lui $a1,0x4080
|
|
/* f099564: 0c0077e3 */ jal modelSetAnimPlaySpeed
|
|
/* f099568: 24060000 */ li $a2,0x0
|
|
/* f09956c: 02802025 */ move $a0,$s4
|
|
/* f099570: 8e450684 */ lw $a1,0x684($s2)
|
|
/* f099574: 0c007b7e */ jal model0001ee18
|
|
/* f099578: 24060001 */ li $a2,0x1
|
|
/* f09957c: 0fc263bf */ jal bgun0f09815c
|
|
/* f099580: 02402025 */ move $a0,$s2
|
|
/* f099584: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f099588: 46000386 */ mov.s $f14,$f0
|
|
/* f09958c: 00004025 */ move $t0,$zero
|
|
/* f099590: 10600069 */ beqz $v1,.JF0f099738
|
|
/* f099594: 00608025 */ move $s0,$v1
|
|
/* f099598: 3c013f80 */ lui $at,0x3f80
|
|
/* f09959c: 44813000 */ mtc1 $at,$f6
|
|
/* f0995a0: 00008825 */ move $s1,$zero
|
|
/* f0995a4: 10600064 */ beqz $v1,.JF0f099738
|
|
/* f0995a8: e7a60070 */ swc1 $f6,0x70($sp)
|
|
/* f0995ac: 24140009 */ li $s4,0x9
|
|
/* f0995b0: 24130005 */ li $s3,0x5
|
|
.JF0f0995b4:
|
|
/* f0995b4: 92030000 */ lbu $v1,0x0($s0)
|
|
/* f0995b8: 54600004 */ bnezl $v1,.JF0f0995cc
|
|
/* f0995bc: 960d0002 */ lhu $t5,0x2($s0)
|
|
/* f0995c0: 1000005b */ b .JF0f099730
|
|
/* f0995c4: 24080001 */ li $t0,0x1
|
|
/* f0995c8: 960d0002 */ lhu $t5,0x2($s0)
|
|
.JF0f0995cc:
|
|
/* f0995cc: 3c014f80 */ lui $at,0x4f80
|
|
/* f0995d0: 448d2000 */ mtc1 $t5,$f4
|
|
/* f0995d4: 05a10004 */ bgez $t5,.JF0f0995e8
|
|
/* f0995d8: 46802020 */ cvt.s.w $f0,$f4
|
|
/* f0995dc: 44814000 */ mtc1 $at,$f8
|
|
/* f0995e0: 00000000 */ nop
|
|
/* f0995e4: 46080000 */ add.s $f0,$f0,$f8
|
|
.JF0f0995e8:
|
|
/* f0995e8: 460e003e */ c.le.s $f0,$f14
|
|
/* f0995ec: 00000000 */ nop
|
|
/* f0995f0: 4500004f */ bc1f .JF0f099730
|
|
/* f0995f4: 00000000 */ nop
|
|
/* f0995f8: 4600a03c */ c.lt.s $f20,$f0
|
|
/* f0995fc: 00000000 */ nop
|
|
/* f099600: 4500004b */ bc1f .JF0f099730
|
|
/* f099604: 00000000 */ nop
|
|
/* f099608: 460ea03c */ c.lt.s $f20,$f14
|
|
/* f09960c: 00000000 */ nop
|
|
/* f099610: 45000047 */ bc1f .JF0f099730
|
|
/* f099614: 00000000 */ nop
|
|
/* f099618: 10730007 */ beq $v1,$s3,.JF0f099638
|
|
/* f09961c: 00000000 */ nop
|
|
/* f099620: 10740039 */ beq $v1,$s4,.JF0f099708
|
|
/* f099624: 2401000b */ li $at,0xb
|
|
/* f099628: 5061002f */ beql $v1,$at,.JF0f0996e8
|
|
/* f09962c: 8e0d0004 */ lw $t5,0x4($s0)
|
|
/* f099630: 1000003f */ b .JF0f099730
|
|
/* f099634: 00000000 */ nop
|
|
.JF0f099638:
|
|
/* f099638: 12200016 */ beqz $s1,.JF0f099694
|
|
/* f09963c: 00002025 */ move $a0,$zero
|
|
/* f099640: 8e0e0004 */ lw $t6,0x4($s0)
|
|
/* f099644: c7aa0070 */ lwc1 $f10,0x70($sp)
|
|
/* f099648: 240f0001 */ li $t7,0x1
|
|
/* f09964c: 2418ffff */ li $t8,-1
|
|
/* f099650: 24190001 */ li $t9,0x1
|
|
/* f099654: afb90020 */ sw $t9,0x20($sp)
|
|
/* f099658: afb8001c */ sw $t8,0x1c($sp)
|
|
/* f09965c: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f099660: e7ae0158 */ swc1 $f14,0x158($sp)
|
|
/* f099664: afa80078 */ sw $t0,0x78($sp)
|
|
/* f099668: 00002025 */ move $a0,$zero
|
|
/* f09966c: 00002825 */ move $a1,$zero
|
|
/* f099670: 24067fff */ li $a2,0x7fff
|
|
/* f099674: 24070040 */ li $a3,0x40
|
|
/* f099678: 00008825 */ move $s1,$zero
|
|
/* f09967c: afae0010 */ sw $t6,0x10($sp)
|
|
/* f099680: 0c0041b5 */ jal snd00010718
|
|
/* f099684: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f099688: 8fa80078 */ lw $t0,0x78($sp)
|
|
/* f09968c: 10000028 */ b .JF0f099730
|
|
/* f099690: c7ae0158 */ lwc1 $f14,0x158($sp)
|
|
.JF0f099694:
|
|
/* f099694: 8e090004 */ lw $t1,0x4($s0)
|
|
/* f099698: 3c013f80 */ lui $at,0x3f80
|
|
/* f09969c: 44818000 */ mtc1 $at,$f16
|
|
/* f0996a0: 240a0001 */ li $t2,0x1
|
|
/* f0996a4: 240bffff */ li $t3,-1
|
|
/* f0996a8: 240c0001 */ li $t4,0x1
|
|
/* f0996ac: afac0020 */ sw $t4,0x20($sp)
|
|
/* f0996b0: afab001c */ sw $t3,0x1c($sp)
|
|
/* f0996b4: afaa0018 */ sw $t2,0x18($sp)
|
|
/* f0996b8: e7ae0158 */ swc1 $f14,0x158($sp)
|
|
/* f0996bc: afa80078 */ sw $t0,0x78($sp)
|
|
/* f0996c0: 00002825 */ move $a1,$zero
|
|
/* f0996c4: 24067fff */ li $a2,0x7fff
|
|
/* f0996c8: 24070040 */ li $a3,0x40
|
|
/* f0996cc: afa90010 */ sw $t1,0x10($sp)
|
|
/* f0996d0: 0c0041b5 */ jal snd00010718
|
|
/* f0996d4: e7b00014 */ swc1 $f16,0x14($sp)
|
|
/* f0996d8: 8fa80078 */ lw $t0,0x78($sp)
|
|
/* f0996dc: 10000014 */ b .JF0f099730
|
|
/* f0996e0: c7ae0158 */ lwc1 $f14,0x158($sp)
|
|
/* f0996e4: 8e0d0004 */ lw $t5,0x4($s0)
|
|
.JF0f0996e8:
|
|
/* f0996e8: 3c01447a */ lui $at,0x447a
|
|
/* f0996ec: 44812000 */ mtc1 $at,$f4
|
|
/* f0996f0: 448d9000 */ mtc1 $t5,$f18
|
|
/* f0996f4: 24110001 */ li $s1,0x1
|
|
/* f0996f8: 468091a0 */ cvt.s.w $f6,$f18
|
|
/* f0996fc: 46043203 */ div.s $f8,$f6,$f4
|
|
/* f099700: 1000000b */ b .JF0f099730
|
|
/* f099704: e7a80070 */ swc1 $f8,0x70($sp)
|
|
.JF0f099708:
|
|
/* f099708: 8e4e0690 */ lw $t6,0x690($s2)
|
|
/* f09970c: 924b0690 */ lbu $t3,0x690($s2)
|
|
/* f099710: 000e78c0 */ sll $t7,$t6,0x3
|
|
/* f099714: 000fc742 */ srl $t8,$t7,0x1d
|
|
/* f099718: 27190001 */ addiu $t9,$t8,0x1
|
|
/* f09971c: 00194880 */ sll $t1,$t9,0x2
|
|
/* f099720: 312a001c */ andi $t2,$t1,0x1c
|
|
/* f099724: 316cffe3 */ andi $t4,$t3,0xffe3
|
|
/* f099728: 014c6825 */ or $t5,$t2,$t4
|
|
/* f09972c: a24d0690 */ sb $t5,0x690($s2)
|
|
.JF0f099730:
|
|
/* f099730: 1100ffa0 */ beqz $t0,.JF0f0995b4
|
|
/* f099734: 26100008 */ addiu $s0,$s0,0x8
|
|
.JF0f099738:
|
|
/* f099738: 8fbf004c */ lw $ra,0x4c($sp)
|
|
.JF0f09973c:
|
|
/* f09973c: d7b40030 */ ldc1 $f20,0x30($sp)
|
|
/* f099740: 8fb00038 */ lw $s0,0x38($sp)
|
|
/* f099744: 8fb1003c */ lw $s1,0x3c($sp)
|
|
/* f099748: 8fb20040 */ lw $s2,0x40($sp)
|
|
/* f09974c: 8fb30044 */ lw $s3,0x44($sp)
|
|
/* f099750: 8fb40048 */ lw $s4,0x48($sp)
|
|
/* f099754: 03e00008 */ jr $ra
|
|
/* f099758: 27bd0160 */ addiu $sp,$sp,0x160
|
|
);
|
|
#elif VERSION >= VERSION_PAL_FINAL
|
|
GLOBAL_ASM(
|
|
glabel bgun0f0981e8
|
|
.late_rodata
|
|
glabel var7f1ad398pf
|
|
.word 0x461c4000
|
|
glabel var7f1ad39cpf
|
|
.word 0x3f451eb8
|
|
glabel var7f1ad3a0pf
|
|
.word 0x3f333333
|
|
glabel var7f1ad3a4pf
|
|
.word 0x3f99999a
|
|
glabel var7f1ad3a8pf
|
|
.word 0x3f555555
|
|
glabel var7f1ad3acpf
|
|
.word 0x3f99999a
|
|
.text
|
|
/* f098108: 27bdfea0 */ addiu $sp,$sp,-352
|
|
/* f09810c: afbf004c */ sw $ra,0x4c($sp)
|
|
/* f098110: afb40048 */ sw $s4,0x48($sp)
|
|
/* f098114: afb30044 */ sw $s3,0x44($sp)
|
|
/* f098118: afb20040 */ sw $s2,0x40($sp)
|
|
/* f09811c: afb1003c */ sw $s1,0x3c($sp)
|
|
/* f098120: afb00038 */ sw $s0,0x38($sp)
|
|
/* f098124: f7b40030 */ sdc1 $f20,0x30($sp)
|
|
/* f098128: afa50164 */ sw $a1,0x164($sp)
|
|
/* f09812c: 908e0690 */ lbu $t6,0x690($a0)
|
|
/* f098130: 8c98068c */ lw $t8,0x68c($a0)
|
|
/* f098134: 24010002 */ li $at,0x2
|
|
/* f098138: 31cfffe3 */ andi $t7,$t6,0xffe3
|
|
/* f09813c: 00809025 */ move $s2,$a0
|
|
/* f098140: 1701000f */ bne $t8,$at,.PF0f098180
|
|
/* f098144: a08f0690 */ sb $t7,0x690($a0)
|
|
/* f098148: 0fc2601f */ jal bgun0f09815c
|
|
/* f09814c: 00000000 */ nop
|
|
/* f098150: 46000506 */ mov.s $f20,$f0
|
|
/* f098154: 0c0073fa */ jal modelGetNumAnimFrames
|
|
/* f098158: 26440384 */ addiu $a0,$s2,0x384
|
|
/* f09815c: 2459ffff */ addiu $t9,$v0,-1
|
|
/* f098160: 44992000 */ mtc1 $t9,$f4
|
|
/* f098164: 00000000 */ nop
|
|
/* f098168: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f09816c: 4614303e */ c.le.s $f6,$f20
|
|
/* f098170: 00000000 */ nop
|
|
/* f098174: 45020003 */ bc1fl .PF0f098184
|
|
/* f098178: 8e480680 */ lw $t0,0x680($s2)
|
|
/* f09817c: ae40068c */ sw $zero,0x68c($s2)
|
|
.PF0f098180:
|
|
/* f098180: 8e480680 */ lw $t0,0x680($s2)
|
|
.PF0f098184:
|
|
/* f098184: 8e49068c */ lw $t1,0x68c($s2)
|
|
/* f098188: 29020000 */ slti $v0,$t0,0x0
|
|
/* f09818c: 392a0002 */ xori $t2,$t1,0x2
|
|
/* f098190: 2d4a0001 */ sltiu $t2,$t2,0x1
|
|
/* f098194: 38420001 */ xori $v0,$v0,0x1
|
|
/* f098198: 01425825 */ or $t3,$t2,$v0
|
|
/* f09819c: 516001d2 */ beqzl $t3,.PF0f0988e8
|
|
/* f0981a0: 8fbf004c */ lw $ra,0x4c($sp)
|
|
/* f0981a4: 44801000 */ mtc1 $zero,$f2
|
|
/* f0981a8: c64806d0 */ lwc1 $f8,0x6d0($s2)
|
|
/* f0981ac: 26540384 */ addiu $s4,$s2,0x384
|
|
/* f0981b0: 4608103c */ c.lt.s $f2,$f8
|
|
/* f0981b4: 00000000 */ nop
|
|
/* f0981b8: 45000006 */ bc1f .PF0f0981d4
|
|
/* f0981bc: 00000000 */ nop
|
|
/* f0981c0: 8e480680 */ lw $t0,0x680($s2)
|
|
/* f0981c4: ae400684 */ sw $zero,0x684($s2)
|
|
/* f0981c8: e6420688 */ swc1 $f2,0x688($s2)
|
|
/* f0981cc: 29020000 */ slti $v0,$t0,0x0
|
|
/* f0981d0: 38420001 */ xori $v0,$v0,0x1
|
|
.PF0f0981d4:
|
|
/* f0981d4: 5040005a */ beqzl $v0,.PF0f098340
|
|
/* f0981d8: 8e4d0690 */ lw $t5,0x690($s2)
|
|
/* f0981dc: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f0981e0: 3c013f80 */ lui $at,0x3f80
|
|
/* f0981e4: 924d06d6 */ lbu $t5,0x6d6($s2)
|
|
/* f0981e8: 8c6c0004 */ lw $t4,0x4($v1)
|
|
/* f0981ec: 44810000 */ mtc1 $at,$f0
|
|
/* f0981f0: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0981f4: 448c5000 */ mtc1 $t4,$f10
|
|
/* f0981f8: c432d398 */ lwc1 $f18,-0x2c68($at)
|
|
/* f0981fc: 31ae0001 */ andi $t6,$t5,0x1
|
|
/* f098200: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f098204: 3c0f800a */ lui $t7,0x800a
|
|
/* f098208: 11c0001a */ beqz $t6,.PF0f098274
|
|
/* f09820c: 46128503 */ div.s $f20,$f16,$f18
|
|
/* f098210: 8defa794 */ lw $t7,-0x586c($t7)
|
|
/* f098214: 81f80de4 */ lb $t8,0xde4($t7)
|
|
/* f098218: 13000016 */ beqz $t8,.PF0f098274
|
|
/* f09821c: 00000000 */ nop
|
|
/* f098220: 0c004ad4 */ jal random
|
|
/* f098224: 00000000 */ nop
|
|
/* f098228: 44822000 */ mtc1 $v0,$f4
|
|
/* f09822c: 3c014f80 */ lui $at,0x4f80
|
|
/* f098230: 04410004 */ bgez $v0,.PF0f098244
|
|
/* f098234: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f098238: 44814000 */ mtc1 $at,$f8
|
|
/* f09823c: 00000000 */ nop
|
|
/* f098240: 46083180 */ add.s $f6,$f6,$f8
|
|
.PF0f098244:
|
|
/* f098244: 3c012f80 */ lui $at,0x2f80
|
|
/* f098248: 44815000 */ mtc1 $at,$f10
|
|
/* f09824c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f098250: c432d39c */ lwc1 $f18,-0x2c64($at)
|
|
/* f098254: 460a3402 */ mul.s $f16,$f6,$f10
|
|
/* f098258: 3c017f1b */ lui $at,0x7f1b
|
|
/* f09825c: c428d3a0 */ lwc1 $f8,-0x2c60($at)
|
|
/* f098260: 44801000 */ mtc1 $zero,$f2
|
|
/* f098264: 8e480680 */ lw $t0,0x680($s2)
|
|
/* f098268: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f09826c: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f098270: 46082000 */ add.s $f0,$f4,$f8
|
|
.PF0f098274:
|
|
/* f098274: 10600018 */ beqz $v1,.PF0f0982d8
|
|
/* f098278: 02802025 */ move $a0,$s4
|
|
/* f09827c: 4602a03c */ c.lt.s $f20,$f2
|
|
/* f098280: 00082c00 */ sll $a1,$t0,0x10
|
|
/* f098284: 0005cc03 */ sra $t9,$a1,0x10
|
|
/* f098288: 45000013 */ bc1f .PF0f0982d8
|
|
/* f09828c: 00000000 */ nop
|
|
/* f098290: 46140182 */ mul.s $f6,$f0,$f20
|
|
/* f098294: 44071000 */ mfc1 $a3,$f2
|
|
/* f098298: 02802025 */ move $a0,$s4
|
|
/* f09829c: 03202825 */ move $a1,$t9
|
|
/* f0982a0: 00003025 */ move $a2,$zero
|
|
/* f0982a4: e7a20014 */ swc1 $f2,0x14($sp)
|
|
/* f0982a8: 0c0076a7 */ jal modelSetAnimation
|
|
/* f0982ac: e7a60010 */ swc1 $f6,0x10($sp)
|
|
/* f0982b0: 0c0073fa */ jal modelGetNumAnimFrames
|
|
/* f0982b4: 02802025 */ move $a0,$s4
|
|
/* f0982b8: 44825000 */ mtc1 $v0,$f10
|
|
/* f0982bc: 02802025 */ move $a0,$s4
|
|
/* f0982c0: 468052a0 */ cvt.s.w $f10,$f10
|
|
/* f0982c4: 44055000 */ mfc1 $a1,$f10
|
|
/* f0982c8: 0c00777a */ jal model0001e018
|
|
/* f0982cc: 00000000 */ nop
|
|
/* f0982d0: 1000000b */ b .PF0f098300
|
|
/* f0982d4: 240affff */ li $t2,-1
|
|
.PF0f0982d8:
|
|
/* f0982d8: 46140402 */ mul.s $f16,$f0,$f20
|
|
/* f0982dc: 00082c00 */ sll $a1,$t0,0x10
|
|
/* f0982e0: 00054c03 */ sra $t1,$a1,0x10
|
|
/* f0982e4: 44071000 */ mfc1 $a3,$f2
|
|
/* f0982e8: 01202825 */ move $a1,$t1
|
|
/* f0982ec: 00003025 */ move $a2,$zero
|
|
/* f0982f0: e7a20014 */ swc1 $f2,0x14($sp)
|
|
/* f0982f4: 0c0076a7 */ jal modelSetAnimation
|
|
/* f0982f8: e7b00010 */ swc1 $f16,0x10($sp)
|
|
/* f0982fc: 240affff */ li $t2,-1
|
|
.PF0f098300:
|
|
/* f098300: 240b0002 */ li $t3,0x2
|
|
/* f098304: ae4a0680 */ sw $t2,0x680($s2)
|
|
/* f098308: ae4b068c */ sw $t3,0x68c($s2)
|
|
/* f09830c: 0c007416 */ jal modelGetAbsAnimSpeed
|
|
/* f098310: 02802025 */ move $a0,$s4
|
|
/* f098314: 8e4c0684 */ lw $t4,0x684($s2)
|
|
/* f098318: 3c017f1b */ lui $at,0x7f1b
|
|
/* f09831c: c428d3a4 */ lwc1 $f8,-0x2c5c($at)
|
|
/* f098320: 448c9000 */ mtc1 $t4,$f18
|
|
/* f098324: 44801000 */ mtc1 $zero,$f2
|
|
/* f098328: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f09832c: 46082182 */ mul.s $f6,$f4,$f8
|
|
/* f098330: 00000000 */ nop
|
|
/* f098334: 46060282 */ mul.s $f10,$f0,$f6
|
|
/* f098338: e64a0688 */ swc1 $f10,0x688($s2)
|
|
/* f09833c: 8e4d0690 */ lw $t5,0x690($s2)
|
|
.PF0f098340:
|
|
/* f098340: 000d7840 */ sll $t7,$t5,0x1
|
|
/* f098344: 05e10003 */ bgez $t7,.PF0f098354
|
|
/* f098348: 00000000 */ nop
|
|
/* f09834c: ae400684 */ sw $zero,0x684($s2)
|
|
/* f098350: e6420688 */ swc1 $f2,0x688($s2)
|
|
.PF0f098354:
|
|
/* f098354: 0fc2601f */ jal bgun0f09815c
|
|
/* f098358: 02402025 */ move $a0,$s2
|
|
/* f09835c: 44809000 */ mtc1 $zero,$f18
|
|
/* f098360: c6500688 */ lwc1 $f16,0x688($s2)
|
|
/* f098364: 46000506 */ mov.s $f20,$f0
|
|
/* f098368: 46120032 */ c.eq.s $f0,$f18
|
|
/* f09836c: 46008380 */ add.s $f14,$f16,$f0
|
|
/* f098370: 4502000b */ bc1fl .PF0f0983a0
|
|
/* f098374: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f098378: 44802000 */ mtc1 $zero,$f4
|
|
/* f09837c: 3c013f80 */ lui $at,0x3f80
|
|
/* f098380: 460e203c */ c.lt.s $f4,$f14
|
|
/* f098384: 00000000 */ nop
|
|
/* f098388: 45020005 */ bc1fl .PF0f0983a0
|
|
/* f09838c: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f098390: 44814000 */ mtc1 $at,$f8
|
|
/* f098394: 00000000 */ nop
|
|
/* f098398: 46080501 */ sub.s $f20,$f0,$f8
|
|
/* f09839c: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
.PF0f0983a0:
|
|
/* f0983a0: 106000d8 */ beqz $v1,.PF0f098704
|
|
/* f0983a4: 00608825 */ move $s1,$v1
|
|
/* f0983a8: 106000d6 */ beqz $v1,.PF0f098704
|
|
/* f0983ac: afa0014c */ sw $zero,0x14c($sp)
|
|
/* f0983b0: 00008025 */ move $s0,$zero
|
|
/* f0983b4: 24130001 */ li $s3,0x1
|
|
/* f0983b8: 92230000 */ lbu $v1,0x0($s1)
|
|
.PF0f0983bc:
|
|
/* f0983bc: 14600003 */ bnez $v1,.PF0f0983cc
|
|
/* f0983c0: 00000000 */ nop
|
|
/* f0983c4: 100000b6 */ b .PF0f0986a0
|
|
/* f0983c8: afb3014c */ sw $s3,0x14c($sp)
|
|
.PF0f0983cc:
|
|
/* f0983cc: 12630003 */ beq $s3,$v1,.PF0f0983dc
|
|
/* f0983d0: 24010002 */ li $at,0x2
|
|
/* f0983d4: 54610036 */ bnel $v1,$at,.PF0f0984b0
|
|
/* f0983d8: 24010003 */ li $at,0x3
|
|
.PF0f0983dc:
|
|
/* f0983dc: 96260002 */ lhu $a2,0x2($s1)
|
|
/* f0983e0: 3c014f80 */ lui $at,0x4f80
|
|
/* f0983e4: 2405ffff */ li $a1,-1
|
|
/* f0983e8: 44863000 */ mtc1 $a2,$f6
|
|
/* f0983ec: 27ab0094 */ addiu $t3,$sp,0x94
|
|
/* f0983f0: 04c10004 */ bgez $a2,.PF0f098404
|
|
/* f0983f4: 468032a0 */ cvt.s.w $f10,$f6
|
|
/* f0983f8: 44818000 */ mtc1 $at,$f16
|
|
/* f0983fc: 00000000 */ nop
|
|
/* f098400: 46105280 */ add.s $f10,$f10,$f16
|
|
.PF0f098404:
|
|
/* f098404: 460e503e */ c.le.s $f10,$f14
|
|
/* f098408: 2401ffff */ li $at,-1
|
|
/* f09840c: 450200a5 */ bc1fl .PF0f0986a4
|
|
/* f098410: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f098414: 1a00000a */ blez $s0,.PF0f098440
|
|
/* f098418: 00001025 */ move $v0,$zero
|
|
/* f09841c: 8e240004 */ lw $a0,0x4($s1)
|
|
/* f098420: 27a3010c */ addiu $v1,$sp,0x10c
|
|
.PF0f098424:
|
|
/* f098424: 8c780000 */ lw $t8,0x0($v1)
|
|
/* f098428: 54980003 */ bnel $a0,$t8,.PF0f098438
|
|
/* f09842c: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f098430: 00402825 */ move $a1,$v0
|
|
/* f098434: 24420001 */ addiu $v0,$v0,0x1
|
|
.PF0f098438:
|
|
/* f098438: 1450fffa */ bne $v0,$s0,.PF0f098424
|
|
/* f09843c: 24630004 */ addiu $v1,$v1,0x4
|
|
.PF0f098440:
|
|
/* f098440: 14a1000a */ bne $a1,$at,.PF0f09846c
|
|
/* f098444: 2409ffff */ li $t1,-1
|
|
/* f098448: 8e240004 */ lw $a0,0x4($s1)
|
|
/* f09844c: 02002825 */ move $a1,$s0
|
|
/* f098450: 00051080 */ sll $v0,$a1,0x2
|
|
/* f098454: 03a2c821 */ addu $t9,$sp,$v0
|
|
/* f098458: 03a25021 */ addu $t2,$sp,$v0
|
|
/* f09845c: af24010c */ sw $a0,0x10c($t9)
|
|
/* f098460: ad490094 */ sw $t1,0x94($t2)
|
|
/* f098464: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f098468: 96260002 */ lhu $a2,0x2($s1)
|
|
.PF0f09846c:
|
|
/* f09846c: 00051080 */ sll $v0,$a1,0x2
|
|
/* f098470: 004b1821 */ addu $v1,$v0,$t3
|
|
/* f098474: 8c6c0000 */ lw $t4,0x0($v1)
|
|
/* f098478: 0186082a */ slt $at,$t4,$a2
|
|
/* f09847c: 50200089 */ beqzl $at,.PF0f0986a4
|
|
/* f098480: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f098484: ac660000 */ sw $a2,0x0($v1)
|
|
/* f098488: 922d0000 */ lbu $t5,0x0($s1)
|
|
/* f09848c: 03a27821 */ addu $t7,$sp,$v0
|
|
/* f098490: 03a27021 */ addu $t6,$sp,$v0
|
|
/* f098494: 166d0003 */ bne $s3,$t5,.PF0f0984a4
|
|
/* f098498: 00000000 */ nop
|
|
/* f09849c: 10000080 */ b .PF0f0986a0
|
|
/* f0984a0: add300d0 */ sw $s3,0xd0($t6)
|
|
.PF0f0984a4:
|
|
/* f0984a4: 1000007e */ b .PF0f0986a0
|
|
/* f0984a8: ade000d0 */ sw $zero,0xd0($t7)
|
|
/* f0984ac: 24010003 */ li $at,0x3
|
|
.PF0f0984b0:
|
|
/* f0984b0: 10610005 */ beq $v1,$at,.PF0f0984c8
|
|
/* f0984b4: 24010008 */ li $at,0x8
|
|
/* f0984b8: 50610049 */ beql $v1,$at,.PF0f0985e0
|
|
/* f0984bc: 8e4e0690 */ lw $t6,0x690($s2)
|
|
/* f0984c0: 10000078 */ b .PF0f0986a4
|
|
/* f0984c4: 8fac014c */ lw $t4,0x14c($sp)
|
|
.PF0f0984c8:
|
|
/* f0984c8: 8e580690 */ lw $t8,0x690($s2)
|
|
/* f0984cc: 0018cfc2 */ srl $t9,$t8,0x1f
|
|
/* f0984d0: 53200074 */ beqzl $t9,.PF0f0986a4
|
|
/* f0984d4: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f0984d8: 96290002 */ lhu $t1,0x2($s1)
|
|
/* f0984dc: 3c014f80 */ lui $at,0x4f80
|
|
/* f0984e0: 44899000 */ mtc1 $t1,$f18
|
|
/* f0984e4: 05210004 */ bgez $t1,.PF0f0984f8
|
|
/* f0984e8: 468090a0 */ cvt.s.w $f2,$f18
|
|
/* f0984ec: 44812000 */ mtc1 $at,$f4
|
|
/* f0984f0: 00000000 */ nop
|
|
/* f0984f4: 46041080 */ add.s $f2,$f2,$f4
|
|
.PF0f0984f8:
|
|
/* f0984f8: 460e103e */ c.le.s $f2,$f14
|
|
/* f0984fc: 00000000 */ nop
|
|
/* f098500: 45020068 */ bc1fl .PF0f0986a4
|
|
/* f098504: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f098508: 4602a03c */ c.lt.s $f20,$f2
|
|
/* f09850c: 00000000 */ nop
|
|
/* f098510: 45020064 */ bc1fl .PF0f0986a4
|
|
/* f098514: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f098518: 460ea03c */ c.lt.s $f20,$f14
|
|
/* f09851c: 00000000 */ nop
|
|
/* f098520: 45020060 */ bc1fl .PF0f0986a4
|
|
/* f098524: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f098528: 0fc2601f */ jal bgun0f09815c
|
|
/* f09852c: 02402025 */ move $a0,$s2
|
|
/* f098530: 962a0002 */ lhu $t2,0x2($s1)
|
|
/* f098534: 3c014f80 */ lui $at,0x4f80
|
|
/* f098538: 02802025 */ move $a0,$s4
|
|
/* f09853c: 448a4000 */ mtc1 $t2,$f8
|
|
/* f098540: 05410004 */ bgez $t2,.PF0f098554
|
|
/* f098544: 468041a0 */ cvt.s.w $f6,$f8
|
|
/* f098548: 44818000 */ mtc1 $at,$f16
|
|
/* f09854c: 00000000 */ nop
|
|
/* f098550: 46103180 */ add.s $f6,$f6,$f16
|
|
.PF0f098554:
|
|
/* f098554: 46003081 */ sub.s $f2,$f6,$f0
|
|
/* f098558: 3c014000 */ lui $at,0x4000
|
|
/* f09855c: 44815000 */ mtc1 $at,$f10
|
|
/* f098560: c64c0688 */ lwc1 $f12,0x688($s2)
|
|
/* f098564: 460a1083 */ div.s $f2,$f2,$f10
|
|
/* f098568: 460c103c */ c.lt.s $f2,$f12
|
|
/* f09856c: 00000000 */ nop
|
|
/* f098570: 45000018 */ bc1f .PF0f0985d4
|
|
/* f098574: 00000000 */ nop
|
|
/* f098578: 0c007416 */ jal modelGetAbsAnimSpeed
|
|
/* f09857c: e7a20084 */ swc1 $f2,0x84($sp)
|
|
/* f098580: 3c017f1b */ lui $at,0x7f1b
|
|
/* f098584: c432d3a8 */ lwc1 $f18,-0x2c58($at)
|
|
/* f098588: c7a20084 */ lwc1 $f2,0x84($sp)
|
|
/* f09858c: 02802025 */ move $a0,$s4
|
|
/* f098590: 46121102 */ mul.s $f4,$f2,$f18
|
|
/* f098594: 46002203 */ div.s $f8,$f4,$f0
|
|
/* f098598: 4600440d */ trunc.w.s $f16,$f8
|
|
/* f09859c: 440c8000 */ mfc1 $t4,$f16
|
|
/* f0985a0: 0c007416 */ jal modelGetAbsAnimSpeed
|
|
/* f0985a4: ae4c0684 */ sw $t4,0x684($s2)
|
|
/* f0985a8: 8e4d0684 */ lw $t5,0x684($s2)
|
|
/* f0985ac: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0985b0: c432d3ac */ lwc1 $f18,-0x2c54($at)
|
|
/* f0985b4: 448d3000 */ mtc1 $t5,$f6
|
|
/* f0985b8: 00000000 */ nop
|
|
/* f0985bc: 468032a0 */ cvt.s.w $f10,$f6
|
|
/* f0985c0: 46125102 */ mul.s $f4,$f10,$f18
|
|
/* f0985c4: 00000000 */ nop
|
|
/* f0985c8: 46040202 */ mul.s $f8,$f0,$f4
|
|
/* f0985cc: e6480688 */ swc1 $f8,0x688($s2)
|
|
/* f0985d0: c64c0688 */ lwc1 $f12,0x688($s2)
|
|
.PF0f0985d4:
|
|
/* f0985d4: 10000032 */ b .PF0f0986a0
|
|
/* f0985d8: 46146380 */ add.s $f14,$f12,$f20
|
|
/* f0985dc: 8e4e0690 */ lw $t6,0x690($s2)
|
|
.PF0f0985e0:
|
|
/* f0985e0: 000ec080 */ sll $t8,$t6,0x2
|
|
/* f0985e4: 0703002f */ bgezl $t8,.PF0f0986a4
|
|
/* f0985e8: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f0985ec: 96260002 */ lhu $a2,0x2($s1)
|
|
/* f0985f0: 3c014f80 */ lui $at,0x4f80
|
|
/* f0985f4: 44868000 */ mtc1 $a2,$f16
|
|
/* f0985f8: 04c10004 */ bgez $a2,.PF0f09860c
|
|
/* f0985fc: 468080a0 */ cvt.s.w $f2,$f16
|
|
/* f098600: 44813000 */ mtc1 $at,$f6
|
|
/* f098604: 00000000 */ nop
|
|
/* f098608: 46061080 */ add.s $f2,$f2,$f6
|
|
.PF0f09860c:
|
|
/* f09860c: 460e103e */ c.le.s $f2,$f14
|
|
/* f098610: 00000000 */ nop
|
|
/* f098614: 45020023 */ bc1fl .PF0f0986a4
|
|
/* f098618: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f09861c: 4602a03c */ c.lt.s $f20,$f2
|
|
/* f098620: 00000000 */ nop
|
|
/* f098624: 4502001f */ bc1fl .PF0f0986a4
|
|
/* f098628: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f09862c: 460ea03c */ c.lt.s $f20,$f14
|
|
/* f098630: 02802025 */ move $a0,$s4
|
|
/* f098634: 4502001b */ bc1fl .PF0f0986a4
|
|
/* f098638: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f09863c: 460e103e */ c.le.s $f2,$f14
|
|
/* f098640: 44809000 */ mtc1 $zero,$f18
|
|
/* f098644: 46007006 */ mov.s $f0,$f14
|
|
/* f098648: 4502000c */ bc1fl .PF0f09867c
|
|
/* f09864c: ae400684 */ sw $zero,0x684($s2)
|
|
/* f098650: 8e390004 */ lw $t9,0x4($s1)
|
|
/* f098654: 03264823 */ subu $t1,$t9,$a2
|
|
/* f098658: 44895000 */ mtc1 $t1,$f10
|
|
/* f09865c: 00000000 */ nop
|
|
/* f098660: 46805320 */ cvt.s.w $f12,$f10
|
|
/* f098664: 460c0000 */ add.s $f0,$f0,$f12
|
|
.PF0f098668:
|
|
/* f098668: 4600103e */ c.le.s $f2,$f0
|
|
/* f09866c: 00000000 */ nop
|
|
/* f098670: 4503fffd */ bc1tl .PF0f098668
|
|
/* f098674: 460c0000 */ add.s $f0,$f0,$f12
|
|
/* f098678: ae400684 */ sw $zero,0x684($s2)
|
|
.PF0f09867c:
|
|
/* f09867c: e6520688 */ swc1 $f18,0x688($s2)
|
|
/* f098680: 44050000 */ mfc1 $a1,$f0
|
|
/* f098684: 46000506 */ mov.s $f20,$f0
|
|
/* f098688: 0c00777a */ jal model0001e018
|
|
/* f09868c: e7a00080 */ swc1 $f0,0x80($sp)
|
|
/* f098690: 924a0691 */ lbu $t2,0x691($s2)
|
|
/* f098694: c7ae0080 */ lwc1 $f14,0x80($sp)
|
|
/* f098698: 254b0001 */ addiu $t3,$t2,0x1
|
|
/* f09869c: a24b0691 */ sb $t3,0x691($s2)
|
|
.PF0f0986a0:
|
|
/* f0986a0: 8fac014c */ lw $t4,0x14c($sp)
|
|
.PF0f0986a4:
|
|
/* f0986a4: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0986a8: 5180ff44 */ beqzl $t4,.PF0f0983bc
|
|
/* f0986ac: 92230000 */ lbu $v1,0x0($s1)
|
|
/* f0986b0: 5a000015 */ blezl $s0,.PF0f098708
|
|
/* f0986b4: 3c054099 */ lui $a1,0x4099
|
|
/* f0986b8: 1a000012 */ blez $s0,.PF0f098704
|
|
/* f0986bc: 00001025 */ move $v0,$zero
|
|
/* f0986c0: 27a3010c */ addiu $v1,$sp,0x10c
|
|
/* f0986c4: 27a800d0 */ addiu $t0,$sp,0xd0
|
|
.PF0f0986c8:
|
|
/* f0986c8: 84640002 */ lh $a0,0x2($v1)
|
|
/* f0986cc: 8d050000 */ lw $a1,0x0($t0)
|
|
/* f0986d0: afa80058 */ sw $t0,0x58($sp)
|
|
/* f0986d4: afa3005c */ sw $v1,0x5c($sp)
|
|
/* f0986d8: afa2007c */ sw $v0,0x7c($sp)
|
|
/* f0986dc: 02403025 */ move $a2,$s2
|
|
/* f0986e0: 0fc25f65 */ jal bgunSetPartVisible
|
|
/* f0986e4: 8fa70164 */ lw $a3,0x164($sp)
|
|
/* f0986e8: 8fa2007c */ lw $v0,0x7c($sp)
|
|
/* f0986ec: 8fa3005c */ lw $v1,0x5c($sp)
|
|
/* f0986f0: 8fa80058 */ lw $t0,0x58($sp)
|
|
/* f0986f4: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f0986f8: 24630004 */ addiu $v1,$v1,0x4
|
|
/* f0986fc: 1450fff2 */ bne $v0,$s0,.PF0f0986c8
|
|
/* f098700: 25080004 */ addiu $t0,$t0,0x4
|
|
.PF0f098704:
|
|
/* f098704: 3c054099 */ lui $a1,0x4099
|
|
.PF0f098708:
|
|
/* f098708: 34a5999a */ ori $a1,$a1,0x999a
|
|
/* f09870c: 02802025 */ move $a0,$s4
|
|
/* f098710: 0c00775f */ jal modelSetAnimPlaySpeed
|
|
/* f098714: 24060000 */ li $a2,0x0
|
|
/* f098718: 02802025 */ move $a0,$s4
|
|
/* f09871c: 8e450684 */ lw $a1,0x684($s2)
|
|
/* f098720: 0c007afa */ jal model0001ee18
|
|
/* f098724: 24060001 */ li $a2,0x1
|
|
/* f098728: 0fc2601f */ jal bgun0f09815c
|
|
/* f09872c: 02402025 */ move $a0,$s2
|
|
/* f098730: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f098734: 46000386 */ mov.s $f14,$f0
|
|
/* f098738: 00004025 */ move $t0,$zero
|
|
/* f09873c: 10600069 */ beqz $v1,.PF0f0988e4
|
|
/* f098740: 00608025 */ move $s0,$v1
|
|
/* f098744: 3c013f80 */ lui $at,0x3f80
|
|
/* f098748: 44812000 */ mtc1 $at,$f4
|
|
/* f09874c: 00008825 */ move $s1,$zero
|
|
/* f098750: 10600064 */ beqz $v1,.PF0f0988e4
|
|
/* f098754: e7a40070 */ swc1 $f4,0x70($sp)
|
|
/* f098758: 24140009 */ li $s4,0x9
|
|
/* f09875c: 24130005 */ li $s3,0x5
|
|
.PF0f098760:
|
|
/* f098760: 92030000 */ lbu $v1,0x0($s0)
|
|
/* f098764: 54600004 */ bnezl $v1,.PF0f098778
|
|
/* f098768: 960d0002 */ lhu $t5,0x2($s0)
|
|
/* f09876c: 1000005b */ b .PF0f0988dc
|
|
/* f098770: 24080001 */ li $t0,0x1
|
|
/* f098774: 960d0002 */ lhu $t5,0x2($s0)
|
|
.PF0f098778:
|
|
/* f098778: 3c014f80 */ lui $at,0x4f80
|
|
/* f09877c: 448d4000 */ mtc1 $t5,$f8
|
|
/* f098780: 05a10004 */ bgez $t5,.PF0f098794
|
|
/* f098784: 46804020 */ cvt.s.w $f0,$f8
|
|
/* f098788: 44818000 */ mtc1 $at,$f16
|
|
/* f09878c: 00000000 */ nop
|
|
/* f098790: 46100000 */ add.s $f0,$f0,$f16
|
|
.PF0f098794:
|
|
/* f098794: 460e003e */ c.le.s $f0,$f14
|
|
/* f098798: 00000000 */ nop
|
|
/* f09879c: 4500004f */ bc1f .PF0f0988dc
|
|
/* f0987a0: 00000000 */ nop
|
|
/* f0987a4: 4600a03c */ c.lt.s $f20,$f0
|
|
/* f0987a8: 00000000 */ nop
|
|
/* f0987ac: 4500004b */ bc1f .PF0f0988dc
|
|
/* f0987b0: 00000000 */ nop
|
|
/* f0987b4: 460ea03c */ c.lt.s $f20,$f14
|
|
/* f0987b8: 00000000 */ nop
|
|
/* f0987bc: 45000047 */ bc1f .PF0f0988dc
|
|
/* f0987c0: 00000000 */ nop
|
|
/* f0987c4: 10730007 */ beq $v1,$s3,.PF0f0987e4
|
|
/* f0987c8: 00000000 */ nop
|
|
/* f0987cc: 10740039 */ beq $v1,$s4,.PF0f0988b4
|
|
/* f0987d0: 2401000b */ li $at,0xb
|
|
/* f0987d4: 5061002f */ beql $v1,$at,.PF0f098894
|
|
/* f0987d8: 8e0d0004 */ lw $t5,0x4($s0)
|
|
/* f0987dc: 1000003f */ b .PF0f0988dc
|
|
/* f0987e0: 00000000 */ nop
|
|
.PF0f0987e4:
|
|
/* f0987e4: 12200016 */ beqz $s1,.PF0f098840
|
|
/* f0987e8: 00002025 */ move $a0,$zero
|
|
/* f0987ec: 8e0e0004 */ lw $t6,0x4($s0)
|
|
/* f0987f0: c7a60070 */ lwc1 $f6,0x70($sp)
|
|
/* f0987f4: 240f0001 */ li $t7,0x1
|
|
/* f0987f8: 2418ffff */ li $t8,-1
|
|
/* f0987fc: 24190001 */ li $t9,0x1
|
|
/* f098800: afb90020 */ sw $t9,0x20($sp)
|
|
/* f098804: afb8001c */ sw $t8,0x1c($sp)
|
|
/* f098808: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f09880c: e7ae0158 */ swc1 $f14,0x158($sp)
|
|
/* f098810: afa80078 */ sw $t0,0x78($sp)
|
|
/* f098814: 00002025 */ move $a0,$zero
|
|
/* f098818: 00002825 */ move $a1,$zero
|
|
/* f09881c: 24067fff */ li $a2,0x7fff
|
|
/* f098820: 24070040 */ li $a3,0x40
|
|
/* f098824: 00008825 */ move $s1,$zero
|
|
/* f098828: afae0010 */ sw $t6,0x10($sp)
|
|
/* f09882c: 0c004125 */ jal snd00010718
|
|
/* f098830: e7a60014 */ swc1 $f6,0x14($sp)
|
|
/* f098834: 8fa80078 */ lw $t0,0x78($sp)
|
|
/* f098838: 10000028 */ b .PF0f0988dc
|
|
/* f09883c: c7ae0158 */ lwc1 $f14,0x158($sp)
|
|
.PF0f098840:
|
|
/* f098840: 8e090004 */ lw $t1,0x4($s0)
|
|
/* f098844: 3c013f80 */ lui $at,0x3f80
|
|
/* f098848: 44815000 */ mtc1 $at,$f10
|
|
/* f09884c: 240a0001 */ li $t2,0x1
|
|
/* f098850: 240bffff */ li $t3,-1
|
|
/* f098854: 240c0001 */ li $t4,0x1
|
|
/* f098858: afac0020 */ sw $t4,0x20($sp)
|
|
/* f09885c: afab001c */ sw $t3,0x1c($sp)
|
|
/* f098860: afaa0018 */ sw $t2,0x18($sp)
|
|
/* f098864: e7ae0158 */ swc1 $f14,0x158($sp)
|
|
/* f098868: afa80078 */ sw $t0,0x78($sp)
|
|
/* f09886c: 00002825 */ move $a1,$zero
|
|
/* f098870: 24067fff */ li $a2,0x7fff
|
|
/* f098874: 24070040 */ li $a3,0x40
|
|
/* f098878: afa90010 */ sw $t1,0x10($sp)
|
|
/* f09887c: 0c004125 */ jal snd00010718
|
|
/* f098880: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f098884: 8fa80078 */ lw $t0,0x78($sp)
|
|
/* f098888: 10000014 */ b .PF0f0988dc
|
|
/* f09888c: c7ae0158 */ lwc1 $f14,0x158($sp)
|
|
/* f098890: 8e0d0004 */ lw $t5,0x4($s0)
|
|
.PF0f098894:
|
|
/* f098894: 3c01447a */ lui $at,0x447a
|
|
/* f098898: 44814000 */ mtc1 $at,$f8
|
|
/* f09889c: 448d9000 */ mtc1 $t5,$f18
|
|
/* f0988a0: 24110001 */ li $s1,0x1
|
|
/* f0988a4: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f0988a8: 46082403 */ div.s $f16,$f4,$f8
|
|
/* f0988ac: 1000000b */ b .PF0f0988dc
|
|
/* f0988b0: e7b00070 */ swc1 $f16,0x70($sp)
|
|
.PF0f0988b4:
|
|
/* f0988b4: 8e4e0690 */ lw $t6,0x690($s2)
|
|
/* f0988b8: 924b0690 */ lbu $t3,0x690($s2)
|
|
/* f0988bc: 000e78c0 */ sll $t7,$t6,0x3
|
|
/* f0988c0: 000fc742 */ srl $t8,$t7,0x1d
|
|
/* f0988c4: 27190001 */ addiu $t9,$t8,0x1
|
|
/* f0988c8: 00194880 */ sll $t1,$t9,0x2
|
|
/* f0988cc: 312a001c */ andi $t2,$t1,0x1c
|
|
/* f0988d0: 316cffe3 */ andi $t4,$t3,0xffe3
|
|
/* f0988d4: 014c6825 */ or $t5,$t2,$t4
|
|
/* f0988d8: a24d0690 */ sb $t5,0x690($s2)
|
|
.PF0f0988dc:
|
|
/* f0988dc: 1100ffa0 */ beqz $t0,.PF0f098760
|
|
/* f0988e0: 26100008 */ addiu $s0,$s0,0x8
|
|
.PF0f0988e4:
|
|
/* f0988e4: 8fbf004c */ lw $ra,0x4c($sp)
|
|
.PF0f0988e8:
|
|
/* f0988e8: d7b40030 */ ldc1 $f20,0x30($sp)
|
|
/* f0988ec: 8fb00038 */ lw $s0,0x38($sp)
|
|
/* f0988f0: 8fb1003c */ lw $s1,0x3c($sp)
|
|
/* f0988f4: 8fb20040 */ lw $s2,0x40($sp)
|
|
/* f0988f8: 8fb30044 */ lw $s3,0x44($sp)
|
|
/* f0988fc: 8fb40048 */ lw $s4,0x48($sp)
|
|
/* f098900: 03e00008 */ jr $ra
|
|
/* f098904: 27bd0160 */ addiu $sp,$sp,0x160
|
|
);
|
|
#elif VERSION >= VERSION_PAL_BETA
|
|
GLOBAL_ASM(
|
|
glabel bgun0f0981e8
|
|
.late_rodata
|
|
glabel var7f1ad398pf
|
|
.word 0x461c4000
|
|
glabel var7f1ad39cpf
|
|
.word 0x3f451eb8
|
|
glabel var7f1ad3a0pf
|
|
.word 0x3f333333
|
|
glabel var7f1ad3a4pf
|
|
.word 0x3f99999a
|
|
glabel var7f1ad3a8pf
|
|
.word 0x3f555555
|
|
glabel var7f1ad3acpf
|
|
.word 0x3f99999a
|
|
.text
|
|
/* f098058: 27bdfea0 */ addiu $sp,$sp,-352
|
|
/* f09805c: afbf004c */ sw $ra,0x4c($sp)
|
|
/* f098060: afb40048 */ sw $s4,0x48($sp)
|
|
/* f098064: afb30044 */ sw $s3,0x44($sp)
|
|
/* f098068: afb20040 */ sw $s2,0x40($sp)
|
|
/* f09806c: afb1003c */ sw $s1,0x3c($sp)
|
|
/* f098070: afb00038 */ sw $s0,0x38($sp)
|
|
/* f098074: f7b40030 */ sdc1 $f20,0x30($sp)
|
|
/* f098078: afa50164 */ sw $a1,0x164($sp)
|
|
/* f09807c: 908e0690 */ lbu $t6,0x690($a0)
|
|
/* f098080: 8c98068c */ lw $t8,0x68c($a0)
|
|
/* f098084: 24010002 */ li $at,0x2
|
|
/* f098088: 31cfffe3 */ andi $t7,$t6,0xffe3
|
|
/* f09808c: 00809025 */ move $s2,$a0
|
|
/* f098090: 1701000f */ bne $t8,$at,.PB0f0980d0
|
|
/* f098094: a08f0690 */ sb $t7,0x690($a0)
|
|
/* f098098: 0fc25ff3 */ jal bgun0f09815c
|
|
/* f09809c: 00000000 */ nop
|
|
/* f0980a0: 46000506 */ mov.s $f20,$f0
|
|
/* f0980a4: 0c00772a */ jal modelGetNumAnimFrames
|
|
/* f0980a8: 26440384 */ addiu $a0,$s2,0x384
|
|
/* f0980ac: 2459ffff */ addiu $t9,$v0,-1
|
|
/* f0980b0: 44992000 */ mtc1 $t9,$f4
|
|
/* f0980b4: 00000000 */ nop
|
|
/* f0980b8: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0980bc: 4614303e */ c.le.s $f6,$f20
|
|
/* f0980c0: 00000000 */ nop
|
|
/* f0980c4: 45020003 */ bc1fl .PB0f0980d4
|
|
/* f0980c8: 8e480680 */ lw $t0,0x680($s2)
|
|
/* f0980cc: ae40068c */ sw $zero,0x68c($s2)
|
|
.PB0f0980d0:
|
|
/* f0980d0: 8e480680 */ lw $t0,0x680($s2)
|
|
.PB0f0980d4:
|
|
/* f0980d4: 8e49068c */ lw $t1,0x68c($s2)
|
|
/* f0980d8: 29020000 */ slti $v0,$t0,0x0
|
|
/* f0980dc: 392a0002 */ xori $t2,$t1,0x2
|
|
/* f0980e0: 2d4a0001 */ sltiu $t2,$t2,0x1
|
|
/* f0980e4: 38420001 */ xori $v0,$v0,0x1
|
|
/* f0980e8: 01425825 */ or $t3,$t2,$v0
|
|
/* f0980ec: 516001d2 */ beqzl $t3,.PB0f098838
|
|
/* f0980f0: 8fbf004c */ lw $ra,0x4c($sp)
|
|
/* f0980f4: 44801000 */ mtc1 $zero,$f2
|
|
/* f0980f8: c64806d0 */ lwc1 $f8,0x6d0($s2)
|
|
/* f0980fc: 26540384 */ addiu $s4,$s2,0x384
|
|
/* f098100: 4608103c */ c.lt.s $f2,$f8
|
|
/* f098104: 00000000 */ nop
|
|
/* f098108: 45000006 */ bc1f .PB0f098124
|
|
/* f09810c: 00000000 */ nop
|
|
/* f098110: 8e480680 */ lw $t0,0x680($s2)
|
|
/* f098114: ae400684 */ sw $zero,0x684($s2)
|
|
/* f098118: e6420688 */ swc1 $f2,0x688($s2)
|
|
/* f09811c: 29020000 */ slti $v0,$t0,0x0
|
|
/* f098120: 38420001 */ xori $v0,$v0,0x1
|
|
.PB0f098124:
|
|
/* f098124: 5040005a */ beqzl $v0,.PB0f098290
|
|
/* f098128: 8e4d0690 */ lw $t5,0x690($s2)
|
|
/* f09812c: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f098130: 3c013f80 */ lui $at,0x3f80
|
|
/* f098134: 924d06d6 */ lbu $t5,0x6d6($s2)
|
|
/* f098138: 8c6c0004 */ lw $t4,0x4($v1)
|
|
/* f09813c: 44810000 */ mtc1 $at,$f0
|
|
/* f098140: 3c017f1b */ lui $at,0x7f1b
|
|
/* f098144: 448c5000 */ mtc1 $t4,$f10
|
|
/* f098148: c432dde8 */ lwc1 $f18,-0x2218($at)
|
|
/* f09814c: 31ae0001 */ andi $t6,$t5,0x1
|
|
/* f098150: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f098154: 3c0f800a */ lui $t7,0x800a
|
|
/* f098158: 11c0001a */ beqz $t6,.PB0f0981c4
|
|
/* f09815c: 46128503 */ div.s $f20,$f16,$f18
|
|
/* f098160: 8defe754 */ lw $t7,-0x18ac($t7)
|
|
/* f098164: 81f80de4 */ lb $t8,0xde4($t7)
|
|
/* f098168: 13000016 */ beqz $t8,.PB0f0981c4
|
|
/* f09816c: 00000000 */ nop
|
|
/* f098170: 0c004be0 */ jal random
|
|
/* f098174: 00000000 */ nop
|
|
/* f098178: 44822000 */ mtc1 $v0,$f4
|
|
/* f09817c: 3c014f80 */ lui $at,0x4f80
|
|
/* f098180: 04410004 */ bgez $v0,.PB0f098194
|
|
/* f098184: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f098188: 44814000 */ mtc1 $at,$f8
|
|
/* f09818c: 00000000 */ nop
|
|
/* f098190: 46083180 */ add.s $f6,$f6,$f8
|
|
.PB0f098194:
|
|
/* f098194: 3c012f80 */ lui $at,0x2f80
|
|
/* f098198: 44815000 */ mtc1 $at,$f10
|
|
/* f09819c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0981a0: c432ddec */ lwc1 $f18,-0x2214($at)
|
|
/* f0981a4: 460a3402 */ mul.s $f16,$f6,$f10
|
|
/* f0981a8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0981ac: c428ddf0 */ lwc1 $f8,-0x2210($at)
|
|
/* f0981b0: 44801000 */ mtc1 $zero,$f2
|
|
/* f0981b4: 8e480680 */ lw $t0,0x680($s2)
|
|
/* f0981b8: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f0981bc: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0981c0: 46082000 */ add.s $f0,$f4,$f8
|
|
.PB0f0981c4:
|
|
/* f0981c4: 10600018 */ beqz $v1,.PB0f098228
|
|
/* f0981c8: 02802025 */ move $a0,$s4
|
|
/* f0981cc: 4602a03c */ c.lt.s $f20,$f2
|
|
/* f0981d0: 00082c00 */ sll $a1,$t0,0x10
|
|
/* f0981d4: 0005cc03 */ sra $t9,$a1,0x10
|
|
/* f0981d8: 45000013 */ bc1f .PB0f098228
|
|
/* f0981dc: 00000000 */ nop
|
|
/* f0981e0: 46140182 */ mul.s $f6,$f0,$f20
|
|
/* f0981e4: 44071000 */ mfc1 $a3,$f2
|
|
/* f0981e8: 02802025 */ move $a0,$s4
|
|
/* f0981ec: 03202825 */ move $a1,$t9
|
|
/* f0981f0: 00003025 */ move $a2,$zero
|
|
/* f0981f4: e7a20014 */ swc1 $f2,0x14($sp)
|
|
/* f0981f8: 0c0079d7 */ jal modelSetAnimation
|
|
/* f0981fc: e7a60010 */ swc1 $f6,0x10($sp)
|
|
/* f098200: 0c00772a */ jal modelGetNumAnimFrames
|
|
/* f098204: 02802025 */ move $a0,$s4
|
|
/* f098208: 44825000 */ mtc1 $v0,$f10
|
|
/* f09820c: 02802025 */ move $a0,$s4
|
|
/* f098210: 468052a0 */ cvt.s.w $f10,$f10
|
|
/* f098214: 44055000 */ mfc1 $a1,$f10
|
|
/* f098218: 0c007aaa */ jal model0001e018
|
|
/* f09821c: 00000000 */ nop
|
|
/* f098220: 1000000b */ b .PB0f098250
|
|
/* f098224: 240affff */ li $t2,-1
|
|
.PB0f098228:
|
|
/* f098228: 46140402 */ mul.s $f16,$f0,$f20
|
|
/* f09822c: 00082c00 */ sll $a1,$t0,0x10
|
|
/* f098230: 00054c03 */ sra $t1,$a1,0x10
|
|
/* f098234: 44071000 */ mfc1 $a3,$f2
|
|
/* f098238: 01202825 */ move $a1,$t1
|
|
/* f09823c: 00003025 */ move $a2,$zero
|
|
/* f098240: e7a20014 */ swc1 $f2,0x14($sp)
|
|
/* f098244: 0c0079d7 */ jal modelSetAnimation
|
|
/* f098248: e7b00010 */ swc1 $f16,0x10($sp)
|
|
/* f09824c: 240affff */ li $t2,-1
|
|
.PB0f098250:
|
|
/* f098250: 240b0002 */ li $t3,0x2
|
|
/* f098254: ae4a0680 */ sw $t2,0x680($s2)
|
|
/* f098258: ae4b068c */ sw $t3,0x68c($s2)
|
|
/* f09825c: 0c007746 */ jal modelGetAbsAnimSpeed
|
|
/* f098260: 02802025 */ move $a0,$s4
|
|
/* f098264: 8e4c0684 */ lw $t4,0x684($s2)
|
|
/* f098268: 3c017f1b */ lui $at,0x7f1b
|
|
/* f09826c: c428ddf4 */ lwc1 $f8,-0x220c($at)
|
|
/* f098270: 448c9000 */ mtc1 $t4,$f18
|
|
/* f098274: 44801000 */ mtc1 $zero,$f2
|
|
/* f098278: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f09827c: 46082182 */ mul.s $f6,$f4,$f8
|
|
/* f098280: 00000000 */ nop
|
|
/* f098284: 46060282 */ mul.s $f10,$f0,$f6
|
|
/* f098288: e64a0688 */ swc1 $f10,0x688($s2)
|
|
/* f09828c: 8e4d0690 */ lw $t5,0x690($s2)
|
|
.PB0f098290:
|
|
/* f098290: 000d7840 */ sll $t7,$t5,0x1
|
|
/* f098294: 05e10003 */ bgez $t7,.PB0f0982a4
|
|
/* f098298: 00000000 */ nop
|
|
/* f09829c: ae400684 */ sw $zero,0x684($s2)
|
|
/* f0982a0: e6420688 */ swc1 $f2,0x688($s2)
|
|
.PB0f0982a4:
|
|
/* f0982a4: 0fc25ff3 */ jal bgun0f09815c
|
|
/* f0982a8: 02402025 */ move $a0,$s2
|
|
/* f0982ac: 44809000 */ mtc1 $zero,$f18
|
|
/* f0982b0: c6500688 */ lwc1 $f16,0x688($s2)
|
|
/* f0982b4: 46000506 */ mov.s $f20,$f0
|
|
/* f0982b8: 46120032 */ c.eq.s $f0,$f18
|
|
/* f0982bc: 46008380 */ add.s $f14,$f16,$f0
|
|
/* f0982c0: 4502000b */ bc1fl .PB0f0982f0
|
|
/* f0982c4: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f0982c8: 44802000 */ mtc1 $zero,$f4
|
|
/* f0982cc: 3c013f80 */ lui $at,0x3f80
|
|
/* f0982d0: 460e203c */ c.lt.s $f4,$f14
|
|
/* f0982d4: 00000000 */ nop
|
|
/* f0982d8: 45020005 */ bc1fl .PB0f0982f0
|
|
/* f0982dc: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f0982e0: 44814000 */ mtc1 $at,$f8
|
|
/* f0982e4: 00000000 */ nop
|
|
/* f0982e8: 46080501 */ sub.s $f20,$f0,$f8
|
|
/* f0982ec: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
.PB0f0982f0:
|
|
/* f0982f0: 106000d8 */ beqz $v1,.PB0f098654
|
|
/* f0982f4: 00608825 */ move $s1,$v1
|
|
/* f0982f8: 106000d6 */ beqz $v1,.PB0f098654
|
|
/* f0982fc: afa0014c */ sw $zero,0x14c($sp)
|
|
/* f098300: 00008025 */ move $s0,$zero
|
|
/* f098304: 24130001 */ li $s3,0x1
|
|
/* f098308: 92230000 */ lbu $v1,0x0($s1)
|
|
.PB0f09830c:
|
|
/* f09830c: 14600003 */ bnez $v1,.PB0f09831c
|
|
/* f098310: 00000000 */ nop
|
|
/* f098314: 100000b6 */ b .PB0f0985f0
|
|
/* f098318: afb3014c */ sw $s3,0x14c($sp)
|
|
.PB0f09831c:
|
|
/* f09831c: 12630003 */ beq $s3,$v1,.PB0f09832c
|
|
/* f098320: 24010002 */ li $at,0x2
|
|
/* f098324: 54610036 */ bnel $v1,$at,.PB0f098400
|
|
/* f098328: 24010003 */ li $at,0x3
|
|
.PB0f09832c:
|
|
/* f09832c: 96260002 */ lhu $a2,0x2($s1)
|
|
/* f098330: 3c014f80 */ lui $at,0x4f80
|
|
/* f098334: 2405ffff */ li $a1,-1
|
|
/* f098338: 44863000 */ mtc1 $a2,$f6
|
|
/* f09833c: 27ab0094 */ addiu $t3,$sp,0x94
|
|
/* f098340: 04c10004 */ bgez $a2,.PB0f098354
|
|
/* f098344: 468032a0 */ cvt.s.w $f10,$f6
|
|
/* f098348: 44818000 */ mtc1 $at,$f16
|
|
/* f09834c: 00000000 */ nop
|
|
/* f098350: 46105280 */ add.s $f10,$f10,$f16
|
|
.PB0f098354:
|
|
/* f098354: 460e503e */ c.le.s $f10,$f14
|
|
/* f098358: 2401ffff */ li $at,-1
|
|
/* f09835c: 450200a5 */ bc1fl .PB0f0985f4
|
|
/* f098360: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f098364: 1a00000a */ blez $s0,.PB0f098390
|
|
/* f098368: 00001025 */ move $v0,$zero
|
|
/* f09836c: 8e240004 */ lw $a0,0x4($s1)
|
|
/* f098370: 27a3010c */ addiu $v1,$sp,0x10c
|
|
.PB0f098374:
|
|
/* f098374: 8c780000 */ lw $t8,0x0($v1)
|
|
/* f098378: 54980003 */ bnel $a0,$t8,.PB0f098388
|
|
/* f09837c: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f098380: 00402825 */ move $a1,$v0
|
|
/* f098384: 24420001 */ addiu $v0,$v0,0x1
|
|
.PB0f098388:
|
|
/* f098388: 1450fffa */ bne $v0,$s0,.PB0f098374
|
|
/* f09838c: 24630004 */ addiu $v1,$v1,0x4
|
|
.PB0f098390:
|
|
/* f098390: 14a1000a */ bne $a1,$at,.PB0f0983bc
|
|
/* f098394: 2409ffff */ li $t1,-1
|
|
/* f098398: 8e240004 */ lw $a0,0x4($s1)
|
|
/* f09839c: 02002825 */ move $a1,$s0
|
|
/* f0983a0: 00051080 */ sll $v0,$a1,0x2
|
|
/* f0983a4: 03a2c821 */ addu $t9,$sp,$v0
|
|
/* f0983a8: 03a25021 */ addu $t2,$sp,$v0
|
|
/* f0983ac: af24010c */ sw $a0,0x10c($t9)
|
|
/* f0983b0: ad490094 */ sw $t1,0x94($t2)
|
|
/* f0983b4: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f0983b8: 96260002 */ lhu $a2,0x2($s1)
|
|
.PB0f0983bc:
|
|
/* f0983bc: 00051080 */ sll $v0,$a1,0x2
|
|
/* f0983c0: 004b1821 */ addu $v1,$v0,$t3
|
|
/* f0983c4: 8c6c0000 */ lw $t4,0x0($v1)
|
|
/* f0983c8: 0186082a */ slt $at,$t4,$a2
|
|
/* f0983cc: 50200089 */ beqzl $at,.PB0f0985f4
|
|
/* f0983d0: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f0983d4: ac660000 */ sw $a2,0x0($v1)
|
|
/* f0983d8: 922d0000 */ lbu $t5,0x0($s1)
|
|
/* f0983dc: 03a27821 */ addu $t7,$sp,$v0
|
|
/* f0983e0: 03a27021 */ addu $t6,$sp,$v0
|
|
/* f0983e4: 166d0003 */ bne $s3,$t5,.PB0f0983f4
|
|
/* f0983e8: 00000000 */ nop
|
|
/* f0983ec: 10000080 */ b .PB0f0985f0
|
|
/* f0983f0: add300d0 */ sw $s3,0xd0($t6)
|
|
.PB0f0983f4:
|
|
/* f0983f4: 1000007e */ b .PB0f0985f0
|
|
/* f0983f8: ade000d0 */ sw $zero,0xd0($t7)
|
|
/* f0983fc: 24010003 */ li $at,0x3
|
|
.PB0f098400:
|
|
/* f098400: 10610005 */ beq $v1,$at,.PB0f098418
|
|
/* f098404: 24010008 */ li $at,0x8
|
|
/* f098408: 50610049 */ beql $v1,$at,.PB0f098530
|
|
/* f09840c: 8e4e0690 */ lw $t6,0x690($s2)
|
|
/* f098410: 10000078 */ b .PB0f0985f4
|
|
/* f098414: 8fac014c */ lw $t4,0x14c($sp)
|
|
.PB0f098418:
|
|
/* f098418: 8e580690 */ lw $t8,0x690($s2)
|
|
/* f09841c: 0018cfc2 */ srl $t9,$t8,0x1f
|
|
/* f098420: 53200074 */ beqzl $t9,.PB0f0985f4
|
|
/* f098424: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f098428: 96290002 */ lhu $t1,0x2($s1)
|
|
/* f09842c: 3c014f80 */ lui $at,0x4f80
|
|
/* f098430: 44899000 */ mtc1 $t1,$f18
|
|
/* f098434: 05210004 */ bgez $t1,.PB0f098448
|
|
/* f098438: 468090a0 */ cvt.s.w $f2,$f18
|
|
/* f09843c: 44812000 */ mtc1 $at,$f4
|
|
/* f098440: 00000000 */ nop
|
|
/* f098444: 46041080 */ add.s $f2,$f2,$f4
|
|
.PB0f098448:
|
|
/* f098448: 460e103e */ c.le.s $f2,$f14
|
|
/* f09844c: 00000000 */ nop
|
|
/* f098450: 45020068 */ bc1fl .PB0f0985f4
|
|
/* f098454: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f098458: 4602a03c */ c.lt.s $f20,$f2
|
|
/* f09845c: 00000000 */ nop
|
|
/* f098460: 45020064 */ bc1fl .PB0f0985f4
|
|
/* f098464: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f098468: 460ea03c */ c.lt.s $f20,$f14
|
|
/* f09846c: 00000000 */ nop
|
|
/* f098470: 45020060 */ bc1fl .PB0f0985f4
|
|
/* f098474: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f098478: 0fc25ff3 */ jal bgun0f09815c
|
|
/* f09847c: 02402025 */ move $a0,$s2
|
|
/* f098480: 962a0002 */ lhu $t2,0x2($s1)
|
|
/* f098484: 3c014f80 */ lui $at,0x4f80
|
|
/* f098488: 02802025 */ move $a0,$s4
|
|
/* f09848c: 448a4000 */ mtc1 $t2,$f8
|
|
/* f098490: 05410004 */ bgez $t2,.PB0f0984a4
|
|
/* f098494: 468041a0 */ cvt.s.w $f6,$f8
|
|
/* f098498: 44818000 */ mtc1 $at,$f16
|
|
/* f09849c: 00000000 */ nop
|
|
/* f0984a0: 46103180 */ add.s $f6,$f6,$f16
|
|
.PB0f0984a4:
|
|
/* f0984a4: 46003081 */ sub.s $f2,$f6,$f0
|
|
/* f0984a8: 3c014000 */ lui $at,0x4000
|
|
/* f0984ac: 44815000 */ mtc1 $at,$f10
|
|
/* f0984b0: c64c0688 */ lwc1 $f12,0x688($s2)
|
|
/* f0984b4: 460a1083 */ div.s $f2,$f2,$f10
|
|
/* f0984b8: 460c103c */ c.lt.s $f2,$f12
|
|
/* f0984bc: 00000000 */ nop
|
|
/* f0984c0: 45000018 */ bc1f .PB0f098524
|
|
/* f0984c4: 00000000 */ nop
|
|
/* f0984c8: 0c007746 */ jal modelGetAbsAnimSpeed
|
|
/* f0984cc: e7a20084 */ swc1 $f2,0x84($sp)
|
|
/* f0984d0: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0984d4: c432ddf8 */ lwc1 $f18,-0x2208($at)
|
|
/* f0984d8: c7a20084 */ lwc1 $f2,0x84($sp)
|
|
/* f0984dc: 02802025 */ move $a0,$s4
|
|
/* f0984e0: 46121102 */ mul.s $f4,$f2,$f18
|
|
/* f0984e4: 46002203 */ div.s $f8,$f4,$f0
|
|
/* f0984e8: 4600440d */ trunc.w.s $f16,$f8
|
|
/* f0984ec: 440c8000 */ mfc1 $t4,$f16
|
|
/* f0984f0: 0c007746 */ jal modelGetAbsAnimSpeed
|
|
/* f0984f4: ae4c0684 */ sw $t4,0x684($s2)
|
|
/* f0984f8: 8e4d0684 */ lw $t5,0x684($s2)
|
|
/* f0984fc: 3c017f1b */ lui $at,0x7f1b
|
|
/* f098500: c432ddfc */ lwc1 $f18,-0x2204($at)
|
|
/* f098504: 448d3000 */ mtc1 $t5,$f6
|
|
/* f098508: 00000000 */ nop
|
|
/* f09850c: 468032a0 */ cvt.s.w $f10,$f6
|
|
/* f098510: 46125102 */ mul.s $f4,$f10,$f18
|
|
/* f098514: 00000000 */ nop
|
|
/* f098518: 46040202 */ mul.s $f8,$f0,$f4
|
|
/* f09851c: e6480688 */ swc1 $f8,0x688($s2)
|
|
/* f098520: c64c0688 */ lwc1 $f12,0x688($s2)
|
|
.PB0f098524:
|
|
/* f098524: 10000032 */ b .PB0f0985f0
|
|
/* f098528: 46146380 */ add.s $f14,$f12,$f20
|
|
/* f09852c: 8e4e0690 */ lw $t6,0x690($s2)
|
|
.PB0f098530:
|
|
/* f098530: 000ec080 */ sll $t8,$t6,0x2
|
|
/* f098534: 0703002f */ bgezl $t8,.PB0f0985f4
|
|
/* f098538: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f09853c: 96260002 */ lhu $a2,0x2($s1)
|
|
/* f098540: 3c014f80 */ lui $at,0x4f80
|
|
/* f098544: 44868000 */ mtc1 $a2,$f16
|
|
/* f098548: 04c10004 */ bgez $a2,.PB0f09855c
|
|
/* f09854c: 468080a0 */ cvt.s.w $f2,$f16
|
|
/* f098550: 44813000 */ mtc1 $at,$f6
|
|
/* f098554: 00000000 */ nop
|
|
/* f098558: 46061080 */ add.s $f2,$f2,$f6
|
|
.PB0f09855c:
|
|
/* f09855c: 460e103e */ c.le.s $f2,$f14
|
|
/* f098560: 00000000 */ nop
|
|
/* f098564: 45020023 */ bc1fl .PB0f0985f4
|
|
/* f098568: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f09856c: 4602a03c */ c.lt.s $f20,$f2
|
|
/* f098570: 00000000 */ nop
|
|
/* f098574: 4502001f */ bc1fl .PB0f0985f4
|
|
/* f098578: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f09857c: 460ea03c */ c.lt.s $f20,$f14
|
|
/* f098580: 02802025 */ move $a0,$s4
|
|
/* f098584: 4502001b */ bc1fl .PB0f0985f4
|
|
/* f098588: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f09858c: 460e103e */ c.le.s $f2,$f14
|
|
/* f098590: 44809000 */ mtc1 $zero,$f18
|
|
/* f098594: 46007006 */ mov.s $f0,$f14
|
|
/* f098598: 4502000c */ bc1fl .PB0f0985cc
|
|
/* f09859c: ae400684 */ sw $zero,0x684($s2)
|
|
/* f0985a0: 8e390004 */ lw $t9,0x4($s1)
|
|
/* f0985a4: 03264823 */ subu $t1,$t9,$a2
|
|
/* f0985a8: 44895000 */ mtc1 $t1,$f10
|
|
/* f0985ac: 00000000 */ nop
|
|
/* f0985b0: 46805320 */ cvt.s.w $f12,$f10
|
|
/* f0985b4: 460c0000 */ add.s $f0,$f0,$f12
|
|
.PB0f0985b8:
|
|
/* f0985b8: 4600103e */ c.le.s $f2,$f0
|
|
/* f0985bc: 00000000 */ nop
|
|
/* f0985c0: 4503fffd */ bc1tl .PB0f0985b8
|
|
/* f0985c4: 460c0000 */ add.s $f0,$f0,$f12
|
|
/* f0985c8: ae400684 */ sw $zero,0x684($s2)
|
|
.PB0f0985cc:
|
|
/* f0985cc: e6520688 */ swc1 $f18,0x688($s2)
|
|
/* f0985d0: 44050000 */ mfc1 $a1,$f0
|
|
/* f0985d4: 46000506 */ mov.s $f20,$f0
|
|
/* f0985d8: 0c007aaa */ jal model0001e018
|
|
/* f0985dc: e7a00080 */ swc1 $f0,0x80($sp)
|
|
/* f0985e0: 924a0691 */ lbu $t2,0x691($s2)
|
|
/* f0985e4: c7ae0080 */ lwc1 $f14,0x80($sp)
|
|
/* f0985e8: 254b0001 */ addiu $t3,$t2,0x1
|
|
/* f0985ec: a24b0691 */ sb $t3,0x691($s2)
|
|
.PB0f0985f0:
|
|
/* f0985f0: 8fac014c */ lw $t4,0x14c($sp)
|
|
.PB0f0985f4:
|
|
/* f0985f4: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0985f8: 5180ff44 */ beqzl $t4,.PB0f09830c
|
|
/* f0985fc: 92230000 */ lbu $v1,0x0($s1)
|
|
/* f098600: 5a000015 */ blezl $s0,.PB0f098658
|
|
/* f098604: 3c054099 */ lui $a1,0x4099
|
|
/* f098608: 1a000012 */ blez $s0,.PB0f098654
|
|
/* f09860c: 00001025 */ move $v0,$zero
|
|
/* f098610: 27a3010c */ addiu $v1,$sp,0x10c
|
|
/* f098614: 27a800d0 */ addiu $t0,$sp,0xd0
|
|
.PB0f098618:
|
|
/* f098618: 84640002 */ lh $a0,0x2($v1)
|
|
/* f09861c: 8d050000 */ lw $a1,0x0($t0)
|
|
/* f098620: afa80058 */ sw $t0,0x58($sp)
|
|
/* f098624: afa3005c */ sw $v1,0x5c($sp)
|
|
/* f098628: afa2007c */ sw $v0,0x7c($sp)
|
|
/* f09862c: 02403025 */ move $a2,$s2
|
|
/* f098630: 0fc25f39 */ jal bgunSetPartVisible
|
|
/* f098634: 8fa70164 */ lw $a3,0x164($sp)
|
|
/* f098638: 8fa2007c */ lw $v0,0x7c($sp)
|
|
/* f09863c: 8fa3005c */ lw $v1,0x5c($sp)
|
|
/* f098640: 8fa80058 */ lw $t0,0x58($sp)
|
|
/* f098644: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f098648: 24630004 */ addiu $v1,$v1,0x4
|
|
/* f09864c: 1450fff2 */ bne $v0,$s0,.PB0f098618
|
|
/* f098650: 25080004 */ addiu $t0,$t0,0x4
|
|
.PB0f098654:
|
|
/* f098654: 3c054099 */ lui $a1,0x4099
|
|
.PB0f098658:
|
|
/* f098658: 34a5999a */ ori $a1,$a1,0x999a
|
|
/* f09865c: 02802025 */ move $a0,$s4
|
|
/* f098660: 0c007a8f */ jal modelSetAnimPlaySpeed
|
|
/* f098664: 24060000 */ li $a2,0x0
|
|
/* f098668: 02802025 */ move $a0,$s4
|
|
/* f09866c: 8e450684 */ lw $a1,0x684($s2)
|
|
/* f098670: 0c007e2a */ jal model0001ee18
|
|
/* f098674: 24060001 */ li $a2,0x1
|
|
/* f098678: 0fc25ff3 */ jal bgun0f09815c
|
|
/* f09867c: 02402025 */ move $a0,$s2
|
|
/* f098680: 8e4306b0 */ lw $v1,0x6b0($s2)
|
|
/* f098684: 46000386 */ mov.s $f14,$f0
|
|
/* f098688: 00004025 */ move $t0,$zero
|
|
/* f09868c: 10600069 */ beqz $v1,.PB0f098834
|
|
/* f098690: 00608025 */ move $s0,$v1
|
|
/* f098694: 3c013f80 */ lui $at,0x3f80
|
|
/* f098698: 44812000 */ mtc1 $at,$f4
|
|
/* f09869c: 00008825 */ move $s1,$zero
|
|
/* f0986a0: 10600064 */ beqz $v1,.PB0f098834
|
|
/* f0986a4: e7a40070 */ swc1 $f4,0x70($sp)
|
|
/* f0986a8: 24140009 */ li $s4,0x9
|
|
/* f0986ac: 24130005 */ li $s3,0x5
|
|
.PB0f0986b0:
|
|
/* f0986b0: 92030000 */ lbu $v1,0x0($s0)
|
|
/* f0986b4: 54600004 */ bnezl $v1,.PB0f0986c8
|
|
/* f0986b8: 960d0002 */ lhu $t5,0x2($s0)
|
|
/* f0986bc: 1000005b */ b .PB0f09882c
|
|
/* f0986c0: 24080001 */ li $t0,0x1
|
|
/* f0986c4: 960d0002 */ lhu $t5,0x2($s0)
|
|
.PB0f0986c8:
|
|
/* f0986c8: 3c014f80 */ lui $at,0x4f80
|
|
/* f0986cc: 448d4000 */ mtc1 $t5,$f8
|
|
/* f0986d0: 05a10004 */ bgez $t5,.PB0f0986e4
|
|
/* f0986d4: 46804020 */ cvt.s.w $f0,$f8
|
|
/* f0986d8: 44818000 */ mtc1 $at,$f16
|
|
/* f0986dc: 00000000 */ nop
|
|
/* f0986e0: 46100000 */ add.s $f0,$f0,$f16
|
|
.PB0f0986e4:
|
|
/* f0986e4: 460e003e */ c.le.s $f0,$f14
|
|
/* f0986e8: 00000000 */ nop
|
|
/* f0986ec: 4500004f */ bc1f .PB0f09882c
|
|
/* f0986f0: 00000000 */ nop
|
|
/* f0986f4: 4600a03c */ c.lt.s $f20,$f0
|
|
/* f0986f8: 00000000 */ nop
|
|
/* f0986fc: 4500004b */ bc1f .PB0f09882c
|
|
/* f098700: 00000000 */ nop
|
|
/* f098704: 460ea03c */ c.lt.s $f20,$f14
|
|
/* f098708: 00000000 */ nop
|
|
/* f09870c: 45000047 */ bc1f .PB0f09882c
|
|
/* f098710: 00000000 */ nop
|
|
/* f098714: 10730007 */ beq $v1,$s3,.PB0f098734
|
|
/* f098718: 00000000 */ nop
|
|
/* f09871c: 10740039 */ beq $v1,$s4,.PB0f098804
|
|
/* f098720: 2401000b */ li $at,0xb
|
|
/* f098724: 5061002f */ beql $v1,$at,.PB0f0987e4
|
|
/* f098728: 8e0d0004 */ lw $t5,0x4($s0)
|
|
/* f09872c: 1000003f */ b .PB0f09882c
|
|
/* f098730: 00000000 */ nop
|
|
.PB0f098734:
|
|
/* f098734: 12200016 */ beqz $s1,.PB0f098790
|
|
/* f098738: 00002025 */ move $a0,$zero
|
|
/* f09873c: 8e0e0004 */ lw $t6,0x4($s0)
|
|
/* f098740: c7a60070 */ lwc1 $f6,0x70($sp)
|
|
/* f098744: 240f0001 */ li $t7,0x1
|
|
/* f098748: 2418ffff */ li $t8,-1
|
|
/* f09874c: 24190001 */ li $t9,0x1
|
|
/* f098750: afb90020 */ sw $t9,0x20($sp)
|
|
/* f098754: afb8001c */ sw $t8,0x1c($sp)
|
|
/* f098758: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f09875c: e7ae0158 */ swc1 $f14,0x158($sp)
|
|
/* f098760: afa80078 */ sw $t0,0x78($sp)
|
|
/* f098764: 00002025 */ move $a0,$zero
|
|
/* f098768: 00002825 */ move $a1,$zero
|
|
/* f09876c: 24067fff */ li $a2,0x7fff
|
|
/* f098770: 24070040 */ li $a3,0x40
|
|
/* f098774: 00008825 */ move $s1,$zero
|
|
/* f098778: afae0010 */ sw $t6,0x10($sp)
|
|
/* f09877c: 0c0041d9 */ jal snd00010718
|
|
/* f098780: e7a60014 */ swc1 $f6,0x14($sp)
|
|
/* f098784: 8fa80078 */ lw $t0,0x78($sp)
|
|
/* f098788: 10000028 */ b .PB0f09882c
|
|
/* f09878c: c7ae0158 */ lwc1 $f14,0x158($sp)
|
|
.PB0f098790:
|
|
/* f098790: 8e090004 */ lw $t1,0x4($s0)
|
|
/* f098794: 3c013f80 */ lui $at,0x3f80
|
|
/* f098798: 44815000 */ mtc1 $at,$f10
|
|
/* f09879c: 240a0001 */ li $t2,0x1
|
|
/* f0987a0: 240bffff */ li $t3,-1
|
|
/* f0987a4: 240c0001 */ li $t4,0x1
|
|
/* f0987a8: afac0020 */ sw $t4,0x20($sp)
|
|
/* f0987ac: afab001c */ sw $t3,0x1c($sp)
|
|
/* f0987b0: afaa0018 */ sw $t2,0x18($sp)
|
|
/* f0987b4: e7ae0158 */ swc1 $f14,0x158($sp)
|
|
/* f0987b8: afa80078 */ sw $t0,0x78($sp)
|
|
/* f0987bc: 00002825 */ move $a1,$zero
|
|
/* f0987c0: 24067fff */ li $a2,0x7fff
|
|
/* f0987c4: 24070040 */ li $a3,0x40
|
|
/* f0987c8: afa90010 */ sw $t1,0x10($sp)
|
|
/* f0987cc: 0c0041d9 */ jal snd00010718
|
|
/* f0987d0: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f0987d4: 8fa80078 */ lw $t0,0x78($sp)
|
|
/* f0987d8: 10000014 */ b .PB0f09882c
|
|
/* f0987dc: c7ae0158 */ lwc1 $f14,0x158($sp)
|
|
/* f0987e0: 8e0d0004 */ lw $t5,0x4($s0)
|
|
.PB0f0987e4:
|
|
/* f0987e4: 3c01447a */ lui $at,0x447a
|
|
/* f0987e8: 44814000 */ mtc1 $at,$f8
|
|
/* f0987ec: 448d9000 */ mtc1 $t5,$f18
|
|
/* f0987f0: 24110001 */ li $s1,0x1
|
|
/* f0987f4: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f0987f8: 46082403 */ div.s $f16,$f4,$f8
|
|
/* f0987fc: 1000000b */ b .PB0f09882c
|
|
/* f098800: e7b00070 */ swc1 $f16,0x70($sp)
|
|
.PB0f098804:
|
|
/* f098804: 8e4e0690 */ lw $t6,0x690($s2)
|
|
/* f098808: 924b0690 */ lbu $t3,0x690($s2)
|
|
/* f09880c: 000e78c0 */ sll $t7,$t6,0x3
|
|
/* f098810: 000fc742 */ srl $t8,$t7,0x1d
|
|
/* f098814: 27190001 */ addiu $t9,$t8,0x1
|
|
/* f098818: 00194880 */ sll $t1,$t9,0x2
|
|
/* f09881c: 312a001c */ andi $t2,$t1,0x1c
|
|
/* f098820: 316cffe3 */ andi $t4,$t3,0xffe3
|
|
/* f098824: 014c6825 */ or $t5,$t2,$t4
|
|
/* f098828: a24d0690 */ sb $t5,0x690($s2)
|
|
.PB0f09882c:
|
|
/* f09882c: 1100ffa0 */ beqz $t0,.PB0f0986b0
|
|
/* f098830: 26100008 */ addiu $s0,$s0,0x8
|
|
.PB0f098834:
|
|
/* f098834: 8fbf004c */ lw $ra,0x4c($sp)
|
|
.PB0f098838:
|
|
/* f098838: d7b40030 */ ldc1 $f20,0x30($sp)
|
|
/* f09883c: 8fb00038 */ lw $s0,0x38($sp)
|
|
/* f098840: 8fb1003c */ lw $s1,0x3c($sp)
|
|
/* f098844: 8fb20040 */ lw $s2,0x40($sp)
|
|
/* f098848: 8fb30044 */ lw $s3,0x44($sp)
|
|
/* f09884c: 8fb40048 */ lw $s4,0x48($sp)
|
|
/* f098850: 03e00008 */ jr $ra
|
|
/* f098854: 27bd0160 */ addiu $sp,$sp,0x160
|
|
);
|
|
#else
|
|
void bgun0f0981e8(struct hand *hand, struct modelfiledata *modeldef)
|
|
{
|
|
s32 s0;
|
|
s32 index;
|
|
struct guncmd *cmd;
|
|
f32 animspeed;
|
|
bool done;
|
|
s32 s4;
|
|
s32 partnums[15];
|
|
bool partsvisible[15];
|
|
s32 partframes[15];
|
|
s32 s2;
|
|
f32 animspeedmult;
|
|
s32 tmp;
|
|
s32 i;
|
|
s32 sp78;
|
|
|
|
hand->unk0cc8_04 = false;
|
|
|
|
if (hand->animmode == HANDANIMMODE_BUSY && bgun0f09815c(hand) >= modelGetNumAnimFrames(&hand->gunmodel) - 1) {
|
|
hand->animmode = HANDANIMMODE_IDLE;
|
|
}
|
|
|
|
// This condition looks like a bug (using | instead of ||), but it happens
|
|
// to make no difference anyway. Brackets added for clarity.
|
|
if ((hand->animmode == (u32)HANDANIMMODE_BUSY) | (hand->animload >= 0)) {
|
|
if (hand->gangstarot > 0.0f) {
|
|
hand->animframeinc = 0;
|
|
}
|
|
|
|
if (hand->animload >= 0) {
|
|
animspeedmult = 1.0f;
|
|
animspeed = hand->unk0ce8->unk04 / 10000.0f;
|
|
|
|
if (hand->unk0d0e_07 && g_Vars.currentplayer->hands[HAND_LEFT].inuse) {
|
|
animspeedmult = RANDOMFRAC() * 0.77f + 0.7f;
|
|
}
|
|
|
|
if (hand->unk0ce8 && animspeed < 0.0f) {
|
|
modelSetAnimation(&hand->gunmodel, hand->animload, false, 0.0f, animspeedmult * animspeed, 0.0f);
|
|
model0001e018(&hand->gunmodel, modelGetNumAnimFrames(&hand->gunmodel));
|
|
} else {
|
|
modelSetAnimation(&hand->gunmodel, hand->animload, false, 0.0f, animspeedmult * animspeed, 0.0f);
|
|
}
|
|
|
|
hand->animload = -1;
|
|
hand->animmode = HANDANIMMODE_BUSY;
|
|
}
|
|
|
|
if (hand->unk0cc8_02) {
|
|
hand->animframeinc = 0;
|
|
}
|
|
|
|
s4 = bgun0f09815c(hand);
|
|
s2 = hand->animframeinc + s4;
|
|
done = false;
|
|
|
|
if (s4 == 0 && s2 > 0) {
|
|
s4--;
|
|
}
|
|
|
|
if (hand->unk0ce8) {
|
|
cmd = hand->unk0ce8;
|
|
|
|
if (cmd) {
|
|
s0 = 0;
|
|
|
|
do {
|
|
if (cmd->type == GUNCMD_END) {
|
|
done = true;
|
|
} else if (cmd->type == GUNCMD_SHOWPART || cmd->type == GUNCMD_HIDEPART) {
|
|
if (s2 >= cmd->unk02) {
|
|
index = -1;
|
|
|
|
for (i = 0; i < s0; i++) {
|
|
if (cmd->unk04 == partnums[i]) {
|
|
index = i;
|
|
}
|
|
}
|
|
|
|
if (index == -1) {
|
|
index = s0;
|
|
s0++;
|
|
|
|
if (1);
|
|
|
|
partnums[index] = cmd->unk04;
|
|
partframes[index] = -1;
|
|
}
|
|
|
|
if (cmd->unk02 > partframes[index]) {
|
|
partframes[index] = cmd->unk02;
|
|
partsvisible[index] = cmd->type == GUNCMD_SHOWPART ? true : false;
|
|
}
|
|
}
|
|
} else {
|
|
switch (cmd->type) {
|
|
case GUNCMD_WAITFORZRELEASED:
|
|
if (hand->unk0cc8_01) {
|
|
if (s2 >= cmd->unk02 && s4 < cmd->unk02 && s4 < s2) {
|
|
tmp = cmd->unk02 - (s32)bgun0f09815c(hand);
|
|
tmp /= 2;
|
|
|
|
if (hand->animframeinc > tmp) {
|
|
hand->animframeinc = tmp;
|
|
}
|
|
|
|
s2 = hand->animframeinc + s4;
|
|
}
|
|
}
|
|
break;
|
|
case GUNCMD_REPEATUNTILFULL:
|
|
if (hand->unk0cc8_03 && s2 >= cmd->unk02 && s4 < cmd->unk02 && s4 < s2) {
|
|
sp78 = cmd->unk04 + ((s2 - cmd->unk02) % ((cmd->unk02 - cmd->unk04) + 1));
|
|
s4 = sp78;
|
|
hand->animframeinc = 0;
|
|
model0001e018(&hand->gunmodel, sp78);
|
|
hand->animloopcount++;
|
|
s2 = sp78;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
cmd++;
|
|
} while (!done);
|
|
|
|
if (s0 > 0) {
|
|
s32 i;
|
|
|
|
for (i = 0; i < s0; i++) {
|
|
bgunSetPartVisible(partnums[i], partsvisible[i], hand, modeldef);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
model0001f314(&hand->gunmodel, hand->animframeinc, true);
|
|
|
|
s2 = bgun0f09815c(hand);
|
|
|
|
if (hand->unk0ce8) {
|
|
bool done = false;
|
|
struct guncmd *cmd = hand->unk0ce8;
|
|
f32 speed = 1.0f;
|
|
bool hasspeed = false;
|
|
#if VERSION < VERSION_NTSC_1_0
|
|
struct sndstate *audiohandle;
|
|
#endif
|
|
|
|
if (cmd) {
|
|
do {
|
|
if (cmd->type == GUNCMD_END) {
|
|
done = true;
|
|
} else {
|
|
tmp = cmd->unk02;
|
|
|
|
if (s2 >= tmp && s4 < tmp && s4 < s2) {
|
|
switch (cmd->type) {
|
|
case GUNCMD_PLAYSOUND:
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
if (hasspeed) {
|
|
snd00010718(0, 0, 0x7fff, 0x40, cmd->unk04, speed, 1, -1, 1);
|
|
hasspeed = false;
|
|
} else {
|
|
snd00010718(0, 0, 0x7fff, 0x40, cmd->unk04, 1.0f, 1, -1, 1);
|
|
}
|
|
#else
|
|
audiohandle = sndStart(var80095200, cmd->unk04, NULL, -1, -1, -1, -1, -1);
|
|
|
|
if (hasspeed && audiohandle) {
|
|
hasspeed = false;
|
|
audioPostEvent(audiohandle, 16, *(s32 *)&speed);
|
|
}
|
|
#endif
|
|
break;
|
|
case GUNCMD_SETSOUNDSPEED:
|
|
speed = cmd->unk04 / 1000.0f;
|
|
hasspeed = true;
|
|
break;
|
|
case GUNCMD_POPOUTSACKOFPILLS:
|
|
hand->unk0cc8_04++;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
cmd++;
|
|
} while (!done);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
|
|
bool bgun0f098884(struct guncmd *cmd, struct gset *gset)
|
|
{
|
|
s32 result = false;
|
|
|
|
if (cmd->unk01 == 0) {
|
|
return true;
|
|
}
|
|
|
|
if (cmd->unk01 == 1 && g_Vars.currentplayer->hands[HAND_LEFT].inuse == true) {
|
|
result = true;
|
|
}
|
|
|
|
if (cmd->unk01 == 2 && gset->weaponfunc == FUNC_SECONDARY) {
|
|
result = true;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
void bgunStartAnimation(struct guncmd *cmd, s32 handnum, struct hand *hand)
|
|
{
|
|
if (cmd->type != GUNCMD_PLAYANIMATION) {
|
|
struct guncmd *loopcmd = cmd;
|
|
s32 done = false;
|
|
u32 rand = random() % 100;
|
|
|
|
while (loopcmd->type != GUNCMD_END) {
|
|
if (bgun0f098884(loopcmd, &hand->gset) && !done) {
|
|
if (loopcmd->type == GUNCMD_INCLUDE) {
|
|
done = true;
|
|
bgunStartAnimation((struct guncmd *)loopcmd->unk04, handnum, hand);
|
|
} else if (loopcmd->type == GUNCMD_RANDOM) {
|
|
if ((struct guncmd *)loopcmd->unk04 != hand->unk0d80 && loopcmd->unk02 > rand) {
|
|
done = true;
|
|
bgunStartAnimation((struct guncmd *)loopcmd->unk04, handnum, hand);
|
|
}
|
|
}
|
|
}
|
|
|
|
loopcmd++;
|
|
}
|
|
} else {
|
|
hand->animload = cmd->unk02;
|
|
hand->animmode = HANDANIMMODE_IDLE;
|
|
hand->unk0cc8_01 = 0;
|
|
hand->unk0cc8_03 = 0;
|
|
hand->unk0ce8 = cmd;
|
|
hand->animloopcount = 0;
|
|
hand->unk0cc8_02 = 0;
|
|
hand->unk0d0e_07 = false;
|
|
hand->unk0d80 = cmd;
|
|
}
|
|
}
|
|
|
|
bool bgun0f098a44(struct hand *hand, s32 time)
|
|
{
|
|
struct guncmd *cmd = hand->unk0ce8;
|
|
s32 waittimekeyframe = -1;
|
|
s32 zreleasekeyframe = -1;
|
|
|
|
if (hand->animmode == HANDANIMMODE_IDLE) {
|
|
return (hand->animload == -1);
|
|
}
|
|
|
|
while (cmd->type != GUNCMD_END && waittimekeyframe == -1) {
|
|
if (cmd->type == GUNCMD_WAITFORZRELEASED) {
|
|
zreleasekeyframe = cmd->unk02;
|
|
}
|
|
|
|
if (cmd->type == GUNCMD_WAITTIME && time == cmd->unk04) {
|
|
waittimekeyframe = cmd->unk02;
|
|
}
|
|
|
|
cmd++;
|
|
}
|
|
|
|
if (waittimekeyframe >= 0) {
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
if (hand->unk0cc8_01 && bgun0f09815c(hand) <= zreleasekeyframe) {
|
|
return false;
|
|
}
|
|
|
|
return (bgun0f09815c(hand) + hand->animframeincfreal >= waittimekeyframe);
|
|
#else
|
|
if (hand->unk0cc8_01 && (s32)bgun0f09815c(hand) <= zreleasekeyframe) {
|
|
return false;
|
|
}
|
|
|
|
return (bgun0f09815c(hand) + hand->animframeinc >= waittimekeyframe);
|
|
#endif
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
s32 bgun0f098b80(struct hand *hand, s32 arg1)
|
|
{
|
|
struct guncmd *cmd = hand->unk0ce8;
|
|
s32 keyframe = -1;
|
|
|
|
if (hand->animmode == HANDANIMMODE_IDLE) {
|
|
return 0;
|
|
}
|
|
|
|
while (cmd->type != GUNCMD_END && keyframe == -1) {
|
|
if (cmd->type == GUNCMD_WAITTIME) {
|
|
if (cmd->unk04 == arg1) {
|
|
keyframe = cmd->unk02;
|
|
}
|
|
}
|
|
|
|
cmd++;
|
|
}
|
|
|
|
if (keyframe == -1) {
|
|
keyframe = 0;
|
|
}
|
|
|
|
return keyframe;
|
|
}
|
|
|
|
bool bgunIsAnimBusy(struct hand *hand)
|
|
{
|
|
return hand->animmode != HANDANIMMODE_IDLE;
|
|
}
|
|
|
|
void bgunResetAnim(struct hand *hand)
|
|
{
|
|
hand->animload = -1;
|
|
hand->animmode = HANDANIMMODE_IDLE;
|
|
hand->unk0cc8_01 = false;
|
|
hand->unk0cc8_03 = false;
|
|
hand->unk0ce8 = NULL;
|
|
hand->animloopcount = 0;
|
|
hand->unk0cc8_02 = false;
|
|
hand->unk0d0e_07 = false;
|
|
}
|
|
|
|
void bgunGetWeaponInfo(struct handweaponinfo *info, s32 handnum)
|
|
{
|
|
s32 weaponnum = bgunGetWeaponNum2(handnum);
|
|
|
|
info->weaponnum = weaponnum;
|
|
info->definition = g_Weapons[weaponnum];
|
|
info->gunctrl = &g_Vars.currentplayer->gunctrl;
|
|
}
|
|
|
|
/**
|
|
* Return values:
|
|
* -1 = gun function doesn't exist or ammo fully depleted
|
|
* 0 = trigger reload
|
|
* 1 = has ammo in clip and ammo in reserve
|
|
* 2 = has ammo in clip but none in reserve
|
|
* 3 = gun doesn't use ammo or clip is full
|
|
*/
|
|
s32 bgun0f098ca0(s32 funcnum, struct handweaponinfo *info, struct hand *hand)
|
|
{
|
|
s32 result = 3;
|
|
struct weaponfunc *func = weaponGetFunction(&hand->gset, funcnum);
|
|
|
|
if (!func) {
|
|
return -1;
|
|
}
|
|
|
|
if (func->ammoindex != -1) {
|
|
s32 ammoindex = func->ammoindex;
|
|
|
|
if (info->gunctrl->ammotypes[ammoindex] >= 0
|
|
&& hand->loadedammo[ammoindex] < hand->clipsizes[ammoindex]) {
|
|
s32 minqty = 1;
|
|
|
|
if (info->weaponnum == WEAPON_SHOTGUN && funcnum == FUNC_SECONDARY) {
|
|
minqty = 2;
|
|
}
|
|
|
|
if (info->weaponnum == WEAPON_TRANQUILIZER && funcnum == FUNC_SECONDARY) {
|
|
minqty = bgunGetMinClipQty(WEAPON_TRANQUILIZER, FUNC_SECONDARY);
|
|
}
|
|
|
|
result = 1;
|
|
|
|
if (hand->loadedammo[ammoindex] < minqty) {
|
|
result = 0;
|
|
|
|
if (g_Vars.currentplayer->ammoheldarr[info->gunctrl->ammotypes[ammoindex]] == 0) {
|
|
result = -1;
|
|
}
|
|
} else {
|
|
if (g_Vars.currentplayer->ammoheldarr[info->gunctrl->ammotypes[ammoindex]] == 0) {
|
|
result = 2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
void bgun0f098df8(s32 weaponfunc, struct handweaponinfo *info, struct hand *hand, u8 onebullet, u8 checkunequipped)
|
|
{
|
|
struct weaponfunc *func = weaponGetFunction(&hand->gset, weaponfunc);
|
|
|
|
if (func && func->ammoindex != -1) {
|
|
s32 ammoindex = func->ammoindex;
|
|
|
|
if (info->gunctrl->ammotypes[ammoindex] >= 0) {
|
|
s32 amount = hand->clipsizes[ammoindex] - hand->loadedammo[ammoindex];
|
|
|
|
s32 reloadindex = bgunGetUnequippedReloadIndex(info->weaponnum);
|
|
|
|
if (g_FrIsValidWeapon) {
|
|
reloadindex = -1;
|
|
}
|
|
|
|
if (checkunequipped && reloadindex >= 0) {
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
amount -= hand->gunroundsspent[reloadindex] / TICKS(256);
|
|
#else
|
|
amount -= hand->gunroundsspent[reloadindex] >> 8;
|
|
#endif
|
|
}
|
|
|
|
if (onebullet) {
|
|
amount = 1;
|
|
}
|
|
|
|
if (amount > g_Vars.currentplayer->ammoheldarr[info->gunctrl->ammotypes[ammoindex]]) {
|
|
amount = g_Vars.currentplayer->ammoheldarr[info->gunctrl->ammotypes[ammoindex]];
|
|
}
|
|
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
// In most versions of the game, reloading the shotgun while going
|
|
// through a teleport in Deep Sea will cause the shotgun to load
|
|
// more ammo than its capacity. JPN Final fixes this here.
|
|
if (amount > hand->clipsizes[ammoindex] - hand->loadedammo[ammoindex]) {
|
|
amount = hand->clipsizes[ammoindex] - hand->loadedammo[ammoindex];
|
|
}
|
|
#endif
|
|
|
|
hand->loadedammo[ammoindex] += amount;
|
|
g_Vars.currentplayer->ammoheldarr[info->gunctrl->ammotypes[ammoindex]] -= amount;
|
|
|
|
if (info->definition->ammos[ammoindex]->flags & AMMOFLAG_NORESERVE) {
|
|
g_Vars.currentplayer->ammoheldarr[info->gunctrl->ammotypes[ammoindex]] = 0;
|
|
}
|
|
|
|
if (func);
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgun0f098f8c(struct handweaponinfo *info, struct hand *hand)
|
|
{
|
|
s32 i;
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
if (weaponGetFunction(&hand->gset, i)) {
|
|
bgun0f098df8(i, info, hand, 0, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
bool bgun0f099008(s32 handnum)
|
|
{
|
|
struct handweaponinfo info;
|
|
|
|
bgunGetWeaponInfo(&info, handnum);
|
|
|
|
if (bgun0f098ca0(0, &info, &g_Vars.currentplayer->hands[handnum]) > 0) {
|
|
return true;
|
|
}
|
|
|
|
if (bgun0f098ca0(1, &info, &g_Vars.currentplayer->hands[handnum]) > 0) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool bgun0f0990b0(struct weaponfunc *basefunc, struct weapon *weapon)
|
|
{
|
|
if (!basefunc) {
|
|
return true;
|
|
}
|
|
|
|
if (basefunc->type == INVENTORYFUNCTYPE_NONE) {
|
|
return true;
|
|
}
|
|
|
|
if ((basefunc->type & 0xff) == INVENTORYFUNCTYPE_CLOSE) {
|
|
return true;
|
|
}
|
|
|
|
if ((basefunc->type & 0xff) == INVENTORYFUNCTYPE_SPECIAL) {
|
|
struct weaponfunc_special *func = (struct weaponfunc_special *)basefunc;
|
|
|
|
if (func->specialfunc != HANDATTACKTYPE_DETONATE
|
|
&& func->specialfunc != HANDATTACKTYPE_BOOST
|
|
&& func->specialfunc != HANDATTACKTYPE_REVERTBOOST) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
if ((basefunc->type & 0xff) == INVENTORYFUNCTYPE_THROW) {
|
|
if (basefunc->ammoindex <= -1) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
if (basefunc->ammoindex >= 0
|
|
&& weapon->ammos[basefunc->ammoindex]
|
|
&& bgunGetAmmoCount(weapon->ammos[basefunc->ammoindex]->type) <= 0) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool bgun0f099188(struct hand *hand, s32 gunfunc)
|
|
{
|
|
struct weaponfunc *func = weaponGetFunction(&hand->gset, gunfunc);
|
|
struct weapon *weapon = weaponFindById(hand->gset.weaponnum);
|
|
|
|
if (bgunIsUsingSecondaryFunction() == gunfunc) {
|
|
return false;
|
|
}
|
|
|
|
return bgun0f0990b0(func, weapon);
|
|
}
|
|
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
GLOBAL_ASM(
|
|
glabel bgunTickIncIdle
|
|
/* f09a0dc: 27bdffc0 */ addiu $sp,$sp,-64
|
|
/* f09a0e0: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f09a0e4: afb00018 */ sw $s0,0x18($sp)
|
|
/* f09a0e8: 00c08025 */ move $s0,$a2
|
|
/* f09a0ec: afa40040 */ sw $a0,0x40($sp)
|
|
/* f09a0f0: afa50044 */ sw $a1,0x44($sp)
|
|
/* f09a0f4: 0fc2a73f */ jal bgunIsUsingSecondaryFunction
|
|
/* f09a0f8: afa7004c */ sw $a3,0x4c($sp)
|
|
/* f09a0fc: 44802000 */ mtc1 $zero,$f4
|
|
/* f09a100: afa20038 */ sw $v0,0x38($sp)
|
|
/* f09a104: a20005dc */ sb $zero,0x5dc($s0)
|
|
/* f09a108: ae000558 */ sw $zero,0x558($s0)
|
|
/* f09a10c: e60405fc */ swc1 $f4,0x5fc($s0)
|
|
/* f09a110: 0fc2731c */ jal bgunIsReadyToSwitch
|
|
/* f09a114: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09a118: 10400007 */ beqz $v0,.JF0f09a138
|
|
/* f09a11c: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09a120: 0fc2770c */ jal bgunSetState
|
|
/* f09a124: 24050005 */ li $a1,0x5
|
|
/* f09a128: 50400004 */ beqzl $v0,.JF0f09a13c
|
|
/* f09a12c: 8fae0038 */ lw $t6,0x38($sp)
|
|
/* f09a130: 1000014a */ b .JF0f09a65c
|
|
/* f09a134: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.JF0f09a138:
|
|
/* f09a138: 8fae0038 */ lw $t6,0x38($sp)
|
|
.JF0f09a13c:
|
|
/* f09a13c: 920f0003 */ lbu $t7,0x3($s0)
|
|
/* f09a140: 02003025 */ move $a2,$s0
|
|
/* f09a144: 55cf0005 */ bnel $t6,$t7,.JF0f09a15c
|
|
/* f09a148: 92090690 */ lbu $t1,0x690($s0)
|
|
/* f09a14c: 92180690 */ lbu $t8,0x690($s0)
|
|
/* f09a150: 3319fffd */ andi $t9,$t8,0xfffd
|
|
/* f09a154: a2190690 */ sb $t9,0x690($s0)
|
|
/* f09a158: 92090690 */ lbu $t1,0x690($s0)
|
|
.JF0f09a15c:
|
|
/* f09a15c: 820b0008 */ lb $t3,0x8($s0)
|
|
/* f09a160: 312afffe */ andi $t2,$t1,0xfffe
|
|
/* f09a164: 11600106 */ beqz $t3,.JF0f09a580
|
|
/* f09a168: a20a0690 */ sb $t2,0x690($s0)
|
|
/* f09a16c: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f09a170: 0fc266dd */ jal bgun0f098ca0
|
|
/* f09a174: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f09a178: 92030003 */ lbu $v1,0x3($s0)
|
|
/* f09a17c: 8fac0038 */ lw $t4,0x38($sp)
|
|
/* f09a180: 00404025 */ move $t0,$v0
|
|
/* f09a184: 1183003a */ beq $t4,$v1,.JF0f09a270
|
|
/* f09a188: 00000000 */ nop
|
|
/* f09a18c: 8e0d0024 */ lw $t5,0x24($s0)
|
|
/* f09a190: 24010009 */ li $at,0x9
|
|
/* f09a194: 11a10036 */ beq $t5,$at,.JF0f09a270
|
|
/* f09a198: 00000000 */ nop
|
|
/* f09a19c: 8e0e0690 */ lw $t6,0x690($s0)
|
|
/* f09a1a0: 24190001 */ li $t9,0x1
|
|
/* f09a1a4: 24070001 */ li $a3,0x1
|
|
/* f09a1a8: 000ec180 */ sll $t8,$t6,0x6
|
|
/* f09a1ac: 0701000a */ bgez $t8,.JF0f09a1d8
|
|
/* f09a1b0: 03232023 */ subu $a0,$t9,$v1
|
|
/* f09a1b4: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f09a1b8: 02003025 */ move $a2,$s0
|
|
/* f09a1bc: afa7002c */ sw $a3,0x2c($sp)
|
|
/* f09a1c0: 0fc266dd */ jal bgun0f098ca0
|
|
/* f09a1c4: afa20034 */ sw $v0,0x34($sp)
|
|
/* f09a1c8: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f09a1cc: 04410002 */ bgez $v0,.JF0f09a1d8
|
|
/* f09a1d0: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f09a1d4: 00003825 */ move $a3,$zero
|
|
.JF0f09a1d8:
|
|
/* f09a1d8: 10e00018 */ beqz $a3,.JF0f09a23c
|
|
/* f09a1dc: 8fa90040 */ lw $t1,0x40($sp)
|
|
/* f09a1e0: 8d2a0000 */ lw $t2,0x0($t1)
|
|
/* f09a1e4: 2401001a */ li $at,0x1a
|
|
/* f09a1e8: 15410014 */ bne $t2,$at,.JF0f09a23c
|
|
/* f09a1ec: 00000000 */ nop
|
|
/* f09a1f0: 1500000f */ bnez $t0,.JF0f09a230
|
|
/* f09a1f4: 00000000 */ nop
|
|
/* f09a1f8: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a1fc: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09a200: 8fab0038 */ lw $t3,0x38($sp)
|
|
/* f09a204: 24050001 */ li $a1,0x1
|
|
/* f09a208: a20b0003 */ sb $t3,0x3($s0)
|
|
/* f09a20c: afa80034 */ sw $t0,0x34($sp)
|
|
/* f09a210: afa7002c */ sw $a3,0x2c($sp)
|
|
/* f09a214: 0fc2770c */ jal bgunSetState
|
|
/* f09a218: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09a21c: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f09a220: 10400006 */ beqz $v0,.JF0f09a23c
|
|
/* f09a224: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f09a228: 1000010c */ b .JF0f09a65c
|
|
/* f09a22c: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.JF0f09a230:
|
|
/* f09a230: 05010002 */ bgez $t0,.JF0f09a23c
|
|
/* f09a234: 00000000 */ nop
|
|
/* f09a238: 00003825 */ move $a3,$zero
|
|
.JF0f09a23c:
|
|
/* f09a23c: 10e0000c */ beqz $a3,.JF0f09a270
|
|
/* f09a240: 00000000 */ nop
|
|
/* f09a244: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f09a248: 24050007 */ li $a1,0x7
|
|
/* f09a24c: 318dfffd */ andi $t5,$t4,0xfffd
|
|
/* f09a250: a20d0690 */ sb $t5,0x690($s0)
|
|
/* f09a254: afa80034 */ sw $t0,0x34($sp)
|
|
/* f09a258: 0fc2770c */ jal bgunSetState
|
|
/* f09a25c: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09a260: 10400003 */ beqz $v0,.JF0f09a270
|
|
/* f09a264: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f09a268: 100000fc */ b .JF0f09a65c
|
|
/* f09a26c: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.JF0f09a270:
|
|
/* f09a270: 05010071 */ bgez $t0,.JF0f09a438
|
|
/* f09a274: 8fae0040 */ lw $t6,0x40($sp)
|
|
/* f09a278: 8dc40000 */ lw $a0,0x0($t6)
|
|
/* f09a27c: 0fc2ca10 */ jal weaponHasFlag
|
|
/* f09a280: 24050001 */ li $a1,0x1
|
|
/* f09a284: 1040000f */ beqz $v0,.JF0f09a2c4
|
|
/* f09a288: 8faf0040 */ lw $t7,0x40($sp)
|
|
/* f09a28c: 8df80000 */ lw $t8,0x0($t7)
|
|
/* f09a290: 24010022 */ li $at,0x22
|
|
/* f09a294: 8fb90044 */ lw $t9,0x44($sp)
|
|
/* f09a298: 17010004 */ bne $t8,$at,.JF0f09a2ac
|
|
/* f09a29c: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09a2a0: 24010001 */ li $at,0x1
|
|
/* f09a2a4: 13210007 */ beq $t9,$at,.JF0f09a2c4
|
|
/* f09a2a8: 00000000 */ nop
|
|
.JF0f09a2ac:
|
|
/* f09a2ac: 0fc2770c */ jal bgunSetState
|
|
/* f09a2b0: 24050008 */ li $a1,0x8
|
|
/* f09a2b4: 10400003 */ beqz $v0,.JF0f09a2c4
|
|
/* f09a2b8: 00000000 */ nop
|
|
/* f09a2bc: 100000e7 */ b .JF0f09a65c
|
|
/* f09a2c0: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.JF0f09a2c4:
|
|
/* f09a2c4: 3c09800a */ lui $t1,0x800a
|
|
/* f09a2c8: 8d29a8b4 */ lw $t1,-0x574c($t1)
|
|
/* f09a2cc: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f09a2d0: 02003025 */ move $a2,$s0
|
|
/* f09a2d4: 81241580 */ lb $a0,0x1580($t1)
|
|
/* f09a2d8: 0004102a */ slt $v0,$zero,$a0
|
|
/* f09a2dc: 50400016 */ beqzl $v0,.JF0f09a338
|
|
/* f09a2e0: 8fab0038 */ lw $t3,0x38($sp)
|
|
/* f09a2e4: 28820024 */ slti $v0,$a0,0x24
|
|
/* f09a2e8: 10400012 */ beqz $v0,.JF0f09a334
|
|
/* f09a2ec: 3c0a800a */ lui $t2,0x800a
|
|
/* f09a2f0: 8d4aa8b8 */ lw $t2,-0x5748($t2)
|
|
/* f09a2f4: 2483ffff */ addiu $v1,$a0,-1
|
|
/* f09a2f8: 000368c3 */ sra $t5,$v1,0x3
|
|
/* f09a2fc: 8d4b0070 */ lw $t3,0x70($t2)
|
|
/* f09a300: 3c0f800b */ lui $t7,0x800b
|
|
/* f09a304: 30780007 */ andi $t8,$v1,0x7
|
|
/* f09a308: 000b6080 */ sll $t4,$t3,0x2
|
|
/* f09a30c: 018b6021 */ addu $t4,$t4,$t3
|
|
/* f09a310: 000c6140 */ sll $t4,$t4,0x5
|
|
/* f09a314: 018d7021 */ addu $t6,$t4,$t5
|
|
/* f09a318: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f09a31c: 91efd27f */ lbu $t7,-0x2d81($t7)
|
|
/* f09a320: 24190001 */ li $t9,0x1
|
|
/* f09a324: 03194804 */ sllv $t1,$t9,$t8
|
|
/* f09a328: 01e91024 */ and $v0,$t7,$t1
|
|
/* f09a32c: 0002502b */ sltu $t2,$zero,$v0
|
|
/* f09a330: 01401025 */ move $v0,$t2
|
|
.JF0f09a334:
|
|
/* f09a334: 8fab0038 */ lw $t3,0x38($sp)
|
|
.JF0f09a338:
|
|
/* f09a338: 544b0092 */ bnel $v0,$t3,.JF0f09a584
|
|
/* f09a33c: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f09a340: 920c0003 */ lbu $t4,0x3($s0)
|
|
/* f09a344: 240d0001 */ li $t5,0x1
|
|
/* f09a348: 0fc266dd */ jal bgun0f098ca0
|
|
/* f09a34c: 01ac2023 */ subu $a0,$t5,$t4
|
|
/* f09a350: 920e0003 */ lbu $t6,0x3($s0)
|
|
/* f09a354: 24190001 */ li $t9,0x1
|
|
/* f09a358: afa20030 */ sw $v0,0x30($sp)
|
|
/* f09a35c: 02002025 */ move $a0,$s0
|
|
/* f09a360: 0fc26820 */ jal bgun0f099188
|
|
/* f09a364: 032e2823 */ subu $a1,$t9,$t6
|
|
/* f09a368: 1040001a */ beqz $v0,.JF0f09a3d4
|
|
/* f09a36c: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f09a370: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f09a374: 24010014 */ li $at,0x14
|
|
/* f09a378: 8f0f0000 */ lw $t7,0x0($t8)
|
|
/* f09a37c: 11e10015 */ beq $t7,$at,.JF0f09a3d4
|
|
/* f09a380: 00000000 */ nop
|
|
/* f09a384: 8f090008 */ lw $t1,0x8($t8)
|
|
/* f09a388: 02002025 */ move $a0,$s0
|
|
/* f09a38c: 24190001 */ li $t9,0x1
|
|
/* f09a390: 8d2a0000 */ lw $t2,0x0($t1)
|
|
/* f09a394: 000a6f40 */ sll $t5,$t2,0x1d
|
|
/* f09a398: 05a3000e */ bgezl $t5,.JF0f09a3d4
|
|
/* f09a39c: 2403ffff */ li $v1,-1
|
|
/* f09a3a0: 920c0003 */ lbu $t4,0x3($s0)
|
|
/* f09a3a4: afa30030 */ sw $v1,0x30($sp)
|
|
/* f09a3a8: 0fc2c84e */ jal weaponGetFunction
|
|
/* f09a3ac: 032c2823 */ subu $a1,$t9,$t4
|
|
/* f09a3b0: 8c4e0000 */ lw $t6,0x0($v0)
|
|
/* f09a3b4: 24010003 */ li $at,0x3
|
|
/* f09a3b8: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f09a3bc: 31cf00ff */ andi $t7,$t6,0xff
|
|
/* f09a3c0: 11e10004 */ beq $t7,$at,.JF0f09a3d4
|
|
/* f09a3c4: 00000000 */ nop
|
|
/* f09a3c8: 10000002 */ b .JF0f09a3d4
|
|
/* f09a3cc: 2403ffff */ li $v1,-1
|
|
/* f09a3d0: 2403ffff */ li $v1,-1
|
|
.JF0f09a3d4:
|
|
/* f09a3d4: 04610005 */ bgez $v1,.JF0f09a3ec
|
|
/* f09a3d8: 8fab0040 */ lw $t3,0x40($sp)
|
|
/* f09a3dc: 92090690 */ lbu $t1,0x690($s0)
|
|
/* f09a3e0: 352a0001 */ ori $t2,$t1,0x1
|
|
/* f09a3e4: 10000066 */ b .JF0f09a580
|
|
/* f09a3e8: a20a0690 */ sb $t2,0x690($s0)
|
|
.JF0f09a3ec:
|
|
/* f09a3ec: 8d640000 */ lw $a0,0x0($t3)
|
|
/* f09a3f0: 0fc2ca10 */ jal weaponHasFlag
|
|
/* f09a3f4: 3c050400 */ lui $a1,0x400
|
|
/* f09a3f8: 50400006 */ beqzl $v0,.JF0f09a414
|
|
/* f09a3fc: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f09a400: 920d0003 */ lbu $t5,0x3($s0)
|
|
/* f09a404: 24010001 */ li $at,0x1
|
|
/* f09a408: 55a1005e */ bnel $t5,$at,.JF0f09a584
|
|
/* f09a40c: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f09a410: 920c0690 */ lbu $t4,0x690($s0)
|
|
.JF0f09a414:
|
|
/* f09a414: 24050007 */ li $a1,0x7
|
|
/* f09a418: 358e0002 */ ori $t6,$t4,0x2
|
|
/* f09a41c: a20e0690 */ sb $t6,0x690($s0)
|
|
/* f09a420: 0fc2770c */ jal bgunSetState
|
|
/* f09a424: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09a428: 50400056 */ beqzl $v0,.JF0f09a584
|
|
/* f09a42c: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f09a430: 1000008a */ b .JF0f09a65c
|
|
/* f09a434: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.JF0f09a438:
|
|
/* f09a438: 5500001c */ bnezl $t0,.JF0f09a4ac
|
|
/* f09a43c: 8e0d000c */ lw $t5,0xc($s0)
|
|
/* f09a440: 8e0f000c */ lw $t7,0xc($s0)
|
|
/* f09a444: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f09a448: 24050001 */ li $a1,0x1
|
|
/* f09a44c: 51e0000f */ beqzl $t7,.JF0f09a48c
|
|
/* f09a450: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a454: 8f090000 */ lw $t1,0x0($t8)
|
|
/* f09a458: 5120000c */ beqzl $t1,.JF0f09a48c
|
|
/* f09a45c: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a460: 920a0690 */ lbu $t2,0x690($s0)
|
|
/* f09a464: 24050003 */ li $a1,0x3
|
|
/* f09a468: 314bff7f */ andi $t3,$t2,0xff7f
|
|
/* f09a46c: a20b0690 */ sb $t3,0x690($s0)
|
|
/* f09a470: 0fc2770c */ jal bgunSetState
|
|
/* f09a474: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09a478: 50400042 */ beqzl $v0,.JF0f09a584
|
|
/* f09a47c: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f09a480: 10000076 */ b .JF0f09a65c
|
|
/* f09a484: 8fa2004c */ lw $v0,0x4c($sp)
|
|
/* f09a488: ae00001c */ sw $zero,0x1c($s0)
|
|
.JF0f09a48c:
|
|
/* f09a48c: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09a490: 0fc2770c */ jal bgunSetState
|
|
/* f09a494: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09a498: 5040003a */ beqzl $v0,.JF0f09a584
|
|
/* f09a49c: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f09a4a0: 1000006e */ b .JF0f09a65c
|
|
/* f09a4a4: 8fa2004c */ lw $v0,0x4c($sp)
|
|
/* f09a4a8: 8e0d000c */ lw $t5,0xc($s0)
|
|
.JF0f09a4ac:
|
|
/* f09a4ac: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f09a4b0: 55a0000a */ bnezl $t5,.JF0f09a4dc
|
|
/* f09a4b4: 8f090000 */ lw $t1,0x0($t8)
|
|
/* f09a4b8: 8e1906d4 */ lw $t9,0x6d4($s0)
|
|
/* f09a4bc: 001976c0 */ sll $t6,$t9,0x1b
|
|
/* f09a4c0: 05c3001c */ bgezl $t6,.JF0f09a534
|
|
/* f09a4c4: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f09a4c8: 920f0003 */ lbu $t7,0x3($s0)
|
|
/* f09a4cc: 24010001 */ li $at,0x1
|
|
/* f09a4d0: 55e10018 */ bnel $t7,$at,.JF0f09a534
|
|
/* f09a4d4: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f09a4d8: 8f090000 */ lw $t1,0x0($t8)
|
|
.JF0f09a4dc:
|
|
/* f09a4dc: 3c0a800a */ lui $t2,0x800a
|
|
/* f09a4e0: 51200014 */ beqzl $t1,.JF0f09a534
|
|
/* f09a4e4: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f09a4e8: 8d4aa8b4 */ lw $t2,-0x574c($t2)
|
|
/* f09a4ec: 240b0001 */ li $t3,0x1
|
|
/* f09a4f0: 24050004 */ li $a1,0x4
|
|
/* f09a4f4: ad401600 */ sw $zero,0x1600($t2)
|
|
/* f09a4f8: 920d06d7 */ lbu $t5,0x6d7($s0)
|
|
/* f09a4fc: ae0b0020 */ sw $t3,0x20($s0)
|
|
/* f09a500: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09a504: 31b9ffef */ andi $t9,$t5,0xffef
|
|
/* f09a508: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a50c: ae000014 */ sw $zero,0x14($s0)
|
|
/* f09a510: a21906d7 */ sb $t9,0x6d7($s0)
|
|
/* f09a514: afa80034 */ sw $t0,0x34($sp)
|
|
/* f09a518: 0fc2770c */ jal bgunSetState
|
|
/* f09a51c: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09a520: 10400003 */ beqz $v0,.JF0f09a530
|
|
/* f09a524: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f09a528: 1000004c */ b .JF0f09a65c
|
|
/* f09a52c: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.JF0f09a530:
|
|
/* f09a530: 8e020024 */ lw $v0,0x24($s0)
|
|
.JF0f09a534:
|
|
/* f09a534: 24010009 */ li $at,0x9
|
|
/* f09a538: 50400012 */ beqzl $v0,.JF0f09a584
|
|
/* f09a53c: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f09a540: ae020020 */ sw $v0,0x20($s0)
|
|
/* f09a544: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a548: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09a54c: 1441000c */ bne $v0,$at,.JF0f09a580
|
|
/* f09a550: ae000024 */ sw $zero,0x24($s0)
|
|
/* f09a554: 29010002 */ slti $at,$t0,0x2
|
|
/* f09a558: 5020000a */ beqzl $at,.JF0f09a584
|
|
/* f09a55c: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f09a560: 05000007 */ bltz $t0,.JF0f09a580
|
|
/* f09a564: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09a568: 0fc2770c */ jal bgunSetState
|
|
/* f09a56c: 24050001 */ li $a1,0x1
|
|
/* f09a570: 50400004 */ beqzl $v0,.JF0f09a584
|
|
/* f09a574: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f09a578: 10000038 */ b .JF0f09a65c
|
|
/* f09a57c: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.JF0f09a580:
|
|
/* f09a580: 8fae0044 */ lw $t6,0x44($sp)
|
|
.JF0f09a584:
|
|
/* f09a584: 8faf0040 */ lw $t7,0x40($sp)
|
|
/* f09a588: 55c00034 */ bnezl $t6,.JF0f09a65c
|
|
/* f09a58c: 00001025 */ move $v0,$zero
|
|
/* f09a590: 8df80008 */ lw $t8,0x8($t7)
|
|
/* f09a594: 8fb90044 */ lw $t9,0x44($sp)
|
|
/* f09a598: 3c0d800a */ lui $t5,0x800a
|
|
/* f09a59c: 8f090000 */ lw $t1,0x0($t8)
|
|
/* f09a5a0: 00196100 */ sll $t4,$t9,0x4
|
|
/* f09a5a4: 01996023 */ subu $t4,$t4,$t9
|
|
/* f09a5a8: 00095f40 */ sll $t3,$t1,0x1d
|
|
/* f09a5ac: 05610005 */ bgez $t3,.JF0f09a5c4
|
|
/* f09a5b0: 000c6080 */ sll $t4,$t4,0x2
|
|
/* f09a5b4: 0fc28b57 */ jal bgunAutoSwitchWeapon
|
|
/* f09a5b8: 00000000 */ nop
|
|
/* f09a5bc: 10000027 */ b .JF0f09a65c
|
|
/* f09a5c0: 00001025 */ move $v0,$zero
|
|
.JF0f09a5c4:
|
|
/* f09a5c4: 01996021 */ addu $t4,$t4,$t9
|
|
/* f09a5c8: 8dada8b4 */ lw $t5,-0x574c($t5)
|
|
/* f09a5cc: 920e0690 */ lbu $t6,0x690($s0)
|
|
/* f09a5d0: 000c60c0 */ sll $t4,$t4,0x3
|
|
/* f09a5d4: 01996021 */ addu $t4,$t4,$t9
|
|
/* f09a5d8: 000c6080 */ sll $t4,$t4,0x2
|
|
/* f09a5dc: 01ac1023 */ subu $v0,$t5,$t4
|
|
/* f09a5e0: 31cf0001 */ andi $t7,$t6,0x1
|
|
/* f09a5e4: 15e00004 */ bnez $t7,.JF0f09a5f8
|
|
/* f09a5e8: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f09a5ec: 82180008 */ lb $t8,0x8($s0)
|
|
/* f09a5f0: 57000012 */ bnezl $t8,.JF0f09a63c
|
|
/* f09a5f4: 904c0690 */ lbu $t4,0x690($v0)
|
|
.JF0f09a5f8:
|
|
/* f09a5f8: 90490690 */ lbu $t1,0x690($v0)
|
|
/* f09a5fc: 312a0001 */ andi $t2,$t1,0x1
|
|
/* f09a600: 55400005 */ bnezl $t2,.JF0f09a618
|
|
/* f09a604: 8e19000c */ lw $t9,0xc($s0)
|
|
/* f09a608: 804b0008 */ lb $t3,0x8($v0)
|
|
/* f09a60c: 5560000b */ bnezl $t3,.JF0f09a63c
|
|
/* f09a610: 904c0690 */ lbu $t4,0x690($v0)
|
|
/* f09a614: 8e19000c */ lw $t9,0xc($s0)
|
|
.JF0f09a618:
|
|
/* f09a618: 17200004 */ bnez $t9,.JF0f09a62c
|
|
/* f09a61c: 00000000 */ nop
|
|
/* f09a620: 8c4d000c */ lw $t5,0xc($v0)
|
|
/* f09a624: 51a00005 */ beqzl $t5,.JF0f09a63c
|
|
/* f09a628: 904c0690 */ lbu $t4,0x690($v0)
|
|
.JF0f09a62c:
|
|
/* f09a62c: 0fc28b57 */ jal bgunAutoSwitchWeapon
|
|
/* f09a630: afa20024 */ sw $v0,0x24($sp)
|
|
/* f09a634: 8fa20024 */ lw $v0,0x24($sp)
|
|
/* f09a638: 904c0690 */ lbu $t4,0x690($v0)
|
|
.JF0f09a63c:
|
|
/* f09a63c: 3198fffe */ andi $t8,$t4,0xfffe
|
|
/* f09a640: a0580690 */ sb $t8,0x690($v0)
|
|
/* f09a644: 920a0690 */ lbu $t2,0x690($s0)
|
|
/* f09a648: 33090001 */ andi $t1,$t8,0x1
|
|
/* f09a64c: 314bfffe */ andi $t3,$t2,0xfffe
|
|
/* f09a650: 012bc825 */ or $t9,$t1,$t3
|
|
/* f09a654: a2190690 */ sb $t9,0x690($s0)
|
|
/* f09a658: 00001025 */ move $v0,$zero
|
|
.JF0f09a65c:
|
|
/* f09a65c: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f09a660: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f09a664: 27bd0040 */ addiu $sp,$sp,0x40
|
|
/* f09a668: 03e00008 */ jr $ra
|
|
/* f09a66c: 00000000 */ nop
|
|
);
|
|
#elif VERSION >= VERSION_PAL_FINAL
|
|
GLOBAL_ASM(
|
|
glabel bgunTickIncIdle
|
|
/* f099270: 27bdffc0 */ addiu $sp,$sp,-64
|
|
/* f099274: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f099278: afb00018 */ sw $s0,0x18($sp)
|
|
/* f09927c: 00c08025 */ move $s0,$a2
|
|
/* f099280: afa40040 */ sw $a0,0x40($sp)
|
|
/* f099284: afa50044 */ sw $a1,0x44($sp)
|
|
/* f099288: 0fc2a432 */ jal bgunIsUsingSecondaryFunction
|
|
/* f09928c: afa7004c */ sw $a3,0x4c($sp)
|
|
/* f099290: 44802000 */ mtc1 $zero,$f4
|
|
/* f099294: afa20038 */ sw $v0,0x38($sp)
|
|
/* f099298: a20005dc */ sb $zero,0x5dc($s0)
|
|
/* f09929c: ae000558 */ sw $zero,0x558($s0)
|
|
/* f0992a0: e60405fc */ swc1 $f4,0x5fc($s0)
|
|
/* f0992a4: 0fc26ffc */ jal bgunIsReadyToSwitch
|
|
/* f0992a8: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0992ac: 10400007 */ beqz $v0,.PF0f0992cc
|
|
/* f0992b0: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0992b4: 0fc273ec */ jal bgunSetState
|
|
/* f0992b8: 24050005 */ li $a1,0x5
|
|
/* f0992bc: 50400004 */ beqzl $v0,.PF0f0992d0
|
|
/* f0992c0: 8fae0038 */ lw $t6,0x38($sp)
|
|
/* f0992c4: 1000014a */ b .PF0f0997f0
|
|
/* f0992c8: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PF0f0992cc:
|
|
/* f0992cc: 8fae0038 */ lw $t6,0x38($sp)
|
|
.PF0f0992d0:
|
|
/* f0992d0: 920f0003 */ lbu $t7,0x3($s0)
|
|
/* f0992d4: 02003025 */ move $a2,$s0
|
|
/* f0992d8: 55cf0005 */ bnel $t6,$t7,.PF0f0992f0
|
|
/* f0992dc: 92090690 */ lbu $t1,0x690($s0)
|
|
/* f0992e0: 92180690 */ lbu $t8,0x690($s0)
|
|
/* f0992e4: 3319fffd */ andi $t9,$t8,0xfffd
|
|
/* f0992e8: a2190690 */ sb $t9,0x690($s0)
|
|
/* f0992ec: 92090690 */ lbu $t1,0x690($s0)
|
|
.PF0f0992f0:
|
|
/* f0992f0: 820b0008 */ lb $t3,0x8($s0)
|
|
/* f0992f4: 312afffe */ andi $t2,$t1,0xfffe
|
|
/* f0992f8: 11600106 */ beqz $t3,.PF0f099714
|
|
/* f0992fc: a20a0690 */ sb $t2,0x690($s0)
|
|
/* f099300: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099304: 0fc26348 */ jal bgun0f098ca0
|
|
/* f099308: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f09930c: 92030003 */ lbu $v1,0x3($s0)
|
|
/* f099310: 8fac0038 */ lw $t4,0x38($sp)
|
|
/* f099314: 00404025 */ move $t0,$v0
|
|
/* f099318: 1183003a */ beq $t4,$v1,.PF0f099404
|
|
/* f09931c: 00000000 */ nop
|
|
/* f099320: 8e0d0024 */ lw $t5,0x24($s0)
|
|
/* f099324: 24010009 */ li $at,0x9
|
|
/* f099328: 11a10036 */ beq $t5,$at,.PF0f099404
|
|
/* f09932c: 00000000 */ nop
|
|
/* f099330: 8e0e0690 */ lw $t6,0x690($s0)
|
|
/* f099334: 24190001 */ li $t9,0x1
|
|
/* f099338: 24070001 */ li $a3,0x1
|
|
/* f09933c: 000ec180 */ sll $t8,$t6,0x6
|
|
/* f099340: 0701000a */ bgez $t8,.PF0f09936c
|
|
/* f099344: 03232023 */ subu $a0,$t9,$v1
|
|
/* f099348: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f09934c: 02003025 */ move $a2,$s0
|
|
/* f099350: afa7002c */ sw $a3,0x2c($sp)
|
|
/* f099354: 0fc26348 */ jal bgun0f098ca0
|
|
/* f099358: afa20034 */ sw $v0,0x34($sp)
|
|
/* f09935c: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f099360: 04410002 */ bgez $v0,.PF0f09936c
|
|
/* f099364: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f099368: 00003825 */ move $a3,$zero
|
|
.PF0f09936c:
|
|
/* f09936c: 10e00018 */ beqz $a3,.PF0f0993d0
|
|
/* f099370: 8fa90040 */ lw $t1,0x40($sp)
|
|
/* f099374: 8d2a0000 */ lw $t2,0x0($t1)
|
|
/* f099378: 2401001a */ li $at,0x1a
|
|
/* f09937c: 15410014 */ bne $t2,$at,.PF0f0993d0
|
|
/* f099380: 00000000 */ nop
|
|
/* f099384: 1500000f */ bnez $t0,.PF0f0993c4
|
|
/* f099388: 00000000 */ nop
|
|
/* f09938c: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f099390: ae000018 */ sw $zero,0x18($s0)
|
|
/* f099394: 8fab0038 */ lw $t3,0x38($sp)
|
|
/* f099398: 24050001 */ li $a1,0x1
|
|
/* f09939c: a20b0003 */ sb $t3,0x3($s0)
|
|
/* f0993a0: afa80034 */ sw $t0,0x34($sp)
|
|
/* f0993a4: afa7002c */ sw $a3,0x2c($sp)
|
|
/* f0993a8: 0fc273ec */ jal bgunSetState
|
|
/* f0993ac: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0993b0: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f0993b4: 10400006 */ beqz $v0,.PF0f0993d0
|
|
/* f0993b8: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f0993bc: 1000010c */ b .PF0f0997f0
|
|
/* f0993c0: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PF0f0993c4:
|
|
/* f0993c4: 05010002 */ bgez $t0,.PF0f0993d0
|
|
/* f0993c8: 00000000 */ nop
|
|
/* f0993cc: 00003825 */ move $a3,$zero
|
|
.PF0f0993d0:
|
|
/* f0993d0: 10e0000c */ beqz $a3,.PF0f099404
|
|
/* f0993d4: 00000000 */ nop
|
|
/* f0993d8: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f0993dc: 24050007 */ li $a1,0x7
|
|
/* f0993e0: 318dfffd */ andi $t5,$t4,0xfffd
|
|
/* f0993e4: a20d0690 */ sb $t5,0x690($s0)
|
|
/* f0993e8: afa80034 */ sw $t0,0x34($sp)
|
|
/* f0993ec: 0fc273ec */ jal bgunSetState
|
|
/* f0993f0: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0993f4: 10400003 */ beqz $v0,.PF0f099404
|
|
/* f0993f8: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f0993fc: 100000fc */ b .PF0f0997f0
|
|
/* f099400: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PF0f099404:
|
|
/* f099404: 05010071 */ bgez $t0,.PF0f0995cc
|
|
/* f099408: 8fae0040 */ lw $t6,0x40($sp)
|
|
/* f09940c: 8dc40000 */ lw $a0,0x0($t6)
|
|
/* f099410: 0fc2c720 */ jal weaponHasFlag
|
|
/* f099414: 24050001 */ li $a1,0x1
|
|
/* f099418: 1040000f */ beqz $v0,.PF0f099458
|
|
/* f09941c: 8faf0040 */ lw $t7,0x40($sp)
|
|
/* f099420: 8df80000 */ lw $t8,0x0($t7)
|
|
/* f099424: 24010022 */ li $at,0x22
|
|
/* f099428: 8fb90044 */ lw $t9,0x44($sp)
|
|
/* f09942c: 17010004 */ bne $t8,$at,.PF0f099440
|
|
/* f099430: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099434: 24010001 */ li $at,0x1
|
|
/* f099438: 13210007 */ beq $t9,$at,.PF0f099458
|
|
/* f09943c: 00000000 */ nop
|
|
.PF0f099440:
|
|
/* f099440: 0fc273ec */ jal bgunSetState
|
|
/* f099444: 24050008 */ li $a1,0x8
|
|
/* f099448: 10400003 */ beqz $v0,.PF0f099458
|
|
/* f09944c: 00000000 */ nop
|
|
/* f099450: 100000e7 */ b .PF0f0997f0
|
|
/* f099454: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PF0f099458:
|
|
/* f099458: 3c09800a */ lui $t1,0x800a
|
|
/* f09945c: 8d29a794 */ lw $t1,-0x586c($t1)
|
|
/* f099460: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f099464: 02003025 */ move $a2,$s0
|
|
/* f099468: 81241580 */ lb $a0,0x1580($t1)
|
|
/* f09946c: 0004102a */ slt $v0,$zero,$a0
|
|
/* f099470: 50400016 */ beqzl $v0,.PF0f0994cc
|
|
/* f099474: 8fab0038 */ lw $t3,0x38($sp)
|
|
/* f099478: 28820024 */ slti $v0,$a0,0x24
|
|
/* f09947c: 10400012 */ beqz $v0,.PF0f0994c8
|
|
/* f099480: 3c0a800a */ lui $t2,0x800a
|
|
/* f099484: 8d4aa798 */ lw $t2,-0x5868($t2)
|
|
/* f099488: 2483ffff */ addiu $v1,$a0,-1
|
|
/* f09948c: 000368c3 */ sra $t5,$v1,0x3
|
|
/* f099490: 8d4b0070 */ lw $t3,0x70($t2)
|
|
/* f099494: 3c0f800b */ lui $t7,0x800b
|
|
/* f099498: 30780007 */ andi $t8,$v1,0x7
|
|
/* f09949c: 000b6080 */ sll $t4,$t3,0x2
|
|
/* f0994a0: 018b6021 */ addu $t4,$t4,$t3
|
|
/* f0994a4: 000c6140 */ sll $t4,$t4,0x5
|
|
/* f0994a8: 018d7021 */ addu $t6,$t4,$t5
|
|
/* f0994ac: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0994b0: 91efcdef */ lbu $t7,-0x3211($t7)
|
|
/* f0994b4: 24190001 */ li $t9,0x1
|
|
/* f0994b8: 03194804 */ sllv $t1,$t9,$t8
|
|
/* f0994bc: 01e91024 */ and $v0,$t7,$t1
|
|
/* f0994c0: 0002502b */ sltu $t2,$zero,$v0
|
|
/* f0994c4: 01401025 */ move $v0,$t2
|
|
.PF0f0994c8:
|
|
/* f0994c8: 8fab0038 */ lw $t3,0x38($sp)
|
|
.PF0f0994cc:
|
|
/* f0994cc: 544b0092 */ bnel $v0,$t3,.PF0f099718
|
|
/* f0994d0: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f0994d4: 920c0003 */ lbu $t4,0x3($s0)
|
|
/* f0994d8: 240d0001 */ li $t5,0x1
|
|
/* f0994dc: 0fc26348 */ jal bgun0f098ca0
|
|
/* f0994e0: 01ac2023 */ subu $a0,$t5,$t4
|
|
/* f0994e4: 920e0003 */ lbu $t6,0x3($s0)
|
|
/* f0994e8: 24190001 */ li $t9,0x1
|
|
/* f0994ec: afa20030 */ sw $v0,0x30($sp)
|
|
/* f0994f0: 02002025 */ move $a0,$s0
|
|
/* f0994f4: 0fc26485 */ jal bgun0f099188
|
|
/* f0994f8: 032e2823 */ subu $a1,$t9,$t6
|
|
/* f0994fc: 1040001a */ beqz $v0,.PF0f099568
|
|
/* f099500: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f099504: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f099508: 24010014 */ li $at,0x14
|
|
/* f09950c: 8f0f0000 */ lw $t7,0x0($t8)
|
|
/* f099510: 11e10015 */ beq $t7,$at,.PF0f099568
|
|
/* f099514: 00000000 */ nop
|
|
/* f099518: 8f090008 */ lw $t1,0x8($t8)
|
|
/* f09951c: 02002025 */ move $a0,$s0
|
|
/* f099520: 24190001 */ li $t9,0x1
|
|
/* f099524: 8d2a0000 */ lw $t2,0x0($t1)
|
|
/* f099528: 000a6f40 */ sll $t5,$t2,0x1d
|
|
/* f09952c: 05a3000e */ bgezl $t5,.PF0f099568
|
|
/* f099530: 2403ffff */ li $v1,-1
|
|
/* f099534: 920c0003 */ lbu $t4,0x3($s0)
|
|
/* f099538: afa30030 */ sw $v1,0x30($sp)
|
|
/* f09953c: 0fc2c55e */ jal weaponGetFunction
|
|
/* f099540: 032c2823 */ subu $a1,$t9,$t4
|
|
/* f099544: 8c4e0000 */ lw $t6,0x0($v0)
|
|
/* f099548: 24010003 */ li $at,0x3
|
|
/* f09954c: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f099550: 31cf00ff */ andi $t7,$t6,0xff
|
|
/* f099554: 11e10004 */ beq $t7,$at,.PF0f099568
|
|
/* f099558: 00000000 */ nop
|
|
/* f09955c: 10000002 */ b .PF0f099568
|
|
/* f099560: 2403ffff */ li $v1,-1
|
|
/* f099564: 2403ffff */ li $v1,-1
|
|
.PF0f099568:
|
|
/* f099568: 04610005 */ bgez $v1,.PF0f099580
|
|
/* f09956c: 8fab0040 */ lw $t3,0x40($sp)
|
|
/* f099570: 92090690 */ lbu $t1,0x690($s0)
|
|
/* f099574: 352a0001 */ ori $t2,$t1,0x1
|
|
/* f099578: 10000066 */ b .PF0f099714
|
|
/* f09957c: a20a0690 */ sb $t2,0x690($s0)
|
|
.PF0f099580:
|
|
/* f099580: 8d640000 */ lw $a0,0x0($t3)
|
|
/* f099584: 0fc2c720 */ jal weaponHasFlag
|
|
/* f099588: 3c050400 */ lui $a1,0x400
|
|
/* f09958c: 50400006 */ beqzl $v0,.PF0f0995a8
|
|
/* f099590: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f099594: 920d0003 */ lbu $t5,0x3($s0)
|
|
/* f099598: 24010001 */ li $at,0x1
|
|
/* f09959c: 55a1005e */ bnel $t5,$at,.PF0f099718
|
|
/* f0995a0: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f0995a4: 920c0690 */ lbu $t4,0x690($s0)
|
|
.PF0f0995a8:
|
|
/* f0995a8: 24050007 */ li $a1,0x7
|
|
/* f0995ac: 358e0002 */ ori $t6,$t4,0x2
|
|
/* f0995b0: a20e0690 */ sb $t6,0x690($s0)
|
|
/* f0995b4: 0fc273ec */ jal bgunSetState
|
|
/* f0995b8: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0995bc: 50400056 */ beqzl $v0,.PF0f099718
|
|
/* f0995c0: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f0995c4: 1000008a */ b .PF0f0997f0
|
|
/* f0995c8: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PF0f0995cc:
|
|
/* f0995cc: 5500001c */ bnezl $t0,.PF0f099640
|
|
/* f0995d0: 8e0d000c */ lw $t5,0xc($s0)
|
|
/* f0995d4: 8e0f000c */ lw $t7,0xc($s0)
|
|
/* f0995d8: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f0995dc: 24050001 */ li $a1,0x1
|
|
/* f0995e0: 51e0000f */ beqzl $t7,.PF0f099620
|
|
/* f0995e4: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f0995e8: 8f090000 */ lw $t1,0x0($t8)
|
|
/* f0995ec: 5120000c */ beqzl $t1,.PF0f099620
|
|
/* f0995f0: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f0995f4: 920a0690 */ lbu $t2,0x690($s0)
|
|
/* f0995f8: 24050003 */ li $a1,0x3
|
|
/* f0995fc: 314bff7f */ andi $t3,$t2,0xff7f
|
|
/* f099600: a20b0690 */ sb $t3,0x690($s0)
|
|
/* f099604: 0fc273ec */ jal bgunSetState
|
|
/* f099608: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09960c: 50400042 */ beqzl $v0,.PF0f099718
|
|
/* f099610: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f099614: 10000076 */ b .PF0f0997f0
|
|
/* f099618: 8fa2004c */ lw $v0,0x4c($sp)
|
|
/* f09961c: ae00001c */ sw $zero,0x1c($s0)
|
|
.PF0f099620:
|
|
/* f099620: ae000018 */ sw $zero,0x18($s0)
|
|
/* f099624: 0fc273ec */ jal bgunSetState
|
|
/* f099628: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09962c: 5040003a */ beqzl $v0,.PF0f099718
|
|
/* f099630: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f099634: 1000006e */ b .PF0f0997f0
|
|
/* f099638: 8fa2004c */ lw $v0,0x4c($sp)
|
|
/* f09963c: 8e0d000c */ lw $t5,0xc($s0)
|
|
.PF0f099640:
|
|
/* f099640: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f099644: 55a0000a */ bnezl $t5,.PF0f099670
|
|
/* f099648: 8f090000 */ lw $t1,0x0($t8)
|
|
/* f09964c: 8e1906d4 */ lw $t9,0x6d4($s0)
|
|
/* f099650: 001976c0 */ sll $t6,$t9,0x1b
|
|
/* f099654: 05c3001c */ bgezl $t6,.PF0f0996c8
|
|
/* f099658: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f09965c: 920f0003 */ lbu $t7,0x3($s0)
|
|
/* f099660: 24010001 */ li $at,0x1
|
|
/* f099664: 55e10018 */ bnel $t7,$at,.PF0f0996c8
|
|
/* f099668: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f09966c: 8f090000 */ lw $t1,0x0($t8)
|
|
.PF0f099670:
|
|
/* f099670: 3c0a800a */ lui $t2,0x800a
|
|
/* f099674: 51200014 */ beqzl $t1,.PF0f0996c8
|
|
/* f099678: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f09967c: 8d4aa794 */ lw $t2,-0x586c($t2)
|
|
/* f099680: 240b0001 */ li $t3,0x1
|
|
/* f099684: 24050004 */ li $a1,0x4
|
|
/* f099688: ad401600 */ sw $zero,0x1600($t2)
|
|
/* f09968c: 920d06d7 */ lbu $t5,0x6d7($s0)
|
|
/* f099690: ae0b0020 */ sw $t3,0x20($s0)
|
|
/* f099694: ae000018 */ sw $zero,0x18($s0)
|
|
/* f099698: 31b9ffef */ andi $t9,$t5,0xffef
|
|
/* f09969c: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f0996a0: ae000014 */ sw $zero,0x14($s0)
|
|
/* f0996a4: a21906d7 */ sb $t9,0x6d7($s0)
|
|
/* f0996a8: afa80034 */ sw $t0,0x34($sp)
|
|
/* f0996ac: 0fc273ec */ jal bgunSetState
|
|
/* f0996b0: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0996b4: 10400003 */ beqz $v0,.PF0f0996c4
|
|
/* f0996b8: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f0996bc: 1000004c */ b .PF0f0997f0
|
|
/* f0996c0: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PF0f0996c4:
|
|
/* f0996c4: 8e020024 */ lw $v0,0x24($s0)
|
|
.PF0f0996c8:
|
|
/* f0996c8: 24010009 */ li $at,0x9
|
|
/* f0996cc: 50400012 */ beqzl $v0,.PF0f099718
|
|
/* f0996d0: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f0996d4: ae020020 */ sw $v0,0x20($s0)
|
|
/* f0996d8: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f0996dc: ae000018 */ sw $zero,0x18($s0)
|
|
/* f0996e0: 1441000c */ bne $v0,$at,.PF0f099714
|
|
/* f0996e4: ae000024 */ sw $zero,0x24($s0)
|
|
/* f0996e8: 29010002 */ slti $at,$t0,0x2
|
|
/* f0996ec: 5020000a */ beqzl $at,.PF0f099718
|
|
/* f0996f0: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f0996f4: 05000007 */ bltz $t0,.PF0f099714
|
|
/* f0996f8: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0996fc: 0fc273ec */ jal bgunSetState
|
|
/* f099700: 24050001 */ li $a1,0x1
|
|
/* f099704: 50400004 */ beqzl $v0,.PF0f099718
|
|
/* f099708: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f09970c: 10000038 */ b .PF0f0997f0
|
|
/* f099710: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PF0f099714:
|
|
/* f099714: 8fae0044 */ lw $t6,0x44($sp)
|
|
.PF0f099718:
|
|
/* f099718: 8faf0040 */ lw $t7,0x40($sp)
|
|
/* f09971c: 55c00034 */ bnezl $t6,.PF0f0997f0
|
|
/* f099720: 00001025 */ move $v0,$zero
|
|
/* f099724: 8df80008 */ lw $t8,0x8($t7)
|
|
/* f099728: 8fb90044 */ lw $t9,0x44($sp)
|
|
/* f09972c: 3c0d800a */ lui $t5,0x800a
|
|
/* f099730: 8f090000 */ lw $t1,0x0($t8)
|
|
/* f099734: 00196100 */ sll $t4,$t9,0x4
|
|
/* f099738: 01996023 */ subu $t4,$t4,$t9
|
|
/* f09973c: 00095f40 */ sll $t3,$t1,0x1d
|
|
/* f099740: 05610005 */ bgez $t3,.PF0f099758
|
|
/* f099744: 000c6080 */ sll $t4,$t4,0x2
|
|
/* f099748: 0fc2884a */ jal bgunAutoSwitchWeapon
|
|
/* f09974c: 00000000 */ nop
|
|
/* f099750: 10000027 */ b .PF0f0997f0
|
|
/* f099754: 00001025 */ move $v0,$zero
|
|
.PF0f099758:
|
|
/* f099758: 01996021 */ addu $t4,$t4,$t9
|
|
/* f09975c: 8dada794 */ lw $t5,-0x586c($t5)
|
|
/* f099760: 920e0690 */ lbu $t6,0x690($s0)
|
|
/* f099764: 000c60c0 */ sll $t4,$t4,0x3
|
|
/* f099768: 01996021 */ addu $t4,$t4,$t9
|
|
/* f09976c: 000c6080 */ sll $t4,$t4,0x2
|
|
/* f099770: 01ac1023 */ subu $v0,$t5,$t4
|
|
/* f099774: 31cf0001 */ andi $t7,$t6,0x1
|
|
/* f099778: 15e00004 */ bnez $t7,.PF0f09978c
|
|
/* f09977c: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f099780: 82180008 */ lb $t8,0x8($s0)
|
|
/* f099784: 57000012 */ bnezl $t8,.PF0f0997d0
|
|
/* f099788: 904c0690 */ lbu $t4,0x690($v0)
|
|
.PF0f09978c:
|
|
/* f09978c: 90490690 */ lbu $t1,0x690($v0)
|
|
/* f099790: 312a0001 */ andi $t2,$t1,0x1
|
|
/* f099794: 55400005 */ bnezl $t2,.PF0f0997ac
|
|
/* f099798: 8e19000c */ lw $t9,0xc($s0)
|
|
/* f09979c: 804b0008 */ lb $t3,0x8($v0)
|
|
/* f0997a0: 5560000b */ bnezl $t3,.PF0f0997d0
|
|
/* f0997a4: 904c0690 */ lbu $t4,0x690($v0)
|
|
/* f0997a8: 8e19000c */ lw $t9,0xc($s0)
|
|
.PF0f0997ac:
|
|
/* f0997ac: 17200004 */ bnez $t9,.PF0f0997c0
|
|
/* f0997b0: 00000000 */ nop
|
|
/* f0997b4: 8c4d000c */ lw $t5,0xc($v0)
|
|
/* f0997b8: 51a00005 */ beqzl $t5,.PF0f0997d0
|
|
/* f0997bc: 904c0690 */ lbu $t4,0x690($v0)
|
|
.PF0f0997c0:
|
|
/* f0997c0: 0fc2884a */ jal bgunAutoSwitchWeapon
|
|
/* f0997c4: afa20024 */ sw $v0,0x24($sp)
|
|
/* f0997c8: 8fa20024 */ lw $v0,0x24($sp)
|
|
/* f0997cc: 904c0690 */ lbu $t4,0x690($v0)
|
|
.PF0f0997d0:
|
|
/* f0997d0: 3198fffe */ andi $t8,$t4,0xfffe
|
|
/* f0997d4: a0580690 */ sb $t8,0x690($v0)
|
|
/* f0997d8: 920a0690 */ lbu $t2,0x690($s0)
|
|
/* f0997dc: 33090001 */ andi $t1,$t8,0x1
|
|
/* f0997e0: 314bfffe */ andi $t3,$t2,0xfffe
|
|
/* f0997e4: 012bc825 */ or $t9,$t1,$t3
|
|
/* f0997e8: a2190690 */ sb $t9,0x690($s0)
|
|
/* f0997ec: 00001025 */ move $v0,$zero
|
|
.PF0f0997f0:
|
|
/* f0997f0: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f0997f4: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f0997f8: 27bd0040 */ addiu $sp,$sp,0x40
|
|
/* f0997fc: 03e00008 */ jr $ra
|
|
/* f099800: 00000000 */ nop
|
|
);
|
|
#elif VERSION >= VERSION_PAL_BETA
|
|
GLOBAL_ASM(
|
|
glabel bgunTickIncIdle
|
|
/* f0991c0: 27bdffc0 */ addiu $sp,$sp,-64
|
|
/* f0991c4: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f0991c8: afb00018 */ sw $s0,0x18($sp)
|
|
/* f0991cc: 00c08025 */ move $s0,$a2
|
|
/* f0991d0: afa40040 */ sw $a0,0x40($sp)
|
|
/* f0991d4: afa50044 */ sw $a1,0x44($sp)
|
|
/* f0991d8: 0fc2a406 */ jal bgunIsUsingSecondaryFunction
|
|
/* f0991dc: afa7004c */ sw $a3,0x4c($sp)
|
|
/* f0991e0: 44802000 */ mtc1 $zero,$f4
|
|
/* f0991e4: afa20038 */ sw $v0,0x38($sp)
|
|
/* f0991e8: a20005dc */ sb $zero,0x5dc($s0)
|
|
/* f0991ec: ae000558 */ sw $zero,0x558($s0)
|
|
/* f0991f0: e60405fc */ swc1 $f4,0x5fc($s0)
|
|
/* f0991f4: 0fc26fd0 */ jal bgunIsReadyToSwitch
|
|
/* f0991f8: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0991fc: 10400007 */ beqz $v0,.PB0f09921c
|
|
/* f099200: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099204: 0fc273c0 */ jal bgunSetState
|
|
/* f099208: 24050005 */ li $a1,0x5
|
|
/* f09920c: 50400004 */ beqzl $v0,.PB0f099220
|
|
/* f099210: 8fae0038 */ lw $t6,0x38($sp)
|
|
/* f099214: 1000014a */ b .PB0f099740
|
|
/* f099218: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PB0f09921c:
|
|
/* f09921c: 8fae0038 */ lw $t6,0x38($sp)
|
|
.PB0f099220:
|
|
/* f099220: 920f0003 */ lbu $t7,0x3($s0)
|
|
/* f099224: 02003025 */ move $a2,$s0
|
|
/* f099228: 55cf0005 */ bnel $t6,$t7,.PB0f099240
|
|
/* f09922c: 92090690 */ lbu $t1,0x690($s0)
|
|
/* f099230: 92180690 */ lbu $t8,0x690($s0)
|
|
/* f099234: 3319fffd */ andi $t9,$t8,0xfffd
|
|
/* f099238: a2190690 */ sb $t9,0x690($s0)
|
|
/* f09923c: 92090690 */ lbu $t1,0x690($s0)
|
|
.PB0f099240:
|
|
/* f099240: 820b0008 */ lb $t3,0x8($s0)
|
|
/* f099244: 312afffe */ andi $t2,$t1,0xfffe
|
|
/* f099248: 11600106 */ beqz $t3,.PB0f099664
|
|
/* f09924c: a20a0690 */ sb $t2,0x690($s0)
|
|
/* f099250: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099254: 0fc2631c */ jal bgun0f098ca0
|
|
/* f099258: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f09925c: 92030003 */ lbu $v1,0x3($s0)
|
|
/* f099260: 8fac0038 */ lw $t4,0x38($sp)
|
|
/* f099264: 00404025 */ move $t0,$v0
|
|
/* f099268: 1183003a */ beq $t4,$v1,.PB0f099354
|
|
/* f09926c: 00000000 */ nop
|
|
/* f099270: 8e0d0024 */ lw $t5,0x24($s0)
|
|
/* f099274: 24010009 */ li $at,0x9
|
|
/* f099278: 11a10036 */ beq $t5,$at,.PB0f099354
|
|
/* f09927c: 00000000 */ nop
|
|
/* f099280: 8e0e0690 */ lw $t6,0x690($s0)
|
|
/* f099284: 24190001 */ li $t9,0x1
|
|
/* f099288: 24070001 */ li $a3,0x1
|
|
/* f09928c: 000ec180 */ sll $t8,$t6,0x6
|
|
/* f099290: 0701000a */ bgez $t8,.PB0f0992bc
|
|
/* f099294: 03232023 */ subu $a0,$t9,$v1
|
|
/* f099298: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f09929c: 02003025 */ move $a2,$s0
|
|
/* f0992a0: afa7002c */ sw $a3,0x2c($sp)
|
|
/* f0992a4: 0fc2631c */ jal bgun0f098ca0
|
|
/* f0992a8: afa20034 */ sw $v0,0x34($sp)
|
|
/* f0992ac: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f0992b0: 04410002 */ bgez $v0,.PB0f0992bc
|
|
/* f0992b4: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f0992b8: 00003825 */ move $a3,$zero
|
|
.PB0f0992bc:
|
|
/* f0992bc: 10e00018 */ beqz $a3,.PB0f099320
|
|
/* f0992c0: 8fa90040 */ lw $t1,0x40($sp)
|
|
/* f0992c4: 8d2a0000 */ lw $t2,0x0($t1)
|
|
/* f0992c8: 2401001a */ li $at,0x1a
|
|
/* f0992cc: 15410014 */ bne $t2,$at,.PB0f099320
|
|
/* f0992d0: 00000000 */ nop
|
|
/* f0992d4: 1500000f */ bnez $t0,.PB0f099314
|
|
/* f0992d8: 00000000 */ nop
|
|
/* f0992dc: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f0992e0: ae000018 */ sw $zero,0x18($s0)
|
|
/* f0992e4: 8fab0038 */ lw $t3,0x38($sp)
|
|
/* f0992e8: 24050001 */ li $a1,0x1
|
|
/* f0992ec: a20b0003 */ sb $t3,0x3($s0)
|
|
/* f0992f0: afa80034 */ sw $t0,0x34($sp)
|
|
/* f0992f4: afa7002c */ sw $a3,0x2c($sp)
|
|
/* f0992f8: 0fc273c0 */ jal bgunSetState
|
|
/* f0992fc: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099300: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f099304: 10400006 */ beqz $v0,.PB0f099320
|
|
/* f099308: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f09930c: 1000010c */ b .PB0f099740
|
|
/* f099310: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PB0f099314:
|
|
/* f099314: 05010002 */ bgez $t0,.PB0f099320
|
|
/* f099318: 00000000 */ nop
|
|
/* f09931c: 00003825 */ move $a3,$zero
|
|
.PB0f099320:
|
|
/* f099320: 10e0000c */ beqz $a3,.PB0f099354
|
|
/* f099324: 00000000 */ nop
|
|
/* f099328: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f09932c: 24050007 */ li $a1,0x7
|
|
/* f099330: 318dfffd */ andi $t5,$t4,0xfffd
|
|
/* f099334: a20d0690 */ sb $t5,0x690($s0)
|
|
/* f099338: afa80034 */ sw $t0,0x34($sp)
|
|
/* f09933c: 0fc273c0 */ jal bgunSetState
|
|
/* f099340: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099344: 10400003 */ beqz $v0,.PB0f099354
|
|
/* f099348: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f09934c: 100000fc */ b .PB0f099740
|
|
/* f099350: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PB0f099354:
|
|
/* f099354: 05010071 */ bgez $t0,.PB0f09951c
|
|
/* f099358: 8fae0040 */ lw $t6,0x40($sp)
|
|
/* f09935c: 8dc40000 */ lw $a0,0x0($t6)
|
|
/* f099360: 0fc2c6f4 */ jal weaponHasFlag
|
|
/* f099364: 24050001 */ li $a1,0x1
|
|
/* f099368: 1040000f */ beqz $v0,.PB0f0993a8
|
|
/* f09936c: 8faf0040 */ lw $t7,0x40($sp)
|
|
/* f099370: 8df80000 */ lw $t8,0x0($t7)
|
|
/* f099374: 24010022 */ li $at,0x22
|
|
/* f099378: 8fb90044 */ lw $t9,0x44($sp)
|
|
/* f09937c: 17010004 */ bne $t8,$at,.PB0f099390
|
|
/* f099380: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099384: 24010001 */ li $at,0x1
|
|
/* f099388: 13210007 */ beq $t9,$at,.PB0f0993a8
|
|
/* f09938c: 00000000 */ nop
|
|
.PB0f099390:
|
|
/* f099390: 0fc273c0 */ jal bgunSetState
|
|
/* f099394: 24050008 */ li $a1,0x8
|
|
/* f099398: 10400003 */ beqz $v0,.PB0f0993a8
|
|
/* f09939c: 00000000 */ nop
|
|
/* f0993a0: 100000e7 */ b .PB0f099740
|
|
/* f0993a4: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PB0f0993a8:
|
|
/* f0993a8: 3c09800a */ lui $t1,0x800a
|
|
/* f0993ac: 8d29e754 */ lw $t1,-0x18ac($t1)
|
|
/* f0993b0: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f0993b4: 02003025 */ move $a2,$s0
|
|
/* f0993b8: 81241580 */ lb $a0,0x1580($t1)
|
|
/* f0993bc: 0004102a */ slt $v0,$zero,$a0
|
|
/* f0993c0: 50400016 */ beqzl $v0,.PB0f09941c
|
|
/* f0993c4: 8fab0038 */ lw $t3,0x38($sp)
|
|
/* f0993c8: 28820024 */ slti $v0,$a0,0x24
|
|
/* f0993cc: 10400012 */ beqz $v0,.PB0f099418
|
|
/* f0993d0: 3c0a800a */ lui $t2,0x800a
|
|
/* f0993d4: 8d4ae758 */ lw $t2,-0x18a8($t2)
|
|
/* f0993d8: 2483ffff */ addiu $v1,$a0,-1
|
|
/* f0993dc: 000368c3 */ sra $t5,$v1,0x3
|
|
/* f0993e0: 8d4b0070 */ lw $t3,0x70($t2)
|
|
/* f0993e4: 3c0f800b */ lui $t7,0x800b
|
|
/* f0993e8: 30780007 */ andi $t8,$v1,0x7
|
|
/* f0993ec: 000b6080 */ sll $t4,$t3,0x2
|
|
/* f0993f0: 018b6021 */ addu $t4,$t4,$t3
|
|
/* f0993f4: 000c6140 */ sll $t4,$t4,0x5
|
|
/* f0993f8: 018d7021 */ addu $t6,$t4,$t5
|
|
/* f0993fc: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f099400: 91ef0e6f */ lbu $t7,0xe6f($t7)
|
|
/* f099404: 24190001 */ li $t9,0x1
|
|
/* f099408: 03194804 */ sllv $t1,$t9,$t8
|
|
/* f09940c: 01e91024 */ and $v0,$t7,$t1
|
|
/* f099410: 0002502b */ sltu $t2,$zero,$v0
|
|
/* f099414: 01401025 */ move $v0,$t2
|
|
.PB0f099418:
|
|
/* f099418: 8fab0038 */ lw $t3,0x38($sp)
|
|
.PB0f09941c:
|
|
/* f09941c: 544b0092 */ bnel $v0,$t3,.PB0f099668
|
|
/* f099420: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f099424: 920c0003 */ lbu $t4,0x3($s0)
|
|
/* f099428: 240d0001 */ li $t5,0x1
|
|
/* f09942c: 0fc2631c */ jal bgun0f098ca0
|
|
/* f099430: 01ac2023 */ subu $a0,$t5,$t4
|
|
/* f099434: 920e0003 */ lbu $t6,0x3($s0)
|
|
/* f099438: 24190001 */ li $t9,0x1
|
|
/* f09943c: afa20030 */ sw $v0,0x30($sp)
|
|
/* f099440: 02002025 */ move $a0,$s0
|
|
/* f099444: 0fc26459 */ jal bgun0f099188
|
|
/* f099448: 032e2823 */ subu $a1,$t9,$t6
|
|
/* f09944c: 1040001a */ beqz $v0,.PB0f0994b8
|
|
/* f099450: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f099454: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f099458: 24010014 */ li $at,0x14
|
|
/* f09945c: 8f0f0000 */ lw $t7,0x0($t8)
|
|
/* f099460: 11e10015 */ beq $t7,$at,.PB0f0994b8
|
|
/* f099464: 00000000 */ nop
|
|
/* f099468: 8f090008 */ lw $t1,0x8($t8)
|
|
/* f09946c: 02002025 */ move $a0,$s0
|
|
/* f099470: 24190001 */ li $t9,0x1
|
|
/* f099474: 8d2a0000 */ lw $t2,0x0($t1)
|
|
/* f099478: 000a6f40 */ sll $t5,$t2,0x1d
|
|
/* f09947c: 05a3000e */ bgezl $t5,.PB0f0994b8
|
|
/* f099480: 2403ffff */ li $v1,-1
|
|
/* f099484: 920c0003 */ lbu $t4,0x3($s0)
|
|
/* f099488: afa30030 */ sw $v1,0x30($sp)
|
|
/* f09948c: 0fc2c532 */ jal weaponGetFunction
|
|
/* f099490: 032c2823 */ subu $a1,$t9,$t4
|
|
/* f099494: 8c4e0000 */ lw $t6,0x0($v0)
|
|
/* f099498: 24010003 */ li $at,0x3
|
|
/* f09949c: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f0994a0: 31cf00ff */ andi $t7,$t6,0xff
|
|
/* f0994a4: 11e10004 */ beq $t7,$at,.PB0f0994b8
|
|
/* f0994a8: 00000000 */ nop
|
|
/* f0994ac: 10000002 */ b .PB0f0994b8
|
|
/* f0994b0: 2403ffff */ li $v1,-1
|
|
/* f0994b4: 2403ffff */ li $v1,-1
|
|
.PB0f0994b8:
|
|
/* f0994b8: 04610005 */ bgez $v1,.PB0f0994d0
|
|
/* f0994bc: 8fab0040 */ lw $t3,0x40($sp)
|
|
/* f0994c0: 92090690 */ lbu $t1,0x690($s0)
|
|
/* f0994c4: 352a0001 */ ori $t2,$t1,0x1
|
|
/* f0994c8: 10000066 */ b .PB0f099664
|
|
/* f0994cc: a20a0690 */ sb $t2,0x690($s0)
|
|
.PB0f0994d0:
|
|
/* f0994d0: 8d640000 */ lw $a0,0x0($t3)
|
|
/* f0994d4: 0fc2c6f4 */ jal weaponHasFlag
|
|
/* f0994d8: 3c050400 */ lui $a1,0x400
|
|
/* f0994dc: 50400006 */ beqzl $v0,.PB0f0994f8
|
|
/* f0994e0: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f0994e4: 920d0003 */ lbu $t5,0x3($s0)
|
|
/* f0994e8: 24010001 */ li $at,0x1
|
|
/* f0994ec: 55a1005e */ bnel $t5,$at,.PB0f099668
|
|
/* f0994f0: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f0994f4: 920c0690 */ lbu $t4,0x690($s0)
|
|
.PB0f0994f8:
|
|
/* f0994f8: 24050007 */ li $a1,0x7
|
|
/* f0994fc: 358e0002 */ ori $t6,$t4,0x2
|
|
/* f099500: a20e0690 */ sb $t6,0x690($s0)
|
|
/* f099504: 0fc273c0 */ jal bgunSetState
|
|
/* f099508: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09950c: 50400056 */ beqzl $v0,.PB0f099668
|
|
/* f099510: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f099514: 1000008a */ b .PB0f099740
|
|
/* f099518: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PB0f09951c:
|
|
/* f09951c: 5500001c */ bnezl $t0,.PB0f099590
|
|
/* f099520: 8e0d000c */ lw $t5,0xc($s0)
|
|
/* f099524: 8e0f000c */ lw $t7,0xc($s0)
|
|
/* f099528: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f09952c: 24050001 */ li $a1,0x1
|
|
/* f099530: 51e0000f */ beqzl $t7,.PB0f099570
|
|
/* f099534: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f099538: 8f090000 */ lw $t1,0x0($t8)
|
|
/* f09953c: 5120000c */ beqzl $t1,.PB0f099570
|
|
/* f099540: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f099544: 920a0690 */ lbu $t2,0x690($s0)
|
|
/* f099548: 24050003 */ li $a1,0x3
|
|
/* f09954c: 314bff7f */ andi $t3,$t2,0xff7f
|
|
/* f099550: a20b0690 */ sb $t3,0x690($s0)
|
|
/* f099554: 0fc273c0 */ jal bgunSetState
|
|
/* f099558: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09955c: 50400042 */ beqzl $v0,.PB0f099668
|
|
/* f099560: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f099564: 10000076 */ b .PB0f099740
|
|
/* f099568: 8fa2004c */ lw $v0,0x4c($sp)
|
|
/* f09956c: ae00001c */ sw $zero,0x1c($s0)
|
|
.PB0f099570:
|
|
/* f099570: ae000018 */ sw $zero,0x18($s0)
|
|
/* f099574: 0fc273c0 */ jal bgunSetState
|
|
/* f099578: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09957c: 5040003a */ beqzl $v0,.PB0f099668
|
|
/* f099580: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f099584: 1000006e */ b .PB0f099740
|
|
/* f099588: 8fa2004c */ lw $v0,0x4c($sp)
|
|
/* f09958c: 8e0d000c */ lw $t5,0xc($s0)
|
|
.PB0f099590:
|
|
/* f099590: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f099594: 55a0000a */ bnezl $t5,.PB0f0995c0
|
|
/* f099598: 8f090000 */ lw $t1,0x0($t8)
|
|
/* f09959c: 8e1906d4 */ lw $t9,0x6d4($s0)
|
|
/* f0995a0: 001976c0 */ sll $t6,$t9,0x1b
|
|
/* f0995a4: 05c3001c */ bgezl $t6,.PB0f099618
|
|
/* f0995a8: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f0995ac: 920f0003 */ lbu $t7,0x3($s0)
|
|
/* f0995b0: 24010001 */ li $at,0x1
|
|
/* f0995b4: 55e10018 */ bnel $t7,$at,.PB0f099618
|
|
/* f0995b8: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f0995bc: 8f090000 */ lw $t1,0x0($t8)
|
|
.PB0f0995c0:
|
|
/* f0995c0: 3c0a800a */ lui $t2,0x800a
|
|
/* f0995c4: 51200014 */ beqzl $t1,.PB0f099618
|
|
/* f0995c8: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f0995cc: 8d4ae754 */ lw $t2,-0x18ac($t2)
|
|
/* f0995d0: 240b0001 */ li $t3,0x1
|
|
/* f0995d4: 24050004 */ li $a1,0x4
|
|
/* f0995d8: ad401600 */ sw $zero,0x1600($t2)
|
|
/* f0995dc: 920d06d7 */ lbu $t5,0x6d7($s0)
|
|
/* f0995e0: ae0b0020 */ sw $t3,0x20($s0)
|
|
/* f0995e4: ae000018 */ sw $zero,0x18($s0)
|
|
/* f0995e8: 31b9ffef */ andi $t9,$t5,0xffef
|
|
/* f0995ec: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f0995f0: ae000014 */ sw $zero,0x14($s0)
|
|
/* f0995f4: a21906d7 */ sb $t9,0x6d7($s0)
|
|
/* f0995f8: afa80034 */ sw $t0,0x34($sp)
|
|
/* f0995fc: 0fc273c0 */ jal bgunSetState
|
|
/* f099600: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099604: 10400003 */ beqz $v0,.PB0f099614
|
|
/* f099608: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f09960c: 1000004c */ b .PB0f099740
|
|
/* f099610: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PB0f099614:
|
|
/* f099614: 8e020024 */ lw $v0,0x24($s0)
|
|
.PB0f099618:
|
|
/* f099618: 24010009 */ li $at,0x9
|
|
/* f09961c: 50400012 */ beqzl $v0,.PB0f099668
|
|
/* f099620: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f099624: ae020020 */ sw $v0,0x20($s0)
|
|
/* f099628: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09962c: ae000018 */ sw $zero,0x18($s0)
|
|
/* f099630: 1441000c */ bne $v0,$at,.PB0f099664
|
|
/* f099634: ae000024 */ sw $zero,0x24($s0)
|
|
/* f099638: 29010002 */ slti $at,$t0,0x2
|
|
/* f09963c: 5020000a */ beqzl $at,.PB0f099668
|
|
/* f099640: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f099644: 05000007 */ bltz $t0,.PB0f099664
|
|
/* f099648: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09964c: 0fc273c0 */ jal bgunSetState
|
|
/* f099650: 24050001 */ li $a1,0x1
|
|
/* f099654: 50400004 */ beqzl $v0,.PB0f099668
|
|
/* f099658: 8fae0044 */ lw $t6,0x44($sp)
|
|
/* f09965c: 10000038 */ b .PB0f099740
|
|
/* f099660: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.PB0f099664:
|
|
/* f099664: 8fae0044 */ lw $t6,0x44($sp)
|
|
.PB0f099668:
|
|
/* f099668: 8faf0040 */ lw $t7,0x40($sp)
|
|
/* f09966c: 55c00034 */ bnezl $t6,.PB0f099740
|
|
/* f099670: 00001025 */ move $v0,$zero
|
|
/* f099674: 8df80008 */ lw $t8,0x8($t7)
|
|
/* f099678: 8fb90044 */ lw $t9,0x44($sp)
|
|
/* f09967c: 3c0d800a */ lui $t5,0x800a
|
|
/* f099680: 8f090000 */ lw $t1,0x0($t8)
|
|
/* f099684: 00196100 */ sll $t4,$t9,0x4
|
|
/* f099688: 01996023 */ subu $t4,$t4,$t9
|
|
/* f09968c: 00095f40 */ sll $t3,$t1,0x1d
|
|
/* f099690: 05610005 */ bgez $t3,.PB0f0996a8
|
|
/* f099694: 000c6080 */ sll $t4,$t4,0x2
|
|
/* f099698: 0fc2881e */ jal bgunAutoSwitchWeapon
|
|
/* f09969c: 00000000 */ nop
|
|
/* f0996a0: 10000027 */ b .PB0f099740
|
|
/* f0996a4: 00001025 */ move $v0,$zero
|
|
.PB0f0996a8:
|
|
/* f0996a8: 01996021 */ addu $t4,$t4,$t9
|
|
/* f0996ac: 8dade754 */ lw $t5,-0x18ac($t5)
|
|
/* f0996b0: 920e0690 */ lbu $t6,0x690($s0)
|
|
/* f0996b4: 000c60c0 */ sll $t4,$t4,0x3
|
|
/* f0996b8: 01996021 */ addu $t4,$t4,$t9
|
|
/* f0996bc: 000c6080 */ sll $t4,$t4,0x2
|
|
/* f0996c0: 01ac1023 */ subu $v0,$t5,$t4
|
|
/* f0996c4: 31cf0001 */ andi $t7,$t6,0x1
|
|
/* f0996c8: 15e00004 */ bnez $t7,.PB0f0996dc
|
|
/* f0996cc: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f0996d0: 82180008 */ lb $t8,0x8($s0)
|
|
/* f0996d4: 57000012 */ bnezl $t8,.PB0f099720
|
|
/* f0996d8: 904c0690 */ lbu $t4,0x690($v0)
|
|
.PB0f0996dc:
|
|
/* f0996dc: 90490690 */ lbu $t1,0x690($v0)
|
|
/* f0996e0: 312a0001 */ andi $t2,$t1,0x1
|
|
/* f0996e4: 55400005 */ bnezl $t2,.PB0f0996fc
|
|
/* f0996e8: 8e19000c */ lw $t9,0xc($s0)
|
|
/* f0996ec: 804b0008 */ lb $t3,0x8($v0)
|
|
/* f0996f0: 5560000b */ bnezl $t3,.PB0f099720
|
|
/* f0996f4: 904c0690 */ lbu $t4,0x690($v0)
|
|
/* f0996f8: 8e19000c */ lw $t9,0xc($s0)
|
|
.PB0f0996fc:
|
|
/* f0996fc: 17200004 */ bnez $t9,.PB0f099710
|
|
/* f099700: 00000000 */ nop
|
|
/* f099704: 8c4d000c */ lw $t5,0xc($v0)
|
|
/* f099708: 51a00005 */ beqzl $t5,.PB0f099720
|
|
/* f09970c: 904c0690 */ lbu $t4,0x690($v0)
|
|
.PB0f099710:
|
|
/* f099710: 0fc2881e */ jal bgunAutoSwitchWeapon
|
|
/* f099714: afa20024 */ sw $v0,0x24($sp)
|
|
/* f099718: 8fa20024 */ lw $v0,0x24($sp)
|
|
/* f09971c: 904c0690 */ lbu $t4,0x690($v0)
|
|
.PB0f099720:
|
|
/* f099720: 3198fffe */ andi $t8,$t4,0xfffe
|
|
/* f099724: a0580690 */ sb $t8,0x690($v0)
|
|
/* f099728: 920a0690 */ lbu $t2,0x690($s0)
|
|
/* f09972c: 33090001 */ andi $t1,$t8,0x1
|
|
/* f099730: 314bfffe */ andi $t3,$t2,0xfffe
|
|
/* f099734: 012bc825 */ or $t9,$t1,$t3
|
|
/* f099738: a2190690 */ sb $t9,0x690($s0)
|
|
/* f09973c: 00001025 */ move $v0,$zero
|
|
.PB0f099740:
|
|
/* f099740: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f099744: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f099748: 27bd0040 */ addiu $sp,$sp,0x40
|
|
/* f09974c: 03e00008 */ jr $ra
|
|
/* f099750: 00000000 */ nop
|
|
);
|
|
#else
|
|
GLOBAL_ASM(
|
|
glabel bgunTickIncIdle
|
|
/* f0991e4: 27bdffc0 */ addiu $sp,$sp,-64
|
|
/* f0991e8: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f0991ec: afb00018 */ sw $s0,0x18($sp)
|
|
/* f0991f0: 00c08025 */ or $s0,$a2,$zero
|
|
/* f0991f4: afa40040 */ sw $a0,0x40($sp)
|
|
/* f0991f8: afa50044 */ sw $a1,0x44($sp)
|
|
/* f0991fc: 0fc2a31f */ jal bgunIsUsingSecondaryFunction
|
|
/* f099200: afa7004c */ sw $a3,0x4c($sp)
|
|
/* f099204: afa20038 */ sw $v0,0x38($sp)
|
|
/* f099208: 8e0e0684 */ lw $t6,0x684($s0)
|
|
/* f09920c: 44802000 */ mtc1 $zero,$f4
|
|
/* f099210: a20005dc */ sb $zero,0x5dc($s0)
|
|
/* f099214: ae000558 */ sw $zero,0x558($s0)
|
|
/* f099218: ae0e0688 */ sw $t6,0x688($s0)
|
|
/* f09921c: e60405fc */ swc1 $f4,0x5fc($s0)
|
|
/* f099220: 0fc26f56 */ jal bgunIsReadyToSwitch
|
|
/* f099224: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099228: 10400007 */ beqz $v0,.L0f099248
|
|
/* f09922c: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099230: 0fc27346 */ jal bgunSetState
|
|
/* f099234: 24050005 */ addiu $a1,$zero,0x5
|
|
/* f099238: 50400004 */ beqzl $v0,.L0f09924c
|
|
/* f09923c: 8faf0038 */ lw $t7,0x38($sp)
|
|
/* f099240: 1000014a */ b .L0f09976c
|
|
/* f099244: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.L0f099248:
|
|
/* f099248: 8faf0038 */ lw $t7,0x38($sp)
|
|
.L0f09924c:
|
|
/* f09924c: 92180003 */ lbu $t8,0x3($s0)
|
|
/* f099250: 02003025 */ or $a2,$s0,$zero
|
|
/* f099254: 55f80005 */ bnel $t7,$t8,.L0f09926c
|
|
/* f099258: 920a0690 */ lbu $t2,0x690($s0)
|
|
/* f09925c: 92190690 */ lbu $t9,0x690($s0)
|
|
/* f099260: 3329fffd */ andi $t1,$t9,0xfffd
|
|
/* f099264: a2090690 */ sb $t1,0x690($s0)
|
|
/* f099268: 920a0690 */ lbu $t2,0x690($s0)
|
|
.L0f09926c:
|
|
/* f09926c: 820c0008 */ lb $t4,0x8($s0)
|
|
/* f099270: 314bfffe */ andi $t3,$t2,0xfffe
|
|
/* f099274: 11800106 */ beqz $t4,.L0f099690
|
|
/* f099278: a20b0690 */ sb $t3,0x690($s0)
|
|
/* f09927c: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099280: 0fc26328 */ jal bgun0f098ca0
|
|
/* f099284: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f099288: 92030003 */ lbu $v1,0x3($s0)
|
|
/* f09928c: 8fad0038 */ lw $t5,0x38($sp)
|
|
/* f099290: 00404025 */ or $t0,$v0,$zero
|
|
/* f099294: 11a3003a */ beq $t5,$v1,.L0f099380
|
|
/* f099298: 00000000 */ nop
|
|
/* f09929c: 8e0e0024 */ lw $t6,0x24($s0)
|
|
/* f0992a0: 24010009 */ addiu $at,$zero,0x9
|
|
/* f0992a4: 11c10036 */ beq $t6,$at,.L0f099380
|
|
/* f0992a8: 00000000 */ nop
|
|
/* f0992ac: 8e0f0690 */ lw $t7,0x690($s0)
|
|
/* f0992b0: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f0992b4: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f0992b8: 000fc980 */ sll $t9,$t7,0x6
|
|
/* f0992bc: 0721000a */ bgez $t9,.L0f0992e8
|
|
/* f0992c0: 01232023 */ subu $a0,$t1,$v1
|
|
/* f0992c4: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f0992c8: 02003025 */ or $a2,$s0,$zero
|
|
/* f0992cc: afa7002c */ sw $a3,0x2c($sp)
|
|
/* f0992d0: 0fc26328 */ jal bgun0f098ca0
|
|
/* f0992d4: afa20034 */ sw $v0,0x34($sp)
|
|
/* f0992d8: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f0992dc: 04410002 */ bgez $v0,.L0f0992e8
|
|
/* f0992e0: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f0992e4: 00003825 */ or $a3,$zero,$zero
|
|
.L0f0992e8:
|
|
/* f0992e8: 10e00018 */ beqz $a3,.L0f09934c
|
|
/* f0992ec: 8faa0040 */ lw $t2,0x40($sp)
|
|
/* f0992f0: 8d4b0000 */ lw $t3,0x0($t2)
|
|
/* f0992f4: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f0992f8: 15610014 */ bne $t3,$at,.L0f09934c
|
|
/* f0992fc: 00000000 */ nop
|
|
/* f099300: 1500000f */ bnez $t0,.L0f099340
|
|
/* f099304: 00000000 */ nop
|
|
/* f099308: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09930c: ae000018 */ sw $zero,0x18($s0)
|
|
/* f099310: 8fac0038 */ lw $t4,0x38($sp)
|
|
/* f099314: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f099318: a20c0003 */ sb $t4,0x3($s0)
|
|
/* f09931c: afa80034 */ sw $t0,0x34($sp)
|
|
/* f099320: afa7002c */ sw $a3,0x2c($sp)
|
|
/* f099324: 0fc27346 */ jal bgunSetState
|
|
/* f099328: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f09932c: 8fa7002c */ lw $a3,0x2c($sp)
|
|
/* f099330: 10400006 */ beqz $v0,.L0f09934c
|
|
/* f099334: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f099338: 1000010c */ b .L0f09976c
|
|
/* f09933c: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.L0f099340:
|
|
/* f099340: 05010002 */ bgez $t0,.L0f09934c
|
|
/* f099344: 00000000 */ nop
|
|
/* f099348: 00003825 */ or $a3,$zero,$zero
|
|
.L0f09934c:
|
|
/* f09934c: 10e0000c */ beqz $a3,.L0f099380
|
|
/* f099350: 00000000 */ nop
|
|
/* f099354: 920d0690 */ lbu $t5,0x690($s0)
|
|
/* f099358: 24050007 */ addiu $a1,$zero,0x7
|
|
/* f09935c: 31aefffd */ andi $t6,$t5,0xfffd
|
|
/* f099360: a20e0690 */ sb $t6,0x690($s0)
|
|
/* f099364: afa80034 */ sw $t0,0x34($sp)
|
|
/* f099368: 0fc27346 */ jal bgunSetState
|
|
/* f09936c: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099370: 10400003 */ beqz $v0,.L0f099380
|
|
/* f099374: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f099378: 100000fc */ b .L0f09976c
|
|
/* f09937c: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.L0f099380:
|
|
/* f099380: 05010071 */ bgez $t0,.L0f099548
|
|
/* f099384: 8faf0040 */ lw $t7,0x40($sp)
|
|
/* f099388: 8de40000 */ lw $a0,0x0($t7)
|
|
/* f09938c: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f099390: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f099394: 1040000f */ beqz $v0,.L0f0993d4
|
|
/* f099398: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f09939c: 8f190000 */ lw $t9,0x0($t8)
|
|
/* f0993a0: 24010022 */ addiu $at,$zero,0x22
|
|
/* f0993a4: 8fa90044 */ lw $t1,0x44($sp)
|
|
/* f0993a8: 17210004 */ bne $t9,$at,.L0f0993bc
|
|
/* f0993ac: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0993b0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0993b4: 11210007 */ beq $t1,$at,.L0f0993d4
|
|
/* f0993b8: 00000000 */ nop
|
|
.L0f0993bc:
|
|
/* f0993bc: 0fc27346 */ jal bgunSetState
|
|
/* f0993c0: 24050008 */ addiu $a1,$zero,0x8
|
|
/* f0993c4: 10400003 */ beqz $v0,.L0f0993d4
|
|
/* f0993c8: 00000000 */ nop
|
|
/* f0993cc: 100000e7 */ b .L0f09976c
|
|
/* f0993d0: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.L0f0993d4:
|
|
/* f0993d4: 3c0a800a */ lui $t2,%hi(g_Vars+0x284)
|
|
/* f0993d8: 8d4aa244 */ lw $t2,%lo(g_Vars+0x284)($t2)
|
|
/* f0993dc: 8fa50040 */ lw $a1,0x40($sp)
|
|
/* f0993e0: 02003025 */ or $a2,$s0,$zero
|
|
/* f0993e4: 81441580 */ lb $a0,0x1580($t2)
|
|
/* f0993e8: 0004102a */ slt $v0,$zero,$a0
|
|
/* f0993ec: 50400016 */ beqzl $v0,.L0f099448
|
|
/* f0993f0: 8fac0038 */ lw $t4,0x38($sp)
|
|
/* f0993f4: 28820024 */ slti $v0,$a0,0x24
|
|
/* f0993f8: 10400012 */ beqz $v0,.L0f099444
|
|
/* f0993fc: 3c0b800a */ lui $t3,%hi(g_Vars+0x288)
|
|
/* f099400: 8d6ba248 */ lw $t3,%lo(g_Vars+0x288)($t3)
|
|
/* f099404: 2483ffff */ addiu $v1,$a0,-1
|
|
/* f099408: 000370c3 */ sra $t6,$v1,0x3
|
|
/* f09940c: 8d6c0070 */ lw $t4,0x70($t3)
|
|
/* f099410: 3c18800b */ lui $t8,%hi(g_PlayerConfigsArray+0x97)
|
|
/* f099414: 30790007 */ andi $t9,$v1,0x7
|
|
/* f099418: 000c6880 */ sll $t5,$t4,0x2
|
|
/* f09941c: 01ac6821 */ addu $t5,$t5,$t4
|
|
/* f099420: 000d6940 */ sll $t5,$t5,0x5
|
|
/* f099424: 01ae7821 */ addu $t7,$t5,$t6
|
|
/* f099428: 030fc021 */ addu $t8,$t8,$t7
|
|
/* f09942c: 9318c84f */ lbu $t8,%lo(g_PlayerConfigsArray+0x97)($t8)
|
|
/* f099430: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f099434: 03295004 */ sllv $t2,$t1,$t9
|
|
/* f099438: 030a1024 */ and $v0,$t8,$t2
|
|
/* f09943c: 0002582b */ sltu $t3,$zero,$v0
|
|
/* f099440: 01601025 */ or $v0,$t3,$zero
|
|
.L0f099444:
|
|
/* f099444: 8fac0038 */ lw $t4,0x38($sp)
|
|
.L0f099448:
|
|
/* f099448: 544c0092 */ bnel $v0,$t4,.L0f099694
|
|
/* f09944c: 8faf0044 */ lw $t7,0x44($sp)
|
|
/* f099450: 920d0003 */ lbu $t5,0x3($s0)
|
|
/* f099454: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f099458: 0fc26328 */ jal bgun0f098ca0
|
|
/* f09945c: 01cd2023 */ subu $a0,$t6,$t5
|
|
/* f099460: 920f0003 */ lbu $t7,0x3($s0)
|
|
/* f099464: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f099468: afa20030 */ sw $v0,0x30($sp)
|
|
/* f09946c: 02002025 */ or $a0,$s0,$zero
|
|
/* f099470: 0fc26462 */ jal bgun0f099188
|
|
/* f099474: 012f2823 */ subu $a1,$t1,$t7
|
|
/* f099478: 1040001a */ beqz $v0,.L0f0994e4
|
|
/* f09947c: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f099480: 8fb90040 */ lw $t9,0x40($sp)
|
|
/* f099484: 24010014 */ addiu $at,$zero,0x14
|
|
/* f099488: 8f380000 */ lw $t8,0x0($t9)
|
|
/* f09948c: 13010015 */ beq $t8,$at,.L0f0994e4
|
|
/* f099490: 00000000 */ nop
|
|
/* f099494: 8f2a0008 */ lw $t2,0x8($t9)
|
|
/* f099498: 02002025 */ or $a0,$s0,$zero
|
|
/* f09949c: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f0994a0: 8d4b0000 */ lw $t3,0x0($t2)
|
|
/* f0994a4: 000b7740 */ sll $t6,$t3,0x1d
|
|
/* f0994a8: 05c3000e */ bgezl $t6,.L0f0994e4
|
|
/* f0994ac: 2403ffff */ addiu $v1,$zero,-1
|
|
/* f0994b0: 920d0003 */ lbu $t5,0x3($s0)
|
|
/* f0994b4: afa30030 */ sw $v1,0x30($sp)
|
|
/* f0994b8: 0fc2c42e */ jal weaponGetFunction
|
|
/* f0994bc: 012d2823 */ subu $a1,$t1,$t5
|
|
/* f0994c0: 8c4f0000 */ lw $t7,0x0($v0)
|
|
/* f0994c4: 24010003 */ addiu $at,$zero,0x3
|
|
/* f0994c8: 8fa30030 */ lw $v1,0x30($sp)
|
|
/* f0994cc: 31f800ff */ andi $t8,$t7,0xff
|
|
/* f0994d0: 13010004 */ beq $t8,$at,.L0f0994e4
|
|
/* f0994d4: 00000000 */ nop
|
|
/* f0994d8: 10000002 */ b .L0f0994e4
|
|
/* f0994dc: 2403ffff */ addiu $v1,$zero,-1
|
|
/* f0994e0: 2403ffff */ addiu $v1,$zero,-1
|
|
.L0f0994e4:
|
|
/* f0994e4: 04610005 */ bgez $v1,.L0f0994fc
|
|
/* f0994e8: 8fac0040 */ lw $t4,0x40($sp)
|
|
/* f0994ec: 920a0690 */ lbu $t2,0x690($s0)
|
|
/* f0994f0: 354b0001 */ ori $t3,$t2,0x1
|
|
/* f0994f4: 10000066 */ b .L0f099690
|
|
/* f0994f8: a20b0690 */ sb $t3,0x690($s0)
|
|
.L0f0994fc:
|
|
/* f0994fc: 8d840000 */ lw $a0,0x0($t4)
|
|
/* f099500: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f099504: 3c050400 */ lui $a1,0x400
|
|
/* f099508: 50400006 */ beqzl $v0,.L0f099524
|
|
/* f09950c: 920d0690 */ lbu $t5,0x690($s0)
|
|
/* f099510: 920e0003 */ lbu $t6,0x3($s0)
|
|
/* f099514: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099518: 55c1005e */ bnel $t6,$at,.L0f099694
|
|
/* f09951c: 8faf0044 */ lw $t7,0x44($sp)
|
|
/* f099520: 920d0690 */ lbu $t5,0x690($s0)
|
|
.L0f099524:
|
|
/* f099524: 24050007 */ addiu $a1,$zero,0x7
|
|
/* f099528: 35af0002 */ ori $t7,$t5,0x2
|
|
/* f09952c: a20f0690 */ sb $t7,0x690($s0)
|
|
/* f099530: 0fc27346 */ jal bgunSetState
|
|
/* f099534: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099538: 50400056 */ beqzl $v0,.L0f099694
|
|
/* f09953c: 8faf0044 */ lw $t7,0x44($sp)
|
|
/* f099540: 1000008a */ b .L0f09976c
|
|
/* f099544: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.L0f099548:
|
|
/* f099548: 5500001c */ bnezl $t0,.L0f0995bc
|
|
/* f09954c: 8e0e000c */ lw $t6,0xc($s0)
|
|
/* f099550: 8e18000c */ lw $t8,0xc($s0)
|
|
/* f099554: 8fb90040 */ lw $t9,0x40($sp)
|
|
/* f099558: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f09955c: 5300000f */ beqzl $t8,.L0f09959c
|
|
/* f099560: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f099564: 8f2a0000 */ lw $t2,0x0($t9)
|
|
/* f099568: 5140000c */ beqzl $t2,.L0f09959c
|
|
/* f09956c: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f099570: 920b0690 */ lbu $t3,0x690($s0)
|
|
/* f099574: 24050003 */ addiu $a1,$zero,0x3
|
|
/* f099578: 316cff7f */ andi $t4,$t3,0xff7f
|
|
/* f09957c: a20c0690 */ sb $t4,0x690($s0)
|
|
/* f099580: 0fc27346 */ jal bgunSetState
|
|
/* f099584: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099588: 50400042 */ beqzl $v0,.L0f099694
|
|
/* f09958c: 8faf0044 */ lw $t7,0x44($sp)
|
|
/* f099590: 10000076 */ b .L0f09976c
|
|
/* f099594: 8fa2004c */ lw $v0,0x4c($sp)
|
|
/* f099598: ae00001c */ sw $zero,0x1c($s0)
|
|
.L0f09959c:
|
|
/* f09959c: ae000018 */ sw $zero,0x18($s0)
|
|
/* f0995a0: 0fc27346 */ jal bgunSetState
|
|
/* f0995a4: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f0995a8: 5040003a */ beqzl $v0,.L0f099694
|
|
/* f0995ac: 8faf0044 */ lw $t7,0x44($sp)
|
|
/* f0995b0: 1000006e */ b .L0f09976c
|
|
/* f0995b4: 8fa2004c */ lw $v0,0x4c($sp)
|
|
/* f0995b8: 8e0e000c */ lw $t6,0xc($s0)
|
|
.L0f0995bc:
|
|
/* f0995bc: 8fb90040 */ lw $t9,0x40($sp)
|
|
/* f0995c0: 55c0000a */ bnezl $t6,.L0f0995ec
|
|
/* f0995c4: 8f2a0000 */ lw $t2,0x0($t9)
|
|
/* f0995c8: 8e0906d4 */ lw $t1,0x6d4($s0)
|
|
/* f0995cc: 00097ec0 */ sll $t7,$t1,0x1b
|
|
/* f0995d0: 05e3001c */ bgezl $t7,.L0f099644
|
|
/* f0995d4: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f0995d8: 92180003 */ lbu $t8,0x3($s0)
|
|
/* f0995dc: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0995e0: 57010018 */ bnel $t8,$at,.L0f099644
|
|
/* f0995e4: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f0995e8: 8f2a0000 */ lw $t2,0x0($t9)
|
|
.L0f0995ec:
|
|
/* f0995ec: 3c0b800a */ lui $t3,%hi(g_Vars+0x284)
|
|
/* f0995f0: 51400014 */ beqzl $t2,.L0f099644
|
|
/* f0995f4: 8e020024 */ lw $v0,0x24($s0)
|
|
/* f0995f8: 8d6ba244 */ lw $t3,%lo(g_Vars+0x284)($t3)
|
|
/* f0995fc: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f099600: 24050004 */ addiu $a1,$zero,0x4
|
|
/* f099604: ad601600 */ sw $zero,0x1600($t3)
|
|
/* f099608: 920e06d7 */ lbu $t6,0x6d7($s0)
|
|
/* f09960c: ae0c0020 */ sw $t4,0x20($s0)
|
|
/* f099610: ae000018 */ sw $zero,0x18($s0)
|
|
/* f099614: 31c9ffef */ andi $t1,$t6,0xffef
|
|
/* f099618: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09961c: ae000014 */ sw $zero,0x14($s0)
|
|
/* f099620: a20906d7 */ sb $t1,0x6d7($s0)
|
|
/* f099624: afa80034 */ sw $t0,0x34($sp)
|
|
/* f099628: 0fc27346 */ jal bgunSetState
|
|
/* f09962c: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099630: 10400003 */ beqz $v0,.L0f099640
|
|
/* f099634: 8fa80034 */ lw $t0,0x34($sp)
|
|
/* f099638: 1000004c */ b .L0f09976c
|
|
/* f09963c: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.L0f099640:
|
|
/* f099640: 8e020024 */ lw $v0,0x24($s0)
|
|
.L0f099644:
|
|
/* f099644: 24010009 */ addiu $at,$zero,0x9
|
|
/* f099648: 50400012 */ beqzl $v0,.L0f099694
|
|
/* f09964c: 8faf0044 */ lw $t7,0x44($sp)
|
|
/* f099650: ae020020 */ sw $v0,0x20($s0)
|
|
/* f099654: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f099658: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09965c: 1441000c */ bne $v0,$at,.L0f099690
|
|
/* f099660: ae000024 */ sw $zero,0x24($s0)
|
|
/* f099664: 29010002 */ slti $at,$t0,0x2
|
|
/* f099668: 5020000a */ beqzl $at,.L0f099694
|
|
/* f09966c: 8faf0044 */ lw $t7,0x44($sp)
|
|
/* f099670: 05000007 */ bltz $t0,.L0f099690
|
|
/* f099674: 8fa40044 */ lw $a0,0x44($sp)
|
|
/* f099678: 0fc27346 */ jal bgunSetState
|
|
/* f09967c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f099680: 50400004 */ beqzl $v0,.L0f099694
|
|
/* f099684: 8faf0044 */ lw $t7,0x44($sp)
|
|
/* f099688: 10000038 */ b .L0f09976c
|
|
/* f09968c: 8fa2004c */ lw $v0,0x4c($sp)
|
|
.L0f099690:
|
|
/* f099690: 8faf0044 */ lw $t7,0x44($sp)
|
|
.L0f099694:
|
|
/* f099694: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f099698: 55e00034 */ bnezl $t7,.L0f09976c
|
|
/* f09969c: 00001025 */ or $v0,$zero,$zero
|
|
/* f0996a0: 8f190008 */ lw $t9,0x8($t8)
|
|
/* f0996a4: 8fa90044 */ lw $t1,0x44($sp)
|
|
/* f0996a8: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
|
|
/* f0996ac: 8f2a0000 */ lw $t2,0x0($t9)
|
|
/* f0996b0: 00096900 */ sll $t5,$t1,0x4
|
|
/* f0996b4: 01a96823 */ subu $t5,$t5,$t1
|
|
/* f0996b8: 000a6740 */ sll $t4,$t2,0x1d
|
|
/* f0996bc: 05810005 */ bgez $t4,.L0f0996d4
|
|
/* f0996c0: 000d6880 */ sll $t5,$t5,0x2
|
|
/* f0996c4: 0fc2877d */ jal bgunAutoSwitchWeapon
|
|
/* f0996c8: 00000000 */ nop
|
|
/* f0996cc: 10000027 */ b .L0f09976c
|
|
/* f0996d0: 00001025 */ or $v0,$zero,$zero
|
|
.L0f0996d4:
|
|
/* f0996d4: 01a96821 */ addu $t5,$t5,$t1
|
|
/* f0996d8: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
|
|
/* f0996dc: 920f0690 */ lbu $t7,0x690($s0)
|
|
/* f0996e0: 000d68c0 */ sll $t5,$t5,0x3
|
|
/* f0996e4: 01a96821 */ addu $t5,$t5,$t1
|
|
/* f0996e8: 000d6880 */ sll $t5,$t5,0x2
|
|
/* f0996ec: 01cd1023 */ subu $v0,$t6,$t5
|
|
/* f0996f0: 31f80001 */ andi $t8,$t7,0x1
|
|
/* f0996f4: 17000004 */ bnez $t8,.L0f099708
|
|
/* f0996f8: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f0996fc: 82190008 */ lb $t9,0x8($s0)
|
|
/* f099700: 57200012 */ bnezl $t9,.L0f09974c
|
|
/* f099704: 904d0690 */ lbu $t5,0x690($v0)
|
|
.L0f099708:
|
|
/* f099708: 904a0690 */ lbu $t2,0x690($v0)
|
|
/* f09970c: 314b0001 */ andi $t3,$t2,0x1
|
|
/* f099710: 55600005 */ bnezl $t3,.L0f099728
|
|
/* f099714: 8e09000c */ lw $t1,0xc($s0)
|
|
/* f099718: 804c0008 */ lb $t4,0x8($v0)
|
|
/* f09971c: 5580000b */ bnezl $t4,.L0f09974c
|
|
/* f099720: 904d0690 */ lbu $t5,0x690($v0)
|
|
/* f099724: 8e09000c */ lw $t1,0xc($s0)
|
|
.L0f099728:
|
|
/* f099728: 15200004 */ bnez $t1,.L0f09973c
|
|
/* f09972c: 00000000 */ nop
|
|
/* f099730: 8c4e000c */ lw $t6,0xc($v0)
|
|
/* f099734: 51c00005 */ beqzl $t6,.L0f09974c
|
|
/* f099738: 904d0690 */ lbu $t5,0x690($v0)
|
|
.L0f09973c:
|
|
/* f09973c: 0fc2877d */ jal bgunAutoSwitchWeapon
|
|
/* f099740: afa20024 */ sw $v0,0x24($sp)
|
|
/* f099744: 8fa20024 */ lw $v0,0x24($sp)
|
|
/* f099748: 904d0690 */ lbu $t5,0x690($v0)
|
|
.L0f09974c:
|
|
/* f09974c: 31b9fffe */ andi $t9,$t5,0xfffe
|
|
/* f099750: a0590690 */ sb $t9,0x690($v0)
|
|
/* f099754: 920b0690 */ lbu $t3,0x690($s0)
|
|
/* f099758: 332a0001 */ andi $t2,$t9,0x1
|
|
/* f09975c: 316cfffe */ andi $t4,$t3,0xfffe
|
|
/* f099760: 014c4825 */ or $t1,$t2,$t4
|
|
/* f099764: a2090690 */ sb $t1,0x690($s0)
|
|
/* f099768: 00001025 */ or $v0,$zero,$zero
|
|
.L0f09976c:
|
|
/* f09976c: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f099770: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f099774: 27bd0040 */ addiu $sp,$sp,0x40
|
|
/* f099778: 03e00008 */ jr $ra
|
|
/* f09977c: 00000000 */ nop
|
|
);
|
|
#endif
|
|
|
|
// Mismatch: regalloc
|
|
//s32 bgunTickIncIdle(struct handweaponinfo *info, s32 handnum, struct hand *hand, s32 lvupdate)
|
|
//{
|
|
// bool usesec;
|
|
// s32 gunfunc = bgunIsUsingSecondaryFunction();
|
|
// s32 sp34;
|
|
// s32 sp30;
|
|
// bool changefunc;
|
|
// s32 next;
|
|
// struct hand *lhand;
|
|
// struct weaponfunc *func;
|
|
//
|
|
// hand->lastdirvalid = false;
|
|
// hand->burstbullets = 0;
|
|
//#if VERSION < VERSION_PAL_FINAL
|
|
// hand->animframeincfreal = hand->animframeinc;
|
|
//#endif
|
|
// hand->shotremainder = 0;
|
|
//
|
|
// // If ready to change gun due to manual switch, just do that
|
|
// if (bgunIsReadyToSwitch(handnum) && bgunSetState(handnum, HANDSTATE_CHANGEGUN)) {
|
|
// return lvupdate;
|
|
// }
|
|
//
|
|
// if (gunfunc == hand->gset.weaponfunc) {
|
|
// hand->unk0cc8_07 = false;
|
|
// }
|
|
//
|
|
// hand->unk0cc8_08 = false;
|
|
//
|
|
// if (hand->inuse) {
|
|
// sp34 = bgun0f098ca0(hand->gset.weaponfunc, info, hand);
|
|
//
|
|
// // Handle changing gun function
|
|
// if (gunfunc != hand->gset.weaponfunc && hand->modenext != HANDMODE_RELOAD) {
|
|
// changefunc = true;
|
|
//
|
|
// if (hand->unk0cc8_07 && bgun0f098ca0(1 - hand->gset.weaponfunc, info, hand) < 0) {
|
|
// changefunc = false;
|
|
// }
|
|
//
|
|
// if (changefunc && info->weaponnum == WEAPON_COMBATKNIFE) {
|
|
// if (sp34 == 0) {
|
|
// hand->count60 = 0;
|
|
// hand->count = 0;
|
|
// hand->gset.weaponfunc = gunfunc;
|
|
//
|
|
// if (bgunSetState(handnum, HANDSTATE_RELOAD)) {
|
|
// return lvupdate;
|
|
// }
|
|
// } else {
|
|
// if (sp34 < 0) {
|
|
// changefunc = false;
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// if (changefunc) {
|
|
// hand->unk0cc8_07 = false;
|
|
//
|
|
// if (bgunSetState(handnum, HANDSTATE_CHANGEFUNC)) {
|
|
// return lvupdate;
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// if (sp34 < 0) {
|
|
// // Attempted to shoot with no ammo
|
|
//
|
|
// // Consider switching to another weapon
|
|
// if (weaponHasFlag(info->weaponnum, WEAPONFLAG_00000001)
|
|
// && (info->weaponnum != WEAPON_REMOTEMINE || handnum != HAND_LEFT)
|
|
// && bgunSetState(handnum, HANDSTATE_AUTOSWITCH)) {
|
|
// return lvupdate;
|
|
// }
|
|
//
|
|
// // Consider switching to other gun function
|
|
// usesec = g_Vars.currentplayer->gunctrl.weaponnum >= WEAPON_UNARMED
|
|
// && g_Vars.currentplayer->gunctrl.weaponnum <= WEAPON_COMBATBOOST
|
|
// && (g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].gunfuncs[(g_Vars.currentplayer->gunctrl.weaponnum - 1) >> 3] & (1 << (g_Vars.currentplayer->gunctrl.weaponnum - 1 & 7)));
|
|
//
|
|
// if (usesec == gunfunc) {
|
|
// sp30 = bgun0f098ca0(1 - hand->gset.weaponfunc, info, hand);
|
|
//
|
|
// if (bgun0f099188(hand, 1 - hand->gset.weaponfunc)
|
|
// && info->weaponnum != WEAPON_REAPER) {
|
|
// if (info->gunctrl->wantammo) {
|
|
// func = weaponGetFunction(&hand->gset, 1 - hand->gset.weaponfunc);
|
|
//
|
|
// if ((func->type & 0xff) != INVENTORYFUNCTYPE_CLOSE) {
|
|
// sp30 = -1;
|
|
// }
|
|
// } else {
|
|
// sp30 = -1;
|
|
// }
|
|
// }
|
|
//
|
|
// if (sp30 < 0) {
|
|
// hand->unk0cc8_08 = true;
|
|
// } else {
|
|
// if (!weaponHasFlag(info->weaponnum, WEAPONFLAG_04000000)
|
|
// || hand->gset.weaponfunc == FUNC_SECONDARY) {
|
|
// hand->unk0cc8_07 = true;
|
|
//
|
|
// if (bgunSetState(handnum, HANDSTATE_CHANGEFUNC)) {
|
|
// return lvupdate;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// } else if (sp34 == 0) {
|
|
// // Clip is empty
|
|
// if (hand->triggeron && info->weaponnum != WEAPON_NONE) {
|
|
// hand->unk0cc8_01 = false;
|
|
//
|
|
// if (bgunSetState(handnum, HANDSTATE_ATTACKEMPTY)) {
|
|
// return lvupdate;
|
|
// }
|
|
// } else {
|
|
// hand->count60 = 0;
|
|
// hand->count = 0;
|
|
//
|
|
// if (bgunSetState(handnum, HANDSTATE_RELOAD)) {
|
|
// return lvupdate;
|
|
// }
|
|
// }
|
|
// } else {
|
|
// // Clip has ammo
|
|
// if (hand->triggeron || (hand->unk0d0f_03 && hand->gset.weaponfunc == FUNC_SECONDARY)) {
|
|
// if (info->weaponnum != WEAPON_NONE) {
|
|
// g_Vars.currentplayer->doautoselect = false;
|
|
//
|
|
// hand->mode = HANDMODE_1;
|
|
// hand->count = 0;
|
|
// hand->count60 = 0;
|
|
// hand->triggerreleased = false;
|
|
//
|
|
// hand->unk0d0f_03 = false;
|
|
//
|
|
// if (bgunSetState(handnum, HANDSTATE_ATTACK)) {
|
|
// return lvupdate;
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// // Not attacking, but the player may have attempted
|
|
// // to change guns or reload while firing
|
|
// if (hand->modenext != HANDMODE_NONE) {
|
|
// next = hand->modenext;
|
|
//
|
|
// hand->mode = hand->modenext;
|
|
// hand->count60 = 0;
|
|
// hand->count = 0;
|
|
// hand->modenext = HANDMODE_NONE;
|
|
//
|
|
// if (next == HANDMODE_RELOAD && sp34 < 2 && sp34 >= 0) {
|
|
// if (bgunSetState(handnum, HANDSTATE_RELOAD)) {
|
|
// return lvupdate;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// // 698
|
|
// if (handnum == HAND_RIGHT) {
|
|
// if (info->gunctrl->wantammo) {
|
|
// bgunAutoSwitchWeapon();
|
|
// } else {
|
|
// lhand = &g_Vars.currentplayer->hands[1] - handnum;
|
|
//
|
|
// if ((hand->unk0cc8_08 || !hand->inuse)
|
|
// && (lhand->unk0cc8_08 || !lhand->inuse)
|
|
// && (hand->triggeron || lhand->triggeron)) {
|
|
// bgunAutoSwitchWeapon();
|
|
// }
|
|
//
|
|
// hand->unk0cc8_08 = lhand->unk0cc8_08 = false;
|
|
// }
|
|
// }
|
|
//
|
|
// return 0;
|
|
//}
|
|
|
|
void bgun0f099780(struct hand *hand, f32 angle)
|
|
{
|
|
hand->useposrot = true;
|
|
|
|
mtx4LoadXRotation(angle, &hand->posrotmtx);
|
|
|
|
hand->posrotmtx.m[3][0] = 0;
|
|
hand->posrotmtx.m[3][1] = (1.0f - cosf(angle)) * -80.0f;
|
|
hand->posrotmtx.m[3][2] = sinf(angle) * 15.0f;
|
|
}
|
|
|
|
s32 bgunTickIncAutoSwitch(struct handweaponinfo *info, s32 handnum, struct hand *hand, s32 lvupdate)
|
|
{
|
|
u32 stack;
|
|
s32 someval;
|
|
s32 gunfunc = bgunIsUsingSecondaryFunction();
|
|
|
|
if (!hand->inuse && bgunSetState(handnum, HANDSTATE_IDLE)) {
|
|
return lvupdate;
|
|
}
|
|
|
|
if (hand->stateminor == 0) {
|
|
s32 delay = TICKS(16);
|
|
|
|
if (g_Vars.normmplayerisrunning) {
|
|
delay = TICKS(12);
|
|
}
|
|
|
|
if (hand->stateframes >= delay) {
|
|
hand->stateminor++;
|
|
} else {
|
|
bgun0f099780(hand, hand->stateframes * 0.87252569198608f / delay);
|
|
}
|
|
}
|
|
|
|
if (hand->stateminor == 1) {
|
|
hand->lastdirvalid = false;
|
|
#if VERSION < VERSION_PAL_BETA
|
|
hand->animframeincfreal = hand->animframeinc;
|
|
#endif
|
|
hand->shotremainder = 0;
|
|
|
|
if (bgunIsReadyToSwitch(handnum) && bgunSetState(handnum, HANDSTATE_CHANGEGUN)) {
|
|
if (g_Vars.mplayerisrunning && (IS8MB() || PLAYERCOUNT() != 1)) {
|
|
playermgrDeleteWeapon(handnum);
|
|
}
|
|
|
|
bgunFreeHeldRocket(handnum);
|
|
|
|
hand->mode = HANDMODE_6;
|
|
hand->stateminor = 2;
|
|
hand->count = 0;
|
|
return 0;
|
|
}
|
|
|
|
if (hand->inuse) {
|
|
someval = bgun0f098ca0(gunfunc, info, hand);
|
|
|
|
if (info->weaponnum == WEAPON_TIMEDMINE || info->weaponnum == WEAPON_PROXIMITYMINE) {
|
|
hand->gset.weaponfunc = gunfunc;
|
|
}
|
|
|
|
if (info->weaponnum == WEAPON_REMOTEMINE
|
|
&& gunfunc != hand->gset.weaponfunc
|
|
&& bgunSetState(handnum, HANDSTATE_CHANGEFUNC)) {
|
|
return lvupdate;
|
|
}
|
|
|
|
if (g_Vars.currentplayer->doautoselect) {
|
|
struct hand *otherhand = &g_Vars.currentplayer->hands[1 - handnum];
|
|
struct handweaponinfo otherinfo;
|
|
bool ready = true;
|
|
|
|
bgunGetWeaponInfo(&otherinfo, 1 - handnum);
|
|
|
|
if (otherhand->inuse) {
|
|
if (bgun0f098ca0(0, &otherinfo, otherhand) >= 0) {
|
|
ready = false;
|
|
}
|
|
|
|
if (bgun0f098ca0(1, &otherinfo, otherhand) >= 0) {
|
|
ready = false;
|
|
}
|
|
|
|
if (bgun0f099188(otherhand, otherhand->gset.weaponfunc)) {
|
|
ready = true;
|
|
}
|
|
}
|
|
|
|
if (otherhand->state != HANDSTATE_IDLE && otherhand->state != HANDSTATE_AUTOSWITCH) {
|
|
ready = false;
|
|
}
|
|
|
|
if (ready) {
|
|
bgunAutoSwitchWeapon();
|
|
}
|
|
}
|
|
|
|
if (someval <= 1 && someval >= 0) {
|
|
if (g_Vars.currentplayer->hands[1 - handnum].state != HANDSTATE_RELOAD) {
|
|
hand->count60 = 0;
|
|
hand->count = 0;
|
|
|
|
if (bgunSetState(handnum, HANDSTATE_RELOAD)) {
|
|
if (info->weaponnum == WEAPON_COMBATKNIFE) {
|
|
hand->mode = HANDMODE_11;
|
|
hand->pausetime60 = TICKS(17);
|
|
hand->count60 = 0;
|
|
hand->count = -1;
|
|
hand->stateminor = 2;
|
|
}
|
|
|
|
return lvupdate;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (hand->modenext) {
|
|
hand->mode = hand->modenext;
|
|
hand->count60 = 0;
|
|
hand->count = 0;
|
|
hand->modenext = HANDMODE_NONE;
|
|
}
|
|
}
|
|
|
|
bgun0f099780(hand, 0.87252569198608f);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
bool bgunIsReloading(struct hand *hand)
|
|
{
|
|
if (hand->state == HANDSTATE_RELOAD) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
GLOBAL_ASM(
|
|
glabel bgunTickIncReload
|
|
.late_rodata
|
|
glabel var7f1ac1b8
|
|
.word 0x3f5f5dd8
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b094
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b0d0
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b094
|
|
.word 0x7f09b0d0
|
|
.word 0x3f5f5dd8
|
|
.text
|
|
/* f09ab30: 27bdffc8 */ addiu $sp,$sp,-56
|
|
/* f09ab34: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f09ab38: afb00028 */ sw $s0,0x28($sp)
|
|
/* f09ab3c: afa40038 */ sw $a0,0x38($sp)
|
|
/* f09ab40: 00c08025 */ move $s0,$a2
|
|
/* f09ab44: afa5003c */ sw $a1,0x3c($sp)
|
|
/* f09ab48: afa70044 */ sw $a3,0x44($sp)
|
|
/* f09ab4c: 0fc2c83f */ jal gsetGetWeaponFunction
|
|
/* f09ab50: 00c02025 */ move $a0,$a2
|
|
/* f09ab54: 3c0e800a */ lui $t6,0x800a
|
|
/* f09ab58: 8dcea8b4 */ lw $t6,-0x574c($t6)
|
|
/* f09ab5c: afa20030 */ sw $v0,0x30($sp)
|
|
/* f09ab60: 2418ffff */ li $t8,-1
|
|
/* f09ab64: 8dcf00d8 */ lw $t7,0xd8($t6)
|
|
/* f09ab68: 00002825 */ move $a1,$zero
|
|
/* f09ab6c: 51e0000a */ beqzl $t7,.JF0f09ab98
|
|
/* f09ab70: 8e190618 */ lw $t9,0x618($s0)
|
|
/* f09ab74: ae00068c */ sw $zero,0x68c($s0)
|
|
/* f09ab78: ae180680 */ sw $t8,0x680($s0)
|
|
/* f09ab7c: 0fc2770c */ jal bgunSetState
|
|
/* f09ab80: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f09ab84: 50400004 */ beqzl $v0,.JF0f09ab98
|
|
/* f09ab88: 8e190618 */ lw $t9,0x618($s0)
|
|
/* f09ab8c: 100001a1 */ b .JF0f09b214
|
|
/* f09ab90: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f09ab94: 8e190618 */ lw $t9,0x618($s0)
|
|
.JF0f09ab98:
|
|
/* f09ab98: 8fa9003c */ lw $t1,0x3c($sp)
|
|
/* f09ab9c: 3c08800a */ lui $t0,0x800a
|
|
/* f09aba0: 17200018 */ bnez $t9,.JF0f09ac04
|
|
/* f09aba4: 00095100 */ sll $t2,$t1,0x4
|
|
/* f09aba8: 01495023 */ subu $t2,$t2,$t1
|
|
/* f09abac: 000a5080 */ sll $t2,$t2,0x2
|
|
/* f09abb0: 01495021 */ addu $t2,$t2,$t1
|
|
/* f09abb4: 000a50c0 */ sll $t2,$t2,0x3
|
|
/* f09abb8: 8d08a8b4 */ lw $t0,-0x574c($t0)
|
|
/* f09abbc: 01495021 */ addu $t2,$t2,$t1
|
|
/* f09abc0: 000a5080 */ sll $t2,$t2,0x2
|
|
/* f09abc4: 000a5823 */ negu $t3,$t2
|
|
/* f09abc8: 240cffff */ li $t4,-1
|
|
/* f09abcc: ae0c0670 */ sw $t4,0x670($s0)
|
|
/* f09abd0: ae000674 */ sw $zero,0x674($s0)
|
|
/* f09abd4: 010b1021 */ addu $v0,$t0,$t3
|
|
/* f09abd8: 8c4d13e0 */ lw $t5,0x13e0($v0)
|
|
/* f09abdc: 24010001 */ li $at,0x1
|
|
/* f09abe0: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f09abe4: 55a10008 */ bnel $t5,$at,.JF0f09ac08
|
|
/* f09abe8: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f09abec: 8c4e0614 */ lw $t6,0x614($v0)
|
|
/* f09abf0: 240f0009 */ li $t7,0x9
|
|
/* f09abf4: 29c10014 */ slti $at,$t6,0x14
|
|
/* f09abf8: 50200003 */ beqzl $at,.JF0f09ac08
|
|
/* f09abfc: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f09ac00: ae0f0608 */ sw $t7,0x608($s0)
|
|
.JF0f09ac04:
|
|
/* f09ac04: 8e030608 */ lw $v1,0x608($s0)
|
|
.JF0f09ac08:
|
|
/* f09ac08: 8fb9003c */ lw $t9,0x3c($sp)
|
|
/* f09ac0c: 24010009 */ li $at,0x9
|
|
/* f09ac10: 1461001a */ bne $v1,$at,.JF0f09ac7c
|
|
/* f09ac14: 00194900 */ sll $t1,$t9,0x4
|
|
/* f09ac18: 01394823 */ subu $t1,$t1,$t9
|
|
/* f09ac1c: 00094880 */ sll $t1,$t1,0x2
|
|
/* f09ac20: 01394821 */ addu $t1,$t1,$t9
|
|
/* f09ac24: 000948c0 */ sll $t1,$t1,0x3
|
|
/* f09ac28: 3c18800a */ lui $t8,0x800a
|
|
/* f09ac2c: 8f18a8b4 */ lw $t8,-0x574c($t8)
|
|
/* f09ac30: 01394821 */ addu $t1,$t1,$t9
|
|
/* f09ac34: 00094880 */ sll $t1,$t1,0x2
|
|
/* f09ac38: 00095023 */ negu $t2,$t1
|
|
/* f09ac3c: 030a1021 */ addu $v0,$t8,$t2
|
|
/* f09ac40: 8c4813e0 */ lw $t0,0x13e0($v0)
|
|
/* f09ac44: 24010001 */ li $at,0x1
|
|
/* f09ac48: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f09ac4c: 15010007 */ bne $t0,$at,.JF0f09ac6c
|
|
/* f09ac50: 00001825 */ move $v1,$zero
|
|
/* f09ac54: 8c4b0614 */ lw $t3,0x614($v0)
|
|
/* f09ac58: 29610014 */ slti $at,$t3,0x14
|
|
/* f09ac5c: 50200004 */ beqzl $at,.JF0f09ac70
|
|
/* f09ac60: ae000614 */ sw $zero,0x614($s0)
|
|
/* f09ac64: 1000016b */ b .JF0f09b214
|
|
/* f09ac68: 00001025 */ move $v0,$zero
|
|
.JF0f09ac6c:
|
|
/* f09ac6c: ae000614 */ sw $zero,0x614($s0)
|
|
.JF0f09ac70:
|
|
/* f09ac70: ae000618 */ sw $zero,0x618($s0)
|
|
/* f09ac74: ae000608 */ sw $zero,0x608($s0)
|
|
/* f09ac78: ae00061c */ sw $zero,0x61c($s0)
|
|
.JF0f09ac7c:
|
|
/* f09ac7c: 546000a1 */ bnezl $v1,.JF0f09af04
|
|
/* f09ac80: 24010001 */ li $at,0x1
|
|
/* f09ac84: 8e0c0618 */ lw $t4,0x618($s0)
|
|
/* f09ac88: 8fad0030 */ lw $t5,0x30($sp)
|
|
/* f09ac8c: 8faa0030 */ lw $t2,0x30($sp)
|
|
/* f09ac90: 5580003f */ bnezl $t4,.JF0f09ad90
|
|
/* f09ac94: 8fb80038 */ lw $t8,0x38($sp)
|
|
/* f09ac98: 11a00034 */ beqz $t5,.JF0f09ad6c
|
|
/* f09ac9c: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f09aca0: 81a20007 */ lb $v0,0x7($t5)
|
|
/* f09aca4: 24010001 */ li $at,0x1
|
|
/* f09aca8: 8fae0038 */ lw $t6,0x38($sp)
|
|
/* f09acac: 50400004 */ beqzl $v0,.JF0f09acc0
|
|
/* f09acb0: 8dcf0004 */ lw $t7,0x4($t6)
|
|
/* f09acb4: 1441002d */ bne $v0,$at,.JF0f09ad6c
|
|
/* f09acb8: 00000000 */ nop
|
|
/* f09acbc: 8dcf0004 */ lw $t7,0x4($t6)
|
|
.JF0f09acc0:
|
|
/* f09acc0: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f09acc4: 01f94821 */ addu $t1,$t7,$t9
|
|
/* f09acc8: 8d38001c */ lw $t8,0x1c($t1)
|
|
/* f09accc: 24690001 */ addiu $t1,$v1,0x1
|
|
/* f09acd0: 8f04000c */ lw $a0,0xc($t8)
|
|
/* f09acd4: 10800023 */ beqz $a0,.JF0f09ad64
|
|
/* f09acd8: 00000000 */ nop
|
|
/* f09acdc: 8dca0000 */ lw $t2,0x0($t6)
|
|
/* f09ace0: 2401001a */ li $at,0x1a
|
|
/* f09ace4: 8fa5003c */ lw $a1,0x3c($sp)
|
|
/* f09ace8: 1141001e */ beq $t2,$at,.JF0f09ad64
|
|
/* f09acec: 00000000 */ nop
|
|
/* f09acf0: 0fc265ee */ jal bgunStartAnimation
|
|
/* f09acf4: 02003025 */ move $a2,$s0
|
|
/* f09acf8: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f09acfc: 8fa30038 */ lw $v1,0x38($sp)
|
|
/* f09ad00: 356c0001 */ ori $t4,$t3,0x1
|
|
/* f09ad04: a20c06d6 */ sb $t4,0x6d6($s0)
|
|
/* f09ad08: 8faf0030 */ lw $t7,0x30($sp)
|
|
/* f09ad0c: 8c6d0004 */ lw $t5,0x4($v1)
|
|
/* f09ad10: 81f90007 */ lb $t9,0x7($t7)
|
|
/* f09ad14: 00194880 */ sll $t1,$t9,0x2
|
|
/* f09ad18: 01a9c021 */ addu $t8,$t5,$t1
|
|
/* f09ad1c: 8f0e001c */ lw $t6,0x1c($t8)
|
|
/* f09ad20: 91ca0010 */ lbu $t2,0x10($t6)
|
|
/* f09ad24: 31480004 */ andi $t0,$t2,0x4
|
|
/* f09ad28: 51000005 */ beqzl $t0,.JF0f09ad40
|
|
/* f09ad2c: 8c620000 */ lw $v0,0x0($v1)
|
|
/* f09ad30: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f09ad34: 358f0020 */ ori $t7,$t4,0x20
|
|
/* f09ad38: a20f0690 */ sb $t7,0x690($s0)
|
|
/* f09ad3c: 8c620000 */ lw $v0,0x0($v1)
|
|
.JF0f09ad40:
|
|
/* f09ad40: 2401001e */ li $at,0x1e
|
|
/* f09ad44: 10410003 */ beq $v0,$at,.JF0f09ad54
|
|
/* f09ad48: 2401001f */ li $at,0x1f
|
|
/* f09ad4c: 1441000d */ bne $v0,$at,.JF0f09ad84
|
|
/* f09ad50: 00000000 */ nop
|
|
.JF0f09ad54:
|
|
/* f09ad54: 921906d6 */ lbu $t9,0x6d6($s0)
|
|
/* f09ad58: 332dff0f */ andi $t5,$t9,0xff0f
|
|
/* f09ad5c: 10000009 */ b .JF0f09ad84
|
|
/* f09ad60: a20d06d6 */ sb $t5,0x6d6($s0)
|
|
.JF0f09ad64:
|
|
/* f09ad64: 10000007 */ b .JF0f09ad84
|
|
/* f09ad68: ae090608 */ sw $t1,0x608($s0)
|
|
.JF0f09ad6c:
|
|
/* f09ad6c: 0fc2770c */ jal bgunSetState
|
|
/* f09ad70: 00002825 */ move $a1,$zero
|
|
/* f09ad74: 10400003 */ beqz $v0,.JF0f09ad84
|
|
/* f09ad78: 00000000 */ nop
|
|
/* f09ad7c: 10000125 */ b .JF0f09b214
|
|
/* f09ad80: 8fa20044 */ lw $v0,0x44($sp)
|
|
.JF0f09ad84:
|
|
/* f09ad84: 1000005e */ b .JF0f09af00
|
|
/* f09ad88: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f09ad8c: 8fb80038 */ lw $t8,0x38($sp)
|
|
.JF0f09ad90:
|
|
/* f09ad90: 81480007 */ lb $t0,0x7($t2)
|
|
/* f09ad94: 02002025 */ move $a0,$s0
|
|
/* f09ad98: 8f0e0004 */ lw $t6,0x4($t8)
|
|
/* f09ad9c: 00085880 */ sll $t3,$t0,0x2
|
|
/* f09ada0: 01cb6021 */ addu $t4,$t6,$t3
|
|
/* f09ada4: 8d8f001c */ lw $t7,0x1c($t4)
|
|
/* f09ada8: 91f90010 */ lbu $t9,0x10($t7)
|
|
/* f09adac: 332d0004 */ andi $t5,$t9,0x4
|
|
/* f09adb0: 51a00037 */ beqzl $t5,.JF0f09ae90
|
|
/* f09adb4: 8e19060c */ lw $t9,0x60c($s0)
|
|
/* f09adb8: 0fc26647 */ jal bgun0f098a44
|
|
/* f09adbc: 24050001 */ li $a1,0x1
|
|
/* f09adc0: 5040001f */ beqzl $v0,.JF0f09ae40
|
|
/* f09adc4: ae00060c */ sw $zero,0x60c($s0)
|
|
/* f09adc8: 8e09060c */ lw $t1,0x60c($s0)
|
|
/* f09adcc: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f09add0: 02003025 */ move $a2,$s0
|
|
/* f09add4: 31380010 */ andi $t8,$t1,0x10
|
|
/* f09add8: 17000019 */ bnez $t8,.JF0f09ae40
|
|
/* f09addc: 24070001 */ li $a3,0x1
|
|
/* f09ade0: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f09ade4: 0fc26733 */ jal bgun0f098df8
|
|
/* f09ade8: afa00010 */ sw $zero,0x10($sp)
|
|
/* f09adec: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f09adf0: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f09adf4: 02003025 */ move $a2,$s0
|
|
/* f09adf8: 35480010 */ ori $t0,$t2,0x10
|
|
/* f09adfc: ae08060c */ sw $t0,0x60c($s0)
|
|
/* f09ae00: 0fc266dd */ jal bgun0f098ca0
|
|
/* f09ae04: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f09ae08: 28410002 */ slti $at,$v0,0x2
|
|
/* f09ae0c: 54200005 */ bnezl $at,.JF0f09ae24
|
|
/* f09ae10: 2401ffff */ li $at,-1
|
|
/* f09ae14: 920e0690 */ lbu $t6,0x690($s0)
|
|
/* f09ae18: 31cbffdf */ andi $t3,$t6,0xffdf
|
|
/* f09ae1c: a20b0690 */ sb $t3,0x690($s0)
|
|
/* f09ae20: 2401ffff */ li $at,-1
|
|
.JF0f09ae24:
|
|
/* f09ae24: 54410007 */ bnel $v0,$at,.JF0f09ae44
|
|
/* f09ae28: 8e19000c */ lw $t9,0xc($s0)
|
|
/* f09ae2c: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f09ae30: 318fffdf */ andi $t7,$t4,0xffdf
|
|
/* f09ae34: 10000002 */ b .JF0f09ae40
|
|
/* f09ae38: a20f0690 */ sb $t7,0x690($s0)
|
|
/* f09ae3c: ae00060c */ sw $zero,0x60c($s0)
|
|
.JF0f09ae40:
|
|
/* f09ae40: 8e19000c */ lw $t9,0xc($s0)
|
|
.JF0f09ae44:
|
|
/* f09ae44: 3c02800a */ lui $v0,0x800a
|
|
/* f09ae48: 13200004 */ beqz $t9,.JF0f09ae5c
|
|
/* f09ae4c: 00000000 */ nop
|
|
/* f09ae50: 920d0690 */ lbu $t5,0x690($s0)
|
|
/* f09ae54: 31a9ffdf */ andi $t1,$t5,0xffdf
|
|
/* f09ae58: a2090690 */ sb $t1,0x690($s0)
|
|
.JF0f09ae5c:
|
|
/* f09ae5c: 8c42a8b4 */ lw $v0,-0x574c($v0)
|
|
/* f09ae60: 8c4a1c54 */ lw $t2,0x1c54($v0)
|
|
/* f09ae64: 8c5800c4 */ lw $t8,0xc4($v0)
|
|
/* f09ae68: 01404027 */ nor $t0,$t2,$zero
|
|
/* f09ae6c: 03087024 */ and $t6,$t8,$t0
|
|
/* f09ae70: 31cb0004 */ andi $t3,$t6,0x4
|
|
/* f09ae74: 51600017 */ beqzl $t3,.JF0f09aed4
|
|
/* f09ae78: 8e18068c */ lw $t8,0x68c($s0)
|
|
/* f09ae7c: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f09ae80: 318fffdf */ andi $t7,$t4,0xffdf
|
|
/* f09ae84: 10000012 */ b .JF0f09aed0
|
|
/* f09ae88: a20f0690 */ sb $t7,0x690($s0)
|
|
/* f09ae8c: 8e19060c */ lw $t9,0x60c($s0)
|
|
.JF0f09ae90:
|
|
/* f09ae90: 02002025 */ move $a0,$s0
|
|
/* f09ae94: 332d0010 */ andi $t5,$t9,0x10
|
|
/* f09ae98: 55a0000e */ bnezl $t5,.JF0f09aed4
|
|
/* f09ae9c: 8e18068c */ lw $t8,0x68c($s0)
|
|
/* f09aea0: 0fc26647 */ jal bgun0f098a44
|
|
/* f09aea4: 24050001 */ li $a1,0x1
|
|
/* f09aea8: 10400009 */ beqz $v0,.JF0f09aed0
|
|
/* f09aeac: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f09aeb0: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f09aeb4: afa00010 */ sw $zero,0x10($sp)
|
|
/* f09aeb8: 02003025 */ move $a2,$s0
|
|
/* f09aebc: 0fc26733 */ jal bgun0f098df8
|
|
/* f09aec0: 00003825 */ move $a3,$zero
|
|
/* f09aec4: 8e09060c */ lw $t1,0x60c($s0)
|
|
/* f09aec8: 352a0010 */ ori $t2,$t1,0x10
|
|
/* f09aecc: ae0a060c */ sw $t2,0x60c($s0)
|
|
.JF0f09aed0:
|
|
/* f09aed0: 8e18068c */ lw $t8,0x68c($s0)
|
|
.JF0f09aed4:
|
|
/* f09aed4: 24010002 */ li $at,0x2
|
|
/* f09aed8: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f09aedc: 53010008 */ beql $t8,$at,.JF0f09af00
|
|
/* f09aee0: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f09aee4: 0fc2770c */ jal bgunSetState
|
|
/* f09aee8: 00002825 */ move $a1,$zero
|
|
/* f09aeec: 50400004 */ beqzl $v0,.JF0f09af00
|
|
/* f09aef0: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f09aef4: 100000c7 */ b .JF0f09b214
|
|
/* f09aef8: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f09aefc: 8e030608 */ lw $v1,0x608($s0)
|
|
.JF0f09af00:
|
|
/* f09af00: 24010001 */ li $at,0x1
|
|
.JF0f09af04:
|
|
/* f09af04: 5461001f */ bnel $v1,$at,.JF0f09af84
|
|
/* f09af08: 24010002 */ li $at,0x2
|
|
/* f09af0c: 8e02001c */ lw $v0,0x1c($s0)
|
|
/* f09af10: 240e000b */ li $t6,0xb
|
|
/* f09af14: 246b0001 */ addiu $t3,$v1,0x1
|
|
/* f09af18: 28410010 */ slti $at,$v0,0x10
|
|
/* f09af1c: 10200004 */ beqz $at,.JF0f09af30
|
|
/* f09af20: 240c0011 */ li $t4,0x11
|
|
/* f09af24: 82080007 */ lb $t0,0x7($s0)
|
|
/* f09af28: 55000009 */ bnezl $t0,.JF0f09af50
|
|
/* f09af2c: 44822000 */ mtc1 $v0,$f4
|
|
.JF0f09af30:
|
|
/* f09af30: ae0e0020 */ sw $t6,0x20($s0)
|
|
/* f09af34: ae0b0608 */ sw $t3,0x608($s0)
|
|
/* f09af38: ae0c0038 */ sw $t4,0x38($s0)
|
|
/* f09af3c: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09af40: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09af44: 1000000e */ b .JF0f09af80
|
|
/* f09af48: 01601825 */ move $v1,$t3
|
|
/* f09af4c: 44822000 */ mtc1 $v0,$f4
|
|
.JF0f09af50:
|
|
/* f09af50: 3c017f1b */ lui $at,0x7f1b
|
|
/* f09af54: c428ce38 */ lwc1 $f8,-0x31c8($at)
|
|
/* f09af58: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f09af5c: 3c014180 */ lui $at,0x4180
|
|
/* f09af60: 44818000 */ mtc1 $at,$f16
|
|
/* f09af64: 02002025 */ move $a0,$s0
|
|
/* f09af68: 46083282 */ mul.s $f10,$f6,$f8
|
|
/* f09af6c: 46105483 */ div.s $f18,$f10,$f16
|
|
/* f09af70: 44059000 */ mfc1 $a1,$f18
|
|
/* f09af74: 0fc2699c */ jal bgun0f099780
|
|
/* f09af78: 00000000 */ nop
|
|
/* f09af7c: 8e030608 */ lw $v1,0x608($s0)
|
|
.JF0f09af80:
|
|
/* f09af80: 24010002 */ li $at,0x2
|
|
.JF0f09af84:
|
|
/* f09af84: 54610069 */ bnel $v1,$at,.JF0f09b12c
|
|
/* f09af88: 24010003 */ li $at,0x3
|
|
/* f09af8c: 8e0f0018 */ lw $t7,0x18($s0)
|
|
/* f09af90: 8fb90038 */ lw $t9,0x38($sp)
|
|
/* f09af94: 55e0004f */ bnezl $t7,.JF0f09b0d4
|
|
/* f09af98: 8e0a001c */ lw $t2,0x1c($s0)
|
|
/* f09af9c: 8f2d0000 */ lw $t5,0x0($t9)
|
|
/* f09afa0: 2401001a */ li $at,0x1a
|
|
/* f09afa4: 8fa90030 */ lw $t1,0x30($sp)
|
|
/* f09afa8: 55a10012 */ bnel $t5,$at,.JF0f09aff4
|
|
/* f09afac: 8e0d060c */ lw $t5,0x60c($s0)
|
|
/* f09afb0: 81220007 */ lb $v0,0x7($t1)
|
|
/* f09afb4: 0442000f */ bltzl $v0,.JF0f09aff4
|
|
/* f09afb8: 8e0d060c */ lw $t5,0x60c($s0)
|
|
/* f09afbc: 8f2a0004 */ lw $t2,0x4($t9)
|
|
/* f09afc0: 0002c080 */ sll $t8,$v0,0x2
|
|
/* f09afc4: 8fa5003c */ lw $a1,0x3c($sp)
|
|
/* f09afc8: 01584021 */ addu $t0,$t2,$t8
|
|
/* f09afcc: 8d0e001c */ lw $t6,0x1c($t0)
|
|
/* f09afd0: 8dc4000c */ lw $a0,0xc($t6)
|
|
/* f09afd4: 50800007 */ beqzl $a0,.JF0f09aff4
|
|
/* f09afd8: 8e0d060c */ lw $t5,0x60c($s0)
|
|
/* f09afdc: 0fc265ee */ jal bgunStartAnimation
|
|
/* f09afe0: 02003025 */ move $a2,$s0
|
|
/* f09afe4: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f09afe8: 358f0040 */ ori $t7,$t4,0x40
|
|
/* f09afec: a20f0690 */ sb $t7,0x690($s0)
|
|
/* f09aff0: 8e0d060c */ lw $t5,0x60c($s0)
|
|
.JF0f09aff4:
|
|
/* f09aff4: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f09aff8: 02003025 */ move $a2,$s0
|
|
/* f09affc: 31a90010 */ andi $t1,$t5,0x10
|
|
/* f09b000: 15200004 */ bnez $t1,.JF0f09b014
|
|
/* f09b004: 00003825 */ move $a3,$zero
|
|
/* f09b008: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f09b00c: 0fc26733 */ jal bgun0f098df8
|
|
/* f09b010: afa00010 */ sw $zero,0x10($sp)
|
|
.JF0f09b014:
|
|
/* f09b014: 3c19800a */ lui $t9,0x800a
|
|
/* f09b018: 8f39a664 */ lw $t9,-0x599c($t9)
|
|
/* f09b01c: 3c0a800a */ lui $t2,0x800a
|
|
/* f09b020: 5b20002c */ blezl $t9,.JF0f09b0d4
|
|
/* f09b024: 8e0a001c */ lw $t2,0x1c($s0)
|
|
/* f09b028: 8d4aa8b4 */ lw $t2,-0x574c($t2)
|
|
/* f09b02c: 24010001 */ li $at,0x1
|
|
/* f09b030: 8d580000 */ lw $t8,0x0($t2)
|
|
/* f09b034: 53010027 */ beql $t8,$at,.JF0f09b0d4
|
|
/* f09b038: 8e0a001c */ lw $t2,0x1c($s0)
|
|
/* f09b03c: 0fc27b28 */ jal bgun0f09dd7c
|
|
/* f09b040: 00000000 */ nop
|
|
/* f09b044: 10400022 */ beqz $v0,.JF0f09b0d0
|
|
/* f09b048: 3c088007 */ lui $t0,0x8007
|
|
/* f09b04c: 8d080cb0 */ lw $t0,0xcb0($t0)
|
|
/* f09b050: 3c0e800a */ lui $t6,0x800a
|
|
/* f09b054: 5500001f */ bnezl $t0,.JF0f09b0d4
|
|
/* f09b058: 8e0a001c */ lw $t2,0x1c($s0)
|
|
/* f09b05c: 8dcea8b4 */ lw $t6,-0x574c($t6)
|
|
/* f09b060: 8fac0038 */ lw $t4,0x38($sp)
|
|
/* f09b064: 8dcb00d8 */ lw $t3,0xd8($t6)
|
|
/* f09b068: 5560001a */ bnezl $t3,.JF0f09b0d4
|
|
/* f09b06c: 8e0a001c */ lw $t2,0x1c($s0)
|
|
/* f09b070: 8d8f0000 */ lw $t7,0x0($t4)
|
|
/* f09b074: 2de10058 */ sltiu $at,$t7,0x58
|
|
/* f09b078: 10200006 */ beqz $at,.JF0f09b094
|
|
/* f09b07c: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f09b080: 3c017f1b */ lui $at,0x7f1b
|
|
/* f09b084: 002f0821 */ addu $at,$at,$t7
|
|
/* f09b088: 8c2fce3c */ lw $t7,-0x31c4($at)
|
|
/* f09b08c: 01e00008 */ jr $t7
|
|
/* f09b090: 00000000 */ nop
|
|
.JF0f09b094:
|
|
/* f09b094: 3c01bf80 */ lui $at,0xbf80
|
|
/* f09b098: 44812000 */ mtc1 $at,$f4
|
|
/* f09b09c: 3c048009 */ lui $a0,0x8009
|
|
/* f09b0a0: 240dffff */ li $t5,-1
|
|
/* f09b0a4: 2409ffff */ li $t1,-1
|
|
/* f09b0a8: 2419ffff */ li $t9,-1
|
|
/* f09b0ac: afb9001c */ sw $t9,0x1c($sp)
|
|
/* f09b0b0: afa90018 */ sw $t1,0x18($sp)
|
|
/* f09b0b4: afad0010 */ sw $t5,0x10($sp)
|
|
/* f09b0b8: 8c845870 */ lw $a0,0x5870($a0)
|
|
/* f09b0bc: 2405804f */ li $a1,-32689
|
|
/* f09b0c0: 00003025 */ move $a2,$zero
|
|
/* f09b0c4: 2407ffff */ li $a3,-1
|
|
/* f09b0c8: 0c004230 */ jal sndStart
|
|
/* f09b0cc: e7a40014 */ swc1 $f4,0x14($sp)
|
|
.JF0f09b0d0:
|
|
/* f09b0d0: 8e0a001c */ lw $t2,0x1c($s0)
|
|
.JF0f09b0d4:
|
|
/* f09b0d4: 8e180038 */ lw $t8,0x38($s0)
|
|
/* f09b0d8: 02002025 */ move $a0,$s0
|
|
/* f09b0dc: 3c053f5f */ lui $a1,0x3f5f
|
|
/* f09b0e0: 0158082a */ slt $at,$t2,$t8
|
|
/* f09b0e4: 1420000d */ bnez $at,.JF0f09b11c
|
|
/* f09b0e8: 00000000 */ nop
|
|
/* f09b0ec: 8e080018 */ lw $t0,0x18($s0)
|
|
/* f09b0f0: 240e000c */ li $t6,0xc
|
|
/* f09b0f4: 29010002 */ slti $at,$t0,0x2
|
|
/* f09b0f8: 14200008 */ bnez $at,.JF0f09b11c
|
|
/* f09b0fc: 00000000 */ nop
|
|
/* f09b100: 8e0b0608 */ lw $t3,0x608($s0)
|
|
/* f09b104: ae0e0020 */ sw $t6,0x20($s0)
|
|
/* f09b108: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09b10c: 25630001 */ addiu $v1,$t3,0x1
|
|
/* f09b110: ae030608 */ sw $v1,0x608($s0)
|
|
/* f09b114: 10000004 */ b .JF0f09b128
|
|
/* f09b118: ae000018 */ sw $zero,0x18($s0)
|
|
.JF0f09b11c:
|
|
/* f09b11c: 0fc2699c */ jal bgun0f099780
|
|
/* f09b120: 34a55dd8 */ ori $a1,$a1,0x5dd8
|
|
/* f09b124: 8e030608 */ lw $v1,0x608($s0)
|
|
.JF0f09b128:
|
|
/* f09b128: 24010003 */ li $at,0x3
|
|
.JF0f09b12c:
|
|
/* f09b12c: 14610038 */ bne $v1,$at,.JF0f09b210
|
|
/* f09b130: 8faf0038 */ lw $t7,0x38($sp)
|
|
/* f09b134: 8ded0000 */ lw $t5,0x0($t7)
|
|
/* f09b138: 2401001a */ li $at,0x1a
|
|
/* f09b13c: 3c19800a */ lui $t9,0x800a
|
|
/* f09b140: 55a10003 */ bnel $t5,$at,.JF0f09b150
|
|
/* f09b144: 8e090018 */ lw $t1,0x18($s0)
|
|
/* f09b148: ae00068c */ sw $zero,0x68c($s0)
|
|
/* f09b14c: 8e090018 */ lw $t1,0x18($s0)
|
|
.JF0f09b150:
|
|
/* f09b150: 55200004 */ bnezl $t1,.JF0f09b164
|
|
/* f09b154: 8e0a001c */ lw $t2,0x1c($s0)
|
|
/* f09b158: 8f39a8b4 */ lw $t9,-0x574c($t9)
|
|
/* f09b15c: af201600 */ sw $zero,0x1600($t9)
|
|
/* f09b160: 8e0a001c */ lw $t2,0x1c($s0)
|
|
.JF0f09b164:
|
|
/* f09b164: 8fb80038 */ lw $t8,0x38($sp)
|
|
/* f09b168: 29410017 */ slti $at,$t2,0x17
|
|
/* f09b16c: 50200010 */ beqzl $at,.JF0f09b1b0
|
|
/* f09b170: ae000020 */ sw $zero,0x20($s0)
|
|
/* f09b174: 0fc2cad4 */ jal weaponGetModelNum2
|
|
/* f09b178: 8f040000 */ lw $a0,0x0($t8)
|
|
/* f09b17c: 1040000b */ beqz $v0,.JF0f09b1ac
|
|
/* f09b180: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f09b184: 8d040000 */ lw $a0,0x0($t0)
|
|
/* f09b188: 0fc2ca10 */ jal weaponHasFlag
|
|
/* f09b18c: 24050040 */ li $a1,0x40
|
|
/* f09b190: 10400006 */ beqz $v0,.JF0f09b1ac
|
|
/* f09b194: 8fae0038 */ lw $t6,0x38($sp)
|
|
/* f09b198: 8dc40000 */ lw $a0,0x0($t6)
|
|
/* f09b19c: 0fc2ca10 */ jal weaponHasFlag
|
|
/* f09b1a0: 24050080 */ li $a1,0x80
|
|
/* f09b1a4: 5040000c */ beqzl $v0,.JF0f09b1d8
|
|
/* f09b1a8: 8e0b001c */ lw $t3,0x1c($s0)
|
|
.JF0f09b1ac:
|
|
/* f09b1ac: ae000020 */ sw $zero,0x20($s0)
|
|
.JF0f09b1b0:
|
|
/* f09b1b0: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09b1b4: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09b1b8: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f09b1bc: 0fc2770c */ jal bgunSetState
|
|
/* f09b1c0: 00002825 */ move $a1,$zero
|
|
/* f09b1c4: 50400013 */ beqzl $v0,.JF0f09b214
|
|
/* f09b1c8: 00001025 */ move $v0,$zero
|
|
/* f09b1cc: 10000011 */ b .JF0f09b214
|
|
/* f09b1d0: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f09b1d4: 8e0b001c */ lw $t3,0x1c($s0)
|
|
.JF0f09b1d8:
|
|
/* f09b1d8: 240c0017 */ li $t4,0x17
|
|
/* f09b1dc: 3c017f1b */ lui $at,0x7f1b
|
|
/* f09b1e0: 018b7823 */ subu $t7,$t4,$t3
|
|
/* f09b1e4: 448f3000 */ mtc1 $t7,$f6
|
|
/* f09b1e8: c42acf9c */ lwc1 $f10,-0x3064($at)
|
|
/* f09b1ec: 3c0141b8 */ lui $at,0x41b8
|
|
/* f09b1f0: 46803220 */ cvt.s.w $f8,$f6
|
|
/* f09b1f4: 44819000 */ mtc1 $at,$f18
|
|
/* f09b1f8: 02002025 */ move $a0,$s0
|
|
/* f09b1fc: 460a4402 */ mul.s $f16,$f8,$f10
|
|
/* f09b200: 46128103 */ div.s $f4,$f16,$f18
|
|
/* f09b204: 44052000 */ mfc1 $a1,$f4
|
|
/* f09b208: 0fc2699c */ jal bgun0f099780
|
|
/* f09b20c: 00000000 */ nop
|
|
.JF0f09b210:
|
|
/* f09b210: 00001025 */ move $v0,$zero
|
|
.JF0f09b214:
|
|
/* f09b214: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f09b218: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f09b21c: 27bd0038 */ addiu $sp,$sp,0x38
|
|
/* f09b220: 03e00008 */ jr $ra
|
|
/* f09b224: 00000000 */ nop
|
|
);
|
|
#elif VERSION >= VERSION_PAL_BETA
|
|
GLOBAL_ASM(
|
|
glabel bgunTickIncReload
|
|
.late_rodata
|
|
glabel var7f1ac1b8
|
|
.word 0x3f5f5dd8
|
|
glabel var7f1ac1bc
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac1c0
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac1c4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1c8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1cc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1d0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1d4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1d8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1dc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1e0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1e4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1e8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1ec
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1f0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1f4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1f8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1fc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac200
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac204
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac208
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac20c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac210
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac214
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac218
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac21c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac220
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac224
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac228
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac22c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac230
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac234
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac238
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac23c
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac240
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac244
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac248
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac24c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac250
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac254
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac258
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac25c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac260
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac264
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac268
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac26c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac270
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac274
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac278
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac27c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac280
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac284
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac288
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac28c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac290
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac294
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac298
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac29c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2a0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2a4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2a8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2ac
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2b0
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac2b4
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac2b8
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac2bc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2c0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2c4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2c8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2cc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2d0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2d4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2d8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2dc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2e0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2e4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2e8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2ec
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2f0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2f4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2f8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2fc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac300
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac304
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac308
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac30c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac310
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac314
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac318
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac31c
|
|
.word 0x3f5f5dd8
|
|
.text
|
|
/* f099c48: 27bdffc8 */ addiu $sp,$sp,-56
|
|
/* f099c4c: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f099c50: afb00028 */ sw $s0,0x28($sp)
|
|
/* f099c54: afa40038 */ sw $a0,0x38($sp)
|
|
/* f099c58: 00c08025 */ or $s0,$a2,$zero
|
|
/* f099c5c: afa5003c */ sw $a1,0x3c($sp)
|
|
/* f099c60: afa70044 */ sw $a3,0x44($sp)
|
|
/* f099c64: 0fc2c41f */ jal gsetGetWeaponFunction
|
|
/* f099c68: 00c02025 */ or $a0,$a2,$zero
|
|
/* f099c6c: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
|
|
/* f099c70: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
|
|
/* f099c74: afa20030 */ sw $v0,0x30($sp)
|
|
/* f099c78: 2418ffff */ addiu $t8,$zero,-1
|
|
/* f099c7c: 8dcf00d8 */ lw $t7,0xd8($t6)
|
|
/* f099c80: 00002825 */ or $a1,$zero,$zero
|
|
/* f099c84: 51e0000a */ beqzl $t7,.L0f099cb0
|
|
/* f099c88: 8e190618 */ lw $t9,0x618($s0)
|
|
/* f099c8c: ae00068c */ sw $zero,0x68c($s0)
|
|
/* f099c90: ae180680 */ sw $t8,0x680($s0)
|
|
/* f099c94: 0fc27346 */ jal bgunSetState
|
|
/* f099c98: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f099c9c: 50400004 */ beqzl $v0,.L0f099cb0
|
|
/* f099ca0: 8e190618 */ lw $t9,0x618($s0)
|
|
/* f099ca4: 10000195 */ b .L0f09a2fc
|
|
/* f099ca8: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f099cac: 8e190618 */ lw $t9,0x618($s0)
|
|
.L0f099cb0:
|
|
/* f099cb0: 8fa9003c */ lw $t1,0x3c($sp)
|
|
/* f099cb4: 3c08800a */ lui $t0,%hi(g_Vars+0x284)
|
|
/* f099cb8: 17200018 */ bnez $t9,.L0f099d1c
|
|
/* f099cbc: 00095100 */ sll $t2,$t1,0x4
|
|
/* f099cc0: 01495023 */ subu $t2,$t2,$t1
|
|
/* f099cc4: 000a5080 */ sll $t2,$t2,0x2
|
|
/* f099cc8: 01495021 */ addu $t2,$t2,$t1
|
|
/* f099ccc: 000a50c0 */ sll $t2,$t2,0x3
|
|
/* f099cd0: 8d08a244 */ lw $t0,%lo(g_Vars+0x284)($t0)
|
|
/* f099cd4: 01495021 */ addu $t2,$t2,$t1
|
|
/* f099cd8: 000a5080 */ sll $t2,$t2,0x2
|
|
/* f099cdc: 000a5823 */ negu $t3,$t2
|
|
/* f099ce0: 240cffff */ addiu $t4,$zero,-1
|
|
/* f099ce4: ae0c0670 */ sw $t4,0x670($s0)
|
|
/* f099ce8: ae000674 */ sw $zero,0x674($s0)
|
|
/* f099cec: 010b1021 */ addu $v0,$t0,$t3
|
|
/* f099cf0: 8c4d13e0 */ lw $t5,0x13e0($v0)
|
|
/* f099cf4: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099cf8: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f099cfc: 55a10008 */ bnel $t5,$at,.L0f099d20
|
|
/* f099d00: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099d04: 8c4e0614 */ lw $t6,0x614($v0)
|
|
/* f099d08: 240f0009 */ addiu $t7,$zero,0x9
|
|
/* f099d0c: 29c10014 */ slti $at,$t6,0x10
|
|
/* f099d10: 50200003 */ beqzl $at,.L0f099d20
|
|
/* f099d14: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099d18: ae0f0608 */ sw $t7,0x608($s0)
|
|
.L0f099d1c:
|
|
/* f099d1c: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f099d20:
|
|
/* f099d20: 8fb9003c */ lw $t9,0x3c($sp)
|
|
/* f099d24: 24010009 */ addiu $at,$zero,0x9
|
|
/* f099d28: 1461001a */ bne $v1,$at,.L0f099d94
|
|
/* f099d2c: 00194900 */ sll $t1,$t9,0x4
|
|
/* f099d30: 01394823 */ subu $t1,$t1,$t9
|
|
/* f099d34: 00094880 */ sll $t1,$t1,0x2
|
|
/* f099d38: 01394821 */ addu $t1,$t1,$t9
|
|
/* f099d3c: 000948c0 */ sll $t1,$t1,0x3
|
|
/* f099d40: 3c18800a */ lui $t8,%hi(g_Vars+0x284)
|
|
/* f099d44: 8f18a244 */ lw $t8,%lo(g_Vars+0x284)($t8)
|
|
/* f099d48: 01394821 */ addu $t1,$t1,$t9
|
|
/* f099d4c: 00094880 */ sll $t1,$t1,0x2
|
|
/* f099d50: 00095023 */ negu $t2,$t1
|
|
/* f099d54: 030a1021 */ addu $v0,$t8,$t2
|
|
/* f099d58: 8c4813e0 */ lw $t0,0x13e0($v0)
|
|
/* f099d5c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099d60: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f099d64: 15010007 */ bne $t0,$at,.L0f099d84
|
|
/* f099d68: 00001825 */ or $v1,$zero,$zero
|
|
/* f099d6c: 8c4b0614 */ lw $t3,0x614($v0)
|
|
/* f099d70: 29610014 */ slti $at,$t3,0x10
|
|
/* f099d74: 50200004 */ beqzl $at,.L0f099d88
|
|
/* f099d78: ae000614 */ sw $zero,0x614($s0)
|
|
/* f099d7c: 1000015f */ b .L0f09a2fc
|
|
/* f099d80: 00001025 */ or $v0,$zero,$zero
|
|
.L0f099d84:
|
|
/* f099d84: ae000614 */ sw $zero,0x614($s0)
|
|
.L0f099d88:
|
|
/* f099d88: ae000618 */ sw $zero,0x618($s0)
|
|
/* f099d8c: ae000608 */ sw $zero,0x608($s0)
|
|
/* f099d90: ae00061c */ sw $zero,0x61c($s0)
|
|
.L0f099d94:
|
|
/* f099d94: 54600095 */ bnezl $v1,.L0f099fec
|
|
/* f099d98: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099d9c: 8e0c0618 */ lw $t4,0x618($s0)
|
|
/* f099da0: 8fad0030 */ lw $t5,0x30($sp)
|
|
/* f099da4: 8faa0030 */ lw $t2,0x30($sp)
|
|
/* f099da8: 5580003f */ bnezl $t4,.L0f099ea8
|
|
/* f099dac: 8fb80038 */ lw $t8,0x38($sp)
|
|
/* f099db0: 11a00034 */ beqz $t5,.L0f099e84
|
|
/* f099db4: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f099db8: 81a20007 */ lb $v0,0x7($t5)
|
|
/* f099dbc: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099dc0: 8fae0038 */ lw $t6,0x38($sp)
|
|
/* f099dc4: 50400004 */ beqzl $v0,.L0f099dd8
|
|
/* f099dc8: 8dcf0004 */ lw $t7,0x4($t6)
|
|
/* f099dcc: 1441002d */ bne $v0,$at,.L0f099e84
|
|
/* f099dd0: 00000000 */ nop
|
|
/* f099dd4: 8dcf0004 */ lw $t7,0x4($t6)
|
|
.L0f099dd8:
|
|
/* f099dd8: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f099ddc: 01f94821 */ addu $t1,$t7,$t9
|
|
/* f099de0: 8d38001c */ lw $t8,0x1c($t1)
|
|
/* f099de4: 24690001 */ addiu $t1,$v1,0x1
|
|
/* f099de8: 8f04000c */ lw $a0,0xc($t8)
|
|
/* f099dec: 10800023 */ beqz $a0,.L0f099e7c
|
|
/* f099df0: 00000000 */ nop
|
|
/* f099df4: 8dca0000 */ lw $t2,0x0($t6)
|
|
/* f099df8: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f099dfc: 8fa5003c */ lw $a1,0x3c($sp)
|
|
/* f099e00: 1141001e */ beq $t2,$at,.L0f099e7c
|
|
/* f099e04: 00000000 */ nop
|
|
/* f099e08: 0fc26238 */ jal bgunStartAnimation
|
|
/* f099e0c: 02003025 */ or $a2,$s0,$zero
|
|
/* f099e10: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f099e14: 8fa30038 */ lw $v1,0x38($sp)
|
|
/* f099e18: 356c0001 */ ori $t4,$t3,0x1
|
|
/* f099e1c: a20c06d6 */ sb $t4,0x6d6($s0)
|
|
/* f099e20: 8faf0030 */ lw $t7,0x30($sp)
|
|
/* f099e24: 8c6d0004 */ lw $t5,0x4($v1)
|
|
/* f099e28: 81f90007 */ lb $t9,0x7($t7)
|
|
/* f099e2c: 00194880 */ sll $t1,$t9,0x2
|
|
/* f099e30: 01a9c021 */ addu $t8,$t5,$t1
|
|
/* f099e34: 8f0e001c */ lw $t6,0x1c($t8)
|
|
/* f099e38: 91ca0010 */ lbu $t2,0x10($t6)
|
|
/* f099e3c: 31480004 */ andi $t0,$t2,0x4
|
|
/* f099e40: 51000005 */ beqzl $t0,.L0f099e58
|
|
/* f099e44: 8c620000 */ lw $v0,0x0($v1)
|
|
/* f099e48: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f099e4c: 358f0020 */ ori $t7,$t4,0x20
|
|
/* f099e50: a20f0690 */ sb $t7,0x690($s0)
|
|
/* f099e54: 8c620000 */ lw $v0,0x0($v1)
|
|
.L0f099e58:
|
|
/* f099e58: 2401001e */ addiu $at,$zero,0x1e
|
|
/* f099e5c: 10410003 */ beq $v0,$at,.L0f099e6c
|
|
/* f099e60: 2401001f */ addiu $at,$zero,0x1f
|
|
/* f099e64: 1441000d */ bne $v0,$at,.L0f099e9c
|
|
/* f099e68: 00000000 */ nop
|
|
.L0f099e6c:
|
|
/* f099e6c: 921906d6 */ lbu $t9,0x6d6($s0)
|
|
/* f099e70: 332dff0f */ andi $t5,$t9,0xff0f
|
|
/* f099e74: 10000009 */ b .L0f099e9c
|
|
/* f099e78: a20d06d6 */ sb $t5,0x6d6($s0)
|
|
.L0f099e7c:
|
|
/* f099e7c: 10000007 */ b .L0f099e9c
|
|
/* f099e80: ae090608 */ sw $t1,0x608($s0)
|
|
.L0f099e84:
|
|
/* f099e84: 0fc27346 */ jal bgunSetState
|
|
/* f099e88: 00002825 */ or $a1,$zero,$zero
|
|
/* f099e8c: 10400003 */ beqz $v0,.L0f099e9c
|
|
/* f099e90: 00000000 */ nop
|
|
/* f099e94: 10000119 */ b .L0f09a2fc
|
|
/* f099e98: 8fa20044 */ lw $v0,0x44($sp)
|
|
.L0f099e9c:
|
|
/* f099e9c: 10000052 */ b .L0f099fe8
|
|
/* f099ea0: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099ea4: 8fb80038 */ lw $t8,0x38($sp)
|
|
.L0f099ea8:
|
|
/* f099ea8: 81480007 */ lb $t0,0x7($t2)
|
|
/* f099eac: 02002025 */ or $a0,$s0,$zero
|
|
/* f099eb0: 8f0e0004 */ lw $t6,0x4($t8)
|
|
/* f099eb4: 00085880 */ sll $t3,$t0,0x2
|
|
/* f099eb8: 01cb6021 */ addu $t4,$t6,$t3
|
|
/* f099ebc: 8d8f001c */ lw $t7,0x1c($t4)
|
|
/* f099ec0: 91f90010 */ lbu $t9,0x10($t7)
|
|
/* f099ec4: 332d0004 */ andi $t5,$t9,0x4
|
|
/* f099ec8: 51a0002b */ beqzl $t5,.L0f099f78
|
|
/* f099ecc: 8e18060c */ lw $t8,0x60c($s0)
|
|
/* f099ed0: 0fc26291 */ jal bgun0f098a44
|
|
/* f099ed4: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f099ed8: 5040001f */ beqzl $v0,.L0f099f58
|
|
/* f099edc: ae00060c */ sw $zero,0x60c($s0)
|
|
/* f099ee0: 8e09060c */ lw $t1,0x60c($s0)
|
|
/* f099ee4: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f099ee8: 02003025 */ or $a2,$s0,$zero
|
|
/* f099eec: 31380010 */ andi $t8,$t1,0x10
|
|
/* f099ef0: 17000019 */ bnez $t8,.L0f099f58
|
|
/* f099ef4: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f099ef8: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099efc: 0fc2637e */ jal bgun0f098df8
|
|
/* f099f00: afa00010 */ sw $zero,0x10($sp)
|
|
/* f099f04: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f099f08: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099f0c: 02003025 */ or $a2,$s0,$zero
|
|
/* f099f10: 35480010 */ ori $t0,$t2,0x10
|
|
/* f099f14: ae08060c */ sw $t0,0x60c($s0)
|
|
/* f099f18: 0fc26328 */ jal bgun0f098ca0
|
|
/* f099f1c: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f099f20: 28410002 */ slti $at,$v0,0x2
|
|
/* f099f24: 54200005 */ bnezl $at,.L0f099f3c
|
|
/* f099f28: 2401ffff */ addiu $at,$zero,-1
|
|
/* f099f2c: 920e0690 */ lbu $t6,0x690($s0)
|
|
/* f099f30: 31cbffdf */ andi $t3,$t6,0xffdf
|
|
/* f099f34: a20b0690 */ sb $t3,0x690($s0)
|
|
/* f099f38: 2401ffff */ addiu $at,$zero,-1
|
|
.L0f099f3c:
|
|
/* f099f3c: 54410007 */ bnel $v0,$at,.L0f099f5c
|
|
/* f099f40: 8e19000c */ lw $t9,0xc($s0)
|
|
/* f099f44: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f099f48: 318fffdf */ andi $t7,$t4,0xffdf
|
|
/* f099f4c: 10000002 */ b .L0f099f58
|
|
/* f099f50: a20f0690 */ sb $t7,0x690($s0)
|
|
/* f099f54: ae00060c */ sw $zero,0x60c($s0)
|
|
.L0f099f58:
|
|
/* f099f58: 8e19000c */ lw $t9,0xc($s0)
|
|
.L0f099f5c:
|
|
/* f099f5c: 53200017 */ beqzl $t9,.L0f099fbc
|
|
/* f099f60: 8e0b068c */ lw $t3,0x68c($s0)
|
|
/* f099f64: 920d0690 */ lbu $t5,0x690($s0)
|
|
/* f099f68: 31a9ffdf */ andi $t1,$t5,0xffdf
|
|
/* f099f6c: 10000012 */ b .L0f099fb8
|
|
/* f099f70: a2090690 */ sb $t1,0x690($s0)
|
|
/* f099f74: 8e18060c */ lw $t8,0x60c($s0)
|
|
.L0f099f78:
|
|
/* f099f78: 02002025 */ or $a0,$s0,$zero
|
|
/* f099f7c: 330a0010 */ andi $t2,$t8,0x10
|
|
/* f099f80: 5540000e */ bnezl $t2,.L0f099fbc
|
|
/* f099f84: 8e0b068c */ lw $t3,0x68c($s0)
|
|
/* f099f88: 0fc26291 */ jal bgun0f098a44
|
|
/* f099f8c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f099f90: 10400009 */ beqz $v0,.L0f099fb8
|
|
/* f099f94: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f099f98: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099f9c: afa00010 */ sw $zero,0x10($sp)
|
|
/* f099fa0: 02003025 */ or $a2,$s0,$zero
|
|
/* f099fa4: 0fc2637e */ jal bgun0f098df8
|
|
/* f099fa8: 00003825 */ or $a3,$zero,$zero
|
|
/* f099fac: 8e08060c */ lw $t0,0x60c($s0)
|
|
/* f099fb0: 350e0010 */ ori $t6,$t0,0x10
|
|
/* f099fb4: ae0e060c */ sw $t6,0x60c($s0)
|
|
.L0f099fb8:
|
|
/* f099fb8: 8e0b068c */ lw $t3,0x68c($s0)
|
|
.L0f099fbc:
|
|
/* f099fbc: 24010002 */ addiu $at,$zero,0x2
|
|
/* f099fc0: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f099fc4: 51610008 */ beql $t3,$at,.L0f099fe8
|
|
/* f099fc8: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099fcc: 0fc27346 */ jal bgunSetState
|
|
/* f099fd0: 00002825 */ or $a1,$zero,$zero
|
|
/* f099fd4: 50400004 */ beqzl $v0,.L0f099fe8
|
|
/* f099fd8: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099fdc: 100000c7 */ b .L0f09a2fc
|
|
/* f099fe0: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f099fe4: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f099fe8:
|
|
/* f099fe8: 24010001 */ addiu $at,$zero,0x1
|
|
.L0f099fec:
|
|
/* f099fec: 5461001f */ bnel $v1,$at,.L0f09a06c
|
|
/* f099ff0: 24010002 */ addiu $at,$zero,0x2
|
|
/* f099ff4: 8e02001c */ lw $v0,0x1c($s0)
|
|
/* f099ff8: 240f000b */ addiu $t7,$zero,0xb
|
|
/* f099ffc: 24790001 */ addiu $t9,$v1,0x1
|
|
/* f09a000: 28410010 */ slti $at,$v0,0xd
|
|
/* f09a004: 10200004 */ beqz $at,.L0f09a018
|
|
/* f09a008: 240d0011 */ addiu $t5,$zero,0xe
|
|
/* f09a00c: 820c0007 */ lb $t4,0x7($s0)
|
|
/* f09a010: 55800009 */ bnezl $t4,.L0f09a038
|
|
/* f09a014: 44822000 */ mtc1 $v0,$f4
|
|
.L0f09a018:
|
|
/* f09a018: ae0f0020 */ sw $t7,0x20($s0)
|
|
/* f09a01c: ae190608 */ sw $t9,0x608($s0)
|
|
/* f09a020: ae0d0038 */ sw $t5,0x38($s0)
|
|
/* f09a024: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a028: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09a02c: 1000000e */ b .L0f09a068
|
|
/* f09a030: 03201825 */ or $v1,$t9,$zero
|
|
/* f09a034: 44822000 */ mtc1 $v0,$f4
|
|
.L0f09a038:
|
|
/* f09a038: 3c017f1b */ lui $at,%hi(var7f1ac1b8)
|
|
/* f09a03c: c428c1b8 */ lwc1 $f8,%lo(var7f1ac1b8)($at)
|
|
/* f09a040: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f09a044: 3c014180 */ lui $at,0x4150
|
|
/* f09a048: 44818000 */ mtc1 $at,$f16
|
|
/* f09a04c: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a050: 46083282 */ mul.s $f10,$f6,$f8
|
|
/* f09a054: 46105483 */ div.s $f18,$f10,$f16
|
|
/* f09a058: 44059000 */ mfc1 $a1,$f18
|
|
/* f09a05c: 0fc265e0 */ jal bgun0f099780
|
|
/* f09a060: 00000000 */ nop
|
|
/* f09a064: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f09a068:
|
|
/* f09a068: 24010002 */ addiu $at,$zero,0x2
|
|
.L0f09a06c:
|
|
/* f09a06c: 54610069 */ bnel $v1,$at,.L0f09a214
|
|
/* f09a070: 24010003 */ addiu $at,$zero,0x3
|
|
/* f09a074: 8e090018 */ lw $t1,0x18($s0)
|
|
/* f09a078: 8fb80038 */ lw $t8,0x38($sp)
|
|
/* f09a07c: 5520004f */ bnezl $t1,.L0f09a1bc
|
|
/* f09a080: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a084: 8f0a0000 */ lw $t2,0x0($t8)
|
|
/* f09a088: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f09a08c: 8fa80030 */ lw $t0,0x30($sp)
|
|
/* f09a090: 55410012 */ bnel $t2,$at,.L0f09a0dc
|
|
/* f09a094: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f09a098: 81020007 */ lb $v0,0x7($t0)
|
|
/* f09a09c: 0442000f */ bltzl $v0,.L0f09a0dc
|
|
/* f09a0a0: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f09a0a4: 8f0e0004 */ lw $t6,0x4($t8)
|
|
/* f09a0a8: 00025880 */ sll $t3,$v0,0x2
|
|
/* f09a0ac: 8fa5003c */ lw $a1,0x3c($sp)
|
|
/* f09a0b0: 01cb6021 */ addu $t4,$t6,$t3
|
|
/* f09a0b4: 8d8f001c */ lw $t7,0x1c($t4)
|
|
/* f09a0b8: 8de4000c */ lw $a0,0xc($t7)
|
|
/* f09a0bc: 50800007 */ beqzl $a0,.L0f09a0dc
|
|
/* f09a0c0: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f09a0c4: 0fc26238 */ jal bgunStartAnimation
|
|
/* f09a0c8: 02003025 */ or $a2,$s0,$zero
|
|
/* f09a0cc: 920d0690 */ lbu $t5,0x690($s0)
|
|
/* f09a0d0: 35a90040 */ ori $t1,$t5,0x40
|
|
/* f09a0d4: a2090690 */ sb $t1,0x690($s0)
|
|
/* f09a0d8: 8e0a060c */ lw $t2,0x60c($s0)
|
|
.L0f09a0dc:
|
|
/* f09a0dc: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f09a0e0: 02003025 */ or $a2,$s0,$zero
|
|
/* f09a0e4: 31480010 */ andi $t0,$t2,0x10
|
|
/* f09a0e8: 15000004 */ bnez $t0,.L0f09a0fc
|
|
/* f09a0ec: 00003825 */ or $a3,$zero,$zero
|
|
/* f09a0f0: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f09a0f4: 0fc2637e */ jal bgun0f098df8
|
|
/* f09a0f8: afa00010 */ sw $zero,0x10($sp)
|
|
.L0f09a0fc:
|
|
/* f09a0fc: 3c18800a */ lui $t8,%hi(g_Vars+0x34)
|
|
/* f09a100: 8f189ff4 */ lw $t8,%lo(g_Vars+0x34)($t8)
|
|
/* f09a104: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
|
|
/* f09a108: 5b00002c */ blezl $t8,.L0f09a1bc
|
|
/* f09a10c: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a110: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
|
|
/* f09a114: 24010001 */ addiu $at,$zero,0x1
|
|
/* f09a118: 8dcb0000 */ lw $t3,0x0($t6)
|
|
/* f09a11c: 51610027 */ beql $t3,$at,.L0f09a1bc
|
|
/* f09a120: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a124: 0fc2775f */ jal bgun0f09dd7c
|
|
/* f09a128: 00000000 */ nop
|
|
/* f09a12c: 10400022 */ beqz $v0,.L0f09a1b8
|
|
/* f09a130: 3c0c8007 */ lui $t4,%hi(g_PlayerInvincible)
|
|
/* f09a134: 8d8c0760 */ lw $t4,%lo(g_PlayerInvincible)($t4)
|
|
/* f09a138: 3c0f800a */ lui $t7,%hi(g_Vars+0x284)
|
|
/* f09a13c: 5580001f */ bnezl $t4,.L0f09a1bc
|
|
/* f09a140: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a144: 8defa244 */ lw $t7,%lo(g_Vars+0x284)($t7)
|
|
/* f09a148: 8fad0038 */ lw $t5,0x38($sp)
|
|
/* f09a14c: 8df900d8 */ lw $t9,0xd8($t7)
|
|
/* f09a150: 5720001a */ bnezl $t9,.L0f09a1bc
|
|
/* f09a154: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a158: 8da90000 */ lw $t1,0x0($t5)
|
|
/* f09a15c: 2d210058 */ sltiu $at,$t1,0x58
|
|
/* f09a160: 10200006 */ beqz $at,.L0f09a17c
|
|
/* f09a164: 00094880 */ sll $t1,$t1,0x2
|
|
/* f09a168: 3c017f1b */ lui $at,%hi(var7f1ac1bc)
|
|
/* f09a16c: 00290821 */ addu $at,$at,$t1
|
|
/* f09a170: 8c29c1bc */ lw $t1,%lo(var7f1ac1bc)($at)
|
|
/* f09a174: 01200008 */ jr $t1
|
|
/* f09a178: 00000000 */ nop
|
|
.L0f09a17c:
|
|
/* f09a17c: 3c01bf80 */ lui $at,0xbf80
|
|
/* f09a180: 44812000 */ mtc1 $at,$f4
|
|
/* f09a184: 3c048009 */ lui $a0,%hi(var80095200)
|
|
/* f09a188: 240affff */ addiu $t2,$zero,-1
|
|
/* f09a18c: 2408ffff */ addiu $t0,$zero,-1
|
|
/* f09a190: 2418ffff */ addiu $t8,$zero,-1
|
|
/* f09a194: afb8001c */ sw $t8,0x1c($sp)
|
|
/* f09a198: afa80018 */ sw $t0,0x18($sp)
|
|
/* f09a19c: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f09a1a0: 8c845200 */ lw $a0,%lo(var80095200)($a0)
|
|
/* f09a1a4: 2405804f */ addiu $a1,$zero,-32689
|
|
/* f09a1a8: 00003025 */ or $a2,$zero,$zero
|
|
/* f09a1ac: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f09a1b0: 0c004241 */ jal sndStart
|
|
/* f09a1b4: e7a40014 */ swc1 $f4,0x14($sp)
|
|
.L0f09a1b8:
|
|
/* f09a1b8: 8e0e001c */ lw $t6,0x1c($s0)
|
|
.L0f09a1bc:
|
|
/* f09a1bc: 8e0b0038 */ lw $t3,0x38($s0)
|
|
/* f09a1c0: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a1c4: 3c053f5f */ lui $a1,0x3f5f
|
|
/* f09a1c8: 01cb082a */ slt $at,$t6,$t3
|
|
/* f09a1cc: 1420000d */ bnez $at,.L0f09a204
|
|
/* f09a1d0: 00000000 */ nop
|
|
/* f09a1d4: 8e0c0018 */ lw $t4,0x18($s0)
|
|
/* f09a1d8: 240f000c */ addiu $t7,$zero,0xc
|
|
/* f09a1dc: 29810002 */ slti $at,$t4,0x2
|
|
/* f09a1e0: 14200008 */ bnez $at,.L0f09a204
|
|
/* f09a1e4: 00000000 */ nop
|
|
/* f09a1e8: 8e190608 */ lw $t9,0x608($s0)
|
|
/* f09a1ec: ae0f0020 */ sw $t7,0x20($s0)
|
|
/* f09a1f0: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a1f4: 27230001 */ addiu $v1,$t9,0x1
|
|
/* f09a1f8: ae030608 */ sw $v1,0x608($s0)
|
|
/* f09a1fc: 10000004 */ b .L0f09a210
|
|
/* f09a200: ae000018 */ sw $zero,0x18($s0)
|
|
.L0f09a204:
|
|
/* f09a204: 0fc265e0 */ jal bgun0f099780
|
|
/* f09a208: 34a55dd8 */ ori $a1,$a1,0x5dd8
|
|
/* f09a20c: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f09a210:
|
|
/* f09a210: 24010003 */ addiu $at,$zero,0x3
|
|
.L0f09a214:
|
|
/* f09a214: 14610038 */ bne $v1,$at,.L0f09a2f8
|
|
/* f09a218: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f09a21c: 8d2a0000 */ lw $t2,0x0($t1)
|
|
/* f09a220: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f09a224: 3c18800a */ lui $t8,%hi(g_Vars+0x284)
|
|
/* f09a228: 55410003 */ bnel $t2,$at,.L0f09a238
|
|
/* f09a22c: 8e080018 */ lw $t0,0x18($s0)
|
|
/* f09a230: ae00068c */ sw $zero,0x68c($s0)
|
|
/* f09a234: 8e080018 */ lw $t0,0x18($s0)
|
|
.L0f09a238:
|
|
/* f09a238: 55000004 */ bnezl $t0,.L0f09a24c
|
|
/* f09a23c: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a240: 8f18a244 */ lw $t8,%lo(g_Vars+0x284)($t8)
|
|
/* f09a244: af001600 */ sw $zero,0x1600($t8)
|
|
/* f09a248: 8e0e001c */ lw $t6,0x1c($s0)
|
|
.L0f09a24c:
|
|
/* f09a24c: 8fab0038 */ lw $t3,0x38($sp)
|
|
/* f09a250: 29c10017 */ slti $at,$t6,0x13
|
|
/* f09a254: 50200010 */ beqzl $at,.L0f09a298
|
|
/* f09a258: ae000020 */ sw $zero,0x20($s0)
|
|
/* f09a25c: 0fc2c6b4 */ jal weaponGetModelNum2
|
|
/* f09a260: 8d640000 */ lw $a0,0x0($t3)
|
|
/* f09a264: 1040000b */ beqz $v0,.L0f09a294
|
|
/* f09a268: 8fac0038 */ lw $t4,0x38($sp)
|
|
/* f09a26c: 8d840000 */ lw $a0,0x0($t4)
|
|
/* f09a270: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f09a274: 24050040 */ addiu $a1,$zero,0x40
|
|
/* f09a278: 10400006 */ beqz $v0,.L0f09a294
|
|
/* f09a27c: 8faf0038 */ lw $t7,0x38($sp)
|
|
/* f09a280: 8de40000 */ lw $a0,0x0($t7)
|
|
/* f09a284: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f09a288: 24050080 */ addiu $a1,$zero,0x80
|
|
/* f09a28c: 5040000c */ beqzl $v0,.L0f09a2c0
|
|
/* f09a290: 8e19001c */ lw $t9,0x1c($s0)
|
|
.L0f09a294:
|
|
/* f09a294: ae000020 */ sw $zero,0x20($s0)
|
|
.L0f09a298:
|
|
/* f09a298: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a29c: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09a2a0: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f09a2a4: 0fc27346 */ jal bgunSetState
|
|
/* f09a2a8: 00002825 */ or $a1,$zero,$zero
|
|
/* f09a2ac: 50400013 */ beqzl $v0,.L0f09a2fc
|
|
/* f09a2b0: 00001025 */ or $v0,$zero,$zero
|
|
/* f09a2b4: 10000011 */ b .L0f09a2fc
|
|
/* f09a2b8: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f09a2bc: 8e19001c */ lw $t9,0x1c($s0)
|
|
.L0f09a2c0:
|
|
/* f09a2c0: 240d0017 */ addiu $t5,$zero,0x13
|
|
/* f09a2c4: 3c017f1b */ lui $at,%hi(var7f1ac31c)
|
|
/* f09a2c8: 01b94823 */ subu $t1,$t5,$t9
|
|
/* f09a2cc: 44893000 */ mtc1 $t1,$f6
|
|
/* f09a2d0: c42ac31c */ lwc1 $f10,%lo(var7f1ac31c)($at)
|
|
/* f09a2d4: 3c0141b8 */ lui $at,0x4198
|
|
/* f09a2d8: 46803220 */ cvt.s.w $f8,$f6
|
|
/* f09a2dc: 44819000 */ mtc1 $at,$f18
|
|
/* f09a2e0: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a2e4: 460a4402 */ mul.s $f16,$f8,$f10
|
|
/* f09a2e8: 46128103 */ div.s $f4,$f16,$f18
|
|
/* f09a2ec: 44052000 */ mfc1 $a1,$f4
|
|
/* f09a2f0: 0fc265e0 */ jal bgun0f099780
|
|
/* f09a2f4: 00000000 */ nop
|
|
.L0f09a2f8:
|
|
/* f09a2f8: 00001025 */ or $v0,$zero,$zero
|
|
.L0f09a2fc:
|
|
/* f09a2fc: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f09a300: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f09a304: 27bd0038 */ addiu $sp,$sp,0x38
|
|
/* f09a308: 03e00008 */ jr $ra
|
|
/* f09a30c: 00000000 */ nop
|
|
);
|
|
#elif VERSION >= VERSION_NTSC_1_0
|
|
GLOBAL_ASM(
|
|
glabel bgunTickIncReload
|
|
.late_rodata
|
|
glabel var7f1ac1b8
|
|
.word 0x3f5f5dd8
|
|
glabel var7f1ac1bc
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac1c0
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac1c4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1c8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1cc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1d0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1d4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1d8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1dc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1e0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1e4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1e8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1ec
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1f0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1f4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1f8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1fc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac200
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac204
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac208
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac20c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac210
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac214
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac218
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac21c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac220
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac224
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac228
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac22c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac230
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac234
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac238
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac23c
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac240
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac244
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac248
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac24c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac250
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac254
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac258
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac25c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac260
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac264
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac268
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac26c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac270
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac274
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac278
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac27c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac280
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac284
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac288
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac28c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac290
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac294
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac298
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac29c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2a0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2a4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2a8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2ac
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2b0
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac2b4
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac2b8
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac2bc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2c0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2c4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2c8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2cc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2d0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2d4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2d8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2dc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2e0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2e4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2e8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2ec
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2f0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2f4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2f8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2fc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac300
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac304
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac308
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac30c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac310
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac314
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac318
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac31c
|
|
.word 0x3f5f5dd8
|
|
.text
|
|
/* f099c48: 27bdffc8 */ addiu $sp,$sp,-56
|
|
/* f099c4c: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f099c50: afb00028 */ sw $s0,0x28($sp)
|
|
/* f099c54: afa40038 */ sw $a0,0x38($sp)
|
|
/* f099c58: 00c08025 */ or $s0,$a2,$zero
|
|
/* f099c5c: afa5003c */ sw $a1,0x3c($sp)
|
|
/* f099c60: afa70044 */ sw $a3,0x44($sp)
|
|
/* f099c64: 0fc2c41f */ jal gsetGetWeaponFunction
|
|
/* f099c68: 00c02025 */ or $a0,$a2,$zero
|
|
/* f099c6c: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
|
|
/* f099c70: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
|
|
/* f099c74: afa20030 */ sw $v0,0x30($sp)
|
|
/* f099c78: 2418ffff */ addiu $t8,$zero,-1
|
|
/* f099c7c: 8dcf00d8 */ lw $t7,0xd8($t6)
|
|
/* f099c80: 00002825 */ or $a1,$zero,$zero
|
|
/* f099c84: 51e0000a */ beqzl $t7,.L0f099cb0
|
|
/* f099c88: 8e190618 */ lw $t9,0x618($s0)
|
|
/* f099c8c: ae00068c */ sw $zero,0x68c($s0)
|
|
/* f099c90: ae180680 */ sw $t8,0x680($s0)
|
|
/* f099c94: 0fc27346 */ jal bgunSetState
|
|
/* f099c98: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f099c9c: 50400004 */ beqzl $v0,.L0f099cb0
|
|
/* f099ca0: 8e190618 */ lw $t9,0x618($s0)
|
|
/* f099ca4: 10000195 */ b .L0f09a2fc
|
|
/* f099ca8: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f099cac: 8e190618 */ lw $t9,0x618($s0)
|
|
.L0f099cb0:
|
|
/* f099cb0: 8fa9003c */ lw $t1,0x3c($sp)
|
|
/* f099cb4: 3c08800a */ lui $t0,%hi(g_Vars+0x284)
|
|
/* f099cb8: 17200018 */ bnez $t9,.L0f099d1c
|
|
/* f099cbc: 00095100 */ sll $t2,$t1,0x4
|
|
/* f099cc0: 01495023 */ subu $t2,$t2,$t1
|
|
/* f099cc4: 000a5080 */ sll $t2,$t2,0x2
|
|
/* f099cc8: 01495021 */ addu $t2,$t2,$t1
|
|
/* f099ccc: 000a50c0 */ sll $t2,$t2,0x3
|
|
/* f099cd0: 8d08a244 */ lw $t0,%lo(g_Vars+0x284)($t0)
|
|
/* f099cd4: 01495021 */ addu $t2,$t2,$t1
|
|
/* f099cd8: 000a5080 */ sll $t2,$t2,0x2
|
|
/* f099cdc: 000a5823 */ negu $t3,$t2
|
|
/* f099ce0: 240cffff */ addiu $t4,$zero,-1
|
|
/* f099ce4: ae0c0670 */ sw $t4,0x670($s0)
|
|
/* f099ce8: ae000674 */ sw $zero,0x674($s0)
|
|
/* f099cec: 010b1021 */ addu $v0,$t0,$t3
|
|
/* f099cf0: 8c4d13e0 */ lw $t5,0x13e0($v0)
|
|
/* f099cf4: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099cf8: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f099cfc: 55a10008 */ bnel $t5,$at,.L0f099d20
|
|
/* f099d00: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099d04: 8c4e0614 */ lw $t6,0x614($v0)
|
|
/* f099d08: 240f0009 */ addiu $t7,$zero,0x9
|
|
/* f099d0c: 29c10014 */ slti $at,$t6,0x14
|
|
/* f099d10: 50200003 */ beqzl $at,.L0f099d20
|
|
/* f099d14: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099d18: ae0f0608 */ sw $t7,0x608($s0)
|
|
.L0f099d1c:
|
|
/* f099d1c: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f099d20:
|
|
/* f099d20: 8fb9003c */ lw $t9,0x3c($sp)
|
|
/* f099d24: 24010009 */ addiu $at,$zero,0x9
|
|
/* f099d28: 1461001a */ bne $v1,$at,.L0f099d94
|
|
/* f099d2c: 00194900 */ sll $t1,$t9,0x4
|
|
/* f099d30: 01394823 */ subu $t1,$t1,$t9
|
|
/* f099d34: 00094880 */ sll $t1,$t1,0x2
|
|
/* f099d38: 01394821 */ addu $t1,$t1,$t9
|
|
/* f099d3c: 000948c0 */ sll $t1,$t1,0x3
|
|
/* f099d40: 3c18800a */ lui $t8,%hi(g_Vars+0x284)
|
|
/* f099d44: 8f18a244 */ lw $t8,%lo(g_Vars+0x284)($t8)
|
|
/* f099d48: 01394821 */ addu $t1,$t1,$t9
|
|
/* f099d4c: 00094880 */ sll $t1,$t1,0x2
|
|
/* f099d50: 00095023 */ negu $t2,$t1
|
|
/* f099d54: 030a1021 */ addu $v0,$t8,$t2
|
|
/* f099d58: 8c4813e0 */ lw $t0,0x13e0($v0)
|
|
/* f099d5c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099d60: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f099d64: 15010007 */ bne $t0,$at,.L0f099d84
|
|
/* f099d68: 00001825 */ or $v1,$zero,$zero
|
|
/* f099d6c: 8c4b0614 */ lw $t3,0x614($v0)
|
|
/* f099d70: 29610014 */ slti $at,$t3,0x14
|
|
/* f099d74: 50200004 */ beqzl $at,.L0f099d88
|
|
/* f099d78: ae000614 */ sw $zero,0x614($s0)
|
|
/* f099d7c: 1000015f */ b .L0f09a2fc
|
|
/* f099d80: 00001025 */ or $v0,$zero,$zero
|
|
.L0f099d84:
|
|
/* f099d84: ae000614 */ sw $zero,0x614($s0)
|
|
.L0f099d88:
|
|
/* f099d88: ae000618 */ sw $zero,0x618($s0)
|
|
/* f099d8c: ae000608 */ sw $zero,0x608($s0)
|
|
/* f099d90: ae00061c */ sw $zero,0x61c($s0)
|
|
.L0f099d94:
|
|
/* f099d94: 54600095 */ bnezl $v1,.L0f099fec
|
|
/* f099d98: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099d9c: 8e0c0618 */ lw $t4,0x618($s0)
|
|
/* f099da0: 8fad0030 */ lw $t5,0x30($sp)
|
|
/* f099da4: 8faa0030 */ lw $t2,0x30($sp)
|
|
/* f099da8: 5580003f */ bnezl $t4,.L0f099ea8
|
|
/* f099dac: 8fb80038 */ lw $t8,0x38($sp)
|
|
/* f099db0: 11a00034 */ beqz $t5,.L0f099e84
|
|
/* f099db4: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f099db8: 81a20007 */ lb $v0,0x7($t5)
|
|
/* f099dbc: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099dc0: 8fae0038 */ lw $t6,0x38($sp)
|
|
/* f099dc4: 50400004 */ beqzl $v0,.L0f099dd8
|
|
/* f099dc8: 8dcf0004 */ lw $t7,0x4($t6)
|
|
/* f099dcc: 1441002d */ bne $v0,$at,.L0f099e84
|
|
/* f099dd0: 00000000 */ nop
|
|
/* f099dd4: 8dcf0004 */ lw $t7,0x4($t6)
|
|
.L0f099dd8:
|
|
/* f099dd8: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f099ddc: 01f94821 */ addu $t1,$t7,$t9
|
|
/* f099de0: 8d38001c */ lw $t8,0x1c($t1)
|
|
/* f099de4: 24690001 */ addiu $t1,$v1,0x1
|
|
/* f099de8: 8f04000c */ lw $a0,0xc($t8)
|
|
/* f099dec: 10800023 */ beqz $a0,.L0f099e7c
|
|
/* f099df0: 00000000 */ nop
|
|
/* f099df4: 8dca0000 */ lw $t2,0x0($t6)
|
|
/* f099df8: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f099dfc: 8fa5003c */ lw $a1,0x3c($sp)
|
|
/* f099e00: 1141001e */ beq $t2,$at,.L0f099e7c
|
|
/* f099e04: 00000000 */ nop
|
|
/* f099e08: 0fc26238 */ jal bgunStartAnimation
|
|
/* f099e0c: 02003025 */ or $a2,$s0,$zero
|
|
/* f099e10: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f099e14: 8fa30038 */ lw $v1,0x38($sp)
|
|
/* f099e18: 356c0001 */ ori $t4,$t3,0x1
|
|
/* f099e1c: a20c06d6 */ sb $t4,0x6d6($s0)
|
|
/* f099e20: 8faf0030 */ lw $t7,0x30($sp)
|
|
/* f099e24: 8c6d0004 */ lw $t5,0x4($v1)
|
|
/* f099e28: 81f90007 */ lb $t9,0x7($t7)
|
|
/* f099e2c: 00194880 */ sll $t1,$t9,0x2
|
|
/* f099e30: 01a9c021 */ addu $t8,$t5,$t1
|
|
/* f099e34: 8f0e001c */ lw $t6,0x1c($t8)
|
|
/* f099e38: 91ca0010 */ lbu $t2,0x10($t6)
|
|
/* f099e3c: 31480004 */ andi $t0,$t2,0x4
|
|
/* f099e40: 51000005 */ beqzl $t0,.L0f099e58
|
|
/* f099e44: 8c620000 */ lw $v0,0x0($v1)
|
|
/* f099e48: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f099e4c: 358f0020 */ ori $t7,$t4,0x20
|
|
/* f099e50: a20f0690 */ sb $t7,0x690($s0)
|
|
/* f099e54: 8c620000 */ lw $v0,0x0($v1)
|
|
.L0f099e58:
|
|
/* f099e58: 2401001e */ addiu $at,$zero,0x1e
|
|
/* f099e5c: 10410003 */ beq $v0,$at,.L0f099e6c
|
|
/* f099e60: 2401001f */ addiu $at,$zero,0x1f
|
|
/* f099e64: 1441000d */ bne $v0,$at,.L0f099e9c
|
|
/* f099e68: 00000000 */ nop
|
|
.L0f099e6c:
|
|
/* f099e6c: 921906d6 */ lbu $t9,0x6d6($s0)
|
|
/* f099e70: 332dff0f */ andi $t5,$t9,0xff0f
|
|
/* f099e74: 10000009 */ b .L0f099e9c
|
|
/* f099e78: a20d06d6 */ sb $t5,0x6d6($s0)
|
|
.L0f099e7c:
|
|
/* f099e7c: 10000007 */ b .L0f099e9c
|
|
/* f099e80: ae090608 */ sw $t1,0x608($s0)
|
|
.L0f099e84:
|
|
/* f099e84: 0fc27346 */ jal bgunSetState
|
|
/* f099e88: 00002825 */ or $a1,$zero,$zero
|
|
/* f099e8c: 10400003 */ beqz $v0,.L0f099e9c
|
|
/* f099e90: 00000000 */ nop
|
|
/* f099e94: 10000119 */ b .L0f09a2fc
|
|
/* f099e98: 8fa20044 */ lw $v0,0x44($sp)
|
|
.L0f099e9c:
|
|
/* f099e9c: 10000052 */ b .L0f099fe8
|
|
/* f099ea0: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099ea4: 8fb80038 */ lw $t8,0x38($sp)
|
|
.L0f099ea8:
|
|
/* f099ea8: 81480007 */ lb $t0,0x7($t2)
|
|
/* f099eac: 02002025 */ or $a0,$s0,$zero
|
|
/* f099eb0: 8f0e0004 */ lw $t6,0x4($t8)
|
|
/* f099eb4: 00085880 */ sll $t3,$t0,0x2
|
|
/* f099eb8: 01cb6021 */ addu $t4,$t6,$t3
|
|
/* f099ebc: 8d8f001c */ lw $t7,0x1c($t4)
|
|
/* f099ec0: 91f90010 */ lbu $t9,0x10($t7)
|
|
/* f099ec4: 332d0004 */ andi $t5,$t9,0x4
|
|
/* f099ec8: 51a0002b */ beqzl $t5,.L0f099f78
|
|
/* f099ecc: 8e18060c */ lw $t8,0x60c($s0)
|
|
/* f099ed0: 0fc26291 */ jal bgun0f098a44
|
|
/* f099ed4: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f099ed8: 5040001f */ beqzl $v0,.L0f099f58
|
|
/* f099edc: ae00060c */ sw $zero,0x60c($s0)
|
|
/* f099ee0: 8e09060c */ lw $t1,0x60c($s0)
|
|
/* f099ee4: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f099ee8: 02003025 */ or $a2,$s0,$zero
|
|
/* f099eec: 31380010 */ andi $t8,$t1,0x10
|
|
/* f099ef0: 17000019 */ bnez $t8,.L0f099f58
|
|
/* f099ef4: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f099ef8: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099efc: 0fc2637e */ jal bgun0f098df8
|
|
/* f099f00: afa00010 */ sw $zero,0x10($sp)
|
|
/* f099f04: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f099f08: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099f0c: 02003025 */ or $a2,$s0,$zero
|
|
/* f099f10: 35480010 */ ori $t0,$t2,0x10
|
|
/* f099f14: ae08060c */ sw $t0,0x60c($s0)
|
|
/* f099f18: 0fc26328 */ jal bgun0f098ca0
|
|
/* f099f1c: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f099f20: 28410002 */ slti $at,$v0,0x2
|
|
/* f099f24: 54200005 */ bnezl $at,.L0f099f3c
|
|
/* f099f28: 2401ffff */ addiu $at,$zero,-1
|
|
/* f099f2c: 920e0690 */ lbu $t6,0x690($s0)
|
|
/* f099f30: 31cbffdf */ andi $t3,$t6,0xffdf
|
|
/* f099f34: a20b0690 */ sb $t3,0x690($s0)
|
|
/* f099f38: 2401ffff */ addiu $at,$zero,-1
|
|
.L0f099f3c:
|
|
/* f099f3c: 54410007 */ bnel $v0,$at,.L0f099f5c
|
|
/* f099f40: 8e19000c */ lw $t9,0xc($s0)
|
|
/* f099f44: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f099f48: 318fffdf */ andi $t7,$t4,0xffdf
|
|
/* f099f4c: 10000002 */ b .L0f099f58
|
|
/* f099f50: a20f0690 */ sb $t7,0x690($s0)
|
|
/* f099f54: ae00060c */ sw $zero,0x60c($s0)
|
|
.L0f099f58:
|
|
/* f099f58: 8e19000c */ lw $t9,0xc($s0)
|
|
.L0f099f5c:
|
|
/* f099f5c: 53200017 */ beqzl $t9,.L0f099fbc
|
|
/* f099f60: 8e0b068c */ lw $t3,0x68c($s0)
|
|
/* f099f64: 920d0690 */ lbu $t5,0x690($s0)
|
|
/* f099f68: 31a9ffdf */ andi $t1,$t5,0xffdf
|
|
/* f099f6c: 10000012 */ b .L0f099fb8
|
|
/* f099f70: a2090690 */ sb $t1,0x690($s0)
|
|
/* f099f74: 8e18060c */ lw $t8,0x60c($s0)
|
|
.L0f099f78:
|
|
/* f099f78: 02002025 */ or $a0,$s0,$zero
|
|
/* f099f7c: 330a0010 */ andi $t2,$t8,0x10
|
|
/* f099f80: 5540000e */ bnezl $t2,.L0f099fbc
|
|
/* f099f84: 8e0b068c */ lw $t3,0x68c($s0)
|
|
/* f099f88: 0fc26291 */ jal bgun0f098a44
|
|
/* f099f8c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f099f90: 10400009 */ beqz $v0,.L0f099fb8
|
|
/* f099f94: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f099f98: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099f9c: afa00010 */ sw $zero,0x10($sp)
|
|
/* f099fa0: 02003025 */ or $a2,$s0,$zero
|
|
/* f099fa4: 0fc2637e */ jal bgun0f098df8
|
|
/* f099fa8: 00003825 */ or $a3,$zero,$zero
|
|
/* f099fac: 8e08060c */ lw $t0,0x60c($s0)
|
|
/* f099fb0: 350e0010 */ ori $t6,$t0,0x10
|
|
/* f099fb4: ae0e060c */ sw $t6,0x60c($s0)
|
|
.L0f099fb8:
|
|
/* f099fb8: 8e0b068c */ lw $t3,0x68c($s0)
|
|
.L0f099fbc:
|
|
/* f099fbc: 24010002 */ addiu $at,$zero,0x2
|
|
/* f099fc0: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f099fc4: 51610008 */ beql $t3,$at,.L0f099fe8
|
|
/* f099fc8: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099fcc: 0fc27346 */ jal bgunSetState
|
|
/* f099fd0: 00002825 */ or $a1,$zero,$zero
|
|
/* f099fd4: 50400004 */ beqzl $v0,.L0f099fe8
|
|
/* f099fd8: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099fdc: 100000c7 */ b .L0f09a2fc
|
|
/* f099fe0: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f099fe4: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f099fe8:
|
|
/* f099fe8: 24010001 */ addiu $at,$zero,0x1
|
|
.L0f099fec:
|
|
/* f099fec: 5461001f */ bnel $v1,$at,.L0f09a06c
|
|
/* f099ff0: 24010002 */ addiu $at,$zero,0x2
|
|
/* f099ff4: 8e02001c */ lw $v0,0x1c($s0)
|
|
/* f099ff8: 240f000b */ addiu $t7,$zero,0xb
|
|
/* f099ffc: 24790001 */ addiu $t9,$v1,0x1
|
|
/* f09a000: 28410010 */ slti $at,$v0,0x10
|
|
/* f09a004: 10200004 */ beqz $at,.L0f09a018
|
|
/* f09a008: 240d0011 */ addiu $t5,$zero,0x11
|
|
/* f09a00c: 820c0007 */ lb $t4,0x7($s0)
|
|
/* f09a010: 55800009 */ bnezl $t4,.L0f09a038
|
|
/* f09a014: 44822000 */ mtc1 $v0,$f4
|
|
.L0f09a018:
|
|
/* f09a018: ae0f0020 */ sw $t7,0x20($s0)
|
|
/* f09a01c: ae190608 */ sw $t9,0x608($s0)
|
|
/* f09a020: ae0d0038 */ sw $t5,0x38($s0)
|
|
/* f09a024: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a028: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09a02c: 1000000e */ b .L0f09a068
|
|
/* f09a030: 03201825 */ or $v1,$t9,$zero
|
|
/* f09a034: 44822000 */ mtc1 $v0,$f4
|
|
.L0f09a038:
|
|
/* f09a038: 3c017f1b */ lui $at,%hi(var7f1ac1b8)
|
|
/* f09a03c: c428c1b8 */ lwc1 $f8,%lo(var7f1ac1b8)($at)
|
|
/* f09a040: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f09a044: 3c014180 */ lui $at,0x4180
|
|
/* f09a048: 44818000 */ mtc1 $at,$f16
|
|
/* f09a04c: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a050: 46083282 */ mul.s $f10,$f6,$f8
|
|
/* f09a054: 46105483 */ div.s $f18,$f10,$f16
|
|
/* f09a058: 44059000 */ mfc1 $a1,$f18
|
|
/* f09a05c: 0fc265e0 */ jal bgun0f099780
|
|
/* f09a060: 00000000 */ nop
|
|
/* f09a064: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f09a068:
|
|
/* f09a068: 24010002 */ addiu $at,$zero,0x2
|
|
.L0f09a06c:
|
|
/* f09a06c: 54610069 */ bnel $v1,$at,.L0f09a214
|
|
/* f09a070: 24010003 */ addiu $at,$zero,0x3
|
|
/* f09a074: 8e090018 */ lw $t1,0x18($s0)
|
|
/* f09a078: 8fb80038 */ lw $t8,0x38($sp)
|
|
/* f09a07c: 5520004f */ bnezl $t1,.L0f09a1bc
|
|
/* f09a080: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a084: 8f0a0000 */ lw $t2,0x0($t8)
|
|
/* f09a088: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f09a08c: 8fa80030 */ lw $t0,0x30($sp)
|
|
/* f09a090: 55410012 */ bnel $t2,$at,.L0f09a0dc
|
|
/* f09a094: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f09a098: 81020007 */ lb $v0,0x7($t0)
|
|
/* f09a09c: 0442000f */ bltzl $v0,.L0f09a0dc
|
|
/* f09a0a0: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f09a0a4: 8f0e0004 */ lw $t6,0x4($t8)
|
|
/* f09a0a8: 00025880 */ sll $t3,$v0,0x2
|
|
/* f09a0ac: 8fa5003c */ lw $a1,0x3c($sp)
|
|
/* f09a0b0: 01cb6021 */ addu $t4,$t6,$t3
|
|
/* f09a0b4: 8d8f001c */ lw $t7,0x1c($t4)
|
|
/* f09a0b8: 8de4000c */ lw $a0,0xc($t7)
|
|
/* f09a0bc: 50800007 */ beqzl $a0,.L0f09a0dc
|
|
/* f09a0c0: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f09a0c4: 0fc26238 */ jal bgunStartAnimation
|
|
/* f09a0c8: 02003025 */ or $a2,$s0,$zero
|
|
/* f09a0cc: 920d0690 */ lbu $t5,0x690($s0)
|
|
/* f09a0d0: 35a90040 */ ori $t1,$t5,0x40
|
|
/* f09a0d4: a2090690 */ sb $t1,0x690($s0)
|
|
/* f09a0d8: 8e0a060c */ lw $t2,0x60c($s0)
|
|
.L0f09a0dc:
|
|
/* f09a0dc: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f09a0e0: 02003025 */ or $a2,$s0,$zero
|
|
/* f09a0e4: 31480010 */ andi $t0,$t2,0x10
|
|
/* f09a0e8: 15000004 */ bnez $t0,.L0f09a0fc
|
|
/* f09a0ec: 00003825 */ or $a3,$zero,$zero
|
|
/* f09a0f0: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f09a0f4: 0fc2637e */ jal bgun0f098df8
|
|
/* f09a0f8: afa00010 */ sw $zero,0x10($sp)
|
|
.L0f09a0fc:
|
|
/* f09a0fc: 3c18800a */ lui $t8,%hi(g_Vars+0x34)
|
|
/* f09a100: 8f189ff4 */ lw $t8,%lo(g_Vars+0x34)($t8)
|
|
/* f09a104: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
|
|
/* f09a108: 5b00002c */ blezl $t8,.L0f09a1bc
|
|
/* f09a10c: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a110: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
|
|
/* f09a114: 24010001 */ addiu $at,$zero,0x1
|
|
/* f09a118: 8dcb0000 */ lw $t3,0x0($t6)
|
|
/* f09a11c: 51610027 */ beql $t3,$at,.L0f09a1bc
|
|
/* f09a120: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a124: 0fc2775f */ jal bgun0f09dd7c
|
|
/* f09a128: 00000000 */ nop
|
|
/* f09a12c: 10400022 */ beqz $v0,.L0f09a1b8
|
|
/* f09a130: 3c0c8007 */ lui $t4,%hi(g_PlayerInvincible)
|
|
/* f09a134: 8d8c0760 */ lw $t4,%lo(g_PlayerInvincible)($t4)
|
|
/* f09a138: 3c0f800a */ lui $t7,%hi(g_Vars+0x284)
|
|
/* f09a13c: 5580001f */ bnezl $t4,.L0f09a1bc
|
|
/* f09a140: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a144: 8defa244 */ lw $t7,%lo(g_Vars+0x284)($t7)
|
|
/* f09a148: 8fad0038 */ lw $t5,0x38($sp)
|
|
/* f09a14c: 8df900d8 */ lw $t9,0xd8($t7)
|
|
/* f09a150: 5720001a */ bnezl $t9,.L0f09a1bc
|
|
/* f09a154: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a158: 8da90000 */ lw $t1,0x0($t5)
|
|
/* f09a15c: 2d210058 */ sltiu $at,$t1,0x58
|
|
/* f09a160: 10200006 */ beqz $at,.L0f09a17c
|
|
/* f09a164: 00094880 */ sll $t1,$t1,0x2
|
|
/* f09a168: 3c017f1b */ lui $at,%hi(var7f1ac1bc)
|
|
/* f09a16c: 00290821 */ addu $at,$at,$t1
|
|
/* f09a170: 8c29c1bc */ lw $t1,%lo(var7f1ac1bc)($at)
|
|
/* f09a174: 01200008 */ jr $t1
|
|
/* f09a178: 00000000 */ nop
|
|
.L0f09a17c:
|
|
/* f09a17c: 3c01bf80 */ lui $at,0xbf80
|
|
/* f09a180: 44812000 */ mtc1 $at,$f4
|
|
/* f09a184: 3c048009 */ lui $a0,%hi(var80095200)
|
|
/* f09a188: 240affff */ addiu $t2,$zero,-1
|
|
/* f09a18c: 2408ffff */ addiu $t0,$zero,-1
|
|
/* f09a190: 2418ffff */ addiu $t8,$zero,-1
|
|
/* f09a194: afb8001c */ sw $t8,0x1c($sp)
|
|
/* f09a198: afa80018 */ sw $t0,0x18($sp)
|
|
/* f09a19c: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f09a1a0: 8c845200 */ lw $a0,%lo(var80095200)($a0)
|
|
/* f09a1a4: 2405804f */ addiu $a1,$zero,-32689
|
|
/* f09a1a8: 00003025 */ or $a2,$zero,$zero
|
|
/* f09a1ac: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f09a1b0: 0c004241 */ jal sndStart
|
|
/* f09a1b4: e7a40014 */ swc1 $f4,0x14($sp)
|
|
.L0f09a1b8:
|
|
/* f09a1b8: 8e0e001c */ lw $t6,0x1c($s0)
|
|
.L0f09a1bc:
|
|
/* f09a1bc: 8e0b0038 */ lw $t3,0x38($s0)
|
|
/* f09a1c0: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a1c4: 3c053f5f */ lui $a1,0x3f5f
|
|
/* f09a1c8: 01cb082a */ slt $at,$t6,$t3
|
|
/* f09a1cc: 1420000d */ bnez $at,.L0f09a204
|
|
/* f09a1d0: 00000000 */ nop
|
|
/* f09a1d4: 8e0c0018 */ lw $t4,0x18($s0)
|
|
/* f09a1d8: 240f000c */ addiu $t7,$zero,0xc
|
|
/* f09a1dc: 29810002 */ slti $at,$t4,0x2
|
|
/* f09a1e0: 14200008 */ bnez $at,.L0f09a204
|
|
/* f09a1e4: 00000000 */ nop
|
|
/* f09a1e8: 8e190608 */ lw $t9,0x608($s0)
|
|
/* f09a1ec: ae0f0020 */ sw $t7,0x20($s0)
|
|
/* f09a1f0: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a1f4: 27230001 */ addiu $v1,$t9,0x1
|
|
/* f09a1f8: ae030608 */ sw $v1,0x608($s0)
|
|
/* f09a1fc: 10000004 */ b .L0f09a210
|
|
/* f09a200: ae000018 */ sw $zero,0x18($s0)
|
|
.L0f09a204:
|
|
/* f09a204: 0fc265e0 */ jal bgun0f099780
|
|
/* f09a208: 34a55dd8 */ ori $a1,$a1,0x5dd8
|
|
/* f09a20c: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f09a210:
|
|
/* f09a210: 24010003 */ addiu $at,$zero,0x3
|
|
.L0f09a214:
|
|
/* f09a214: 14610038 */ bne $v1,$at,.L0f09a2f8
|
|
/* f09a218: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f09a21c: 8d2a0000 */ lw $t2,0x0($t1)
|
|
/* f09a220: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f09a224: 3c18800a */ lui $t8,%hi(g_Vars+0x284)
|
|
/* f09a228: 55410003 */ bnel $t2,$at,.L0f09a238
|
|
/* f09a22c: 8e080018 */ lw $t0,0x18($s0)
|
|
/* f09a230: ae00068c */ sw $zero,0x68c($s0)
|
|
/* f09a234: 8e080018 */ lw $t0,0x18($s0)
|
|
.L0f09a238:
|
|
/* f09a238: 55000004 */ bnezl $t0,.L0f09a24c
|
|
/* f09a23c: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a240: 8f18a244 */ lw $t8,%lo(g_Vars+0x284)($t8)
|
|
/* f09a244: af001600 */ sw $zero,0x1600($t8)
|
|
/* f09a248: 8e0e001c */ lw $t6,0x1c($s0)
|
|
.L0f09a24c:
|
|
/* f09a24c: 8fab0038 */ lw $t3,0x38($sp)
|
|
/* f09a250: 29c10017 */ slti $at,$t6,0x17
|
|
/* f09a254: 50200010 */ beqzl $at,.L0f09a298
|
|
/* f09a258: ae000020 */ sw $zero,0x20($s0)
|
|
/* f09a25c: 0fc2c6b4 */ jal weaponGetModelNum2
|
|
/* f09a260: 8d640000 */ lw $a0,0x0($t3)
|
|
/* f09a264: 1040000b */ beqz $v0,.L0f09a294
|
|
/* f09a268: 8fac0038 */ lw $t4,0x38($sp)
|
|
/* f09a26c: 8d840000 */ lw $a0,0x0($t4)
|
|
/* f09a270: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f09a274: 24050040 */ addiu $a1,$zero,0x40
|
|
/* f09a278: 10400006 */ beqz $v0,.L0f09a294
|
|
/* f09a27c: 8faf0038 */ lw $t7,0x38($sp)
|
|
/* f09a280: 8de40000 */ lw $a0,0x0($t7)
|
|
/* f09a284: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f09a288: 24050080 */ addiu $a1,$zero,0x80
|
|
/* f09a28c: 5040000c */ beqzl $v0,.L0f09a2c0
|
|
/* f09a290: 8e19001c */ lw $t9,0x1c($s0)
|
|
.L0f09a294:
|
|
/* f09a294: ae000020 */ sw $zero,0x20($s0)
|
|
.L0f09a298:
|
|
/* f09a298: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a29c: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09a2a0: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f09a2a4: 0fc27346 */ jal bgunSetState
|
|
/* f09a2a8: 00002825 */ or $a1,$zero,$zero
|
|
/* f09a2ac: 50400013 */ beqzl $v0,.L0f09a2fc
|
|
/* f09a2b0: 00001025 */ or $v0,$zero,$zero
|
|
/* f09a2b4: 10000011 */ b .L0f09a2fc
|
|
/* f09a2b8: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f09a2bc: 8e19001c */ lw $t9,0x1c($s0)
|
|
.L0f09a2c0:
|
|
/* f09a2c0: 240d0017 */ addiu $t5,$zero,0x17
|
|
/* f09a2c4: 3c017f1b */ lui $at,%hi(var7f1ac31c)
|
|
/* f09a2c8: 01b94823 */ subu $t1,$t5,$t9
|
|
/* f09a2cc: 44893000 */ mtc1 $t1,$f6
|
|
/* f09a2d0: c42ac31c */ lwc1 $f10,%lo(var7f1ac31c)($at)
|
|
/* f09a2d4: 3c0141b8 */ lui $at,0x41b8
|
|
/* f09a2d8: 46803220 */ cvt.s.w $f8,$f6
|
|
/* f09a2dc: 44819000 */ mtc1 $at,$f18
|
|
/* f09a2e0: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a2e4: 460a4402 */ mul.s $f16,$f8,$f10
|
|
/* f09a2e8: 46128103 */ div.s $f4,$f16,$f18
|
|
/* f09a2ec: 44052000 */ mfc1 $a1,$f4
|
|
/* f09a2f0: 0fc265e0 */ jal bgun0f099780
|
|
/* f09a2f4: 00000000 */ nop
|
|
.L0f09a2f8:
|
|
/* f09a2f8: 00001025 */ or $v0,$zero,$zero
|
|
.L0f09a2fc:
|
|
/* f09a2fc: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f09a300: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f09a304: 27bd0038 */ addiu $sp,$sp,0x38
|
|
/* f09a308: 03e00008 */ jr $ra
|
|
/* f09a30c: 00000000 */ nop
|
|
);
|
|
#else
|
|
GLOBAL_ASM(
|
|
glabel bgunTickIncReload
|
|
.late_rodata
|
|
glabel var7f1ac1b8
|
|
.word 0x3f5f5dd8
|
|
glabel var7f1ac1bc
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac1c0
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac1c4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1c8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1cc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1d0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1d4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1d8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1dc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1e0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1e4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1e8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1ec
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1f0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1f4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1f8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac1fc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac200
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac204
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac208
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac20c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac210
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac214
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac218
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac21c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac220
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac224
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac228
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac22c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac230
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac234
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac238
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac23c
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac240
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac244
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac248
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac24c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac250
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac254
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac258
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac25c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac260
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac264
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac268
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac26c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac270
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac274
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac278
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac27c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac280
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac284
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac288
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac28c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac290
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac294
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac298
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac29c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2a0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2a4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2a8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2ac
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2b0
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac2b4
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac2b8
|
|
.word bgunTickIncReload+0x570 # f09a1b8
|
|
glabel var7f1ac2bc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2c0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2c4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2c8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2cc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2d0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2d4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2d8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2dc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2e0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2e4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2e8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2ec
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2f0
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2f4
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2f8
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac2fc
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac300
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac304
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac308
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac30c
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac310
|
|
.word bgunTickIncReload+0x534 # f09a17c
|
|
glabel var7f1ac314
|
|
.word bgunTickIncReload+0x570
|
|
glabel var7f1ac31c
|
|
.word 0x3f5f5dd8
|
|
.text
|
|
/* f099c48: 27bdffc8 */ addiu $sp,$sp,-56
|
|
/* f099c4c: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f099c50: afb00028 */ sw $s0,0x28($sp)
|
|
/* f099c54: afa40038 */ sw $a0,0x38($sp)
|
|
/* f099c58: 00c08025 */ or $s0,$a2,$zero
|
|
/* f099c5c: afa5003c */ sw $a1,0x3c($sp)
|
|
/* f099c60: afa70044 */ sw $a3,0x44($sp)
|
|
/* f099c64: 0fc2c41f */ jal gsetGetWeaponFunction
|
|
/* f099c68: 00c02025 */ or $a0,$a2,$zero
|
|
/* f099c6c: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
|
|
/* f099c70: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
|
|
/* f099c74: afa20030 */ sw $v0,0x30($sp)
|
|
/* f099c78: 2418ffff */ addiu $t8,$zero,-1
|
|
/* f099c7c: 8dcf00d8 */ lw $t7,0xd8($t6)
|
|
/* f099c80: 00002825 */ or $a1,$zero,$zero
|
|
/* f099c84: 51e0000a */ beqzl $t7,.L0f099cb0
|
|
/* f099c88: 8e190618 */ lw $t9,0x618($s0)
|
|
/* f099c8c: ae00068c */ sw $zero,0x68c($s0)
|
|
/* f099c90: ae180680 */ sw $t8,0x680($s0)
|
|
/* f099c94: 0fc27346 */ jal bgunSetState
|
|
/* f099c98: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f099c9c: 50400004 */ beqzl $v0,.L0f099cb0
|
|
/* f099ca0: 8e190618 */ lw $t9,0x618($s0)
|
|
/* f099ca4: 10000195 */ b .L0f09a2fc
|
|
/* f099ca8: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f099cac: 8e190618 */ lw $t9,0x618($s0)
|
|
.L0f099cb0:
|
|
/* f099cb0: 8fa9003c */ lw $t1,0x3c($sp)
|
|
/* f099cb4: 3c08800a */ lui $t0,%hi(g_Vars+0x284)
|
|
/* f099cb8: 17200018 */ bnez $t9,.L0f099d1c
|
|
/* f099cbc: 00095100 */ sll $t2,$t1,0x4
|
|
/* f099cc0: 01495023 */ subu $t2,$t2,$t1
|
|
/* f099cc4: 000a5080 */ sll $t2,$t2,0x2
|
|
/* f099cc8: 01495021 */ addu $t2,$t2,$t1
|
|
/* f099ccc: 000a50c0 */ sll $t2,$t2,0x3
|
|
/* f099cd0: 8d08a244 */ lw $t0,%lo(g_Vars+0x284)($t0)
|
|
/* f099cd4: 01495021 */ addu $t2,$t2,$t1
|
|
/* f099cd8: 000a5080 */ sll $t2,$t2,0x2
|
|
/* f099cdc: 000a5823 */ negu $t3,$t2
|
|
/* f099ce0: 240cffff */ addiu $t4,$zero,-1
|
|
/* f099ce4: ae0c0670 */ sw $t4,0x670($s0)
|
|
/* f099ce8: ae000674 */ sw $zero,0x674($s0)
|
|
/* f099cec: 010b1021 */ addu $v0,$t0,$t3
|
|
/* f099cf0: 8c4d13e0 */ lw $t5,0x13e0($v0)
|
|
/* f099cf4: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099cf8: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f099cfc: 55a10008 */ bnel $t5,$at,.L0f099d20
|
|
/* f099d00: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099d04: 8c4e0614 */ lw $t6,0x614($v0)
|
|
/* f099d08: 240f0009 */ addiu $t7,$zero,0x9
|
|
/* f099d0c: 29c10014 */ slti $at,$t6,0x14
|
|
/* f099d10: 50200003 */ beqzl $at,.L0f099d20
|
|
/* f099d14: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099d18: ae0f0608 */ sw $t7,0x608($s0)
|
|
.L0f099d1c:
|
|
/* f099d1c: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f099d20:
|
|
/* f099d20: 8fb9003c */ lw $t9,0x3c($sp)
|
|
/* f099d24: 24010009 */ addiu $at,$zero,0x9
|
|
/* f099d28: 1461001a */ bne $v1,$at,.L0f099d94
|
|
/* f099d2c: 00194900 */ sll $t1,$t9,0x4
|
|
/* f099d30: 01394823 */ subu $t1,$t1,$t9
|
|
/* f099d34: 00094880 */ sll $t1,$t1,0x2
|
|
/* f099d38: 01394821 */ addu $t1,$t1,$t9
|
|
/* f099d3c: 000948c0 */ sll $t1,$t1,0x3
|
|
/* f099d40: 3c18800a */ lui $t8,%hi(g_Vars+0x284)
|
|
/* f099d44: 8f18a244 */ lw $t8,%lo(g_Vars+0x284)($t8)
|
|
/* f099d48: 01394821 */ addu $t1,$t1,$t9
|
|
/* f099d4c: 00094880 */ sll $t1,$t1,0x2
|
|
/* f099d50: 00095023 */ negu $t2,$t1
|
|
/* f099d54: 030a1021 */ addu $v0,$t8,$t2
|
|
/* f099d58: 8c4813e0 */ lw $t0,0x13e0($v0)
|
|
/* f099d5c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099d60: 24420ddc */ addiu $v0,$v0,0xddc
|
|
/* f099d64: 15010007 */ bne $t0,$at,.L0f099d84
|
|
/* f099d68: 00001825 */ or $v1,$zero,$zero
|
|
/* f099d6c: 8c4b0614 */ lw $t3,0x614($v0)
|
|
/* f099d70: 29610014 */ slti $at,$t3,0x14
|
|
/* f099d74: 50200004 */ beqzl $at,.L0f099d88
|
|
/* f099d78: ae000614 */ sw $zero,0x614($s0)
|
|
/* f099d7c: 1000015f */ b .L0f09a2fc
|
|
/* f099d80: 00001025 */ or $v0,$zero,$zero
|
|
.L0f099d84:
|
|
/* f099d84: ae000614 */ sw $zero,0x614($s0)
|
|
.L0f099d88:
|
|
/* f099d88: ae000618 */ sw $zero,0x618($s0)
|
|
/* f099d8c: ae000608 */ sw $zero,0x608($s0)
|
|
/* f099d90: ae00061c */ sw $zero,0x61c($s0)
|
|
.L0f099d94:
|
|
/* f099d94: 54600095 */ bnezl $v1,.L0f099fec
|
|
/* f099d98: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099d9c: 8e0c0618 */ lw $t4,0x618($s0)
|
|
/* f099da0: 8fad0030 */ lw $t5,0x30($sp)
|
|
/* f099da4: 8faa0030 */ lw $t2,0x30($sp)
|
|
/* f099da8: 5580003f */ bnezl $t4,.L0f099ea8
|
|
/* f099dac: 8fb80038 */ lw $t8,0x38($sp)
|
|
/* f099db0: 11a00034 */ beqz $t5,.L0f099e84
|
|
/* f099db4: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f099db8: 81a20007 */ lb $v0,0x7($t5)
|
|
/* f099dbc: 24010001 */ addiu $at,$zero,0x1
|
|
/* f099dc0: 8fae0038 */ lw $t6,0x38($sp)
|
|
/* f099dc4: 50400004 */ beqzl $v0,.L0f099dd8
|
|
/* f099dc8: 8dcf0004 */ lw $t7,0x4($t6)
|
|
/* f099dcc: 1441002d */ bne $v0,$at,.L0f099e84
|
|
/* f099dd0: 00000000 */ nop
|
|
/* f099dd4: 8dcf0004 */ lw $t7,0x4($t6)
|
|
.L0f099dd8:
|
|
/* f099dd8: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f099ddc: 01f94821 */ addu $t1,$t7,$t9
|
|
/* f099de0: 8d38001c */ lw $t8,0x1c($t1)
|
|
/* f099de4: 24690001 */ addiu $t1,$v1,0x1
|
|
/* f099de8: 8f04000c */ lw $a0,0xc($t8)
|
|
/* f099dec: 10800023 */ beqz $a0,.L0f099e7c
|
|
/* f099df0: 00000000 */ nop
|
|
/* f099df4: 8dca0000 */ lw $t2,0x0($t6)
|
|
/* f099df8: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f099dfc: 8fa5003c */ lw $a1,0x3c($sp)
|
|
/* f099e00: 1141001e */ beq $t2,$at,.L0f099e7c
|
|
/* f099e04: 00000000 */ nop
|
|
/* f099e08: 0fc26238 */ jal bgunStartAnimation
|
|
/* f099e0c: 02003025 */ or $a2,$s0,$zero
|
|
/* f099e10: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f099e14: 8fa30038 */ lw $v1,0x38($sp)
|
|
/* f099e18: 356c0001 */ ori $t4,$t3,0x1
|
|
/* f099e1c: a20c06d6 */ sb $t4,0x6d6($s0)
|
|
/* f099e20: 8faf0030 */ lw $t7,0x30($sp)
|
|
/* f099e24: 8c6d0004 */ lw $t5,0x4($v1)
|
|
/* f099e28: 81f90007 */ lb $t9,0x7($t7)
|
|
/* f099e2c: 00194880 */ sll $t1,$t9,0x2
|
|
/* f099e30: 01a9c021 */ addu $t8,$t5,$t1
|
|
/* f099e34: 8f0e001c */ lw $t6,0x1c($t8)
|
|
/* f099e38: 91ca0010 */ lbu $t2,0x10($t6)
|
|
/* f099e3c: 31480004 */ andi $t0,$t2,0x4
|
|
/* f099e40: 51000005 */ beqzl $t0,.L0f099e58
|
|
/* f099e44: 8c620000 */ lw $v0,0x0($v1)
|
|
/* f099e48: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f099e4c: 358f0020 */ ori $t7,$t4,0x20
|
|
/* f099e50: a20f0690 */ sb $t7,0x690($s0)
|
|
/* f099e54: 8c620000 */ lw $v0,0x0($v1)
|
|
.L0f099e58:
|
|
/* f099e58: 2401001e */ addiu $at,$zero,0x1e
|
|
/* f099e5c: 10410003 */ beq $v0,$at,.L0f099e6c
|
|
/* f099e60: 2401001f */ addiu $at,$zero,0x1f
|
|
/* f099e64: 1441000d */ bne $v0,$at,.L0f099e9c
|
|
/* f099e68: 00000000 */ nop
|
|
.L0f099e6c:
|
|
/* f099e6c: 921906d6 */ lbu $t9,0x6d6($s0)
|
|
/* f099e70: 332dff0f */ andi $t5,$t9,0xff0f
|
|
/* f099e74: 10000009 */ b .L0f099e9c
|
|
/* f099e78: a20d06d6 */ sb $t5,0x6d6($s0)
|
|
.L0f099e7c:
|
|
/* f099e7c: 10000007 */ b .L0f099e9c
|
|
/* f099e80: ae090608 */ sw $t1,0x608($s0)
|
|
.L0f099e84:
|
|
/* f099e84: 0fc27346 */ jal bgunSetState
|
|
/* f099e88: 00002825 */ or $a1,$zero,$zero
|
|
/* f099e8c: 10400003 */ beqz $v0,.L0f099e9c
|
|
/* f099e90: 00000000 */ nop
|
|
/* f099e94: 10000119 */ b .L0f09a2fc
|
|
/* f099e98: 8fa20044 */ lw $v0,0x44($sp)
|
|
.L0f099e9c:
|
|
/* f099e9c: 10000052 */ b .L0f099fe8
|
|
/* f099ea0: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099ea4: 8fb80038 */ lw $t8,0x38($sp)
|
|
.L0f099ea8:
|
|
/* f099ea8: 81480007 */ lb $t0,0x7($t2)
|
|
/* f099eac: 02002025 */ or $a0,$s0,$zero
|
|
/* f099eb0: 8f0e0004 */ lw $t6,0x4($t8)
|
|
/* f099eb4: 00085880 */ sll $t3,$t0,0x2
|
|
/* f099eb8: 01cb6021 */ addu $t4,$t6,$t3
|
|
/* f099ebc: 8d8f001c */ lw $t7,0x1c($t4)
|
|
/* f099ec0: 91f90010 */ lbu $t9,0x10($t7)
|
|
/* f099ec4: 332d0004 */ andi $t5,$t9,0x4
|
|
/* f099ec8: 51a0002b */ beqzl $t5,.L0f099f78
|
|
/* f099ecc: 8e18060c */ lw $t8,0x60c($s0)
|
|
/* f099ed0: 0fc26291 */ jal bgun0f098a44
|
|
/* f099ed4: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f099ed8: 5040001f */ beqzl $v0,.L0f099f58
|
|
/* f099edc: ae00060c */ sw $zero,0x60c($s0)
|
|
/* f099ee0: 8e09060c */ lw $t1,0x60c($s0)
|
|
/* f099ee4: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f099ee8: 02003025 */ or $a2,$s0,$zero
|
|
/* f099eec: 31380010 */ andi $t8,$t1,0x10
|
|
/* f099ef0: 17000019 */ bnez $t8,.L0f099f58
|
|
/* f099ef4: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f099ef8: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099efc: 0fc2637e */ jal bgun0f098df8
|
|
/* f099f00: afa00010 */ sw $zero,0x10($sp)
|
|
/* f099f04: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f099f08: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099f0c: 02003025 */ or $a2,$s0,$zero
|
|
/* f099f10: 35480010 */ ori $t0,$t2,0x10
|
|
/* f099f14: ae08060c */ sw $t0,0x60c($s0)
|
|
/* f099f18: 0fc26328 */ jal bgun0f098ca0
|
|
/* f099f1c: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f099f20: 28410002 */ slti $at,$v0,0x2
|
|
/* f099f24: 54200005 */ bnezl $at,.L0f099f3c
|
|
/* f099f28: 2401ffff */ addiu $at,$zero,-1
|
|
/* f099f2c: 920e0690 */ lbu $t6,0x690($s0)
|
|
/* f099f30: 31cbffdf */ andi $t3,$t6,0xffdf
|
|
/* f099f34: a20b0690 */ sb $t3,0x690($s0)
|
|
/* f099f38: 2401ffff */ addiu $at,$zero,-1
|
|
.L0f099f3c:
|
|
/* f099f3c: 54410007 */ bnel $v0,$at,.L0f099f5c
|
|
/* f099f40: 8e19000c */ lw $t9,0xc($s0)
|
|
/* f099f44: 920c0690 */ lbu $t4,0x690($s0)
|
|
/* f099f48: 318fffdf */ andi $t7,$t4,0xffdf
|
|
/* f099f4c: 10000002 */ b .L0f099f58
|
|
/* f099f50: a20f0690 */ sb $t7,0x690($s0)
|
|
/* f099f54: ae00060c */ sw $zero,0x60c($s0)
|
|
.L0f099f58:
|
|
/* f099f58: 8e19000c */ lw $t9,0xc($s0)
|
|
.L0f099f5c:
|
|
/* f099f5c: 53200017 */ beqzl $t9,.L0f099fbc
|
|
/* f099f60: 8e0b068c */ lw $t3,0x68c($s0)
|
|
/* f099f64: 920d0690 */ lbu $t5,0x690($s0)
|
|
/* f099f68: 31a9ffdf */ andi $t1,$t5,0xffdf
|
|
/* f099f6c: 10000012 */ b .L0f099fb8
|
|
/* f099f70: a2090690 */ sb $t1,0x690($s0)
|
|
/* f099f74: 8e18060c */ lw $t8,0x60c($s0)
|
|
.L0f099f78:
|
|
/* f099f78: 02002025 */ or $a0,$s0,$zero
|
|
/* f099f7c: 330a0010 */ andi $t2,$t8,0x10
|
|
/* f099f80: 5540000e */ bnezl $t2,.L0f099fbc
|
|
/* f099f84: 8e0b068c */ lw $t3,0x68c($s0)
|
|
/* f099f88: 0fc26291 */ jal bgun0f098a44
|
|
/* f099f8c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f099f90: 10400009 */ beqz $v0,.L0f099fb8
|
|
/* f099f94: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f099f98: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f099f9c: afa00010 */ sw $zero,0x10($sp)
|
|
/* f099fa0: 02003025 */ or $a2,$s0,$zero
|
|
/* f099fa4: 0fc2637e */ jal bgun0f098df8
|
|
/* f099fa8: 00003825 */ or $a3,$zero,$zero
|
|
/* f099fac: 8e08060c */ lw $t0,0x60c($s0)
|
|
/* f099fb0: 350e0010 */ ori $t6,$t0,0x10
|
|
/* f099fb4: ae0e060c */ sw $t6,0x60c($s0)
|
|
.L0f099fb8:
|
|
/* f099fb8: 8e0b068c */ lw $t3,0x68c($s0)
|
|
.L0f099fbc:
|
|
/* f099fbc: 24010002 */ addiu $at,$zero,0x2
|
|
/* f099fc0: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f099fc4: 51610008 */ beql $t3,$at,.L0f099fe8
|
|
/* f099fc8: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099fcc: 0fc27346 */ jal bgunSetState
|
|
/* f099fd0: 00002825 */ or $a1,$zero,$zero
|
|
/* f099fd4: 50400004 */ beqzl $v0,.L0f099fe8
|
|
/* f099fd8: 8e030608 */ lw $v1,0x608($s0)
|
|
/* f099fdc: 100000c7 */ b .L0f09a2fc
|
|
/* f099fe0: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f099fe4: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f099fe8:
|
|
/* f099fe8: 24010001 */ addiu $at,$zero,0x1
|
|
.L0f099fec:
|
|
/* f099fec: 5461001f */ bnel $v1,$at,.L0f09a06c
|
|
/* f099ff0: 24010002 */ addiu $at,$zero,0x2
|
|
/* f099ff4: 8e02001c */ lw $v0,0x1c($s0)
|
|
/* f099ff8: 240f000b */ addiu $t7,$zero,0xb
|
|
/* f099ffc: 24790001 */ addiu $t9,$v1,0x1
|
|
/* f09a000: 28410010 */ slti $at,$v0,0x10
|
|
/* f09a004: 10200004 */ beqz $at,.L0f09a018
|
|
/* f09a008: 240d0011 */ addiu $t5,$zero,0x11
|
|
/* f09a00c: 820c0007 */ lb $t4,0x7($s0)
|
|
/* f09a010: 55800009 */ bnezl $t4,.L0f09a038
|
|
/* f09a014: 44822000 */ mtc1 $v0,$f4
|
|
.L0f09a018:
|
|
/* f09a018: ae0f0020 */ sw $t7,0x20($s0)
|
|
/* f09a01c: ae190608 */ sw $t9,0x608($s0)
|
|
/* f09a020: ae0d0038 */ sw $t5,0x38($s0)
|
|
/* f09a024: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a028: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09a02c: 1000000e */ b .L0f09a068
|
|
/* f09a030: 03201825 */ or $v1,$t9,$zero
|
|
/* f09a034: 44822000 */ mtc1 $v0,$f4
|
|
.L0f09a038:
|
|
/* f09a038: 3c017f1b */ lui $at,%hi(var7f1ac1b8)
|
|
/* f09a03c: c428c1b8 */ lwc1 $f8,%lo(var7f1ac1b8)($at)
|
|
/* f09a040: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f09a044: 3c014180 */ lui $at,0x4180
|
|
/* f09a048: 44818000 */ mtc1 $at,$f16
|
|
/* f09a04c: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a050: 46083282 */ mul.s $f10,$f6,$f8
|
|
/* f09a054: 46105483 */ div.s $f18,$f10,$f16
|
|
/* f09a058: 44059000 */ mfc1 $a1,$f18
|
|
/* f09a05c: 0fc265e0 */ jal bgun0f099780
|
|
/* f09a060: 00000000 */ nop
|
|
/* f09a064: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f09a068:
|
|
/* f09a068: 24010002 */ addiu $at,$zero,0x2
|
|
.L0f09a06c:
|
|
/* f09a06c: 54610069 */ bnel $v1,$at,.L0f09a214
|
|
/* f09a070: 24010003 */ addiu $at,$zero,0x3
|
|
/* f09a074: 8e090018 */ lw $t1,0x18($s0)
|
|
/* f09a078: 8fb80038 */ lw $t8,0x38($sp)
|
|
/* f09a07c: 5520004f */ bnezl $t1,.L0f09a1bc
|
|
/* f09a080: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a084: 8f0a0000 */ lw $t2,0x0($t8)
|
|
/* f09a088: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f09a08c: 8fa80030 */ lw $t0,0x30($sp)
|
|
/* f09a090: 55410012 */ bnel $t2,$at,.L0f09a0dc
|
|
/* f09a094: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f09a098: 81020007 */ lb $v0,0x7($t0)
|
|
/* f09a09c: 0442000f */ bltzl $v0,.L0f09a0dc
|
|
/* f09a0a0: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f09a0a4: 8f0e0004 */ lw $t6,0x4($t8)
|
|
/* f09a0a8: 00025880 */ sll $t3,$v0,0x2
|
|
/* f09a0ac: 8fa5003c */ lw $a1,0x3c($sp)
|
|
/* f09a0b0: 01cb6021 */ addu $t4,$t6,$t3
|
|
/* f09a0b4: 8d8f001c */ lw $t7,0x1c($t4)
|
|
/* f09a0b8: 8de4000c */ lw $a0,0xc($t7)
|
|
/* f09a0bc: 50800007 */ beqzl $a0,.L0f09a0dc
|
|
/* f09a0c0: 8e0a060c */ lw $t2,0x60c($s0)
|
|
/* f09a0c4: 0fc26238 */ jal bgunStartAnimation
|
|
/* f09a0c8: 02003025 */ or $a2,$s0,$zero
|
|
/* f09a0cc: 920d0690 */ lbu $t5,0x690($s0)
|
|
/* f09a0d0: 35a90040 */ ori $t1,$t5,0x40
|
|
/* f09a0d4: a2090690 */ sb $t1,0x690($s0)
|
|
/* f09a0d8: 8e0a060c */ lw $t2,0x60c($s0)
|
|
.L0f09a0dc:
|
|
/* f09a0dc: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f09a0e0: 02003025 */ or $a2,$s0,$zero
|
|
/* f09a0e4: 31480010 */ andi $t0,$t2,0x10
|
|
/* f09a0e8: 15000004 */ bnez $t0,.L0f09a0fc
|
|
/* f09a0ec: 00003825 */ or $a3,$zero,$zero
|
|
/* f09a0f0: 92040003 */ lbu $a0,0x3($s0)
|
|
/* f09a0f4: 0fc2637e */ jal bgun0f098df8
|
|
/* f09a0f8: afa00010 */ sw $zero,0x10($sp)
|
|
.L0f09a0fc:
|
|
/* f09a0fc: 3c18800a */ lui $t8,%hi(g_Vars+0x34)
|
|
/* f09a100: 8f189ff4 */ lw $t8,%lo(g_Vars+0x34)($t8)
|
|
/* f09a104: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
|
|
/* f09a108: 5b00002c */ blezl $t8,.L0f09a1bc
|
|
/* f09a10c: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a110: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
|
|
/* f09a114: 24010001 */ addiu $at,$zero,0x1
|
|
/* f09a118: 8dcb0000 */ lw $t3,0x0($t6)
|
|
/* f09a11c: 51610027 */ beql $t3,$at,.L0f09a1bc
|
|
/* f09a120: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a124: 0fc2775f */ jal bgun0f09dd7c
|
|
/* f09a128: 00000000 */ nop
|
|
/* f09a12c: 10400022 */ beqz $v0,.L0f09a1b8
|
|
/* f09a130: 3c0c8007 */ lui $t4,%hi(g_PlayerInvincible)
|
|
/* f09a134: 8d8c0760 */ lw $t4,%lo(g_PlayerInvincible)($t4)
|
|
/* f09a138: 3c0f800a */ lui $t7,%hi(g_Vars+0x284)
|
|
/* f09a13c: 5580001f */ bnezl $t4,.L0f09a1bc
|
|
/* f09a140: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a144: 8defa244 */ lw $t7,%lo(g_Vars+0x284)($t7)
|
|
/* f09a148: 8fad0038 */ lw $t5,0x38($sp)
|
|
/* f09a14c: 8df900d8 */ lw $t9,0xd8($t7)
|
|
/* f09a150: 5720001a */ bnezl $t9,.L0f09a1bc
|
|
/* f09a154: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a158: 8da90000 */ lw $t1,0x0($t5)
|
|
/* f09a15c: 2d210058 */ sltiu $at,$t1,0x57
|
|
/* f09a160: 10200006 */ beqz $at,.L0f09a17c
|
|
/* f09a164: 00094880 */ sll $t1,$t1,0x2
|
|
/* f09a168: 3c017f1b */ lui $at,%hi(var7f1ac1bc)
|
|
/* f09a16c: 00290821 */ addu $at,$at,$t1
|
|
/* f09a170: 8c29c1bc */ lw $t1,%lo(var7f1ac1bc)($at)
|
|
/* f09a174: 01200008 */ jr $t1
|
|
/* f09a178: 00000000 */ nop
|
|
.L0f09a17c:
|
|
/* f09a17c: 3c01bf80 */ lui $at,0xbf80
|
|
/* f09a180: 44812000 */ mtc1 $at,$f4
|
|
/* f09a184: 3c048009 */ lui $a0,%hi(var80095200)
|
|
/* f09a188: 240affff */ addiu $t2,$zero,-1
|
|
/* f09a18c: 2408ffff */ addiu $t0,$zero,-1
|
|
/* f09a190: 2418ffff */ addiu $t8,$zero,-1
|
|
/* f09a194: afb8001c */ sw $t8,0x1c($sp)
|
|
/* f09a198: afa80018 */ sw $t0,0x18($sp)
|
|
/* f09a19c: afaa0010 */ sw $t2,0x10($sp)
|
|
/* f09a1a0: 8c845200 */ lw $a0,%lo(var80095200)($a0)
|
|
/* f09a1a4: 2405804f */ addiu $a1,$zero,-32689
|
|
/* f09a1a8: 00003025 */ or $a2,$zero,$zero
|
|
/* f09a1ac: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f09a1b0: 0c004241 */ jal sndStart
|
|
/* f09a1b4: e7a40014 */ swc1 $f4,0x14($sp)
|
|
.L0f09a1b8:
|
|
/* f09a1b8: 8e0e001c */ lw $t6,0x1c($s0)
|
|
.L0f09a1bc:
|
|
/* f09a1bc: 8e0b0038 */ lw $t3,0x38($s0)
|
|
/* f09a1c0: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a1c4: 3c053f5f */ lui $a1,0x3f5f
|
|
/* f09a1c8: 01cb082a */ slt $at,$t6,$t3
|
|
/* f09a1cc: 1420000d */ bnez $at,.L0f09a204
|
|
/* f09a1d0: 00000000 */ nop
|
|
/* f09a1d4: 8e0c0018 */ lw $t4,0x18($s0)
|
|
/* f09a1d8: 240f000c */ addiu $t7,$zero,0xc
|
|
/* f09a1dc: 29810002 */ slti $at,$t4,0x2
|
|
/* f09a1e0: 14200008 */ bnez $at,.L0f09a204
|
|
/* f09a1e4: 00000000 */ nop
|
|
/* f09a1e8: 8e190608 */ lw $t9,0x608($s0)
|
|
/* f09a1ec: ae0f0020 */ sw $t7,0x20($s0)
|
|
/* f09a1f0: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a1f4: 27230001 */ addiu $v1,$t9,0x1
|
|
/* f09a1f8: ae030608 */ sw $v1,0x608($s0)
|
|
/* f09a1fc: 10000004 */ b .L0f09a210
|
|
/* f09a200: ae000018 */ sw $zero,0x18($s0)
|
|
.L0f09a204:
|
|
/* f09a204: 0fc265e0 */ jal bgun0f099780
|
|
/* f09a208: 34a55dd8 */ ori $a1,$a1,0x5dd8
|
|
/* f09a20c: 8e030608 */ lw $v1,0x608($s0)
|
|
.L0f09a210:
|
|
/* f09a210: 24010003 */ addiu $at,$zero,0x3
|
|
.L0f09a214:
|
|
/* f09a214: 14610038 */ bne $v1,$at,.L0f09a2f8
|
|
/* f09a218: 8fa90038 */ lw $t1,0x38($sp)
|
|
/* f09a21c: 8d2a0000 */ lw $t2,0x0($t1)
|
|
/* f09a220: 2401001a */ addiu $at,$zero,0x1a
|
|
/* f09a224: 3c18800a */ lui $t8,%hi(g_Vars+0x284)
|
|
/* f09a228: 55410003 */ bnel $t2,$at,.L0f09a238
|
|
/* f09a22c: 8e080018 */ lw $t0,0x18($s0)
|
|
/* f09a230: ae00068c */ sw $zero,0x68c($s0)
|
|
/* f09a234: 8e080018 */ lw $t0,0x18($s0)
|
|
.L0f09a238:
|
|
/* f09a238: 55000004 */ bnezl $t0,.L0f09a24c
|
|
/* f09a23c: 8e0e001c */ lw $t6,0x1c($s0)
|
|
/* f09a240: 8f18a244 */ lw $t8,%lo(g_Vars+0x284)($t8)
|
|
/* f09a244: af001600 */ sw $zero,0x1600($t8)
|
|
/* f09a248: 8e0e001c */ lw $t6,0x1c($s0)
|
|
.L0f09a24c:
|
|
/* f09a24c: 8fab0038 */ lw $t3,0x38($sp)
|
|
/* f09a250: 29c10017 */ slti $at,$t6,0x17
|
|
/* f09a254: 50200010 */ beqzl $at,.L0f09a298
|
|
/* f09a258: ae000020 */ sw $zero,0x20($s0)
|
|
/* f09a25c: 0fc2c6b4 */ jal weaponGetModelNum2
|
|
/* f09a260: 8d640000 */ lw $a0,0x0($t3)
|
|
/* f09a264: 1040000b */ beqz $v0,.L0f09a294
|
|
/* f09a268: 8fac0038 */ lw $t4,0x38($sp)
|
|
/* f09a26c: 8d840000 */ lw $a0,0x0($t4)
|
|
/* f09a270: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f09a274: 24050040 */ addiu $a1,$zero,0x40
|
|
/* f09a278: 10400006 */ beqz $v0,.L0f09a294
|
|
/* f09a27c: 8faf0038 */ lw $t7,0x38($sp)
|
|
/* f09a280: 8de40000 */ lw $a0,0x0($t7)
|
|
/* f09a284: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f09a288: 24050080 */ addiu $a1,$zero,0x80
|
|
/* f09a28c: 5040000c */ beqzl $v0,.L0f09a2c0
|
|
/* f09a290: 8e19001c */ lw $t9,0x1c($s0)
|
|
.L0f09a294:
|
|
/* f09a294: ae000020 */ sw $zero,0x20($s0)
|
|
.L0f09a298:
|
|
/* f09a298: ae00001c */ sw $zero,0x1c($s0)
|
|
/* f09a29c: ae000018 */ sw $zero,0x18($s0)
|
|
/* f09a2a0: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f09a2a4: 0fc27346 */ jal bgunSetState
|
|
/* f09a2a8: 00002825 */ or $a1,$zero,$zero
|
|
/* f09a2ac: 50400013 */ beqzl $v0,.L0f09a2fc
|
|
/* f09a2b0: 00001025 */ or $v0,$zero,$zero
|
|
/* f09a2b4: 10000011 */ b .L0f09a2fc
|
|
/* f09a2b8: 8fa20044 */ lw $v0,0x44($sp)
|
|
/* f09a2bc: 8e19001c */ lw $t9,0x1c($s0)
|
|
.L0f09a2c0:
|
|
/* f09a2c0: 240d0017 */ addiu $t5,$zero,0x17
|
|
/* f09a2c4: 3c017f1b */ lui $at,%hi(var7f1ac31c)
|
|
/* f09a2c8: 01b94823 */ subu $t1,$t5,$t9
|
|
/* f09a2cc: 44893000 */ mtc1 $t1,$f6
|
|
/* f09a2d0: c42ac31c */ lwc1 $f10,%lo(var7f1ac31c)($at)
|
|
/* f09a2d4: 3c0141b8 */ lui $at,0x41b8
|
|
/* f09a2d8: 46803220 */ cvt.s.w $f8,$f6
|
|
/* f09a2dc: 44819000 */ mtc1 $at,$f18
|
|
/* f09a2e0: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a2e4: 460a4402 */ mul.s $f16,$f8,$f10
|
|
/* f09a2e8: 46128103 */ div.s $f4,$f16,$f18
|
|
/* f09a2ec: 44052000 */ mfc1 $a1,$f4
|
|
/* f09a2f0: 0fc265e0 */ jal bgun0f099780
|
|
/* f09a2f4: 00000000 */ nop
|
|
.L0f09a2f8:
|
|
/* f09a2f8: 00001025 */ or $v0,$zero,$zero
|
|
.L0f09a2fc:
|
|
/* f09a2fc: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f09a300: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f09a304: 27bd0038 */ addiu $sp,$sp,0x38
|
|
/* f09a308: 03e00008 */ jr $ra
|
|
/* f09a30c: 00000000 */ nop
|
|
);
|
|
#endif
|
|
|
|
// Mismatch: Branch logic near e9c is different (but functionally the same)
|
|
//s32 bgunTickIncReload(struct handweaponinfo *info, s32 handnum, struct hand *hand, s32 lvupdate)
|
|
//{
|
|
// struct weaponfunc *func = gsetGetWeaponFunction(&hand->gset);
|
|
//
|
|
// if (g_Vars.currentplayer->isdead) {
|
|
// hand->animmode = HANDANIMMODE_IDLE;
|
|
// hand->animload = -1;
|
|
//
|
|
// if (bgunSetState(handnum, HANDSTATE_IDLE)) {
|
|
// return lvupdate;
|
|
// }
|
|
// }
|
|
//
|
|
// if (hand->statecycles == 0) {
|
|
// struct hand *hand2 = &g_Vars.currentplayer->hands[1 - handnum];
|
|
//
|
|
// hand->gs_int1 = -1;
|
|
// hand->gs_int2 = 0;
|
|
//
|
|
// if (hand2->state == HANDSTATE_RELOAD && hand2->stateframes < TICKS(20)) {
|
|
// hand->stateminor = 9;
|
|
// }
|
|
// }
|
|
//
|
|
// if (hand->stateminor == 9) {
|
|
// struct hand *hand2 = &g_Vars.currentplayer->hands[1 - handnum];
|
|
//
|
|
// if (hand2->state == HANDSTATE_RELOAD && hand2->stateframes < TICKS(20)) {
|
|
// return 0;
|
|
// }
|
|
//
|
|
// hand->stateframes = 0;
|
|
// hand->statecycles = 0;
|
|
// hand->stateminor = 0;
|
|
// hand->statelastframe = 0;
|
|
// }
|
|
//
|
|
// // d94
|
|
// if (hand->stateminor == 0) {
|
|
// if (hand->statecycles == 0) {
|
|
// if (func && (func->ammoindex == 0 || func->ammoindex == 1)) {
|
|
// if (info->definition->ammos[func->ammoindex]->reload_animation
|
|
// && info->weaponnum != WEAPON_COMBATKNIFE) {
|
|
// bgunStartAnimation(info->definition->ammos[func->ammoindex]->reload_animation, handnum, hand);
|
|
//
|
|
// hand->unk0d0e_07 = true;
|
|
//
|
|
// if (info->definition->ammos[func->ammoindex]->flags & AMMOFLAG_INCREMENTALRELOAD) {
|
|
// hand->unk0cc8_03 = true;
|
|
// }
|
|
//
|
|
// if (info->weaponnum == WEAPON_GRENADE || info->weaponnum == WEAPON_NBOMB) {
|
|
// hand->unk0d0e_00 = 0;
|
|
// }
|
|
// } else {
|
|
// hand->stateminor++;
|
|
// }
|
|
// } else {
|
|
// if (bgunSetState(handnum, HANDSTATE_IDLE)) {
|
|
// return lvupdate;
|
|
// }
|
|
// }
|
|
//
|
|
// // e9c
|
|
// if (hand);
|
|
// } else {
|
|
// if (info->definition->ammos[func->ammoindex]->flags & AMMOFLAG_INCREMENTALRELOAD) {
|
|
// if (bgun0f098a44(hand, 1)) {
|
|
// if ((hand->stateflags & HANDSTATEFLAG_00000010) == 0) {
|
|
// s32 value;
|
|
//
|
|
// bgun0f098df8(hand->gset.weaponfunc, info, hand, 1, 0);
|
|
// hand->stateflags |= HANDSTATEFLAG_00000010;
|
|
// value = bgun0f098ca0(hand->gset.weaponfunc, info, hand);
|
|
//
|
|
// if (value >= 2) {
|
|
// hand->unk0cc8_03 = false;
|
|
// }
|
|
//
|
|
// if (value == -1) {
|
|
// hand->unk0cc8_03 = false;
|
|
// }
|
|
// }
|
|
// } else {
|
|
// hand->stateflags = 0;
|
|
// }
|
|
//
|
|
// if (hand->triggeron) {
|
|
// hand->unk0cc8_03 = false;
|
|
// }
|
|
// } else {
|
|
// if ((hand->stateflags & HANDSTATEFLAG_00000010) == 0) {
|
|
// if (bgun0f098a44(hand, 1)) {
|
|
// bgun0f098df8(hand->gset.weaponfunc, info, hand, 0, 0);
|
|
// hand->stateflags |= HANDSTATEFLAG_00000010;
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// if (hand->animmode != HANDANIMMODE_BUSY) {
|
|
// if (bgunSetState(handnum, HANDSTATE_IDLE)) {
|
|
// return lvupdate;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// if (1);
|
|
//
|
|
// if (hand->stateminor == 1) {
|
|
// if (hand->count60 > TICKS(15) || !hand->visible) {
|
|
// hand->mode = HANDMODE_11;
|
|
// hand->stateminor++;
|
|
// hand->pausetime60 = TICKS(17);
|
|
// hand->count60 = 0;
|
|
// hand->count = 0;
|
|
// } else {
|
|
// bgun0f099780(hand, (hand->count60 * 0.87252569198608f) / TICKS(16));
|
|
// }
|
|
// }
|
|
//
|
|
// if (hand->stateminor == 2) {
|
|
// if (hand->count == 0) {
|
|
// if (info->weaponnum == WEAPON_COMBATKNIFE
|
|
// && func->ammoindex >= 0
|
|
// && info->definition->ammos[func->ammoindex]->reload_animation) {
|
|
// bgunStartAnimation(info->definition->ammos[func->ammoindex]->reload_animation, handnum, hand);
|
|
// hand->unk0cc8_02 = true;
|
|
// }
|
|
//
|
|
// if ((hand->stateflags & HANDSTATEFLAG_00000010) == 0) {
|
|
// bgun0f098df8(hand->gset.weaponfunc, info, hand, 0, 0);
|
|
// }
|
|
//
|
|
// if (g_Vars.lvupdate240 > 0
|
|
// && g_Vars.currentplayer->cameramode != CAMERAMODE_THIRDPERSON
|
|
// && bgun0f09dd7c()
|
|
// && !g_PlayerInvincible
|
|
// && !g_Vars.currentplayer->isdead) {
|
|
// switch (info->weaponnum) {
|
|
// default:
|
|
// sndStart(var80095200, SFX_RELOAD_DEFAULT, 0, -1, -1, -1, -1, -1);
|
|
// break;
|
|
// case WEAPON_NONE:
|
|
// case WEAPON_UNARMED:
|
|
// case WEAPON_COMBATKNIFE:
|
|
// case WEAPON_LASER:
|
|
// case WEAPON_GRENADE:
|
|
// case WEAPON_NBOMB:
|
|
// case WEAPON_PROXIMITYMINE:
|
|
// case WEAPON_REMOTEMINE:
|
|
// case WEAPON_ECMMINE:
|
|
// case WEAPON_COMMSRIDER:
|
|
// case WEAPON_TRACERBUG:
|
|
// case WEAPON_TARGETAMPLIFIER:
|
|
// case WEAPON_BRIEFCASE2:
|
|
// break;
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// if (hand->count60 >= hand->pausetime60 && hand->count >= 2) {
|
|
// hand->mode = HANDMODE_12;
|
|
// hand->stateminor++;
|
|
// hand->count60 = 0;
|
|
// hand->count = 0;
|
|
// } else {
|
|
// bgun0f099780(hand, 0.87252569198608f);
|
|
// }
|
|
// }
|
|
//
|
|
// if (hand->stateminor == 3) {
|
|
// if (info->weaponnum == WEAPON_COMBATKNIFE) {
|
|
// hand->animmode = HANDANIMMODE_IDLE;
|
|
// }
|
|
//
|
|
// if (hand->count == 0) {
|
|
// g_Vars.currentplayer->doautoselect = false;
|
|
// }
|
|
//
|
|
// if (hand->count60 >= TICKS(23)
|
|
// || !weaponGetModelNum2(info->weaponnum)
|
|
// || !weaponHasFlag(info->weaponnum, WEAPONFLAG_00000040)
|
|
// || weaponHasFlag(info->weaponnum, WEAPONFLAG_00000080)) {
|
|
// hand->mode = HANDMODE_NONE;
|
|
// hand->count60 = 0;
|
|
// hand->count = 0;
|
|
//
|
|
// if (bgunSetState(handnum, HANDSTATE_IDLE)) {
|
|
// return lvupdate;
|
|
// }
|
|
// } else {
|
|
// bgun0f099780(hand, (TICKS(23) - hand->count60) * 0.87252569198608f / TICKS(23));
|
|
// }
|
|
// }
|
|
//
|
|
// return 0;
|
|
//}
|
|
|
|
s32 bgunTickIncChangeFunc(struct handweaponinfo *info, s32 handnum, struct hand *hand, s32 lvupdate)
|
|
{
|
|
struct guncmd *cmd;
|
|
bool more = false;
|
|
|
|
if (hand->statecycles == 0) {
|
|
if (hand->gset.weaponfunc == FUNC_PRIMARY) {
|
|
cmd = gsetGetPriToSecAnim(&hand->gset);
|
|
hand->gset.weaponfunc = FUNC_SECONDARY;
|
|
} else {
|
|
cmd = gsetGetSecToPriAnim(&hand->gset);
|
|
hand->gset.weaponfunc = FUNC_PRIMARY;
|
|
}
|
|
|
|
more = false;
|
|
|
|
if (cmd != NULL) {
|
|
bgunStartAnimation(cmd, handnum, hand);
|
|
more = true;
|
|
g_Vars.currentplayer->hands[HAND_RIGHT].unk0dd4 = -1;
|
|
}
|
|
} else {
|
|
if (hand->animmode == HANDANIMMODE_BUSY) {
|
|
more = true;
|
|
}
|
|
}
|
|
|
|
if (!more && bgunSetState(handnum, HANDSTATE_IDLE)) {
|
|
return lvupdate;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
s32 bgun0f09a3f8(struct hand *hand, struct weaponfunc *func)
|
|
{
|
|
bool burst = false;
|
|
bool smallburst = false;
|
|
struct gunctrl *ctrl = &g_Vars.currentplayer->gunctrl;
|
|
|
|
if ((func->flags & FUNCFLAG_BURST3) && hand->burstbullets < 3) {
|
|
// Make automatics do single shot when holding aim
|
|
if (!g_Vars.currentplayer->insightaimmode || (func->type & 0xff00) != 0x100) {
|
|
// Not aiming and not an automatic weapon
|
|
smallburst = true;
|
|
}
|
|
}
|
|
|
|
if ((func->flags & FUNCFLAG_BURST2) && hand->burstbullets < 2) {
|
|
smallburst = true;
|
|
}
|
|
|
|
if ((func->flags & FUNCFLAG_BURST5) && hand->burstbullets < 5) {
|
|
smallburst = true;
|
|
}
|
|
|
|
if ((func->flags & FUNCFLAG_BURST50) && hand->burstbullets < 50) {
|
|
burst = true;
|
|
}
|
|
|
|
if (smallburst) {
|
|
burst = true;
|
|
}
|
|
|
|
if (hand->triggeron || (hand->stateflags & HANDSTATEFLAG_00000010) == 0 || burst) {
|
|
if (func->ammoindex >= 0
|
|
&& hand->loadedammo[func->ammoindex] == 0
|
|
&& ctrl->ammotypes[func->ammoindex] >= 0) {
|
|
// Clip is empty
|
|
return -1;
|
|
}
|
|
|
|
if ((func->type & 0xff00) == 0x100) {
|
|
struct weaponfunc_shootauto *autofunc = (struct weaponfunc_shootauto *) func;
|
|
|
|
if (autofunc->unk50 > 0) {
|
|
if (hand->gs_float1 < 1) {
|
|
hand->gs_float1 += LVUPDATE240FREAL() / autofunc->unk50;
|
|
|
|
if (hand->gs_float1 > 1) {
|
|
hand->gs_float1 = 1;
|
|
return 1;
|
|
}
|
|
}
|
|
} else {
|
|
hand->gs_float1 = 1;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
hand->gs_float1 = 1;
|
|
|
|
if (smallburst) {
|
|
if (hand->burstbullets > 0) {
|
|
s32 delay = 3;
|
|
|
|
if (hand->gset.weaponnum == WEAPON_SHOTGUN) {
|
|
delay = TICKS(13);
|
|
}
|
|
|
|
if (hand->stateframes < delay) {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
hand->stateframes = 0;
|
|
}
|
|
|
|
if ((func->flags & FUNCFLAG_BURST3) && hand->burstbullets == 2) {
|
|
smallburst = false;
|
|
}
|
|
|
|
if ((func->flags & FUNCFLAG_BURST2) && hand->burstbullets == 1) {
|
|
smallburst = false;
|
|
}
|
|
|
|
if ((func->flags & FUNCFLAG_BURST5) && hand->burstbullets == 4) {
|
|
smallburst = false;
|
|
}
|
|
|
|
if (smallburst) {
|
|
return 1;
|
|
}
|
|
|
|
return 2;
|
|
}
|
|
|
|
if ((func->type & 0xff00) == 0x100) {
|
|
// This is similar to the earlier code, but uses unk51
|
|
// and subtracts the timer instead of adding to it.
|
|
struct weaponfunc_shootauto *autofunc = (struct weaponfunc_shootauto *) func;
|
|
|
|
if (autofunc->unk51 > 0) {
|
|
if (hand->gs_float1 > 0) {
|
|
hand->gs_float1 -= LVUPDATE240FREAL() / autofunc->unk51;
|
|
|
|
if (hand->gs_float1 < 0) {
|
|
hand->gs_float1 = 0;
|
|
return -1;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
} else {
|
|
hand->gs_float1 = 0;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
GLOBAL_ASM(
|
|
glabel bgun0f09a6f8
|
|
.late_rodata
|
|
glabel var7f1ac320
|
|
.word 0x3ecccccd
|
|
.text
|
|
/* f09a6f8: 27bdffa8 */ addiu $sp,$sp,-88
|
|
/* f09a6fc: afa40058 */ sw $a0,0x58($sp)
|
|
/* f09a700: afa5005c */ sw $a1,0x5c($sp)
|
|
/* f09a704: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f09a708: afb00028 */ sw $s0,0x28($sp)
|
|
/* f09a70c: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f09a710: 3c058007 */ lui $a1,%hi(var80070120)
|
|
/* f09a714: 3c047f1b */ lui $a0,%hi(var7f1ab890)
|
|
/* f09a718: 00c08025 */ or $s0,$a2,$zero
|
|
/* f09a71c: afae0054 */ sw $t6,0x54($sp)
|
|
/* f09a720: 2484b890 */ addiu $a0,$a0,%lo(var7f1ab890)
|
|
/* f09a724: 24a50120 */ addiu $a1,$a1,%lo(var80070120)
|
|
/* f09a728: 0c0036cc */ jal mainOverrideVariable
|
|
/* f09a72c: afa70064 */ sw $a3,0x64($sp)
|
|
/* f09a730: 3c047f1b */ lui $a0,%hi(var7f1ab898)
|
|
/* f09a734: 3c058007 */ lui $a1,%hi(var80070124)
|
|
/* f09a738: 24a50124 */ addiu $a1,$a1,%lo(var80070124)
|
|
/* f09a73c: 0c0036cc */ jal mainOverrideVariable
|
|
/* f09a740: 2484b898 */ addiu $a0,$a0,%lo(var7f1ab898)
|
|
/* f09a744: 8fa70064 */ lw $a3,0x64($sp)
|
|
/* f09a748: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f09a74c: a2060004 */ sb $a2,0x4($s0)
|
|
/* f09a750: 8cef0000 */ lw $t7,0x0($a3)
|
|
/* f09a754: 24010100 */ addiu $at,$zero,0x100
|
|
/* f09a758: 31f8ff00 */ andi $t8,$t7,0xff00
|
|
/* f09a75c: 57010023 */ bnel $t8,$at,.L0f09a7ec
|
|
/* f09a760: 920c0000 */ lbu $t4,0x0($s0)
|
|
/* f09a764: c4e00040 */ lwc1 $f0,0x40($a3)
|
|
/* f09a768: c4e40044 */ lwc1 $f4,0x44($a3)
|
|
/* f09a76c: c6080660 */ lwc1 $f8,0x660($s0)
|
|
/* f09a770: 3c014270 */ lui $at,0x4270
|
|
/* f09a774: 46002181 */ sub.s $f6,$f4,$f0
|
|
/* f09a778: 44817000 */ mtc1 $at,$f14
|
|
/* f09a77c: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
|
|
/* f09a780: c432a004 */ lwc1 $f18,%lo(g_Vars+0x4c)($at)
|
|
/* f09a784: 46083282 */ mul.s $f10,$f6,$f8
|
|
/* f09a788: c60805fc */ lwc1 $f8,0x5fc($s0)
|
|
/* f09a78c: 460e9103 */ div.s $f4,$f18,$f14
|
|
/* f09a790: 460a0300 */ add.s $f12,$f0,$f10
|
|
/* f09a794: 460e6403 */ div.s $f16,$f12,$f14
|
|
/* f09a798: 46048182 */ mul.s $f6,$f16,$f4
|
|
/* f09a79c: 46083080 */ add.s $f2,$f6,$f8
|
|
/* f09a7a0: 4600128d */ trunc.w.s $f10,$f2
|
|
/* f09a7a4: 44025000 */ mfc1 $v0,$f10
|
|
/* f09a7a8: 00000000 */ nop
|
|
/* f09a7ac: 44829000 */ mtc1 $v0,$f18
|
|
/* f09a7b0: ae0205f8 */ sw $v0,0x5f8($s0)
|
|
/* f09a7b4: 46809420 */ cvt.s.w $f16,$f18
|
|
/* f09a7b8: 46101101 */ sub.s $f4,$f2,$f16
|
|
/* f09a7bc: 1c400010 */ bgtz $v0,.L0f09a800
|
|
/* f09a7c0: e60405fc */ swc1 $f4,0x5fc($s0)
|
|
/* f09a7c4: 8e08060c */ lw $t0,0x60c($s0)
|
|
/* f09a7c8: 244b0001 */ addiu $t3,$v0,0x1
|
|
/* f09a7cc: 31090010 */ andi $t1,$t0,0x10
|
|
/* f09a7d0: 15200003 */ bnez $t1,.L0f09a7e0
|
|
/* f09a7d4: 00000000 */ nop
|
|
/* f09a7d8: 10000009 */ b .L0f09a800
|
|
/* f09a7dc: ae0b05f8 */ sw $t3,0x5f8($s0)
|
|
.L0f09a7e0:
|
|
/* f09a7e0: 10000007 */ b .L0f09a800
|
|
/* f09a7e4: a2000004 */ sb $zero,0x4($s0)
|
|
/* f09a7e8: 920c0000 */ lbu $t4,0x0($s0)
|
|
.L0f09a7ec:
|
|
/* f09a7ec: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f09a7f0: ae0605f8 */ sw $a2,0x5f8($s0)
|
|
/* f09a7f4: 55810003 */ bnel $t4,$at,.L0f09a804
|
|
/* f09a7f8: 8e0d0558 */ lw $t5,0x558($s0)
|
|
/* f09a7fc: afa00054 */ sw $zero,0x54($sp)
|
|
.L0f09a800:
|
|
/* f09a800: 8e0d0558 */ lw $t5,0x558($s0)
|
|
.L0f09a804:
|
|
/* f09a804: 8e0e05f8 */ lw $t6,0x5f8($s0)
|
|
/* f09a808: 01ae7821 */ addu $t7,$t5,$t6
|
|
/* f09a80c: ae0f0558 */ sw $t7,0x558($s0)
|
|
/* f09a810: 8cf80010 */ lw $t8,0x10($a3)
|
|
/* f09a814: 33192000 */ andi $t9,$t8,0x2000
|
|
/* f09a818: 53200004 */ beqzl $t9,.L0f09a82c
|
|
/* f09a81c: a2060005 */ sb $a2,0x5($s0)
|
|
/* f09a820: 10000002 */ b .L0f09a82c
|
|
/* f09a824: a2000005 */ sb $zero,0x5($s0)
|
|
/* f09a828: a2060005 */ sb $a2,0x5($s0)
|
|
.L0f09a82c:
|
|
/* f09a82c: 8fa4005c */ lw $a0,0x5c($sp)
|
|
/* f09a830: 0fc288c2 */ jal bgunStartSlide
|
|
/* f09a834: afa70064 */ sw $a3,0x64($sp)
|
|
/* f09a838: 82020004 */ lb $v0,0x4($s0)
|
|
/* f09a83c: 44803000 */ mtc1 $zero,$f6
|
|
/* f09a840: 8fa70064 */ lw $a3,0x64($sp)
|
|
/* f09a844: 10400036 */ beqz $v0,.L0f09a920
|
|
/* f09a848: e6060250 */ swc1 $f6,0x250($s0)
|
|
/* f09a84c: 8e09060c */ lw $t1,0x60c($s0)
|
|
/* f09a850: 8e080614 */ lw $t0,0x614($s0)
|
|
/* f09a854: 352a0020 */ ori $t2,$t1,0x20
|
|
/* f09a858: ae0a060c */ sw $t2,0x60c($s0)
|
|
/* f09a85c: 354c0010 */ ori $t4,$t2,0x10
|
|
/* f09a860: ae0c060c */ sw $t4,0x60c($s0)
|
|
/* f09a864: ae0806a8 */ sw $t0,0x6a8($s0)
|
|
/* f09a868: 8fad0058 */ lw $t5,0x58($sp)
|
|
/* f09a86c: 8fa4005c */ lw $a0,0x5c($sp)
|
|
/* f09a870: 8da50000 */ lw $a1,0x0($t5)
|
|
/* f09a874: 0fc25ee8 */ jal bgunRumble
|
|
/* f09a878: afa70064 */ sw $a3,0x64($sp)
|
|
/* f09a87c: 8fae0054 */ lw $t6,0x54($sp)
|
|
/* f09a880: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f09a884: 8fa70064 */ lw $a3,0x64($sp)
|
|
/* f09a888: 11c00016 */ beqz $t6,.L0f09a8e4
|
|
/* f09a88c: 24010100 */ addiu $at,$zero,0x100
|
|
/* f09a890: 80e30007 */ lb $v1,0x7($a3)
|
|
/* f09a894: 04600013 */ bltz $v1,.L0f09a8e4
|
|
/* f09a898: 00037880 */ sll $t7,$v1,0x2
|
|
/* f09a89c: 020f1021 */ addu $v0,$s0,$t7
|
|
/* f09a8a0: 8c580220 */ lw $t8,0x220($v0)
|
|
/* f09a8a4: 8e1905f8 */ lw $t9,0x5f8($s0)
|
|
/* f09a8a8: 03194023 */ subu $t0,$t8,$t9
|
|
/* f09a8ac: ac480220 */ sw $t0,0x220($v0)
|
|
/* f09a8b0: 80e90007 */ lb $t1,0x7($a3)
|
|
/* f09a8b4: 00095080 */ sll $t2,$t1,0x2
|
|
/* f09a8b8: 020a5821 */ addu $t3,$s0,$t2
|
|
/* f09a8bc: 8d640220 */ lw $a0,0x220($t3)
|
|
/* f09a8c0: 04830009 */ bgezl $a0,.L0f09a8e8
|
|
/* f09a8c4: 8ce20000 */ lw $v0,0x0($a3)
|
|
/* f09a8c8: 8e0c05f8 */ lw $t4,0x5f8($s0)
|
|
/* f09a8cc: 01846821 */ addu $t5,$t4,$a0
|
|
/* f09a8d0: ae0d05f8 */ sw $t5,0x5f8($s0)
|
|
/* f09a8d4: 80ee0007 */ lb $t6,0x7($a3)
|
|
/* f09a8d8: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f09a8dc: 020fc021 */ addu $t8,$s0,$t7
|
|
/* f09a8e0: af000220 */ sw $zero,0x220($t8)
|
|
.L0f09a8e4:
|
|
/* f09a8e4: 8ce20000 */ lw $v0,0x0($a3)
|
|
.L0f09a8e8:
|
|
/* f09a8e8: 3059ff00 */ andi $t9,$v0,0xff00
|
|
/* f09a8ec: 53200008 */ beqzl $t9,.L0f09a910
|
|
/* f09a8f0: ae0606ac */ sw $a2,0x6ac($s0)
|
|
/* f09a8f4: 13210005 */ beq $t9,$at,.L0f09a90c
|
|
/* f09a8f8: 24010200 */ addiu $at,$zero,0x200
|
|
/* f09a8fc: 13210006 */ beq $t9,$at,.L0f09a918
|
|
/* f09a900: 24080002 */ addiu $t0,$zero,0x2
|
|
/* f09a904: 10000006 */ b .L0f09a920
|
|
/* f09a908: 82020004 */ lb $v0,0x4($s0)
|
|
.L0f09a90c:
|
|
/* f09a90c: ae0606ac */ sw $a2,0x6ac($s0)
|
|
.L0f09a910:
|
|
/* f09a910: 10000003 */ b .L0f09a920
|
|
/* f09a914: 82020004 */ lb $v0,0x4($s0)
|
|
.L0f09a918:
|
|
/* f09a918: ae0806ac */ sw $t0,0x6ac($s0)
|
|
/* f09a91c: 82020004 */ lb $v0,0x4($s0)
|
|
.L0f09a920:
|
|
/* f09a920: 1040009b */ beqz $v0,.L0f09ab90
|
|
/* f09a924: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a928: 0fc2c78a */ jal gsetGetFireslotDuration
|
|
/* f09a92c: afa00044 */ sw $zero,0x44($sp)
|
|
/* f09a930: 1840001e */ blez $v0,.L0f09a9ac
|
|
/* f09a934: 8fa30044 */ lw $v1,0x44($sp)
|
|
/* f09a938: 8faa005c */ lw $t2,0x5c($sp)
|
|
/* f09a93c: 3c09800a */ lui $t1,%hi(g_Vars+0x284)
|
|
/* f09a940: 8d29a244 */ lw $t1,%lo(g_Vars+0x284)($t1)
|
|
/* f09a944: 000a5900 */ sll $t3,$t2,0x4
|
|
/* f09a948: 016a5823 */ subu $t3,$t3,$t2
|
|
/* f09a94c: 000b5880 */ sll $t3,$t3,0x2
|
|
/* f09a950: 016a5821 */ addu $t3,$t3,$t2
|
|
/* f09a954: 000b58c0 */ sll $t3,$t3,0x3
|
|
/* f09a958: 016a5821 */ addu $t3,$t3,$t2
|
|
/* f09a95c: 000b5880 */ sll $t3,$t3,0x2
|
|
/* f09a960: 000b6023 */ negu $t4,$t3
|
|
/* f09a964: 3c02800a */ lui $v0,%hi(g_Vars+0x8)
|
|
/* f09a968: 012c6821 */ addu $t5,$t1,$t4
|
|
/* f09a96c: 8dae0fb4 */ lw $t6,0xfb4($t5)
|
|
/* f09a970: 8c429fc8 */ lw $v0,%lo(g_Vars+0x8)($v0)
|
|
/* f09a974: 104e0011 */ beq $v0,$t6,.L0f09a9bc
|
|
/* f09a978: 00000000 */ nop
|
|
/* f09a97c: 8e0f01d4 */ lw $t7,0x1d4($s0)
|
|
/* f09a980: 01e2082a */ slt $at,$t7,$v0
|
|
/* f09a984: 1020000d */ beqz $at,.L0f09a9bc
|
|
/* f09a988: 00000000 */ nop
|
|
/* f09a98c: 0fc2c78a */ jal gsetGetFireslotDuration
|
|
/* f09a990: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a994: 3c18800a */ lui $t8,%hi(g_Vars+0x8)
|
|
/* f09a998: 8f189fc8 */ lw $t8,%lo(g_Vars+0x8)($t8)
|
|
/* f09a99c: 24030001 */ addiu $v1,$zero,0x1
|
|
/* f09a9a0: 0058c821 */ addu $t9,$v0,$t8
|
|
/* f09a9a4: 10000005 */ b .L0f09a9bc
|
|
/* f09a9a8: ae1901d4 */ sw $t9,0x1d4($s0)
|
|
.L0f09a9ac:
|
|
/* f09a9ac: 82080004 */ lb $t0,0x4($s0)
|
|
/* f09a9b0: 11000002 */ beqz $t0,.L0f09a9bc
|
|
/* f09a9b4: 00000000 */ nop
|
|
/* f09a9b8: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f09a9bc:
|
|
/* f09a9bc: 50600075 */ beqzl $v1,.L0f09ab94
|
|
/* f09a9c0: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f09a9c4: 0c012230 */ jal osGetThreadPri
|
|
/* f09a9c8: 00002025 */ or $a0,$zero,$zero
|
|
/* f09a9cc: 3c048009 */ lui $a0,%hi(g_AudioManager+0x18)
|
|
/* f09a9d0: afa20040 */ sw $v0,0x40($sp)
|
|
/* f09a9d4: 0c012230 */ jal osGetThreadPri
|
|
/* f09a9d8: 248415e0 */ addiu $a0,$a0,%lo(g_AudioManager+0x18)
|
|
/* f09a9dc: 00002025 */ or $a0,$zero,$zero
|
|
/* f09a9e0: 0c01210c */ jal osSetThreadPri
|
|
/* f09a9e4: 24450001 */ addiu $a1,$v0,0x1
|
|
/* f09a9e8: 8e0401cc */ lw $a0,0x1cc($s0)
|
|
/* f09a9ec: 50800008 */ beqzl $a0,.L0f09aa10
|
|
/* f09a9f0: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
/* f09a9f4: 0c00cdfc */ jal sndGetState
|
|
/* f09a9f8: 00000000 */ nop
|
|
/* f09a9fc: 50400004 */ beqzl $v0,.L0f09aa10
|
|
/* f09aa00: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
/* f09aa04: 0c00cec9 */ jal audioStop
|
|
/* f09aa08: 8e0401cc */ lw $a0,0x1cc($s0)
|
|
/* f09aa0c: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
.L0f09aa10:
|
|
/* f09aa10: 10800007 */ beqz $a0,.L0f09aa30
|
|
/* f09aa14: 00000000 */ nop
|
|
/* f09aa18: 0c00cdfc */ jal sndGetState
|
|
/* f09aa1c: 00000000 */ nop
|
|
/* f09aa20: 10400003 */ beqz $v0,.L0f09aa30
|
|
/* f09aa24: 00000000 */ nop
|
|
/* f09aa28: 0c00cec9 */ jal audioStop
|
|
/* f09aa2c: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
.L0f09aa30:
|
|
/* f09aa30: 0fc2c79a */ jal gsetGetSingleShootSound
|
|
/* f09aa34: 02002025 */ or $a0,$s0,$zero
|
|
/* f09aa38: 50400053 */ beqzl $v0,.L0f09ab88
|
|
/* f09aa3c: 00002025 */ or $a0,$zero,$zero
|
|
/* f09aa40: 8e0a01cc */ lw $t2,0x1cc($s0)
|
|
/* f09aa44: 00002025 */ or $a0,$zero,$zero
|
|
/* f09aa48: 55400017 */ bnezl $t2,.L0f09aaa8
|
|
/* f09aa4c: 8e0e01d0 */ lw $t6,0x1d0($s0)
|
|
/* f09aa50: 0fc2c79a */ jal gsetGetSingleShootSound
|
|
/* f09aa54: 02002025 */ or $a0,$s0,$zero
|
|
/* f09aa58: 3c01bf80 */ lui $at,0xbf80
|
|
/* f09aa5c: 44814000 */ mtc1 $at,$f8
|
|
/* f09aa60: 00022c00 */ sll $a1,$v0,0x10
|
|
/* f09aa64: 00055c03 */ sra $t3,$a1,0x10
|
|
/* f09aa68: 3c048009 */ lui $a0,%hi(var80095200)
|
|
/* f09aa6c: 2409ffff */ addiu $t1,$zero,-1
|
|
/* f09aa70: 240cffff */ addiu $t4,$zero,-1
|
|
/* f09aa74: 240dffff */ addiu $t5,$zero,-1
|
|
/* f09aa78: afad001c */ sw $t5,0x1c($sp)
|
|
/* f09aa7c: afac0018 */ sw $t4,0x18($sp)
|
|
/* f09aa80: afa90010 */ sw $t1,0x10($sp)
|
|
/* f09aa84: 8c845200 */ lw $a0,%lo(var80095200)($a0)
|
|
/* f09aa88: 01602825 */ or $a1,$t3,$zero
|
|
/* f09aa8c: 260601cc */ addiu $a2,$s0,0x1cc
|
|
/* f09aa90: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f09aa94: 0c004241 */ jal sndStart
|
|
/* f09aa98: e7a80014 */ swc1 $f8,0x14($sp)
|
|
/* f09aa9c: 10000018 */ b .L0f09ab00
|
|
/* f09aaa0: 00402025 */ or $a0,$v0,$zero
|
|
/* f09aaa4: 8e0e01d0 */ lw $t6,0x1d0($s0)
|
|
.L0f09aaa8:
|
|
/* f09aaa8: 55c00016 */ bnezl $t6,.L0f09ab04
|
|
/* f09aaac: 920b0000 */ lbu $t3,0x0($s0)
|
|
/* f09aab0: 0fc2c79a */ jal gsetGetSingleShootSound
|
|
/* f09aab4: 02002025 */ or $a0,$s0,$zero
|
|
/* f09aab8: 3c01bf80 */ lui $at,0xbf80
|
|
/* f09aabc: 44815000 */ mtc1 $at,$f10
|
|
/* f09aac0: 00022c00 */ sll $a1,$v0,0x10
|
|
/* f09aac4: 00057c03 */ sra $t7,$a1,0x10
|
|
/* f09aac8: 3c048009 */ lui $a0,%hi(var80095200)
|
|
/* f09aacc: 2418ffff */ addiu $t8,$zero,-1
|
|
/* f09aad0: 2419ffff */ addiu $t9,$zero,-1
|
|
/* f09aad4: 2408ffff */ addiu $t0,$zero,-1
|
|
/* f09aad8: afa8001c */ sw $t0,0x1c($sp)
|
|
/* f09aadc: afb90018 */ sw $t9,0x18($sp)
|
|
/* f09aae0: afb80010 */ sw $t8,0x10($sp)
|
|
/* f09aae4: 8c845200 */ lw $a0,%lo(var80095200)($a0)
|
|
/* f09aae8: 01e02825 */ or $a1,$t7,$zero
|
|
/* f09aaec: 260601d0 */ addiu $a2,$s0,0x1d0
|
|
/* f09aaf0: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f09aaf4: 0c004241 */ jal sndStart
|
|
/* f09aaf8: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f09aafc: 00402025 */ or $a0,$v0,$zero
|
|
.L0f09ab00:
|
|
/* f09ab00: 920b0000 */ lbu $t3,0x0($s0)
|
|
.L0f09ab04:
|
|
/* f09ab04: 3c0a800a */ lui $t2,%hi(g_Vars+0x8)
|
|
/* f09ab08: 8d4a9fc8 */ lw $t2,%lo(g_Vars+0x8)($t2)
|
|
/* f09ab0c: 24010006 */ addiu $at,$zero,0x6
|
|
/* f09ab10: 1561001c */ bne $t3,$at,.L0f09ab84
|
|
/* f09ab14: ae0a01d8 */ sw $t2,0x1d8($s0)
|
|
/* f09ab18: 5080001b */ beqzl $a0,.L0f09ab88
|
|
/* f09ab1c: 00002025 */ or $a0,$zero,$zero
|
|
/* f09ab20: c612023c */ lwc1 $f18,0x23c($s0)
|
|
/* f09ab24: 3c013f80 */ lui $at,0x3f80
|
|
/* f09ab28: 44816000 */ mtc1 $at,$f12
|
|
/* f09ab2c: 4600940d */ trunc.w.s $f16,$f18
|
|
/* f09ab30: 3c014040 */ lui $at,0x4040
|
|
/* f09ab34: 44814000 */ mtc1 $at,$f8
|
|
/* f09ab38: 3c017f1b */ lui $at,%hi(var7f1ac320)
|
|
/* f09ab3c: 44028000 */ mfc1 $v0,$f16
|
|
/* f09ab40: 00000000 */ nop
|
|
/* f09ab44: 44822000 */ mtc1 $v0,$f4
|
|
/* f09ab48: 00000000 */ nop
|
|
/* f09ab4c: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f09ab50: 46083083 */ div.s $f2,$f6,$f8
|
|
/* f09ab54: 4602603c */ c.lt.s $f12,$f2
|
|
/* f09ab58: 00000000 */ nop
|
|
/* f09ab5c: 45000002 */ bc1f .L0f09ab68
|
|
/* f09ab60: 00000000 */ nop
|
|
/* f09ab64: 46006086 */ mov.s $f2,$f12
|
|
.L0f09ab68:
|
|
/* f09ab68: c42ac320 */ lwc1 $f10,%lo(var7f1ac320)($at)
|
|
/* f09ab6c: 24050010 */ addiu $a1,$zero,0x10
|
|
/* f09ab70: 460a1482 */ mul.s $f18,$f2,$f10
|
|
/* f09ab74: 46126401 */ sub.s $f16,$f12,$f18
|
|
/* f09ab78: e7b00034 */ swc1 $f16,0x34($sp)
|
|
/* f09ab7c: 0c00cf94 */ jal audioPostEvent
|
|
/* f09ab80: 8fa60034 */ lw $a2,0x34($sp)
|
|
.L0f09ab84:
|
|
/* f09ab84: 00002025 */ or $a0,$zero,$zero
|
|
.L0f09ab88:
|
|
/* f09ab88: 0c01210c */ jal osSetThreadPri
|
|
/* f09ab8c: 8fa50040 */ lw $a1,0x40($sp)
|
|
.L0f09ab90:
|
|
/* f09ab90: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f09ab94:
|
|
/* f09ab94: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f09ab98: 27bd0058 */ addiu $sp,$sp,0x58
|
|
/* f09ab9c: 03e00008 */ jr $ra
|
|
/* f09aba0: 00000000 */ nop
|
|
);
|
|
#elif VERSION >= VERSION_NTSC_1_0
|
|
GLOBAL_ASM(
|
|
glabel bgun0f09a6f8
|
|
.late_rodata
|
|
glabel var7f1ac320
|
|
.word 0x3ecccccd
|
|
.text
|
|
/* f09a6f8: 27bdffa8 */ addiu $sp,$sp,-88
|
|
/* f09a6fc: afa40058 */ sw $a0,0x58($sp)
|
|
/* f09a700: afa5005c */ sw $a1,0x5c($sp)
|
|
/* f09a704: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f09a708: afb00028 */ sw $s0,0x28($sp)
|
|
/* f09a70c: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f09a710: 3c058007 */ lui $a1,%hi(var80070120)
|
|
/* f09a714: 3c047f1b */ lui $a0,%hi(var7f1ab890)
|
|
/* f09a718: 00c08025 */ or $s0,$a2,$zero
|
|
/* f09a71c: afae0054 */ sw $t6,0x54($sp)
|
|
/* f09a720: 2484b890 */ addiu $a0,$a0,%lo(var7f1ab890)
|
|
/* f09a724: 24a50120 */ addiu $a1,$a1,%lo(var80070120)
|
|
/* f09a728: 0c0036cc */ jal mainOverrideVariable
|
|
/* f09a72c: afa70064 */ sw $a3,0x64($sp)
|
|
/* f09a730: 3c047f1b */ lui $a0,%hi(var7f1ab898)
|
|
/* f09a734: 3c058007 */ lui $a1,%hi(var80070124)
|
|
/* f09a738: 24a50124 */ addiu $a1,$a1,%lo(var80070124)
|
|
/* f09a73c: 0c0036cc */ jal mainOverrideVariable
|
|
/* f09a740: 2484b898 */ addiu $a0,$a0,%lo(var7f1ab898)
|
|
/* f09a744: 8fa70064 */ lw $a3,0x64($sp)
|
|
/* f09a748: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f09a74c: a2060004 */ sb $a2,0x4($s0)
|
|
/* f09a750: 8cef0000 */ lw $t7,0x0($a3)
|
|
/* f09a754: 24010100 */ addiu $at,$zero,0x100
|
|
/* f09a758: 31f8ff00 */ andi $t8,$t7,0xff00
|
|
/* f09a75c: 57010023 */ bnel $t8,$at,.L0f09a7ec
|
|
/* f09a760: 920c0000 */ lbu $t4,0x0($s0)
|
|
/* f09a764: c4e00040 */ lwc1 $f0,0x40($a3)
|
|
/* f09a768: c4e40044 */ lwc1 $f4,0x44($a3)
|
|
/* f09a76c: c6080660 */ lwc1 $f8,0x660($s0)
|
|
/* f09a770: 3c014270 */ lui $at,0x4270
|
|
/* f09a774: 46002181 */ sub.s $f6,$f4,$f0
|
|
/* f09a778: 44817000 */ mtc1 $at,$f14
|
|
/* f09a77c: 3c01800a */ lui $at,%hi(g_Vars+0x44)
|
|
/* f09a780: c432a004 */ lwc1 $f18,%lo(g_Vars+0x44)($at)
|
|
/* f09a784: 46083282 */ mul.s $f10,$f6,$f8
|
|
/* f09a788: c60805fc */ lwc1 $f8,0x5fc($s0)
|
|
/* f09a78c: 460e9103 */ div.s $f4,$f18,$f14
|
|
/* f09a790: 460a0300 */ add.s $f12,$f0,$f10
|
|
/* f09a794: 460e6403 */ div.s $f16,$f12,$f14
|
|
/* f09a798: 46048182 */ mul.s $f6,$f16,$f4
|
|
/* f09a79c: 46083080 */ add.s $f2,$f6,$f8
|
|
/* f09a7a0: 4600128d */ trunc.w.s $f10,$f2
|
|
/* f09a7a4: 44025000 */ mfc1 $v0,$f10
|
|
/* f09a7a8: 00000000 */ nop
|
|
/* f09a7ac: 44829000 */ mtc1 $v0,$f18
|
|
/* f09a7b0: ae0205f8 */ sw $v0,0x5f8($s0)
|
|
/* f09a7b4: 46809420 */ cvt.s.w $f16,$f18
|
|
/* f09a7b8: 46101101 */ sub.s $f4,$f2,$f16
|
|
/* f09a7bc: 1c400010 */ bgtz $v0,.L0f09a800
|
|
/* f09a7c0: e60405fc */ swc1 $f4,0x5fc($s0)
|
|
/* f09a7c4: 8e08060c */ lw $t0,0x60c($s0)
|
|
/* f09a7c8: 244b0001 */ addiu $t3,$v0,0x1
|
|
/* f09a7cc: 31090010 */ andi $t1,$t0,0x10
|
|
/* f09a7d0: 15200003 */ bnez $t1,.L0f09a7e0
|
|
/* f09a7d4: 00000000 */ nop
|
|
/* f09a7d8: 10000009 */ b .L0f09a800
|
|
/* f09a7dc: ae0b05f8 */ sw $t3,0x5f8($s0)
|
|
.L0f09a7e0:
|
|
/* f09a7e0: 10000007 */ b .L0f09a800
|
|
/* f09a7e4: a2000004 */ sb $zero,0x4($s0)
|
|
/* f09a7e8: 920c0000 */ lbu $t4,0x0($s0)
|
|
.L0f09a7ec:
|
|
/* f09a7ec: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f09a7f0: ae0605f8 */ sw $a2,0x5f8($s0)
|
|
/* f09a7f4: 55810003 */ bnel $t4,$at,.L0f09a804
|
|
/* f09a7f8: 8e0d0558 */ lw $t5,0x558($s0)
|
|
/* f09a7fc: afa00054 */ sw $zero,0x54($sp)
|
|
.L0f09a800:
|
|
/* f09a800: 8e0d0558 */ lw $t5,0x558($s0)
|
|
.L0f09a804:
|
|
/* f09a804: 8e0e05f8 */ lw $t6,0x5f8($s0)
|
|
/* f09a808: 01ae7821 */ addu $t7,$t5,$t6
|
|
/* f09a80c: ae0f0558 */ sw $t7,0x558($s0)
|
|
/* f09a810: 8cf80010 */ lw $t8,0x10($a3)
|
|
/* f09a814: 33192000 */ andi $t9,$t8,0x2000
|
|
/* f09a818: 53200004 */ beqzl $t9,.L0f09a82c
|
|
/* f09a81c: a2060005 */ sb $a2,0x5($s0)
|
|
/* f09a820: 10000002 */ b .L0f09a82c
|
|
/* f09a824: a2000005 */ sb $zero,0x5($s0)
|
|
/* f09a828: a2060005 */ sb $a2,0x5($s0)
|
|
.L0f09a82c:
|
|
/* f09a82c: 8fa4005c */ lw $a0,0x5c($sp)
|
|
/* f09a830: 0fc288c2 */ jal bgunStartSlide
|
|
/* f09a834: afa70064 */ sw $a3,0x64($sp)
|
|
/* f09a838: 82020004 */ lb $v0,0x4($s0)
|
|
/* f09a83c: 44803000 */ mtc1 $zero,$f6
|
|
/* f09a840: 8fa70064 */ lw $a3,0x64($sp)
|
|
/* f09a844: 10400036 */ beqz $v0,.L0f09a920
|
|
/* f09a848: e6060250 */ swc1 $f6,0x250($s0)
|
|
/* f09a84c: 8e09060c */ lw $t1,0x60c($s0)
|
|
/* f09a850: 8e080614 */ lw $t0,0x614($s0)
|
|
/* f09a854: 352a0020 */ ori $t2,$t1,0x20
|
|
/* f09a858: ae0a060c */ sw $t2,0x60c($s0)
|
|
/* f09a85c: 354c0010 */ ori $t4,$t2,0x10
|
|
/* f09a860: ae0c060c */ sw $t4,0x60c($s0)
|
|
/* f09a864: ae0806a8 */ sw $t0,0x6a8($s0)
|
|
/* f09a868: 8fad0058 */ lw $t5,0x58($sp)
|
|
/* f09a86c: 8fa4005c */ lw $a0,0x5c($sp)
|
|
/* f09a870: 8da50000 */ lw $a1,0x0($t5)
|
|
/* f09a874: 0fc25ee8 */ jal bgunRumble
|
|
/* f09a878: afa70064 */ sw $a3,0x64($sp)
|
|
/* f09a87c: 8fae0054 */ lw $t6,0x54($sp)
|
|
/* f09a880: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f09a884: 8fa70064 */ lw $a3,0x64($sp)
|
|
/* f09a888: 11c00016 */ beqz $t6,.L0f09a8e4
|
|
/* f09a88c: 24010100 */ addiu $at,$zero,0x100
|
|
/* f09a890: 80e30007 */ lb $v1,0x7($a3)
|
|
/* f09a894: 04600013 */ bltz $v1,.L0f09a8e4
|
|
/* f09a898: 00037880 */ sll $t7,$v1,0x2
|
|
/* f09a89c: 020f1021 */ addu $v0,$s0,$t7
|
|
/* f09a8a0: 8c580220 */ lw $t8,0x220($v0)
|
|
/* f09a8a4: 8e1905f8 */ lw $t9,0x5f8($s0)
|
|
/* f09a8a8: 03194023 */ subu $t0,$t8,$t9
|
|
/* f09a8ac: ac480220 */ sw $t0,0x220($v0)
|
|
/* f09a8b0: 80e90007 */ lb $t1,0x7($a3)
|
|
/* f09a8b4: 00095080 */ sll $t2,$t1,0x2
|
|
/* f09a8b8: 020a5821 */ addu $t3,$s0,$t2
|
|
/* f09a8bc: 8d640220 */ lw $a0,0x220($t3)
|
|
/* f09a8c0: 04830009 */ bgezl $a0,.L0f09a8e8
|
|
/* f09a8c4: 8ce20000 */ lw $v0,0x0($a3)
|
|
/* f09a8c8: 8e0c05f8 */ lw $t4,0x5f8($s0)
|
|
/* f09a8cc: 01846821 */ addu $t5,$t4,$a0
|
|
/* f09a8d0: ae0d05f8 */ sw $t5,0x5f8($s0)
|
|
/* f09a8d4: 80ee0007 */ lb $t6,0x7($a3)
|
|
/* f09a8d8: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f09a8dc: 020fc021 */ addu $t8,$s0,$t7
|
|
/* f09a8e0: af000220 */ sw $zero,0x220($t8)
|
|
.L0f09a8e4:
|
|
/* f09a8e4: 8ce20000 */ lw $v0,0x0($a3)
|
|
.L0f09a8e8:
|
|
/* f09a8e8: 3059ff00 */ andi $t9,$v0,0xff00
|
|
/* f09a8ec: 53200008 */ beqzl $t9,.L0f09a910
|
|
/* f09a8f0: ae0606ac */ sw $a2,0x6ac($s0)
|
|
/* f09a8f4: 13210005 */ beq $t9,$at,.L0f09a90c
|
|
/* f09a8f8: 24010200 */ addiu $at,$zero,0x200
|
|
/* f09a8fc: 13210006 */ beq $t9,$at,.L0f09a918
|
|
/* f09a900: 24080002 */ addiu $t0,$zero,0x2
|
|
/* f09a904: 10000006 */ b .L0f09a920
|
|
/* f09a908: 82020004 */ lb $v0,0x4($s0)
|
|
.L0f09a90c:
|
|
/* f09a90c: ae0606ac */ sw $a2,0x6ac($s0)
|
|
.L0f09a910:
|
|
/* f09a910: 10000003 */ b .L0f09a920
|
|
/* f09a914: 82020004 */ lb $v0,0x4($s0)
|
|
.L0f09a918:
|
|
/* f09a918: ae0806ac */ sw $t0,0x6ac($s0)
|
|
/* f09a91c: 82020004 */ lb $v0,0x4($s0)
|
|
.L0f09a920:
|
|
/* f09a920: 1040009b */ beqz $v0,.L0f09ab90
|
|
/* f09a924: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a928: 0fc2c78a */ jal gsetGetFireslotDuration
|
|
/* f09a92c: afa00044 */ sw $zero,0x44($sp)
|
|
/* f09a930: 1840001e */ blez $v0,.L0f09a9ac
|
|
/* f09a934: 8fa30044 */ lw $v1,0x44($sp)
|
|
/* f09a938: 8faa005c */ lw $t2,0x5c($sp)
|
|
/* f09a93c: 3c09800a */ lui $t1,%hi(g_Vars+0x284)
|
|
/* f09a940: 8d29a244 */ lw $t1,%lo(g_Vars+0x284)($t1)
|
|
/* f09a944: 000a5900 */ sll $t3,$t2,0x4
|
|
/* f09a948: 016a5823 */ subu $t3,$t3,$t2
|
|
/* f09a94c: 000b5880 */ sll $t3,$t3,0x2
|
|
/* f09a950: 016a5821 */ addu $t3,$t3,$t2
|
|
/* f09a954: 000b58c0 */ sll $t3,$t3,0x3
|
|
/* f09a958: 016a5821 */ addu $t3,$t3,$t2
|
|
/* f09a95c: 000b5880 */ sll $t3,$t3,0x2
|
|
/* f09a960: 000b6023 */ negu $t4,$t3
|
|
/* f09a964: 3c02800a */ lui $v0,%hi(g_Vars+0x8)
|
|
/* f09a968: 012c6821 */ addu $t5,$t1,$t4
|
|
/* f09a96c: 8dae0fb4 */ lw $t6,0xfb4($t5)
|
|
/* f09a970: 8c429fc8 */ lw $v0,%lo(g_Vars+0x8)($v0)
|
|
/* f09a974: 104e0011 */ beq $v0,$t6,.L0f09a9bc
|
|
/* f09a978: 00000000 */ nop
|
|
/* f09a97c: 8e0f01d4 */ lw $t7,0x1d4($s0)
|
|
/* f09a980: 01e2082a */ slt $at,$t7,$v0
|
|
/* f09a984: 1020000d */ beqz $at,.L0f09a9bc
|
|
/* f09a988: 00000000 */ nop
|
|
/* f09a98c: 0fc2c78a */ jal gsetGetFireslotDuration
|
|
/* f09a990: 02002025 */ or $a0,$s0,$zero
|
|
/* f09a994: 3c18800a */ lui $t8,%hi(g_Vars+0x8)
|
|
/* f09a998: 8f189fc8 */ lw $t8,%lo(g_Vars+0x8)($t8)
|
|
/* f09a99c: 24030001 */ addiu $v1,$zero,0x1
|
|
/* f09a9a0: 0058c821 */ addu $t9,$v0,$t8
|
|
/* f09a9a4: 10000005 */ b .L0f09a9bc
|
|
/* f09a9a8: ae1901d4 */ sw $t9,0x1d4($s0)
|
|
.L0f09a9ac:
|
|
/* f09a9ac: 82080004 */ lb $t0,0x4($s0)
|
|
/* f09a9b0: 11000002 */ beqz $t0,.L0f09a9bc
|
|
/* f09a9b4: 00000000 */ nop
|
|
/* f09a9b8: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f09a9bc:
|
|
/* f09a9bc: 50600075 */ beqzl $v1,.L0f09ab94
|
|
/* f09a9c0: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f09a9c4: 0c012230 */ jal osGetThreadPri
|
|
/* f09a9c8: 00002025 */ or $a0,$zero,$zero
|
|
/* f09a9cc: 3c048009 */ lui $a0,%hi(g_AudioManager+0x18)
|
|
/* f09a9d0: afa20040 */ sw $v0,0x40($sp)
|
|
/* f09a9d4: 0c012230 */ jal osGetThreadPri
|
|
/* f09a9d8: 248415e0 */ addiu $a0,$a0,%lo(g_AudioManager+0x18)
|
|
/* f09a9dc: 00002025 */ or $a0,$zero,$zero
|
|
/* f09a9e0: 0c01210c */ jal osSetThreadPri
|
|
/* f09a9e4: 24450001 */ addiu $a1,$v0,0x1
|
|
/* f09a9e8: 8e0401cc */ lw $a0,0x1cc($s0)
|
|
/* f09a9ec: 50800008 */ beqzl $a0,.L0f09aa10
|
|
/* f09a9f0: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
/* f09a9f4: 0c00cdfc */ jal sndGetState
|
|
/* f09a9f8: 00000000 */ nop
|
|
/* f09a9fc: 50400004 */ beqzl $v0,.L0f09aa10
|
|
/* f09aa00: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
/* f09aa04: 0c00cec9 */ jal audioStop
|
|
/* f09aa08: 8e0401cc */ lw $a0,0x1cc($s0)
|
|
/* f09aa0c: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
.L0f09aa10:
|
|
/* f09aa10: 10800007 */ beqz $a0,.L0f09aa30
|
|
/* f09aa14: 00000000 */ nop
|
|
/* f09aa18: 0c00cdfc */ jal sndGetState
|
|
/* f09aa1c: 00000000 */ nop
|
|
/* f09aa20: 10400003 */ beqz $v0,.L0f09aa30
|
|
/* f09aa24: 00000000 */ nop
|
|
/* f09aa28: 0c00cec9 */ jal audioStop
|
|
/* f09aa2c: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
.L0f09aa30:
|
|
/* f09aa30: 0fc2c79a */ jal gsetGetSingleShootSound
|
|
/* f09aa34: 02002025 */ or $a0,$s0,$zero
|
|
/* f09aa38: 50400053 */ beqzl $v0,.L0f09ab88
|
|
/* f09aa3c: 00002025 */ or $a0,$zero,$zero
|
|
/* f09aa40: 8e0a01cc */ lw $t2,0x1cc($s0)
|
|
/* f09aa44: 00002025 */ or $a0,$zero,$zero
|
|
/* f09aa48: 55400017 */ bnezl $t2,.L0f09aaa8
|
|
/* f09aa4c: 8e0e01d0 */ lw $t6,0x1d0($s0)
|
|
/* f09aa50: 0fc2c79a */ jal gsetGetSingleShootSound
|
|
/* f09aa54: 02002025 */ or $a0,$s0,$zero
|
|
/* f09aa58: 3c01bf80 */ lui $at,0xbf80
|
|
/* f09aa5c: 44814000 */ mtc1 $at,$f8
|
|
/* f09aa60: 00022c00 */ sll $a1,$v0,0x10
|
|
/* f09aa64: 00055c03 */ sra $t3,$a1,0x10
|
|
/* f09aa68: 3c048009 */ lui $a0,%hi(var80095200)
|
|
/* f09aa6c: 2409ffff */ addiu $t1,$zero,-1
|
|
/* f09aa70: 240cffff */ addiu $t4,$zero,-1
|
|
/* f09aa74: 240dffff */ addiu $t5,$zero,-1
|
|
/* f09aa78: afad001c */ sw $t5,0x1c($sp)
|
|
/* f09aa7c: afac0018 */ sw $t4,0x18($sp)
|
|
/* f09aa80: afa90010 */ sw $t1,0x10($sp)
|
|
/* f09aa84: 8c845200 */ lw $a0,%lo(var80095200)($a0)
|
|
/* f09aa88: 01602825 */ or $a1,$t3,$zero
|
|
/* f09aa8c: 260601cc */ addiu $a2,$s0,0x1cc
|
|
/* f09aa90: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f09aa94: 0c004241 */ jal sndStart
|
|
/* f09aa98: e7a80014 */ swc1 $f8,0x14($sp)
|
|
/* f09aa9c: 10000018 */ b .L0f09ab00
|
|
/* f09aaa0: 00402025 */ or $a0,$v0,$zero
|
|
/* f09aaa4: 8e0e01d0 */ lw $t6,0x1d0($s0)
|
|
.L0f09aaa8:
|
|
/* f09aaa8: 55c00016 */ bnezl $t6,.L0f09ab04
|
|
/* f09aaac: 920b0000 */ lbu $t3,0x0($s0)
|
|
/* f09aab0: 0fc2c79a */ jal gsetGetSingleShootSound
|
|
/* f09aab4: 02002025 */ or $a0,$s0,$zero
|
|
/* f09aab8: 3c01bf80 */ lui $at,0xbf80
|
|
/* f09aabc: 44815000 */ mtc1 $at,$f10
|
|
/* f09aac0: 00022c00 */ sll $a1,$v0,0x10
|
|
/* f09aac4: 00057c03 */ sra $t7,$a1,0x10
|
|
/* f09aac8: 3c048009 */ lui $a0,%hi(var80095200)
|
|
/* f09aacc: 2418ffff */ addiu $t8,$zero,-1
|
|
/* f09aad0: 2419ffff */ addiu $t9,$zero,-1
|
|
/* f09aad4: 2408ffff */ addiu $t0,$zero,-1
|
|
/* f09aad8: afa8001c */ sw $t0,0x1c($sp)
|
|
/* f09aadc: afb90018 */ sw $t9,0x18($sp)
|
|
/* f09aae0: afb80010 */ sw $t8,0x10($sp)
|
|
/* f09aae4: 8c845200 */ lw $a0,%lo(var80095200)($a0)
|
|
/* f09aae8: 01e02825 */ or $a1,$t7,$zero
|
|
/* f09aaec: 260601d0 */ addiu $a2,$s0,0x1d0
|
|
/* f09aaf0: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f09aaf4: 0c004241 */ jal sndStart
|
|
/* f09aaf8: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f09aafc: 00402025 */ or $a0,$v0,$zero
|
|
.L0f09ab00:
|
|
/* f09ab00: 920b0000 */ lbu $t3,0x0($s0)
|
|
.L0f09ab04:
|
|
/* f09ab04: 3c0a800a */ lui $t2,%hi(g_Vars+0x8)
|
|
/* f09ab08: 8d4a9fc8 */ lw $t2,%lo(g_Vars+0x8)($t2)
|
|
/* f09ab0c: 24010006 */ addiu $at,$zero,0x6
|
|
/* f09ab10: 1561001c */ bne $t3,$at,.L0f09ab84
|
|
/* f09ab14: ae0a01d8 */ sw $t2,0x1d8($s0)
|
|
/* f09ab18: 5080001b */ beqzl $a0,.L0f09ab88
|
|
/* f09ab1c: 00002025 */ or $a0,$zero,$zero
|
|
/* f09ab20: c612023c */ lwc1 $f18,0x23c($s0)
|
|
/* f09ab24: 3c013f80 */ lui $at,0x3f80
|
|
/* f09ab28: 44816000 */ mtc1 $at,$f12
|
|
/* f09ab2c: 4600940d */ trunc.w.s $f16,$f18
|
|
/* f09ab30: 3c014040 */ lui $at,0x4040
|
|
/* f09ab34: 44814000 */ mtc1 $at,$f8
|
|
/* f09ab38: 3c017f1b */ lui $at,%hi(var7f1ac320)
|
|
/* f09ab3c: 44028000 */ mfc1 $v0,$f16
|
|
/* f09ab40: 00000000 */ nop
|
|
/* f09ab44: 44822000 */ mtc1 $v0,$f4
|
|
/* f09ab48: 00000000 */ nop
|
|
/* f09ab4c: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f09ab50: 46083083 */ div.s $f2,$f6,$f8
|
|
/* f09ab54: 4602603c */ c.lt.s $f12,$f2
|
|
/* f09ab58: 00000000 */ nop
|
|
/* f09ab5c: 45000002 */ bc1f .L0f09ab68
|
|
/* f09ab60: 00000000 */ nop
|
|
/* f09ab64: 46006086 */ mov.s $f2,$f12
|
|
.L0f09ab68:
|
|
/* f09ab68: c42ac320 */ lwc1 $f10,%lo(var7f1ac320)($at)
|
|
/* f09ab6c: 24050010 */ addiu $a1,$zero,0x10
|
|
/* f09ab70: 460a1482 */ mul.s $f18,$f2,$f10
|
|
/* f09ab74: 46126401 */ sub.s $f16,$f12,$f18
|
|
/* f09ab78: e7b00034 */ swc1 $f16,0x34($sp)
|
|
/* f09ab7c: 0c00cf94 */ jal audioPostEvent
|
|
/* f09ab80: 8fa60034 */ lw $a2,0x34($sp)
|
|
.L0f09ab84:
|
|
/* f09ab84: 00002025 */ or $a0,$zero,$zero
|
|
.L0f09ab88:
|
|
/* f09ab88: 0c01210c */ jal osSetThreadPri
|
|
/* f09ab8c: 8fa50040 */ lw $a1,0x40($sp)
|
|
.L0f09ab90:
|
|
/* f09ab90: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.L0f09ab94:
|
|
/* f09ab94: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f09ab98: 27bd0058 */ addiu $sp,$sp,0x58
|
|
/* f09ab9c: 03e00008 */ jr $ra
|
|
/* f09aba0: 00000000 */ nop
|
|
);
|
|
#else
|
|
GLOBAL_ASM(
|
|
glabel bgun0f09a6f8
|
|
.late_rodata
|
|
glabel var7f1ac320
|
|
.word 0x3ecccccd
|
|
.text
|
|
/* f098734: 27bdffb0 */ addiu $sp,$sp,-80
|
|
/* f098738: afa40050 */ sw $a0,0x50($sp)
|
|
/* f09873c: afa50054 */ sw $a1,0x54($sp)
|
|
/* f098740: afbf002c */ sw $ra,0x2c($sp)
|
|
/* f098744: afb00028 */ sw $s0,0x28($sp)
|
|
/* f098748: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f09874c: 3c058007 */ lui $a1,0x8007
|
|
/* f098750: 3c047f1a */ lui $a0,0x7f1a
|
|
/* f098754: 00c08025 */ or $s0,$a2,$zero
|
|
/* f098758: afae004c */ sw $t6,0x4c($sp)
|
|
/* f09875c: 24845be0 */ addiu $a0,$a0,0x5be0
|
|
/* f098760: 24a527e0 */ addiu $a1,$a1,0x27e0
|
|
/* f098764: 0c00381c */ jal mainOverrideVariable
|
|
/* f098768: afa7005c */ sw $a3,0x5c($sp)
|
|
/* f09876c: 3c047f1a */ lui $a0,0x7f1a
|
|
/* f098770: 3c058007 */ lui $a1,0x8007
|
|
/* f098774: 24a527e4 */ addiu $a1,$a1,0x27e4
|
|
/* f098778: 0c00381c */ jal mainOverrideVariable
|
|
/* f09877c: 24845be8 */ addiu $a0,$a0,0x5be8
|
|
/* f098780: 8fa7005c */ lw $a3,0x5c($sp)
|
|
/* f098784: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f098788: a2060004 */ sb $a2,0x4($s0)
|
|
/* f09878c: 8cef0000 */ lw $t7,0x0($a3)
|
|
/* f098790: 24010100 */ addiu $at,$zero,0x100
|
|
/* f098794: 31f8ff00 */ andi $t8,$t7,0xff00
|
|
/* f098798: 57010023 */ bnel $t8,$at,.NB0f098828
|
|
/* f09879c: 920c0000 */ lbu $t4,0x0($s0)
|
|
/* f0987a0: c4e00040 */ lwc1 $f0,0x40($a3)
|
|
/* f0987a4: c4e40044 */ lwc1 $f4,0x44($a3)
|
|
/* f0987a8: c6080660 */ lwc1 $f8,0x660($s0)
|
|
/* f0987ac: 3c014270 */ lui $at,0x4270
|
|
/* f0987b0: 46002181 */ sub.s $f6,$f4,$f0
|
|
/* f0987b4: 44817000 */ mtc1 $at,$f14
|
|
/* f0987b8: 3c01800a */ lui $at,0x800a
|
|
/* f0987bc: c432e704 */ lwc1 $f18,-0x18fc($at)
|
|
/* f0987c0: 46083282 */ mul.s $f10,$f6,$f8
|
|
/* f0987c4: c60805fc */ lwc1 $f8,0x5fc($s0)
|
|
/* f0987c8: 460e9103 */ div.s $f4,$f18,$f14
|
|
/* f0987cc: 460a0300 */ add.s $f12,$f0,$f10
|
|
/* f0987d0: 460e6403 */ div.s $f16,$f12,$f14
|
|
/* f0987d4: 46048182 */ mul.s $f6,$f16,$f4
|
|
/* f0987d8: 46083080 */ add.s $f2,$f6,$f8
|
|
/* f0987dc: 4600128d */ trunc.w.s $f10,$f2
|
|
/* f0987e0: 44025000 */ mfc1 $v0,$f10
|
|
/* f0987e4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0987e8: 44829000 */ mtc1 $v0,$f18
|
|
/* f0987ec: ae0205f8 */ sw $v0,0x5f8($s0)
|
|
/* f0987f0: 46809420 */ cvt.s.w $f16,$f18
|
|
/* f0987f4: 46101101 */ sub.s $f4,$f2,$f16
|
|
/* f0987f8: 1c400010 */ bgtz $v0,.NB0f09883c
|
|
/* f0987fc: e60405fc */ swc1 $f4,0x5fc($s0)
|
|
/* f098800: 8e08060c */ lw $t0,0x60c($s0)
|
|
/* f098804: 244b0001 */ addiu $t3,$v0,0x1
|
|
/* f098808: 31090010 */ andi $t1,$t0,0x10
|
|
/* f09880c: 15200003 */ bnez $t1,.NB0f09881c
|
|
/* f098810: 00000000 */ sll $zero,$zero,0x0
|
|
/* f098814: 10000009 */ beqz $zero,.NB0f09883c
|
|
/* f098818: ae0b05f8 */ sw $t3,0x5f8($s0)
|
|
.NB0f09881c:
|
|
/* f09881c: 10000007 */ beqz $zero,.NB0f09883c
|
|
/* f098820: a2000004 */ sb $zero,0x4($s0)
|
|
/* f098824: 920c0000 */ lbu $t4,0x0($s0)
|
|
.NB0f098828:
|
|
/* f098828: 2401001d */ addiu $at,$zero,0x1d
|
|
/* f09882c: ae0605f8 */ sw $a2,0x5f8($s0)
|
|
/* f098830: 55810003 */ bnel $t4,$at,.NB0f098840
|
|
/* f098834: 8e0d0558 */ lw $t5,0x558($s0)
|
|
/* f098838: afa0004c */ sw $zero,0x4c($sp)
|
|
.NB0f09883c:
|
|
/* f09883c: 8e0d0558 */ lw $t5,0x558($s0)
|
|
.NB0f098840:
|
|
/* f098840: 8e0e05f8 */ lw $t6,0x5f8($s0)
|
|
/* f098844: 01ae7821 */ addu $t7,$t5,$t6
|
|
/* f098848: ae0f0558 */ sw $t7,0x558($s0)
|
|
/* f09884c: 8cf80010 */ lw $t8,0x10($a3)
|
|
/* f098850: 33192000 */ andi $t9,$t8,0x2000
|
|
/* f098854: 53200004 */ beqzl $t9,.NB0f098868
|
|
/* f098858: a2060005 */ sb $a2,0x5($s0)
|
|
/* f09885c: 10000002 */ beqz $zero,.NB0f098868
|
|
/* f098860: a2000005 */ sb $zero,0x5($s0)
|
|
/* f098864: a2060005 */ sb $a2,0x5($s0)
|
|
.NB0f098868:
|
|
/* f098868: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f09886c: 0fc28021 */ jal bgunStartSlide
|
|
/* f098870: afa7005c */ sw $a3,0x5c($sp)
|
|
/* f098874: 82020004 */ lb $v0,0x4($s0)
|
|
/* f098878: 44803000 */ mtc1 $zero,$f6
|
|
/* f09887c: 8fa7005c */ lw $a3,0x5c($sp)
|
|
/* f098880: 10400036 */ beqz $v0,.NB0f09895c
|
|
/* f098884: e6060250 */ swc1 $f6,0x250($s0)
|
|
/* f098888: 8e09060c */ lw $t1,0x60c($s0)
|
|
/* f09888c: 8e080614 */ lw $t0,0x614($s0)
|
|
/* f098890: 352a0020 */ ori $t2,$t1,0x20
|
|
/* f098894: ae0a060c */ sw $t2,0x60c($s0)
|
|
/* f098898: 354c0010 */ ori $t4,$t2,0x10
|
|
/* f09889c: ae0c060c */ sw $t4,0x60c($s0)
|
|
/* f0988a0: ae0806a8 */ sw $t0,0x6a8($s0)
|
|
/* f0988a4: 8fad0050 */ lw $t5,0x50($sp)
|
|
/* f0988a8: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0988ac: 8da50000 */ lw $a1,0x0($t5)
|
|
/* f0988b0: 0fc256cc */ jal bgunRumble
|
|
/* f0988b4: afa7005c */ sw $a3,0x5c($sp)
|
|
/* f0988b8: 8fae004c */ lw $t6,0x4c($sp)
|
|
/* f0988bc: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f0988c0: 8fa7005c */ lw $a3,0x5c($sp)
|
|
/* f0988c4: 11c00016 */ beqz $t6,.NB0f098920
|
|
/* f0988c8: 24010100 */ addiu $at,$zero,0x100
|
|
/* f0988cc: 80e30007 */ lb $v1,0x7($a3)
|
|
/* f0988d0: 04600013 */ bltz $v1,.NB0f098920
|
|
/* f0988d4: 00037880 */ sll $t7,$v1,0x2
|
|
/* f0988d8: 020f1021 */ addu $v0,$s0,$t7
|
|
/* f0988dc: 8c580220 */ lw $t8,0x220($v0)
|
|
/* f0988e0: 8e1905f8 */ lw $t9,0x5f8($s0)
|
|
/* f0988e4: 03194023 */ subu $t0,$t8,$t9
|
|
/* f0988e8: ac480220 */ sw $t0,0x220($v0)
|
|
/* f0988ec: 80e90007 */ lb $t1,0x7($a3)
|
|
/* f0988f0: 00095080 */ sll $t2,$t1,0x2
|
|
/* f0988f4: 020a5821 */ addu $t3,$s0,$t2
|
|
/* f0988f8: 8d640220 */ lw $a0,0x220($t3)
|
|
/* f0988fc: 04830009 */ bgezl $a0,.NB0f098924
|
|
/* f098900: 8ce20000 */ lw $v0,0x0($a3)
|
|
/* f098904: 8e0c05f8 */ lw $t4,0x5f8($s0)
|
|
/* f098908: 01846821 */ addu $t5,$t4,$a0
|
|
/* f09890c: ae0d05f8 */ sw $t5,0x5f8($s0)
|
|
/* f098910: 80ee0007 */ lb $t6,0x7($a3)
|
|
/* f098914: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f098918: 020fc021 */ addu $t8,$s0,$t7
|
|
/* f09891c: af000220 */ sw $zero,0x220($t8)
|
|
.NB0f098920:
|
|
/* f098920: 8ce20000 */ lw $v0,0x0($a3)
|
|
.NB0f098924:
|
|
/* f098924: 3059ff00 */ andi $t9,$v0,0xff00
|
|
/* f098928: 53200008 */ beqzl $t9,.NB0f09894c
|
|
/* f09892c: ae0606ac */ sw $a2,0x6ac($s0)
|
|
/* f098930: 13210005 */ beq $t9,$at,.NB0f098948
|
|
/* f098934: 24010200 */ addiu $at,$zero,0x200
|
|
/* f098938: 13210006 */ beq $t9,$at,.NB0f098954
|
|
/* f09893c: 24080002 */ addiu $t0,$zero,0x2
|
|
/* f098940: 10000006 */ beqz $zero,.NB0f09895c
|
|
/* f098944: 82020004 */ lb $v0,0x4($s0)
|
|
.NB0f098948:
|
|
/* f098948: ae0606ac */ sw $a2,0x6ac($s0)
|
|
.NB0f09894c:
|
|
/* f09894c: 10000003 */ beqz $zero,.NB0f09895c
|
|
/* f098950: 82020004 */ lb $v0,0x4($s0)
|
|
.NB0f098954:
|
|
/* f098954: ae0806ac */ sw $t0,0x6ac($s0)
|
|
/* f098958: 82020004 */ lb $v0,0x4($s0)
|
|
.NB0f09895c:
|
|
/* f09895c: 1040008f */ beqz $v0,.NB0f098b9c
|
|
/* f098960: 02002025 */ or $a0,$s0,$zero
|
|
/* f098964: 0fc2bee2 */ jal gsetGetFireslotDuration
|
|
/* f098968: afa0003c */ sw $zero,0x3c($sp)
|
|
/* f09896c: 1840001e */ blez $v0,.NB0f0989e8
|
|
/* f098970: 8fa3003c */ lw $v1,0x3c($sp)
|
|
/* f098974: 8faa0054 */ lw $t2,0x54($sp)
|
|
/* f098978: 3c09800a */ lui $t1,0x800a
|
|
/* f09897c: 8d29e944 */ lw $t1,-0x16bc($t1)
|
|
/* f098980: 000a5900 */ sll $t3,$t2,0x4
|
|
/* f098984: 016a5823 */ subu $t3,$t3,$t2
|
|
/* f098988: 000b5880 */ sll $t3,$t3,0x2
|
|
/* f09898c: 016a5821 */ addu $t3,$t3,$t2
|
|
/* f098990: 000b58c0 */ sll $t3,$t3,0x3
|
|
/* f098994: 016a5821 */ addu $t3,$t3,$t2
|
|
/* f098998: 000b5880 */ sll $t3,$t3,0x2
|
|
/* f09899c: 000b6023 */ negu $t4,$t3
|
|
/* f0989a0: 3c02800a */ lui $v0,0x800a
|
|
/* f0989a4: 012c6821 */ addu $t5,$t1,$t4
|
|
/* f0989a8: 8dae0fb4 */ lw $t6,0xfb4($t5)
|
|
/* f0989ac: 8c42e6c8 */ lw $v0,-0x1938($v0)
|
|
/* f0989b0: 104e0011 */ beq $v0,$t6,.NB0f0989f8
|
|
/* f0989b4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0989b8: 8e0f01d4 */ lw $t7,0x1d4($s0)
|
|
/* f0989bc: 01e2082a */ slt $at,$t7,$v0
|
|
/* f0989c0: 1020000d */ beqz $at,.NB0f0989f8
|
|
/* f0989c4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0989c8: 0fc2bee2 */ jal gsetGetFireslotDuration
|
|
/* f0989cc: 02002025 */ or $a0,$s0,$zero
|
|
/* f0989d0: 3c18800a */ lui $t8,0x800a
|
|
/* f0989d4: 8f18e6c8 */ lw $t8,-0x1938($t8)
|
|
/* f0989d8: 24030001 */ addiu $v1,$zero,0x1
|
|
/* f0989dc: 0058c821 */ addu $t9,$v0,$t8
|
|
/* f0989e0: 10000005 */ beqz $zero,.NB0f0989f8
|
|
/* f0989e4: ae1901d4 */ sw $t9,0x1d4($s0)
|
|
.NB0f0989e8:
|
|
/* f0989e8: 82080004 */ lb $t0,0x4($s0)
|
|
/* f0989ec: 11000002 */ beqz $t0,.NB0f0989f8
|
|
/* f0989f0: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0989f4: 24030001 */ addiu $v1,$zero,0x1
|
|
.NB0f0989f8:
|
|
/* f0989f8: 50600069 */ beqzl $v1,.NB0f098ba0
|
|
/* f0989fc: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f098a00: 8e0401cc */ lw $a0,0x1cc($s0)
|
|
/* f098a04: 50800008 */ beqzl $a0,.NB0f098a28
|
|
/* f098a08: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
/* f098a0c: 0c00d360 */ jal sndGetState
|
|
/* f098a10: 00000000 */ sll $zero,$zero,0x0
|
|
/* f098a14: 50400004 */ beqzl $v0,.NB0f098a28
|
|
/* f098a18: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
/* f098a1c: 0c00d428 */ jal audioStop
|
|
/* f098a20: 8e0401cc */ lw $a0,0x1cc($s0)
|
|
/* f098a24: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
.NB0f098a28:
|
|
/* f098a28: 10800007 */ beqz $a0,.NB0f098a48
|
|
/* f098a2c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f098a30: 0c00d360 */ jal sndGetState
|
|
/* f098a34: 00000000 */ sll $zero,$zero,0x0
|
|
/* f098a38: 10400003 */ beqz $v0,.NB0f098a48
|
|
/* f098a3c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f098a40: 0c00d428 */ jal audioStop
|
|
/* f098a44: 8e0401d0 */ lw $a0,0x1d0($s0)
|
|
.NB0f098a48:
|
|
/* f098a48: 0fc2bef2 */ jal gsetGetSingleShootSound
|
|
/* f098a4c: 02002025 */ or $a0,$s0,$zero
|
|
/* f098a50: 50400053 */ beqzl $v0,.NB0f098ba0
|
|
/* f098a54: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f098a58: 8e0a01cc */ lw $t2,0x1cc($s0)
|
|
/* f098a5c: 00002025 */ or $a0,$zero,$zero
|
|
/* f098a60: 55400017 */ bnezl $t2,.NB0f098ac0
|
|
/* f098a64: 8e0e01d0 */ lw $t6,0x1d0($s0)
|
|
/* f098a68: 0fc2bef2 */ jal gsetGetSingleShootSound
|
|
/* f098a6c: 02002025 */ or $a0,$s0,$zero
|
|
/* f098a70: 3c01bf80 */ lui $at,0xbf80
|
|
/* f098a74: 44814000 */ mtc1 $at,$f8
|
|
/* f098a78: 00022c00 */ sll $a1,$v0,0x10
|
|
/* f098a7c: 00055c03 */ sra $t3,$a1,0x10
|
|
/* f098a80: 3c04800a */ lui $a0,0x800a
|
|
/* f098a84: 2409ffff */ addiu $t1,$zero,-1
|
|
/* f098a88: 240cffff */ addiu $t4,$zero,-1
|
|
/* f098a8c: 240dffff */ addiu $t5,$zero,-1
|
|
/* f098a90: afad001c */ sw $t5,0x1c($sp)
|
|
/* f098a94: afac0018 */ sw $t4,0x18($sp)
|
|
/* f098a98: afa90010 */ sw $t1,0x10($sp)
|
|
/* f098a9c: 8c848180 */ lw $a0,-0x7e80($a0)
|
|
/* f098aa0: 01602825 */ or $a1,$t3,$zero
|
|
/* f098aa4: 260601cc */ addiu $a2,$s0,0x1cc
|
|
/* f098aa8: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f098aac: 0c004338 */ jal sndStart
|
|
/* f098ab0: e7a80014 */ swc1 $f8,0x14($sp)
|
|
/* f098ab4: 10000018 */ beqz $zero,.NB0f098b18
|
|
/* f098ab8: 00402025 */ or $a0,$v0,$zero
|
|
/* f098abc: 8e0e01d0 */ lw $t6,0x1d0($s0)
|
|
.NB0f098ac0:
|
|
/* f098ac0: 55c00016 */ bnezl $t6,.NB0f098b1c
|
|
/* f098ac4: 920b0000 */ lbu $t3,0x0($s0)
|
|
/* f098ac8: 0fc2bef2 */ jal gsetGetSingleShootSound
|
|
/* f098acc: 02002025 */ or $a0,$s0,$zero
|
|
/* f098ad0: 3c01bf80 */ lui $at,0xbf80
|
|
/* f098ad4: 44815000 */ mtc1 $at,$f10
|
|
/* f098ad8: 00022c00 */ sll $a1,$v0,0x10
|
|
/* f098adc: 00057c03 */ sra $t7,$a1,0x10
|
|
/* f098ae0: 3c04800a */ lui $a0,0x800a
|
|
/* f098ae4: 2418ffff */ addiu $t8,$zero,-1
|
|
/* f098ae8: 2419ffff */ addiu $t9,$zero,-1
|
|
/* f098aec: 2408ffff */ addiu $t0,$zero,-1
|
|
/* f098af0: afa8001c */ sw $t0,0x1c($sp)
|
|
/* f098af4: afb90018 */ sw $t9,0x18($sp)
|
|
/* f098af8: afb80010 */ sw $t8,0x10($sp)
|
|
/* f098afc: 8c848180 */ lw $a0,-0x7e80($a0)
|
|
/* f098b00: 01e02825 */ or $a1,$t7,$zero
|
|
/* f098b04: 260601d0 */ addiu $a2,$s0,0x1d0
|
|
/* f098b08: 2407ffff */ addiu $a3,$zero,-1
|
|
/* f098b0c: 0c004338 */ jal sndStart
|
|
/* f098b10: e7aa0014 */ swc1 $f10,0x14($sp)
|
|
/* f098b14: 00402025 */ or $a0,$v0,$zero
|
|
.NB0f098b18:
|
|
/* f098b18: 920b0000 */ lbu $t3,0x0($s0)
|
|
.NB0f098b1c:
|
|
/* f098b1c: 3c0a800a */ lui $t2,0x800a
|
|
/* f098b20: 8d4ae6c8 */ lw $t2,-0x1938($t2)
|
|
/* f098b24: 24010006 */ addiu $at,$zero,0x6
|
|
/* f098b28: 1561001c */ bne $t3,$at,.NB0f098b9c
|
|
/* f098b2c: ae0a01d8 */ sw $t2,0x1d8($s0)
|
|
/* f098b30: 5080001b */ beqzl $a0,.NB0f098ba0
|
|
/* f098b34: 8fbf002c */ lw $ra,0x2c($sp)
|
|
/* f098b38: c612023c */ lwc1 $f18,0x23c($s0)
|
|
/* f098b3c: 3c013f80 */ lui $at,0x3f80
|
|
/* f098b40: 44816000 */ mtc1 $at,$f12
|
|
/* f098b44: 4600940d */ trunc.w.s $f16,$f18
|
|
/* f098b48: 3c014040 */ lui $at,0x4040
|
|
/* f098b4c: 44814000 */ mtc1 $at,$f8
|
|
/* f098b50: 3c017f1a */ lui $at,0x7f1a
|
|
/* f098b54: 44028000 */ mfc1 $v0,$f16
|
|
/* f098b58: 00000000 */ sll $zero,$zero,0x0
|
|
/* f098b5c: 44822000 */ mtc1 $v0,$f4
|
|
/* f098b60: 00000000 */ sll $zero,$zero,0x0
|
|
/* f098b64: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f098b68: 46083083 */ div.s $f2,$f6,$f8
|
|
/* f098b6c: 4602603c */ c.lt.s $f12,$f2
|
|
/* f098b70: 00000000 */ sll $zero,$zero,0x0
|
|
/* f098b74: 45000002 */ bc1f .NB0f098b80
|
|
/* f098b78: 00000000 */ sll $zero,$zero,0x0
|
|
/* f098b7c: 46006086 */ mov.s $f2,$f12
|
|
.NB0f098b80:
|
|
/* f098b80: c42a666c */ lwc1 $f10,0x666c($at)
|
|
/* f098b84: 24050010 */ addiu $a1,$zero,0x10
|
|
/* f098b88: 460a1482 */ mul.s $f18,$f2,$f10
|
|
/* f098b8c: 46126401 */ sub.s $f16,$f12,$f18
|
|
/* f098b90: e7b00030 */ swc1 $f16,0x30($sp)
|
|
/* f098b94: 0c00d492 */ jal audioPostEvent
|
|
/* f098b98: 8fa60030 */ lw $a2,0x30($sp)
|
|
.NB0f098b9c:
|
|
/* f098b9c: 8fbf002c */ lw $ra,0x2c($sp)
|
|
.NB0f098ba0:
|
|
/* f098ba0: 8fb00028 */ lw $s0,0x28($sp)
|
|
/* f098ba4: 27bd0050 */ addiu $sp,$sp,0x50
|
|
/* f098ba8: 03e00008 */ jr $ra
|
|
/* f098bac: 00000000 */ sll $zero,$zero,0x0
|
|
);
|
|
#endif
|
|
|
|
u32 var80070120 = 2;
|
|
u32 var80070124 = 4;
|
|
|
|
const char var7f1ab890[] = "rontime";
|
|
const char var7f1ab898[] = "rofftime";
|
|
|
|
//void bgun0f09a6f8(struct handweaponinfo *info, s32 handnum, struct hand *hand, struct weaponfunc *func)
|
|
//{
|
|
// bool usesammo = true;
|
|
//
|
|
// static u32 rontime = 2;
|
|
// static u32 rofftime = 4;
|
|
//
|
|
// mainOverrideVariable("rontime", &rontime);
|
|
// mainOverrideVariable("rofftime", &rofftime);
|
|
//
|
|
// hand->firing = true;
|
|
//
|
|
// if ((func->type & 0xff00) == 0x100) {
|
|
// struct weaponfunc_shootauto *autofunc = (struct weaponfunc_shootauto *) func;
|
|
// f32 tmp;
|
|
// f32 tmp2;
|
|
//
|
|
// tmp = autofunc->initialfirerate + (autofunc->maxfirerate - autofunc->initialfirerate) * hand->gs_float1;
|
|
// tmp2 = tmp / 60.0f * (g_Vars.lvupdate240f / 60.0f) + hand->shotremainder;
|
|
//
|
|
// hand->shotstotake = tmp2;
|
|
// hand->shotremainder = tmp2 - hand->shotstotake;
|
|
//
|
|
// if (hand->shotstotake <= 0) {
|
|
// if ((hand->stateflags & HANDSTATEFLAG_00000010) == 0) {
|
|
// hand->shotstotake++;
|
|
// } else {
|
|
// hand->firing = false;
|
|
// }
|
|
// }
|
|
// } else {
|
|
// hand->shotstotake = 1;
|
|
//
|
|
// if (hand->gset.weaponnum == WEAPON_LASER) {
|
|
// usesammo = false;
|
|
// }
|
|
// }
|
|
//
|
|
// hand->burstbullets += hand->shotstotake;
|
|
//
|
|
// if (func->flags & FUNCFLAG_NOMUZZLEFLASH) {
|
|
// hand->flashon = false;
|
|
// } else {
|
|
// hand->flashon = true;
|
|
// }
|
|
//
|
|
// bgunStartSlide(handnum);
|
|
//
|
|
// hand->loadslide = 0;
|
|
//
|
|
// if (hand->firing) {
|
|
// hand->statevar1 = hand->stateframes;
|
|
// hand->stateflags |= HANDSTATEFLAG_00000020;
|
|
// hand->stateflags |= HANDSTATEFLAG_00000010;
|
|
//
|
|
// bgunRumble(handnum, info->weaponnum);
|
|
//
|
|
// if (usesammo && func->ammoindex >= 0) {
|
|
// hand->loadedammo[func->ammoindex] -= hand->shotstotake;
|
|
//
|
|
// if (hand->loadedammo[func->ammoindex] < 0) {
|
|
// // Note: loadedammo is negative
|
|
// hand->shotstotake += hand->loadedammo[func->ammoindex];
|
|
// hand->loadedammo[func->ammoindex] = 0;
|
|
// }
|
|
// }
|
|
//
|
|
// switch (func->type & 0xff00) {
|
|
// case 0:
|
|
// case 0x100:
|
|
// hand->attacktype = HANDATTACKTYPE_SHOOT;
|
|
// break;
|
|
// case 0x200:
|
|
// hand->attacktype = HANDATTACKTYPE_SHOOTPROJECTILE;
|
|
// break;
|
|
// }
|
|
// }
|
|
//
|
|
// if (hand->firing) {
|
|
// bool playsound = false;
|
|
//
|
|
// if (gsetGetFireslotDuration(&hand->gset) > 0) {
|
|
// if (g_Vars.lvframe60 != g_Vars.currentplayer->hands[1 - handnum].lastshootframe60
|
|
// && g_Vars.lvframe60 > hand->allowshootframe) {
|
|
// hand->allowshootframe = g_Vars.lvframe60 + gsetGetFireslotDuration(&hand->gset);
|
|
// playsound = true;
|
|
// }
|
|
// } else {
|
|
// if (hand->firing) {
|
|
// playsound = true;
|
|
// }
|
|
// }
|
|
//
|
|
// if (playsound) {
|
|
// struct sndstate *handle;
|
|
//
|
|
//#if VERSION >= VERSION_NTSC_1_0
|
|
// OSPri prevpri = osGetThreadPri(0);
|
|
// osSetThreadPri(0, osGetThreadPri(&g_AudioManager.thread) + 1);
|
|
//#endif
|
|
//
|
|
// if (hand->audiohandle2 && sndGetState(hand->audiohandle2) != AL_STOPPED) {
|
|
// audioStop(hand->audiohandle2);
|
|
// }
|
|
//
|
|
// if (hand->audiohandle3 && sndGetState(hand->audiohandle3) != AL_STOPPED) {
|
|
// audioStop(hand->audiohandle3);
|
|
// }
|
|
//
|
|
// if (gsetGetSingleShootSound(&hand->gset)) {
|
|
// handle = NULL;
|
|
//
|
|
// if (hand->audiohandle2 == NULL) {
|
|
// handle = sndStart(var80095200, gsetGetSingleShootSound(&hand->gset), &hand->audiohandle2, -1, -1, -1, -1, -1);
|
|
// } else if (hand->audiohandle3 == NULL) {
|
|
// handle = sndStart(var80095200, gsetGetSingleShootSound(&hand->gset), &hand->audiohandle3, -1, -1, -1, -1, -1);
|
|
// }
|
|
// }
|
|
//
|
|
// hand->lastshootframe60 = g_Vars.lvframe60;
|
|
//
|
|
// /**
|
|
// * @dangerous: handle may be uninitialised. This is unlikely though
|
|
// * because the branch above (which clears handle) should always be
|
|
// * taken for the Mauler.
|
|
// */
|
|
// if (hand->gset.weaponnum == WEAPON_MAULER && handle) {
|
|
// f32 frac = (s32)hand->matmot1 / 3.0f;
|
|
// f32 tmp;
|
|
//
|
|
// if (frac > 1.0f) {
|
|
// frac = 1.0f;
|
|
// }
|
|
//
|
|
// tmp = 1.0f - frac * 0.4f;
|
|
//
|
|
// audioPostEvent(handle, 16, *(s32 *)&tmp);
|
|
// }
|
|
//
|
|
//#if VERSION >= VERSION_NTSC_1_0
|
|
// osSetThreadPri(0, prevpri);
|
|
//#endif
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
bool bgun0f09aba4(struct hand *hand, struct handweaponinfo *info, s32 handnum, struct weaponfunc_shoot *func)
|
|
{
|
|
s32 unk24;
|
|
s32 unk25;
|
|
s32 sum;
|
|
s32 unk26;
|
|
s32 unk27;
|
|
s32 unk18;
|
|
s32 frames;
|
|
struct weapon *weapondef;
|
|
f32 mult1;
|
|
f32 recoil;
|
|
f32 unk2c;
|
|
f32 mult2;
|
|
u32 stack;
|
|
|
|
#if PAL
|
|
unk24 = func->unk24;
|
|
unk25 = func->unk25;
|
|
unk26 = func->unk26;
|
|
unk27 = func->unk27;
|
|
unk18 = func->unk18;
|
|
weapondef = info->definition;
|
|
|
|
if (unk24 >= 4) {
|
|
unk24 = TICKS(unk24);
|
|
}
|
|
|
|
if (unk25 >= 4) {
|
|
unk25 = TICKS(unk25);
|
|
}
|
|
|
|
if (unk26 >= 4) {
|
|
unk26 = TICKS(unk26);
|
|
}
|
|
|
|
if (unk27 >= 4) {
|
|
unk27 = TICKS(unk27);
|
|
}
|
|
|
|
if (unk18 >= 4) {
|
|
unk18 = TICKS(unk18);
|
|
}
|
|
|
|
sum = unk24 + unk25;
|
|
#elif VERSION >= VERSION_JPN_FINAL
|
|
unk24 = func->unk24;
|
|
unk25 = func->unk25;
|
|
unk26 = func->unk26;
|
|
unk27 = func->unk27;
|
|
unk18 = func->unk18;
|
|
weapondef = info->definition;
|
|
sum = unk24 + unk25;
|
|
#else
|
|
unk24 = func->unk24;
|
|
unk25 = func->unk25;
|
|
sum = unk24 + unk25;
|
|
unk26 = func->unk26;
|
|
unk27 = func->unk27;
|
|
unk18 = func->unk18;
|
|
weapondef = info->definition;
|
|
#endif
|
|
|
|
frames = hand->stateframes - hand->statevar1;
|
|
|
|
if (sum < 1) {
|
|
sum = 0;
|
|
} else {
|
|
if (hand->triggerreleased
|
|
&& hand->triggeron
|
|
&& frames >= unk26
|
|
&& unk26 > 0
|
|
&& unk27 >= 0
|
|
&& (hand->stateflags & HANDSTATEFLAG_00000040) == 0
|
|
&& frames + unk27 < sum) {
|
|
hand->stateflags |= HANDSTATEFLAG_00000040;
|
|
hand->statevar1 = frames;
|
|
|
|
hand->rotxstart = hand->rotxoffset;
|
|
hand->rotxend = 0;
|
|
|
|
hand->posend.x = 0;
|
|
hand->posend.y = 0;
|
|
hand->posend.z = 0;
|
|
|
|
hand->posstart.x = hand->posoffset.x;
|
|
hand->posstart.y = hand->posoffset.y;
|
|
hand->posstart.z = hand->posoffset.z;
|
|
}
|
|
|
|
if (hand->stateflags & HANDSTATEFLAG_00000040) {
|
|
if (unk27 > frames - hand->statevar1) {
|
|
mult1 = cosf((f32)(unk27 - frames + hand->statevar1) * 1.5707963705063f / (f32)unk27) * 0.5f + 0.5f;
|
|
|
|
hand->rotxoffset = model0001afe8(hand->rotxstart, hand->rotxend, mult1);
|
|
hand->useposrot = true;
|
|
|
|
hand->posoffset.x = (hand->posend.x - hand->posstart.x) * mult1 + hand->posstart.x;
|
|
hand->posoffset.y = (hand->posend.y - hand->posstart.y) * mult1 + hand->posstart.y;
|
|
hand->posoffset.z = (hand->posend.z - hand->posstart.z) * mult1 + hand->posstart.z;
|
|
|
|
mtx4LoadXRotation(hand->rotxoffset, &hand->posrotmtx);
|
|
mtx4SetTranslation(&hand->posoffset, &hand->posrotmtx);
|
|
} else {
|
|
mtx4LoadIdentity(&hand->posrotmtx);
|
|
hand->useposrot = false;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
if (frames < sum && (hand->stateflags & HANDSTATEFLAG_00000040) == 0) {
|
|
recoil = func->recoil;
|
|
unk2c = func->unk2c;
|
|
|
|
if ((hand->stateflags & HANDSTATEFLAG_00000080) == 0) {
|
|
hand->stateflags |= HANDSTATEFLAG_00000080;
|
|
hand->rotxstart = hand->rotxoffset;
|
|
hand->posstart.x = hand->posoffset.x;
|
|
hand->posstart.y = hand->posoffset.y;
|
|
hand->posstart.z = hand->posoffset.z;
|
|
}
|
|
|
|
hand->rotxend = M_BADTAU - (unk2c * M_BADTAU) / 360.0f;
|
|
|
|
hand->posend.x = (func0f0b131c(handnum) - hand->aimpos.x) * recoil / 1000.0f;
|
|
hand->posend.y = 0;
|
|
hand->posend.z = (weapondef->frontback - hand->aimpos.z) * recoil / 1000.0f;
|
|
|
|
if (frames < unk24) {
|
|
mult2 = sinf(frames * 1.5707963705063f / (f32)unk24);
|
|
} else {
|
|
mult2 = cosf((f32)(frames - unk24) * M_PI / (f32)unk25) * 0.5f + 0.5f;
|
|
}
|
|
|
|
hand->rotxoffset = model0001afe8(hand->rotxstart, hand->rotxend, mult2);
|
|
hand->useposrot = true;
|
|
|
|
hand->posoffset.x = (hand->posend.x - hand->posstart.x) * mult2 + hand->posstart.x;
|
|
hand->posoffset.y = (hand->posend.y - hand->posstart.y) * mult2 + hand->posstart.y;
|
|
hand->posoffset.z = (hand->posend.z - hand->posstart.z) * mult2 + hand->posstart.z;
|
|
|
|
mtx4LoadXRotation(hand->rotxoffset, &hand->posrotmtx);
|
|
mtx4SetTranslation(&hand->posoffset, &hand->posrotmtx);
|
|
}
|
|
}
|
|
|
|
if (sum <= frames) {
|
|
if (unk27 >= 0 && hand->triggerreleased && hand->triggeron) {
|
|
return true;
|
|
} else if (sum + unk18 <= frames) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool bgunTickIncAttackingShoot(struct handweaponinfo *info, s32 handnum, struct hand *hand)
|
|
{
|
|
static u32 var80070128 = 99;
|
|
|
|
struct weaponfunc *func = gsetGetWeaponFunction(&hand->gset);
|
|
bool sp68;
|
|
s32 sp64;
|
|
s32 sp60;
|
|
|
|
if (func == NULL) {
|
|
return true;
|
|
}
|
|
|
|
if (hand->stateminor == 0) {
|
|
sp64 = 1;
|
|
|
|
mainOverrideVariable("gkef", &var80070128);
|
|
|
|
if (hand->statecycles == 0) {
|
|
hand->gs_float1 = 0;
|
|
|
|
if (func->fire_animation) {
|
|
bgunStartAnimation(func->fire_animation, handnum, hand);
|
|
hand->unk0cc8_01 = true;
|
|
}
|
|
|
|
hand->burstbullets = 0;
|
|
}
|
|
|
|
if (!bgun0f098a44(hand, 2)) {
|
|
sp64 = 0;
|
|
}
|
|
|
|
if (sp64) {
|
|
hand->stateminor = 1;
|
|
}
|
|
|
|
hand->matmot2 = hand->gs_float1;
|
|
}
|
|
|
|
if (hand->stateminor == 1) {
|
|
sp60 = bgun0f09a3f8(hand, func);
|
|
|
|
if ((func->type & 0xff00) == 0x100) {
|
|
struct weaponfunc_shootauto *autofunc = (struct weaponfunc_shootauto *) func;
|
|
f32 auStack68[12];
|
|
|
|
if (autofunc->unk48 != NULL && autofunc->unk4c != NULL) {
|
|
func0f097b64(autofunc->unk48, autofunc->unk4c, hand->gs_float1, auStack68);
|
|
func0f097b40(hand->upgrademult, auStack68, hand->finalmult);
|
|
}
|
|
}
|
|
|
|
if (sp60 > 0) {
|
|
bgun0f09a6f8(info, handnum, hand, func);
|
|
}
|
|
|
|
if (sp60 < 0 || sp60 == 2) {
|
|
hand->stateminor = 2;
|
|
}
|
|
|
|
hand->matmot2 = hand->gs_float1;
|
|
|
|
if (hand->triggeron && hand->matmot2 < 0.4f) {
|
|
hand->matmot2 = 0.4f;
|
|
}
|
|
|
|
if (hand->triggerreleased) {
|
|
hand->unk0cc8_01 = false;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
if (hand->stateminor == 2) {
|
|
if (hand->stateflags & HANDSTATEFLAG_00000020) {
|
|
sp68 = bgun0f09aba4(hand, info, handnum, (struct weaponfunc_shoot *) func);
|
|
} else {
|
|
sp68 = true;
|
|
}
|
|
|
|
if (hand->gset.weaponnum == WEAPON_SHOTGUN && hand->animmode == HANDANIMMODE_BUSY) {
|
|
sp68 = false;
|
|
}
|
|
|
|
hand->matmot2 = hand->gs_float1;
|
|
|
|
if (sp68 && !hand->triggeron) {
|
|
hand->matmot2 = 0;
|
|
}
|
|
|
|
if (hand->gset.weaponnum == WEAPON_MAULER) {
|
|
hand->matmot1 = 0;
|
|
}
|
|
|
|
return sp68;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool bgunTickIncAttackingThrow(s32 handnum, struct hand *hand)
|
|
{
|
|
struct weaponfunc_throw *func = (struct weaponfunc_throw *) gsetGetWeaponFunction(&hand->gset);
|
|
|
|
if (func == NULL) {
|
|
return true;
|
|
}
|
|
|
|
if (hand->stateminor == 0) {
|
|
if (hand->statecycles == 0) {
|
|
if (func->base.flags & FUNCFLAG_DISCARDWEAPON) {
|
|
invRemoveItemByNum(hand->gset.weaponnum);
|
|
g_Vars.currentplayer->gunctrl.unk1583_04 = true;
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
bgunSwitchToPrevious();
|
|
#else
|
|
bgunAutoSwitchWeapon();
|
|
#endif
|
|
hand->primetimer60 = 0;
|
|
return true;
|
|
}
|
|
|
|
if (func->base.fire_animation) {
|
|
bgunStartAnimation(func->base.fire_animation, handnum, hand);
|
|
hand->unk0cc8_01 = true;
|
|
}
|
|
}
|
|
|
|
if (func->base.fire_animation) {
|
|
if (hand->triggerreleased) {
|
|
hand->unk0cc8_01 = false;
|
|
}
|
|
|
|
if (bgun0f098a44(hand, 2)) {
|
|
hand->stateminor = 1;
|
|
hand->unk0cc8_01 = false;
|
|
}
|
|
} else {
|
|
hand->stateminor = 1;
|
|
}
|
|
}
|
|
|
|
if (hand->stateminor == 1) {
|
|
hand->firing = true;
|
|
hand->attacktype = HANDATTACKTYPE_THROWPROJECTILE;
|
|
hand->loadedammo[func->base.ammoindex]--;
|
|
hand->stateminor = 2;
|
|
return false;
|
|
}
|
|
|
|
if (hand->stateminor == 2) {
|
|
if (hand->stateframes > TICKS(func->recoverytime60)) {
|
|
return true;
|
|
}
|
|
|
|
if (hand->gset.weaponnum == WEAPON_REMOTEMINE
|
|
&& bgunIsUsingSecondaryFunction() == true
|
|
&& hand->triggerreleased
|
|
&& hand->triggeron) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
// This state is only used after having a grenade explode in the player's
|
|
// hand. It waits 4 seconds before finishing, which means the player won't
|
|
// pull out another grenade until the flames have cleared.
|
|
if (hand->stateminor == 55) {
|
|
bgunResetAnim(hand);
|
|
|
|
if (hand->stateframes > TICKS(func->activatetime60 + 240)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
hand->primetimer60 = hand->stateframes;
|
|
|
|
// If held a grenade too long, force throw it and enter the wait state
|
|
if (hand->gset.weaponnum == WEAPON_GRENADE
|
|
&& hand->gset.weaponfunc == FUNC_PRIMARY
|
|
&& hand->primetimer60 > TICKS(func->activatetime60)) {
|
|
hand->firing = true;
|
|
hand->attacktype = HANDATTACKTYPE_THROWPROJECTILE;
|
|
hand->loadedammo[func->base.ammoindex]--;
|
|
hand->stateminor = 55;
|
|
|
|
return false;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
s32 bgunGetMinClipQty(s32 weaponnum, s32 funcnum)
|
|
{
|
|
if (weaponnum == WEAPON_TRANQUILIZER && funcnum == FUNC_SECONDARY) {
|
|
return 4;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
const char var7f1ab8ac[] = "changegunmem type %d CurrentPlayer->gunctrl.gunmemtype %d\n";
|
|
const char var7f1ab8e8[] = "LockTimer: %d\n";
|
|
const char var7f1ab8f8[] = "BriGun: Releasing gunmem - current gunmemtype %d gunmemnew %d\n";
|
|
const char var7f1ab938[] = "GiveMem: %d\n";
|
|
|
|
u32 var8007012c = 0x00000000;
|
|
u32 var80070130 = 0x00000000;
|
|
|
|
bool bgunTickIncAttackingClose(s32 handnum, struct hand *hand)
|
|
{
|
|
struct weaponfunc *func = gsetGetWeaponFunction(&hand->gset);
|
|
|
|
if (func == NULL) {
|
|
return true;
|
|
}
|
|
|
|
if (hand->gset.weaponnum == WEAPON_REAPER) {
|
|
if (hand->statecycles == 0) {
|
|
hand->matmot2 = 0.1f;
|
|
hand->burstbullets = 0;
|
|
}
|
|
|
|
hand->firing = true;
|
|
hand->attacktype = HANDATTACKTYPE_CLOSERANGE;
|
|
hand->burstbullets++;
|
|
|
|
if (hand->triggeron) {
|
|
hand->matmot2 += 0.01f * LVUPDATE240FREAL();
|
|
|
|
if (hand->matmot2 > 1) {
|
|
hand->matmot2 = 1;
|
|
}
|
|
} else {
|
|
hand->matmot2 = 0;
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
if (hand->stateminor == 0) {
|
|
if (hand->statecycles == 0) {
|
|
hand->firing = true;
|
|
hand->attacktype = HANDATTACKTYPE_CLOSERANGENOUNCLOAK;
|
|
|
|
if (func->fire_animation) {
|
|
bgunStartAnimation(func->fire_animation, handnum, hand);
|
|
hand->unk0cc8_01 = true;
|
|
}
|
|
}
|
|
|
|
if (func->fire_animation) {
|
|
if (hand->triggerreleased) {
|
|
hand->unk0cc8_01 = false;
|
|
}
|
|
|
|
if (bgun0f098a44(hand, 2)) {
|
|
hand->stateminor = 1;
|
|
hand->unk0cc8_01 = false;
|
|
}
|
|
} else {
|
|
hand->stateminor = 1;
|
|
}
|
|
}
|
|
|
|
if (hand->stateminor == 3 && bgun0f098a44(hand, 3)) {
|
|
hand->stateminor = 1;
|
|
hand->unk0cc8_01 = false;
|
|
}
|
|
|
|
if (hand->stateminor == 1) {
|
|
hand->firing = true;
|
|
hand->attacktype = HANDATTACKTYPE_CLOSERANGE;
|
|
|
|
if (hand->gset.weaponnum == WEAPON_TRANQUILIZER && func->ammoindex >= 0) {
|
|
if (hand->loadedammo[func->ammoindex] > bgunGetMinClipQty(WEAPON_TRANQUILIZER, FUNC_SECONDARY)) {
|
|
hand->loadedammo[func->ammoindex] -= bgunGetMinClipQty(WEAPON_TRANQUILIZER, FUNC_SECONDARY);
|
|
} else {
|
|
hand->loadedammo[func->ammoindex] = 0;
|
|
}
|
|
}
|
|
|
|
if (func->fire_animation) {
|
|
if (func->fire_animation && !bgun0f098a44(hand, 3)) {
|
|
hand->stateminor = 3;
|
|
} else {
|
|
hand->stateminor = 2;
|
|
}
|
|
}
|
|
|
|
if (cheatIsActive(CHEAT_HURRICANEFISTS)) {
|
|
hand->stateminor = 2;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
if (hand->stateminor == 2) {
|
|
if (!bgunIsAnimBusy(hand)) {
|
|
return true;
|
|
}
|
|
|
|
if (cheatIsActive(CHEAT_HURRICANEFISTS) && hand->gset.weaponnum == WEAPON_UNARMED) {
|
|
return true;
|
|
}
|
|
|
|
if (hand->stateframes > TICKS(60)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool bgunTickIncAttackingSpecial(struct hand *hand)
|
|
{
|
|
struct weaponfunc_special *func = (struct weaponfunc_special *) gsetGetWeaponFunction(&hand->gset);
|
|
|
|
if (!func) {
|
|
return true;
|
|
}
|
|
|
|
if (hand->stateminor == 0) {
|
|
hand->stateminor = 1;
|
|
}
|
|
|
|
if (hand->stateminor == 1) {
|
|
hand->firing = true;
|
|
hand->attacktype = func->specialfunc;
|
|
|
|
if (func->base.ammoindex >= 0) {
|
|
hand->loadedammo[func->base.ammoindex]--;
|
|
}
|
|
|
|
hand->stateminor = 2;
|
|
return false;
|
|
}
|
|
|
|
if (hand->stateminor == 2) {
|
|
if (hand->stateframes > TICKS(func->unk18)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
s32 bgunTickIncAttackEmpty(struct handweaponinfo *info, s32 handnum, struct hand *hand, s32 lvupdate)
|
|
{
|
|
u32 stack;
|
|
bool playsound = false;
|
|
|
|
switch (info->weaponnum) {
|
|
case WEAPON_FALCON2:
|
|
case WEAPON_FALCON2_SILENCER:
|
|
case WEAPON_FALCON2_SCOPE:
|
|
case WEAPON_MAGSEC4:
|
|
case WEAPON_MAULER:
|
|
case WEAPON_PHOENIX:
|
|
case WEAPON_DY357MAGNUM:
|
|
case WEAPON_DY357LX:
|
|
case WEAPON_CMP150:
|
|
case WEAPON_CYCLONE:
|
|
case WEAPON_CALLISTO:
|
|
case WEAPON_RCP120:
|
|
case WEAPON_LAPTOPGUN:
|
|
case WEAPON_REAPER:
|
|
case WEAPON_TRANQUILIZER:
|
|
case WEAPON_PP9I:
|
|
case WEAPON_CC13:
|
|
// These weapons are weapons with visible finger trigger animations
|
|
if (hand->stateframes > TICKS(25)) {
|
|
hand->stateframes -= TICKS(25);
|
|
hand->stateflags = 0;
|
|
|
|
bgunResetAnim(hand);
|
|
}
|
|
|
|
if (hand->animmode != HANDANIMMODE_BUSY) {
|
|
bool restartedanim = false;
|
|
|
|
if ((hand->stateflags & HANDSTATEFLAG_00000010) == 0) {
|
|
struct weaponfunc *func = NULL;
|
|
|
|
if (info->definition) {
|
|
func = gsetGetWeaponFunction(&hand->gset);
|
|
}
|
|
|
|
if (func && func->fire_animation) {
|
|
bgunStartAnimation(func->fire_animation, handnum, hand);
|
|
restartedanim = true;
|
|
}
|
|
}
|
|
|
|
if (!restartedanim && hand->stateframes > TICKS(25)) {
|
|
playsound = true;
|
|
}
|
|
} else if (bgun0f098a44(hand, 5)) {
|
|
playsound = true;
|
|
}
|
|
break;
|
|
default:
|
|
// Weapons without visible trigger animations must
|
|
// still play the click sound every 25 frames
|
|
if (hand->stateframes > TICKS(25)) {
|
|
playsound = true;
|
|
|
|
hand->stateframes -= TICKS(25);
|
|
hand->stateflags = 0;
|
|
|
|
bgunResetAnim(hand);
|
|
}
|
|
}
|
|
|
|
hand->mode = HANDMODE_13;
|
|
hand->count60 = 0;
|
|
hand->count = 0;
|
|
|
|
if (playsound && (hand->stateflags & HANDSTATEFLAG_00000010) == 0) {
|
|
hand->stateflags |= HANDSTATEFLAG_00000010;
|
|
|
|
switch (info->weaponnum) {
|
|
case WEAPON_PHOENIX:
|
|
case WEAPON_CALLISTO:
|
|
case WEAPON_FARSIGHT:
|
|
{
|
|
// Maian weapons have a wet sounding click effect
|
|
f32 speed = 2.07f;
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
OSPri prevpri = osGetThreadPri(0);
|
|
struct sndstate *handle;
|
|
osSetThreadPri(0, osGetThreadPri(&g_AudioManager.thread) + 1);
|
|
#else
|
|
struct sndstate *handle;
|
|
#endif
|
|
|
|
handle = sndStart(var80095200, SFX_HIT_WATER, NULL, -1, -1, -1, -1, -1);
|
|
|
|
if (handle) {
|
|
audioPostEvent(handle, 16, *(s32 *)&speed);
|
|
}
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
osSetThreadPri(0, prevpri);
|
|
#endif
|
|
}
|
|
// fall-through - unsure if intentional
|
|
case WEAPON_TRANQUILIZER:
|
|
case WEAPON_PSYCHOSISGUN:
|
|
{
|
|
// The tranquliser and psychosis gun use the standard click
|
|
// effect but slightly faster.
|
|
f32 speed = 1.5f;
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
OSPri prevpri = osGetThreadPri(0);
|
|
struct sndstate *handle;
|
|
osSetThreadPri(0, osGetThreadPri(&g_AudioManager.thread) + 1);
|
|
#else
|
|
struct sndstate *handle;
|
|
#endif
|
|
|
|
handle = sndStart(var80095200, SFX_FIREEMPTY, NULL, -1, -1, -1, -1, -1);
|
|
|
|
if (handle) {
|
|
audioPostEvent(handle, 16, *(s32 *)&speed);
|
|
}
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
osSetThreadPri(0, prevpri);
|
|
#endif
|
|
}
|
|
break;
|
|
case WEAPON_UNARMED:
|
|
case WEAPON_COMBATKNIFE:
|
|
case WEAPON_GRENADE:
|
|
case WEAPON_NBOMB:
|
|
case WEAPON_TIMEDMINE:
|
|
case WEAPON_PROXIMITYMINE:
|
|
case WEAPON_REMOTEMINE:
|
|
case WEAPON_COMBATBOOST:
|
|
// No sound effect
|
|
break;
|
|
default:
|
|
// Default click sound effect
|
|
sndStart(var80095200, SFX_FIREEMPTY, NULL, -1, -1, -1, -1, -1);
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Handle releasing trigger
|
|
if (!hand->triggeron) {
|
|
hand->mode = HANDMODE_NONE;
|
|
hand->count60 = 0;
|
|
hand->count = 0;
|
|
|
|
if (bgunSetState(handnum, HANDSTATE_IDLE)) {
|
|
return lvupdate;
|
|
}
|
|
|
|
bgunResetAnim(hand);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
s32 bgunTickIncAttack(struct handweaponinfo *info, s32 handnum, struct hand *hand, s32 lvupdate)
|
|
{
|
|
u32 stack;
|
|
struct weaponfunc *func = NULL;
|
|
bool finished = true;
|
|
u32 stack2;
|
|
|
|
if (info->definition) {
|
|
func = gsetGetWeaponFunction(&hand->gset);
|
|
}
|
|
|
|
if (func != NULL) {
|
|
switch (func->type & 0xff) {
|
|
case INVENTORYFUNCTYPE_SHOOT:
|
|
finished = bgunTickIncAttackingShoot(info, handnum, hand);
|
|
break;
|
|
case INVENTORYFUNCTYPE_THROW:
|
|
finished = bgunTickIncAttackingThrow(handnum, hand);
|
|
break;
|
|
case INVENTORYFUNCTYPE_CLOSE:
|
|
finished = bgunTickIncAttackingClose(handnum, hand);
|
|
break;
|
|
case INVENTORYFUNCTYPE_SPECIAL:
|
|
finished = bgunTickIncAttackingSpecial(hand);
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (finished) {
|
|
if (hand->gset.weaponnum == WEAPON_REAPER && hand->triggeron) {
|
|
hand->gset.weaponfunc = FUNC_SECONDARY;
|
|
finished = false;
|
|
}
|
|
|
|
if (finished && bgunSetState(handnum, HANDSTATE_IDLE)) {
|
|
return lvupdate;
|
|
}
|
|
}
|
|
|
|
if (1);
|
|
if (1);
|
|
|
|
return 0;
|
|
}
|
|
|
|
bool bgunIsReadyToSwitch(s32 handnum)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
// Dont switch if... something firing range related
|
|
if (g_FrIsValidWeapon
|
|
&& frGetWeaponBySlot(frGetSlot()) == player->hands[HAND_RIGHT].gset.weaponnum
|
|
&& g_Vars.currentplayer->gunctrl.unk1583_04 == false) {
|
|
return false;
|
|
}
|
|
|
|
// Don't switch right hand if left hand is about to auto switch
|
|
if (handnum == HAND_RIGHT
|
|
&& player->hands[HAND_LEFT].inuse
|
|
&& player->hands[HAND_LEFT].state == HANDSTATE_AUTOSWITCH
|
|
&& player->hands[HAND_LEFT].stateminor == 0) {
|
|
return false;
|
|
}
|
|
|
|
if (player->gunctrl.switchtoweaponnum >= 0) {
|
|
return true;
|
|
}
|
|
|
|
if (handnum == HAND_LEFT) {
|
|
if (handnum == HAND_LEFT) {
|
|
if (player->hands[HAND_RIGHT].state == HANDSTATE_RELOAD) {
|
|
return false;
|
|
}
|
|
|
|
if (player->hands[HAND_RIGHT].state == HANDSTATE_CHANGEFUNC) {
|
|
return false;
|
|
}
|
|
|
|
if (player->hands[HAND_RIGHT].state == HANDSTATE_ATTACK) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (player->hands[handnum].inuse && !player->gunctrl.dualwielding) {
|
|
return true;
|
|
}
|
|
|
|
if (!player->hands[handnum].inuse && player->gunctrl.dualwielding) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool bgunCanFreeWeapon(s32 handnum)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
if (player->hands[handnum].state == HANDSTATE_CHANGEGUN
|
|
&& player->hands[handnum].stateminor == 2
|
|
&& player->hands[handnum].count >= 3
|
|
&& player->gunctrl.unk1583_04 == false) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
bool bgun0f09bf44(s32 handnum)
|
|
{
|
|
bool result = true;
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
if (!bgun0f09dd7c()) {
|
|
result = false;
|
|
}
|
|
|
|
if (player->gunctrl.switchtoweaponnum != -1) {
|
|
result = false;
|
|
}
|
|
|
|
if (handnum == HAND_LEFT && player->gunctrl.dualwielding != player->hands[handnum].inuse) {
|
|
result = false;
|
|
}
|
|
|
|
if (player->gunctrl.gunmemnew >= 0) {
|
|
result = false;
|
|
}
|
|
|
|
if (player->hands[1 - handnum].state == HANDSTATE_RELOAD) {
|
|
result = false;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
s32 bgunTickIncChangeGun(struct handweaponinfo *info, s32 handnum, struct hand *hand, s32 lvupdate)
|
|
{
|
|
u32 stack;
|
|
struct weapon *weapon = info->definition;
|
|
|
|
if (hand->statecycles == 0) {
|
|
if (g_Vars.normmplayerisrunning == false) {
|
|
hand->pausetime60 = 0;
|
|
} else {
|
|
hand->pausetime60 = 0;
|
|
}
|
|
}
|
|
|
|
// Handle unequip animation
|
|
if (hand->stateminor == 0) {
|
|
bool skipanim = false;
|
|
|
|
if (weaponHasFlag(info->weaponnum, WEAPONFLAG_00000001)
|
|
&& (info->weaponnum != WEAPON_REMOTEMINE || handnum != HAND_LEFT)
|
|
&& bgun0f098ca0(0, info, hand) < 0) {
|
|
skipanim = true;
|
|
}
|
|
|
|
hand->count = 0;
|
|
|
|
if (!skipanim) {
|
|
if (weapon->unequip_animation
|
|
&& hand->inuse == true
|
|
&& (!hand->unk0d0e_00 || hand->unk0d0e_04)) {
|
|
if (hand->statecycles == 0) {
|
|
bgunStartAnimation(weapon->unequip_animation, handnum, hand);
|
|
} else if (hand->animmode == HANDANIMMODE_IDLE) {
|
|
hand->stateminor++;
|
|
}
|
|
} else {
|
|
hand->stateflags |= HANDSTATEFLAG_00000001;
|
|
|
|
if (hand->unk0d0e_00 == 1) {
|
|
return 0;
|
|
}
|
|
|
|
hand->stateminor++;
|
|
}
|
|
} else {
|
|
hand->stateminor++;
|
|
}
|
|
|
|
if (hand->stateminor == 1) {
|
|
hand->stateframes = 0;
|
|
}
|
|
}
|
|
|
|
// Handle possible delay between gun disappearing and new one equipping,
|
|
// as well as throwing the gun if that's what we're doing
|
|
if (hand->stateminor == 1) {
|
|
s32 delay = TICKS(16);
|
|
bool somebool = false;
|
|
u32 stack2;
|
|
|
|
hand->count = 0;
|
|
|
|
if (g_Vars.normmplayerisrunning) {
|
|
delay = TICKS(12);
|
|
}
|
|
|
|
if (weapon->unequip_animation && (hand->stateflags & HANDSTATEFLAG_00000001) == 0) {
|
|
delay = 1;
|
|
}
|
|
|
|
if (!hand->inuse) {
|
|
delay = 1;
|
|
}
|
|
|
|
if (hand->unk0d0e_04 == 0 && (hand->unk0d0e_00 == 1 || hand->unk0d0e_00 == 2)) {
|
|
somebool = true;
|
|
}
|
|
|
|
if (g_Vars.currentplayer->gunctrl.unk1583_04 == 1) {
|
|
somebool = true;
|
|
}
|
|
|
|
if (hand->stateframes >= delay) {
|
|
if (!somebool) {
|
|
if (g_Vars.mplayerisrunning && (IS8MB() || PLAYERCOUNT() != 1)) {
|
|
playermgrDeleteWeapon(handnum);
|
|
}
|
|
|
|
bgunFreeHeldRocket(handnum);
|
|
hand->mode = HANDMODE_6;
|
|
hand->stateminor++;
|
|
} else {
|
|
bgun0f099780(hand, 0.87252569198608f);
|
|
|
|
if (g_Vars.currentplayer->gunctrl.unk1583_04 == 1 && hand->inuse) {
|
|
hand->firing = true;
|
|
hand->attacktype = HANDATTACKTYPE_THROWPROJECTILE;
|
|
hand->gset.weaponfunc = FUNC_SECONDARY;
|
|
}
|
|
}
|
|
} else {
|
|
bgun0f099780(hand, hand->stateframes * 0.87252569198608f / delay);
|
|
}
|
|
}
|
|
|
|
// Handle equip animation
|
|
if (hand->stateminor == 2) {
|
|
hand->animmode = HANDANIMMODE_IDLE;
|
|
|
|
if (hand->pausechange == 0 || hand->pausetime60 <= hand->count60) {
|
|
if (hand->mode == HANDMODE_6) {
|
|
if (bgun0f09bf44(handnum)) {
|
|
hand->mode = HANDMODE_7;
|
|
|
|
if (!hand->inuse && bgunSetState(handnum, HANDSTATE_IDLE)) {
|
|
return lvupdate;
|
|
}
|
|
}
|
|
} else {
|
|
if (bgun0f09dd7c()) {
|
|
if (info->definition->equip_animation) {
|
|
bgunStartAnimation(info->definition->equip_animation, handnum, hand);
|
|
hand->unk0cc8_02 = true;
|
|
}
|
|
|
|
hand->mode = HANDMODE_8;
|
|
hand->stateminor++;
|
|
hand->count60 = 0;
|
|
hand->count = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (hand->mode == HANDMODE_6 || hand->mode == HANDMODE_7) {
|
|
bgun0f099780(hand, 0.87252569198608f);
|
|
}
|
|
}
|
|
|
|
// Handle delay if new weapon has no equip animation, and play sound
|
|
if (hand->stateminor == 3) {
|
|
s32 delay = TICKS(23);
|
|
|
|
if (g_Vars.normmplayerisrunning) {
|
|
delay = TICKS(12);
|
|
}
|
|
|
|
if (weaponHasFlag(hand->gset.weaponnum, WEAPONFLAG_00004000)) {
|
|
hand->animmode = HANDANIMMODE_IDLE;
|
|
} else if (weapon->equip_animation) {
|
|
delay = 1;
|
|
}
|
|
|
|
if (hand->count == 0) {
|
|
if (g_Vars.mplayerisrunning && (IS8MB() || PLAYERCOUNT() != 1)) {
|
|
playermgrCreateWeapon(handnum);
|
|
}
|
|
|
|
bgun0f098f8c(info, hand);
|
|
|
|
if (weaponHasFlag(info->weaponnum, WEAPONFLAG_00000001)
|
|
&& (info->weaponnum != WEAPON_REMOTEMINE || handnum != HAND_LEFT)
|
|
&& bgun0f098ca0(0, info, hand) < 0
|
|
&& bgunSetState(handnum, HANDSTATE_AUTOSWITCH)) {
|
|
hand->stateminor = 1;
|
|
return lvupdate;
|
|
}
|
|
|
|
g_Vars.currentplayer->doautoselect = false;
|
|
|
|
if (g_Vars.lvupdate240 > 0
|
|
&& g_Vars.currentplayer->cameramode != CAMERAMODE_THIRDPERSON
|
|
&& bgun0f09dd7c()
|
|
&& !g_PlayerInvincible
|
|
&& !g_Vars.currentplayer->isdead) {
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
struct sndstate *handle1;
|
|
f32 speed1;
|
|
struct sndstate *handle2;
|
|
OSPri prevpri1;
|
|
f32 speed2;
|
|
OSPri prevpri2;
|
|
struct sndstate *handle3;
|
|
f32 speed3;
|
|
OSPri prevpri3;
|
|
#else
|
|
struct sndstate *handle1;
|
|
f32 speed1;
|
|
struct sndstate *handle2;
|
|
f32 speed2;
|
|
struct sndstate *handle3;
|
|
f32 speed3;
|
|
#endif
|
|
|
|
switch (info->weaponnum) {
|
|
case WEAPON_HORIZONSCANNER:
|
|
speed1 = 3.5f;
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
prevpri1 = osGetThreadPri(0);
|
|
osSetThreadPri(0, osGetThreadPri(&g_AudioManager.thread) + 1);
|
|
#endif
|
|
handle1 = sndStart(var80095200, SFX_EQUIP_HORIZONSCANNER, 0, -1, -1, -1, -1, -1);
|
|
|
|
if (handle1) {
|
|
audioPostEvent(handle1, 16, *(s32 *)&speed1);
|
|
}
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
osSetThreadPri(0, prevpri1);
|
|
#endif
|
|
break;
|
|
case WEAPON_LASER:
|
|
sndStart(var80095200, SFX_PICKUP_LASER, 0, -1, -1, -1, -1, -1);
|
|
break;
|
|
case WEAPON_COMBATKNIFE:
|
|
sndStart(var80095200, SFX_PICKUP_KNIFE, 0, -1, -1, -1, -1, -1);
|
|
break;
|
|
case WEAPON_REMOTEMINE:
|
|
if (handnum == HAND_RIGHT) {
|
|
sndStart(var80095200, SFX_PICKUP_MINE, 0, -1, -1, -1, -1, -1);
|
|
}
|
|
break;
|
|
case WEAPON_TIMEDMINE:
|
|
case WEAPON_PROXIMITYMINE:
|
|
case WEAPON_ECMMINE:
|
|
case WEAPON_DATAUPLINK:
|
|
case WEAPON_RTRACKER:
|
|
case WEAPON_PRESIDENTSCANNER:
|
|
case WEAPON_DOORDECODER:
|
|
case WEAPON_AUTOSURGEON:
|
|
case WEAPON_COMMSRIDER:
|
|
case WEAPON_TRACERBUG:
|
|
case WEAPON_TARGETAMPLIFIER:
|
|
sndStart(var80095200, SFX_PICKUP_MINE, 0, -1, -1, -1, -1, -1);
|
|
break;
|
|
case WEAPON_TRANQUILIZER:
|
|
case WEAPON_PSYCHOSISGUN:
|
|
speed2 = 1.5f;
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
prevpri2 = osGetThreadPri(0);
|
|
osSetThreadPri(0, osGetThreadPri(&g_AudioManager.thread) + 1);
|
|
#endif
|
|
|
|
handle2 = sndStart(var80095200, SFX_PICKUP_GUN, 0, -1, -1, -1, -1, -1);
|
|
|
|
if (handle2) {
|
|
audioPostEvent(handle2, 16, *(s32 *)&speed2);
|
|
}
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
osSetThreadPri(0, prevpri2);
|
|
#endif
|
|
break;
|
|
case WEAPON_REAPER:
|
|
speed3 = 0.85f;
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
prevpri3 = osGetThreadPri(0);
|
|
osSetThreadPri(0, osGetThreadPri(&g_AudioManager.thread) + 1);
|
|
#endif
|
|
|
|
handle3 = sndStart(var80095200, SFX_PICKUP_GUN, 0, -1, -1, -1, -1, -1);
|
|
|
|
if (handle3) {
|
|
audioPostEvent(handle3, 16, *(s32 *)&speed3);
|
|
}
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
osSetThreadPri(0, prevpri3);
|
|
#endif
|
|
break;
|
|
case WEAPON_NONE:
|
|
case WEAPON_UNARMED:
|
|
case WEAPON_LAPTOPGUN:
|
|
case WEAPON_CROSSBOW:
|
|
case WEAPON_GRENADE:
|
|
case WEAPON_NBOMB:
|
|
case WEAPON_COMBATBOOST:
|
|
case WEAPON_CLOAKINGDEVICE:
|
|
case WEAPON_EXPLOSIVES:
|
|
case WEAPON_SKEDARBOMB:
|
|
case WEAPON_DISGUISE40:
|
|
case WEAPON_DISGUISE41:
|
|
case WEAPON_FLIGHTPLANS:
|
|
case WEAPON_RESEARCHTAPE:
|
|
case WEAPON_BACKUPDISK:
|
|
case WEAPON_KEYCARD45:
|
|
case WEAPON_KEYCARD46:
|
|
case WEAPON_KEYCARD47:
|
|
case WEAPON_KEYCARD48:
|
|
case WEAPON_KEYCARD49:
|
|
case WEAPON_KEYCARD4A:
|
|
case WEAPON_KEYCARD4B:
|
|
case WEAPON_KEYCARD4C:
|
|
case WEAPON_SUITCASE:
|
|
case WEAPON_BRIEFCASE:
|
|
case WEAPON_NECKLACE:
|
|
case WEAPON_BRIEFCASE2:
|
|
// No equip sound
|
|
break;
|
|
default:
|
|
sndStart(var80095200, SFX_PICKUP_GUN, 0, -1, -1, -1, -1, -1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (hand->count60 >= delay
|
|
|| !weaponGetModelNum2(info->weaponnum)
|
|
|| !weaponHasFlag(info->weaponnum, WEAPONFLAG_00000040)
|
|
|| weaponHasFlag(info->weaponnum, WEAPONFLAG_00000080)) {
|
|
hand->mode = HANDMODE_NONE;
|
|
hand->stateminor++;
|
|
|
|
if (weaponHasFlag(hand->gset.weaponnum, WEAPONFLAG_00004000) == 0) {
|
|
hand->unk0cc8_02 = false;
|
|
}
|
|
|
|
hand->count60 = 0;
|
|
hand->count = 0;
|
|
} else {
|
|
bgun0f099780(hand, (delay - hand->count60) * 0.87252569198608f / delay);
|
|
}
|
|
}
|
|
|
|
// Wait for equip animation to finish then go to idle state
|
|
if (hand->stateminor == 4) {
|
|
if (info->definition->equip_animation && !weaponHasFlag(hand->gset.weaponnum, WEAPONFLAG_00004000)) {
|
|
if (hand->animmode == HANDANIMMODE_IDLE) {
|
|
if (bgunSetState(handnum, HANDSTATE_IDLE)) {
|
|
return lvupdate;
|
|
}
|
|
}
|
|
} else {
|
|
if (bgunSetState(handnum, HANDSTATE_IDLE)) {
|
|
return lvupdate;
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
/**
|
|
* This function may have implemented an early beta feature where the gun could
|
|
* be held at the side of the screen, pointed upwards. The feature was shown in
|
|
* a demo video but doesn't exist in any public version of the game.
|
|
*/
|
|
s32 bgunTickIncState2(struct handweaponinfo *info, s32 handnum, struct hand *hand, s32 lvupdate)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
s32 bgunTickInc(struct handweaponinfo *info, s32 handnum, s32 lvupdate)
|
|
{
|
|
s32 result = 0;
|
|
struct hand *hand = &g_Vars.currentplayer->hands[handnum];
|
|
s32 prevstate = hand->state;
|
|
|
|
hand->firing = false;
|
|
hand->flashon = false;
|
|
hand->stateframes += lvupdate;
|
|
|
|
if (g_Vars.lvupdate240 > 0) {
|
|
hand->count60 += g_Vars.lvupdate240_60;
|
|
hand->count++;
|
|
}
|
|
|
|
hand->useposrot = false;
|
|
|
|
switch (hand->state) {
|
|
case HANDSTATE_IDLE:
|
|
result = bgunTickIncIdle(info, handnum, hand, lvupdate);
|
|
break;
|
|
case HANDSTATE_RELOAD:
|
|
result = bgunTickIncReload(info, handnum, hand, lvupdate);
|
|
break;
|
|
case HANDSTATE_ATTACK:
|
|
result = bgunTickIncAttack(info, handnum, hand, lvupdate);
|
|
break;
|
|
case HANDSTATE_2:
|
|
result = bgunTickIncState2(info, handnum, hand, lvupdate);
|
|
break;
|
|
case HANDSTATE_CHANGEGUN:
|
|
result = bgunTickIncChangeGun(info, handnum, hand, lvupdate);
|
|
break;
|
|
case HANDSTATE_ATTACKEMPTY:
|
|
result = bgunTickIncAttackEmpty(info, handnum, hand, lvupdate);
|
|
break;
|
|
case HANDSTATE_AUTOSWITCH:
|
|
result = bgunTickIncAutoSwitch(info, handnum, hand, lvupdate);
|
|
break;
|
|
case HANDSTATE_CHANGEFUNC:
|
|
result = bgunTickIncChangeFunc(info, handnum, hand, lvupdate);
|
|
break;
|
|
}
|
|
|
|
hand->statelastframe = hand->stateframes;
|
|
|
|
if (hand->state != prevstate) {
|
|
hand->statelastframe = -result;
|
|
} else {
|
|
hand->stateframes -= result;
|
|
hand->statecycles++;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
bool bgunSetState(s32 handnum, s32 state)
|
|
{
|
|
bool valid = true;
|
|
struct hand *hand = &g_Vars.currentplayer->hands[handnum];
|
|
|
|
// Sanity check - don't allow changing function if there is no other
|
|
if (state == HANDSTATE_CHANGEFUNC && weaponGetFunction(&hand->gset, 1 - hand->gset.weaponfunc) == NULL) {
|
|
valid = false;
|
|
}
|
|
|
|
if (valid) {
|
|
hand->state = state;
|
|
hand->stateframes = 0;
|
|
hand->stateflags = 0;
|
|
hand->statecycles = 0;
|
|
hand->stateminor = 0;
|
|
hand->statelastframe = 0;
|
|
}
|
|
|
|
return valid;
|
|
}
|
|
|
|
void bgunTickHand(s32 handnum)
|
|
{
|
|
struct hand *hand = &g_Vars.currentplayer->hands[handnum];
|
|
struct handweaponinfo info;
|
|
s32 lvupdate;
|
|
s32 i = 20;
|
|
|
|
if (handnum);
|
|
if (handnum);
|
|
if (handnum);
|
|
if (handnum);
|
|
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
if (handnum);
|
|
#endif
|
|
|
|
bgunGetWeaponInfo(&info, handnum);
|
|
|
|
lvupdate = g_Vars.lvupdate240_60;
|
|
|
|
hand->animframeinc = g_Vars.lvupdate240_60;
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
hand->animframeincfreal = modelGetAbsAnimSpeed(&hand->gunmodel) * PALUPF(hand->animframeinc);
|
|
#else
|
|
hand->animframeincfreal += PALUPF(g_Vars.lvupdate240_60);
|
|
#endif
|
|
|
|
while (i >= 0) {
|
|
lvupdate = bgunTickInc(&info, handnum, lvupdate);
|
|
i--;
|
|
|
|
if (lvupdate <= 0) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgunTickSwitch(void)
|
|
{
|
|
bgunTickSwitch2();
|
|
}
|
|
|
|
void bgunInitHandAnims(void)
|
|
{
|
|
struct hand *hand;
|
|
s32 i;
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
if (i == 0) {
|
|
hand = &g_Vars.currentplayer->hands[1];
|
|
} else {
|
|
hand = &g_Vars.currentplayer->hands[0];
|
|
}
|
|
|
|
hand->gangstarot = 0;
|
|
hand->state = HANDSTATE_IDLE;
|
|
hand->animload = -1;
|
|
hand->animmode = HANDANIMMODE_IDLE;
|
|
|
|
animInit(&hand->anim);
|
|
|
|
hand->gunmodel.anim = &hand->anim;
|
|
hand->handmodel.anim = &hand->anim;
|
|
}
|
|
}
|
|
|
|
f32 bgunGetNoiseRadius(s32 handnum)
|
|
{
|
|
return g_Vars.currentplayer->hands[handnum].noiseradius;
|
|
}
|
|
|
|
void bgunDecreaseNoiseRadius(void)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
f32 consideramount;
|
|
struct gset gsetleft;
|
|
struct gset gsetright;
|
|
struct noisesettings noisesettingsleft;
|
|
struct noisesettings noisesettingsright;
|
|
f32 subamount;
|
|
|
|
gsetPopulateFromCurrentPlayer(HAND_LEFT, &gsetleft);
|
|
gsetPopulateFromCurrentPlayer(HAND_RIGHT, &gsetright);
|
|
|
|
gsetGetNoiseSettings(&gsetleft, &noisesettingsleft);
|
|
gsetGetNoiseSettings(&gsetright, &noisesettingsright);
|
|
|
|
// Right hand
|
|
if (bgunIsFiring(HAND_RIGHT)) {
|
|
player->hands[HAND_RIGHT].noiseradius += noisesettingsright.incradius;
|
|
|
|
if (player->hands[HAND_RIGHT].noiseradius > noisesettingsright.maxradius) {
|
|
player->hands[HAND_RIGHT].noiseradius = noisesettingsright.maxradius;
|
|
}
|
|
}
|
|
|
|
subamount = g_Vars.lvupdate240freal * noisesettingsright.incradius / (noisesettingsright.unk0c * 60.0f);
|
|
consideramount = (player->hands[HAND_RIGHT].noiseradius - noisesettingsright.minradius) * g_Vars.lvupdate240freal / (noisesettingsright.unk10 * 60.0f);
|
|
|
|
if (consideramount > subamount) {
|
|
subamount = consideramount;
|
|
}
|
|
|
|
player->hands[HAND_RIGHT].noiseradius -= subamount;
|
|
|
|
if (player->hands[HAND_RIGHT].noiseradius < noisesettingsright.minradius) {
|
|
player->hands[HAND_RIGHT].noiseradius = noisesettingsright.minradius;
|
|
}
|
|
|
|
// Left hand
|
|
if (bgunIsFiring(HAND_LEFT)) {
|
|
player->hands[HAND_LEFT].noiseradius += noisesettingsleft.incradius;
|
|
|
|
if (player->hands[HAND_LEFT].noiseradius > noisesettingsleft.maxradius) {
|
|
player->hands[HAND_LEFT].noiseradius = noisesettingsleft.maxradius;
|
|
}
|
|
}
|
|
|
|
subamount = g_Vars.lvupdate240freal * noisesettingsleft.incradius / (noisesettingsleft.unk0c * 60.0f);
|
|
consideramount = (player->hands[HAND_LEFT].noiseradius - noisesettingsleft.minradius) * g_Vars.lvupdate240freal / (noisesettingsleft.unk10 * 60.0f);
|
|
|
|
if (consideramount > subamount) {
|
|
subamount = consideramount;
|
|
}
|
|
|
|
player->hands[HAND_LEFT].noiseradius -= subamount;
|
|
|
|
if (player->hands[HAND_LEFT].noiseradius < noisesettingsleft.minradius) {
|
|
player->hands[HAND_LEFT].noiseradius = noisesettingsleft.minradius;
|
|
}
|
|
}
|
|
|
|
void bgunCalculateBlend(s32 handnum)
|
|
{
|
|
s32 sp60[2];
|
|
s32 sp58[2];
|
|
struct weapon *weapon = weaponFindById(bgunGetWeaponNum(handnum));
|
|
f32 mult = weapon->unk38;
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
sp60[handnum] = (player->hands[handnum].curblendpos + 2) % 4;
|
|
sp58[handnum] = (player->hands[handnum].curblendpos + 1) % 4;
|
|
player->hands[handnum].curblendpos = sp58[handnum];
|
|
|
|
player->hands[handnum].blendlook[sp60[handnum]].x = (RANDOMFRAC() - 0.5f) * 0.08f * mult;
|
|
player->hands[handnum].blendlook[sp60[handnum]].y = (RANDOMFRAC() - 0.5f) * 0.1f * mult;
|
|
player->hands[handnum].blendlook[sp60[handnum]].z = -1;
|
|
|
|
player->hands[handnum].blendup[sp60[handnum]].x = (RANDOMFRAC() - 0.5f) * 0.1f * mult;
|
|
player->hands[handnum].blendup[sp60[handnum]].y = 1;
|
|
player->hands[handnum].blendup[sp60[handnum]].z = (RANDOMFRAC() - 0.5f) * 0.1f * mult;
|
|
|
|
player->hands[handnum].blendpos[sp60[handnum]].x = (RANDOMFRAC() * 0.75f) + 1.5f;
|
|
player->hands[handnum].blendpos[sp60[handnum]].y = (2 + RANDOMFRAC()) * player->hands[handnum].blendscale1;
|
|
player->hands[handnum].blendpos[sp60[handnum]].z = (RANDOMFRAC() - 0.5f) * 2.5f;
|
|
|
|
if (player->hands[handnum].sideflag < 0) {
|
|
player->hands[handnum].blendpos[sp60[handnum]].x *= -1;
|
|
|
|
if (player->hands[handnum].sideflag == -2) {
|
|
player->hands[handnum].sideflag = 1;
|
|
} else {
|
|
player->hands[handnum].sideflag = -2;
|
|
}
|
|
} else {
|
|
if (player->hands[handnum].sideflag == 2) {
|
|
player->hands[handnum].sideflag = -1;
|
|
} else {
|
|
player->hands[handnum].sideflag = 2;
|
|
}
|
|
}
|
|
|
|
player->hands[handnum].blendscale1 = -player->hands[handnum].blendscale1;
|
|
}
|
|
|
|
void bgunUpdateBlend(struct hand *hand, s32 handnum)
|
|
{
|
|
u32 stack[3];
|
|
s32 i;
|
|
struct coord sp5c = {0, 0, 0};
|
|
struct coord sp50 = {0, 0, -1};
|
|
struct coord sp44 = {0, 1, 0};
|
|
s32 pos = hand->curblendpos;
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
func0f096b70(&hand->blendpos[(pos + 3) % 4], &hand->blendpos[pos], &hand->blendpos[(pos + 1) % 4], &hand->blendpos[(pos + 2) % 4], hand->dampt, &sp5c);
|
|
func0f096b70(&hand->blendlook[(pos + 3) % 4], &hand->blendlook[pos], &hand->blendlook[(pos + 1) % 4], &hand->blendlook[(pos + 2) % 4], hand->dampt, &sp50);
|
|
func0f096b70(&hand->blendup[(pos + 3) % 4], &hand->blendup[pos], &hand->blendup[(pos + 1) % 4], &hand->blendup[(pos + 2) % 4], hand->dampt, &sp44);
|
|
|
|
sp5c.x *= player->gunposamplitude;
|
|
sp5c.y *= player->gunposamplitude;
|
|
sp5c.z *= player->gunposamplitude;
|
|
|
|
sp5c.x += hand->adjustdamp.x;
|
|
sp5c.y += hand->adjustdamp.y;
|
|
|
|
sp5c.x += handGetXShift(handnum);
|
|
|
|
for (i = 0; i < g_Vars.lvupdate240; i++) {
|
|
hand->damppossum.x = (PAL ? 0.9847f : 0.9872f) * hand->damppossum.x + sp5c.f[0];
|
|
hand->damppossum.y = (PAL ? 0.9847f : 0.9872f) * hand->damppossum.y + sp5c.f[1];
|
|
hand->damppossum.z = (PAL ? 0.9847f : 0.9872f) * hand->damppossum.z + sp5c.f[2];
|
|
|
|
hand->damplooksum.x = (PAL ? 0.9847f : 0.9872f) * hand->damplooksum.x + sp50.f[0];
|
|
hand->damplooksum.y = (PAL ? 0.9847f : 0.9872f) * hand->damplooksum.y + sp50.f[1];
|
|
hand->damplooksum.z = (PAL ? 0.9847f : 0.9872f) * hand->damplooksum.z + sp50.f[2];
|
|
|
|
hand->dampupsum.x = (PAL ? 0.9847f : 0.9872f) * hand->dampupsum.x + sp44.f[0];
|
|
hand->dampupsum.y = (PAL ? 0.9847f : 0.9872f) * hand->dampupsum.y + sp44.f[1];
|
|
hand->dampupsum.z = (PAL ? 0.9847f : 0.9872f) * hand->dampupsum.z + sp44.f[2];
|
|
}
|
|
|
|
hand->damppos.x = hand->damppossum.x * (PAL ? 0.01529997587204f : 0.012799978f) * 2;
|
|
hand->damppos.y = hand->damppossum.y * (PAL ? 0.01529997587204f : 0.012799978f) * 2;
|
|
hand->damppos.z = hand->damppossum.z * (PAL ? 0.01529997587204f : 0.012799978f) * 2;
|
|
|
|
hand->damplook.x = hand->damplooksum.x * (PAL ? 0.01529997587204f : 0.012799978f);
|
|
hand->damplook.y = hand->damplooksum.y * (PAL ? 0.01529997587204f : 0.012799978f);
|
|
hand->damplook.z = hand->damplooksum.z * (PAL ? 0.01529997587204f : 0.012799978f);
|
|
|
|
hand->dampup.x = hand->dampupsum.x * (PAL ? 0.01529997587204f : 0.012799978f);
|
|
hand->dampup.y = hand->dampupsum.y * (PAL ? 0.01529997587204f : 0.012799978f);
|
|
hand->dampup.z = hand->dampupsum.z * (PAL ? 0.01529997587204f : 0.012799978f);
|
|
}
|
|
|
|
u32 var80070158 = 0x04e50764;
|
|
u32 var8007015c = 0x05360529;
|
|
u32 var80070160 = 0x0531052a;
|
|
u32 var80070164 = 0x052b052c;
|
|
u32 var80070168 = 0x052c052d;
|
|
u32 var8007016c = 0x052b052b;
|
|
u32 var80070170 = 0x052e052f;
|
|
u32 var80070174 = 0x052f0530;
|
|
u32 var80070178 = 0x05310532;
|
|
u32 var8007017c = 0x05320533;
|
|
u32 var80070180 = 0x05340535;
|
|
u32 var80070184 = 0x05360537;
|
|
u32 var80070188 = 0x05380530;
|
|
u32 var8007018c = 0x0539053a;
|
|
u32 var80070190 = 0x0532053b;
|
|
u32 var80070194 = 0x05310766;
|
|
u32 var80070198 = 0x07670768;
|
|
u32 var8007019c = 0x0769076a;
|
|
u32 var800701a0 = 0x076b076c;
|
|
u32 var800701a4 = 0x076d0000;
|
|
u32 var800701a8 = 0x0000ffff;
|
|
|
|
void bgun0f09d8dc(f32 breathing, f32 arg1, f32 arg2, f32 arg3, f32 arg4)
|
|
{
|
|
f32 dampt[2];
|
|
struct player *player = g_Vars.currentplayer;
|
|
u32 stack;
|
|
s32 i;
|
|
f32 sp50 = arg2;
|
|
f32 sp4c;
|
|
u32 stack2;
|
|
|
|
if (sp50 < 0.0f) {
|
|
sp50 = -sp50;
|
|
}
|
|
|
|
if (arg1 > 0.8f) {
|
|
player->gunposamplitude = 1.0f;
|
|
} else {
|
|
if (arg1 > 0.1f) {
|
|
f32 tmp = 1.0f - cosf((arg1 - 0.1f) * M_BADTAU / 2.8f);
|
|
player->gunposamplitude = 0.8f * tmp + 0.2f;
|
|
} else {
|
|
player->gunposamplitude = 0.1f;
|
|
}
|
|
}
|
|
|
|
if (bmoveGetCrouchPos() != CROUCHPOS_SQUAT) {
|
|
if (player->gunposamplitude < 0.3f * g_Vars.currentplayer->bondbreathing) {
|
|
player->gunposamplitude = 0.3f * g_Vars.currentplayer->bondbreathing;
|
|
}
|
|
}
|
|
|
|
if (player->gunposamplitude < 0.5f * sp50) {
|
|
player->gunposamplitude = 0.5f * sp50;
|
|
}
|
|
|
|
for (i = 0; i < g_Vars.lvupdate240; i++) {
|
|
player->gunampsum = (PAL ? 0.9847f : 0.9872f) * player->gunampsum + player->gunposamplitude;
|
|
}
|
|
|
|
player->gunposamplitude = (PAL ? 0.01529997587204f : 0.012799978256226f) * player->gunampsum;
|
|
|
|
if (breathing < 0.016666667535901f * sp50) {
|
|
breathing = 0.016666667535901f * sp50;
|
|
}
|
|
|
|
for (i = 0; i < g_Vars.lvupdate240; i++) {
|
|
player->cyclesum = (PAL ? 0.9847f : 0.9872f) * player->cyclesum + breathing;
|
|
}
|
|
|
|
breathing = player->cyclesum * (PAL ? 0.01529997587204f : 0.012799978256226f);
|
|
sp4c = breathing * g_Vars.lvupdate240freal;
|
|
dampt[0] = player->hands[0].dampt + sp4c;
|
|
|
|
while (dampt[0] >= 1.0f) {
|
|
bgunCalculateBlend(HAND_RIGHT);
|
|
dampt[0] -= 1.0f;
|
|
player->syncoffset++;
|
|
}
|
|
|
|
player->synccount += g_Vars.lvupdate240freal;
|
|
|
|
if (player->synccount > 60.0f) {
|
|
player->synccount = 0.0f;
|
|
player->syncchange = (RANDOMFRAC() - 0.5f) * 0.2f / 60.0f;
|
|
}
|
|
|
|
if (player->syncchange + sp4c > 0.0f) {
|
|
player->gunsync += player->syncchange;
|
|
}
|
|
|
|
if (player->gunsync > 0.5f) {
|
|
player->gunsync = 0.5f;
|
|
} else if (player->gunsync < -0.5f) {
|
|
player->gunsync = -0.5f;
|
|
} else if (player->gunsync < 0.1f && player->gunsync > -0.1f) {
|
|
if (player->gunsync > 0.0f) {
|
|
player->gunsync = -0.1f;
|
|
} else {
|
|
player->gunsync = 0.1f;
|
|
}
|
|
}
|
|
|
|
dampt[1] = dampt[0] + player->syncoffset + player->gunsync;
|
|
|
|
while (dampt[1] >= 1.0f) {
|
|
bgunCalculateBlend(HAND_LEFT);
|
|
dampt[1] -= 1.0f;
|
|
player->syncoffset--;
|
|
}
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
player->hands[i].dampt = dampt[i];
|
|
player->hands[i].adjustdamp.x = -1.75f * arg3 + -0.8f * arg4;
|
|
player->hands[i].adjustdamp.y = -2.0f * arg2;
|
|
}
|
|
}
|
|
|
|
bool bgun0f09dd7c(void)
|
|
{
|
|
if (g_Vars.currentplayer->gunctrl.gunmemowner) {
|
|
return false;
|
|
}
|
|
|
|
return g_Vars.currentplayer->gunctrl.gunmemtype == 0
|
|
|| (g_Vars.currentplayer->gunctrl.gunmemnew < 0
|
|
&& g_Vars.currentplayer->gunctrl.masterloadstate == MASTERLOADSTATE_LOADED);
|
|
}
|
|
|
|
u32 bgunGetGunMemType(void)
|
|
{
|
|
return g_Vars.currentplayer->gunctrl.gunmemtype;
|
|
}
|
|
|
|
struct modelfiledata *bgun0f09dddc(void)
|
|
{
|
|
return g_Vars.currentplayer->gunctrl.gunmodeldef;
|
|
}
|
|
|
|
u8 *bgunGetGunMem(void)
|
|
{
|
|
return g_Vars.currentplayer->gunctrl.gunmem;
|
|
}
|
|
|
|
u32 bgunCalculateGunMemCapacity(void)
|
|
{
|
|
if (IS4MB() && PLAYERCOUNT() == 2) {
|
|
return var800700ac;
|
|
}
|
|
|
|
if (PLAYERCOUNT() == 1) {
|
|
switch (g_Vars.stagenum) {
|
|
case STAGE_CHICAGO:
|
|
case STAGE_AIRBASE:
|
|
case STAGE_VILLA:
|
|
case STAGE_AIRFORCEONE:
|
|
case STAGE_ATTACKSHIP:
|
|
return var800700a8 + 0x6400;
|
|
}
|
|
}
|
|
|
|
return var800700a8;
|
|
}
|
|
|
|
void bgunFreeGunMem(void)
|
|
{
|
|
g_Vars.currentplayer->gunctrl.gunmemowner = GUNMEMOWNER_FREE;
|
|
}
|
|
|
|
void bgunSetGunMemWeapon(s32 weaponnum)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
if (player->gunctrl.gunmemowner == GUNMEMOWNER_BONDGUN) {
|
|
player->gunctrl.masterloadstate = MASTERLOADSTATE_FLUX;
|
|
player->gunctrl.gunloadstate = GUNLOADSTATE_FLUX;
|
|
player->gunctrl.gunmemnew = weaponnum;
|
|
player->gunctrl.gunlocktimer = -1;
|
|
} else {
|
|
player->gunctrl.gunmemnew = weaponnum;
|
|
}
|
|
}
|
|
|
|
void bgun0f09df9c(void)
|
|
{
|
|
s32 i;
|
|
struct casing *end;
|
|
struct casing *casing;
|
|
|
|
g_Vars.currentplayer->gunctrl.handfilenum = 0xffff;
|
|
g_Vars.currentplayer->gunctrl.handmodeldef = NULL;
|
|
g_Vars.currentplayer->gunctrl.unk15a0 = 0;
|
|
g_Vars.currentplayer->gunctrl.unk15a4 = 0;
|
|
g_Vars.currentplayer->gunctrl.masterloadstate = MASTERLOADSTATE_FLUX;
|
|
g_Vars.currentplayer->gunctrl.gunloadstate = GUNLOADSTATE_FLUX;
|
|
|
|
end = g_Casings + ARRAYCOUNT(g_Casings);
|
|
casing = g_Casings;
|
|
|
|
while (casing < end) {
|
|
casing->modeldef = NULL;
|
|
casing++;
|
|
}
|
|
|
|
g_CasingsActive = false;
|
|
}
|
|
|
|
bool bgun0f09e004(s32 newowner)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
if (player->gunctrl.gunmemowner == newowner) {
|
|
return true;
|
|
}
|
|
|
|
if (player->gunctrl.gunlocktimer < 0) {
|
|
player->gunctrl.gunlocktimer--;
|
|
|
|
if (player->gunctrl.gunlocktimer < -2) {
|
|
player->gunctrl.gunlocktimer = 0;
|
|
player->gunctrl.gunmemowner = newowner;
|
|
return true;
|
|
}
|
|
} else {
|
|
bool unlock = false;
|
|
|
|
switch (player->gunctrl.gunmemowner) {
|
|
case GUNMEMOWNER_BONDGUN:
|
|
if (player->gunctrl.gunmemtype != -1) {
|
|
player->gunctrl.gunmemnew = player->gunctrl.gunmemtype;
|
|
}
|
|
|
|
player->gunctrl.gunmemtype = -1;
|
|
bgun0f09df9c();
|
|
player->gunctrl.unk1583_06 = true;
|
|
unlock = true;
|
|
break;
|
|
case GUNMEMOWNER_CHRBODY:
|
|
if (g_Vars.mplayerisrunning) {
|
|
unlock = true;
|
|
}
|
|
|
|
if (!player->haschrbody) {
|
|
unlock = true;
|
|
}
|
|
|
|
if (newowner == GUNMEMOWNER_INVMENU && var8009dfc0 != 0) {
|
|
unlock = true;
|
|
playerRemoveChrBody();
|
|
}
|
|
break;
|
|
case GUNMEMOWNER_3:
|
|
unlock = true;
|
|
break;
|
|
case GUNMEMOWNER_CHANGING:
|
|
case GUNMEMOWNER_FREE:
|
|
unlock = true;
|
|
break;
|
|
}
|
|
|
|
if (unlock) {
|
|
player->gunctrl.gunlocktimer = -1;
|
|
player->gunctrl.gunmemowner = GUNMEMOWNER_CHANGING;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* This function loads resources for a gun change.
|
|
*
|
|
* The caller sets properties in the player's gunctrl struct which tell this
|
|
* function what to load, where the gunmem is that it can use, and how much
|
|
* gunmem there is. This function is then called a couple of times on subsequent
|
|
* ticks, loading data incrementally to avoid a significant lag spike.
|
|
*
|
|
* The function keeps track of its progress in the gunloadstate property, and
|
|
* updates the gunmem properties to reflect its usage.
|
|
*
|
|
* The first call loads the model definition from the ROM and decompresses it.
|
|
* The second call loads and decompress to 3 textures.
|
|
* This continues on further calls until all textures are loaded.
|
|
* The final call does some one-off processing on the model's display lists.
|
|
*
|
|
* Although the name contains "Gun", it's used for more than just the gun model.
|
|
* It's used for the hand model, the gun model and the cartridge model.
|
|
*/
|
|
void bgunTickGunLoad(void)
|
|
{
|
|
s32 i;
|
|
s32 numthistick;
|
|
u32 remaining;
|
|
s32 padding;
|
|
u32 allocsize;
|
|
u32 loadsize;
|
|
u32 ptr;
|
|
struct player *player = g_Vars.currentplayer;
|
|
struct modelfiledata *modeldef;
|
|
struct fileinfo *fileinfo;
|
|
struct fileinfo *gunfileinfo;
|
|
s32 newvalue;
|
|
u32 end;
|
|
u32 stack;
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
u32 stack2;
|
|
#endif
|
|
|
|
if (player->gunctrl.gunloadstate == GUNLOADSTATE_MODEL) {
|
|
osSyncPrintf("BriGun: BriGunLoadTick process GUN_LOADSTATE_LOAD_OBJ\n");
|
|
|
|
ptr = *player->gunctrl.loadmemptr;
|
|
remaining = *player->gunctrl.loadmemremaining;
|
|
|
|
// Align ptr to the next 16 byte boundary
|
|
if (ptr % 16) {
|
|
padding = 16 - (ptr % 16);
|
|
ptr += padding;
|
|
remaining -= padding;
|
|
}
|
|
|
|
*player->gunctrl.loadmemptr = ptr;
|
|
*player->gunctrl.loadmemremaining = remaining;
|
|
|
|
loadsize = ALIGN64(fileGetInflatedSize(player->gunctrl.loadfilenum)) + 0x8000;
|
|
|
|
osSyncPrintf("BriGun: Loading - %s, pMem 0x%08x Size %d\n");
|
|
|
|
if (loadsize > remaining) {
|
|
osSyncPrintf("BriGun: Warning: LoadSize > MemSize, clamping decomp. buffer from %d to %d (%d Bytes)\n", allocsize, remaining, remaining);
|
|
loadsize = remaining;
|
|
}
|
|
|
|
// Load the model file to ptr
|
|
g_LoadType = LOADTYPE_GUN;
|
|
|
|
osSyncPrintf("BriGun: obLoadto at 0x%08x, size %d\n", ptr, loadsize);
|
|
|
|
modeldef = fileLoadToAddr(player->gunctrl.loadfilenum, FILELOADMETHOD_EXTRAMEM, (u8 *)ptr, loadsize);
|
|
|
|
// Reserve some space for textures
|
|
allocsize = fileGetLoadedSize(player->gunctrl.loadfilenum) + 0xe00;
|
|
|
|
osSyncPrintf("BriGun: Used size %d (Ob Size %d)\n");
|
|
osSyncPrintf("BriGun: block len %d usedsize %d\n");
|
|
osSyncPrintf("BriGun: obln ram_len %d block_len %d\n");
|
|
osSyncPrintf("BriGun: new used size %d\n");
|
|
|
|
fileGetLoadedSize(player->gunctrl.loadfilenum);
|
|
|
|
fileinfo = &g_FileInfo[player->gunctrl.loadfilenum];
|
|
fileinfo->allocsize = allocsize;
|
|
end = ALIGN16((s32)ptr + allocsize);
|
|
allocsize = end - ptr;
|
|
if (1);
|
|
remaining -= allocsize;
|
|
|
|
osSyncPrintf("BriGun: Texture Block at 0x%08x size %d, endp 0x%08x\n");
|
|
|
|
tex0f172e70(&player->gunctrl.unk15c0, (u8 *)end, remaining);
|
|
|
|
// Tidy up the model
|
|
modelPromoteTypeToPointer(modeldef);
|
|
modelPromoteOffsetsToPointers(modeldef, 0x05000000, (u32)modeldef);
|
|
|
|
*player->gunctrl.loadtomodeldef = modeldef;
|
|
|
|
player->gunctrl.nexttexturetoload = 0;
|
|
player->gunctrl.fileinfo = *fileinfo;
|
|
|
|
osSyncPrintf("BriGun: Set Load State: GUN_LOADSTATE_DECOMPRESS_TEXTURES\n");
|
|
player->gunctrl.gunloadstate = GUNLOADSTATE_TEXTURES;
|
|
return;
|
|
}
|
|
|
|
if (player->gunctrl.gunloadstate == GUNLOADSTATE_TEXTURES) {
|
|
osSyncPrintf("BriGun: BriGunLoadTick process GUN_LOADSTATE_DECOMPRESS_TEXTURES\n");
|
|
|
|
gunfileinfo = &player->gunctrl.fileinfo;
|
|
fileinfo = &g_FileInfo[player->gunctrl.loadfilenum];
|
|
*fileinfo = *gunfileinfo;
|
|
modeldef = *player->gunctrl.loadtomodeldef;
|
|
|
|
// Load textures - up to 3 per call
|
|
numthistick = 0;
|
|
|
|
for (i = player->gunctrl.nexttexturetoload; i < modeldef->numtexconfigs; i++) {
|
|
osSyncPrintf("BriGun: at texture %d\n", i);
|
|
|
|
if (modeldef->texconfigs[i].texturenum < NUM_TEXTURES) {
|
|
osSyncPrintf("BriGun: Uncompress %d of %d\n", i, modeldef->numtexconfigs);
|
|
texLoad(&modeldef->texconfigs[i].texturenum, &player->gunctrl.unk15c0, 1);
|
|
modeldef->texconfigs[i].unk0b = 1;
|
|
}
|
|
|
|
numthistick++;
|
|
|
|
if (numthistick == 3) {
|
|
return;
|
|
}
|
|
|
|
// @bug: This should be incremented prior to the return, otherwise
|
|
// subsequent ticks will waste time loading a texture that's already
|
|
// been loaded.
|
|
player->gunctrl.nexttexturetoload++;
|
|
}
|
|
|
|
*gunfileinfo = *fileinfo;
|
|
|
|
osSyncPrintf("BriGun: Set Load State: GUN_LOADSTATE_DECOMPRESS_DLS\n");
|
|
player->gunctrl.gunloadstate = GUNLOADSTATE_DLS;
|
|
return;
|
|
}
|
|
|
|
if (player->gunctrl.gunloadstate == GUNLOADSTATE_DLS) {
|
|
osSyncPrintf("BriGun: BriGunLoadTick process GUN_LOADSTATE_DECOMPRESS_DLS\n");
|
|
|
|
fileinfo = &g_FileInfo[player->gunctrl.loadfilenum];
|
|
*fileinfo = player->gunctrl.fileinfo;
|
|
modeldef = *player->gunctrl.loadtomodeldef;
|
|
|
|
modeldef0f1a7560(modeldef, player->gunctrl.loadfilenum, 0x05000000, modeldef, &player->gunctrl.unk15c0, false);
|
|
|
|
fileGetInflatedSize(player->gunctrl.loadfilenum);
|
|
fileGetLoadedSize(player->gunctrl.loadfilenum);
|
|
fileGetLoadedSize(player->gunctrl.loadfilenum);
|
|
fileGetLoadedSize(player->gunctrl.loadfilenum);
|
|
|
|
modelCalculateRwDataLen(modeldef);
|
|
|
|
osSyncPrintf("BriGun: propgfx_decompress 0x%08x\n");
|
|
osSyncPrintf("BriGun: DL waste space %d from %d (Used %d, Ramlen %d, ObSize %d)\n");
|
|
osSyncPrintf("Increase GUNSAVESIZE to %d!!!\n");
|
|
|
|
newvalue = ALIGN64(func0f172f54(&player->gunctrl.unk15c0));
|
|
remaining = *player->gunctrl.loadmemremaining;
|
|
remaining -= (s32)(newvalue - *player->gunctrl.loadmemptr);
|
|
|
|
*player->gunctrl.loadmemptr = newvalue;
|
|
*player->gunctrl.loadmemremaining = remaining;
|
|
|
|
osSyncPrintf("BriGun: Set Load State: GUN_LOADSTATE_LOADED\n");
|
|
player->gunctrl.gunloadstate = GUNLOADSTATE_LOADED;
|
|
|
|
#if PIRACYCHECKS
|
|
{
|
|
s32 *ptr = (s32 *)&tagsReset;
|
|
s32 *end = (s32 *)&tagFindById;
|
|
u32 checksum = 0;
|
|
|
|
while (ptr < end) {
|
|
checksum -= ~*ptr;
|
|
ptr++;
|
|
}
|
|
|
|
if (checksum != CHECKSUM_PLACEHOLDER) {
|
|
ptr = (s32 *)&tagsReset + 3;
|
|
|
|
if (1);
|
|
end = &ptr[7];
|
|
|
|
while (ptr < end) {
|
|
*ptr |= 0xff;
|
|
ptr++;
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
}
|
|
|
|
const char var7f1abcd8[] = "need a new gun loading (lock %d gunmemnew %d)\n";
|
|
const char var7f1abd08[] = "loading gun file: %d type: %d\n";
|
|
const char var7f1abd28[] = "BriGun: Process MASTER_GUN_LOADSTATE_FLUX\n";
|
|
const char var7f1abd54[] = "BriGun: Set Master State: MASTER_GUN_LOADSTATE_HANDS\n";
|
|
const char var7f1abd8c[] = "BriGun: Process MASTER_GUN_LOADSTATE_HANDS\n";
|
|
const char var7f1abdb8[] = "BriGun: Setup Hand Load\n";
|
|
const char var7f1abdd4[] = "Hand : Using cached hands\n";
|
|
const char var7f1abdf0[] = "Hand : Look ma no hands!\n";
|
|
const char var7f1abe0c[] = "BriGun: Set Master State: MASTER_GUN_LOADSTATE_GUN\n";
|
|
const char var7f1abe40[] = "BriGun: Process MASTER_GUN_LOADSTATE_GUN\n";
|
|
const char var7f1abe6c[] = "BriGun: Setup Gun Load\n";
|
|
const char var7f1abe84[] = "BriGun: Set Master State: MASTER_GUN_LOADSTATE_CARTS\n";
|
|
const char var7f1abebc[] = "BriGun: Process MASTER_GUN_LOADSTATE_CARTS\n";
|
|
const char var7f1abee8[] = "BriGun: Cart Loaded setting GUN_LOADSTATE_FLUX\n";
|
|
const char var7f1abf18[] = "BriGun: Cart loading - looking for carts\n";
|
|
const char var7f1abf44[] = "BriGun: Loading cart %d\n";
|
|
const char var7f1abf60[] = "BriGun: Request for cart %d ignored - cart already loaded\n";
|
|
const char var7f1abf9c[] = "BriGun: Compile Hand 0x%08x Gun 0x%0x8\n";
|
|
const char var7f1abfc4[] = "Gun : Compiled Gun 0x%08x\n";
|
|
const char var7f1abfe4[] = "Gun : Compiled Size %d\n";
|
|
const char var7f1ac000[] = "Hand : Compiled Hand 0x%08x\n";
|
|
const char var7f1ac020[] = "Hand : Compiled Size %d\n";
|
|
const char var7f1ac03c[] = "Gun : Compile overhead %d bytes\n";
|
|
const char var7f1ac060[] = "Hand : Hand Obj 0x%08x Gun Obj 0x%08x \n";
|
|
const char var7f1ac08c[] = "Gun : After Comp : Base 0x%08x Free %d\n";
|
|
const char var7f1ac0b8[] = "Gun : After Cached Setup : Base 0x%08x Free %d\n";
|
|
const char var7f1ac0ec[] = "Gun : TotalUsed %d, Free %d\n";
|
|
const char var7f1ac10c[] = "BriGun: Set Master State: MASTER_GUN_LOADSTATE_LOADED\n";
|
|
const char var7f1ac144[] = "GunLockTimer: %d\n";
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
GLOBAL_ASM(
|
|
glabel bgunTickMasterLoad
|
|
/* f09e4e0: 27bdff58 */ addiu $sp,$sp,-168
|
|
/* f09e4e4: afb5002c */ sw $s5,0x2c($sp)
|
|
/* f09e4e8: 3c15800a */ lui $s5,%hi(g_Vars)
|
|
/* f09e4ec: 26b59fc0 */ addiu $s5,$s5,%lo(g_Vars)
|
|
/* f09e4f0: afb20020 */ sw $s2,0x20($sp)
|
|
/* f09e4f4: 8eb20284 */ lw $s2,0x284($s5)
|
|
/* f09e4f8: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f09e4fc: afb60030 */ sw $s6,0x30($sp)
|
|
/* f09e500: afb40028 */ sw $s4,0x28($sp)
|
|
/* f09e504: afb30024 */ sw $s3,0x24($sp)
|
|
/* f09e508: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f09e50c: afb00018 */ sw $s0,0x18($sp)
|
|
/* f09e510: 924e15ea */ lbu $t6,0x15ea($s2)
|
|
/* f09e514: 51c00006 */ beqzl $t6,.L0f09e530
|
|
/* f09e518: 8e421584 */ lw $v0,0x1584($s2)
|
|
/* f09e51c: 0fc27801 */ jal bgun0f09e004
|
|
/* f09e520: 00002025 */ or $a0,$zero,$zero
|
|
/* f09e524: 50400151 */ beqzl $v0,.L0f09ea6c
|
|
/* f09e528: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09e52c: 8e421584 */ lw $v0,0x1584($s2)
|
|
.L0f09e530:
|
|
/* f09e530: 0442014e */ bltzl $v0,.L0f09ea6c
|
|
/* f09e534: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09e538: 824315eb */ lb $v1,0x15eb($s2)
|
|
/* f09e53c: 27a40068 */ addiu $a0,$sp,0x68
|
|
/* f09e540: 27a50064 */ addiu $a1,$sp,0x64
|
|
/* f09e544: 14600142 */ bnez $v1,.L0f09ea50
|
|
/* f09e548: 246dffff */ addiu $t5,$v1,-1
|
|
/* f09e54c: afa200a4 */ sw $v0,0xa4($sp)
|
|
/* f09e550: 0fc2e1cb */ jal playerChooseBodyAndHead
|
|
/* f09e554: 00003025 */ or $a2,$zero,$zero
|
|
/* f09e558: 8faf0068 */ lw $t7,0x68($sp)
|
|
/* f09e55c: 3c198009 */ lui $t9,%hi(g_Is4Mb)
|
|
/* f09e560: 93390af0 */ lbu $t9,%lo(g_Is4Mb)($t9)
|
|
/* f09e564: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f09e568: 030fc021 */ addu $t8,$t8,$t7
|
|
/* f09e56c: 0018c080 */ sll $t8,$t8,0x2
|
|
/* f09e570: 3c118008 */ lui $s1,%hi(g_HeadsAndBodies+0x10)
|
|
/* f09e574: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f09e578: 02388821 */ addu $s1,$s1,$t8
|
|
/* f09e57c: 14d90002 */ bne $a2,$t9,.L0f09e588
|
|
/* f09e580: 9631cf14 */ lhu $s1,%lo(g_HeadsAndBodies+0x10)($s1)
|
|
/* f09e584: 241104e5 */ addiu $s1,$zero,0x4e5
|
|
.L0f09e588:
|
|
/* f09e588: 0fc2c686 */ jal weaponGetModelNum
|
|
/* f09e58c: 8fa400a4 */ lw $a0,0xa4($sp)
|
|
/* f09e590: 924815b0 */ lbu $t0,0x15b0($s2)
|
|
/* f09e594: 24140004 */ addiu $s4,$zero,0x4
|
|
/* f09e598: 3053ffff */ andi $s3,$v0,0xffff
|
|
/* f09e59c: 16880003 */ bne $s4,$t0,.L0f09e5ac
|
|
/* f09e5a0: 8fa400a4 */ lw $a0,0xa4($sp)
|
|
/* f09e5a4: 8e491588 */ lw $t1,0x1588($s2)
|
|
/* f09e5a8: 1089012f */ beq $a0,$t1,.L0f09ea68
|
|
.L0f09e5ac:
|
|
/* f09e5ac: 304affff */ andi $t2,$v0,0xffff
|
|
/* f09e5b0: 11400121 */ beqz $t2,.L0f09ea38
|
|
/* f09e5b4: 8fa400a4 */ lw $a0,0xa4($sp)
|
|
/* f09e5b8: 00008025 */ or $s0,$zero,$zero
|
|
/* f09e5bc: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f09e5c0: 3c050002 */ lui $a1,0x2
|
|
/* f09e5c4: 10400002 */ beqz $v0,.L0f09e5d0
|
|
/* f09e5c8: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f09e5cc: 00c08025 */ or $s0,$a2,$zero
|
|
.L0f09e5d0:
|
|
/* f09e5d0: 8fab00a4 */ lw $t3,0xa4($sp)
|
|
/* f09e5d4: 3c05800a */ lui $a1,%hi(g_Casings)
|
|
/* f09e5d8: 24a5d510 */ addiu $a1,$a1,%lo(g_Casings)
|
|
/* f09e5dc: 15660004 */ bne $t3,$a2,.L0f09e5f0
|
|
/* f09e5e0: 3c03800a */ lui $v1,%hi(g_BoltBeams)
|
|
/* f09e5e4: 3233ffff */ andi $s3,$s1,0xffff
|
|
/* f09e5e8: 00008825 */ or $s1,$zero,$zero
|
|
/* f09e5ec: 00008025 */ or $s0,$zero,$zero
|
|
.L0f09e5f0:
|
|
/* f09e5f0: 924215b0 */ lbu $v0,0x15b0($s2)
|
|
/* f09e5f4: 3c048007 */ lui $a0,%hi(g_CasingsActive)
|
|
/* f09e5f8: 2463da60 */ addiu $v1,$v1,%lo(g_BoltBeams)
|
|
/* f09e5fc: 14400019 */ bnez $v0,.L0f09e664
|
|
/* f09e600: 24840524 */ addiu $a0,$a0,%lo(g_CasingsActive)
|
|
/* f09e604: 00a01025 */ or $v0,$a1,$zero
|
|
/* f09e608: 8e4c1598 */ lw $t4,0x1598($s2)
|
|
.L0f09e60c:
|
|
/* f09e60c: 8c4d0040 */ lw $t5,0x40($v0)
|
|
/* f09e610: 558d0003 */ bnel $t4,$t5,.L0f09e620
|
|
/* f09e614: 24420044 */ addiu $v0,$v0,0x44
|
|
/* f09e618: ac400040 */ sw $zero,0x40($v0)
|
|
/* f09e61c: 24420044 */ addiu $v0,$v0,0x44
|
|
.L0f09e620:
|
|
/* f09e620: 0043082b */ sltu $at,$v0,$v1
|
|
/* f09e624: 5420fff9 */ bnezl $at,.L0f09e60c
|
|
/* f09e628: 8e4c1598 */ lw $t4,0x1598($s2)
|
|
/* f09e62c: ac800000 */ sw $zero,0x0($a0)
|
|
/* f09e630: 00a01025 */ or $v0,$a1,$zero
|
|
/* f09e634: 8c4e0040 */ lw $t6,0x40($v0)
|
|
.L0f09e638:
|
|
/* f09e638: 24420044 */ addiu $v0,$v0,0x44
|
|
/* f09e63c: 0043082b */ sltu $at,$v0,$v1
|
|
/* f09e640: 11c00002 */ beqz $t6,.L0f09e64c
|
|
/* f09e644: 00000000 */ nop
|
|
/* f09e648: ac860000 */ sw $a2,0x0($a0)
|
|
.L0f09e64c:
|
|
/* f09e64c: 5420fffa */ bnezl $at,.L0f09e638
|
|
/* f09e650: 8c4e0040 */ lw $t6,0x40($v0)
|
|
/* f09e654: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f09e658: ae401598 */ sw $zero,0x1598($s2)
|
|
/* f09e65c: 10000102 */ b .L0f09ea68
|
|
/* f09e660: a24f15b0 */ sb $t7,0x15b0($s2)
|
|
.L0f09e664:
|
|
/* f09e664: 14c20028 */ bne $a2,$v0,.L0f09e708
|
|
/* f09e668: 24010002 */ addiu $at,$zero,0x2
|
|
/* f09e66c: 5200001d */ beqzl $s0,.L0f09e6e4
|
|
/* f09e670: a640159c */ sh $zero,0x159c($s2)
|
|
/* f09e674: 9658159c */ lhu $t8,0x159c($s2)
|
|
/* f09e678: 53110020 */ beql $t8,$s1,.L0f09e6fc
|
|
/* f09e67c: 240d0002 */ addiu $t5,$zero,0x2
|
|
/* f09e680: 925915b1 */ lbu $t9,0x15b1($s2)
|
|
/* f09e684: 1720000f */ bnez $t9,.L0f09e6c4
|
|
/* f09e688: 00000000 */ nop
|
|
/* f09e68c: 0fc2777b */ jal bgunGetGunMem
|
|
/* f09e690: 00000000 */ nop
|
|
/* f09e694: 0fc2777f */ jal bgunCalculateGunMemCapacity
|
|
/* f09e698: ae4215a0 */ sw $v0,0x15a0($s2)
|
|
/* f09e69c: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f09e6a0: 26491594 */ addiu $t1,$s2,0x1594
|
|
/* f09e6a4: 264a15a0 */ addiu $t2,$s2,0x15a0
|
|
/* f09e6a8: 264b15a4 */ addiu $t3,$s2,0x15a4
|
|
/* f09e6ac: ae4215a4 */ sw $v0,0x15a4($s2)
|
|
/* f09e6b0: a24815b1 */ sb $t0,0x15b1($s2)
|
|
/* f09e6b4: a65115b2 */ sh $s1,0x15b2($s2)
|
|
/* f09e6b8: ae4915b4 */ sw $t1,0x15b4($s2)
|
|
/* f09e6bc: ae4a15b8 */ sw $t2,0x15b8($s2)
|
|
/* f09e6c0: ae4b15bc */ sw $t3,0x15bc($s2)
|
|
.L0f09e6c4:
|
|
/* f09e6c4: 0fc27851 */ jal bgunTickGunLoad
|
|
/* f09e6c8: 00000000 */ nop
|
|
/* f09e6cc: 924c15b1 */ lbu $t4,0x15b1($s2)
|
|
/* f09e6d0: 568c00e6 */ bnel $s4,$t4,.L0f09ea6c
|
|
/* f09e6d4: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09e6d8: 10000007 */ b .L0f09e6f8
|
|
/* f09e6dc: a651159c */ sh $s1,0x159c($s2)
|
|
/* f09e6e0: a640159c */ sh $zero,0x159c($s2)
|
|
.L0f09e6e4:
|
|
/* f09e6e4: 0fc2777b */ jal bgunGetGunMem
|
|
/* f09e6e8: ae401594 */ sw $zero,0x1594($s2)
|
|
/* f09e6ec: 0fc2777f */ jal bgunCalculateGunMemCapacity
|
|
/* f09e6f0: ae4215a0 */ sw $v0,0x15a0($s2)
|
|
/* f09e6f4: ae4215a4 */ sw $v0,0x15a4($s2)
|
|
.L0f09e6f8:
|
|
/* f09e6f8: 240d0002 */ addiu $t5,$zero,0x2
|
|
.L0f09e6fc:
|
|
/* f09e6fc: a24d15b0 */ sb $t5,0x15b0($s2)
|
|
/* f09e700: 100000d9 */ b .L0f09ea68
|
|
/* f09e704: a24015b1 */ sb $zero,0x15b1($s2)
|
|
.L0f09e708:
|
|
/* f09e708: 5441001a */ bnel $v0,$at,.L0f09e774
|
|
/* f09e70c: 24010003 */ addiu $at,$zero,0x3
|
|
/* f09e710: 924e15b1 */ lbu $t6,0x15b1($s2)
|
|
/* f09e714: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f09e718: 26481590 */ addiu $t0,$s2,0x1590
|
|
/* f09e71c: 15c0000b */ bnez $t6,.L0f09e74c
|
|
/* f09e720: 264915a8 */ addiu $t1,$s2,0x15a8
|
|
/* f09e724: 8e4f15a0 */ lw $t7,0x15a0($s2)
|
|
/* f09e728: 8e5815a4 */ lw $t8,0x15a4($s2)
|
|
/* f09e72c: 264a15ac */ addiu $t2,$s2,0x15ac
|
|
/* f09e730: a25915b1 */ sb $t9,0x15b1($s2)
|
|
/* f09e734: a65315b2 */ sh $s3,0x15b2($s2)
|
|
/* f09e738: ae4815b4 */ sw $t0,0x15b4($s2)
|
|
/* f09e73c: ae4915b8 */ sw $t1,0x15b8($s2)
|
|
/* f09e740: ae4a15bc */ sw $t2,0x15bc($s2)
|
|
/* f09e744: ae4f15a8 */ sw $t7,0x15a8($s2)
|
|
/* f09e748: ae5815ac */ sw $t8,0x15ac($s2)
|
|
.L0f09e74c:
|
|
/* f09e74c: 0fc27851 */ jal bgunTickGunLoad
|
|
/* f09e750: 00000000 */ nop
|
|
/* f09e754: 924b15b1 */ lbu $t3,0x15b1($s2)
|
|
/* f09e758: 240c0003 */ addiu $t4,$zero,0x3
|
|
/* f09e75c: 568b00c3 */ bnel $s4,$t3,.L0f09ea6c
|
|
/* f09e760: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09e764: a24c15b0 */ sb $t4,0x15b0($s2)
|
|
/* f09e768: 100000bf */ b .L0f09ea68
|
|
/* f09e76c: a24015b1 */ sb $zero,0x15b1($s2)
|
|
/* f09e770: 24010003 */ addiu $at,$zero,0x3
|
|
.L0f09e774:
|
|
/* f09e774: 544100bd */ bnel $v0,$at,.L0f09ea6c
|
|
/* f09e778: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09e77c: 924315b1 */ lbu $v1,0x15b1($s2)
|
|
/* f09e780: 16830003 */ bne $s4,$v1,.L0f09e790
|
|
/* f09e784: 00000000 */ nop
|
|
/* f09e788: a24015b1 */ sb $zero,0x15b1($s2)
|
|
/* f09e78c: 300300ff */ andi $v1,$zero,0xff
|
|
.L0f09e790:
|
|
/* f09e790: 14600056 */ bnez $v1,.L0f09e8ec
|
|
/* f09e794: 00000000 */ nop
|
|
/* f09e798: 8e4d1598 */ lw $t5,0x1598($s2)
|
|
/* f09e79c: 15a00053 */ bnez $t5,.L0f09e8ec
|
|
/* f09e7a0: 00000000 */ nop
|
|
/* f09e7a4: 8eae006c */ lw $t6,0x6c($s5)
|
|
/* f09e7a8: 00003825 */ or $a3,$zero,$zero
|
|
/* f09e7ac: 00002025 */ or $a0,$zero,$zero
|
|
/* f09e7b0: 11c00003 */ beqz $t6,.L0f09e7c0
|
|
/* f09e7b4: 00002825 */ or $a1,$zero,$zero
|
|
/* f09e7b8: 10000001 */ b .L0f09e7c0
|
|
/* f09e7bc: 00c03825 */ or $a3,$a2,$zero
|
|
.L0f09e7c0:
|
|
/* f09e7c0: 8eaf0068 */ lw $t7,0x68($s5)
|
|
/* f09e7c4: 00001025 */ or $v0,$zero,$zero
|
|
/* f09e7c8: 00009825 */ or $s3,$zero,$zero
|
|
/* f09e7cc: 11e00003 */ beqz $t7,.L0f09e7dc
|
|
/* f09e7d0: 26540638 */ addiu $s4,$s2,0x638
|
|
/* f09e7d4: 10000001 */ b .L0f09e7dc
|
|
/* f09e7d8: 00c02025 */ or $a0,$a2,$zero
|
|
.L0f09e7dc:
|
|
/* f09e7dc: 8eb80064 */ lw $t8,0x64($s5)
|
|
/* f09e7e0: 24160f48 */ addiu $s6,$zero,0xf48
|
|
/* f09e7e4: 13000003 */ beqz $t8,.L0f09e7f4
|
|
/* f09e7e8: 00000000 */ nop
|
|
/* f09e7ec: 10000001 */ b .L0f09e7f4
|
|
/* f09e7f0: 00c02825 */ or $a1,$a2,$zero
|
|
.L0f09e7f4:
|
|
/* f09e7f4: 8eb90070 */ lw $t9,0x70($s5)
|
|
/* f09e7f8: 13200003 */ beqz $t9,.L0f09e808
|
|
/* f09e7fc: 00000000 */ nop
|
|
/* f09e800: 10000001 */ b .L0f09e808
|
|
/* f09e804: 00c01025 */ or $v0,$a2,$zero
|
|
.L0f09e808:
|
|
/* f09e808: 00454021 */ addu $t0,$v0,$a1
|
|
/* f09e80c: 01044821 */ addu $t1,$t0,$a0
|
|
/* f09e810: 01275021 */ addu $t2,$t1,$a3
|
|
/* f09e814: 14ca0035 */ bne $a2,$t2,.L0f09e8ec
|
|
.L0f09e818:
|
|
/* f09e818: 02802025 */ or $a0,$s4,$zero
|
|
/* f09e81c: 00008825 */ or $s1,$zero,$zero
|
|
/* f09e820: 0fc2c40f */ jal gsetGetWeaponFunction2
|
|
/* f09e824: 2415ffff */ addiu $s5,$zero,-1
|
|
/* f09e828: 00408025 */ or $s0,$v0,$zero
|
|
/* f09e82c: 0fc2c3f4 */ jal weaponFindById
|
|
/* f09e830: 82441580 */ lb $a0,0x1580($s2)
|
|
/* f09e834: 12000029 */ beqz $s0,.L0f09e8dc
|
|
/* f09e838: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f09e83c: 8e0b0000 */ lw $t3,0x0($s0)
|
|
/* f09e840: 316c00ff */ andi $t4,$t3,0xff
|
|
/* f09e844: 14cc0002 */ bne $a2,$t4,.L0f09e850
|
|
/* f09e848: 00000000 */ nop
|
|
/* f09e84c: 02008825 */ or $s1,$s0,$zero
|
|
.L0f09e850:
|
|
/* f09e850: 1040000d */ beqz $v0,.L0f09e888
|
|
/* f09e854: 00000000 */ nop
|
|
/* f09e858: 1220000b */ beqz $s1,.L0f09e888
|
|
/* f09e85c: 00000000 */ nop
|
|
/* f09e860: 82040007 */ lb $a0,0x7($s0)
|
|
/* f09e864: 00001825 */ or $v1,$zero,$zero
|
|
/* f09e868: 04800004 */ bltz $a0,.L0f09e87c
|
|
/* f09e86c: 00046880 */ sll $t5,$a0,0x2
|
|
/* f09e870: 004d7021 */ addu $t6,$v0,$t5
|
|
/* f09e874: 10000001 */ b .L0f09e87c
|
|
/* f09e878: 8dc3001c */ lw $v1,0x1c($t6)
|
|
.L0f09e87c:
|
|
/* f09e87c: 10600002 */ beqz $v1,.L0f09e888
|
|
/* f09e880: 00000000 */ nop
|
|
/* f09e884: 8c750004 */ lw $s5,0x4($v1)
|
|
.L0f09e888:
|
|
/* f09e888: 06a20015 */ bltzl $s5,.L0f09e8e0
|
|
/* f09e88c: 267307a4 */ addiu $s3,$s3,0x7a4
|
|
/* f09e890: 8e4f1598 */ lw $t7,0x1598($s2)
|
|
/* f09e894: 0015c040 */ sll $t8,$s5,0x1
|
|
/* f09e898: 3c138007 */ lui $s3,%hi(var800700b0)
|
|
/* f09e89c: 15e0000d */ bnez $t7,.L0f09e8d4
|
|
/* f09e8a0: 02789821 */ addu $s3,$s3,$t8
|
|
/* f09e8a4: 967300b0 */ lhu $s3,%lo(var800700b0)($s3)
|
|
/* f09e8a8: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f09e8ac: 26481598 */ addiu $t0,$s2,0x1598
|
|
/* f09e8b0: 264915a8 */ addiu $t1,$s2,0x15a8
|
|
/* f09e8b4: 264a15ac */ addiu $t2,$s2,0x15ac
|
|
/* f09e8b8: a25915b1 */ sb $t9,0x15b1($s2)
|
|
/* f09e8bc: ae4815b4 */ sw $t0,0x15b4($s2)
|
|
/* f09e8c0: ae4915b8 */ sw $t1,0x15b8($s2)
|
|
/* f09e8c4: ae4a15bc */ sw $t2,0x15bc($s2)
|
|
/* f09e8c8: 332300ff */ andi $v1,$t9,0xff
|
|
/* f09e8cc: 10000007 */ b .L0f09e8ec
|
|
/* f09e8d0: a65315b2 */ sh $s3,0x15b2($s2)
|
|
.L0f09e8d4:
|
|
/* f09e8d4: 10000005 */ b .L0f09e8ec
|
|
/* f09e8d8: 924315b1 */ lbu $v1,0x15b1($s2)
|
|
.L0f09e8dc:
|
|
/* f09e8dc: 267307a4 */ addiu $s3,$s3,1956
|
|
.L0f09e8e0:
|
|
/* f09e8e0: 1676ffcd */ bne $s3,$s6,.L0f09e818
|
|
/* f09e8e4: 269407a4 */ addiu $s4,$s4,0x7a4
|
|
/* f09e8e8: 924315b1 */ lbu $v1,0x15b1($s2)
|
|
.L0f09e8ec:
|
|
/* f09e8ec: 10600005 */ beqz $v1,.L0f09e904
|
|
/* f09e8f0: 00008825 */ or $s1,$zero,$zero
|
|
/* f09e8f4: 0fc27851 */ jal bgunTickGunLoad
|
|
/* f09e8f8: 00000000 */ nop
|
|
/* f09e8fc: 1000005b */ b .L0f09ea6c
|
|
/* f09e900: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.L0f09e904:
|
|
/* f09e904: 26500638 */ addiu $s0,$s2,0x638
|
|
/* f09e908: 26160384 */ addiu $s6,$s0,0x384
|
|
/* f09e90c: 00009825 */ or $s3,$zero,$zero
|
|
/* f09e910: 265409bc */ addiu $s4,$s2,0x9bc
|
|
/* f09e914: 26550a6c */ addiu $s5,$s2,0xa6c
|
|
.L0f09e918:
|
|
/* f09e918: 02802025 */ or $a0,$s4,$zero
|
|
/* f09e91c: 8e451590 */ lw $a1,0x1590($s2)
|
|
/* f09e920: 02a03025 */ or $a2,$s5,$zero
|
|
/* f09e924: 0c008be9 */ jal modelInit
|
|
/* f09e928: 00003825 */ or $a3,$zero,$zero
|
|
/* f09e92c: 8e451594 */ lw $a1,0x1594($s2)
|
|
/* f09e930: 26040534 */ addiu $a0,$s0,0x534
|
|
/* f09e934: 260604b4 */ addiu $a2,$s0,0x4b4
|
|
/* f09e938: 50a00004 */ beqzl $a1,.L0f09e94c
|
|
/* f09e93c: 8e4b15a8 */ lw $t3,0x15a8($s2)
|
|
/* f09e940: 0c008be9 */ jal modelInit
|
|
/* f09e944: 00003825 */ or $a3,$zero,$zero
|
|
/* f09e948: 8e4b15a8 */ lw $t3,0x15a8($s2)
|
|
.L0f09e94c:
|
|
/* f09e94c: 02c02025 */ or $a0,$s6,$zero
|
|
/* f09e950: ae0b0794 */ sw $t3,0x794($s0)
|
|
/* f09e954: 8e4c1590 */ lw $t4,0x1590($s2)
|
|
/* f09e958: 8e4615a8 */ lw $a2,0x15a8($s2)
|
|
/* f09e95c: 0fc28ba5 */ jal bgunCreateModelCmdList
|
|
/* f09e960: 8d850000 */ lw $a1,0x0($t4)
|
|
/* f09e964: 8e4d15a8 */ lw $t5,0x15a8($s2)
|
|
/* f09e968: 8e4f15ac */ lw $t7,0x15ac($s2)
|
|
/* f09e96c: 8e591594 */ lw $t9,0x1594($s2)
|
|
/* f09e970: 01a27021 */ addu $t6,$t5,$v0
|
|
/* f09e974: 01e2c023 */ subu $t8,$t7,$v0
|
|
/* f09e978: 02228821 */ addu $s1,$s1,$v0
|
|
/* f09e97c: ae4e15a8 */ sw $t6,0x15a8($s2)
|
|
/* f09e980: 1320000e */ beqz $t9,.L0f09e9bc
|
|
/* f09e984: ae5815ac */ sw $t8,0x15ac($s2)
|
|
/* f09e988: ae0e0798 */ sw $t6,0x798($s0)
|
|
/* f09e98c: 8e491594 */ lw $t1,0x1594($s2)
|
|
/* f09e990: 8e4615a8 */ lw $a2,0x15a8($s2)
|
|
/* f09e994: 26040534 */ addiu $a0,$s0,0x534
|
|
/* f09e998: 0fc28ba5 */ jal bgunCreateModelCmdList
|
|
/* f09e99c: 8d250000 */ lw $a1,0x0($t1)
|
|
/* f09e9a0: 8e4a15a8 */ lw $t2,0x15a8($s2)
|
|
/* f09e9a4: 8e4c15ac */ lw $t4,0x15ac($s2)
|
|
/* f09e9a8: 02228821 */ addu $s1,$s1,$v0
|
|
/* f09e9ac: 01425821 */ addu $t3,$t2,$v0
|
|
/* f09e9b0: 01826823 */ subu $t5,$t4,$v0
|
|
/* f09e9b4: ae4b15a8 */ sw $t3,0x15a8($s2)
|
|
/* f09e9b8: ae4d15ac */ sw $t5,0x15ac($s2)
|
|
.L0f09e9bc:
|
|
/* f09e9bc: 267307a4 */ addiu $s3,$s3,0x7a4
|
|
/* f09e9c0: 24010f48 */ addiu $at,$zero,0xf48
|
|
/* f09e9c4: 261007a4 */ addiu $s0,$s0,0x7a4
|
|
/* f09e9c8: 269407a4 */ addiu $s4,$s4,0x7a4
|
|
/* f09e9cc: 26b507a4 */ addiu $s5,$s5,0x7a4
|
|
/* f09e9d0: 1661ffd1 */ bne $s3,$at,.L0f09e918
|
|
/* f09e9d4: 26d607a4 */ addiu $s6,$s6,0x7a4
|
|
/* f09e9d8: 8e4e15ac */ lw $t6,0x15ac($s2)
|
|
/* f09e9dc: 2410ffff */ addiu $s0,$zero,-1
|
|
/* f09e9e0: ae500dd4 */ sw $s0,0xdd4($s2)
|
|
/* f09e9e4: 2dc10c81 */ sltiu $at,$t6,0xc81
|
|
/* f09e9e8: 5420000b */ bnezl $at,.L0f09ea18
|
|
/* f09e9ec: ae400dd8 */ sw $zero,0xdd8($s2)
|
|
/* f09e9f0: 8e5815a8 */ lw $t8,0x15a8($s2)
|
|
/* f09e9f4: 8e4815ac */ lw $t0,0x15ac($s2)
|
|
/* f09e9f8: 8e4f15a8 */ lw $t7,0x15a8($s2)
|
|
/* f09e9fc: 27190c80 */ addiu $t9,$t8,0xc80
|
|
/* f09ea00: 2509f380 */ addiu $t1,$t0,-3200
|
|
/* f09ea04: ae5915a8 */ sw $t9,0x15a8($s2)
|
|
/* f09ea08: ae4915ac */ sw $t1,0x15ac($s2)
|
|
/* f09ea0c: 10000002 */ b .L0f09ea18
|
|
/* f09ea10: ae4f0dd8 */ sw $t7,0xdd8($s2)
|
|
/* f09ea14: ae400dd8 */ sw $zero,0xdd8($s2)
|
|
.L0f09ea18:
|
|
/* f09ea18: 0fc2777f */ jal bgunCalculateGunMemCapacity
|
|
/* f09ea1c: 00000000 */ nop
|
|
/* f09ea20: 240a0004 */ addiu $t2,$zero,0x4
|
|
/* f09ea24: a24a15b0 */ sb $t2,0x15b0($s2)
|
|
/* f09ea28: 8fab00a4 */ lw $t3,0xa4($sp)
|
|
/* f09ea2c: ae501584 */ sw $s0,0x1584($s2)
|
|
/* f09ea30: 1000000d */ b .L0f09ea68
|
|
/* f09ea34: ae4b1588 */ sw $t3,0x1588($s2)
|
|
.L0f09ea38:
|
|
/* f09ea38: 2410ffff */ addiu $s0,$zero,-1
|
|
/* f09ea3c: 240c0004 */ addiu $t4,$zero,0x4
|
|
/* f09ea40: a24c15b0 */ sb $t4,0x15b0($s2)
|
|
/* f09ea44: ae441588 */ sw $a0,0x1588($s2)
|
|
/* f09ea48: 10000007 */ b .L0f09ea68
|
|
/* f09ea4c: ae501584 */ sw $s0,0x1584($s2)
|
|
.L0f09ea50:
|
|
/* f09ea50: a24d15eb */ sb $t5,0x15eb($s2)
|
|
/* f09ea54: 824e15eb */ lb $t6,0x15eb($s2)
|
|
/* f09ea58: 29c1fffe */ slti $at,$t6,-2
|
|
/* f09ea5c: 50200003 */ beqzl $at,.L0f09ea6c
|
|
/* f09ea60: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09ea64: a24015eb */ sb $zero,0x15eb($s2)
|
|
.L0f09ea68:
|
|
/* f09ea68: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.L0f09ea6c:
|
|
/* f09ea6c: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f09ea70: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f09ea74: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f09ea78: 8fb30024 */ lw $s3,0x24($sp)
|
|
/* f09ea7c: 8fb40028 */ lw $s4,0x28($sp)
|
|
/* f09ea80: 8fb5002c */ lw $s5,0x2c($sp)
|
|
/* f09ea84: 8fb60030 */ lw $s6,0x30($sp)
|
|
/* f09ea88: 03e00008 */ jr $ra
|
|
/* f09ea8c: 27bd00a8 */ addiu $sp,$sp,0xa8
|
|
);
|
|
#else
|
|
GLOBAL_ASM(
|
|
glabel bgunTickMasterLoad
|
|
/* f09c38c: 27bdff58 */ addiu $sp,$sp,-168
|
|
/* f09c390: afb5002c */ sw $s5,0x2c($sp)
|
|
/* f09c394: 3c15800a */ lui $s5,0x800a
|
|
/* f09c398: 26b5e6c0 */ addiu $s5,$s5,-6464
|
|
/* f09c39c: afb20020 */ sw $s2,0x20($sp)
|
|
/* f09c3a0: 8eb20284 */ lw $s2,0x284($s5)
|
|
/* f09c3a4: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f09c3a8: afb60030 */ sw $s6,0x30($sp)
|
|
/* f09c3ac: afb40028 */ sw $s4,0x28($sp)
|
|
/* f09c3b0: afb30024 */ sw $s3,0x24($sp)
|
|
/* f09c3b4: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f09c3b8: afb00018 */ sw $s0,0x18($sp)
|
|
/* f09c3bc: 924e15ea */ lbu $t6,0x15ea($s2)
|
|
/* f09c3c0: 51c00006 */ beqzl $t6,.NB0f09c3dc
|
|
/* f09c3c4: 8e421584 */ lw $v0,0x1584($s2)
|
|
/* f09c3c8: 0fc26fc8 */ jal bgun0f09e004
|
|
/* f09c3cc: 00002025 */ or $a0,$zero,$zero
|
|
/* f09c3d0: 5040014b */ beqzl $v0,.NB0f09c900
|
|
/* f09c3d4: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09c3d8: 8e421584 */ lw $v0,0x1584($s2)
|
|
.NB0f09c3dc:
|
|
/* f09c3dc: 04420148 */ bltzl $v0,.NB0f09c900
|
|
/* f09c3e0: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09c3e4: 824315eb */ lb $v1,0x15eb($s2)
|
|
/* f09c3e8: 27a40068 */ addiu $a0,$sp,0x68
|
|
/* f09c3ec: 27a50064 */ addiu $a1,$sp,0x64
|
|
/* f09c3f0: 1460013c */ bnez $v1,.NB0f09c8e4
|
|
/* f09c3f4: 246dffff */ addiu $t5,$v1,-1
|
|
/* f09c3f8: afa200a4 */ sw $v0,0xa4($sp)
|
|
/* f09c3fc: 0fc2d911 */ jal playerChooseBodyAndHead
|
|
/* f09c400: 00003025 */ or $a2,$zero,$zero
|
|
/* f09c404: 8faf0068 */ lw $t7,0x68($sp)
|
|
/* f09c408: 3c198009 */ lui $t9,0x8009
|
|
/* f09c40c: 933930e0 */ lbu $t9,0x30e0($t9)
|
|
/* f09c410: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f09c414: 030fc021 */ addu $t8,$t8,$t7
|
|
/* f09c418: 0018c080 */ sll $t8,$t8,0x2
|
|
/* f09c41c: 3c118008 */ lui $s1,0x8008
|
|
/* f09c420: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f09c424: 02388821 */ addu $s1,$s1,$t8
|
|
/* f09c428: 14d90002 */ bne $a2,$t9,.NB0f09c434
|
|
/* f09c42c: 9631f774 */ lhu $s1,-0x88c($s1)
|
|
/* f09c430: 241104e5 */ addiu $s1,$zero,0x4e5
|
|
.NB0f09c434:
|
|
/* f09c434: 0fc2bdde */ jal weaponGetModelNum
|
|
/* f09c438: 8fa400a4 */ lw $a0,0xa4($sp)
|
|
/* f09c43c: 924815b0 */ lbu $t0,0x15b0($s2)
|
|
/* f09c440: 24140004 */ addiu $s4,$zero,0x4
|
|
/* f09c444: 3053ffff */ andi $s3,$v0,0xffff
|
|
/* f09c448: 16880003 */ bne $s4,$t0,.NB0f09c458
|
|
/* f09c44c: 8fa900a4 */ lw $t1,0xa4($sp)
|
|
/* f09c450: 8e4a1588 */ lw $t2,0x1588($s2)
|
|
/* f09c454: 112a0129 */ beq $t1,$t2,.NB0f09c8fc
|
|
.NB0f09c458:
|
|
/* f09c458: 304bffff */ andi $t3,$v0,0xffff
|
|
/* f09c45c: 11600127 */ beqz $t3,.NB0f09c8fc
|
|
/* f09c460: 00008025 */ or $s0,$zero,$zero
|
|
/* f09c464: 8fa400a4 */ lw $a0,0xa4($sp)
|
|
/* f09c468: 0fc2bd48 */ jal weaponHasFlag
|
|
/* f09c46c: 3c050002 */ lui $a1,0x2
|
|
/* f09c470: 10400002 */ beqz $v0,.NB0f09c47c
|
|
/* f09c474: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f09c478: 00c08025 */ or $s0,$a2,$zero
|
|
.NB0f09c47c:
|
|
/* f09c47c: 8fac00a4 */ lw $t4,0xa4($sp)
|
|
/* f09c480: 3c05800a */ lui $a1,0x800a
|
|
/* f09c484: 24a51cf0 */ addiu $a1,$a1,0x1cf0
|
|
/* f09c488: 15860004 */ bne $t4,$a2,.NB0f09c49c
|
|
/* f09c48c: 3c03800a */ lui $v1,0x800a
|
|
/* f09c490: 3233ffff */ andi $s3,$s1,0xffff
|
|
/* f09c494: 00008825 */ or $s1,$zero,$zero
|
|
/* f09c498: 00008025 */ or $s0,$zero,$zero
|
|
.NB0f09c49c:
|
|
/* f09c49c: 924215b0 */ lbu $v0,0x15b0($s2)
|
|
/* f09c4a0: 3c048007 */ lui $a0,0x8007
|
|
/* f09c4a4: 24632240 */ addiu $v1,$v1,0x2240
|
|
/* f09c4a8: 14400019 */ bnez $v0,.NB0f09c510
|
|
/* f09c4ac: 24842be4 */ addiu $a0,$a0,0x2be4
|
|
/* f09c4b0: 00a01025 */ or $v0,$a1,$zero
|
|
/* f09c4b4: 8e4d1598 */ lw $t5,0x1598($s2)
|
|
.NB0f09c4b8:
|
|
/* f09c4b8: 8c4e0040 */ lw $t6,0x40($v0)
|
|
/* f09c4bc: 55ae0003 */ bnel $t5,$t6,.NB0f09c4cc
|
|
/* f09c4c0: 24420044 */ addiu $v0,$v0,0x44
|
|
/* f09c4c4: ac400040 */ sw $zero,0x40($v0)
|
|
/* f09c4c8: 24420044 */ addiu $v0,$v0,0x44
|
|
.NB0f09c4cc:
|
|
/* f09c4cc: 0043082b */ sltu $at,$v0,$v1
|
|
/* f09c4d0: 5420fff9 */ bnezl $at,.NB0f09c4b8
|
|
/* f09c4d4: 8e4d1598 */ lw $t5,0x1598($s2)
|
|
/* f09c4d8: ac800000 */ sw $zero,0x0($a0)
|
|
/* f09c4dc: 00a01025 */ or $v0,$a1,$zero
|
|
/* f09c4e0: 8c4f0040 */ lw $t7,0x40($v0)
|
|
.NB0f09c4e4:
|
|
/* f09c4e4: 24420044 */ addiu $v0,$v0,0x44
|
|
/* f09c4e8: 0043082b */ sltu $at,$v0,$v1
|
|
/* f09c4ec: 11e00002 */ beqz $t7,.NB0f09c4f8
|
|
/* f09c4f0: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c4f4: ac860000 */ sw $a2,0x0($a0)
|
|
.NB0f09c4f8:
|
|
/* f09c4f8: 5420fffa */ bnezl $at,.NB0f09c4e4
|
|
/* f09c4fc: 8c4f0040 */ lw $t7,0x40($v0)
|
|
/* f09c500: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f09c504: ae401598 */ sw $zero,0x1598($s2)
|
|
/* f09c508: 100000fc */ beqz $zero,.NB0f09c8fc
|
|
/* f09c50c: a25815b0 */ sb $t8,0x15b0($s2)
|
|
.NB0f09c510:
|
|
/* f09c510: 14c20028 */ bne $a2,$v0,.NB0f09c5b4
|
|
/* f09c514: 24010002 */ addiu $at,$zero,0x2
|
|
/* f09c518: 5200001d */ beqzl $s0,.NB0f09c590
|
|
/* f09c51c: a640159c */ sh $zero,0x159c($s2)
|
|
/* f09c520: 9659159c */ lhu $t9,0x159c($s2)
|
|
/* f09c524: 53310020 */ beql $t9,$s1,.NB0f09c5a8
|
|
/* f09c528: 240e0002 */ addiu $t6,$zero,0x2
|
|
/* f09c52c: 924815b1 */ lbu $t0,0x15b1($s2)
|
|
/* f09c530: 1500000f */ bnez $t0,.NB0f09c570
|
|
/* f09c534: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c538: 0fc26f42 */ jal bgunGetGunMem
|
|
/* f09c53c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c540: 0fc26f46 */ jal bgunCalculateGunMemCapacity
|
|
/* f09c544: ae4215a0 */ sw $v0,0x15a0($s2)
|
|
/* f09c548: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f09c54c: 264a1594 */ addiu $t2,$s2,0x1594
|
|
/* f09c550: 264b15a0 */ addiu $t3,$s2,0x15a0
|
|
/* f09c554: 264c15a4 */ addiu $t4,$s2,0x15a4
|
|
/* f09c558: ae4215a4 */ sw $v0,0x15a4($s2)
|
|
/* f09c55c: a24915b1 */ sb $t1,0x15b1($s2)
|
|
/* f09c560: a65115b2 */ sh $s1,0x15b2($s2)
|
|
/* f09c564: ae4a15b4 */ sw $t2,0x15b4($s2)
|
|
/* f09c568: ae4b15b8 */ sw $t3,0x15b8($s2)
|
|
/* f09c56c: ae4c15bc */ sw $t4,0x15bc($s2)
|
|
.NB0f09c570:
|
|
/* f09c570: 0fc27018 */ jal bgunTickGunLoad
|
|
/* f09c574: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c578: 924d15b1 */ lbu $t5,0x15b1($s2)
|
|
/* f09c57c: 568d00e0 */ bnel $s4,$t5,.NB0f09c900
|
|
/* f09c580: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09c584: 10000007 */ beqz $zero,.NB0f09c5a4
|
|
/* f09c588: a651159c */ sh $s1,0x159c($s2)
|
|
/* f09c58c: a640159c */ sh $zero,0x159c($s2)
|
|
.NB0f09c590:
|
|
/* f09c590: 0fc26f42 */ jal bgunGetGunMem
|
|
/* f09c594: ae401594 */ sw $zero,0x1594($s2)
|
|
/* f09c598: 0fc26f46 */ jal bgunCalculateGunMemCapacity
|
|
/* f09c59c: ae4215a0 */ sw $v0,0x15a0($s2)
|
|
/* f09c5a0: ae4215a4 */ sw $v0,0x15a4($s2)
|
|
.NB0f09c5a4:
|
|
/* f09c5a4: 240e0002 */ addiu $t6,$zero,0x2
|
|
.NB0f09c5a8:
|
|
/* f09c5a8: a24e15b0 */ sb $t6,0x15b0($s2)
|
|
/* f09c5ac: 100000d3 */ beqz $zero,.NB0f09c8fc
|
|
/* f09c5b0: a24015b1 */ sb $zero,0x15b1($s2)
|
|
.NB0f09c5b4:
|
|
/* f09c5b4: 5441001a */ bnel $v0,$at,.NB0f09c620
|
|
/* f09c5b8: 24010003 */ addiu $at,$zero,0x3
|
|
/* f09c5bc: 924f15b1 */ lbu $t7,0x15b1($s2)
|
|
/* f09c5c0: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f09c5c4: 26491590 */ addiu $t1,$s2,0x1590
|
|
/* f09c5c8: 15e0000b */ bnez $t7,.NB0f09c5f8
|
|
/* f09c5cc: 264a15a8 */ addiu $t2,$s2,0x15a8
|
|
/* f09c5d0: 8e5815a0 */ lw $t8,0x15a0($s2)
|
|
/* f09c5d4: 8e5915a4 */ lw $t9,0x15a4($s2)
|
|
/* f09c5d8: 264b15ac */ addiu $t3,$s2,0x15ac
|
|
/* f09c5dc: a24815b1 */ sb $t0,0x15b1($s2)
|
|
/* f09c5e0: a65315b2 */ sh $s3,0x15b2($s2)
|
|
/* f09c5e4: ae4915b4 */ sw $t1,0x15b4($s2)
|
|
/* f09c5e8: ae4a15b8 */ sw $t2,0x15b8($s2)
|
|
/* f09c5ec: ae4b15bc */ sw $t3,0x15bc($s2)
|
|
/* f09c5f0: ae5815a8 */ sw $t8,0x15a8($s2)
|
|
/* f09c5f4: ae5915ac */ sw $t9,0x15ac($s2)
|
|
.NB0f09c5f8:
|
|
/* f09c5f8: 0fc27018 */ jal bgunTickGunLoad
|
|
/* f09c5fc: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c600: 924c15b1 */ lbu $t4,0x15b1($s2)
|
|
/* f09c604: 240d0003 */ addiu $t5,$zero,0x3
|
|
/* f09c608: 568c00bd */ bnel $s4,$t4,.NB0f09c900
|
|
/* f09c60c: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09c610: a24d15b0 */ sb $t5,0x15b0($s2)
|
|
/* f09c614: 100000b9 */ beqz $zero,.NB0f09c8fc
|
|
/* f09c618: a24015b1 */ sb $zero,0x15b1($s2)
|
|
/* f09c61c: 24010003 */ addiu $at,$zero,0x3
|
|
.NB0f09c620:
|
|
/* f09c620: 544100b7 */ bnel $v0,$at,.NB0f09c900
|
|
/* f09c624: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09c628: 924315b1 */ lbu $v1,0x15b1($s2)
|
|
/* f09c62c: 16830003 */ bne $s4,$v1,.NB0f09c63c
|
|
/* f09c630: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c634: a24015b1 */ sb $zero,0x15b1($s2)
|
|
/* f09c638: 300300ff */ andi $v1,$zero,0xff
|
|
.NB0f09c63c:
|
|
/* f09c63c: 14600056 */ bnez $v1,.NB0f09c798
|
|
/* f09c640: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c644: 8e4e1598 */ lw $t6,0x1598($s2)
|
|
/* f09c648: 15c00053 */ bnez $t6,.NB0f09c798
|
|
/* f09c64c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c650: 8eaf006c */ lw $t7,0x6c($s5)
|
|
/* f09c654: 00003825 */ or $a3,$zero,$zero
|
|
/* f09c658: 00002025 */ or $a0,$zero,$zero
|
|
/* f09c65c: 11e00003 */ beqz $t7,.NB0f09c66c
|
|
/* f09c660: 00002825 */ or $a1,$zero,$zero
|
|
/* f09c664: 10000001 */ beqz $zero,.NB0f09c66c
|
|
/* f09c668: 00c03825 */ or $a3,$a2,$zero
|
|
.NB0f09c66c:
|
|
/* f09c66c: 8eb80068 */ lw $t8,0x68($s5)
|
|
/* f09c670: 00001025 */ or $v0,$zero,$zero
|
|
/* f09c674: 00009825 */ or $s3,$zero,$zero
|
|
/* f09c678: 13000003 */ beqz $t8,.NB0f09c688
|
|
/* f09c67c: 26540638 */ addiu $s4,$s2,0x638
|
|
/* f09c680: 10000001 */ beqz $zero,.NB0f09c688
|
|
/* f09c684: 00c02025 */ or $a0,$a2,$zero
|
|
.NB0f09c688:
|
|
/* f09c688: 8eb90064 */ lw $t9,0x64($s5)
|
|
/* f09c68c: 24160f48 */ addiu $s6,$zero,0xf48
|
|
/* f09c690: 13200003 */ beqz $t9,.NB0f09c6a0
|
|
/* f09c694: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c698: 10000001 */ beqz $zero,.NB0f09c6a0
|
|
/* f09c69c: 00c02825 */ or $a1,$a2,$zero
|
|
.NB0f09c6a0:
|
|
/* f09c6a0: 8ea80070 */ lw $t0,0x70($s5)
|
|
/* f09c6a4: 11000003 */ beqz $t0,.NB0f09c6b4
|
|
/* f09c6a8: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c6ac: 10000001 */ beqz $zero,.NB0f09c6b4
|
|
/* f09c6b0: 00c01025 */ or $v0,$a2,$zero
|
|
.NB0f09c6b4:
|
|
/* f09c6b4: 00454821 */ addu $t1,$v0,$a1
|
|
/* f09c6b8: 01245021 */ addu $t2,$t1,$a0
|
|
/* f09c6bc: 01475821 */ addu $t3,$t2,$a3
|
|
/* f09c6c0: 14cb0035 */ bne $a2,$t3,.NB0f09c798
|
|
.NB0f09c6c4:
|
|
/* f09c6c4: 02802025 */ or $a0,$s4,$zero
|
|
/* f09c6c8: 00008825 */ or $s1,$zero,$zero
|
|
/* f09c6cc: 0fc2bb67 */ jal gsetGetWeaponFunction2
|
|
/* f09c6d0: 2415ffff */ addiu $s5,$zero,-1
|
|
/* f09c6d4: 00408025 */ or $s0,$v0,$zero
|
|
/* f09c6d8: 0fc2bb4c */ jal weaponFindById
|
|
/* f09c6dc: 82441580 */ lb $a0,0x1580($s2)
|
|
/* f09c6e0: 12000029 */ beqz $s0,.NB0f09c788
|
|
/* f09c6e4: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f09c6e8: 8e0c0000 */ lw $t4,0x0($s0)
|
|
/* f09c6ec: 318d00ff */ andi $t5,$t4,0xff
|
|
/* f09c6f0: 14cd0002 */ bne $a2,$t5,.NB0f09c6fc
|
|
/* f09c6f4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c6f8: 02008825 */ or $s1,$s0,$zero
|
|
.NB0f09c6fc:
|
|
/* f09c6fc: 1040000d */ beqz $v0,.NB0f09c734
|
|
/* f09c700: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c704: 1220000b */ beqz $s1,.NB0f09c734
|
|
/* f09c708: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c70c: 82040007 */ lb $a0,0x7($s0)
|
|
/* f09c710: 00001825 */ or $v1,$zero,$zero
|
|
/* f09c714: 04800004 */ bltz $a0,.NB0f09c728
|
|
/* f09c718: 00047080 */ sll $t6,$a0,0x2
|
|
/* f09c71c: 004e7821 */ addu $t7,$v0,$t6
|
|
/* f09c720: 10000001 */ beqz $zero,.NB0f09c728
|
|
/* f09c724: 8de3001c */ lw $v1,0x1c($t7)
|
|
.NB0f09c728:
|
|
/* f09c728: 10600002 */ beqz $v1,.NB0f09c734
|
|
/* f09c72c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c730: 8c750004 */ lw $s5,0x4($v1)
|
|
.NB0f09c734:
|
|
/* f09c734: 06a20015 */ bltzl $s5,.NB0f09c78c
|
|
/* f09c738: 267307a4 */ addiu $s3,$s3,0x7a4
|
|
/* f09c73c: 8e581598 */ lw $t8,0x1598($s2)
|
|
/* f09c740: 0015c840 */ sll $t9,$s5,0x1
|
|
/* f09c744: 3c138007 */ lui $s3,0x8007
|
|
/* f09c748: 1700000d */ bnez $t8,.NB0f09c780
|
|
/* f09c74c: 02799821 */ addu $s3,$s3,$t9
|
|
/* f09c750: 96732770 */ lhu $s3,0x2770($s3)
|
|
/* f09c754: 24080001 */ addiu $t0,$zero,0x1
|
|
/* f09c758: 26491598 */ addiu $t1,$s2,0x1598
|
|
/* f09c75c: 264a15a8 */ addiu $t2,$s2,0x15a8
|
|
/* f09c760: 264b15ac */ addiu $t3,$s2,0x15ac
|
|
/* f09c764: a24815b1 */ sb $t0,0x15b1($s2)
|
|
/* f09c768: ae4915b4 */ sw $t1,0x15b4($s2)
|
|
/* f09c76c: ae4a15b8 */ sw $t2,0x15b8($s2)
|
|
/* f09c770: ae4b15bc */ sw $t3,0x15bc($s2)
|
|
/* f09c774: 310300ff */ andi $v1,$t0,0xff
|
|
/* f09c778: 10000007 */ beqz $zero,.NB0f09c798
|
|
/* f09c77c: a65315b2 */ sh $s3,0x15b2($s2)
|
|
.NB0f09c780:
|
|
/* f09c780: 10000005 */ beqz $zero,.NB0f09c798
|
|
/* f09c784: 924315b1 */ lbu $v1,0x15b1($s2)
|
|
.NB0f09c788:
|
|
/* f09c788: 267307a4 */ addiu $s3,$s3,0x7a4
|
|
.NB0f09c78c:
|
|
/* f09c78c: 1676ffcd */ bne $s3,$s6,.NB0f09c6c4
|
|
/* f09c790: 269407a4 */ addiu $s4,$s4,0x7a4
|
|
/* f09c794: 924315b1 */ lbu $v1,0x15b1($s2)
|
|
.NB0f09c798:
|
|
/* f09c798: 10600005 */ beqz $v1,.NB0f09c7b0
|
|
/* f09c79c: 00008825 */ or $s1,$zero,$zero
|
|
/* f09c7a0: 0fc27018 */ jal bgunTickGunLoad
|
|
/* f09c7a4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c7a8: 10000055 */ beqz $zero,.NB0f09c900
|
|
/* f09c7ac: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.NB0f09c7b0:
|
|
/* f09c7b0: 26500638 */ addiu $s0,$s2,0x638
|
|
/* f09c7b4: 26160384 */ addiu $s6,$s0,0x384
|
|
/* f09c7b8: 00009825 */ or $s3,$zero,$zero
|
|
/* f09c7bc: 265409bc */ addiu $s4,$s2,0x9bc
|
|
/* f09c7c0: 26550a6c */ addiu $s5,$s2,0xa6c
|
|
.NB0f09c7c4:
|
|
/* f09c7c4: 02802025 */ or $a0,$s4,$zero
|
|
/* f09c7c8: 8e451590 */ lw $a1,0x1590($s2)
|
|
/* f09c7cc: 02a03025 */ or $a2,$s5,$zero
|
|
/* f09c7d0: 0c00900f */ jal modelInit
|
|
/* f09c7d4: 00003825 */ or $a3,$zero,$zero
|
|
/* f09c7d8: 8e451594 */ lw $a1,0x1594($s2)
|
|
/* f09c7dc: 26040534 */ addiu $a0,$s0,0x534
|
|
/* f09c7e0: 260604b4 */ addiu $a2,$s0,0x4b4
|
|
/* f09c7e4: 50a00004 */ beqzl $a1,.NB0f09c7f8
|
|
/* f09c7e8: 8e4c15a8 */ lw $t4,0x15a8($s2)
|
|
/* f09c7ec: 0c00900f */ jal modelInit
|
|
/* f09c7f0: 00003825 */ or $a3,$zero,$zero
|
|
/* f09c7f4: 8e4c15a8 */ lw $t4,0x15a8($s2)
|
|
.NB0f09c7f8:
|
|
/* f09c7f8: 02c02025 */ or $a0,$s6,$zero
|
|
/* f09c7fc: ae0c0794 */ sw $t4,0x794($s0)
|
|
/* f09c800: 8e4d1590 */ lw $t5,0x1590($s2)
|
|
/* f09c804: 8e4615a8 */ lw $a2,0x15a8($s2)
|
|
/* f09c808: 0fc282e3 */ jal bgunCreateModelCmdList
|
|
/* f09c80c: 8da50000 */ lw $a1,0x0($t5)
|
|
/* f09c810: 8e4e15a8 */ lw $t6,0x15a8($s2)
|
|
/* f09c814: 8e5815ac */ lw $t8,0x15ac($s2)
|
|
/* f09c818: 8e481594 */ lw $t0,0x1594($s2)
|
|
/* f09c81c: 01c27821 */ addu $t7,$t6,$v0
|
|
/* f09c820: 0302c823 */ subu $t9,$t8,$v0
|
|
/* f09c824: 02228821 */ addu $s1,$s1,$v0
|
|
/* f09c828: ae4f15a8 */ sw $t7,0x15a8($s2)
|
|
/* f09c82c: 1100000e */ beqz $t0,.NB0f09c868
|
|
/* f09c830: ae5915ac */ sw $t9,0x15ac($s2)
|
|
/* f09c834: ae0f0798 */ sw $t7,0x798($s0)
|
|
/* f09c838: 8e4a1594 */ lw $t2,0x1594($s2)
|
|
/* f09c83c: 8e4615a8 */ lw $a2,0x15a8($s2)
|
|
/* f09c840: 26040534 */ addiu $a0,$s0,0x534
|
|
/* f09c844: 0fc282e3 */ jal bgunCreateModelCmdList
|
|
/* f09c848: 8d450000 */ lw $a1,0x0($t2)
|
|
/* f09c84c: 8e4b15a8 */ lw $t3,0x15a8($s2)
|
|
/* f09c850: 8e4d15ac */ lw $t5,0x15ac($s2)
|
|
/* f09c854: 02228821 */ addu $s1,$s1,$v0
|
|
/* f09c858: 01626021 */ addu $t4,$t3,$v0
|
|
/* f09c85c: 01a27023 */ subu $t6,$t5,$v0
|
|
/* f09c860: ae4c15a8 */ sw $t4,0x15a8($s2)
|
|
/* f09c864: ae4e15ac */ sw $t6,0x15ac($s2)
|
|
.NB0f09c868:
|
|
/* f09c868: 267307a4 */ addiu $s3,$s3,0x7a4
|
|
/* f09c86c: 24010f48 */ addiu $at,$zero,0xf48
|
|
/* f09c870: 261007a4 */ addiu $s0,$s0,0x7a4
|
|
/* f09c874: 269407a4 */ addiu $s4,$s4,0x7a4
|
|
/* f09c878: 26b507a4 */ addiu $s5,$s5,0x7a4
|
|
/* f09c87c: 1661ffd1 */ bne $s3,$at,.NB0f09c7c4
|
|
/* f09c880: 26d607a4 */ addiu $s6,$s6,0x7a4
|
|
/* f09c884: 8e4f15ac */ lw $t7,0x15ac($s2)
|
|
/* f09c888: 2410ffff */ addiu $s0,$zero,-1
|
|
/* f09c88c: ae500dd4 */ sw $s0,0xdd4($s2)
|
|
/* f09c890: 2de10c81 */ sltiu $at,$t7,0xc81
|
|
/* f09c894: 5420000b */ bnezl $at,.NB0f09c8c4
|
|
/* f09c898: ae400dd8 */ sw $zero,0xdd8($s2)
|
|
/* f09c89c: 8e5915a8 */ lw $t9,0x15a8($s2)
|
|
/* f09c8a0: 8e4915ac */ lw $t1,0x15ac($s2)
|
|
/* f09c8a4: 8e5815a8 */ lw $t8,0x15a8($s2)
|
|
/* f09c8a8: 27280c80 */ addiu $t0,$t9,0xc80
|
|
/* f09c8ac: 252af380 */ addiu $t2,$t1,-3200
|
|
/* f09c8b0: ae4815a8 */ sw $t0,0x15a8($s2)
|
|
/* f09c8b4: ae4a15ac */ sw $t2,0x15ac($s2)
|
|
/* f09c8b8: 10000002 */ beqz $zero,.NB0f09c8c4
|
|
/* f09c8bc: ae580dd8 */ sw $t8,0xdd8($s2)
|
|
/* f09c8c0: ae400dd8 */ sw $zero,0xdd8($s2)
|
|
.NB0f09c8c4:
|
|
/* f09c8c4: 0fc26f46 */ jal bgunCalculateGunMemCapacity
|
|
/* f09c8c8: 00000000 */ sll $zero,$zero,0x0
|
|
/* f09c8cc: 240b0004 */ addiu $t3,$zero,0x4
|
|
/* f09c8d0: a24b15b0 */ sb $t3,0x15b0($s2)
|
|
/* f09c8d4: 8fac00a4 */ lw $t4,0xa4($sp)
|
|
/* f09c8d8: ae501584 */ sw $s0,0x1584($s2)
|
|
/* f09c8dc: 10000007 */ beqz $zero,.NB0f09c8fc
|
|
/* f09c8e0: ae4c1588 */ sw $t4,0x1588($s2)
|
|
.NB0f09c8e4:
|
|
/* f09c8e4: a24d15eb */ sb $t5,0x15eb($s2)
|
|
/* f09c8e8: 824e15eb */ lb $t6,0x15eb($s2)
|
|
/* f09c8ec: 29c1fffe */ slti $at,$t6,-2
|
|
/* f09c8f0: 50200003 */ beqzl $at,.NB0f09c900
|
|
/* f09c8f4: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f09c8f8: a24015eb */ sb $zero,0x15eb($s2)
|
|
.NB0f09c8fc:
|
|
/* f09c8fc: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.NB0f09c900:
|
|
/* f09c900: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f09c904: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f09c908: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f09c90c: 8fb30024 */ lw $s3,0x24($sp)
|
|
/* f09c910: 8fb40028 */ lw $s4,0x28($sp)
|
|
/* f09c914: 8fb5002c */ lw $s5,0x2c($sp)
|
|
/* f09c918: 8fb60030 */ lw $s6,0x30($sp)
|
|
/* f09c91c: 03e00008 */ jr $ra
|
|
/* f09c920: 27bd00a8 */ addiu $sp,$sp,0xa8
|
|
);
|
|
#endif
|
|
|
|
//void bgunTickMasterLoad(void)
|
|
//{
|
|
// s32 spa4;
|
|
// s32 bodynum;
|
|
// s32 headnum;
|
|
// u16 handfilenum;
|
|
// s32 sum;
|
|
// u16 gunfilenum;
|
|
// s32 i;
|
|
//
|
|
// struct player *player = g_Vars.currentplayer;
|
|
//
|
|
// if ((player->gunctrl.gunmemowner == GUNMEMOWNER_BONDGUN || bgun0f09e004(GUNMEMOWNER_BONDGUN)) && player->gunctrl.gunmemnew >= 0) {
|
|
// if (player->gunctrl.gunlocktimer == 0) {
|
|
// spa4 = player->gunctrl.gunmemnew;
|
|
//
|
|
// playerChooseBodyAndHead(&bodynum, &headnum, NULL);
|
|
//
|
|
// handfilenum = g_HeadsAndBodies[bodynum].handfilenum;
|
|
//
|
|
// if (IS4MB()) {
|
|
// handfilenum = FILE_GCOMBATHANDSLOD;
|
|
// }
|
|
//
|
|
// gunfilenum = weaponGetModelNum(spa4);
|
|
//
|
|
// if (player->gunctrl.masterloadstate != MASTERLOADSTATE_LOADED || spa4 != player->gunctrl.gunmemtype) {
|
|
// if (gunfilenum) {
|
|
// bool hashands = false;
|
|
//
|
|
// if (weaponHasFlag(spa4, WEAPONFLAG_HASHANDS)) {
|
|
// hashands = true;
|
|
// }
|
|
//
|
|
// if (spa4 == WEAPON_UNARMED) {
|
|
// // For unarmed, the fists are implemented
|
|
// // as weapon models rather than hand models
|
|
// gunfilenum = handfilenum;
|
|
// handfilenum = 0;
|
|
// hashands = false;
|
|
// }
|
|
//
|
|
// if (player->gunctrl.masterloadstate == MASTERLOADSTATE_FLUX) {
|
|
// struct casing *casing = g_Casings;
|
|
//
|
|
// while (casing < &g_Casings[ARRAYCOUNT(g_Casings)]) {
|
|
// if (casing->modeldef == player->gunctrl.cartmodeldef) {
|
|
// casing->modeldef = NULL;
|
|
// }
|
|
//
|
|
// casing++;
|
|
// }
|
|
//
|
|
// g_CasingsActive = false;
|
|
//
|
|
// casing = g_Casings;
|
|
//
|
|
// while (casing < &g_Casings[ARRAYCOUNT(g_Casings)]) {
|
|
// if (casing->modeldef != NULL) {
|
|
// g_CasingsActive = true;
|
|
// }
|
|
//
|
|
// casing++;
|
|
// }
|
|
//
|
|
// player->gunctrl.cartmodeldef = NULL;
|
|
// player->gunctrl.masterloadstate = MASTERLOADSTATE_HANDS;
|
|
// } else if (player->gunctrl.masterloadstate == MASTERLOADSTATE_HANDS) {
|
|
// if (hashands) {
|
|
// if (handfilenum != player->gunctrl.handfilenum) {
|
|
// if (player->gunctrl.gunloadstate == GUNLOADSTATE_FLUX) {
|
|
// player->gunctrl.unk15a0 = bgunGetGunMem();
|
|
// player->gunctrl.unk15a4 = bgunCalculateGunMemCapacity();
|
|
// player->gunctrl.gunloadstate = GUNLOADSTATE_MODEL;
|
|
// player->gunctrl.loadfilenum = handfilenum;
|
|
// player->gunctrl.loadtomodeldef = &player->gunctrl.handmodeldef;
|
|
// player->gunctrl.loadmemptr = &player->gunctrl.unk15a0;
|
|
// player->gunctrl.loadmemremaining = &player->gunctrl.unk15a4;
|
|
// }
|
|
//
|
|
// bgunTickGunLoad();
|
|
//
|
|
// if (player->gunctrl.gunloadstate == GUNLOADSTATE_LOADED) {
|
|
// player->gunctrl.handfilenum = handfilenum;
|
|
// } else {
|
|
// return;
|
|
// }
|
|
// }
|
|
// } else {
|
|
// player->gunctrl.handfilenum = 0;
|
|
// player->gunctrl.handmodeldef = NULL;
|
|
// player->gunctrl.unk15a0 = bgunGetGunMem();
|
|
// player->gunctrl.unk15a4 = bgunCalculateGunMemCapacity();
|
|
// }
|
|
//
|
|
// player->gunctrl.masterloadstate = MASTERLOADSTATE_GUN;
|
|
// player->gunctrl.gunloadstate = GUNLOADSTATE_FLUX;
|
|
// } else if (player->gunctrl.masterloadstate == MASTERLOADSTATE_GUN) {
|
|
// if (player->gunctrl.gunloadstate == GUNLOADSTATE_FLUX) {
|
|
// player->gunctrl.gunloadstate = GUNLOADSTATE_MODEL;
|
|
// player->gunctrl.loadfilenum = gunfilenum;
|
|
// player->gunctrl.loadtomodeldef = &player->gunctrl.gunmodeldef;
|
|
// player->gunctrl.loadmemptr = &player->gunctrl.unk15a8;
|
|
// player->gunctrl.loadmemremaining = &player->gunctrl.unk15ac;
|
|
// player->gunctrl.unk15a8 = (u32)player->gunctrl.unk15a0;
|
|
// player->gunctrl.unk15ac = player->gunctrl.unk15a4;
|
|
// }
|
|
//
|
|
// bgunTickGunLoad();
|
|
//
|
|
// if (player->gunctrl.gunloadstate == GUNLOADSTATE_LOADED) {
|
|
// player->gunctrl.masterloadstate = MASTERLOADSTATE_CARTS;
|
|
// player->gunctrl.gunloadstate = GUNLOADSTATE_FLUX;
|
|
// }
|
|
// } else if (player->gunctrl.masterloadstate == MASTERLOADSTATE_CARTS) {
|
|
// struct hand *hand;
|
|
//
|
|
// if (player->gunctrl.gunloadstate == GUNLOADSTATE_LOADED) {
|
|
// player->gunctrl.gunloadstate = GUNLOADSTATE_FLUX;
|
|
// }
|
|
//
|
|
// if (player->gunctrl.gunloadstate == GUNLOADSTATE_FLUX && player->gunctrl.cartmodeldef == NULL && PLAYERCOUNT() == 1) {
|
|
// for (i = 0; i < 2; i++) {
|
|
// struct weaponfunc *func;
|
|
// struct weapon *weapondef;
|
|
// s32 casingindex = -1;
|
|
//
|
|
// func = gsetGetWeaponFunction2(&player->hands[i].gset);
|
|
// weapondef = weaponFindById(player->gunctrl.weaponnum);
|
|
//
|
|
// if (func != NULL) {
|
|
// struct weaponfunc *shootfunc = NULL;
|
|
//
|
|
// if ((func->type & 0xff) == INVENTORYFUNCTYPE_SHOOT) {
|
|
// shootfunc = func;
|
|
// }
|
|
//
|
|
// if (weapondef && shootfunc) {
|
|
// struct inventory_ammo *ammodef = func->ammoindex >= 0 ? weapondef->ammos[func->ammoindex] : NULL;
|
|
//
|
|
// if (ammodef) {
|
|
// casingindex = ammodef->casingeject;
|
|
// }
|
|
// }
|
|
//
|
|
// if (casingindex >= 0) {
|
|
// if (player->gunctrl.cartmodeldef == NULL) {
|
|
// player->gunctrl.loadfilenum = var800700b0[casingindex];
|
|
// player->gunctrl.gunloadstate = GUNLOADSTATE_MODEL;
|
|
// player->gunctrl.loadtomodeldef = &player->gunctrl.cartmodeldef;
|
|
// player->gunctrl.loadmemptr = &player->gunctrl.unk15a8;
|
|
// player->gunctrl.loadmemremaining = &player->gunctrl.unk15ac;
|
|
// break;
|
|
// }
|
|
//
|
|
// break;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// if (player->gunctrl.gunloadstate != GUNLOADSTATE_FLUX) {
|
|
// bgunTickGunLoad();
|
|
// return;
|
|
// }
|
|
//
|
|
// sum = 0;
|
|
//
|
|
// for (i = 0; i < 2; i++) {
|
|
// s32 value;
|
|
// hand = &player->hands[i];
|
|
//
|
|
// modelInit(&hand->gunmodel, player->gunctrl.gunmodeldef, (union modelrwdata **)hand->unk0a6c, 0);
|
|
//
|
|
// if (player->gunctrl.handmodeldef != 0) {
|
|
// modelInit(&hand->handmodel, player->gunctrl.handmodeldef, (union modelrwdata **)hand->handsavedata, false);
|
|
// }
|
|
//
|
|
// hand->unk0dcc = player->gunctrl.unk15a8;
|
|
//
|
|
// value = bgunCreateModelCmdList(&hand->gunmodel, player->gunctrl.gunmodeldef->rootnode, player->gunctrl.unk15a8);
|
|
//
|
|
// sum += value;
|
|
// player->gunctrl.unk15a8 += value;
|
|
// player->gunctrl.unk15ac -= value;
|
|
//
|
|
// if (player->gunctrl.handmodeldef != 0) {
|
|
// hand->unk0dd0 = player->gunctrl.unk15a8;
|
|
//
|
|
// value = bgunCreateModelCmdList(&hand->handmodel, player->gunctrl.handmodeldef->rootnode, player->gunctrl.unk15a8);
|
|
//
|
|
// sum += value;
|
|
// player->gunctrl.unk15a8 += value;
|
|
// player->gunctrl.unk15ac -= value;
|
|
// }
|
|
// }
|
|
//
|
|
// hand = &player->hands[0];
|
|
// hand->unk0dd4 = -1;
|
|
//
|
|
// if (player->gunctrl.unk15ac > 3200) {
|
|
// hand->unk0dd8 = player->gunctrl.unk15a8;
|
|
// player->gunctrl.unk15a8 += 3200;
|
|
// player->gunctrl.unk15ac -= 3200;
|
|
// } else {
|
|
// hand->unk0dd8 = 0;
|
|
// }
|
|
//
|
|
// bgunCalculateGunMemCapacity();
|
|
//
|
|
// player->gunctrl.masterloadstate = MASTERLOADSTATE_LOADED;
|
|
// player->gunctrl.gunmemtype = spa4;
|
|
// player->gunctrl.gunmemnew = -1;
|
|
// }
|
|
// }
|
|
//#if VERSION >= VERSION_NTSC_1_0
|
|
// else {
|
|
// player->gunctrl.masterloadstate = MASTERLOADSTATE_LOADED;
|
|
// player->gunctrl.gunmemtype = spa4;
|
|
// player->gunctrl.gunmemnew = -1;
|
|
// }
|
|
//#endif
|
|
// }
|
|
// } else {
|
|
// player->gunctrl.gunlocktimer--;
|
|
//
|
|
// if (player->gunctrl.gunlocktimer < -2) {
|
|
// player->gunctrl.gunlocktimer = 0;
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
void bgunTickLoad(void)
|
|
{
|
|
s32 i;
|
|
|
|
for (i = 0; i < g_Vars.lvupdate240; i += 8) {
|
|
bgunTickMasterLoad();
|
|
}
|
|
}
|
|
|
|
bool bgun0f09eae4(void)
|
|
{
|
|
// PAL adds a check for the eyespy being used
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
if ((g_Vars.currentplayer->devicesactive & ~g_Vars.currentplayer->devicesinhibit & DEVICE_EYESPY)) {
|
|
g_Vars.currentplayer->gunctrl.unk1583_06 = false;
|
|
return false;
|
|
}
|
|
#endif
|
|
|
|
bgun0f09df9c();
|
|
|
|
if (g_Vars.currentplayer->gunctrl.weaponnum != WEAPON_NONE) {
|
|
g_Vars.currentplayer->gunctrl.gunmemnew = g_Vars.currentplayer->gunctrl.weaponnum;
|
|
} else {
|
|
return false;
|
|
}
|
|
|
|
if (g_Vars.currentplayer->gunctrl.gunmemtype != -1) {
|
|
return false;
|
|
}
|
|
|
|
if (g_Vars.currentplayer->gunctrl.gunmemowner != GUNMEMOWNER_BONDGUN) {
|
|
bgun0f09e004(GUNMEMOWNER_BONDGUN);
|
|
|
|
if (g_Vars.currentplayer->gunctrl.gunmemowner != GUNMEMOWNER_BONDGUN) {
|
|
g_Vars.lockscreen = true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
bgun0f09df9c();
|
|
|
|
do {
|
|
bgunTickMasterLoad();
|
|
} while (!bgun0f09dd7c());
|
|
|
|
g_Vars.currentplayer->gunctrl.unk1583_06 = false;
|
|
|
|
return false;
|
|
}
|
|
|
|
struct modelfiledata *bgunGetCartModeldef(void)
|
|
{
|
|
return g_Vars.currentplayer->gunctrl.cartmodeldef;
|
|
}
|
|
|
|
void bgun0f09ebcc(struct defaultobj *obj, struct coord *coord, s16 *rooms, Mtxf *matrix1, struct coord *velocity, Mtxf *matrix2, struct prop *prop, struct coord *pos)
|
|
{
|
|
struct prop *objprop = obj->prop;
|
|
|
|
if (objprop) {
|
|
propActivate(objprop);
|
|
propEnable(objprop);
|
|
mtx00015f04(obj->model->scale, matrix1);
|
|
func0f06a580(obj, coord, matrix1, rooms);
|
|
|
|
if (obj->type == OBJTYPE_WEAPON && ((struct weaponobj *) obj)->weaponnum == WEAPON_BOLT) {
|
|
s32 beamnum = boltbeamFindByProp(objprop);
|
|
|
|
if (beamnum == -1) {
|
|
beamnum = boltbeamCreate(objprop);
|
|
}
|
|
|
|
if (beamnum != -1) {
|
|
boltbeamSetHeadPos(beamnum, pos);
|
|
boltbeamSetTailPos(beamnum, pos);
|
|
}
|
|
}
|
|
|
|
func0f0685e4(objprop);
|
|
|
|
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
|
obj->projectile->flags |= PROJECTILEFLAG_AIRBORNE;
|
|
obj->projectile->ownerprop = prop;
|
|
|
|
projectileSetSticky(objprop);
|
|
mtx4Copy(matrix2, (Mtxf *)&obj->projectile->mtx);
|
|
|
|
obj->projectile->speed.x = velocity->x;
|
|
obj->projectile->speed.y = velocity->y;
|
|
obj->projectile->speed.z = velocity->z;
|
|
obj->projectile->obj = obj;
|
|
obj->projectile->unk0d8 = g_Vars.lvframenum;
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgun0f09ed2c(struct defaultobj *obj, struct coord *newpos, Mtxf *arg2, struct coord *velocity, Mtxf *arg4)
|
|
{
|
|
struct prop *objprop = obj->prop;
|
|
struct coord pos;
|
|
s16 rooms[8];
|
|
|
|
if (objprop) {
|
|
struct prop *playerprop = g_Vars.currentplayer->prop;
|
|
|
|
pos.x = playerprop->pos.x;
|
|
pos.y = playerprop->pos.y;
|
|
pos.z = playerprop->pos.z;
|
|
|
|
roomsCopy(playerprop->rooms, rooms);
|
|
|
|
bgun0f09ebcc(obj, &pos, rooms, arg2, velocity, arg4, playerprop, newpos);
|
|
|
|
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
|
obj->projectile->flags |= PROJECTILEFLAG_LAUNCHING;
|
|
|
|
obj->projectile->nextsteppos.x = newpos->x;
|
|
obj->projectile->nextsteppos.y = newpos->y;
|
|
obj->projectile->nextsteppos.z = newpos->z;
|
|
}
|
|
}
|
|
}
|
|
|
|
struct defaultobj *bgunCreateThrownProjectile2(struct chrdata *chr, struct gset *gset, struct coord *pos, s16 *rooms, Mtxf *arg4, struct coord *velocity)
|
|
{
|
|
struct defaultobj *obj = NULL;
|
|
struct weaponfunc *basefunc;
|
|
struct weaponfunc_throw *func;
|
|
struct weapon *weapon = weaponFindById(gset->weaponnum);
|
|
struct weaponobj *weaponobj;
|
|
struct autogunobj *autogun;
|
|
Mtxf mtx;
|
|
s32 playernum;
|
|
|
|
if (weapon == NULL) {
|
|
return false;
|
|
}
|
|
|
|
basefunc = weapon->functions[gset->weaponfunc];
|
|
func = (struct weaponfunc_throw *) basefunc;
|
|
|
|
if (func == NULL) {
|
|
return false;
|
|
}
|
|
|
|
if (gset->weaponnum == WEAPON_COMBATKNIFE) {
|
|
guRotateF(mtx.m, 90.0f / (RANDOMFRAC() + 12.1f),
|
|
arg4->m[1][0], arg4->m[1][1], arg4->m[1][2]);
|
|
} else {
|
|
mtxLoadRandomRotation(&mtx);
|
|
}
|
|
|
|
if (gset->weaponnum == WEAPON_LAPTOPGUN) {
|
|
autogun = laptopDeploy(func->projectilemodelnum, gset, chr);
|
|
|
|
if (autogun != NULL) {
|
|
obj = &autogun->base;
|
|
}
|
|
} else {
|
|
weaponobj = weaponCreateProjectileFromGset(func->projectilemodelnum, gset, chr);
|
|
|
|
if (weaponobj != NULL) {
|
|
obj = &weaponobj->base;
|
|
|
|
// Note this timer is converted to 240 time immediately below
|
|
weaponobj->timer240 = func->activatetime60;
|
|
|
|
if (weaponobj->timer240 >= 2) {
|
|
weaponobj->timer240 = TICKS(weaponobj->timer240 * 4);
|
|
}
|
|
|
|
if (weaponobj->weaponnum == WEAPON_GRENADE || weaponobj->weaponnum == WEAPON_NBOMB) {
|
|
propSetDangerous(weaponobj->base.prop);
|
|
}
|
|
|
|
if (func->projectilemodelnum == MODEL_CHRREMOTEMINE
|
|
|| func->projectilemodelnum == MODEL_CHRTIMEDMINE
|
|
|| func->projectilemodelnum == MODEL_CHRPROXIMITYMINE
|
|
|| func->projectilemodelnum == MODEL_CHRECMMINE) {
|
|
weaponobj->base.flags3 |= OBJFLAG3_00000008;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (obj != NULL) {
|
|
bgun0f09ebcc(obj, pos, rooms, arg4, velocity, &mtx, chr->prop, pos);
|
|
|
|
obj->hidden &= 0x0fffffff;
|
|
|
|
if (g_Vars.normmplayerisrunning) {
|
|
playernum = mpPlayerGetIndex(chr);
|
|
} else {
|
|
playernum = playermgrGetPlayerNumByProp(chr->prop);
|
|
}
|
|
|
|
obj->hidden |= playernum << 28;
|
|
|
|
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
|
obj->projectile->flags |= PROJECTILEFLAG_00000002;
|
|
obj->projectile->unk08c = 0.1f;
|
|
obj->projectile->pickuptimer240 = TICKS(240);
|
|
|
|
propsnd0f0939f8(NULL, obj->prop, SFX_THROW, -1,
|
|
-1, 0, 0, 0, NULL, -1, NULL, -1, -1, -1, -1);
|
|
}
|
|
}
|
|
|
|
return obj;
|
|
}
|
|
|
|
/**
|
|
* handnum supports some unusual values:
|
|
*
|
|
* 0 = right hand
|
|
* 1 = left hand
|
|
* 2 = fumbling grenade from right hand (due to nbomb)
|
|
* 3 = fumbling grenade from left hand (actually not possible)
|
|
*/
|
|
void bgunCreateThrownProjectile(s32 handnum, struct gset *gset)
|
|
{
|
|
struct coord velocity = {0, 0, 0};
|
|
Mtxf sp1f4;
|
|
struct coord sp1e8;
|
|
struct coord sp1dc;
|
|
struct prop *playerprop = g_Vars.currentplayer->prop;
|
|
struct coord *prevpos = &g_Vars.currentplayer->bondprevpos;
|
|
struct coord *extrapos = &g_Vars.currentplayer->bondextrapos;
|
|
Mtxf sp190;
|
|
struct defaultobj *obj;
|
|
struct weaponobj *weapon;
|
|
struct coord muzzlepos;
|
|
struct coord spawnpos;
|
|
s16 spawnrooms[8];
|
|
bool droppinggrenade = false;
|
|
struct hand *hand;
|
|
struct coord aimpos;
|
|
struct coord sp140;
|
|
f32 frac;
|
|
f32 radians;
|
|
Mtxf spf8;
|
|
Mtxf spb8;
|
|
Mtxf sp78;
|
|
f32 sp68[4];
|
|
f32 sp58[4];
|
|
f32 sp48[4];
|
|
struct trainingdata *data;
|
|
u32 stack;
|
|
|
|
if (handnum >= 2) {
|
|
droppinggrenade = true;
|
|
handnum -= 2;
|
|
}
|
|
|
|
hand = g_Vars.currentplayer->hands + handnum;
|
|
|
|
muzzlepos.x = g_Vars.currentplayer->hands[handnum].muzzlepos.x;
|
|
muzzlepos.y = g_Vars.currentplayer->hands[handnum].muzzlepos.y;
|
|
muzzlepos.z = g_Vars.currentplayer->hands[handnum].muzzlepos.z;
|
|
|
|
mtx4LoadIdentity(&sp1f4);
|
|
|
|
if (gset->weaponnum == WEAPON_COMBATKNIFE) {
|
|
mtx4LoadZRotation(4.711639f, &sp1f4);
|
|
mtx4LoadXRotation(3.1410925f, &sp190);
|
|
mtx4MultMtx4InPlace(&sp190, &sp1f4);
|
|
}
|
|
|
|
mtx4Copy(&g_Vars.currentplayer->hands[handnum].muzzlemat, &sp190);
|
|
|
|
guNormalize(&sp190.m[0][0], &sp190.m[0][1], &sp190.m[0][2]);
|
|
guNormalize(&sp190.m[1][0], &sp190.m[1][1], &sp190.m[1][2]);
|
|
guNormalize(&sp190.m[2][0], &sp190.m[2][1], &sp190.m[2][2]);
|
|
|
|
sp190.m[3][0] = 0.0f;
|
|
sp190.m[3][1] = 0.0f;
|
|
sp190.m[3][2] = 0.0f;
|
|
|
|
mtx4MultMtx4InPlace(&sp190, &sp1f4);
|
|
|
|
playerSetPerimEnabled(playerprop, false);
|
|
|
|
if (cd0002deac(&playerprop->pos, playerprop->rooms, &muzzlepos, spawnrooms, CDTYPE_ALL) != CDRESULT_COLLISION) {
|
|
spawnpos.x = muzzlepos.x;
|
|
spawnpos.y = muzzlepos.y;
|
|
spawnpos.z = muzzlepos.z;
|
|
} else {
|
|
spawnpos.x = playerprop->pos.x;
|
|
spawnpos.y = playerprop->pos.y;
|
|
spawnpos.z = playerprop->pos.z;
|
|
|
|
roomsCopy(playerprop->rooms, spawnrooms);
|
|
}
|
|
|
|
playerSetPerimEnabled(playerprop, true);
|
|
|
|
bgunCalculatePlayerShotSpread(&sp1e8, &sp1dc, handnum, true);
|
|
mtx4RotateVecInPlace(camGetProjectionMtxF(), &sp1dc);
|
|
|
|
if (droppinggrenade) {
|
|
// Dropping a grenade because player is in an nbomb storm
|
|
velocity.x = sp1dc.x * 1.6666666f;
|
|
velocity.y = sp1dc.y * 1.6666666f;
|
|
velocity.z = sp1dc.z * 1.6666666f;
|
|
} else if (gsetHasFunctionFlags(&hand->gset, FUNCFLAG_CALCULATETRAJECTORY)) {
|
|
// Calculate the velocity based on the trajectory to the aimpos
|
|
func0f061d54(0, 0, 0);
|
|
|
|
if (hand->hasdotinfo) {
|
|
aimpos.x = hand->dotpos.x;
|
|
aimpos.y = hand->dotpos.y;
|
|
aimpos.z = hand->dotpos.z;
|
|
|
|
chrCalculateTrajectory(&spawnpos, 21.666666f, &aimpos, &sp140);
|
|
|
|
radians = acosf(sp1dc.f[0] * sp140.f[0] + sp1dc.f[1] * sp140.f[1] + sp1dc.f[2] * sp140.f[2]);
|
|
|
|
// Check within 20 degrees
|
|
if (radians > 0.34901026f || radians < -0.34901026f) {
|
|
mtx00016b58(&spf8, 0, 0, 0, sp1dc.x, sp1dc.y, sp1dc.z, 0, 1, 0);
|
|
mtx00016b58(&spb8, 0, 0, 0, sp140.x, sp140.y, sp140.z, 0, 1, 0);
|
|
|
|
quaternion0f097044(&spf8, sp68);
|
|
quaternion0f097044(&spb8, sp58);
|
|
quaternion0f0976c0(sp68, sp58);
|
|
|
|
frac = 0.34901025891304f / radians;
|
|
|
|
if (frac < 0.0f) {
|
|
frac = -frac;
|
|
}
|
|
|
|
quaternionSlerp(sp68, sp58, frac, sp48);
|
|
quaternionToMtx(sp48, &sp78);
|
|
|
|
sp1dc.x = -sp78.m[2][0];
|
|
sp1dc.y = -sp78.m[2][1];
|
|
sp1dc.z = -sp78.m[2][2];
|
|
} else {
|
|
sp1dc.x = sp140.x;
|
|
sp1dc.y = sp140.y;
|
|
sp1dc.z = sp140.z;
|
|
}
|
|
}
|
|
|
|
velocity.x = sp1dc.x * 21.666666f;
|
|
velocity.y = sp1dc.y * 21.666666f;
|
|
velocity.z = sp1dc.z * 21.666666f;
|
|
} else {
|
|
// Simple velocity
|
|
velocity.x = sp1dc.x * 16.666666f;
|
|
velocity.y = sp1dc.y * 16.666666f;
|
|
velocity.z = sp1dc.z * 16.666666f;
|
|
|
|
if (gset->weaponnum == WEAPON_GRENADE || gset->weaponnum == WEAPON_NBOMB) {
|
|
velocity.y += 1.6666666f;
|
|
} else {
|
|
velocity.y += 5.0f;
|
|
}
|
|
}
|
|
|
|
if (gset->weaponnum == WEAPON_LAPTOPGUN) {
|
|
bgunFreeWeapon(handnum);
|
|
}
|
|
|
|
// Add player movement to velocity
|
|
if (g_Vars.lvupdate240 > 0) {
|
|
velocity.x += (playerprop->pos.x - prevpos->x + extrapos->x) / g_Vars.lvupdate240freal;
|
|
velocity.y += (playerprop->pos.y - prevpos->y + extrapos->y) / g_Vars.lvupdate240freal;
|
|
velocity.z += (playerprop->pos.z - prevpos->z + extrapos->z) / g_Vars.lvupdate240freal;
|
|
}
|
|
|
|
obj = bgunCreateThrownProjectile2(g_Vars.currentplayer->prop->chr, gset, &spawnpos, spawnrooms, &sp1f4, &velocity);
|
|
|
|
if (obj) {
|
|
if (obj->type == OBJTYPE_WEAPON) {
|
|
weapon = (struct weaponobj *)obj;
|
|
|
|
if (gset->weaponnum == WEAPON_GRENADE && gset->weaponfunc == FUNC_PRIMARY) {
|
|
if (weapon->timer240 < hand->primetimer60 * 4) {
|
|
weapon->timer240 = 0;
|
|
} else {
|
|
weapon->timer240 -= hand->primetimer60 * 4;
|
|
}
|
|
|
|
weapon->gunfunc = gset->weaponfunc;
|
|
} else if (gset->weaponnum == WEAPON_ECMMINE && g_Vars.stagenum == STAGE_CITRAINING) {
|
|
data = dtGetData();
|
|
|
|
if (data->intraining) {
|
|
data->obj = obj;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
|
obj->projectile->flags |= PROJECTILEFLAG_LAUNCHING;
|
|
obj->projectile->nextsteppos.x = muzzlepos.x;
|
|
obj->projectile->nextsteppos.y = muzzlepos.y;
|
|
obj->projectile->nextsteppos.z = muzzlepos.z;
|
|
|
|
if (gset->weaponnum == WEAPON_GRENADE && gset->weaponfunc == FUNC_SECONDARY) {
|
|
obj->projectile->unk08c = 1.0f;
|
|
}
|
|
|
|
if (gset->weaponnum == WEAPON_COMBATKNIFE) {
|
|
// In theory, weapon can be uninitialised here,
|
|
// but in practice it's always set.
|
|
weapon->base.projectile->flags |= PROJECTILEFLAG_00000002;
|
|
weapon->base.projectile->unk08c = 0.1f;
|
|
weapon->base.projectile->pickuptimer240 = TICKS(240);
|
|
weapon->base.hidden |= OBJHFLAG_00000020;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgunUpdateHeldRocket(s32 handnum)
|
|
{
|
|
struct hand *hand = &g_Vars.currentplayer->hands[handnum];
|
|
struct defaultobj *obj = &hand->rocket->base;
|
|
|
|
if (obj) {
|
|
struct prop *objprop = obj->prop;
|
|
Mtxf mtx;
|
|
|
|
if (objprop) {
|
|
struct prop *playerprop = g_Vars.currentplayer->prop;
|
|
struct model *model = obj->model;
|
|
|
|
if (!hand->firedrocket) {
|
|
mtx4Copy(&hand->posmtx, &mtx);
|
|
|
|
mtx.m[3][0] = 0;
|
|
mtx.m[3][1] = 0;
|
|
mtx.m[3][2] = 0;
|
|
|
|
mtx00015f04(obj->model->scale, &mtx);
|
|
func0f06a580(obj, &hand->muzzlepos, &mtx, playerprop->rooms);
|
|
propDeregisterRooms(objprop);
|
|
}
|
|
|
|
model->matrices = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf));
|
|
|
|
mtx4Copy(&hand->muzzlemat, &model->matrices[0]);
|
|
model0001cb0c(model, model->filedata->rootnode);
|
|
|
|
objprop->flags |= PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONTHISSCREENTHISTICK;
|
|
objprop->z = -model->matrices[0].m[3][2];
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgunCreateHeldRocket(s32 handnum, struct weaponfunc_shootprojectile *func)
|
|
{
|
|
struct hand *hand = &g_Vars.currentplayer->hands[handnum];
|
|
struct weaponobj *obj;
|
|
|
|
if (hand->rocket == NULL) {
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
hand->firedrocket = false;
|
|
#endif
|
|
|
|
obj = weaponCreateProjectileFromWeaponNum(func->projectilemodelnum, WEAPON_ROCKET, g_Vars.currentplayer->prop->chr);
|
|
|
|
if (obj != NULL) {
|
|
hand->rocket = obj;
|
|
hand->firedrocket = false;
|
|
|
|
obj->timer240 = 1;
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
obj->base.flags |= OBJFLAG_00800000;
|
|
#endif
|
|
obj->base.flags2 |= OBJFLAG2_THROWTHROUGH;
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgunFreeHeldRocket(s32 handnum)
|
|
{
|
|
struct hand *hand = &g_Vars.currentplayer->hands[handnum];
|
|
|
|
if (hand->rocket) {
|
|
objFreePermanently(&hand->rocket->base, true);
|
|
hand->rocket = NULL;
|
|
}
|
|
}
|
|
|
|
void bgunCreateFiredProjectile(s32 handnum)
|
|
{
|
|
struct weapon *weapondef;
|
|
struct hand *hand;
|
|
Mtxf sp270;
|
|
struct coord sp264;
|
|
f32 sp260;
|
|
f32 sp25c;
|
|
struct coord sp250;
|
|
Mtxf sp210;
|
|
struct coord sp204;
|
|
struct coord sp1f8;
|
|
struct prop *playerprop;
|
|
struct coord *prevpos;
|
|
struct coord *extrapos;
|
|
struct coord spawnpos;
|
|
struct weaponobj *weapon;
|
|
struct weaponfunc *tmp;
|
|
struct weaponfunc_shootprojectile *funcdef;
|
|
struct coord aimpos;
|
|
struct coord sp1bc;
|
|
f32 frac;
|
|
f32 radians;
|
|
Mtxf sp174;
|
|
Mtxf sp134;
|
|
Mtxf spf4;
|
|
f32 spe4[4];
|
|
f32 spd4[4];
|
|
f32 spc4[4];
|
|
|
|
hand = g_Vars.currentplayer->hands + handnum;
|
|
|
|
playerprop = g_Vars.currentplayer->prop;
|
|
prevpos = &g_Vars.currentplayer->bondprevpos;
|
|
extrapos = &g_Vars.currentplayer->bondextrapos;
|
|
|
|
weapondef = weaponFindById(hand->gset.weaponnum);
|
|
|
|
if (weapondef) {
|
|
tmp = weapondef->functions[hand->gset.weaponfunc];
|
|
|
|
if (tmp && tmp->type == INVENTORYFUNCTYPE_SHOOT_PROJECTILE) {
|
|
funcdef = (struct weaponfunc_shootprojectile *)tmp;
|
|
|
|
mtx4LoadIdentity(&sp270);
|
|
bgunCalculatePlayerShotSpread(&sp204, &sp1f8, handnum, true);
|
|
mtx4RotateVecInPlace(camGetProjectionMtxF(), &sp1f8);
|
|
|
|
spawnpos.x = hand->muzzlepos.x;
|
|
spawnpos.y = hand->muzzlepos.y;
|
|
spawnpos.z = hand->muzzlepos.z;
|
|
|
|
if (hand->gset.weaponnum == WEAPON_SLAYER && hand->gset.weaponfunc == FUNC_SECONDARY) {
|
|
spawnpos.x += 50.0f * sp1f8.x;
|
|
spawnpos.y += 50.0f * sp1f8.y;
|
|
spawnpos.z += 50.0f * sp1f8.z;
|
|
}
|
|
|
|
sp260 = funcdef->unk4c * 1.6666666f / 60.0f;
|
|
sp25c = funcdef->unk54 * 1.6666666f;
|
|
|
|
if (gsetHasFunctionFlags(&hand->gset, FUNCFLAG_CALCULATETRAJECTORY)) {
|
|
func0f061d54(0, 0, 0);
|
|
|
|
if (hand->hasdotinfo) {
|
|
aimpos.x = hand->dotpos.x;
|
|
aimpos.y = hand->dotpos.y;
|
|
aimpos.z = hand->dotpos.z;
|
|
|
|
chrCalculateTrajectory(&spawnpos, sp25c, &aimpos, &sp1bc);
|
|
|
|
radians = acosf(sp1f8.f[0] * sp1bc.f[0] + sp1f8.f[1] * sp1bc.f[1] + sp1f8.f[2] * sp1bc.f[2]);
|
|
|
|
if (radians > 0.17450513f || radians < -0.17450513f) {
|
|
mtx00016b58(&sp174, 0.0f, 0.0f, 0.0f, sp1f8.x, sp1f8.y, sp1f8.z, 0.0f, 1.0f, 0.0f);
|
|
mtx00016b58(&sp134, 0.0f, 0.0f, 0.0f, sp1bc.x, sp1bc.y, sp1bc.z, 0.0f, 1.0f, 0.0f);
|
|
|
|
quaternion0f097044(&sp174, spe4);
|
|
quaternion0f097044(&sp134, spd4);
|
|
quaternion0f0976c0(spe4, spd4);
|
|
|
|
frac = 0.17450513f / radians;
|
|
|
|
if (frac < 0.0f) {
|
|
frac = -frac;
|
|
}
|
|
|
|
quaternionSlerp(spe4, spd4, frac, spc4);
|
|
quaternionToMtx(spc4, &spf4);
|
|
|
|
sp1f8.x = -spf4.m[2][0];
|
|
sp1f8.y = -spf4.m[2][1];
|
|
sp1f8.z = -spf4.m[2][2];
|
|
} else {
|
|
sp1f8.x = sp1bc.x;
|
|
sp1f8.y = sp1bc.y;
|
|
sp1f8.z = sp1bc.z;
|
|
}
|
|
}
|
|
}
|
|
|
|
sp250.x = sp1f8.x * sp260;
|
|
sp250.y = sp1f8.y * sp260;
|
|
sp250.z = sp1f8.z * sp260;
|
|
|
|
sp264.x = sp250.f[0] * g_Vars.lvupdate240freal + sp1f8.f[0] * sp25c;
|
|
sp264.y = sp250.f[1] * g_Vars.lvupdate240freal + sp1f8.f[1] * sp25c;
|
|
sp264.z = sp250.f[2] * g_Vars.lvupdate240freal + sp1f8.f[2] * sp25c;
|
|
|
|
if ((funcdef->base.base.flags & FUNCFLAG_FLYBYWIRE) == 0 && g_Vars.lvupdate240 > 0) {
|
|
sp264.x += (playerprop->pos.x - prevpos->x + extrapos->x) / g_Vars.lvupdate240freal;
|
|
sp264.y += (playerprop->pos.y - prevpos->y + extrapos->y) / g_Vars.lvupdate240freal;
|
|
sp264.z += (playerprop->pos.z - prevpos->z + extrapos->z) / g_Vars.lvupdate240freal;
|
|
}
|
|
|
|
mtx4Copy(&g_Vars.currentplayer->hands[handnum].posmtx, &sp210);
|
|
|
|
sp210.m[3][0] = 0.0f;
|
|
sp210.m[3][1] = 0.0f;
|
|
sp210.m[3][2] = 0.0f;
|
|
|
|
if (hand->rocket) {
|
|
hand->firedrocket = true;
|
|
|
|
weapon = hand->rocket;
|
|
weapon->base.flags2 &= ~OBJFLAG2_THROWTHROUGH;
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
weapon->base.flags &= ~OBJFLAG_00800000;
|
|
#endif
|
|
|
|
if (funcdef->base.base.flags & FUNCFLAG_HOMINGROCKET) {
|
|
weapon->weaponnum = WEAPON_HOMINGROCKET;
|
|
}
|
|
} else if (hand->gset.weaponnum == WEAPON_ROCKETLAUNCHER || hand->gset.weaponnum == WEAPON_SLAYER) {
|
|
u32 stack;
|
|
s32 weaponnum = WEAPON_ROCKET;
|
|
|
|
if (funcdef->base.base.flags & FUNCFLAG_HOMINGROCKET) {
|
|
weaponnum = WEAPON_HOMINGROCKET;
|
|
}
|
|
|
|
weapon = weaponCreateProjectileFromWeaponNum(funcdef->projectilemodelnum, weaponnum, g_Vars.currentplayer->prop->chr);
|
|
} else if (hand->gset.weaponnum == WEAPON_CROSSBOW) {
|
|
weapon = weaponCreateProjectileFromWeaponNum(funcdef->projectilemodelnum, WEAPON_BOLT, g_Vars.currentplayer->prop->chr);
|
|
|
|
if (weapon) {
|
|
weapon->gunfunc = hand->gset.weaponfunc;
|
|
}
|
|
} else if (hand->gset.weaponnum == WEAPON_DEVASTATOR) {
|
|
weapon = weaponCreateProjectileFromWeaponNum(funcdef->projectilemodelnum, WEAPON_GRENADEROUND, g_Vars.currentplayer->prop->chr);
|
|
|
|
if (weapon) {
|
|
weapon->gunfunc = hand->gset.weaponfunc;
|
|
}
|
|
} else if (hand->gset.weaponnum == WEAPON_SUPERDRAGON) {
|
|
weapon = weaponCreateProjectileFromWeaponNum(funcdef->projectilemodelnum, WEAPON_GRENADEROUND, g_Vars.currentplayer->prop->chr);
|
|
|
|
if (weapon) {
|
|
weapon->gunfunc = FUNC_2;
|
|
}
|
|
} else {
|
|
weapon = weaponCreateProjectileFromGset(funcdef->projectilemodelnum, &hand->gset, g_Vars.currentplayer->prop->chr);
|
|
}
|
|
|
|
if (weapon) {
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
bool failed = false;
|
|
Mtxf sp78;
|
|
struct coord sp6c;
|
|
struct coord sp60;
|
|
|
|
if (weapon->base.model && weapon->base.model->filedata) {
|
|
weapon->timer240 = funcdef->timer60;
|
|
|
|
if (weapon->timer240 != -1) {
|
|
weapon->timer240 = TICKS(weapon->timer240 * 4);
|
|
}
|
|
|
|
weapon->base.hidden &= 0x0fffffff;
|
|
weapon->base.hidden |= g_Vars.currentplayernum << 28;
|
|
|
|
bgun0f09ed2c(&weapon->base, &spawnpos, &sp210, &sp264, &sp270);
|
|
|
|
if (weapon->base.hidden & OBJHFLAG_PROJECTILE) {
|
|
if (funcdef->base.base.flags & FUNCFLAG_PROJECTILE_LIGHTWEIGHT) {
|
|
weapon->base.projectile->flags |= PROJECTILEFLAG_LIGHTWEIGHT;
|
|
} else if (funcdef->base.base.flags & FUNCFLAG_PROJECTILE_POWERED) {
|
|
weapon->base.projectile->flags |= PROJECTILEFLAG_POWERED;
|
|
}
|
|
|
|
weapon->base.projectile->targetprop = g_Vars.currentplayer->trackedprops[0].prop;
|
|
|
|
if (funcdef->scale != 1.0f) {
|
|
weapon->base.model->scale *= funcdef->scale;
|
|
|
|
mtx3ToMtx4(weapon->base.realrot, &sp78);
|
|
mtx00015f04(funcdef->scale, &sp78);
|
|
mtx4ToMtx3(&sp78, weapon->base.realrot);
|
|
}
|
|
|
|
weapon->base.projectile->powerlimit240 = TICKS(1200);
|
|
weapon->base.projectile->unk0a8 = weapon->base.prop->pos.y;
|
|
weapon->base.projectile->unk0ac = weapon->base.projectile->speed.y;
|
|
weapon->base.projectile->unk010 = sp250.x;
|
|
weapon->base.projectile->unk014 = sp250.y;
|
|
weapon->base.projectile->unk018 = sp250.z;
|
|
weapon->base.projectile->pickuptimer240 = TICKS(240);
|
|
weapon->base.projectile->unk08c = funcdef->unk5c;
|
|
weapon->base.projectile->unk098 = funcdef->unk50 * 1.6666666f;
|
|
|
|
if (funcdef->soundnum > 0) {
|
|
propsnd0f0939f8(NULL, weapon->base.prop, funcdef->soundnum, -1, -1, 0, 0, 0, 0, -1.0f, 0, -1, -1.0f, -1.0f, -1.0f);
|
|
}
|
|
|
|
if (funcdef->base.base.flags & FUNCFLAG_FLYBYWIRE) {
|
|
playerLaunchSlayerRocket(weapon);
|
|
}
|
|
|
|
if (weapon->base.projectile->flags & PROJECTILEFLAG_LAUNCHING) {
|
|
projectileLaunch(&weapon->base, weapon->base.projectile, &sp6c, &sp60);
|
|
}
|
|
} else {
|
|
failed = true;
|
|
}
|
|
} else {
|
|
failed = true;
|
|
}
|
|
|
|
if (failed) {
|
|
weapon->timer240 = -1;
|
|
|
|
if (weapon->base.prop) {
|
|
propFree(weapon->base.prop);
|
|
}
|
|
|
|
if (weapon->base.model) {
|
|
modelFree(weapon->base.model);
|
|
}
|
|
|
|
weapon->base.prop = NULL;
|
|
weapon->base.model = NULL;
|
|
}
|
|
#else
|
|
// NTSC beta doesn't have any of the failure checks
|
|
Mtxf sp78;
|
|
struct coord sp6c;
|
|
struct coord sp60;
|
|
|
|
weapon->timer240 = funcdef->timer60;
|
|
|
|
if (weapon->timer240 != -1) {
|
|
weapon->timer240 = TICKS(weapon->timer240 * 4);
|
|
}
|
|
|
|
weapon->base.hidden &= 0x0fffffff;
|
|
weapon->base.hidden |= g_Vars.currentplayernum << 28;
|
|
|
|
bgun0f09ed2c(&weapon->base, &spawnpos, &sp210, &sp264, &sp270);
|
|
|
|
if (weapon->base.hidden & OBJHFLAG_PROJECTILE) {
|
|
if (funcdef->base.base.flags & FUNCFLAG_PROJECTILE_LIGHTWEIGHT) {
|
|
weapon->base.projectile->flags |= PROJECTILEFLAG_LIGHTWEIGHT;
|
|
} else if (funcdef->base.base.flags & FUNCFLAG_PROJECTILE_POWERED) {
|
|
weapon->base.projectile->flags |= PROJECTILEFLAG_POWERED;
|
|
}
|
|
|
|
weapon->base.projectile->targetprop = g_Vars.currentplayer->trackedprops[0].prop;
|
|
|
|
if (funcdef->scale != 1.0f) {
|
|
weapon->base.model->scale *= funcdef->scale;
|
|
|
|
mtx3ToMtx4(weapon->base.realrot, &sp78);
|
|
mtx00015f04(funcdef->scale, &sp78);
|
|
mtx4ToMtx3(&sp78, weapon->base.realrot);
|
|
}
|
|
|
|
weapon->base.projectile->powerlimit240 = TICKS(1200);
|
|
weapon->base.projectile->unk0a8 = weapon->base.prop->pos.y;
|
|
weapon->base.projectile->unk0ac = weapon->base.projectile->speed.y;
|
|
weapon->base.projectile->unk010 = sp250.x;
|
|
weapon->base.projectile->unk014 = sp250.y;
|
|
weapon->base.projectile->unk018 = sp250.z;
|
|
weapon->base.projectile->pickuptimer240 = TICKS(240);
|
|
weapon->base.projectile->unk08c = funcdef->unk5c;
|
|
weapon->base.projectile->unk098 = funcdef->unk50 * 1.6666666f;
|
|
|
|
if (funcdef->soundnum > 0) {
|
|
propsnd0f0939f8(NULL, weapon->base.prop, funcdef->soundnum, -1, -1, 0, 0, 0, 0, -1.0f, 0, -1, -1.0f, -1.0f, -1.0f);
|
|
}
|
|
|
|
if (funcdef->base.base.flags & FUNCFLAG_FLYBYWIRE) {
|
|
playerLaunchSlayerRocket(weapon);
|
|
}
|
|
|
|
if (weapon->base.projectile->flags & PROJECTILEFLAG_LAUNCHING) {
|
|
projectileLaunch(&weapon->base, weapon->base.projectile, &sp6c, &sp60);
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgunSwivel(f32 screenx, f32 screeny, f32 crossdamp, f32 aimdamp)
|
|
{
|
|
f32 screenwidth = camGetScreenWidth();
|
|
f32 screenheight = camGetScreenHeight();
|
|
struct player *player = g_Vars.currentplayer;
|
|
struct coord aimpos;
|
|
s32 l;
|
|
s32 h;
|
|
f32 x[2];
|
|
f32 y[2];
|
|
bool ignore[2] = {false, false};
|
|
s32 numframes;
|
|
struct hand *hand;
|
|
struct coord sp94;
|
|
f32 sp8c[2];
|
|
|
|
x[HAND_RIGHT] = x[HAND_LEFT] = screenx;
|
|
y[HAND_RIGHT] = y[HAND_LEFT] = screeny;
|
|
|
|
ignore[HAND_LEFT] = !player->hands[HAND_LEFT].inuse;
|
|
ignore[HAND_RIGHT] = !player->hands[HAND_RIGHT].inuse;
|
|
|
|
// If using right hand only and reloading,
|
|
// recentre until the reload animation is almost complete
|
|
if (!player->hands[HAND_LEFT].inuse
|
|
&& player->hands[HAND_RIGHT].state == HANDSTATE_RELOAD
|
|
&& player->hands[HAND_RIGHT].unk0ce8) {
|
|
numframes = 25;
|
|
|
|
if (player->hands[HAND_RIGHT].gset.weaponnum == WEAPON_CROSSBOW) {
|
|
numframes = 5;
|
|
}
|
|
|
|
if ((s32)bgun0f09815c(&player->hands[HAND_RIGHT]) < modelGetNumAnimFrames(&player->hands[HAND_RIGHT].gunmodel) - numframes) {
|
|
x[HAND_RIGHT] = 0.0f;
|
|
y[HAND_RIGHT] = 0.0f;
|
|
ignore[HAND_RIGHT] = true;
|
|
}
|
|
}
|
|
|
|
if (player->hands[HAND_LEFT].gset.weaponnum == WEAPON_REMOTEMINE) {
|
|
x[HAND_LEFT] = g_Vars.currentplayer->speedtheta * 0.3f + g_Vars.currentplayer->gunextraaimx;
|
|
y[HAND_LEFT] = -g_Vars.currentplayer->speedverta * 0.1f + g_Vars.currentplayer->gunextraaimy;
|
|
ignore[HAND_LEFT] = true;
|
|
}
|
|
|
|
if (player->hands[HAND_RIGHT].gset.weaponnum == WEAPON_UNARMED) {
|
|
x[HAND_RIGHT] = g_Vars.currentplayer->speedtheta * 0.3f + g_Vars.currentplayer->gunextraaimx;
|
|
y[HAND_RIGHT] = -g_Vars.currentplayer->speedverta * 0.1f + g_Vars.currentplayer->gunextraaimy;
|
|
ignore[HAND_RIGHT] = true;
|
|
}
|
|
|
|
if (g_Vars.currentplayer->teleportstate != TELEPORTSTATE_INACTIVE) {
|
|
ignore[HAND_LEFT] = ignore[HAND_RIGHT] = true;
|
|
}
|
|
|
|
// This loop only iterates once
|
|
for (h = 0; h < 1; h++) {
|
|
if (!ignore[h]) {
|
|
hand = &player->hands[h];
|
|
|
|
if (hand->hasdotinfo && !g_Vars.mplayerisrunning) {
|
|
sp94.x = hand->dotpos.x;
|
|
sp94.y = hand->dotpos.y;
|
|
sp94.z = hand->dotpos.z;
|
|
|
|
mtx4TransformVecInPlace(camGetWorldToScreenMtxf(), &sp94);
|
|
|
|
if (!(sp94.z < 0.0000001f) || !(sp94.z > -0.0000001f)) {
|
|
if (sp94.z > -6000.0f) {
|
|
cam0f0b4d04(&sp94, sp8c);
|
|
|
|
x[h] = sp8c[0];
|
|
y[h] = sp8c[1];
|
|
|
|
x[h] = 2.0f * (x[h] / viGetViewWidth()) - 1.0f;
|
|
y[h] = 2.0f * (y[h] / viGetViewHeight()) - 1.0f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
player->oldcrosspos[0] = player->crosspos[0];
|
|
player->oldcrosspos[1] = player->crosspos[1];
|
|
|
|
if (crossdamp != player->guncrossdamp) {
|
|
player->crosspossum[0] = player->crosspossum[0] * (1.0f - player->guncrossdamp) / (1.0f - crossdamp);
|
|
player->crosspossum[1] = player->crosspossum[1] * (1.0f - player->guncrossdamp) / (1.0f - crossdamp);
|
|
player->guncrossdamp = crossdamp;
|
|
}
|
|
|
|
if (aimdamp != player->gunaimdamp) {
|
|
player->crosssum2[0] = player->crosssum2[0] * (1.0f - player->gunaimdamp) / (1.0f - aimdamp);
|
|
player->crosssum2[1] = player->crosssum2[1] * (1.0f - player->gunaimdamp) / (1.0f - aimdamp);
|
|
player->gunaimdamp = aimdamp;
|
|
}
|
|
|
|
for (l = 0; l < g_Vars.lvupdate240; l++) {
|
|
player->crosspossum[0] = player->crosspossum[0] * crossdamp + screenx;
|
|
player->crosspossum[1] = player->crosspossum[1] * crossdamp + screeny;
|
|
|
|
for (h = 0; h < 2; h++) {
|
|
hand = &player->hands[h];
|
|
hand->guncrosspossum[0] = (PAL ? 0.913f : 0.9269697f) * hand->guncrosspossum[0] + x[h];
|
|
hand->guncrosspossum[1] = (PAL ? 0.913f : 0.9269697f) * hand->guncrosspossum[1] + y[h];
|
|
}
|
|
}
|
|
|
|
player->crosspos[0] = player->crosspossum[0] * (1.0f - crossdamp) * screenwidth * 0.5f + screenwidth * 0.5f;
|
|
player->crosspos[1] = player->crosspossum[1] * (1.0f - crossdamp) * screenheight * 0.5f + screenheight * 0.5f;
|
|
|
|
if (player->crosspos[0] < 3.0f) {
|
|
player->crosspos[0] = 3.0f;
|
|
} else if (player->crosspos[0] > screenwidth - 4.0f) {
|
|
player->crosspos[0] = screenwidth - 4.0f;
|
|
}
|
|
|
|
if (player->crosspos[1] < 3.0f) {
|
|
player->crosspos[1] = 3.0f;
|
|
} else if (player->crosspos[1] > screenheight - 4.0f) {
|
|
player->crosspos[1] = screenheight - 4.0f;
|
|
}
|
|
|
|
player->crosspos[0] += camGetScreenLeft();
|
|
player->crosspos[1] += camGetScreenTop();
|
|
|
|
for (h = 0; h < 2; h++) {
|
|
player->hands[h].crosspos[0] = player->hands[h].guncrosspossum[0] * (PAL ? 0.08700001f : 0.07303029f) * screenwidth * 0.5f + screenwidth * 0.5f;
|
|
player->hands[h].crosspos[1] = player->hands[h].guncrosspossum[1] * (PAL ? 0.08700001f : 0.07303029f) * screenheight * 0.5f + screenheight * 0.5f;
|
|
|
|
if (player->hands[h].crosspos[0] < 3.0f) {
|
|
player->hands[h].crosspos[0] = 3.0f;
|
|
} else if (player->hands[h].crosspos[0] > screenwidth - 4.0f) {
|
|
player->hands[h].crosspos[0] = screenwidth - 4.0f;
|
|
}
|
|
|
|
if (player->hands[h].crosspos[1] < 3.0f) {
|
|
player->hands[h].crosspos[1] = 3.0f;
|
|
} else if (player->hands[h].crosspos[1] > screenheight - 4.0f) {
|
|
player->hands[h].crosspos[1] = screenheight - 4.0f;
|
|
}
|
|
|
|
player->hands[h].crosspos[0] += camGetScreenLeft();
|
|
player->hands[h].crosspos[1] += camGetScreenTop();
|
|
}
|
|
|
|
for (l = 0; l < g_Vars.lvupdate240; l++) {
|
|
player->crosssum2[0] = player->crosssum2[0] * aimdamp + screenx;
|
|
player->crosssum2[1] = player->crosssum2[1] * aimdamp + screeny;
|
|
}
|
|
|
|
player->crosspos2[0] = player->crosssum2[0] * (1.0f - aimdamp) * screenwidth * 0.5f + screenwidth * 0.5f;
|
|
player->crosspos2[1] = player->crosssum2[1] * (1.0f - aimdamp) * screenheight * 0.5f + screenheight * 0.5f;
|
|
player->crosspos2[0] += camGetScreenLeft();
|
|
player->crosspos2[1] += camGetScreenTop();
|
|
|
|
cam0f0b4c3c(player->crosspos2, &aimpos, 1000);
|
|
|
|
bgunSetAimPos(&aimpos);
|
|
}
|
|
|
|
/**
|
|
* Swivel the gun towards the given screen coordinates, dampening the movement
|
|
* speed as it reaches the target.
|
|
*
|
|
* This is used for auto aim, the CMP's follow lock-on, and general turning.
|
|
*/
|
|
void bgunSwivelWithDamp(f32 screenx, f32 screeny, f32 crossdamp)
|
|
{
|
|
struct weapon *weapon = weaponFindById(bgunGetWeaponNum(HAND_RIGHT));
|
|
f32 aimdamp = PAL ? weapon->eptr->unk10 : weapon->eptr->unk14;
|
|
|
|
if (aimdamp < crossdamp) {
|
|
aimdamp = crossdamp;
|
|
}
|
|
|
|
bgunSwivel(screenx, screeny, crossdamp, aimdamp);
|
|
}
|
|
|
|
/**
|
|
* Swivel the gun towards the given screen coordinates without slowing the speed
|
|
* speed as it reaches the target.
|
|
*
|
|
* This is used when manual aiming.
|
|
*/
|
|
void bgunSwivelWithoutDamp(f32 screenx, f32 screeny)
|
|
{
|
|
struct weapon *weapon = weaponFindById(bgunGetWeaponNum(HAND_RIGHT));
|
|
f32 aimdamp = PAL ? weapon->eptr->unk10 : weapon->eptr->unk14;
|
|
|
|
bgunSwivel(screenx, screeny, PAL ? 0.935f : 0.945f, aimdamp);
|
|
}
|
|
|
|
void bgunGetCrossPos(f32 *x, f32 *y)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
*x = player->crosspos[0];
|
|
*y = player->crosspos[1];
|
|
}
|
|
|
|
void bgun0f0a0c08(struct coord *arg0, struct coord *arg1)
|
|
{
|
|
arg0->x = 0;
|
|
arg0->y = 0;
|
|
arg0->z = 0;
|
|
|
|
cam0f0b4c3c(g_Vars.currentplayer->crosspos, arg1, 1);
|
|
}
|
|
|
|
void bgun0f0a0c44(s32 handnum, struct coord *arg1, struct coord *arg2)
|
|
{
|
|
arg1->x = 0;
|
|
arg1->y = 0;
|
|
arg1->z = 0;
|
|
|
|
cam0f0b4c3c(g_Vars.currentplayer->hands[handnum].crosspos, arg2, 1);
|
|
}
|
|
|
|
void bgunCalculatePlayerShotSpread(struct coord *arg0, struct coord *arg1, s32 handnum, bool dorandom)
|
|
{
|
|
f32 crosspos[2];
|
|
f32 spread = 0;
|
|
f32 scaledspread;
|
|
f32 randfactor;
|
|
struct weaponfunc *func = currentPlayerGetWeaponFunction(handnum);
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
if (func != NULL && (func->type & 0xff) == INVENTORYFUNCTYPE_SHOOT) {
|
|
struct weaponfunc_shoot *shootfunc = (struct weaponfunc_shoot *) func;
|
|
spread = shootfunc->spread;
|
|
}
|
|
|
|
// Unsure what this is
|
|
if (weaponHasClassFlag(bgunGetWeaponNum2(handnum), WEAPONCLASSFLAG_00000004)
|
|
&& player->hands[handnum].burstbullets == 1) {
|
|
spread *= 0.25f;
|
|
}
|
|
|
|
// Decrease spread if double crouched
|
|
if (bmoveGetCrouchPos() == CROUCHPOS_SQUAT) {
|
|
spread *= 0.5f;
|
|
}
|
|
|
|
// Increase spread if dual wielding
|
|
if (player->hands[HAND_LEFT].inuse) {
|
|
spread *= 1.5f;
|
|
}
|
|
|
|
scaledspread = 120.0f * spread / viGetFovY();
|
|
|
|
if (dorandom) {
|
|
randfactor = (RANDOMFRAC() - 0.5f) * RANDOMFRAC();
|
|
} else {
|
|
randfactor = 0;
|
|
}
|
|
|
|
crosspos[0] = player->crosspos[0] + randfactor * scaledspread * camGetScreenWidth()
|
|
/ (viGetHeight() * camGetPerspAspect());
|
|
|
|
if (dorandom) {
|
|
randfactor = (RANDOMFRAC() - 0.5f) * RANDOMFRAC();
|
|
} else {
|
|
randfactor = 0;
|
|
}
|
|
|
|
crosspos[1] = player->crosspos[1] + (randfactor * scaledspread * camGetScreenHeight())
|
|
/ viGetHeight();
|
|
|
|
arg0->x = 0;
|
|
arg0->y = 0;
|
|
arg0->z = 0;
|
|
|
|
cam0f0b4c3c(crosspos, arg1, 1);
|
|
}
|
|
|
|
void bgunCalculateBotShotSpread(struct coord *arg0, s32 weaponnum, s32 funcnum, bool arg3, s32 crouchpos, bool dual)
|
|
{
|
|
f32 spread = 0.0f;
|
|
f32 radius;
|
|
struct weapon *weapondef = weaponFindById(weaponnum);
|
|
f32 x;
|
|
f32 y;
|
|
Mtxf mtx;
|
|
struct coord sp48;
|
|
u32 stack;
|
|
|
|
if (weapondef) {
|
|
struct weaponfunc *funcdef = weapondef->functions[funcnum];
|
|
|
|
if (funcdef && (funcdef->type & 0xff) == INVENTORYFUNCTYPE_SHOOT) {
|
|
struct weaponfunc_shoot *shootfunc = (struct weaponfunc_shoot *)funcdef;
|
|
spread = shootfunc->spread;
|
|
}
|
|
}
|
|
|
|
if (arg3 && weaponHasClassFlag(weaponnum, WEAPONCLASSFLAG_00000004)) {
|
|
spread *= 0.25f;
|
|
}
|
|
|
|
if (crouchpos == CROUCHPOS_SQUAT) {
|
|
spread *= 0.5f;
|
|
}
|
|
|
|
if (dual) {
|
|
spread *= 1.5f;
|
|
}
|
|
|
|
radius = 120.0f * spread / viGetFovY();
|
|
x = (RANDOMFRAC() - 0.5f) * RANDOMFRAC() * radius;
|
|
y = (RANDOMFRAC() - 0.5f) * RANDOMFRAC() * radius;
|
|
|
|
sp48.x = g_Vars.currentplayer->c_scalex * x;
|
|
sp48.y = g_Vars.currentplayer->c_scaley * y;
|
|
sp48.z = -1.0f;
|
|
|
|
guNormalize(&sp48.x, &sp48.y, &sp48.z);
|
|
mtx00016b58(&mtx, 0.0f, 0.0f, 0.0f, arg0->x, arg0->y, arg0->z, 0.0f, -1.0f, 0.0f);
|
|
mtx4RotateVec(&mtx, &sp48, arg0);
|
|
}
|
|
|
|
bool bgunGetLastShootInfo(struct coord *pos, struct coord *dir, s32 handnum)
|
|
{
|
|
struct hand *hand = &g_Vars.currentplayer->hands[handnum];
|
|
|
|
if (!hand->lastdirvalid) {
|
|
return false;
|
|
}
|
|
|
|
pos->x = hand->lastshootpos.x;
|
|
pos->y = hand->lastshootpos.y;
|
|
pos->z = hand->lastshootpos.z;
|
|
|
|
dir->x = hand->lastshootdir.x;
|
|
dir->y = hand->lastshootdir.y;
|
|
dir->z = hand->lastshootdir.z;
|
|
|
|
return true;
|
|
}
|
|
|
|
void bgunSetLastShootInfo(struct coord *pos, struct coord *dir, s32 handnum)
|
|
{
|
|
struct hand *hand = &g_Vars.currentplayer->hands[handnum];
|
|
|
|
hand->lastdirvalid = true;
|
|
|
|
hand->lastshootpos.x = pos->x;
|
|
hand->lastshootpos.y = pos->y;
|
|
hand->lastshootpos.z = pos->z;
|
|
|
|
hand->lastshootdir.x = dir->x;
|
|
hand->lastshootdir.y = dir->y;
|
|
hand->lastshootdir.z = dir->z;
|
|
}
|
|
|
|
s32 bgunGetShotsToTake(s32 handnum)
|
|
{
|
|
struct hand *hand = &g_Vars.currentplayer->hands[handnum];
|
|
|
|
return hand->shotstotake;
|
|
}
|
|
|
|
void bgunFreeWeapon(s32 handnum)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
s32 i;
|
|
|
|
if (player->hands[handnum].inuse) {
|
|
for (i = 0; i < 2; i++) {
|
|
if (player->gunctrl.ammotypes[i] >= 0) {
|
|
s32 spaceinclip = player->hands[handnum].clipsizes[i] - player->hands[handnum].loadedammo[i];
|
|
s32 index = bgunGetUnequippedReloadIndex(player->gunctrl.weaponnum);
|
|
|
|
if (index != -1) {
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
player->hands[handnum].gunroundsspent[index] = (spaceinclip << 8) + 0xff;
|
|
#elif VERSION >= VERSION_PAL_BETA
|
|
player->hands[handnum].gunroundsspent[index] = spaceinclip * 213 + 212;
|
|
#else
|
|
player->hands[handnum].gunroundsspent[index] = (spaceinclip << 8) | 0xff;
|
|
#endif
|
|
}
|
|
|
|
if (player->hands[handnum].loadedammo[i] > 0) {
|
|
player->ammoheldarr[player->gunctrl.ammotypes[i]] += player->hands[handnum].loadedammo[i];
|
|
}
|
|
|
|
player->hands[handnum].loadedammo[i] = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (g_Vars.mplayerisrunning && (IS8MB() || PLAYERCOUNT() != 1)) {
|
|
playermgrDeleteWeapon(handnum);
|
|
}
|
|
|
|
bgunFreeHeldRocket(handnum);
|
|
}
|
|
|
|
void bgunTickSwitch2(void)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
struct gunctrl *ctrl = &g_Vars.currentplayer->gunctrl;
|
|
s32 i;
|
|
|
|
if (ctrl->switchtoweaponnum >= 0) {
|
|
if (bgunCanFreeWeapon(HAND_RIGHT) && bgunCanFreeWeapon(HAND_LEFT)) {
|
|
s32 weaponnum = player->gunctrl.weaponnum;
|
|
s32 previnuse = player->hands[HAND_LEFT].inuse;
|
|
struct hand *lefthand;
|
|
struct hand *righthand;
|
|
|
|
if (currentPlayerGetDeviceState(ctrl->switchtoweaponnum) != DEVICESTATE_UNEQUIPPED) {
|
|
ctrl->switchtoweaponnum = WEAPON_UNARMED;
|
|
}
|
|
|
|
#if VERSION == VERSION_JPN_FINAL
|
|
if (ctrl->switchtoweaponnum == WEAPON_COMBATKNIFE) {
|
|
ctrl->switchtoweaponnum = WEAPON_UNARMED;
|
|
}
|
|
#endif
|
|
|
|
if (ctrl->dualwielding && !invHasDoubleWeaponIncAllGuns(ctrl->switchtoweaponnum, ctrl->switchtoweaponnum)) {
|
|
ctrl->dualwielding = false;
|
|
}
|
|
|
|
func0f0d7364();
|
|
|
|
bgunFreeWeapon(HAND_LEFT);
|
|
bgunFreeWeapon(HAND_RIGHT);
|
|
|
|
if (weaponnum == WEAPON_HORIZONSCANNER) {
|
|
g_Vars.currentplayer->insightaimmode = false;
|
|
}
|
|
|
|
if (weaponnum == WEAPON_RCP120) {
|
|
s32 amount = player->hands[HAND_RIGHT].matmot1;
|
|
|
|
if (amount > player->ammoheldarr[ctrl->ammotypes[0]]) {
|
|
amount = player->ammoheldarr[ctrl->ammotypes[0]];
|
|
}
|
|
|
|
player->ammoheldarr[ctrl->ammotypes[0]] -= amount;
|
|
}
|
|
|
|
if (weaponnum == WEAPON_HORIZONSCANNER) {
|
|
g_Vars.currentplayer->zoomintimemax = 0;
|
|
g_Vars.currentplayer->zoomintime = g_Vars.currentplayer->zoomintimemax;
|
|
g_Vars.currentplayer->zoominfovynew = 60;
|
|
g_Vars.currentplayer->zoominfovy = g_Vars.currentplayer->zoominfovynew;
|
|
}
|
|
|
|
lefthand = &player->hands[HAND_LEFT];
|
|
righthand = &player->hands[HAND_RIGHT];
|
|
|
|
if (ctrl->switchtoweaponnum == WEAPON_NONE) {
|
|
lefthand->inuse = false;
|
|
righthand->inuse = false;
|
|
ctrl->weaponnum = WEAPON_NONE;
|
|
} else {
|
|
bgunSetGunMemWeapon(ctrl->switchtoweaponnum);
|
|
ctrl->weaponnum = ctrl->switchtoweaponnum;
|
|
lefthand->inuse = true;
|
|
righthand->inuse = true;
|
|
}
|
|
|
|
if (ctrl->weaponnum == WEAPON_REMOTEMINE) {
|
|
ctrl->dualwielding = true;
|
|
}
|
|
|
|
if (!ctrl->dualwielding) {
|
|
lefthand->inuse = false;
|
|
}
|
|
|
|
if (weaponnum <= WEAPON_PSYCHOSISGUN && weaponnum >= WEAPON_UNARMED) {
|
|
player->gunctrl.prevweaponnum = weaponnum;
|
|
}
|
|
|
|
if (previnuse) {
|
|
player->gunctrl.unk1583_01 = true;
|
|
} else {
|
|
player->gunctrl.unk1583_01 = false;
|
|
}
|
|
|
|
g_Vars.currentplayer->gunctrl.invertgunfunc = false;
|
|
g_Vars.currentplayer->usedowntime = -1;
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
player->hands[i].unk0d0e_00 = 0;
|
|
player->hands[i].unk0d0e_04 = 0;
|
|
player->hands[i].unk0d0f_02 = false;
|
|
player->hands[i].unk0d0f_03 = false;
|
|
|
|
player->hands[i].matmot1 = 0.0f;
|
|
player->hands[i].matmot2 = 0.0f;
|
|
player->hands[i].matmot3 = 0.0f;
|
|
player->hands[i].angledamper = 0.0f;
|
|
player->hands[i].gunsmokepoint = 0.0f;
|
|
player->hands[i].burstbullets = 0;
|
|
player->hands[i].loadslide = 0.0f;
|
|
player->hands[i].allowshootframe = 0;
|
|
player->hands[i].lastshootframe60 = 0;
|
|
player->hands[i].gset.weaponfunc = FUNC_PRIMARY;
|
|
player->hands[i].gset.weaponnum = ctrl->weaponnum;
|
|
player->hands[i].gset.unk0639 = (ctrl->upgradewant >> (i * 4)) & 0xf;
|
|
player->hands[i].gangstarot = 0.0f;
|
|
|
|
bgun0f0abd30(i);
|
|
|
|
animInit(&player->hands[i].anim);
|
|
|
|
if (player->hands[i].audiohandle && sndGetState(player->hands[i].audiohandle) != AL_STOPPED) {
|
|
audioStop(player->hands[i].audiohandle);
|
|
}
|
|
}
|
|
|
|
invCalculateCurrentIndex();
|
|
|
|
ctrl->switchtoweaponnum = -1;
|
|
ctrl->fnfader = 0;
|
|
|
|
if (ctrl->weaponnum == WEAPON_DISGUISE40 || ctrl->weaponnum == WEAPON_DISGUISE41) {
|
|
struct chrdata *chr = player->prop->chr;
|
|
|
|
sndStart(var80095200, SFX_DISGUISE_ON, 0, -1, -1, -1, -1, -1);
|
|
|
|
g_Vars.currentplayer->disguised = true;
|
|
|
|
chr->hidden |= CHRHFLAG_DISGUISED;
|
|
|
|
if (g_Vars.stagenum == STAGE_RESCUE) {
|
|
chr->hidden |= CHRHFLAG_UNTARGETABLE;
|
|
}
|
|
|
|
invRemoveItemByNum(ctrl->weaponnum);
|
|
bgunCycleBack();
|
|
}
|
|
|
|
ctrl->curfnstr = 0;
|
|
ctrl->fnstrtimer = 0;
|
|
ctrl->unk1583_04 = false;
|
|
}
|
|
} else {
|
|
if (((player->hands[HAND_LEFT].inuse && !player->gunctrl.dualwielding)
|
|
|| (!player->hands[HAND_LEFT].inuse && player->gunctrl.dualwielding))
|
|
&& bgunCanFreeWeapon(HAND_LEFT)) {
|
|
bgunFreeWeapon(HAND_LEFT);
|
|
player->hands[HAND_LEFT].inuse = player->gunctrl.dualwielding;
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgunEquipWeapon(s32 weaponnum)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
if (player->gunctrl.weaponnum == weaponnum && player->gunctrl.switchtoweaponnum == -1) {
|
|
return;
|
|
}
|
|
|
|
player->gunctrl.switchtoweaponnum = weaponnum;
|
|
player->gunctrl.wantammo = false;
|
|
}
|
|
|
|
s32 bgunGetWeaponNum(s32 handnum)
|
|
{
|
|
if (!g_Vars.currentplayer->hands[handnum].inuse) {
|
|
return WEAPON_NONE;
|
|
}
|
|
|
|
return g_Vars.currentplayer->gunctrl.weaponnum;
|
|
}
|
|
|
|
s32 bgunGetWeaponNum2(s32 handnum)
|
|
{
|
|
return bgunGetWeaponNum(handnum);
|
|
}
|
|
|
|
bool bgun0f0a1a10(s32 weaponnum)
|
|
{
|
|
if (weaponHasFlag(weaponnum, WEAPONFLAG_00000400)
|
|
&& (bgunGetAmmoTypeForWeapon(weaponnum, FUNC_PRIMARY) == 0 || bgunGetAmmoQtyForWeapon(weaponnum, FUNC_PRIMARY) > 0)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
s32 bgunGetSwitchToWeapon(s32 handnum)
|
|
{
|
|
s32 weaponnum;
|
|
|
|
if (g_Vars.currentplayer->gunctrl.switchtoweaponnum >= 0) {
|
|
weaponnum = g_Vars.currentplayer->gunctrl.switchtoweaponnum;
|
|
} else {
|
|
weaponnum = g_Vars.currentplayer->gunctrl.weaponnum;
|
|
}
|
|
|
|
if (!g_Vars.currentplayer->gunctrl.dualwielding && handnum == HAND_LEFT) {
|
|
weaponnum = WEAPON_NONE;
|
|
}
|
|
|
|
return weaponnum;
|
|
}
|
|
|
|
void bgunSwitchToPrevious(void)
|
|
{
|
|
if (g_Vars.tickmode != TICKMODE_CUTSCENE) {
|
|
struct player *player = g_Vars.currentplayer;
|
|
s32 dualweaponnum;
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
if (invHasSingleWeaponIncAllGuns(player->gunctrl.prevweaponnum)) {
|
|
bgunEquipWeapon2(HAND_RIGHT, player->gunctrl.prevweaponnum);
|
|
|
|
dualweaponnum = invHasDoubleWeaponIncAllGuns(player->gunctrl.prevweaponnum, player->gunctrl.prevweaponnum)
|
|
* player->gunctrl.prevweaponnum * player->gunctrl.unk1583_01;
|
|
bgunEquipWeapon2(HAND_LEFT, dualweaponnum);
|
|
} else {
|
|
bgunAutoSwitchWeapon();
|
|
}
|
|
#else
|
|
bgunEquipWeapon2(HAND_RIGHT, player->gunctrl.prevweaponnum);
|
|
bgunEquipWeapon2(HAND_LEFT, player->gunctrl.prevweaponnum * player->gunctrl.unk1583_01);
|
|
#endif
|
|
}
|
|
}
|
|
|
|
void bgunCycleForward(void)
|
|
{
|
|
s32 weaponnum1;
|
|
s32 weaponnum2;
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
if (g_Vars.tickmode != TICKMODE_CUTSCENE) {
|
|
weaponnum1 = bgunGetSwitchToWeapon(HAND_RIGHT);
|
|
weaponnum2 = bgunGetSwitchToWeapon(HAND_LEFT);
|
|
|
|
if (weaponnum1 > WEAPON_PSYCHOSISGUN || weaponnum2 > WEAPON_PSYCHOSISGUN) {
|
|
weaponnum1 = player->gunctrl.prevweaponnum;
|
|
weaponnum2 = player->gunctrl.prevweaponnum * player->gunctrl.unk1583_01;
|
|
} else {
|
|
invChooseCycleForwardWeapon(&weaponnum1, &weaponnum2, false);
|
|
}
|
|
|
|
if (weaponnum2 != weaponnum1) {
|
|
player->gunctrl.dualwielding = false;
|
|
} else {
|
|
player->gunctrl.dualwielding = true;
|
|
}
|
|
|
|
bgunEquipWeapon(weaponnum1);
|
|
}
|
|
}
|
|
|
|
void bgunCycleBack(void)
|
|
{
|
|
s32 weaponnum1;
|
|
s32 weaponnum2;
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
if (g_Vars.tickmode != TICKMODE_CUTSCENE) {
|
|
weaponnum1 = bgunGetSwitchToWeapon(HAND_RIGHT);
|
|
weaponnum2 = bgunGetSwitchToWeapon(HAND_LEFT);
|
|
|
|
if (weaponnum2 == WEAPON_REMOTEMINE) {
|
|
weaponnum2 = WEAPON_NONE;
|
|
}
|
|
|
|
if (weaponnum1 > WEAPON_PSYCHOSISGUN || weaponnum2 > WEAPON_PSYCHOSISGUN) {
|
|
weaponnum1 = player->gunctrl.prevweaponnum;
|
|
weaponnum2 = player->gunctrl.prevweaponnum * player->gunctrl.unk1583_01;
|
|
} else {
|
|
invChooseCycleBackWeapon(&weaponnum1, &weaponnum2, false);
|
|
}
|
|
|
|
if (weaponnum2 == WEAPON_NONE) {
|
|
player->gunctrl.dualwielding = false;
|
|
} else {
|
|
player->gunctrl.dualwielding = true;
|
|
}
|
|
|
|
bgunEquipWeapon(weaponnum1);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Return true if the player has ammo for the given weapon (for either function)
|
|
* or if the weapon doesn't support ammo.
|
|
*
|
|
* Used by the active menu to colour the slots.
|
|
*/
|
|
bool bgunHasAmmoForWeapon(s32 weaponnum)
|
|
{
|
|
bool ammodefexists = false;
|
|
bool hasammo = false;
|
|
struct weapon *weapon = weaponFindById(weaponnum);
|
|
s32 i;
|
|
|
|
if (weapon == NULL) {
|
|
return true;
|
|
}
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
struct weaponfunc *func = weaponGetFunctionById(weaponnum, i);
|
|
|
|
if (func && func->ammoindex >= 0) {
|
|
struct inventory_ammo *ammo = weapon->ammos[func->ammoindex];
|
|
|
|
if (ammo) {
|
|
ammodefexists = true;
|
|
|
|
if (bgunGetAmmoCount(ammo->type) > 0) {
|
|
hasammo = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!ammodefexists) {
|
|
return true;
|
|
}
|
|
|
|
if (hasammo == true) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
u8 g_AutoSwitchWeaponsPrimary[] = {
|
|
WEAPON_RCP120,
|
|
WEAPON_SUPERDRAGON,
|
|
WEAPON_K7AVENGER,
|
|
WEAPON_AR34,
|
|
WEAPON_CALLISTO,
|
|
WEAPON_LAPTOPGUN,
|
|
WEAPON_DRAGON,
|
|
WEAPON_CMP150,
|
|
WEAPON_CYCLONE,
|
|
WEAPON_FARSIGHT,
|
|
WEAPON_SHOTGUN,
|
|
WEAPON_REAPER,
|
|
WEAPON_DY357LX,
|
|
WEAPON_MAULER,
|
|
WEAPON_DY357MAGNUM,
|
|
WEAPON_MAGSEC4,
|
|
WEAPON_PHOENIX,
|
|
WEAPON_FALCON2_SCOPE,
|
|
WEAPON_FALCON2,
|
|
WEAPON_FALCON2_SILENCER,
|
|
WEAPON_SNIPERRIFLE,
|
|
WEAPON_CROSSBOW,
|
|
WEAPON_TRANQUILIZER,
|
|
WEAPON_LASER,
|
|
WEAPON_SUPERDRAGON, // duplicate
|
|
WEAPON_DEVASTATOR,
|
|
WEAPON_ROCKETLAUNCHER,
|
|
WEAPON_SLAYER,
|
|
WEAPON_GRENADE,
|
|
WEAPON_NBOMB,
|
|
WEAPON_PROXIMITYMINE,
|
|
WEAPON_TIMEDMINE,
|
|
WEAPON_REMOTEMINE,
|
|
WEAPON_COMBATKNIFE,
|
|
WEAPON_UNARMED,
|
|
};
|
|
|
|
u8 g_AutoSwitchWeaponsSecondary[] = {
|
|
WEAPON_REAPER,
|
|
WEAPON_DY357LX,
|
|
WEAPON_DY357MAGNUM,
|
|
WEAPON_FALCON2_SCOPE,
|
|
WEAPON_FALCON2,
|
|
WEAPON_FALCON2_SILENCER,
|
|
WEAPON_UNARMED,
|
|
};
|
|
|
|
u32 var800701ec = 0x00000000;
|
|
u32 var800701f0 = 0x00000000;
|
|
u32 var800701f4 = 0x00000000;
|
|
u32 var800701f8 = 0x00000000;
|
|
u32 var800701fc = 0x00000000;
|
|
|
|
struct guncmd var80070200[2] = {
|
|
{ GUNCMD_PLAYANIMATION, 0, ANIM_0434, 10000 },
|
|
{ GUNCMD_END },
|
|
};
|
|
|
|
GLOBAL_ASM(
|
|
glabel bgunAutoSwitchWeapon
|
|
/* f0a1df4: 27bdff98 */ addiu $sp,$sp,-104
|
|
/* f0a1df8: 3c03800a */ lui $v1,%hi(g_Vars)
|
|
/* f0a1dfc: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
|
|
/* f0a1e00: 8c6f0284 */ lw $t7,0x284($v1)
|
|
/* f0a1e04: 240effff */ addiu $t6,$zero,-1
|
|
/* f0a1e08: 8c7902ac */ lw $t9,0x2ac($v1)
|
|
/* f0a1e0c: afbf003c */ sw $ra,0x3c($sp)
|
|
/* f0a1e10: afbe0038 */ sw $s8,0x38($sp)
|
|
/* f0a1e14: afb70034 */ sw $s7,0x34($sp)
|
|
/* f0a1e18: afb60030 */ sw $s6,0x30($sp)
|
|
/* f0a1e1c: afb5002c */ sw $s5,0x2c($sp)
|
|
/* f0a1e20: afb40028 */ sw $s4,0x28($sp)
|
|
/* f0a1e24: afb30024 */ sw $s3,0x24($sp)
|
|
/* f0a1e28: afb20020 */ sw $s2,0x20($sp)
|
|
/* f0a1e2c: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f0a1e30: afb00018 */ sw $s0,0x18($sp)
|
|
/* f0a1e34: afae0050 */ sw $t6,0x50($sp)
|
|
/* f0a1e38: afa00048 */ sw $zero,0x48($sp)
|
|
/* f0a1e3c: 81f81580 */ lb $t8,0x1580($t7)
|
|
/* f0a1e40: 24010006 */ addiu $at,$zero,0x6
|
|
/* f0a1e44: 241effff */ addiu $s8,$zero,-1
|
|
/* f0a1e48: 0000a825 */ or $s5,$zero,$zero
|
|
/* f0a1e4c: afa00040 */ sw $zero,0x40($sp)
|
|
/* f0a1e50: 13210083 */ beq $t9,$at,.L0f0a2060
|
|
/* f0a1e54: afb80044 */ sw $t8,0x44($sp)
|
|
/* f0a1e58: 3c138007 */ lui $s3,%hi(g_AutoSwitchWeaponsPrimary)
|
|
/* f0a1e5c: 267301c0 */ addiu $s3,$s3,%lo(g_AutoSwitchWeaponsPrimary)
|
|
/* f0a1e60: 3c170010 */ lui $s7,0x10
|
|
/* f0a1e64: 2416ffff */ addiu $s6,$zero,-1
|
|
/* f0a1e68: 0000a025 */ or $s4,$zero,$zero
|
|
.L0f0a1e6c:
|
|
/* f0a1e6c: 0fc44727 */ jal invHasSingleWeaponIncAllGuns
|
|
/* f0a1e70: 92640000 */ lbu $a0,0x0($s3)
|
|
/* f0a1e74: 10400031 */ beqz $v0,.L0f0a1f3c
|
|
/* f0a1e78: 00000000 */ nop
|
|
/* f0a1e7c: 92700000 */ lbu $s0,0x0($s3)
|
|
/* f0a1e80: 0fc2c3f4 */ jal weaponFindById
|
|
/* f0a1e84: 02002025 */ or $a0,$s0,$zero
|
|
/* f0a1e88: 00409025 */ or $s2,$v0,$zero
|
|
/* f0a1e8c: 02002025 */ or $a0,$s0,$zero
|
|
/* f0a1e90: 0fc2c401 */ jal weaponGetFunctionById
|
|
/* f0a1e94: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a1e98: 00408825 */ or $s1,$v0,$zero
|
|
/* f0a1e9c: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a1ea0: 0fc2642c */ jal bgun0f0990b0
|
|
/* f0a1ea4: 02402825 */ or $a1,$s2,$zero
|
|
/* f0a1ea8: 14400006 */ bnez $v0,.L0f0a1ec4
|
|
/* f0a1eac: 24010012 */ addiu $at,$zero,0x12
|
|
/* f0a1eb0: 8e280010 */ lw $t0,0x10($s1)
|
|
/* f0a1eb4: 01174824 */ and $t1,$t0,$s7
|
|
/* f0a1eb8: 15200002 */ bnez $t1,.L0f0a1ec4
|
|
/* f0a1ebc: 00000000 */ nop
|
|
/* f0a1ec0: 24140001 */ addiu $s4,$zero,0x1
|
|
.L0f0a1ec4:
|
|
/* f0a1ec4: 16010005 */ bne $s0,$at,.L0f0a1edc
|
|
/* f0a1ec8: 02002025 */ or $a0,$s0,$zero
|
|
/* f0a1ecc: 16a00003 */ bnez $s5,.L0f0a1edc
|
|
/* f0a1ed0: 00000000 */ nop
|
|
/* f0a1ed4: 1000000e */ b .L0f0a1f10
|
|
/* f0a1ed8: 26b50001 */ addiu $s5,$s5,0x1
|
|
.L0f0a1edc:
|
|
/* f0a1edc: 0fc2c401 */ jal weaponGetFunctionById
|
|
/* f0a1ee0: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f0a1ee4: 00408825 */ or $s1,$v0,$zero
|
|
/* f0a1ee8: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a1eec: 0fc2642c */ jal bgun0f0990b0
|
|
/* f0a1ef0: 02402825 */ or $a1,$s2,$zero
|
|
/* f0a1ef4: 54400007 */ bnezl $v0,.L0f0a1f14
|
|
/* f0a1ef8: 8fac0044 */ lw $t4,0x44($sp)
|
|
/* f0a1efc: 8e2a0010 */ lw $t2,0x10($s1)
|
|
/* f0a1f00: 01575824 */ and $t3,$t2,$s7
|
|
/* f0a1f04: 55600003 */ bnezl $t3,.L0f0a1f14
|
|
/* f0a1f08: 8fac0044 */ lw $t4,0x44($sp)
|
|
/* f0a1f0c: 24140001 */ addiu $s4,$zero,0x1
|
|
.L0f0a1f10:
|
|
/* f0a1f10: 8fac0044 */ lw $t4,0x44($sp)
|
|
.L0f0a1f14:
|
|
/* f0a1f14: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f0a1f18: 160c0003 */ bne $s0,$t4,.L0f0a1f28
|
|
/* f0a1f1c: 00000000 */ nop
|
|
/* f0a1f20: 10000006 */ b .L0f0a1f3c
|
|
/* f0a1f24: afad0048 */ sw $t5,0x48($sp)
|
|
.L0f0a1f28:
|
|
/* f0a1f28: 12800004 */ beqz $s4,.L0f0a1f3c
|
|
/* f0a1f2c: 8fae0050 */ lw $t6,0x50($sp)
|
|
/* f0a1f30: 15d60002 */ bne $t6,$s6,.L0f0a1f3c
|
|
/* f0a1f34: 0200f025 */ or $s8,$s0,$zero
|
|
/* f0a1f38: afb00050 */ sw $s0,0x50($sp)
|
|
.L0f0a1f3c:
|
|
/* f0a1f3c: 3c0f8007 */ lui $t7,%hi(g_AutoSwitchWeaponsPrimary+0x23)
|
|
/* f0a1f40: 25ef01e3 */ addiu $t7,$t7,%lo(g_AutoSwitchWeaponsPrimary+0x23)
|
|
/* f0a1f44: 26730001 */ addiu $s3,$s3,0x1
|
|
/* f0a1f48: 026f082b */ sltu $at,$s3,$t7
|
|
/* f0a1f4c: 50200007 */ beqzl $at,.L0f0a1f6c
|
|
/* f0a1f50: 8fb90048 */ lw $t9,0x48($sp)
|
|
/* f0a1f54: 53d6ffc5 */ beql $s8,$s6,.L0f0a1e6c
|
|
/* f0a1f58: 0000a025 */ or $s4,$zero,$zero
|
|
/* f0a1f5c: 8fb80048 */ lw $t8,0x48($sp)
|
|
/* f0a1f60: 5300ffc2 */ beqzl $t8,.L0f0a1e6c
|
|
/* f0a1f64: 0000a025 */ or $s4,$zero,$zero
|
|
/* f0a1f68: 8fb90048 */ lw $t9,0x48($sp)
|
|
.L0f0a1f6c:
|
|
/* f0a1f6c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a1f70: 0000a025 */ or $s4,$zero,$zero
|
|
/* f0a1f74: 17200002 */ bnez $t9,.L0f0a1f80
|
|
/* f0a1f78: 02c09025 */ or $s2,$s6,$zero
|
|
/* f0a1f7c: 8fbe0050 */ lw $s8,0x50($sp)
|
|
.L0f0a1f80:
|
|
/* f0a1f80: 17d60002 */ bne $s8,$s6,.L0f0a1f8c
|
|
/* f0a1f84: 3c108007 */ lui $s0,%hi(g_AutoSwitchWeaponsSecondary)
|
|
/* f0a1f88: 241e0001 */ addiu $s8,$zero,0x1
|
|
.L0f0a1f8c:
|
|
/* f0a1f8c: 17c10018 */ bne $s8,$at,.L0f0a1ff0
|
|
/* f0a1f90: 261001e4 */ addiu $s0,$s0,%lo(g_AutoSwitchWeaponsSecondary)
|
|
/* f0a1f94: 3c138007 */ lui $s3,%hi(g_AutoSwitchWeaponsSecondary+0x7)
|
|
/* f0a1f98: 267301eb */ addiu $s3,$s3,%lo(g_AutoSwitchWeaponsSecondary+0x7)
|
|
/* f0a1f9c: 92110000 */ lbu $s1,0x0($s0)
|
|
.L0f0a1fa0:
|
|
/* f0a1fa0: 0fc44727 */ jal invHasSingleWeaponIncAllGuns
|
|
/* f0a1fa4: 02202025 */ or $a0,$s1,$zero
|
|
/* f0a1fa8: 10400008 */ beqz $v0,.L0f0a1fcc
|
|
/* f0a1fac: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f0a1fb0: 8fa80044 */ lw $t0,0x44($sp)
|
|
/* f0a1fb4: 16280002 */ bne $s1,$t0,.L0f0a1fc0
|
|
/* f0a1fb8: 00000000 */ nop
|
|
/* f0a1fbc: 24140001 */ addiu $s4,$zero,0x1
|
|
.L0f0a1fc0:
|
|
/* f0a1fc0: 16560002 */ bne $s2,$s6,.L0f0a1fcc
|
|
/* f0a1fc4: 00000000 */ nop
|
|
/* f0a1fc8: 02209025 */ or $s2,$s1,$zero
|
|
.L0f0a1fcc:
|
|
/* f0a1fcc: 5613fff4 */ bnel $s0,$s3,.L0f0a1fa0
|
|
/* f0a1fd0: 92110000 */ lbu $s1,0x0($s0)
|
|
/* f0a1fd4: 16560002 */ bne $s2,$s6,.L0f0a1fe0
|
|
/* f0a1fd8: 0240f025 */ or $s8,$s2,$zero
|
|
/* f0a1fdc: 241e0001 */ addiu $s8,$zero,0x1
|
|
.L0f0a1fe0:
|
|
/* f0a1fe0: 12800002 */ beqz $s4,.L0f0a1fec
|
|
/* f0a1fe4: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f0a1fe8: 241effff */ addiu $s8,$zero,-1
|
|
.L0f0a1fec:
|
|
/* f0a1fec: afa90040 */ sw $t1,0x40($sp)
|
|
.L0f0a1ff0:
|
|
/* f0a1ff0: 07c0001b */ bltz $s8,.L0f0a2060
|
|
/* f0a1ff4: 8faa0044 */ lw $t2,0x44($sp)
|
|
/* f0a1ff8: 13ca0019 */ beq $s8,$t2,.L0f0a2060
|
|
/* f0a1ffc: 03c02025 */ or $a0,$s8,$zero
|
|
/* f0a2000: 0fc4473e */ jal invHasDoubleWeaponIncAllGuns
|
|
/* f0a2004: 03c02825 */ or $a1,$s8,$zero
|
|
/* f0a2008: 10400006 */ beqz $v0,.L0f0a2024
|
|
/* f0a200c: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
|
/* f0a2010: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
|
/* f0a2014: 904c1583 */ lbu $t4,0x1583($v0)
|
|
/* f0a2018: 358d0080 */ ori $t5,$t4,0x80
|
|
/* f0a201c: 10000006 */ b .L0f0a2038
|
|
/* f0a2020: a04d1583 */ sb $t5,0x1583($v0)
|
|
.L0f0a2024:
|
|
/* f0a2024: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
|
/* f0a2028: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
|
/* f0a202c: 904e1583 */ lbu $t6,0x1583($v0)
|
|
/* f0a2030: 31cfff7f */ andi $t7,$t6,0xff7f
|
|
/* f0a2034: a04f1583 */ sb $t7,0x1583($v0)
|
|
.L0f0a2038:
|
|
/* f0a2038: 0fc2865b */ jal bgunEquipWeapon
|
|
/* f0a203c: 03c02025 */ or $a0,$s8,$zero
|
|
/* f0a2040: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f0a2044: 3c02800a */ lui $v0,%hi(g_Vars+0x284)
|
|
/* f0a2048: 53000006 */ beqzl $t8,.L0f0a2064
|
|
/* f0a204c: 8fbf003c */ lw $ra,0x3c($sp)
|
|
/* f0a2050: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0)
|
|
/* f0a2054: 90481583 */ lbu $t0,0x1583($v0)
|
|
/* f0a2058: 35090004 */ ori $t1,$t0,0x4
|
|
/* f0a205c: a0491583 */ sb $t1,0x1583($v0)
|
|
.L0f0a2060:
|
|
/* f0a2060: 8fbf003c */ lw $ra,0x3c($sp)
|
|
.L0f0a2064:
|
|
/* f0a2064: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f0a2068: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f0a206c: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f0a2070: 8fb30024 */ lw $s3,0x24($sp)
|
|
/* f0a2074: 8fb40028 */ lw $s4,0x28($sp)
|
|
/* f0a2078: 8fb5002c */ lw $s5,0x2c($sp)
|
|
/* f0a207c: 8fb60030 */ lw $s6,0x30($sp)
|
|
/* f0a2080: 8fb70034 */ lw $s7,0x34($sp)
|
|
/* f0a2084: 8fbe0038 */ lw $s8,0x38($sp)
|
|
/* f0a2088: 03e00008 */ jr $ra
|
|
/* f0a208c: 27bd0068 */ addiu $sp,$sp,0x68
|
|
);
|
|
|
|
/**
|
|
* Automatically choose and equip a new weapon after trying to fire a weapon
|
|
* which is out of ammo.
|
|
*
|
|
* The weapon preference order is stored in two arrays; one for weapons which
|
|
* should have their primary functions considered and which require ammo, and
|
|
* another for weapons which should have their secondary functions considered
|
|
* and don't require ammo for those functions. The second is only used if no
|
|
* weapons are usable from the primary array.
|
|
*
|
|
* For the primary array, the weapon must not be out of ammo and must have a
|
|
* certain flag. If the player's current weapon is not in the primary array then
|
|
* the first available primary will be selected. If the player's current weapon
|
|
* is in the primary array then the last available weapon earlier than their
|
|
* current weapon will be selected. If there are no weapons earlier than their
|
|
* current weapon then the first weapon after their current weapon is selected.
|
|
*
|
|
* In the primary array, the SuperDragon is a special case. It is prioritised
|
|
* when the player's current weapon is not in the array, but otherwise has a
|
|
* fairly low priority. The reasons for this are unknown.
|
|
*
|
|
* For the secondary array, the player's current weapon must not be in the
|
|
* array. The first available weapon is selected. The player's "wantammo" flag
|
|
* will be set which will force the weapon onto the second function.
|
|
*/
|
|
// Mismatch: First loop should store pointer to current item in s3 and do an
|
|
// address comparison for the end, but the below stores index in s4 and does an
|
|
// integer comparison. Variable refcounts affects this so might be related.
|
|
//void bgunAutoSwitchWeapon(void)
|
|
//{
|
|
// s32 i;
|
|
// bool foundcurrent2;
|
|
// s32 firstweaponnum2;
|
|
// bool usable;
|
|
// s32 firstweaponnum = -1; // 50
|
|
// s32 newweaponnum = -1;
|
|
// bool foundcurrent = false; // 48
|
|
// s32 curweaponnum = g_Vars.currentplayer->gunctrl.weaponnum; // 44
|
|
// s32 foundsuperdragon = 0;
|
|
// s32 wantammo = false; // 40
|
|
// s32 weaponnum;
|
|
// struct weapon *weapon;
|
|
// struct weaponfunc *func;
|
|
// s32 weaponnum2;
|
|
//
|
|
// if (g_Vars.tickmode == TICKMODE_CUTSCENE) {
|
|
// return;
|
|
// }
|
|
//
|
|
// // Loop through g_AutoSwitchWeaponsPrimary, checking which weapons the
|
|
// // player has which are usable. Stop when both any usable weapon is found
|
|
// // and when the player's current weapon is found. Note the first and last
|
|
// // usable weapons.
|
|
// for (i = 0; i < ARRAYCOUNT(g_AutoSwitchWeaponsPrimary) && (newweaponnum == -1 || !foundcurrent); i++) {
|
|
// usable = false;
|
|
//
|
|
// if (invHasSingleWeaponIncAllGuns(g_AutoSwitchWeaponsPrimary[i])) {
|
|
// weaponnum = g_AutoSwitchWeaponsPrimary[i];
|
|
// weapon = weaponFindById(weaponnum);
|
|
// func = weaponGetFunctionById(weaponnum, FUNC_PRIMARY);
|
|
//
|
|
// if (!bgun0f0990b0(func, weapon) && (func->flags & FUNCFLAG_AUTOSWITCHUNSELECTABLE) == 0) {
|
|
// usable = true;
|
|
// }
|
|
//
|
|
// if (weaponnum == WEAPON_SUPERDRAGON && !foundsuperdragon) {
|
|
// foundsuperdragon++;
|
|
// } else {
|
|
// func = weaponGetFunctionById(weaponnum, FUNC_SECONDARY);
|
|
//
|
|
// if (!bgun0f0990b0(func, weapon) && (func->flags & FUNCFLAG_AUTOSWITCHUNSELECTABLE) == 0) {
|
|
// usable = true;
|
|
// }
|
|
// }
|
|
//
|
|
// if (weaponnum == curweaponnum) {
|
|
// foundcurrent = true;
|
|
// } else if (usable) {
|
|
// newweaponnum = weaponnum;
|
|
//
|
|
// if (firstweaponnum == -1) {
|
|
// firstweaponnum = weaponnum;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// foundcurrent2 = false;
|
|
// firstweaponnum2 = -1;
|
|
//
|
|
// if (!foundcurrent) {
|
|
// newweaponnum = firstweaponnum;
|
|
// }
|
|
//
|
|
// if (newweaponnum == -1) {
|
|
// newweaponnum = WEAPON_UNARMED;
|
|
// }
|
|
//
|
|
// if (newweaponnum == WEAPON_UNARMED) {
|
|
// // No usable weapon was found in the primary array,
|
|
// // so search the secondary array.
|
|
// for (i = 0; i < ARRAYCOUNT(g_AutoSwitchWeaponsSecondary); i++) {
|
|
// weaponnum2 = g_AutoSwitchWeaponsSecondary[i];
|
|
//
|
|
// if (invHasSingleWeaponIncAllGuns(weaponnum2)) {
|
|
// if (weaponnum2 == curweaponnum) {
|
|
// foundcurrent2 = true;
|
|
// }
|
|
//
|
|
// if (firstweaponnum2 == -1) {
|
|
// firstweaponnum2 = weaponnum2;
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// newweaponnum = firstweaponnum2;
|
|
//
|
|
// if (newweaponnum == -1) {
|
|
// newweaponnum = WEAPON_UNARMED;
|
|
// }
|
|
//
|
|
// if (foundcurrent2) {
|
|
// newweaponnum = -1;
|
|
// }
|
|
//
|
|
// wantammo = true;
|
|
// }
|
|
//
|
|
// // Switch to newweaponnum
|
|
// if (newweaponnum >= 0 && newweaponnum != curweaponnum) {
|
|
// if (invHasDoubleWeaponIncAllGuns(newweaponnum, newweaponnum)) {
|
|
// g_Vars.currentplayer->gunctrl.dualwielding = true;
|
|
// } else {
|
|
// g_Vars.currentplayer->gunctrl.dualwielding = false;
|
|
// }
|
|
//
|
|
// bgunEquipWeapon(newweaponnum);
|
|
//
|
|
// if (wantammo) {
|
|
// g_Vars.currentplayer->gunctrl.wantammo = true;
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
void bgunEquipWeapon2(s32 handnum, s32 weaponnum)
|
|
{
|
|
if (handnum == HAND_LEFT) {
|
|
if (weaponnum == WEAPON_NONE) {
|
|
g_Vars.currentplayer->gunctrl.dualwielding = false;
|
|
} else {
|
|
g_Vars.currentplayer->gunctrl.dualwielding = true;
|
|
}
|
|
} else {
|
|
if (weaponnum > WEAPON_SUICIDEPILL) {
|
|
weaponnum = WEAPON_UNARMED;
|
|
}
|
|
|
|
bgunEquipWeapon(weaponnum);
|
|
}
|
|
}
|
|
|
|
s32 bgunIsFiring(s32 handnum)
|
|
{
|
|
return g_Vars.currentplayer->hands[handnum].firing;
|
|
}
|
|
|
|
s32 bgunGetAttackType(s32 handnum)
|
|
{
|
|
return g_Vars.currentplayer->hands[handnum].attacktype;
|
|
}
|
|
|
|
char *bgunGetName(s32 weaponnum)
|
|
{
|
|
struct weapon *weapon = g_Weapons[weaponnum];
|
|
|
|
if (weapon) {
|
|
return langGet(weapon->name);
|
|
}
|
|
|
|
return "** error\n";
|
|
}
|
|
|
|
u16 bgunGetNameId(s32 weaponnum)
|
|
{
|
|
struct weapon *weapon = g_Weapons[weaponnum];
|
|
|
|
if (weapon) {
|
|
return weapon->name;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
char *bgunGetShortName(s32 weaponnum)
|
|
{
|
|
struct weapon *weapon = g_Weapons[weaponnum];
|
|
|
|
if (weapon) {
|
|
return langGet(weapon->shortname);
|
|
}
|
|
|
|
return "** error\n";
|
|
}
|
|
|
|
const char var7f1ac170[] = "wantedfn %d tiggle %d\n";
|
|
|
|
void bgunReloadIfPossible(s32 handnum)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
if (bgunGetAmmoTypeForWeapon(bgunGetWeaponNum(handnum), FUNC_PRIMARY)
|
|
&& player->hands[handnum].modenext == HANDMODE_NONE) {
|
|
player->hands[handnum].modenext = HANDMODE_RELOAD;
|
|
}
|
|
}
|
|
|
|
void bgunSetAdjustPos(f32 angle)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
player->hands[0].adjustpos.z = (1 - cosf(angle)) * 5;
|
|
player->hands[1].adjustpos.z = (1 - cosf(angle)) * 5;
|
|
}
|
|
|
|
void bgunStartSlide(s32 handnum)
|
|
{
|
|
g_Vars.currentplayer->hands[handnum].slideinc = true;
|
|
}
|
|
|
|
/**
|
|
* Update the slide on weapons which have them (eg. Falcon 2).
|
|
*
|
|
* The slide moves back and then forward when firing. If the gun no longer has
|
|
* any ammo loaded in it, the slide moves back and remains in the back position.
|
|
*/
|
|
void bgunUpdateSlide(s32 handnum)
|
|
{
|
|
f32 slidemax = 0.0f;
|
|
struct weaponfunc *funcdef = currentPlayerGetWeaponFunction(handnum);
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
if (funcdef && ((funcdef->type & 0xff) == INVENTORYFUNCTYPE_SHOOT)) {
|
|
struct weaponfunc_shoot *shootfunc = (struct weaponfunc_shoot *)funcdef;
|
|
slidemax = shootfunc->slidemax;
|
|
}
|
|
|
|
if (player->hands[handnum].slideinc) {
|
|
// Slide is moving backwards
|
|
if (player->hands[handnum].slidetrans < slidemax) {
|
|
player->hands[handnum].slidetrans += slidemax * 0.25f * g_Vars.lvupdate240freal;
|
|
}
|
|
|
|
if (player->hands[handnum].slidetrans >= slidemax) {
|
|
player->hands[handnum].slidetrans = slidemax;
|
|
player->hands[handnum].slideinc = false;
|
|
}
|
|
} else if (player->hands[handnum].loadedammo[FUNC_PRIMARY] > 0) {
|
|
if (bgun0f098a44(&player->hands[handnum], 3)) {
|
|
// Slide is moving forwards
|
|
if (player->hands[handnum].slidetrans > 0.0f) {
|
|
player->hands[handnum].slidetrans -= slidemax * 0.16666667f * g_Vars.lvupdate240freal;
|
|
}
|
|
|
|
if (player->hands[handnum].slidetrans < 0.0f) {
|
|
player->hands[handnum].slidetrans = 0.0f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
f32 bgun0f0a2498(f32 arg0, f32 arg1, f32 arg2, f32 arg3)
|
|
{
|
|
f32 a = arg0 - arg2;
|
|
|
|
return asinf(a / sqrtf(a * a + (arg1 - arg3) * (arg1 - arg3)));
|
|
}
|
|
|
|
void bgun0f0a24f0(struct coord *arg0, s32 handnum)
|
|
{
|
|
struct coord b;
|
|
struct coord a;
|
|
|
|
bgun0f0a0c44(handnum, &a, &b);
|
|
|
|
b.x *= 1000;
|
|
b.y *= 1000;
|
|
b.z *= 1000;
|
|
|
|
arg0->x = b.x;
|
|
arg0->y = b.y;
|
|
arg0->z = b.z;
|
|
}
|
|
|
|
/**
|
|
* This function is a callback that is passed to model code.
|
|
*/
|
|
void bgun0f0a256c(s32 mtxindex, Mtxf *mtx)
|
|
{
|
|
Mtxf sp78;
|
|
Mtxf sp38;
|
|
struct coord rot;
|
|
|
|
if (mtxindex == var8009d148) {
|
|
if (var8009d144->unk0d0e_00 == 1) {
|
|
var8009d144->unk0d14 = mtx->m[3][0];
|
|
var8009d144->unk0d18 = mtx->m[3][1];
|
|
var8009d144->unk0d1c = mtx->m[3][2];
|
|
|
|
var8009d144->unk0d2c[0][0] = mtx->m[0][0];
|
|
var8009d144->unk0d2c[0][1] = mtx->m[0][1];
|
|
var8009d144->unk0d2c[0][2] = mtx->m[0][2];
|
|
var8009d144->unk0d2c[1][0] = mtx->m[1][0];
|
|
var8009d144->unk0d2c[1][1] = mtx->m[1][1];
|
|
var8009d144->unk0d2c[1][2] = mtx->m[1][2];
|
|
var8009d144->unk0d2c[2][0] = mtx->m[2][0];
|
|
var8009d144->unk0d2c[2][1] = mtx->m[2][1];
|
|
var8009d144->unk0d2c[2][2] = mtx->m[2][2];
|
|
} else if (var8009d144->unk0d0e_00 >= 2) {
|
|
mtx->m[3][0] = var8009d144->unk0d14;
|
|
mtx->m[3][1] = var8009d144->unk0d18;
|
|
mtx->m[3][2] = var8009d144->unk0d1c;
|
|
|
|
mtx->m[0][0] = var8009d144->unk0d2c[0][0];
|
|
mtx->m[0][1] = var8009d144->unk0d2c[0][1];
|
|
mtx->m[0][2] = var8009d144->unk0d2c[0][2];
|
|
mtx->m[1][0] = var8009d144->unk0d2c[1][0];
|
|
mtx->m[1][1] = var8009d144->unk0d2c[1][1];
|
|
mtx->m[1][2] = var8009d144->unk0d2c[1][2];
|
|
mtx->m[2][0] = var8009d144->unk0d2c[2][0];
|
|
mtx->m[2][1] = var8009d144->unk0d2c[2][1];
|
|
mtx->m[2][2] = var8009d144->unk0d2c[2][2];
|
|
}
|
|
}
|
|
|
|
if (mtxindex == var8009d0dc) {
|
|
rot.x = 0.0f;
|
|
rot.y = 0.0f;
|
|
rot.z = var8009d140;
|
|
|
|
mtx4LoadIdentity(&sp78);
|
|
mtx4LoadRotation(&rot, &sp78);
|
|
mtx4MultMtx4(mtx, &sp78, &sp38);
|
|
mtx4Copy(&sp38, mtx);
|
|
}
|
|
|
|
if (mtxindex == var8009d0f0[0] || mtxindex == var8009d0f0[1] || mtxindex == var8009d0f0[2]) {
|
|
rot.x = 0.0f;
|
|
rot.y = 0.0f;
|
|
rot.z = 2.0f * -var8009d140;
|
|
|
|
mtx4LoadIdentity(&sp78);
|
|
mtx4LoadRotation(&rot, &sp78);
|
|
mtx4MultMtx4(mtx, &sp78, &sp38);
|
|
mtx4Copy(&sp38, mtx);
|
|
}
|
|
}
|
|
|
|
bool bgun0f0a27c8(void)
|
|
{
|
|
struct hand *hand;
|
|
struct weaponfunc *func;
|
|
|
|
hand = &g_Vars.currentplayer->hands[HAND_RIGHT];
|
|
func = gsetGetWeaponFunction2(&hand->gset);
|
|
|
|
if (func
|
|
&& (func->type & 0xff) == INVENTORYFUNCTYPE_CLOSE
|
|
&& hand->state == HANDSTATE_ATTACK
|
|
&& hand->unk0ce8 != NULL
|
|
&& hand->animmode == HANDANIMMODE_BUSY
|
|
&& !bgun0f098a44(hand, 2)) {
|
|
return true;
|
|
}
|
|
|
|
hand = &g_Vars.currentplayer->hands[HAND_LEFT];
|
|
|
|
if (hand->inuse) {
|
|
func = gsetGetWeaponFunction2(&hand->gset);
|
|
|
|
if (func
|
|
&& (func->type & 0xff) == INVENTORYFUNCTYPE_CLOSE
|
|
&& hand->state == HANDSTATE_ATTACK
|
|
&& hand->unk0ce8 != NULL
|
|
&& hand->animmode == HANDANIMMODE_BUSY
|
|
&& !bgun0f098a44(hand, 2)) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* This function is the same as above but it doesn't call bgun0f098a44().
|
|
*
|
|
* This function is unused.
|
|
*/
|
|
bool bgun0f0a28d8(void)
|
|
{
|
|
struct hand *hand;
|
|
struct weaponfunc *func;
|
|
|
|
hand = &g_Vars.currentplayer->hands[HAND_RIGHT];
|
|
func = gsetGetWeaponFunction2(&hand->gset);
|
|
|
|
if (func
|
|
&& (func->type & 0xff) == INVENTORYFUNCTYPE_CLOSE
|
|
&& hand->state == HANDSTATE_ATTACK
|
|
&& hand->unk0ce8 != NULL
|
|
&& hand->animmode == HANDANIMMODE_BUSY) {
|
|
return true;
|
|
}
|
|
|
|
hand = &g_Vars.currentplayer->hands[HAND_LEFT];
|
|
|
|
if (hand->inuse) {
|
|
func = gsetGetWeaponFunction2(&hand->gset);
|
|
|
|
if (func
|
|
&& (func->type & 0xff) == INVENTORYFUNCTYPE_CLOSE
|
|
&& hand->state == HANDSTATE_ATTACK
|
|
&& hand->unk0ce8 != NULL
|
|
&& hand->animmode == HANDANIMMODE_BUSY) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void bgunHandlePlayerDead(void)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
s32 i;
|
|
|
|
if (player->gunctrl.weaponnum != WEAPON_NONE && player->gunctrl.switchtoweaponnum != WEAPON_NONE) {
|
|
if (player->hands[HAND_LEFT].inuse) {
|
|
player->hands[HAND_LEFT].unk0d0e_00 = 1;
|
|
player->hands[HAND_LEFT].unk0d0e_04 = 0;
|
|
}
|
|
|
|
if (player->hands[HAND_RIGHT].inuse) {
|
|
player->hands[HAND_RIGHT].unk0d0e_00 = 1;
|
|
player->hands[HAND_RIGHT].unk0d0e_04 = 0;
|
|
}
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
player->hands[i].matmot1 = 0;
|
|
player->hands[i].matmot2 = 0;
|
|
player->hands[i].matmot3 = 0;
|
|
|
|
bgunSetState(i, HANDSTATE_IDLE);
|
|
}
|
|
|
|
bgunEquipWeapon2(HAND_LEFT, WEAPON_NONE);
|
|
bgunEquipWeapon2(HAND_RIGHT, WEAPON_NONE);
|
|
}
|
|
}
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
bool bgunIsMissionCritical(s32 weaponnum)
|
|
{
|
|
if (weaponnum == WEAPON_TIMEDMINE
|
|
|| weaponnum == WEAPON_REMOTEMINE
|
|
|| weaponnum == WEAPON_ECMMINE
|
|
|| weaponnum == WEAPON_TRACERBUG) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
#endif
|
|
|
|
void bgunDisarm(struct prop *attackerprop)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
s32 weaponnum = player->hands[0].gset.weaponnum;
|
|
struct chrdata *chr;
|
|
s32 modelnum;
|
|
s32 i;
|
|
bool drop;
|
|
|
|
if (!weaponHasFlag(weaponnum, WEAPONFLAG_08000000) && weaponnum <= WEAPON_RCP45) {
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
// Coop must not allow player to drop a mission critical weapon
|
|
// because AI lists can fail the mission if the player has zero
|
|
// quantity.
|
|
if (g_Vars.coopplayernum >= 0
|
|
&& (attackerprop == g_Vars.bond->prop || attackerprop == g_Vars.coop->prop)
|
|
&& bgunIsMissionCritical(weaponnum)) {
|
|
return;
|
|
}
|
|
#endif
|
|
|
|
if (weaponnum <= WEAPON_UNARMED || player->gunctrl.switchtoweaponnum != -1) {
|
|
return;
|
|
}
|
|
|
|
chr = player->prop->chr;
|
|
drop = true;
|
|
|
|
// RC-P120 and cloaking device: turn off cloak if active
|
|
if (weaponnum == WEAPON_RCP120) {
|
|
g_Vars.currentplayer->devicesactive &= ~DEVICE_CLOAKRCP120;
|
|
}
|
|
|
|
if (weaponnum == WEAPON_CLOAKINGDEVICE) {
|
|
g_Vars.currentplayer->devicesactive &= ~DEVICE_CLOAKDEVICE;
|
|
}
|
|
|
|
// Grenade and nbomb: if pin is pulled, throw it?
|
|
// Or drop it at player's feet with the pin pulled maybe...
|
|
if (weaponnum == WEAPON_GRENADE || weaponnum == WEAPON_NBOMB) {
|
|
for (i = 0; i < 2; i++) {
|
|
struct weaponfunc *func = gsetGetWeaponFunction(&player->hands[i].gset);
|
|
|
|
if ((func->type & 0xff) == INVENTORYFUNCTYPE_THROW
|
|
&& player->hands[i].state == HANDSTATE_ATTACK
|
|
&& player->hands[i].stateminor == 0) {
|
|
drop = false;
|
|
bgunCreateThrownProjectile(i + 2, &player->hands[i].gset);
|
|
}
|
|
}
|
|
}
|
|
|
|
weaponDeleteFromChr(chr, HAND_RIGHT);
|
|
weaponDeleteFromChr(chr, HAND_LEFT);
|
|
|
|
// Actually drop the weapon
|
|
modelnum = playermgrGetModelOfWeapon(weaponnum);
|
|
|
|
if (modelnum >= 0 && drop) {
|
|
struct prop *prop2 = weaponCreateForChr(chr, modelnum, weaponnum, OBJFLAG_WEAPON_AICANNOTUSE, NULL, NULL);
|
|
|
|
if (prop2 && prop2->obj) {
|
|
struct defaultobj *obj = prop2->obj;
|
|
objSetDropped(prop2, DROPTYPE_DEFAULT);
|
|
|
|
if (obj->hidden & OBJHFLAG_PROJECTILE) {
|
|
obj->projectile->pickuptimer240 = TICKS(240);
|
|
obj->projectile->pickupby = attackerprop;
|
|
}
|
|
|
|
objDrop(prop2, true);
|
|
}
|
|
}
|
|
|
|
invRemoveItemByNum(weaponnum);
|
|
|
|
player->hands[1].state = HANDSTATE_IDLE;
|
|
player->hands[1].unk0d0e_00 = 1;
|
|
player->hands[1].unk0d0e_04 = 0;
|
|
player->hands[0].unk0d0e_00 = 1;
|
|
player->hands[0].unk0d0e_04 = 0;
|
|
player->hands[0].state = HANDSTATE_IDLE;
|
|
|
|
// Exit slayer rocket mode if player was using it
|
|
if (player->visionmode == VISIONMODE_SLAYERROCKET) {
|
|
struct weaponobj *rocket = g_Vars.currentplayer->slayerrocket;
|
|
|
|
if (rocket && rocket->base.prop) {
|
|
rocket->timer240 = 0;
|
|
}
|
|
|
|
player->visionmode = VISIONMODE_NORMAL;
|
|
}
|
|
|
|
bgunEquipWeapon2(HAND_RIGHT, WEAPON_UNARMED);
|
|
bgunEquipWeapon2(HAND_LEFT, WEAPON_NONE);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Execute some sort of command list that was generated by the function below.
|
|
*
|
|
* With this function stubbed, part of the CMP150 model does not render.
|
|
*/
|
|
void bgunExecuteModelCmdList(s32 *ptr)
|
|
{
|
|
union modelrwdata *rwdata;
|
|
struct modelnode *node;
|
|
|
|
if (ptr != NULL) {
|
|
while (*ptr != 6) {
|
|
switch (*ptr) {
|
|
case 0:
|
|
rwdata = (union modelrwdata *)ptr[1];
|
|
node = (struct modelnode *)ptr[2];
|
|
rwdata->distance.visible = false;
|
|
node->child = (struct modelnode *)ptr[3];
|
|
ptr += 4;
|
|
break;
|
|
case 1:
|
|
rwdata = (union modelrwdata *)ptr[1];
|
|
node = (struct modelnode *)ptr[2];
|
|
rwdata->toggle.visible = true;
|
|
node->child = (struct modelnode *)ptr[3];
|
|
ptr += 4;
|
|
break;
|
|
case 2:
|
|
rwdata = (union modelrwdata *)ptr[1];
|
|
rwdata->headspot.modelfiledata = NULL;
|
|
rwdata->headspot.rwdatas = NULL;
|
|
ptr += 2;
|
|
break;
|
|
case 3:
|
|
rwdata = (union modelrwdata *)ptr[1];
|
|
rwdata->type0b.unk00 = 0;
|
|
ptr += 2;
|
|
break;
|
|
case 4:
|
|
rwdata = (union modelrwdata *)ptr[1];
|
|
rwdata->chrgunfire.visible = false;
|
|
ptr += 2;
|
|
break;
|
|
case 5:
|
|
rwdata = (union modelrwdata *)ptr[1];
|
|
rwdata->dl.vertices = (struct gfxvtx *)ptr[2];
|
|
rwdata->dl.gdl = (Gfx *)ptr[3];
|
|
rwdata->dl.colours = (struct colour *)ptr[4];
|
|
ptr += 5;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Generate some sort of command list to be executed by the function above.
|
|
*
|
|
* This appears to be a performance optimisation, so the tick code can quickly
|
|
* iterate the command list to update part visibility rather than iterate the
|
|
* full model tree.
|
|
*/
|
|
s32 bgunCreateModelCmdList(struct model *model, struct modelnode *nodearg, s32 *ptr)
|
|
{
|
|
s32 len = 0;
|
|
struct modelnode *node = nodearg;
|
|
union modelrodata *rodata;
|
|
union modelrwdata *rwdata;
|
|
|
|
while (node) {
|
|
u32 type = node->type;
|
|
|
|
switch ((u8)type) {
|
|
case MODELNODETYPE_DISTANCE:
|
|
rodata = node->rodata;
|
|
rwdata = modelGetNodeRwData(model, node);
|
|
rwdata->distance.visible = false;
|
|
node->child = rodata->distance.target;
|
|
ptr[0] = 0;
|
|
ptr[1] = (s32)rwdata;
|
|
ptr[2] = (s32)node;
|
|
ptr[3] = (s32)rodata->distance.target;
|
|
ptr += 4;
|
|
len += 16;
|
|
break;
|
|
case MODELNODETYPE_TOGGLE:
|
|
rodata = node->rodata;
|
|
rwdata = modelGetNodeRwData(model, node);
|
|
rwdata->toggle.visible = true;
|
|
node->child = rodata->toggle.target;
|
|
ptr[0] = 1;
|
|
ptr[1] = (s32)rwdata;
|
|
ptr[2] = (s32)node;
|
|
ptr[3] = (s32)rodata->toggle.target;
|
|
ptr += 4;
|
|
len += 16;
|
|
break;
|
|
case MODELNODETYPE_HEADSPOT:
|
|
rwdata = modelGetNodeRwData(model, node);
|
|
rwdata->headspot.modelfiledata = NULL;
|
|
rwdata->headspot.rwdatas = NULL;
|
|
ptr[0] = 2;
|
|
ptr[1] = (s32)rwdata;
|
|
ptr += 2;
|
|
len += 8;
|
|
break;
|
|
case MODELNODETYPE_0B:
|
|
rwdata = modelGetNodeRwData(model, node);
|
|
rwdata->type0b.unk00 = 0;
|
|
ptr[0] = 3;
|
|
ptr[1] = (s32)rwdata;
|
|
ptr += 2;
|
|
len += 8;
|
|
break;
|
|
case MODELNODETYPE_CHRGUNFIRE:
|
|
rwdata = modelGetNodeRwData(model, node);
|
|
rwdata->chrgunfire.visible = false;
|
|
ptr[0] = 4;
|
|
ptr[1] = (s32)rwdata;
|
|
ptr += 2;
|
|
len += 8;
|
|
break;
|
|
case MODELNODETYPE_DL:
|
|
rodata = node->rodata;
|
|
rwdata = modelGetNodeRwData(model, node);
|
|
rwdata->dl.vertices = rodata->dl.vertices;
|
|
rwdata->dl.gdl = rodata->dl.primary;
|
|
rwdata->dl.colours = (void *)ALIGN8((u32)&rodata->dl.vertices[rodata->dl.numvertices]);
|
|
ptr[0] = 5;
|
|
ptr[1] = (s32)rwdata;
|
|
ptr[2] = (s32)rwdata->dl.vertices;
|
|
ptr[3] = (s32)rwdata->dl.gdl;
|
|
ptr[4] = (s32)rwdata->dl.colours;
|
|
ptr += 5;
|
|
len += 20;
|
|
break;
|
|
}
|
|
|
|
if (node->child) {
|
|
node = node->child;
|
|
} else {
|
|
while (node) {
|
|
if (node == nodearg->parent) {
|
|
node = NULL;
|
|
break;
|
|
}
|
|
|
|
if (node->next) {
|
|
node = node->next;
|
|
break;
|
|
}
|
|
|
|
node = node->parent;
|
|
}
|
|
}
|
|
}
|
|
|
|
*ptr = 6;
|
|
len += 4;
|
|
|
|
return len;
|
|
}
|
|
|
|
void bgunStartDetonateAnimation(s32 playernum)
|
|
{
|
|
s32 prevplayernum = g_Vars.currentplayernum;
|
|
setCurrentPlayerNum(playernum);
|
|
|
|
if (g_Vars.currentplayer->hands[HAND_LEFT].gset.weaponnum == WEAPON_REMOTEMINE) {
|
|
bgunStartAnimation(var80070200, 1, &g_Vars.currentplayer->hands[HAND_LEFT]);
|
|
}
|
|
|
|
setCurrentPlayerNum(prevplayernum);
|
|
}
|
|
|
|
/**
|
|
* Update the gangsta-style rotation of the player's gun.
|
|
*
|
|
* When close to an enemy and aiming at them with a pistol, the gun is rotated
|
|
* sideways. The enemy and aiming check is done elsewhere (autoaim code) and
|
|
* sets the gunctrl's gangsta property to true or false based on whether this
|
|
* criteria is met on the current (or previous?) frame.
|
|
*
|
|
* bgunUpdateGangsta uses this property and increments the rotation of the gun
|
|
* accordingly. It also checks that the gun is in a state that allows gangsta
|
|
* rotation (reloading and equip/unequip do not). It also implements a delay on
|
|
* reverting to the normal rotation.
|
|
*/
|
|
void bgunUpdateGangsta(struct hand *hand, s32 handnum, struct coord *arg2, struct weaponfunc *funcdef, Mtxf *arg4, Mtxf *arg5)
|
|
{
|
|
f32 tmp;
|
|
struct coord sp38 = {0, 0, 0};
|
|
|
|
if (g_Vars.currentplayer->gunctrl.gangsta
|
|
&& funcdef
|
|
&& (funcdef->type & 0xff) == INVENTORYFUNCTYPE_SHOOT
|
|
&& (hand->state == HANDSTATE_IDLE
|
|
|| hand->state == HANDSTATE_2
|
|
|| hand->state == HANDSTATE_ATTACKEMPTY
|
|
|| hand->state == HANDSTATE_ATTACK)) {
|
|
if (hand->gangstarot < 1.0f) {
|
|
// Rotate into gangsta position
|
|
hand->ispare1 += g_Vars.lvupdate240;
|
|
|
|
if (hand->ispare1 > TICKS(60)) {
|
|
hand->gangstarot += LVUPDATE240FREAL() / 30.0f;
|
|
|
|
if (hand->gangstarot > 1.0f) {
|
|
hand->gangstarot = 1.0f;
|
|
}
|
|
}
|
|
} else {
|
|
// Already in gangsta position
|
|
hand->ispare1 = 0;
|
|
}
|
|
} else {
|
|
// At this point we don't want the gun to be in the gangsta position.
|
|
// However we don't want it to revert immediately, so a timer is used.
|
|
f32 inversespeed = 30.0f;
|
|
|
|
if (hand->animmode == HANDANIMMODE_BUSY) {
|
|
// Revert faster
|
|
inversespeed = 15.0f;
|
|
}
|
|
|
|
if (hand->gangstarot > 0.0f) {
|
|
bool revert = false;
|
|
|
|
hand->ispare1 += g_Vars.lvupdate240;
|
|
|
|
if (hand->gangstarot < 1.0f) {
|
|
hand->ispare1 = TICKS(244);
|
|
}
|
|
|
|
if (hand->ispare1 > TICKS(120)) {
|
|
revert = true;
|
|
}
|
|
|
|
if (hand->animmode == HANDANIMMODE_BUSY && funcdef && (funcdef->type & 0xff) != INVENTORYFUNCTYPE_SHOOT) {
|
|
revert = true;
|
|
}
|
|
|
|
if (hand->state != HANDSTATE_IDLE
|
|
&& hand->state != HANDSTATE_2
|
|
&& hand->state != HANDSTATE_ATTACKEMPTY
|
|
&& hand->state != HANDSTATE_ATTACK) {
|
|
revert = true;
|
|
}
|
|
|
|
if (revert) {
|
|
hand->gangstarot -= LVUPDATE240FREAL() / inversespeed;
|
|
}
|
|
|
|
if (hand->gangstarot < 0.0f) {
|
|
hand->gangstarot = 0.0f;
|
|
}
|
|
} else {
|
|
// Not rotated
|
|
hand->ispare1 = 0;
|
|
}
|
|
}
|
|
|
|
tmp = -cosf(hand->gangstarot * M_PI) * 0.5f + 0.50f;
|
|
sp38.z = (tmp * 66.6f * 0.017453292f) * (handnum != HAND_RIGHT ? 1.0f : -1.0f);
|
|
|
|
mtx4LoadRotation(&sp38, arg4);
|
|
mtx00015be0(arg4, arg5);
|
|
|
|
arg2->y += 4.0f * hand->gangstarot;
|
|
arg2->x += 2.0f * hand->gangstarot * (handnum != HAND_RIGHT ? 1.0f : -1.0f);
|
|
}
|
|
|
|
/**
|
|
* Check if smoke needs to be created at the muzzle of the current weapon.
|
|
*
|
|
* gunsmokepoint is basically the temperature of the gun. It increases when
|
|
* firing and cools down when idle. It's only used for pistols; automatics will
|
|
* create smoke based on the number of shots in the current burst.
|
|
*
|
|
* createsmoke must be set to create any smoke at all.
|
|
*
|
|
* forcecreatesmoke controls whether smoke should be created while the gun is
|
|
* still firing.
|
|
*/
|
|
void bgunUpdateSmoke(struct hand *hand, s32 handnum, s32 weaponnum, struct weaponfunc *funcdef)
|
|
{
|
|
if (hand->firing) {
|
|
if (weaponnum == WEAPON_DY357MAGNUM || weaponnum == WEAPON_DY357LX) {
|
|
if ((funcdef->type & 0xff) == INVENTORYFUNCTYPE_SHOOT) {
|
|
hand->gunsmokepoint += 0.6f;
|
|
}
|
|
} else {
|
|
hand->gunsmokepoint += 0.2f;
|
|
}
|
|
}
|
|
|
|
hand->gunsmokepoint -= LVUPDATE240FREAL() / 120.0f;
|
|
|
|
if (hand->gunsmokepoint < 0.0f) {
|
|
hand->gunsmokepoint = 0.0f;
|
|
}
|
|
|
|
if (funcdef && (funcdef->type & 0xff) == INVENTORYFUNCTYPE_SHOOT) {
|
|
f32 mult = 1.0f;
|
|
|
|
if (g_Vars.currentplayer->hands[HAND_LEFT].inuse) {
|
|
mult = 1.5f;
|
|
}
|
|
|
|
hand->forcecreatesmoke = false;
|
|
|
|
switch (weaponnum) {
|
|
case WEAPON_FALCON2:
|
|
case WEAPON_FALCON2_SCOPE:
|
|
if (hand->gunsmokepoint * mult > 0.66f) {
|
|
hand->createsmoke = true;
|
|
}
|
|
break;
|
|
case WEAPON_MAGSEC4:
|
|
case WEAPON_MAULER:
|
|
if (hand->gunsmokepoint * mult > 0.75f) {
|
|
hand->createsmoke = true;
|
|
}
|
|
break;
|
|
case WEAPON_DY357MAGNUM:
|
|
case WEAPON_DY357LX:
|
|
if (hand->gunsmokepoint * mult > 0.9f) {
|
|
hand->createsmoke = true;
|
|
}
|
|
break;
|
|
case WEAPON_CMP150:
|
|
case WEAPON_DRAGON:
|
|
case WEAPON_K7AVENGER:
|
|
case WEAPON_AR34:
|
|
case WEAPON_SUPERDRAGON:
|
|
hand->forcecreatesmoke = true;
|
|
|
|
if (hand->burstbullets > 14) {
|
|
hand->createsmoke = true;
|
|
}
|
|
break;
|
|
case WEAPON_CYCLONE:
|
|
case WEAPON_LAPTOPGUN:
|
|
if (hand->burstbullets > 20) {
|
|
hand->createsmoke = true;
|
|
}
|
|
|
|
hand->forcecreatesmoke = true;
|
|
break;
|
|
case WEAPON_RCP120:
|
|
hand->forcecreatesmoke = true;
|
|
|
|
if (hand->burstbullets > 25) {
|
|
hand->createsmoke = true;
|
|
}
|
|
break;
|
|
case WEAPON_REAPER:
|
|
hand->forcecreatesmoke = true;
|
|
// fall-through
|
|
case WEAPON_SHOTGUN:
|
|
if (hand->firing) {
|
|
hand->createsmoke = true;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (hand->createsmoke && (hand->state != HANDSTATE_ATTACK || hand->forcecreatesmoke)) {
|
|
struct coord smokepos;
|
|
s16 smokerooms[2];
|
|
s32 smoketype = SMOKETYPE_MUZZLE_AUTOMATIC;
|
|
|
|
switch (weaponnum) {
|
|
case WEAPON_FALCON2:
|
|
case WEAPON_FALCON2_SCOPE:
|
|
case WEAPON_MAGSEC4:
|
|
case WEAPON_MAULER:
|
|
case WEAPON_DY357MAGNUM:
|
|
case WEAPON_DY357LX:
|
|
smoketype = SMOKETYPE_MUZZLE_PISTOL;
|
|
break;
|
|
case WEAPON_REAPER:
|
|
smoketype = SMOKETYPE_MUZZLE_REAPER;
|
|
break;
|
|
case WEAPON_SHOTGUN:
|
|
smoketype = SMOKETYPE_MUZZLE_SHOTGUN;
|
|
break;
|
|
}
|
|
|
|
smokerooms[0] = g_Vars.currentplayer->cam_room;
|
|
smokerooms[1] = -1;
|
|
|
|
smokepos.x = hand->muzzlepos.x;
|
|
smokepos.y = hand->muzzlepos.y;
|
|
smokepos.z = hand->muzzlepos.z;
|
|
|
|
hand->gunsmokepoint = 0.0f;
|
|
|
|
if (smokeCreateForHand(&smokepos, smokerooms, smoketype, handnum)) {
|
|
hand->createsmoke = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Update the red beam and dot (used by the Falcon 2 and its variants).
|
|
*/
|
|
void bgunUpdateLasersight(struct hand *hand, struct modelfiledata *modeldef, s32 handnum, u8 *allocation)
|
|
{
|
|
struct modelnode *node;
|
|
struct coord beamfar;
|
|
struct coord dotpos;
|
|
struct coord dotrot;
|
|
struct coord beamnear;
|
|
s32 mtxindex;
|
|
struct coord sp54;
|
|
struct coord sp48;
|
|
struct coord sp3c;
|
|
struct coord sp30;
|
|
bool busy;
|
|
|
|
node = modelGetPart(modeldef, MODELPART_FALCON2_0034);
|
|
|
|
if (node) {
|
|
mtxindex = model0001a524(node, 0);
|
|
|
|
beamnear.x = ((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)))->m[3][0];
|
|
beamnear.y = ((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)))->m[3][1];
|
|
beamnear.z = ((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)))->m[3][2];
|
|
|
|
mtx4TransformVecInPlace(camGetProjectionMtxF(), &beamnear);
|
|
|
|
if (hand->useposrot
|
|
|| (g_Vars.currentplayer->devicesactive & ~g_Vars.currentplayer->devicesinhibit & DEVICE_XRAYSCANNER)) {
|
|
beamfar.x = 0.0f;
|
|
beamfar.y = 0.0f;
|
|
beamfar.z = 1.0f;
|
|
|
|
mtx4RotateVecInPlace(&hand->cammtx, &beamfar);
|
|
|
|
sp48.x = beamfar.x;
|
|
sp48.y = beamfar.y;
|
|
sp48.z = beamfar.z;
|
|
|
|
sp3c.x = beamnear.x;
|
|
sp3c.y = beamnear.y;
|
|
sp3c.z = beamnear.z;
|
|
|
|
mtx4TransformVec(camGetWorldToScreenMtxf(), &sp3c, &sp54);
|
|
mtx4RotateVec(camGetProjectionMtxF(), &sp48, &sp30);
|
|
|
|
beamfar.x *= 500.0f;
|
|
beamfar.y *= 500.0f;
|
|
beamfar.z *= 500.0f;
|
|
|
|
mtx4RotateVecInPlace(camGetProjectionMtxF(), &beamfar);
|
|
|
|
beamfar.x += beamnear.x;
|
|
beamfar.y += beamnear.y;
|
|
beamfar.z += beamnear.z;
|
|
|
|
lasersightSetBeam(handnum, 1, &beamnear, &beamfar);
|
|
return;
|
|
}
|
|
|
|
busy = false;
|
|
|
|
if (hand->animmode == HANDANIMMODE_BUSY) {
|
|
busy = true;
|
|
}
|
|
|
|
if (busy) {
|
|
mtxindex = model0001a524(node, 0);
|
|
|
|
beamfar.x = 0.0f;
|
|
beamfar.y = 0.0f;
|
|
beamfar.z = 500.0f;
|
|
|
|
mtx4TransformVecInPlace((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)), &beamfar);
|
|
} else {
|
|
cam0f0b4c3c(g_Vars.currentplayer->crosspos, &beamfar, 1);
|
|
|
|
beamfar.x *= 500.0f;
|
|
beamfar.y *= 500.0f;
|
|
beamfar.z *= 500.0f;
|
|
}
|
|
|
|
mtx4TransformVecInPlace(camGetProjectionMtxF(), &beamfar);
|
|
lasersightSetBeam(handnum, 1, &beamnear, &beamfar);
|
|
|
|
if (handnum == HAND_RIGHT && hand->hasdotinfo && !busy) {
|
|
dotpos.x = hand->dotpos.x;
|
|
dotpos.y = hand->dotpos.y;
|
|
dotpos.z = hand->dotpos.z;
|
|
|
|
dotrot.x = hand->dotrot.x;
|
|
dotrot.y = hand->dotrot.y;
|
|
dotrot.z = hand->dotrot.z;
|
|
|
|
lasersightSetDot(handnum, &dotpos, &dotrot);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Increment the main barrel spinning, play sounds and (probably) fire shots.
|
|
*/
|
|
void bgunUpdateReaper(struct hand *hand, struct modelfiledata *modeldef)
|
|
{
|
|
struct modelnode *node;
|
|
f32 f2;
|
|
f32 f12;
|
|
s32 tmp;
|
|
|
|
node = modelGetPart(modeldef, MODELPART_REAPER_002C);
|
|
|
|
if (hand->matmot3 <= hand->matmot2) {
|
|
if (hand->matmot2 < 0.0f) {
|
|
hand->matmot2 += 0.01f * LVUPDATE240FREAL();
|
|
|
|
if (hand->matmot2 > 0.0f) {
|
|
hand->matmot2 = 0.0f;
|
|
}
|
|
}
|
|
|
|
hand->matmot3 = hand->matmot2;
|
|
} else {
|
|
f12 = LVUPDATE240FREAL() * 0.005;
|
|
|
|
if (hand->matmot2 < 0.0000001f) {
|
|
hand->matmot2 = -0.14f;
|
|
|
|
if (hand->matmot3 < 0.15f) {
|
|
f12 *= 4.0f;
|
|
}
|
|
}
|
|
|
|
f2 = hand->matmot3 - hand->matmot2;
|
|
|
|
if (f12 < f2) {
|
|
f2 = f12;
|
|
}
|
|
|
|
hand->matmot3 -= f2;
|
|
}
|
|
|
|
if (hand->matmot3 < 0.0f) {
|
|
hand->matmot1 = hand->matmot1 - (1.0f - cosf(hand->matmot3 * M_PI)) * 0.5f * LVUPDATE240FREAL() * 0.2f;
|
|
} else {
|
|
hand->matmot1 = hand->matmot1 + (1.0f - cosf(hand->matmot3 * M_PI)) * 0.5f * LVUPDATE240FREAL() * 0.2f;
|
|
}
|
|
|
|
tmp = hand->matmot1 / 6.2831802368164f;
|
|
hand->matmot1 -= tmp * 6.2831802368164f;
|
|
var8009d140 = hand->matmot1;
|
|
|
|
if (hand->audiohandle == NULL && hand->matmot3 > 0.1f && g_Vars.lvupdate240 != 0) {
|
|
sndStart(var80095200, SFX_805E, &hand->audiohandle, -1, -1, -1.0f, -1, -1);
|
|
}
|
|
|
|
if (hand->audiohandle != NULL) {
|
|
f32 sp34 = hand->matmot3 / 0.50f + 0.4f;
|
|
s32 a2 = 0x7fff;
|
|
|
|
if (hand->matmot3 < 0.1f) {
|
|
audioStop(hand->audiohandle);
|
|
} else {
|
|
if (hand->matmot3 < 0.6f) {
|
|
a2 = (hand->matmot3 - 0.1f) * 32767.0f / 0.5f;
|
|
}
|
|
|
|
audioPostEvent(hand->audiohandle, 8, a2);
|
|
audioPostEvent(hand->audiohandle, 0x10, *(s32 *)&sp34);
|
|
}
|
|
}
|
|
|
|
if (node) {
|
|
var8009d0dc = model0001a524(node, 0);
|
|
g_ModelJointPositionedFunc = bgun0f0a256c;
|
|
var8009d0f0[0] = var8009d0f0[1] = var8009d0f0[2] = -1;
|
|
}
|
|
|
|
node = modelGetPart(modeldef, MODELPART_REAPER_002D);
|
|
|
|
if (node) {
|
|
var8009d0f0[0] = model0001a524(node, 0);
|
|
}
|
|
|
|
node = modelGetPart(modeldef, MODELPART_REAPER_002E);
|
|
|
|
if (node) {
|
|
var8009d0f0[1] = model0001a524(node, 0);
|
|
}
|
|
|
|
node = modelGetPart(modeldef, MODELPART_REAPER_002F);
|
|
|
|
if (node) {
|
|
var8009d0f0[2] = model0001a524(node, 0);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Move/extend the scope on the gun model when the zoom function is used.
|
|
*/
|
|
void bgunUpdateSniperRifle(struct modelfiledata *modeldef, u8 *allocation)
|
|
{
|
|
struct modelnode *nodes[4];
|
|
f32 sp88[4] = {0, 0, 0, 0};
|
|
s32 i;
|
|
f32 f26;
|
|
s32 mtxindex;
|
|
struct coord sp70;
|
|
|
|
f26 = 1.0f - (currentPlayerGetGunZoomFov() - 2.0f) / 58.0f;
|
|
|
|
nodes[0] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_002A);
|
|
nodes[1] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_002B);
|
|
nodes[2] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_002C);
|
|
nodes[3] = modelGetPart(modeldef, MODELPART_SNIPERRIFLE_002D);
|
|
|
|
for (i = 0; i < 4; i++) {
|
|
if (nodes[i]) {
|
|
f32 f20 = f26 * 4.0f;
|
|
mtxindex = model0001a524(nodes[i], 0);
|
|
sp88[i] = f20 - i;
|
|
|
|
if (f20 < i) {
|
|
sp88[i] = 0.0f;
|
|
}
|
|
|
|
sp88[i] *= 100.0f;
|
|
|
|
sp70.x = 0.0f;
|
|
sp70.y = 0.0f;
|
|
sp70.z = sp88[i];
|
|
|
|
mtx4RotateVecInPlace((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)), &sp70);
|
|
|
|
((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)))->m[3][0] += sp70.x;
|
|
((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)))->m[3][1] += sp70.y;
|
|
((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)))->m[3][2] += sp70.z;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Animate the cartridge slider thing in the Devastator model.
|
|
*/
|
|
void bgunUpdateDevastator(struct hand *hand, u8 *allocation, struct modelfiledata *modeldef)
|
|
{
|
|
struct modelnode *node = modelGetPart(modeldef, MODELPART_DEVASTATOR_0028);
|
|
|
|
if (node) {
|
|
s32 mtxindex = model0001a524(node, 0);
|
|
struct coord sp24;
|
|
|
|
hand->loadslide += 0.01f * LVUPDATE240FREAL();
|
|
|
|
if (hand->loadslide > 1.0f) {
|
|
hand->loadslide = 1.0f;
|
|
}
|
|
|
|
sp24.x = hand->loadslide * -10.0f * 1.636f;
|
|
sp24.y = 0.0f;
|
|
sp24.z = 0.0f;
|
|
|
|
mtx4RotateVecInPlace((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)), &sp24);
|
|
|
|
((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)))->m[3][0] += sp24.x;
|
|
((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)))->m[3][1] += sp24.y;
|
|
((Mtxf *)((u32)allocation + mtxindex * sizeof(Mtxf)))->m[3][2] += sp24.z;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Display the shotgun's starburst when appropriate.
|
|
*
|
|
* This logic is different to most guns, likely because most guns display the
|
|
* starburst when the trigger is pressed while the shotgun has the double blast
|
|
* function.
|
|
*/
|
|
void bgunUpdateShotgun(struct hand *hand, u8 *allocation, bool *arg2, struct modelfiledata *modeldef)
|
|
{
|
|
if (hand->flashon) {
|
|
hand->matmot1 = 1.0f;
|
|
}
|
|
|
|
if (hand->matmot1 > 0.0f) {
|
|
hand->matmot1 -= LVUPDATE240FREAL() / 6.0f;
|
|
|
|
if (hand->matmot1 < 0.01f) {
|
|
hand->matmot1 = 0.0f;
|
|
}
|
|
}
|
|
|
|
if (hand->matmot1 > 0.0f) {
|
|
s32 sp34;
|
|
s32 sp28[3] = {0, 0, 0};
|
|
struct modelnode *node = modelGetPart(modeldef, MODELPART_SHOTGUN_0050);
|
|
|
|
*arg2 = true;
|
|
|
|
if (node) {
|
|
sp34 = model0001a524(node, 0);
|
|
|
|
mtx00015ea8((1.0f - hand->matmot1) * 8.0f + 0.5f, (Mtxf *)((u32)allocation + sp34 * sizeof(Mtxf)));
|
|
mtx00015df0((1.0f - hand->matmot1) * 3.0f + 1.0f, (Mtxf *)((u32)allocation + sp34 * sizeof(Mtxf)));
|
|
mtx00015e4c((1.0f - hand->matmot1) * 3.0f + 1.0f, (Mtxf *)((u32)allocation + sp34 * sizeof(Mtxf)));
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgunUpdateLaser(struct hand *hand)
|
|
{
|
|
if (hand->firing && hand->gset.weaponfunc == FUNC_SECONDARY) {
|
|
if (hand->audiohandle == NULL && g_Vars.lvupdate240 != 0) {
|
|
sndStart(var80095200, SFX_LASER_STREAM, &hand->audiohandle, -1, -1, -1, -1, -1);
|
|
}
|
|
|
|
hand->matmot1 = 1;
|
|
return;
|
|
}
|
|
|
|
if (hand->matmot1 > 0) {
|
|
hand->matmot1 -= LVUPDATE240FREAL() / 10.0f;
|
|
} else if (hand->audiohandle != NULL && sndGetState(hand->audiohandle) != AL_STOPPED) {
|
|
audioStop(hand->audiohandle);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Create ammo casing so they can be ejected during reload.
|
|
*/
|
|
void bgunUpdateMagnum(struct hand *hand, s32 handnum, struct modelfiledata *modeldef, Mtxf *mtx)
|
|
{
|
|
f32 ground = g_Vars.currentplayer->vv_ground;
|
|
s32 i;
|
|
|
|
if (modeldef != NULL) {
|
|
for (i = 0; i < hand->unk0cc8_04; i++) {
|
|
struct modelnode *node = modelGetPart(modeldef, 0x0a + random() % 6);
|
|
|
|
if (node) {
|
|
s32 index = model0001a524(node, 0);
|
|
Mtxf *tmp = mtx;
|
|
Mtxf sp4c;
|
|
|
|
tmp += index;
|
|
|
|
mtx4Copy(tmp, &sp4c);
|
|
mtx00015f04(9.999999f, &sp4c);
|
|
mtx4MultMtx4InPlace(camGetProjectionMtxF(), &sp4c);
|
|
|
|
casingCreateForHand(handnum, ground, &sp4c);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Create and/or update the rocket prop that sits inside the rocket launcher.
|
|
*/
|
|
void bgunUpdateRocketLauncher(struct hand *hand, s32 handnum, struct weaponfunc_shootprojectile *func)
|
|
{
|
|
if (hand->rocket == NULL && hand->loadedammo[0] > 0) {
|
|
bgunCreateHeldRocket(handnum, func);
|
|
}
|
|
|
|
if (hand->rocket) {
|
|
bgunUpdateHeldRocket(handnum);
|
|
}
|
|
}
|
|
|
|
void bgun0f0a45d0(struct hand *hand, struct modelfiledata *filedata, bool isdetonator)
|
|
{
|
|
struct modelnode *node = NULL;
|
|
|
|
switch (hand->unk0d0e_04) {
|
|
case 0:
|
|
if (isdetonator) {
|
|
node = modelGetPart(filedata, 0x2a);
|
|
} else {
|
|
node = modelGetPart(filedata, 0x37);
|
|
}
|
|
break;
|
|
case 1:
|
|
node = modelGetPart(filedata, 0x2b);
|
|
break;
|
|
case 2:
|
|
node = modelGetPart(filedata, 0x2b);
|
|
break;
|
|
}
|
|
|
|
if (node) {
|
|
var8009d148 = model0001a524(node, 0);
|
|
g_ModelJointPositionedFunc = bgun0f0a256c;
|
|
} else {
|
|
var8009d148 = -1;
|
|
}
|
|
}
|
|
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
GLOBAL_ASM(
|
|
glabel bgun0f0a46a4
|
|
.late_rodata
|
|
glabel var7f1ac8cc
|
|
.word 0x3f088888
|
|
.word 0x414907a9
|
|
.word 0x3d0bd8cf
|
|
.word 0x414907a9
|
|
.word 0x3d0bd8cf
|
|
.word 0x414907a9
|
|
.word 0x3d0bd8cf
|
|
.word 0x3f088888
|
|
.word 0x40c907a9
|
|
.word 0x414907a9
|
|
.word 0x3c3d3463
|
|
.word 0x414907a9
|
|
.word 0x3c3d3463
|
|
.word 0x40c907a9
|
|
.word 0x414907a9
|
|
.word 0x3bda10fd
|
|
.word 0x414907a9
|
|
.word 0x3bda10fd
|
|
.word 0x3e99999a
|
|
.word 0x3e8e38e4
|
|
.text
|
|
/* f0a560c: 27bdff20 */ addiu $sp,$sp,-224
|
|
/* f0a5610: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f0a5614: afb00020 */ sw $s0,0x20($sp)
|
|
/* f0a5618: f7b40018 */ sdc1 $f20,0x18($sp)
|
|
/* f0a561c: afa500e4 */ sw $a1,0xe4($sp)
|
|
/* f0a5620: afa600e8 */ sw $a2,0xe8($sp)
|
|
/* f0a5624: 948206d6 */ lhu $v0,0x6d6($a0)
|
|
/* f0a5628: 24030001 */ li $v1,0x1
|
|
/* f0a562c: 00808025 */ move $s0,$a0
|
|
/* f0a5630: 00027302 */ srl $t6,$v0,0xc
|
|
/* f0a5634: 11c30005 */ beq $t6,$v1,.JF0f0a564c
|
|
/* f0a5638: 24010002 */ li $at,0x2
|
|
/* f0a563c: 11c1018d */ beq $t6,$at,.JF0f0a5c74
|
|
/* f0a5640: 3c03800a */ lui $v1,0x800a
|
|
/* f0a5644: 100001ce */ b .JF0f0a5d80
|
|
/* f0a5648: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.JF0f0a564c:
|
|
/* f0a564c: 8e0206d4 */ lw $v0,0x6d4($s0)
|
|
/* f0a5650: 00027d00 */ sll $t7,$v0,0x14
|
|
/* f0a5654: 000fc742 */ srl $t8,$t7,0x1d
|
|
/* f0a5658: 13000007 */ beqz $t8,.JF0f0a5678
|
|
/* f0a565c: 00000000 */ nop
|
|
/* f0a5660: 1303006c */ beq $t8,$v1,.JF0f0a5814
|
|
/* f0a5664: 24010002 */ li $at,0x2
|
|
/* f0a5668: 530100e3 */ beql $t8,$at,.JF0f0a59f8
|
|
/* f0a566c: 44802000 */ mtc1 $zero,$f4
|
|
/* f0a5670: 10000140 */ b .JF0f0a5b74
|
|
/* f0a5674: 3c014348 */ lui $at,0x4348
|
|
.JF0f0a5678:
|
|
/* f0a5678: 0c004b60 */ jal random
|
|
/* f0a567c: 00000000 */ nop
|
|
/* f0a5680: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5684: c420d54c */ lwc1 $f0,-0x2ab4($at)
|
|
/* f0a5688: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a568c: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a5690: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a5694: 04410005 */ bgez $v0,.JF0f0a56ac
|
|
/* f0a5698: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a569c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a56a0: 44814000 */ mtc1 $at,$f8
|
|
/* f0a56a4: 00000000 */ nop
|
|
/* f0a56a8: 46083180 */ add.s $f6,$f6,$f8
|
|
.JF0f0a56ac:
|
|
/* f0a56ac: 46143282 */ mul.s $f10,$f6,$f20
|
|
/* f0a56b0: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a56b4: 44818000 */ mtc1 $at,$f16
|
|
/* f0a56b8: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a56bc: 44814000 */ mtc1 $at,$f8
|
|
/* f0a56c0: 46105481 */ sub.s $f18,$f10,$f16
|
|
/* f0a56c4: 46009102 */ mul.s $f4,$f18,$f0
|
|
/* f0a56c8: 00000000 */ nop
|
|
/* f0a56cc: 46082182 */ mul.s $f6,$f4,$f8
|
|
/* f0a56d0: 46003280 */ add.s $f10,$f6,$f0
|
|
/* f0a56d4: 0c004b60 */ jal random
|
|
/* f0a56d8: e60a06e8 */ swc1 $f10,0x6e8($s0)
|
|
/* f0a56dc: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a56e0: 3c014020 */ lui $at,0x4020
|
|
/* f0a56e4: 44810000 */ mtc1 $at,$f0
|
|
/* f0a56e8: 04410005 */ bgez $v0,.JF0f0a5700
|
|
/* f0a56ec: 468084a0 */ cvt.s.w $f18,$f16
|
|
/* f0a56f0: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a56f4: 44812000 */ mtc1 $at,$f4
|
|
/* f0a56f8: 00000000 */ nop
|
|
/* f0a56fc: 46049480 */ add.s $f18,$f18,$f4
|
|
.JF0f0a5700:
|
|
/* f0a5700: 46149202 */ mul.s $f8,$f18,$f20
|
|
/* f0a5704: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a5708: 44815000 */ mtc1 $at,$f10
|
|
/* f0a570c: 44809000 */ mtc1 $zero,$f18
|
|
/* f0a5710: 00000000 */ nop
|
|
/* f0a5714: e61206f0 */ swc1 $f18,0x6f0($s0)
|
|
/* f0a5718: 46004182 */ mul.s $f6,$f8,$f0
|
|
/* f0a571c: 00000000 */ nop
|
|
/* f0a5720: 460a3402 */ mul.s $f16,$f6,$f10
|
|
/* f0a5724: 46008100 */ add.s $f4,$f16,$f0
|
|
/* f0a5728: 0c004b60 */ jal random
|
|
/* f0a572c: e60406ec */ swc1 $f4,0x6ec($s0)
|
|
/* f0a5730: 44824000 */ mtc1 $v0,$f8
|
|
/* f0a5734: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a5738: 04410004 */ bgez $v0,.JF0f0a574c
|
|
/* f0a573c: 468041a0 */ cvt.s.w $f6,$f8
|
|
/* f0a5740: 44815000 */ mtc1 $at,$f10
|
|
/* f0a5744: 00000000 */ nop
|
|
/* f0a5748: 460a3180 */ add.s $f6,$f6,$f10
|
|
.JF0f0a574c:
|
|
/* f0a574c: 46143402 */ mul.s $f16,$f6,$f20
|
|
/* f0a5750: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5754: c424d550 */ lwc1 $f4,-0x2ab0($at)
|
|
/* f0a5758: 3c014338 */ lui $at,0x4338
|
|
/* f0a575c: 44814000 */ mtc1 $at,$f8
|
|
/* f0a5760: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5764: c426d554 */ lwc1 $f6,-0x2aac($at)
|
|
/* f0a5768: 46048482 */ mul.s $f18,$f16,$f4
|
|
/* f0a576c: 46089283 */ div.s $f10,$f18,$f8
|
|
/* f0a5770: 46065401 */ sub.s $f16,$f10,$f6
|
|
/* f0a5774: 0c004b60 */ jal random
|
|
/* f0a5778: e7b000d0 */ swc1 $f16,0xd0($sp)
|
|
/* f0a577c: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a5780: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a5784: 04410004 */ bgez $v0,.JF0f0a5798
|
|
/* f0a5788: 468024a0 */ cvt.s.w $f18,$f4
|
|
/* f0a578c: 44814000 */ mtc1 $at,$f8
|
|
/* f0a5790: 00000000 */ nop
|
|
/* f0a5794: 46089480 */ add.s $f18,$f18,$f8
|
|
.JF0f0a5798:
|
|
/* f0a5798: 46149282 */ mul.s $f10,$f18,$f20
|
|
/* f0a579c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a57a0: c426d558 */ lwc1 $f6,-0x2aa8($at)
|
|
/* f0a57a4: 3c014338 */ lui $at,0x4338
|
|
/* f0a57a8: 44812000 */ mtc1 $at,$f4
|
|
/* f0a57ac: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a57b0: c432d55c */ lwc1 $f18,-0x2aa4($at)
|
|
/* f0a57b4: 46065402 */ mul.s $f16,$f10,$f6
|
|
/* f0a57b8: 46048203 */ div.s $f8,$f16,$f4
|
|
/* f0a57bc: 46124281 */ sub.s $f10,$f8,$f18
|
|
/* f0a57c0: 0c004b60 */ jal random
|
|
/* f0a57c4: e7aa00d4 */ swc1 $f10,0xd4($sp)
|
|
/* f0a57c8: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a57cc: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a57d0: 04410004 */ bgez $v0,.JF0f0a57e4
|
|
/* f0a57d4: 46803420 */ cvt.s.w $f16,$f6
|
|
/* f0a57d8: 44812000 */ mtc1 $at,$f4
|
|
/* f0a57dc: 00000000 */ nop
|
|
/* f0a57e0: 46048400 */ add.s $f16,$f16,$f4
|
|
.JF0f0a57e4:
|
|
/* f0a57e4: 46148202 */ mul.s $f8,$f16,$f20
|
|
/* f0a57e8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a57ec: c432d560 */ lwc1 $f18,-0x2aa0($at)
|
|
/* f0a57f0: 3c014338 */ lui $at,0x4338
|
|
/* f0a57f4: 44813000 */ mtc1 $at,$f6
|
|
/* f0a57f8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a57fc: c430d564 */ lwc1 $f16,-0x2a9c($at)
|
|
/* f0a5800: 46124282 */ mul.s $f10,$f8,$f18
|
|
/* f0a5804: 46065103 */ div.s $f4,$f10,$f6
|
|
/* f0a5808: 46102201 */ sub.s $f8,$f4,$f16
|
|
/* f0a580c: 100000d8 */ b .JF0f0a5b70
|
|
/* f0a5810: e7a800d8 */ swc1 $f8,0xd8($sp)
|
|
.JF0f0a5814:
|
|
/* f0a5814: 0c004b60 */ jal random
|
|
/* f0a5818: 00000000 */ nop
|
|
/* f0a581c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5820: c420d568 */ lwc1 $f0,-0x2a98($at)
|
|
/* f0a5824: 44829000 */ mtc1 $v0,$f18
|
|
/* f0a5828: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a582c: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a5830: 04410005 */ bgez $v0,.JF0f0a5848
|
|
/* f0a5834: 468092a0 */ cvt.s.w $f10,$f18
|
|
/* f0a5838: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a583c: 44813000 */ mtc1 $at,$f6
|
|
/* f0a5840: 00000000 */ nop
|
|
/* f0a5844: 46065280 */ add.s $f10,$f10,$f6
|
|
.JF0f0a5848:
|
|
/* f0a5848: 46145102 */ mul.s $f4,$f10,$f20
|
|
/* f0a584c: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a5850: 44818000 */ mtc1 $at,$f16
|
|
/* f0a5854: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a5858: 44813000 */ mtc1 $at,$f6
|
|
/* f0a585c: 3c014040 */ lui $at,0x4040
|
|
/* f0a5860: 46102201 */ sub.s $f8,$f4,$f16
|
|
/* f0a5864: 44812000 */ mtc1 $at,$f4
|
|
/* f0a5868: 46004482 */ mul.s $f18,$f8,$f0
|
|
/* f0a586c: 00000000 */ nop
|
|
/* f0a5870: 46069282 */ mul.s $f10,$f18,$f6
|
|
/* f0a5874: 00000000 */ nop
|
|
/* f0a5878: 46002402 */ mul.s $f16,$f4,$f0
|
|
/* f0a587c: 46105200 */ add.s $f8,$f10,$f16
|
|
/* f0a5880: 46004487 */ neg.s $f18,$f8
|
|
/* f0a5884: 0c004b60 */ jal random
|
|
/* f0a5888: e61206e8 */ swc1 $f18,0x6e8($s0)
|
|
/* f0a588c: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a5890: 3c014020 */ lui $at,0x4020
|
|
/* f0a5894: 44810000 */ mtc1 $at,$f0
|
|
/* f0a5898: 04410005 */ bgez $v0,.JF0f0a58b0
|
|
/* f0a589c: 46803120 */ cvt.s.w $f4,$f6
|
|
/* f0a58a0: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a58a4: 44815000 */ mtc1 $at,$f10
|
|
/* f0a58a8: 00000000 */ nop
|
|
/* f0a58ac: 460a2100 */ add.s $f4,$f4,$f10
|
|
.JF0f0a58b0:
|
|
/* f0a58b0: 46142402 */ mul.s $f16,$f4,$f20
|
|
/* f0a58b4: 3c013e00 */ lui $at,0x3e00
|
|
/* f0a58b8: 44819000 */ mtc1 $at,$f18
|
|
/* f0a58bc: 46008202 */ mul.s $f8,$f16,$f0
|
|
/* f0a58c0: 00000000 */ nop
|
|
/* f0a58c4: 46124182 */ mul.s $f6,$f8,$f18
|
|
/* f0a58c8: 46003280 */ add.s $f10,$f6,$f0
|
|
/* f0a58cc: 0c004b60 */ jal random
|
|
/* f0a58d0: e60a06ec */ swc1 $f10,0x6ec($s0)
|
|
/* f0a58d4: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a58d8: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a58dc: 04410004 */ bgez $v0,.JF0f0a58f0
|
|
/* f0a58e0: 46802420 */ cvt.s.w $f16,$f4
|
|
/* f0a58e4: 44814000 */ mtc1 $at,$f8
|
|
/* f0a58e8: 00000000 */ nop
|
|
/* f0a58ec: 46088400 */ add.s $f16,$f16,$f8
|
|
.JF0f0a58f0:
|
|
/* f0a58f0: 46148482 */ mul.s $f18,$f16,$f20
|
|
/* f0a58f4: 3c013f80 */ lui $at,0x3f80
|
|
/* f0a58f8: 44813000 */ mtc1 $at,$f6
|
|
/* f0a58fc: 00000000 */ nop
|
|
/* f0a5900: 46069280 */ add.s $f10,$f18,$f6
|
|
/* f0a5904: 46005107 */ neg.s $f4,$f10
|
|
/* f0a5908: 0c004b60 */ jal random
|
|
/* f0a590c: e60406f0 */ swc1 $f4,0x6f0($s0)
|
|
/* f0a5910: 44824000 */ mtc1 $v0,$f8
|
|
/* f0a5914: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a5918: 04410004 */ bgez $v0,.JF0f0a592c
|
|
/* f0a591c: 46804420 */ cvt.s.w $f16,$f8
|
|
/* f0a5920: 44819000 */ mtc1 $at,$f18
|
|
/* f0a5924: 00000000 */ nop
|
|
/* f0a5928: 46128400 */ add.s $f16,$f16,$f18
|
|
.JF0f0a592c:
|
|
/* f0a592c: 46148182 */ mul.s $f6,$f16,$f20
|
|
/* f0a5930: 3c014040 */ lui $at,0x4040
|
|
/* f0a5934: 44815000 */ mtc1 $at,$f10
|
|
/* f0a5938: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a593c: c428d56c */ lwc1 $f8,-0x2a94($at)
|
|
/* f0a5940: 3c014350 */ lui $at,0x4350
|
|
/* f0a5944: 44818000 */ mtc1 $at,$f16
|
|
/* f0a5948: 460a3100 */ add.s $f4,$f6,$f10
|
|
/* f0a594c: 46082482 */ mul.s $f18,$f4,$f8
|
|
/* f0a5950: 46109183 */ div.s $f6,$f18,$f16
|
|
/* f0a5954: 0c004b60 */ jal random
|
|
/* f0a5958: e7a600d0 */ swc1 $f6,0xd0($sp)
|
|
/* f0a595c: 44825000 */ mtc1 $v0,$f10
|
|
/* f0a5960: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a5964: 04410004 */ bgez $v0,.JF0f0a5978
|
|
/* f0a5968: 46805120 */ cvt.s.w $f4,$f10
|
|
/* f0a596c: 44814000 */ mtc1 $at,$f8
|
|
/* f0a5970: 00000000 */ nop
|
|
/* f0a5974: 46082100 */ add.s $f4,$f4,$f8
|
|
.JF0f0a5978:
|
|
/* f0a5978: 46142482 */ mul.s $f18,$f4,$f20
|
|
/* f0a597c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5980: c430d570 */ lwc1 $f16,-0x2a90($at)
|
|
/* f0a5984: 3c014408 */ lui $at,0x4408
|
|
/* f0a5988: 44815000 */ mtc1 $at,$f10
|
|
/* f0a598c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5990: c424d574 */ lwc1 $f4,-0x2a8c($at)
|
|
/* f0a5994: 46109182 */ mul.s $f6,$f18,$f16
|
|
/* f0a5998: 460a3203 */ div.s $f8,$f6,$f10
|
|
/* f0a599c: 46044481 */ sub.s $f18,$f8,$f4
|
|
/* f0a59a0: 0c004b60 */ jal random
|
|
/* f0a59a4: e7b200d4 */ swc1 $f18,0xd4($sp)
|
|
/* f0a59a8: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a59ac: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a59b0: 04410004 */ bgez $v0,.JF0f0a59c4
|
|
/* f0a59b4: 468081a0 */ cvt.s.w $f6,$f16
|
|
/* f0a59b8: 44815000 */ mtc1 $at,$f10
|
|
/* f0a59bc: 00000000 */ nop
|
|
/* f0a59c0: 460a3180 */ add.s $f6,$f6,$f10
|
|
.JF0f0a59c4:
|
|
/* f0a59c4: 46143202 */ mul.s $f8,$f6,$f20
|
|
/* f0a59c8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a59cc: c424d578 */ lwc1 $f4,-0x2a88($at)
|
|
/* f0a59d0: 3c014408 */ lui $at,0x4408
|
|
/* f0a59d4: 44818000 */ mtc1 $at,$f16
|
|
/* f0a59d8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a59dc: c426d57c */ lwc1 $f6,-0x2a84($at)
|
|
/* f0a59e0: 46044482 */ mul.s $f18,$f8,$f4
|
|
/* f0a59e4: 46109283 */ div.s $f10,$f18,$f16
|
|
/* f0a59e8: 46065201 */ sub.s $f8,$f10,$f6
|
|
/* f0a59ec: 10000060 */ b .JF0f0a5b70
|
|
/* f0a59f0: e7a800d8 */ swc1 $f8,0xd8($sp)
|
|
/* f0a59f4: 44802000 */ mtc1 $zero,$f4
|
|
.JF0f0a59f8:
|
|
/* f0a59f8: 0c004b60 */ jal random
|
|
/* f0a59fc: e60406e8 */ swc1 $f4,0x6e8($s0)
|
|
/* f0a5a00: 3c014020 */ lui $at,0x4020
|
|
/* f0a5a04: 44810000 */ mtc1 $at,$f0
|
|
/* f0a5a08: 44829000 */ mtc1 $v0,$f18
|
|
/* f0a5a0c: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a5a10: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a5a14: 04410005 */ bgez $v0,.JF0f0a5a2c
|
|
/* f0a5a18: 46809420 */ cvt.s.w $f16,$f18
|
|
/* f0a5a1c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a5a20: 44815000 */ mtc1 $at,$f10
|
|
/* f0a5a24: 00000000 */ nop
|
|
/* f0a5a28: 460a8400 */ add.s $f16,$f16,$f10
|
|
.JF0f0a5a2c:
|
|
/* f0a5a2c: 46148182 */ mul.s $f6,$f16,$f20
|
|
/* f0a5a30: 3c013e00 */ lui $at,0x3e00
|
|
/* f0a5a34: 44812000 */ mtc1 $at,$f4
|
|
/* f0a5a38: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a5a3c: 00000000 */ nop
|
|
/* f0a5a40: 46044482 */ mul.s $f18,$f8,$f4
|
|
/* f0a5a44: 46009280 */ add.s $f10,$f18,$f0
|
|
/* f0a5a48: 0c004b60 */ jal random
|
|
/* f0a5a4c: e60a06ec */ swc1 $f10,0x6ec($s0)
|
|
/* f0a5a50: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a5a54: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a5a58: 04410004 */ bgez $v0,.JF0f0a5a6c
|
|
/* f0a5a5c: 468081a0 */ cvt.s.w $f6,$f16
|
|
/* f0a5a60: 44814000 */ mtc1 $at,$f8
|
|
/* f0a5a64: 00000000 */ nop
|
|
/* f0a5a68: 46083180 */ add.s $f6,$f6,$f8
|
|
.JF0f0a5a6c:
|
|
/* f0a5a6c: 46143102 */ mul.s $f4,$f6,$f20
|
|
/* f0a5a70: 3c013f80 */ lui $at,0x3f80
|
|
/* f0a5a74: 44819000 */ mtc1 $at,$f18
|
|
/* f0a5a78: 3c013e80 */ lui $at,0x3e80
|
|
/* f0a5a7c: 44818000 */ mtc1 $at,$f16
|
|
/* f0a5a80: 46122280 */ add.s $f10,$f4,$f18
|
|
/* f0a5a84: 46105202 */ mul.s $f8,$f10,$f16
|
|
/* f0a5a88: 0c004b60 */ jal random
|
|
/* f0a5a8c: e60806f0 */ swc1 $f8,0x6f0($s0)
|
|
/* f0a5a90: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a5a94: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a5a98: 04410004 */ bgez $v0,.JF0f0a5aac
|
|
/* f0a5a9c: 46803120 */ cvt.s.w $f4,$f6
|
|
/* f0a5aa0: 44819000 */ mtc1 $at,$f18
|
|
/* f0a5aa4: 00000000 */ nop
|
|
/* f0a5aa8: 46122100 */ add.s $f4,$f4,$f18
|
|
.JF0f0a5aac:
|
|
/* f0a5aac: 46142282 */ mul.s $f10,$f4,$f20
|
|
/* f0a5ab0: 3c014040 */ lui $at,0x4040
|
|
/* f0a5ab4: 44818000 */ mtc1 $at,$f16
|
|
/* f0a5ab8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5abc: c426d580 */ lwc1 $f6,-0x2a80($at)
|
|
/* f0a5ac0: 3c0143b8 */ lui $at,0x43b8
|
|
/* f0a5ac4: 44812000 */ mtc1 $at,$f4
|
|
/* f0a5ac8: 46105200 */ add.s $f8,$f10,$f16
|
|
/* f0a5acc: 46064482 */ mul.s $f18,$f8,$f6
|
|
/* f0a5ad0: 46049283 */ div.s $f10,$f18,$f4
|
|
/* f0a5ad4: 0c004b60 */ jal random
|
|
/* f0a5ad8: e7aa00d0 */ swc1 $f10,0xd0($sp)
|
|
/* f0a5adc: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a5ae0: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a5ae4: 04410004 */ bgez $v0,.JF0f0a5af8
|
|
/* f0a5ae8: 46808220 */ cvt.s.w $f8,$f16
|
|
/* f0a5aec: 44813000 */ mtc1 $at,$f6
|
|
/* f0a5af0: 00000000 */ nop
|
|
/* f0a5af4: 46064200 */ add.s $f8,$f8,$f6
|
|
.JF0f0a5af8:
|
|
/* f0a5af8: 46144482 */ mul.s $f18,$f8,$f20
|
|
/* f0a5afc: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5b00: c424d584 */ lwc1 $f4,-0x2a7c($at)
|
|
/* f0a5b04: 3c01446c */ lui $at,0x446c
|
|
/* f0a5b08: 44818000 */ mtc1 $at,$f16
|
|
/* f0a5b0c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5b10: c428d588 */ lwc1 $f8,-0x2a78($at)
|
|
/* f0a5b14: 46049282 */ mul.s $f10,$f18,$f4
|
|
/* f0a5b18: 46105183 */ div.s $f6,$f10,$f16
|
|
/* f0a5b1c: 46083481 */ sub.s $f18,$f6,$f8
|
|
/* f0a5b20: 0c004b60 */ jal random
|
|
/* f0a5b24: e7b200d4 */ swc1 $f18,0xd4($sp)
|
|
/* f0a5b28: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a5b2c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a5b30: 04410004 */ bgez $v0,.JF0f0a5b44
|
|
/* f0a5b34: 468022a0 */ cvt.s.w $f10,$f4
|
|
/* f0a5b38: 44818000 */ mtc1 $at,$f16
|
|
/* f0a5b3c: 00000000 */ nop
|
|
/* f0a5b40: 46105280 */ add.s $f10,$f10,$f16
|
|
.JF0f0a5b44:
|
|
/* f0a5b44: 46145182 */ mul.s $f6,$f10,$f20
|
|
/* f0a5b48: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5b4c: c428d58c */ lwc1 $f8,-0x2a74($at)
|
|
/* f0a5b50: 3c01446c */ lui $at,0x446c
|
|
/* f0a5b54: 44812000 */ mtc1 $at,$f4
|
|
/* f0a5b58: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5b5c: c42ad590 */ lwc1 $f10,-0x2a70($at)
|
|
/* f0a5b60: 46083482 */ mul.s $f18,$f6,$f8
|
|
/* f0a5b64: 46049403 */ div.s $f16,$f18,$f4
|
|
/* f0a5b68: 460a8181 */ sub.s $f6,$f16,$f10
|
|
/* f0a5b6c: e7a600d8 */ swc1 $f6,0xd8($sp)
|
|
.JF0f0a5b70:
|
|
/* f0a5b70: 3c014348 */ lui $at,0x4348
|
|
.JF0f0a5b74:
|
|
/* f0a5b74: 44819000 */ mtc1 $at,$f18
|
|
/* f0a5b78: c60806dc */ lwc1 $f8,0x6dc($s0)
|
|
/* f0a5b7c: 27a400d0 */ addiu $a0,$sp,0xd0
|
|
/* f0a5b80: 27a50090 */ addiu $a1,$sp,0x90
|
|
/* f0a5b84: 46124101 */ sub.s $f4,$f8,$f18
|
|
/* f0a5b88: 0c00590b */ jal mtx4LoadRotation
|
|
/* f0a5b8c: e60406d8 */ swc1 $f4,0x6d8($s0)
|
|
/* f0a5b90: 27a40090 */ addiu $a0,$sp,0x90
|
|
/* f0a5b94: 0c005750 */ jal mtx4ToMtx3
|
|
/* f0a5b98: 26050718 */ addiu $a1,$s0,0x718
|
|
/* f0a5b9c: 3c03800a */ lui $v1,0x800a
|
|
/* f0a5ba0: 2463a630 */ addiu $v1,$v1,-22992
|
|
/* f0a5ba4: 8c790034 */ lw $t9,0x34($v1)
|
|
/* f0a5ba8: 5b20002e */ blezl $t9,.JF0f0a5c64
|
|
/* f0a5bac: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f0a5bb0: 8e0806d4 */ lw $t0,0x6d4($s0)
|
|
/* f0a5bb4: 00084d00 */ sll $t1,$t0,0x14
|
|
/* f0a5bb8: 00095742 */ srl $t2,$t1,0x1d
|
|
/* f0a5bbc: 51400029 */ beqzl $t2,.JF0f0a5c64
|
|
/* f0a5bc0: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f0a5bc4: c6100324 */ lwc1 $f16,0x324($s0)
|
|
/* f0a5bc8: c60a0364 */ lwc1 $f10,0x364($s0)
|
|
/* f0a5bcc: c460004c */ lwc1 $f0,0x4c($v1)
|
|
/* f0a5bd0: 260402f4 */ addiu $a0,$s0,0x2f4
|
|
/* f0a5bd4: 460a8181 */ sub.s $f6,$f16,$f10
|
|
/* f0a5bd8: 27a50044 */ addiu $a1,$sp,0x44
|
|
/* f0a5bdc: 46003203 */ div.s $f8,$f6,$f0
|
|
/* f0a5be0: e7a80084 */ swc1 $f8,0x84($sp)
|
|
/* f0a5be4: c6040368 */ lwc1 $f4,0x368($s0)
|
|
/* f0a5be8: c6120328 */ lwc1 $f18,0x328($s0)
|
|
/* f0a5bec: 46049401 */ sub.s $f16,$f18,$f4
|
|
/* f0a5bf0: 46008283 */ div.s $f10,$f16,$f0
|
|
/* f0a5bf4: e7aa0088 */ swc1 $f10,0x88($sp)
|
|
/* f0a5bf8: c608036c */ lwc1 $f8,0x36c($s0)
|
|
/* f0a5bfc: c606032c */ lwc1 $f6,0x32c($s0)
|
|
/* f0a5c00: 46083481 */ sub.s $f18,$f6,$f8
|
|
/* f0a5c04: 46009103 */ div.s $f4,$f18,$f0
|
|
/* f0a5c08: 0c005d4a */ jal mtx00017588
|
|
/* f0a5c0c: e7a4008c */ swc1 $f4,0x8c($sp)
|
|
/* f0a5c10: 27a40044 */ addiu $a0,$sp,0x44
|
|
/* f0a5c14: 0c0056ac */ jal mtx4RotateVecInPlace
|
|
/* f0a5c18: 27a50084 */ addiu $a1,$sp,0x84
|
|
/* f0a5c1c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5c20: c420d594 */ lwc1 $f0,-0x2a6c($at)
|
|
/* f0a5c24: c7aa0084 */ lwc1 $f10,0x84($sp)
|
|
/* f0a5c28: c61006e8 */ lwc1 $f16,0x6e8($s0)
|
|
/* f0a5c2c: c61206ec */ lwc1 $f18,0x6ec($s0)
|
|
/* f0a5c30: 46005182 */ mul.s $f6,$f10,$f0
|
|
/* f0a5c34: 46068200 */ add.s $f8,$f16,$f6
|
|
/* f0a5c38: c60606f0 */ lwc1 $f6,0x6f0($s0)
|
|
/* f0a5c3c: e60806e8 */ swc1 $f8,0x6e8($s0)
|
|
/* f0a5c40: c7a40088 */ lwc1 $f4,0x88($sp)
|
|
/* f0a5c44: 46002282 */ mul.s $f10,$f4,$f0
|
|
/* f0a5c48: 460a9400 */ add.s $f16,$f18,$f10
|
|
/* f0a5c4c: e61006ec */ swc1 $f16,0x6ec($s0)
|
|
/* f0a5c50: c7a8008c */ lwc1 $f8,0x8c($sp)
|
|
/* f0a5c54: 46004102 */ mul.s $f4,$f8,$f0
|
|
/* f0a5c58: 46043480 */ add.s $f18,$f6,$f4
|
|
/* f0a5c5c: e61206f0 */ swc1 $f18,0x6f0($s0)
|
|
/* f0a5c60: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
.JF0f0a5c64:
|
|
/* f0a5c64: 316cff0f */ andi $t4,$t3,0xff0f
|
|
/* f0a5c68: 358d0020 */ ori $t5,$t4,0x20
|
|
/* f0a5c6c: 10000043 */ b .JF0f0a5d7c
|
|
/* f0a5c70: a20d06d6 */ sb $t5,0x6d6($s0)
|
|
.JF0f0a5c74:
|
|
/* f0a5c74: 2463a630 */ addiu $v1,$v1,-22992
|
|
/* f0a5c78: 8c6e0284 */ lw $t6,0x284($v1)
|
|
/* f0a5c7c: c460004c */ lwc1 $f0,0x4c($v1)
|
|
/* f0a5c80: 3c013fc0 */ lui $at,0x3fc0
|
|
/* f0a5c84: 8dcf00d8 */ lw $t7,0xd8($t6)
|
|
/* f0a5c88: 11e00008 */ beqz $t7,.JF0f0a5cac
|
|
/* f0a5c8c: 00000000 */ nop
|
|
/* f0a5c90: 44811000 */ mtc1 $at,$f2
|
|
/* f0a5c94: 00000000 */ nop
|
|
/* f0a5c98: 4600103c */ c.lt.s $f2,$f0
|
|
/* f0a5c9c: 00000000 */ nop
|
|
/* f0a5ca0: 45000002 */ bc1f .JF0f0a5cac
|
|
/* f0a5ca4: 00000000 */ nop
|
|
/* f0a5ca8: 46001006 */ mov.s $f0,$f2
|
|
.JF0f0a5cac:
|
|
/* f0a5cac: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a5cb0: c42ad598 */ lwc1 $f10,-0x2a68($at)
|
|
/* f0a5cb4: c60e06e0 */ lwc1 $f14,0x6e0($s0)
|
|
/* f0a5cb8: c60806d8 */ lwc1 $f8,0x6d8($s0)
|
|
/* f0a5cbc: 460a0402 */ mul.s $f16,$f0,$f10
|
|
/* f0a5cc0: c60206ec */ lwc1 $f2,0x6ec($s0)
|
|
/* f0a5cc4: 4608703c */ c.lt.s $f14,$f8
|
|
/* f0a5cc8: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a5ccc: 45000006 */ bc1f .JF0f0a5ce8
|
|
/* f0a5cd0: 46101301 */ sub.s $f12,$f2,$f16
|
|
/* f0a5cd4: 921806d6 */ lbu $t8,0x6d6($s0)
|
|
/* f0a5cd8: 3319ff0f */ andi $t9,$t8,0xff0f
|
|
/* f0a5cdc: 37280030 */ ori $t0,$t9,0x30
|
|
/* f0a5ce0: 10000026 */ b .JF0f0a5d7c
|
|
/* f0a5ce4: a20806d6 */ sb $t0,0x6d6($s0)
|
|
.JF0f0a5ce8:
|
|
/* f0a5ce8: 44813000 */ mtc1 $at,$f6
|
|
/* f0a5cec: 460c1480 */ add.s $f18,$f2,$f12
|
|
/* f0a5cf0: c60806dc */ lwc1 $f8,0x6dc($s0)
|
|
/* f0a5cf4: 46060102 */ mul.s $f4,$f0,$f6
|
|
/* f0a5cf8: c60606e8 */ lwc1 $f6,0x6e8($s0)
|
|
/* f0a5cfc: e60c06ec */ swc1 $f12,0x6ec($s0)
|
|
/* f0a5d00: 00001025 */ move $v0,$zero
|
|
/* f0a5d04: 26040718 */ addiu $a0,$s0,0x718
|
|
/* f0a5d08: 260506f4 */ addiu $a1,$s0,0x6f4
|
|
/* f0a5d0c: 46122282 */ mul.s $f10,$f4,$f18
|
|
/* f0a5d10: 460a7400 */ add.s $f16,$f14,$f10
|
|
/* f0a5d14: 46060102 */ mul.s $f4,$f0,$f6
|
|
/* f0a5d18: c60a06e4 */ lwc1 $f10,0x6e4($s0)
|
|
/* f0a5d1c: e61006e0 */ swc1 $f16,0x6e0($s0)
|
|
/* f0a5d20: c61006f0 */ lwc1 $f16,0x6f0($s0)
|
|
/* f0a5d24: 46100182 */ mul.s $f6,$f0,$f16
|
|
/* f0a5d28: 46044480 */ add.s $f18,$f8,$f4
|
|
/* f0a5d2c: e61206dc */ swc1 $f18,0x6dc($s0)
|
|
/* f0a5d30: 46065200 */ add.s $f8,$f10,$f6
|
|
/* f0a5d34: e60806e4 */ swc1 $f8,0x6e4($s0)
|
|
/* f0a5d38: 8c690034 */ lw $t1,0x34($v1)
|
|
/* f0a5d3c: 59200010 */ blezl $t1,.JF0f0a5d80
|
|
/* f0a5d40: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f0a5d44: afa40030 */ sw $a0,0x30($sp)
|
|
/* f0a5d48: afa5002c */ sw $a1,0x2c($sp)
|
|
/* f0a5d4c: 8fa40030 */ lw $a0,0x30($sp)
|
|
.JF0f0a5d50:
|
|
/* f0a5d50: 8fa5002c */ lw $a1,0x2c($sp)
|
|
/* f0a5d54: 0c00582c */ jal mtx00016110
|
|
/* f0a5d58: afa20040 */ sw $v0,0x40($sp)
|
|
/* f0a5d5c: 3c03800a */ lui $v1,0x800a
|
|
/* f0a5d60: 8fa20040 */ lw $v0,0x40($sp)
|
|
/* f0a5d64: 2463a630 */ addiu $v1,$v1,-22992
|
|
/* f0a5d68: 8c6a0034 */ lw $t2,0x34($v1)
|
|
/* f0a5d6c: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f0a5d70: 004a082a */ slt $at,$v0,$t2
|
|
/* f0a5d74: 5420fff6 */ bnezl $at,.JF0f0a5d50
|
|
/* f0a5d78: 8fa40030 */ lw $a0,0x30($sp)
|
|
.JF0f0a5d7c:
|
|
/* f0a5d7c: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.JF0f0a5d80:
|
|
/* f0a5d80: d7b40018 */ ldc1 $f20,0x18($sp)
|
|
/* f0a5d84: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f0a5d88: 03e00008 */ jr $ra
|
|
/* f0a5d8c: 27bd00e0 */ addiu $sp,$sp,0xe0
|
|
);
|
|
#elif VERSION >= VERSION_PAL_FINAL
|
|
GLOBAL_ASM(
|
|
glabel bgun0f0a46a4
|
|
.late_rodata
|
|
glabel var7f1ac8cc
|
|
.word 0x3f088888
|
|
glabel var7f1ac8d0
|
|
.word 0x41713c65
|
|
glabel var7f1ac8d4
|
|
.word 0x3d0bd8cf
|
|
glabel var7f1ac8d8
|
|
.word 0x41713c65
|
|
glabel var7f1ac8dc
|
|
.word 0x3d0bd8cf
|
|
glabel var7f1ac8e0
|
|
.word 0x41713c65
|
|
glabel var7f1ac8e4
|
|
.word 0x3d0bd8cf
|
|
glabel var7f1ac8e8
|
|
.word 0x3f088888
|
|
glabel var7f1ac8ec
|
|
.word 0x40f13c65
|
|
glabel var7f1ac8f0
|
|
.word 0x41713c65
|
|
glabel var7f1ac8f4
|
|
.word 0x3c3d3463
|
|
glabel var7f1ac8f8
|
|
.word 0x41713c65
|
|
glabel var7f1ac8fc
|
|
.word 0x3c3d3463
|
|
glabel var7f1ac900
|
|
.word 0x40f13c65
|
|
glabel var7f1ac904
|
|
.word 0x41713c65
|
|
glabel var7f1ac908
|
|
.word 0x3bda10fd
|
|
glabel var7f1ac90c
|
|
.word 0x41713c65
|
|
glabel var7f1ac910
|
|
.word 0x3bda10fd
|
|
glabel var7f1ac914
|
|
.word 0x3e99999a
|
|
glabel var7f1ac918
|
|
.word 0x3e8e38e4
|
|
.text
|
|
/* f0a49d8: 27bdff20 */ addiu $sp,$sp,-224
|
|
/* f0a49dc: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f0a49e0: afb00020 */ sw $s0,0x20($sp)
|
|
/* f0a49e4: f7b40018 */ sdc1 $f20,0x18($sp)
|
|
/* f0a49e8: afa500e4 */ sw $a1,0xe4($sp)
|
|
/* f0a49ec: afa600e8 */ sw $a2,0xe8($sp)
|
|
/* f0a49f0: 948206d6 */ lhu $v0,0x6d6($a0)
|
|
/* f0a49f4: 24030001 */ li $v1,0x1
|
|
/* f0a49f8: 00808025 */ move $s0,$a0
|
|
/* f0a49fc: 00027302 */ srl $t6,$v0,0xc
|
|
/* f0a4a00: 11c30005 */ beq $t6,$v1,.PF0f0a4a18
|
|
/* f0a4a04: 24010002 */ li $at,0x2
|
|
/* f0a4a08: 11c1018d */ beq $t6,$at,.PF0f0a5040
|
|
/* f0a4a0c: 3c03800a */ lui $v1,0x800a
|
|
/* f0a4a10: 100001ce */ b .PF0f0a514c
|
|
/* f0a4a14: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.PF0f0a4a18:
|
|
/* f0a4a18: 8e0206d4 */ lw $v0,0x6d4($s0)
|
|
/* f0a4a1c: 00027d00 */ sll $t7,$v0,0x14
|
|
/* f0a4a20: 000fc742 */ srl $t8,$t7,0x1d
|
|
/* f0a4a24: 13000007 */ beqz $t8,.PF0f0a4a44
|
|
/* f0a4a28: 00000000 */ nop
|
|
/* f0a4a2c: 1303006c */ beq $t8,$v1,.PF0f0a4be0
|
|
/* f0a4a30: 24010002 */ li $at,0x2
|
|
/* f0a4a34: 530100e3 */ beql $t8,$at,.PF0f0a4dc4
|
|
/* f0a4a38: 44802000 */ mtc1 $zero,$f4
|
|
/* f0a4a3c: 10000140 */ b .PF0f0a4f40
|
|
/* f0a4a40: 3c014348 */ lui $at,0x4348
|
|
.PF0f0a4a44:
|
|
/* f0a4a44: 0c004ad4 */ jal random
|
|
/* f0a4a48: 00000000 */ nop
|
|
/* f0a4a4c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4a50: c420dacc */ lwc1 $f0,-0x2534($at)
|
|
/* f0a4a54: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a4a58: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a4a5c: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a4a60: 04410005 */ bgez $v0,.PF0f0a4a78
|
|
/* f0a4a64: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a4a68: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4a6c: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4a70: 00000000 */ nop
|
|
/* f0a4a74: 46083180 */ add.s $f6,$f6,$f8
|
|
.PF0f0a4a78:
|
|
/* f0a4a78: 46143282 */ mul.s $f10,$f6,$f20
|
|
/* f0a4a7c: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a4a80: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4a84: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a4a88: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4a8c: 46105481 */ sub.s $f18,$f10,$f16
|
|
/* f0a4a90: 46009102 */ mul.s $f4,$f18,$f0
|
|
/* f0a4a94: 00000000 */ nop
|
|
/* f0a4a98: 46082182 */ mul.s $f6,$f4,$f8
|
|
/* f0a4a9c: 46003280 */ add.s $f10,$f6,$f0
|
|
/* f0a4aa0: 0c004ad4 */ jal random
|
|
/* f0a4aa4: e60a06e8 */ swc1 $f10,0x6e8($s0)
|
|
/* f0a4aa8: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a4aac: 3c014020 */ lui $at,0x4020
|
|
/* f0a4ab0: 44810000 */ mtc1 $at,$f0
|
|
/* f0a4ab4: 04410005 */ bgez $v0,.PF0f0a4acc
|
|
/* f0a4ab8: 468084a0 */ cvt.s.w $f18,$f16
|
|
/* f0a4abc: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4ac0: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4ac4: 00000000 */ nop
|
|
/* f0a4ac8: 46049480 */ add.s $f18,$f18,$f4
|
|
.PF0f0a4acc:
|
|
/* f0a4acc: 46149202 */ mul.s $f8,$f18,$f20
|
|
/* f0a4ad0: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a4ad4: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4ad8: 44809000 */ mtc1 $zero,$f18
|
|
/* f0a4adc: 00000000 */ nop
|
|
/* f0a4ae0: e61206f0 */ swc1 $f18,0x6f0($s0)
|
|
/* f0a4ae4: 46004182 */ mul.s $f6,$f8,$f0
|
|
/* f0a4ae8: 00000000 */ nop
|
|
/* f0a4aec: 460a3402 */ mul.s $f16,$f6,$f10
|
|
/* f0a4af0: 46008100 */ add.s $f4,$f16,$f0
|
|
/* f0a4af4: 0c004ad4 */ jal random
|
|
/* f0a4af8: e60406ec */ swc1 $f4,0x6ec($s0)
|
|
/* f0a4afc: 44824000 */ mtc1 $v0,$f8
|
|
/* f0a4b00: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4b04: 04410004 */ bgez $v0,.PF0f0a4b18
|
|
/* f0a4b08: 468041a0 */ cvt.s.w $f6,$f8
|
|
/* f0a4b0c: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4b10: 00000000 */ nop
|
|
/* f0a4b14: 460a3180 */ add.s $f6,$f6,$f10
|
|
.PF0f0a4b18:
|
|
/* f0a4b18: 46143402 */ mul.s $f16,$f6,$f20
|
|
/* f0a4b1c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4b20: c424dad0 */ lwc1 $f4,-0x2530($at)
|
|
/* f0a4b24: 3c014338 */ lui $at,0x4338
|
|
/* f0a4b28: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4b2c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4b30: c426dad4 */ lwc1 $f6,-0x252c($at)
|
|
/* f0a4b34: 46048482 */ mul.s $f18,$f16,$f4
|
|
/* f0a4b38: 46089283 */ div.s $f10,$f18,$f8
|
|
/* f0a4b3c: 46065401 */ sub.s $f16,$f10,$f6
|
|
/* f0a4b40: 0c004ad4 */ jal random
|
|
/* f0a4b44: e7b000d0 */ swc1 $f16,0xd0($sp)
|
|
/* f0a4b48: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a4b4c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4b50: 04410004 */ bgez $v0,.PF0f0a4b64
|
|
/* f0a4b54: 468024a0 */ cvt.s.w $f18,$f4
|
|
/* f0a4b58: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4b5c: 00000000 */ nop
|
|
/* f0a4b60: 46089480 */ add.s $f18,$f18,$f8
|
|
.PF0f0a4b64:
|
|
/* f0a4b64: 46149282 */ mul.s $f10,$f18,$f20
|
|
/* f0a4b68: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4b6c: c426dad8 */ lwc1 $f6,-0x2528($at)
|
|
/* f0a4b70: 3c014338 */ lui $at,0x4338
|
|
/* f0a4b74: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4b78: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4b7c: c432dadc */ lwc1 $f18,-0x2524($at)
|
|
/* f0a4b80: 46065402 */ mul.s $f16,$f10,$f6
|
|
/* f0a4b84: 46048203 */ div.s $f8,$f16,$f4
|
|
/* f0a4b88: 46124281 */ sub.s $f10,$f8,$f18
|
|
/* f0a4b8c: 0c004ad4 */ jal random
|
|
/* f0a4b90: e7aa00d4 */ swc1 $f10,0xd4($sp)
|
|
/* f0a4b94: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a4b98: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4b9c: 04410004 */ bgez $v0,.PF0f0a4bb0
|
|
/* f0a4ba0: 46803420 */ cvt.s.w $f16,$f6
|
|
/* f0a4ba4: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4ba8: 00000000 */ nop
|
|
/* f0a4bac: 46048400 */ add.s $f16,$f16,$f4
|
|
.PF0f0a4bb0:
|
|
/* f0a4bb0: 46148202 */ mul.s $f8,$f16,$f20
|
|
/* f0a4bb4: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4bb8: c432dae0 */ lwc1 $f18,-0x2520($at)
|
|
/* f0a4bbc: 3c014338 */ lui $at,0x4338
|
|
/* f0a4bc0: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4bc4: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4bc8: c430dae4 */ lwc1 $f16,-0x251c($at)
|
|
/* f0a4bcc: 46124282 */ mul.s $f10,$f8,$f18
|
|
/* f0a4bd0: 46065103 */ div.s $f4,$f10,$f6
|
|
/* f0a4bd4: 46102201 */ sub.s $f8,$f4,$f16
|
|
/* f0a4bd8: 100000d8 */ b .PF0f0a4f3c
|
|
/* f0a4bdc: e7a800d8 */ swc1 $f8,0xd8($sp)
|
|
.PF0f0a4be0:
|
|
/* f0a4be0: 0c004ad4 */ jal random
|
|
/* f0a4be4: 00000000 */ nop
|
|
/* f0a4be8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4bec: c420dae8 */ lwc1 $f0,-0x2518($at)
|
|
/* f0a4bf0: 44829000 */ mtc1 $v0,$f18
|
|
/* f0a4bf4: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a4bf8: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a4bfc: 04410005 */ bgez $v0,.PF0f0a4c14
|
|
/* f0a4c00: 468092a0 */ cvt.s.w $f10,$f18
|
|
/* f0a4c04: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4c08: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4c0c: 00000000 */ nop
|
|
/* f0a4c10: 46065280 */ add.s $f10,$f10,$f6
|
|
.PF0f0a4c14:
|
|
/* f0a4c14: 46145102 */ mul.s $f4,$f10,$f20
|
|
/* f0a4c18: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a4c1c: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4c20: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a4c24: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4c28: 3c014040 */ lui $at,0x4040
|
|
/* f0a4c2c: 46102201 */ sub.s $f8,$f4,$f16
|
|
/* f0a4c30: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4c34: 46004482 */ mul.s $f18,$f8,$f0
|
|
/* f0a4c38: 00000000 */ nop
|
|
/* f0a4c3c: 46069282 */ mul.s $f10,$f18,$f6
|
|
/* f0a4c40: 00000000 */ nop
|
|
/* f0a4c44: 46002402 */ mul.s $f16,$f4,$f0
|
|
/* f0a4c48: 46105200 */ add.s $f8,$f10,$f16
|
|
/* f0a4c4c: 46004487 */ neg.s $f18,$f8
|
|
/* f0a4c50: 0c004ad4 */ jal random
|
|
/* f0a4c54: e61206e8 */ swc1 $f18,0x6e8($s0)
|
|
/* f0a4c58: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a4c5c: 3c014020 */ lui $at,0x4020
|
|
/* f0a4c60: 44810000 */ mtc1 $at,$f0
|
|
/* f0a4c64: 04410005 */ bgez $v0,.PF0f0a4c7c
|
|
/* f0a4c68: 46803120 */ cvt.s.w $f4,$f6
|
|
/* f0a4c6c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4c70: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4c74: 00000000 */ nop
|
|
/* f0a4c78: 460a2100 */ add.s $f4,$f4,$f10
|
|
.PF0f0a4c7c:
|
|
/* f0a4c7c: 46142402 */ mul.s $f16,$f4,$f20
|
|
/* f0a4c80: 3c013e00 */ lui $at,0x3e00
|
|
/* f0a4c84: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4c88: 46008202 */ mul.s $f8,$f16,$f0
|
|
/* f0a4c8c: 00000000 */ nop
|
|
/* f0a4c90: 46124182 */ mul.s $f6,$f8,$f18
|
|
/* f0a4c94: 46003280 */ add.s $f10,$f6,$f0
|
|
/* f0a4c98: 0c004ad4 */ jal random
|
|
/* f0a4c9c: e60a06ec */ swc1 $f10,0x6ec($s0)
|
|
/* f0a4ca0: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a4ca4: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4ca8: 04410004 */ bgez $v0,.PF0f0a4cbc
|
|
/* f0a4cac: 46802420 */ cvt.s.w $f16,$f4
|
|
/* f0a4cb0: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4cb4: 00000000 */ nop
|
|
/* f0a4cb8: 46088400 */ add.s $f16,$f16,$f8
|
|
.PF0f0a4cbc:
|
|
/* f0a4cbc: 46148482 */ mul.s $f18,$f16,$f20
|
|
/* f0a4cc0: 3c013f80 */ lui $at,0x3f80
|
|
/* f0a4cc4: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4cc8: 00000000 */ nop
|
|
/* f0a4ccc: 46069280 */ add.s $f10,$f18,$f6
|
|
/* f0a4cd0: 46005107 */ neg.s $f4,$f10
|
|
/* f0a4cd4: 0c004ad4 */ jal random
|
|
/* f0a4cd8: e60406f0 */ swc1 $f4,0x6f0($s0)
|
|
/* f0a4cdc: 44824000 */ mtc1 $v0,$f8
|
|
/* f0a4ce0: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4ce4: 04410004 */ bgez $v0,.PF0f0a4cf8
|
|
/* f0a4ce8: 46804420 */ cvt.s.w $f16,$f8
|
|
/* f0a4cec: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4cf0: 00000000 */ nop
|
|
/* f0a4cf4: 46128400 */ add.s $f16,$f16,$f18
|
|
.PF0f0a4cf8:
|
|
/* f0a4cf8: 46148182 */ mul.s $f6,$f16,$f20
|
|
/* f0a4cfc: 3c014040 */ lui $at,0x4040
|
|
/* f0a4d00: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4d04: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4d08: c428daec */ lwc1 $f8,-0x2514($at)
|
|
/* f0a4d0c: 3c014350 */ lui $at,0x4350
|
|
/* f0a4d10: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4d14: 460a3100 */ add.s $f4,$f6,$f10
|
|
/* f0a4d18: 46082482 */ mul.s $f18,$f4,$f8
|
|
/* f0a4d1c: 46109183 */ div.s $f6,$f18,$f16
|
|
/* f0a4d20: 0c004ad4 */ jal random
|
|
/* f0a4d24: e7a600d0 */ swc1 $f6,0xd0($sp)
|
|
/* f0a4d28: 44825000 */ mtc1 $v0,$f10
|
|
/* f0a4d2c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4d30: 04410004 */ bgez $v0,.PF0f0a4d44
|
|
/* f0a4d34: 46805120 */ cvt.s.w $f4,$f10
|
|
/* f0a4d38: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4d3c: 00000000 */ nop
|
|
/* f0a4d40: 46082100 */ add.s $f4,$f4,$f8
|
|
.PF0f0a4d44:
|
|
/* f0a4d44: 46142482 */ mul.s $f18,$f4,$f20
|
|
/* f0a4d48: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4d4c: c430daf0 */ lwc1 $f16,-0x2510($at)
|
|
/* f0a4d50: 3c014408 */ lui $at,0x4408
|
|
/* f0a4d54: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4d58: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4d5c: c424daf4 */ lwc1 $f4,-0x250c($at)
|
|
/* f0a4d60: 46109182 */ mul.s $f6,$f18,$f16
|
|
/* f0a4d64: 460a3203 */ div.s $f8,$f6,$f10
|
|
/* f0a4d68: 46044481 */ sub.s $f18,$f8,$f4
|
|
/* f0a4d6c: 0c004ad4 */ jal random
|
|
/* f0a4d70: e7b200d4 */ swc1 $f18,0xd4($sp)
|
|
/* f0a4d74: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a4d78: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4d7c: 04410004 */ bgez $v0,.PF0f0a4d90
|
|
/* f0a4d80: 468081a0 */ cvt.s.w $f6,$f16
|
|
/* f0a4d84: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4d88: 00000000 */ nop
|
|
/* f0a4d8c: 460a3180 */ add.s $f6,$f6,$f10
|
|
.PF0f0a4d90:
|
|
/* f0a4d90: 46143202 */ mul.s $f8,$f6,$f20
|
|
/* f0a4d94: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4d98: c424daf8 */ lwc1 $f4,-0x2508($at)
|
|
/* f0a4d9c: 3c014408 */ lui $at,0x4408
|
|
/* f0a4da0: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4da4: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4da8: c426dafc */ lwc1 $f6,-0x2504($at)
|
|
/* f0a4dac: 46044482 */ mul.s $f18,$f8,$f4
|
|
/* f0a4db0: 46109283 */ div.s $f10,$f18,$f16
|
|
/* f0a4db4: 46065201 */ sub.s $f8,$f10,$f6
|
|
/* f0a4db8: 10000060 */ b .PF0f0a4f3c
|
|
/* f0a4dbc: e7a800d8 */ swc1 $f8,0xd8($sp)
|
|
/* f0a4dc0: 44802000 */ mtc1 $zero,$f4
|
|
.PF0f0a4dc4:
|
|
/* f0a4dc4: 0c004ad4 */ jal random
|
|
/* f0a4dc8: e60406e8 */ swc1 $f4,0x6e8($s0)
|
|
/* f0a4dcc: 3c014020 */ lui $at,0x4020
|
|
/* f0a4dd0: 44810000 */ mtc1 $at,$f0
|
|
/* f0a4dd4: 44829000 */ mtc1 $v0,$f18
|
|
/* f0a4dd8: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a4ddc: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a4de0: 04410005 */ bgez $v0,.PF0f0a4df8
|
|
/* f0a4de4: 46809420 */ cvt.s.w $f16,$f18
|
|
/* f0a4de8: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4dec: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4df0: 00000000 */ nop
|
|
/* f0a4df4: 460a8400 */ add.s $f16,$f16,$f10
|
|
.PF0f0a4df8:
|
|
/* f0a4df8: 46148182 */ mul.s $f6,$f16,$f20
|
|
/* f0a4dfc: 3c013e00 */ lui $at,0x3e00
|
|
/* f0a4e00: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4e04: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a4e08: 00000000 */ nop
|
|
/* f0a4e0c: 46044482 */ mul.s $f18,$f8,$f4
|
|
/* f0a4e10: 46009280 */ add.s $f10,$f18,$f0
|
|
/* f0a4e14: 0c004ad4 */ jal random
|
|
/* f0a4e18: e60a06ec */ swc1 $f10,0x6ec($s0)
|
|
/* f0a4e1c: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a4e20: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4e24: 04410004 */ bgez $v0,.PF0f0a4e38
|
|
/* f0a4e28: 468081a0 */ cvt.s.w $f6,$f16
|
|
/* f0a4e2c: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4e30: 00000000 */ nop
|
|
/* f0a4e34: 46083180 */ add.s $f6,$f6,$f8
|
|
.PF0f0a4e38:
|
|
/* f0a4e38: 46143102 */ mul.s $f4,$f6,$f20
|
|
/* f0a4e3c: 3c013f80 */ lui $at,0x3f80
|
|
/* f0a4e40: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4e44: 3c013e80 */ lui $at,0x3e80
|
|
/* f0a4e48: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4e4c: 46122280 */ add.s $f10,$f4,$f18
|
|
/* f0a4e50: 46105202 */ mul.s $f8,$f10,$f16
|
|
/* f0a4e54: 0c004ad4 */ jal random
|
|
/* f0a4e58: e60806f0 */ swc1 $f8,0x6f0($s0)
|
|
/* f0a4e5c: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a4e60: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4e64: 04410004 */ bgez $v0,.PF0f0a4e78
|
|
/* f0a4e68: 46803120 */ cvt.s.w $f4,$f6
|
|
/* f0a4e6c: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4e70: 00000000 */ nop
|
|
/* f0a4e74: 46122100 */ add.s $f4,$f4,$f18
|
|
.PF0f0a4e78:
|
|
/* f0a4e78: 46142282 */ mul.s $f10,$f4,$f20
|
|
/* f0a4e7c: 3c014040 */ lui $at,0x4040
|
|
/* f0a4e80: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4e84: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4e88: c426db00 */ lwc1 $f6,-0x2500($at)
|
|
/* f0a4e8c: 3c0143b8 */ lui $at,0x43b8
|
|
/* f0a4e90: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4e94: 46105200 */ add.s $f8,$f10,$f16
|
|
/* f0a4e98: 46064482 */ mul.s $f18,$f8,$f6
|
|
/* f0a4e9c: 46049283 */ div.s $f10,$f18,$f4
|
|
/* f0a4ea0: 0c004ad4 */ jal random
|
|
/* f0a4ea4: e7aa00d0 */ swc1 $f10,0xd0($sp)
|
|
/* f0a4ea8: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a4eac: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4eb0: 04410004 */ bgez $v0,.PF0f0a4ec4
|
|
/* f0a4eb4: 46808220 */ cvt.s.w $f8,$f16
|
|
/* f0a4eb8: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4ebc: 00000000 */ nop
|
|
/* f0a4ec0: 46064200 */ add.s $f8,$f8,$f6
|
|
.PF0f0a4ec4:
|
|
/* f0a4ec4: 46144482 */ mul.s $f18,$f8,$f20
|
|
/* f0a4ec8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4ecc: c424db04 */ lwc1 $f4,-0x24fc($at)
|
|
/* f0a4ed0: 3c01446c */ lui $at,0x446c
|
|
/* f0a4ed4: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4ed8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4edc: c428db08 */ lwc1 $f8,-0x24f8($at)
|
|
/* f0a4ee0: 46049282 */ mul.s $f10,$f18,$f4
|
|
/* f0a4ee4: 46105183 */ div.s $f6,$f10,$f16
|
|
/* f0a4ee8: 46083481 */ sub.s $f18,$f6,$f8
|
|
/* f0a4eec: 0c004ad4 */ jal random
|
|
/* f0a4ef0: e7b200d4 */ swc1 $f18,0xd4($sp)
|
|
/* f0a4ef4: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a4ef8: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4efc: 04410004 */ bgez $v0,.PF0f0a4f10
|
|
/* f0a4f00: 468022a0 */ cvt.s.w $f10,$f4
|
|
/* f0a4f04: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4f08: 00000000 */ nop
|
|
/* f0a4f0c: 46105280 */ add.s $f10,$f10,$f16
|
|
.PF0f0a4f10:
|
|
/* f0a4f10: 46145182 */ mul.s $f6,$f10,$f20
|
|
/* f0a4f14: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4f18: c428db0c */ lwc1 $f8,-0x24f4($at)
|
|
/* f0a4f1c: 3c01446c */ lui $at,0x446c
|
|
/* f0a4f20: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4f24: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4f28: c42adb10 */ lwc1 $f10,-0x24f0($at)
|
|
/* f0a4f2c: 46083482 */ mul.s $f18,$f6,$f8
|
|
/* f0a4f30: 46049403 */ div.s $f16,$f18,$f4
|
|
/* f0a4f34: 460a8181 */ sub.s $f6,$f16,$f10
|
|
/* f0a4f38: e7a600d8 */ swc1 $f6,0xd8($sp)
|
|
.PF0f0a4f3c:
|
|
/* f0a4f3c: 3c014348 */ lui $at,0x4348
|
|
.PF0f0a4f40:
|
|
/* f0a4f40: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4f44: c60806dc */ lwc1 $f8,0x6dc($s0)
|
|
/* f0a4f48: 27a400d0 */ addiu $a0,$sp,0xd0
|
|
/* f0a4f4c: 27a50090 */ addiu $a1,$sp,0x90
|
|
/* f0a4f50: 46124101 */ sub.s $f4,$f8,$f18
|
|
/* f0a4f54: 0c005887 */ jal mtx4LoadRotation
|
|
/* f0a4f58: e60406d8 */ swc1 $f4,0x6d8($s0)
|
|
/* f0a4f5c: 27a40090 */ addiu $a0,$sp,0x90
|
|
/* f0a4f60: 0c0056cc */ jal mtx4ToMtx3
|
|
/* f0a4f64: 26050718 */ addiu $a1,$s0,0x718
|
|
/* f0a4f68: 3c03800a */ lui $v1,0x800a
|
|
/* f0a4f6c: 2463a510 */ addiu $v1,$v1,-23280
|
|
/* f0a4f70: 8c790034 */ lw $t9,0x34($v1)
|
|
/* f0a4f74: 5b20002e */ blezl $t9,.PF0f0a5030
|
|
/* f0a4f78: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f0a4f7c: 8e0806d4 */ lw $t0,0x6d4($s0)
|
|
/* f0a4f80: 00084d00 */ sll $t1,$t0,0x14
|
|
/* f0a4f84: 00095742 */ srl $t2,$t1,0x1d
|
|
/* f0a4f88: 51400029 */ beqzl $t2,.PF0f0a5030
|
|
/* f0a4f8c: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f0a4f90: c6100324 */ lwc1 $f16,0x324($s0)
|
|
/* f0a4f94: c60a0364 */ lwc1 $f10,0x364($s0)
|
|
/* f0a4f98: c460004c */ lwc1 $f0,0x4c($v1)
|
|
/* f0a4f9c: 260402f4 */ addiu $a0,$s0,0x2f4
|
|
/* f0a4fa0: 460a8181 */ sub.s $f6,$f16,$f10
|
|
/* f0a4fa4: 27a50044 */ addiu $a1,$sp,0x44
|
|
/* f0a4fa8: 46003203 */ div.s $f8,$f6,$f0
|
|
/* f0a4fac: e7a80084 */ swc1 $f8,0x84($sp)
|
|
/* f0a4fb0: c6040368 */ lwc1 $f4,0x368($s0)
|
|
/* f0a4fb4: c6120328 */ lwc1 $f18,0x328($s0)
|
|
/* f0a4fb8: 46049401 */ sub.s $f16,$f18,$f4
|
|
/* f0a4fbc: 46008283 */ div.s $f10,$f16,$f0
|
|
/* f0a4fc0: e7aa0088 */ swc1 $f10,0x88($sp)
|
|
/* f0a4fc4: c608036c */ lwc1 $f8,0x36c($s0)
|
|
/* f0a4fc8: c606032c */ lwc1 $f6,0x32c($s0)
|
|
/* f0a4fcc: 46083481 */ sub.s $f18,$f6,$f8
|
|
/* f0a4fd0: 46009103 */ div.s $f4,$f18,$f0
|
|
/* f0a4fd4: 0c005cc6 */ jal mtx00017588
|
|
/* f0a4fd8: e7a4008c */ swc1 $f4,0x8c($sp)
|
|
/* f0a4fdc: 27a40044 */ addiu $a0,$sp,0x44
|
|
/* f0a4fe0: 0c005628 */ jal mtx4RotateVecInPlace
|
|
/* f0a4fe4: 27a50084 */ addiu $a1,$sp,0x84
|
|
/* f0a4fe8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4fec: c420db14 */ lwc1 $f0,-0x24ec($at)
|
|
/* f0a4ff0: c7aa0084 */ lwc1 $f10,0x84($sp)
|
|
/* f0a4ff4: c61006e8 */ lwc1 $f16,0x6e8($s0)
|
|
/* f0a4ff8: c61206ec */ lwc1 $f18,0x6ec($s0)
|
|
/* f0a4ffc: 46005182 */ mul.s $f6,$f10,$f0
|
|
/* f0a5000: 46068200 */ add.s $f8,$f16,$f6
|
|
/* f0a5004: c60606f0 */ lwc1 $f6,0x6f0($s0)
|
|
/* f0a5008: e60806e8 */ swc1 $f8,0x6e8($s0)
|
|
/* f0a500c: c7a40088 */ lwc1 $f4,0x88($sp)
|
|
/* f0a5010: 46002282 */ mul.s $f10,$f4,$f0
|
|
/* f0a5014: 460a9400 */ add.s $f16,$f18,$f10
|
|
/* f0a5018: e61006ec */ swc1 $f16,0x6ec($s0)
|
|
/* f0a501c: c7a8008c */ lwc1 $f8,0x8c($sp)
|
|
/* f0a5020: 46004102 */ mul.s $f4,$f8,$f0
|
|
/* f0a5024: 46043480 */ add.s $f18,$f6,$f4
|
|
/* f0a5028: e61206f0 */ swc1 $f18,0x6f0($s0)
|
|
/* f0a502c: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
.PF0f0a5030:
|
|
/* f0a5030: 316cff0f */ andi $t4,$t3,0xff0f
|
|
/* f0a5034: 358d0020 */ ori $t5,$t4,0x20
|
|
/* f0a5038: 10000043 */ b .PF0f0a5148
|
|
/* f0a503c: a20d06d6 */ sb $t5,0x6d6($s0)
|
|
.PF0f0a5040:
|
|
/* f0a5040: 2463a510 */ addiu $v1,$v1,-23280
|
|
/* f0a5044: 8c6e0284 */ lw $t6,0x284($v1)
|
|
/* f0a5048: c460004c */ lwc1 $f0,0x4c($v1)
|
|
/* f0a504c: 3c013fc0 */ lui $at,0x3fc0
|
|
/* f0a5050: 8dcf00d8 */ lw $t7,0xd8($t6)
|
|
/* f0a5054: 11e00008 */ beqz $t7,.PF0f0a5078
|
|
/* f0a5058: 00000000 */ nop
|
|
/* f0a505c: 44811000 */ mtc1 $at,$f2
|
|
/* f0a5060: 00000000 */ nop
|
|
/* f0a5064: 4600103c */ c.lt.s $f2,$f0
|
|
/* f0a5068: 00000000 */ nop
|
|
/* f0a506c: 45000002 */ bc1f .PF0f0a5078
|
|
/* f0a5070: 00000000 */ nop
|
|
/* f0a5074: 46001006 */ mov.s $f0,$f2
|
|
.PF0f0a5078:
|
|
/* f0a5078: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a507c: c42adb18 */ lwc1 $f10,-0x24e8($at)
|
|
/* f0a5080: c60e06e0 */ lwc1 $f14,0x6e0($s0)
|
|
/* f0a5084: c60806d8 */ lwc1 $f8,0x6d8($s0)
|
|
/* f0a5088: 460a0402 */ mul.s $f16,$f0,$f10
|
|
/* f0a508c: c60206ec */ lwc1 $f2,0x6ec($s0)
|
|
/* f0a5090: 4608703c */ c.lt.s $f14,$f8
|
|
/* f0a5094: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a5098: 45000006 */ bc1f .PF0f0a50b4
|
|
/* f0a509c: 46101301 */ sub.s $f12,$f2,$f16
|
|
/* f0a50a0: 921806d6 */ lbu $t8,0x6d6($s0)
|
|
/* f0a50a4: 3319ff0f */ andi $t9,$t8,0xff0f
|
|
/* f0a50a8: 37280030 */ ori $t0,$t9,0x30
|
|
/* f0a50ac: 10000026 */ b .PF0f0a5148
|
|
/* f0a50b0: a20806d6 */ sb $t0,0x6d6($s0)
|
|
.PF0f0a50b4:
|
|
/* f0a50b4: 44813000 */ mtc1 $at,$f6
|
|
/* f0a50b8: 460c1480 */ add.s $f18,$f2,$f12
|
|
/* f0a50bc: c60806dc */ lwc1 $f8,0x6dc($s0)
|
|
/* f0a50c0: 46060102 */ mul.s $f4,$f0,$f6
|
|
/* f0a50c4: c60606e8 */ lwc1 $f6,0x6e8($s0)
|
|
/* f0a50c8: e60c06ec */ swc1 $f12,0x6ec($s0)
|
|
/* f0a50cc: 00001025 */ move $v0,$zero
|
|
/* f0a50d0: 26040718 */ addiu $a0,$s0,0x718
|
|
/* f0a50d4: 260506f4 */ addiu $a1,$s0,0x6f4
|
|
/* f0a50d8: 46122282 */ mul.s $f10,$f4,$f18
|
|
/* f0a50dc: 460a7400 */ add.s $f16,$f14,$f10
|
|
/* f0a50e0: 46060102 */ mul.s $f4,$f0,$f6
|
|
/* f0a50e4: c60a06e4 */ lwc1 $f10,0x6e4($s0)
|
|
/* f0a50e8: e61006e0 */ swc1 $f16,0x6e0($s0)
|
|
/* f0a50ec: c61006f0 */ lwc1 $f16,0x6f0($s0)
|
|
/* f0a50f0: 46100182 */ mul.s $f6,$f0,$f16
|
|
/* f0a50f4: 46044480 */ add.s $f18,$f8,$f4
|
|
/* f0a50f8: e61206dc */ swc1 $f18,0x6dc($s0)
|
|
/* f0a50fc: 46065200 */ add.s $f8,$f10,$f6
|
|
/* f0a5100: e60806e4 */ swc1 $f8,0x6e4($s0)
|
|
/* f0a5104: 8c690034 */ lw $t1,0x34($v1)
|
|
/* f0a5108: 59200010 */ blezl $t1,.PF0f0a514c
|
|
/* f0a510c: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f0a5110: afa40030 */ sw $a0,0x30($sp)
|
|
/* f0a5114: afa5002c */ sw $a1,0x2c($sp)
|
|
/* f0a5118: 8fa40030 */ lw $a0,0x30($sp)
|
|
.PF0f0a511c:
|
|
/* f0a511c: 8fa5002c */ lw $a1,0x2c($sp)
|
|
/* f0a5120: 0c0057a8 */ jal mtx00016110
|
|
/* f0a5124: afa20040 */ sw $v0,0x40($sp)
|
|
/* f0a5128: 3c03800a */ lui $v1,0x800a
|
|
/* f0a512c: 8fa20040 */ lw $v0,0x40($sp)
|
|
/* f0a5130: 2463a510 */ addiu $v1,$v1,-23280
|
|
/* f0a5134: 8c6a0034 */ lw $t2,0x34($v1)
|
|
/* f0a5138: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f0a513c: 004a082a */ slt $at,$v0,$t2
|
|
/* f0a5140: 5420fff6 */ bnezl $at,.PF0f0a511c
|
|
/* f0a5144: 8fa40030 */ lw $a0,0x30($sp)
|
|
.PF0f0a5148:
|
|
/* f0a5148: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.PF0f0a514c:
|
|
/* f0a514c: d7b40018 */ ldc1 $f20,0x18($sp)
|
|
/* f0a5150: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f0a5154: 03e00008 */ jr $ra
|
|
/* f0a5158: 27bd00e0 */ addiu $sp,$sp,0xe0
|
|
);
|
|
#elif VERSION >= VERSION_PAL_BETA
|
|
GLOBAL_ASM(
|
|
glabel bgun0f0a46a4
|
|
.late_rodata
|
|
glabel var7f1ac8cc
|
|
.word 0x3f088888
|
|
glabel var7f1ac8d0
|
|
.word 0x41713c65
|
|
glabel var7f1ac8d4
|
|
.word 0x3d0bd8cf
|
|
glabel var7f1ac8d8
|
|
.word 0x41713c65
|
|
glabel var7f1ac8dc
|
|
.word 0x3d0bd8cf
|
|
glabel var7f1ac8e0
|
|
.word 0x41713c65
|
|
glabel var7f1ac8e4
|
|
.word 0x3d0bd8cf
|
|
glabel var7f1ac8e8
|
|
.word 0x3f088888
|
|
glabel var7f1ac8ec
|
|
.word 0x40f13c65
|
|
glabel var7f1ac8f0
|
|
.word 0x41713c65
|
|
glabel var7f1ac8f4
|
|
.word 0x3c3d3463
|
|
glabel var7f1ac8f8
|
|
.word 0x41713c65
|
|
glabel var7f1ac8fc
|
|
.word 0x3c3d3463
|
|
glabel var7f1ac900
|
|
.word 0x40f13c65
|
|
glabel var7f1ac904
|
|
.word 0x41713c65
|
|
glabel var7f1ac908
|
|
.word 0x3bda10fd
|
|
glabel var7f1ac90c
|
|
.word 0x41713c65
|
|
glabel var7f1ac910
|
|
.word 0x3bda10fd
|
|
glabel var7f1ac914
|
|
.word 0x3e99999a
|
|
glabel var7f1ac918
|
|
.word 0x3e8e38e4
|
|
.text
|
|
/* f0a4928: 27bdff20 */ addiu $sp,$sp,-224
|
|
/* f0a492c: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f0a4930: afb00020 */ sw $s0,0x20($sp)
|
|
/* f0a4934: f7b40018 */ sdc1 $f20,0x18($sp)
|
|
/* f0a4938: afa500e4 */ sw $a1,0xe4($sp)
|
|
/* f0a493c: afa600e8 */ sw $a2,0xe8($sp)
|
|
/* f0a4940: 948206d6 */ lhu $v0,0x6d6($a0)
|
|
/* f0a4944: 24030001 */ li $v1,0x1
|
|
/* f0a4948: 00808025 */ move $s0,$a0
|
|
/* f0a494c: 00027302 */ srl $t6,$v0,0xc
|
|
/* f0a4950: 11c30005 */ beq $t6,$v1,.PB0f0a4968
|
|
/* f0a4954: 24010002 */ li $at,0x2
|
|
/* f0a4958: 11c1018d */ beq $t6,$at,.PB0f0a4f90
|
|
/* f0a495c: 3c03800a */ lui $v1,0x800a
|
|
/* f0a4960: 100001ce */ b .PB0f0a509c
|
|
/* f0a4964: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.PB0f0a4968:
|
|
/* f0a4968: 8e0206d4 */ lw $v0,0x6d4($s0)
|
|
/* f0a496c: 00027d00 */ sll $t7,$v0,0x14
|
|
/* f0a4970: 000fc742 */ srl $t8,$t7,0x1d
|
|
/* f0a4974: 13000007 */ beqz $t8,.PB0f0a4994
|
|
/* f0a4978: 00000000 */ nop
|
|
/* f0a497c: 1303006c */ beq $t8,$v1,.PB0f0a4b30
|
|
/* f0a4980: 24010002 */ li $at,0x2
|
|
/* f0a4984: 530100e3 */ beql $t8,$at,.PB0f0a4d14
|
|
/* f0a4988: 44802000 */ mtc1 $zero,$f4
|
|
/* f0a498c: 10000140 */ b .PB0f0a4e90
|
|
/* f0a4990: 3c014348 */ lui $at,0x4348
|
|
.PB0f0a4994:
|
|
/* f0a4994: 0c004be0 */ jal random
|
|
/* f0a4998: 00000000 */ nop
|
|
/* f0a499c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a49a0: c420e51c */ lwc1 $f0,-0x1ae4($at)
|
|
/* f0a49a4: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a49a8: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a49ac: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a49b0: 04410005 */ bgez $v0,.PB0f0a49c8
|
|
/* f0a49b4: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a49b8: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a49bc: 44814000 */ mtc1 $at,$f8
|
|
/* f0a49c0: 00000000 */ nop
|
|
/* f0a49c4: 46083180 */ add.s $f6,$f6,$f8
|
|
.PB0f0a49c8:
|
|
/* f0a49c8: 46143282 */ mul.s $f10,$f6,$f20
|
|
/* f0a49cc: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a49d0: 44818000 */ mtc1 $at,$f16
|
|
/* f0a49d4: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a49d8: 44814000 */ mtc1 $at,$f8
|
|
/* f0a49dc: 46105481 */ sub.s $f18,$f10,$f16
|
|
/* f0a49e0: 46009102 */ mul.s $f4,$f18,$f0
|
|
/* f0a49e4: 00000000 */ nop
|
|
/* f0a49e8: 46082182 */ mul.s $f6,$f4,$f8
|
|
/* f0a49ec: 46003280 */ add.s $f10,$f6,$f0
|
|
/* f0a49f0: 0c004be0 */ jal random
|
|
/* f0a49f4: e60a06e8 */ swc1 $f10,0x6e8($s0)
|
|
/* f0a49f8: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a49fc: 3c014020 */ lui $at,0x4020
|
|
/* f0a4a00: 44810000 */ mtc1 $at,$f0
|
|
/* f0a4a04: 04410005 */ bgez $v0,.PB0f0a4a1c
|
|
/* f0a4a08: 468084a0 */ cvt.s.w $f18,$f16
|
|
/* f0a4a0c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4a10: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4a14: 00000000 */ nop
|
|
/* f0a4a18: 46049480 */ add.s $f18,$f18,$f4
|
|
.PB0f0a4a1c:
|
|
/* f0a4a1c: 46149202 */ mul.s $f8,$f18,$f20
|
|
/* f0a4a20: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a4a24: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4a28: 44809000 */ mtc1 $zero,$f18
|
|
/* f0a4a2c: 00000000 */ nop
|
|
/* f0a4a30: e61206f0 */ swc1 $f18,0x6f0($s0)
|
|
/* f0a4a34: 46004182 */ mul.s $f6,$f8,$f0
|
|
/* f0a4a38: 00000000 */ nop
|
|
/* f0a4a3c: 460a3402 */ mul.s $f16,$f6,$f10
|
|
/* f0a4a40: 46008100 */ add.s $f4,$f16,$f0
|
|
/* f0a4a44: 0c004be0 */ jal random
|
|
/* f0a4a48: e60406ec */ swc1 $f4,0x6ec($s0)
|
|
/* f0a4a4c: 44824000 */ mtc1 $v0,$f8
|
|
/* f0a4a50: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4a54: 04410004 */ bgez $v0,.PB0f0a4a68
|
|
/* f0a4a58: 468041a0 */ cvt.s.w $f6,$f8
|
|
/* f0a4a5c: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4a60: 00000000 */ nop
|
|
/* f0a4a64: 460a3180 */ add.s $f6,$f6,$f10
|
|
.PB0f0a4a68:
|
|
/* f0a4a68: 46143402 */ mul.s $f16,$f6,$f20
|
|
/* f0a4a6c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4a70: c424e520 */ lwc1 $f4,-0x1ae0($at)
|
|
/* f0a4a74: 3c014338 */ lui $at,0x4338
|
|
/* f0a4a78: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4a7c: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4a80: c426e524 */ lwc1 $f6,-0x1adc($at)
|
|
/* f0a4a84: 46048482 */ mul.s $f18,$f16,$f4
|
|
/* f0a4a88: 46089283 */ div.s $f10,$f18,$f8
|
|
/* f0a4a8c: 46065401 */ sub.s $f16,$f10,$f6
|
|
/* f0a4a90: 0c004be0 */ jal random
|
|
/* f0a4a94: e7b000d0 */ swc1 $f16,0xd0($sp)
|
|
/* f0a4a98: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a4a9c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4aa0: 04410004 */ bgez $v0,.PB0f0a4ab4
|
|
/* f0a4aa4: 468024a0 */ cvt.s.w $f18,$f4
|
|
/* f0a4aa8: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4aac: 00000000 */ nop
|
|
/* f0a4ab0: 46089480 */ add.s $f18,$f18,$f8
|
|
.PB0f0a4ab4:
|
|
/* f0a4ab4: 46149282 */ mul.s $f10,$f18,$f20
|
|
/* f0a4ab8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4abc: c426e528 */ lwc1 $f6,-0x1ad8($at)
|
|
/* f0a4ac0: 3c014338 */ lui $at,0x4338
|
|
/* f0a4ac4: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4ac8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4acc: c432e52c */ lwc1 $f18,-0x1ad4($at)
|
|
/* f0a4ad0: 46065402 */ mul.s $f16,$f10,$f6
|
|
/* f0a4ad4: 46048203 */ div.s $f8,$f16,$f4
|
|
/* f0a4ad8: 46124281 */ sub.s $f10,$f8,$f18
|
|
/* f0a4adc: 0c004be0 */ jal random
|
|
/* f0a4ae0: e7aa00d4 */ swc1 $f10,0xd4($sp)
|
|
/* f0a4ae4: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a4ae8: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4aec: 04410004 */ bgez $v0,.PB0f0a4b00
|
|
/* f0a4af0: 46803420 */ cvt.s.w $f16,$f6
|
|
/* f0a4af4: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4af8: 00000000 */ nop
|
|
/* f0a4afc: 46048400 */ add.s $f16,$f16,$f4
|
|
.PB0f0a4b00:
|
|
/* f0a4b00: 46148202 */ mul.s $f8,$f16,$f20
|
|
/* f0a4b04: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4b08: c432e530 */ lwc1 $f18,-0x1ad0($at)
|
|
/* f0a4b0c: 3c014338 */ lui $at,0x4338
|
|
/* f0a4b10: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4b14: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4b18: c430e534 */ lwc1 $f16,-0x1acc($at)
|
|
/* f0a4b1c: 46124282 */ mul.s $f10,$f8,$f18
|
|
/* f0a4b20: 46065103 */ div.s $f4,$f10,$f6
|
|
/* f0a4b24: 46102201 */ sub.s $f8,$f4,$f16
|
|
/* f0a4b28: 100000d8 */ b .PB0f0a4e8c
|
|
/* f0a4b2c: e7a800d8 */ swc1 $f8,0xd8($sp)
|
|
.PB0f0a4b30:
|
|
/* f0a4b30: 0c004be0 */ jal random
|
|
/* f0a4b34: 00000000 */ nop
|
|
/* f0a4b38: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4b3c: c420e538 */ lwc1 $f0,-0x1ac8($at)
|
|
/* f0a4b40: 44829000 */ mtc1 $v0,$f18
|
|
/* f0a4b44: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a4b48: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a4b4c: 04410005 */ bgez $v0,.PB0f0a4b64
|
|
/* f0a4b50: 468092a0 */ cvt.s.w $f10,$f18
|
|
/* f0a4b54: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4b58: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4b5c: 00000000 */ nop
|
|
/* f0a4b60: 46065280 */ add.s $f10,$f10,$f6
|
|
.PB0f0a4b64:
|
|
/* f0a4b64: 46145102 */ mul.s $f4,$f10,$f20
|
|
/* f0a4b68: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a4b6c: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4b70: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a4b74: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4b78: 3c014040 */ lui $at,0x4040
|
|
/* f0a4b7c: 46102201 */ sub.s $f8,$f4,$f16
|
|
/* f0a4b80: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4b84: 46004482 */ mul.s $f18,$f8,$f0
|
|
/* f0a4b88: 00000000 */ nop
|
|
/* f0a4b8c: 46069282 */ mul.s $f10,$f18,$f6
|
|
/* f0a4b90: 00000000 */ nop
|
|
/* f0a4b94: 46002402 */ mul.s $f16,$f4,$f0
|
|
/* f0a4b98: 46105200 */ add.s $f8,$f10,$f16
|
|
/* f0a4b9c: 46004487 */ neg.s $f18,$f8
|
|
/* f0a4ba0: 0c004be0 */ jal random
|
|
/* f0a4ba4: e61206e8 */ swc1 $f18,0x6e8($s0)
|
|
/* f0a4ba8: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a4bac: 3c014020 */ lui $at,0x4020
|
|
/* f0a4bb0: 44810000 */ mtc1 $at,$f0
|
|
/* f0a4bb4: 04410005 */ bgez $v0,.PB0f0a4bcc
|
|
/* f0a4bb8: 46803120 */ cvt.s.w $f4,$f6
|
|
/* f0a4bbc: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4bc0: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4bc4: 00000000 */ nop
|
|
/* f0a4bc8: 460a2100 */ add.s $f4,$f4,$f10
|
|
.PB0f0a4bcc:
|
|
/* f0a4bcc: 46142402 */ mul.s $f16,$f4,$f20
|
|
/* f0a4bd0: 3c013e00 */ lui $at,0x3e00
|
|
/* f0a4bd4: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4bd8: 46008202 */ mul.s $f8,$f16,$f0
|
|
/* f0a4bdc: 00000000 */ nop
|
|
/* f0a4be0: 46124182 */ mul.s $f6,$f8,$f18
|
|
/* f0a4be4: 46003280 */ add.s $f10,$f6,$f0
|
|
/* f0a4be8: 0c004be0 */ jal random
|
|
/* f0a4bec: e60a06ec */ swc1 $f10,0x6ec($s0)
|
|
/* f0a4bf0: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a4bf4: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4bf8: 04410004 */ bgez $v0,.PB0f0a4c0c
|
|
/* f0a4bfc: 46802420 */ cvt.s.w $f16,$f4
|
|
/* f0a4c00: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4c04: 00000000 */ nop
|
|
/* f0a4c08: 46088400 */ add.s $f16,$f16,$f8
|
|
.PB0f0a4c0c:
|
|
/* f0a4c0c: 46148482 */ mul.s $f18,$f16,$f20
|
|
/* f0a4c10: 3c013f80 */ lui $at,0x3f80
|
|
/* f0a4c14: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4c18: 00000000 */ nop
|
|
/* f0a4c1c: 46069280 */ add.s $f10,$f18,$f6
|
|
/* f0a4c20: 46005107 */ neg.s $f4,$f10
|
|
/* f0a4c24: 0c004be0 */ jal random
|
|
/* f0a4c28: e60406f0 */ swc1 $f4,0x6f0($s0)
|
|
/* f0a4c2c: 44824000 */ mtc1 $v0,$f8
|
|
/* f0a4c30: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4c34: 04410004 */ bgez $v0,.PB0f0a4c48
|
|
/* f0a4c38: 46804420 */ cvt.s.w $f16,$f8
|
|
/* f0a4c3c: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4c40: 00000000 */ nop
|
|
/* f0a4c44: 46128400 */ add.s $f16,$f16,$f18
|
|
.PB0f0a4c48:
|
|
/* f0a4c48: 46148182 */ mul.s $f6,$f16,$f20
|
|
/* f0a4c4c: 3c014040 */ lui $at,0x4040
|
|
/* f0a4c50: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4c54: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4c58: c428e53c */ lwc1 $f8,-0x1ac4($at)
|
|
/* f0a4c5c: 3c014350 */ lui $at,0x4350
|
|
/* f0a4c60: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4c64: 460a3100 */ add.s $f4,$f6,$f10
|
|
/* f0a4c68: 46082482 */ mul.s $f18,$f4,$f8
|
|
/* f0a4c6c: 46109183 */ div.s $f6,$f18,$f16
|
|
/* f0a4c70: 0c004be0 */ jal random
|
|
/* f0a4c74: e7a600d0 */ swc1 $f6,0xd0($sp)
|
|
/* f0a4c78: 44825000 */ mtc1 $v0,$f10
|
|
/* f0a4c7c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4c80: 04410004 */ bgez $v0,.PB0f0a4c94
|
|
/* f0a4c84: 46805120 */ cvt.s.w $f4,$f10
|
|
/* f0a4c88: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4c8c: 00000000 */ nop
|
|
/* f0a4c90: 46082100 */ add.s $f4,$f4,$f8
|
|
.PB0f0a4c94:
|
|
/* f0a4c94: 46142482 */ mul.s $f18,$f4,$f20
|
|
/* f0a4c98: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4c9c: c430e540 */ lwc1 $f16,-0x1ac0($at)
|
|
/* f0a4ca0: 3c014408 */ lui $at,0x4408
|
|
/* f0a4ca4: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4ca8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4cac: c424e544 */ lwc1 $f4,-0x1abc($at)
|
|
/* f0a4cb0: 46109182 */ mul.s $f6,$f18,$f16
|
|
/* f0a4cb4: 460a3203 */ div.s $f8,$f6,$f10
|
|
/* f0a4cb8: 46044481 */ sub.s $f18,$f8,$f4
|
|
/* f0a4cbc: 0c004be0 */ jal random
|
|
/* f0a4cc0: e7b200d4 */ swc1 $f18,0xd4($sp)
|
|
/* f0a4cc4: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a4cc8: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4ccc: 04410004 */ bgez $v0,.PB0f0a4ce0
|
|
/* f0a4cd0: 468081a0 */ cvt.s.w $f6,$f16
|
|
/* f0a4cd4: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4cd8: 00000000 */ nop
|
|
/* f0a4cdc: 460a3180 */ add.s $f6,$f6,$f10
|
|
.PB0f0a4ce0:
|
|
/* f0a4ce0: 46143202 */ mul.s $f8,$f6,$f20
|
|
/* f0a4ce4: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4ce8: c424e548 */ lwc1 $f4,-0x1ab8($at)
|
|
/* f0a4cec: 3c014408 */ lui $at,0x4408
|
|
/* f0a4cf0: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4cf4: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4cf8: c426e54c */ lwc1 $f6,-0x1ab4($at)
|
|
/* f0a4cfc: 46044482 */ mul.s $f18,$f8,$f4
|
|
/* f0a4d00: 46109283 */ div.s $f10,$f18,$f16
|
|
/* f0a4d04: 46065201 */ sub.s $f8,$f10,$f6
|
|
/* f0a4d08: 10000060 */ b .PB0f0a4e8c
|
|
/* f0a4d0c: e7a800d8 */ swc1 $f8,0xd8($sp)
|
|
/* f0a4d10: 44802000 */ mtc1 $zero,$f4
|
|
.PB0f0a4d14:
|
|
/* f0a4d14: 0c004be0 */ jal random
|
|
/* f0a4d18: e60406e8 */ swc1 $f4,0x6e8($s0)
|
|
/* f0a4d1c: 3c014020 */ lui $at,0x4020
|
|
/* f0a4d20: 44810000 */ mtc1 $at,$f0
|
|
/* f0a4d24: 44829000 */ mtc1 $v0,$f18
|
|
/* f0a4d28: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a4d2c: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a4d30: 04410005 */ bgez $v0,.PB0f0a4d48
|
|
/* f0a4d34: 46809420 */ cvt.s.w $f16,$f18
|
|
/* f0a4d38: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4d3c: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4d40: 00000000 */ nop
|
|
/* f0a4d44: 460a8400 */ add.s $f16,$f16,$f10
|
|
.PB0f0a4d48:
|
|
/* f0a4d48: 46148182 */ mul.s $f6,$f16,$f20
|
|
/* f0a4d4c: 3c013e00 */ lui $at,0x3e00
|
|
/* f0a4d50: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4d54: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a4d58: 00000000 */ nop
|
|
/* f0a4d5c: 46044482 */ mul.s $f18,$f8,$f4
|
|
/* f0a4d60: 46009280 */ add.s $f10,$f18,$f0
|
|
/* f0a4d64: 0c004be0 */ jal random
|
|
/* f0a4d68: e60a06ec */ swc1 $f10,0x6ec($s0)
|
|
/* f0a4d6c: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a4d70: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4d74: 04410004 */ bgez $v0,.PB0f0a4d88
|
|
/* f0a4d78: 468081a0 */ cvt.s.w $f6,$f16
|
|
/* f0a4d7c: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4d80: 00000000 */ nop
|
|
/* f0a4d84: 46083180 */ add.s $f6,$f6,$f8
|
|
.PB0f0a4d88:
|
|
/* f0a4d88: 46143102 */ mul.s $f4,$f6,$f20
|
|
/* f0a4d8c: 3c013f80 */ lui $at,0x3f80
|
|
/* f0a4d90: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4d94: 3c013e80 */ lui $at,0x3e80
|
|
/* f0a4d98: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4d9c: 46122280 */ add.s $f10,$f4,$f18
|
|
/* f0a4da0: 46105202 */ mul.s $f8,$f10,$f16
|
|
/* f0a4da4: 0c004be0 */ jal random
|
|
/* f0a4da8: e60806f0 */ swc1 $f8,0x6f0($s0)
|
|
/* f0a4dac: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a4db0: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4db4: 04410004 */ bgez $v0,.PB0f0a4dc8
|
|
/* f0a4db8: 46803120 */ cvt.s.w $f4,$f6
|
|
/* f0a4dbc: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4dc0: 00000000 */ nop
|
|
/* f0a4dc4: 46122100 */ add.s $f4,$f4,$f18
|
|
.PB0f0a4dc8:
|
|
/* f0a4dc8: 46142282 */ mul.s $f10,$f4,$f20
|
|
/* f0a4dcc: 3c014040 */ lui $at,0x4040
|
|
/* f0a4dd0: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4dd4: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4dd8: c426e550 */ lwc1 $f6,-0x1ab0($at)
|
|
/* f0a4ddc: 3c0143b8 */ lui $at,0x43b8
|
|
/* f0a4de0: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4de4: 46105200 */ add.s $f8,$f10,$f16
|
|
/* f0a4de8: 46064482 */ mul.s $f18,$f8,$f6
|
|
/* f0a4dec: 46049283 */ div.s $f10,$f18,$f4
|
|
/* f0a4df0: 0c004be0 */ jal random
|
|
/* f0a4df4: e7aa00d0 */ swc1 $f10,0xd0($sp)
|
|
/* f0a4df8: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a4dfc: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4e00: 04410004 */ bgez $v0,.PB0f0a4e14
|
|
/* f0a4e04: 46808220 */ cvt.s.w $f8,$f16
|
|
/* f0a4e08: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4e0c: 00000000 */ nop
|
|
/* f0a4e10: 46064200 */ add.s $f8,$f8,$f6
|
|
.PB0f0a4e14:
|
|
/* f0a4e14: 46144482 */ mul.s $f18,$f8,$f20
|
|
/* f0a4e18: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4e1c: c424e554 */ lwc1 $f4,-0x1aac($at)
|
|
/* f0a4e20: 3c01446c */ lui $at,0x446c
|
|
/* f0a4e24: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4e28: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4e2c: c428e558 */ lwc1 $f8,-0x1aa8($at)
|
|
/* f0a4e30: 46049282 */ mul.s $f10,$f18,$f4
|
|
/* f0a4e34: 46105183 */ div.s $f6,$f10,$f16
|
|
/* f0a4e38: 46083481 */ sub.s $f18,$f6,$f8
|
|
/* f0a4e3c: 0c004be0 */ jal random
|
|
/* f0a4e40: e7b200d4 */ swc1 $f18,0xd4($sp)
|
|
/* f0a4e44: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a4e48: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4e4c: 04410004 */ bgez $v0,.PB0f0a4e60
|
|
/* f0a4e50: 468022a0 */ cvt.s.w $f10,$f4
|
|
/* f0a4e54: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4e58: 00000000 */ nop
|
|
/* f0a4e5c: 46105280 */ add.s $f10,$f10,$f16
|
|
.PB0f0a4e60:
|
|
/* f0a4e60: 46145182 */ mul.s $f6,$f10,$f20
|
|
/* f0a4e64: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4e68: c428e55c */ lwc1 $f8,-0x1aa4($at)
|
|
/* f0a4e6c: 3c01446c */ lui $at,0x446c
|
|
/* f0a4e70: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4e74: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4e78: c42ae560 */ lwc1 $f10,-0x1aa0($at)
|
|
/* f0a4e7c: 46083482 */ mul.s $f18,$f6,$f8
|
|
/* f0a4e80: 46049403 */ div.s $f16,$f18,$f4
|
|
/* f0a4e84: 460a8181 */ sub.s $f6,$f16,$f10
|
|
/* f0a4e88: e7a600d8 */ swc1 $f6,0xd8($sp)
|
|
.PB0f0a4e8c:
|
|
/* f0a4e8c: 3c014348 */ lui $at,0x4348
|
|
.PB0f0a4e90:
|
|
/* f0a4e90: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4e94: c60806dc */ lwc1 $f8,0x6dc($s0)
|
|
/* f0a4e98: 27a400d0 */ addiu $a0,$sp,0xd0
|
|
/* f0a4e9c: 27a50090 */ addiu $a1,$sp,0x90
|
|
/* f0a4ea0: 46124101 */ sub.s $f4,$f8,$f18
|
|
/* f0a4ea4: 0c005bb7 */ jal mtx4LoadRotation
|
|
/* f0a4ea8: e60406d8 */ swc1 $f4,0x6d8($s0)
|
|
/* f0a4eac: 27a40090 */ addiu $a0,$sp,0x90
|
|
/* f0a4eb0: 0c0059fc */ jal mtx4ToMtx3
|
|
/* f0a4eb4: 26050718 */ addiu $a1,$s0,0x718
|
|
/* f0a4eb8: 3c03800a */ lui $v1,0x800a
|
|
/* f0a4ebc: 2463e4d0 */ addiu $v1,$v1,-6960
|
|
/* f0a4ec0: 8c790034 */ lw $t9,0x34($v1)
|
|
/* f0a4ec4: 5b20002e */ blezl $t9,.PB0f0a4f80
|
|
/* f0a4ec8: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f0a4ecc: 8e0806d4 */ lw $t0,0x6d4($s0)
|
|
/* f0a4ed0: 00084d00 */ sll $t1,$t0,0x14
|
|
/* f0a4ed4: 00095742 */ srl $t2,$t1,0x1d
|
|
/* f0a4ed8: 51400029 */ beqzl $t2,.PB0f0a4f80
|
|
/* f0a4edc: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f0a4ee0: c6100324 */ lwc1 $f16,0x324($s0)
|
|
/* f0a4ee4: c60a0364 */ lwc1 $f10,0x364($s0)
|
|
/* f0a4ee8: c460004c */ lwc1 $f0,0x4c($v1)
|
|
/* f0a4eec: 260402f4 */ addiu $a0,$s0,0x2f4
|
|
/* f0a4ef0: 460a8181 */ sub.s $f6,$f16,$f10
|
|
/* f0a4ef4: 27a50044 */ addiu $a1,$sp,0x44
|
|
/* f0a4ef8: 46003203 */ div.s $f8,$f6,$f0
|
|
/* f0a4efc: e7a80084 */ swc1 $f8,0x84($sp)
|
|
/* f0a4f00: c6040368 */ lwc1 $f4,0x368($s0)
|
|
/* f0a4f04: c6120328 */ lwc1 $f18,0x328($s0)
|
|
/* f0a4f08: 46049401 */ sub.s $f16,$f18,$f4
|
|
/* f0a4f0c: 46008283 */ div.s $f10,$f16,$f0
|
|
/* f0a4f10: e7aa0088 */ swc1 $f10,0x88($sp)
|
|
/* f0a4f14: c608036c */ lwc1 $f8,0x36c($s0)
|
|
/* f0a4f18: c606032c */ lwc1 $f6,0x32c($s0)
|
|
/* f0a4f1c: 46083481 */ sub.s $f18,$f6,$f8
|
|
/* f0a4f20: 46009103 */ div.s $f4,$f18,$f0
|
|
/* f0a4f24: 0c005ff6 */ jal mtx00017588
|
|
/* f0a4f28: e7a4008c */ swc1 $f4,0x8c($sp)
|
|
/* f0a4f2c: 27a40044 */ addiu $a0,$sp,0x44
|
|
/* f0a4f30: 0c005958 */ jal mtx4RotateVecInPlace
|
|
/* f0a4f34: 27a50084 */ addiu $a1,$sp,0x84
|
|
/* f0a4f38: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4f3c: c420e564 */ lwc1 $f0,-0x1a9c($at)
|
|
/* f0a4f40: c7aa0084 */ lwc1 $f10,0x84($sp)
|
|
/* f0a4f44: c61006e8 */ lwc1 $f16,0x6e8($s0)
|
|
/* f0a4f48: c61206ec */ lwc1 $f18,0x6ec($s0)
|
|
/* f0a4f4c: 46005182 */ mul.s $f6,$f10,$f0
|
|
/* f0a4f50: 46068200 */ add.s $f8,$f16,$f6
|
|
/* f0a4f54: c60606f0 */ lwc1 $f6,0x6f0($s0)
|
|
/* f0a4f58: e60806e8 */ swc1 $f8,0x6e8($s0)
|
|
/* f0a4f5c: c7a40088 */ lwc1 $f4,0x88($sp)
|
|
/* f0a4f60: 46002282 */ mul.s $f10,$f4,$f0
|
|
/* f0a4f64: 460a9400 */ add.s $f16,$f18,$f10
|
|
/* f0a4f68: e61006ec */ swc1 $f16,0x6ec($s0)
|
|
/* f0a4f6c: c7a8008c */ lwc1 $f8,0x8c($sp)
|
|
/* f0a4f70: 46004102 */ mul.s $f4,$f8,$f0
|
|
/* f0a4f74: 46043480 */ add.s $f18,$f6,$f4
|
|
/* f0a4f78: e61206f0 */ swc1 $f18,0x6f0($s0)
|
|
/* f0a4f7c: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
.PB0f0a4f80:
|
|
/* f0a4f80: 316cff0f */ andi $t4,$t3,0xff0f
|
|
/* f0a4f84: 358d0020 */ ori $t5,$t4,0x20
|
|
/* f0a4f88: 10000043 */ b .PB0f0a5098
|
|
/* f0a4f8c: a20d06d6 */ sb $t5,0x6d6($s0)
|
|
.PB0f0a4f90:
|
|
/* f0a4f90: 2463e4d0 */ addiu $v1,$v1,-6960
|
|
/* f0a4f94: 8c6e0284 */ lw $t6,0x284($v1)
|
|
/* f0a4f98: c460004c */ lwc1 $f0,0x4c($v1)
|
|
/* f0a4f9c: 3c013fc0 */ lui $at,0x3fc0
|
|
/* f0a4fa0: 8dcf00d8 */ lw $t7,0xd8($t6)
|
|
/* f0a4fa4: 11e00008 */ beqz $t7,.PB0f0a4fc8
|
|
/* f0a4fa8: 00000000 */ nop
|
|
/* f0a4fac: 44811000 */ mtc1 $at,$f2
|
|
/* f0a4fb0: 00000000 */ nop
|
|
/* f0a4fb4: 4600103c */ c.lt.s $f2,$f0
|
|
/* f0a4fb8: 00000000 */ nop
|
|
/* f0a4fbc: 45000002 */ bc1f .PB0f0a4fc8
|
|
/* f0a4fc0: 00000000 */ nop
|
|
/* f0a4fc4: 46001006 */ mov.s $f0,$f2
|
|
.PB0f0a4fc8:
|
|
/* f0a4fc8: 3c017f1b */ lui $at,0x7f1b
|
|
/* f0a4fcc: c42ae568 */ lwc1 $f10,-0x1a98($at)
|
|
/* f0a4fd0: c60e06e0 */ lwc1 $f14,0x6e0($s0)
|
|
/* f0a4fd4: c60806d8 */ lwc1 $f8,0x6d8($s0)
|
|
/* f0a4fd8: 460a0402 */ mul.s $f16,$f0,$f10
|
|
/* f0a4fdc: c60206ec */ lwc1 $f2,0x6ec($s0)
|
|
/* f0a4fe0: 4608703c */ c.lt.s $f14,$f8
|
|
/* f0a4fe4: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a4fe8: 45000006 */ bc1f .PB0f0a5004
|
|
/* f0a4fec: 46101301 */ sub.s $f12,$f2,$f16
|
|
/* f0a4ff0: 921806d6 */ lbu $t8,0x6d6($s0)
|
|
/* f0a4ff4: 3319ff0f */ andi $t9,$t8,0xff0f
|
|
/* f0a4ff8: 37280030 */ ori $t0,$t9,0x30
|
|
/* f0a4ffc: 10000026 */ b .PB0f0a5098
|
|
/* f0a5000: a20806d6 */ sb $t0,0x6d6($s0)
|
|
.PB0f0a5004:
|
|
/* f0a5004: 44813000 */ mtc1 $at,$f6
|
|
/* f0a5008: 460c1480 */ add.s $f18,$f2,$f12
|
|
/* f0a500c: c60806dc */ lwc1 $f8,0x6dc($s0)
|
|
/* f0a5010: 46060102 */ mul.s $f4,$f0,$f6
|
|
/* f0a5014: c60606e8 */ lwc1 $f6,0x6e8($s0)
|
|
/* f0a5018: e60c06ec */ swc1 $f12,0x6ec($s0)
|
|
/* f0a501c: 00001025 */ move $v0,$zero
|
|
/* f0a5020: 26040718 */ addiu $a0,$s0,0x718
|
|
/* f0a5024: 260506f4 */ addiu $a1,$s0,0x6f4
|
|
/* f0a5028: 46122282 */ mul.s $f10,$f4,$f18
|
|
/* f0a502c: 460a7400 */ add.s $f16,$f14,$f10
|
|
/* f0a5030: 46060102 */ mul.s $f4,$f0,$f6
|
|
/* f0a5034: c60a06e4 */ lwc1 $f10,0x6e4($s0)
|
|
/* f0a5038: e61006e0 */ swc1 $f16,0x6e0($s0)
|
|
/* f0a503c: c61006f0 */ lwc1 $f16,0x6f0($s0)
|
|
/* f0a5040: 46100182 */ mul.s $f6,$f0,$f16
|
|
/* f0a5044: 46044480 */ add.s $f18,$f8,$f4
|
|
/* f0a5048: e61206dc */ swc1 $f18,0x6dc($s0)
|
|
/* f0a504c: 46065200 */ add.s $f8,$f10,$f6
|
|
/* f0a5050: e60806e4 */ swc1 $f8,0x6e4($s0)
|
|
/* f0a5054: 8c690034 */ lw $t1,0x34($v1)
|
|
/* f0a5058: 59200010 */ blezl $t1,.PB0f0a509c
|
|
/* f0a505c: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f0a5060: afa40030 */ sw $a0,0x30($sp)
|
|
/* f0a5064: afa5002c */ sw $a1,0x2c($sp)
|
|
/* f0a5068: 8fa40030 */ lw $a0,0x30($sp)
|
|
.PB0f0a506c:
|
|
/* f0a506c: 8fa5002c */ lw $a1,0x2c($sp)
|
|
/* f0a5070: 0c005ad8 */ jal mtx00016110
|
|
/* f0a5074: afa20040 */ sw $v0,0x40($sp)
|
|
/* f0a5078: 3c03800a */ lui $v1,0x800a
|
|
/* f0a507c: 8fa20040 */ lw $v0,0x40($sp)
|
|
/* f0a5080: 2463e4d0 */ addiu $v1,$v1,-6960
|
|
/* f0a5084: 8c6a0034 */ lw $t2,0x34($v1)
|
|
/* f0a5088: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f0a508c: 004a082a */ slt $at,$v0,$t2
|
|
/* f0a5090: 5420fff6 */ bnezl $at,.PB0f0a506c
|
|
/* f0a5094: 8fa40030 */ lw $a0,0x30($sp)
|
|
.PB0f0a5098:
|
|
/* f0a5098: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.PB0f0a509c:
|
|
/* f0a509c: d7b40018 */ ldc1 $f20,0x18($sp)
|
|
/* f0a50a0: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f0a50a4: 03e00008 */ jr $ra
|
|
/* f0a50a8: 27bd00e0 */ addiu $sp,$sp,0xe0
|
|
);
|
|
#else
|
|
GLOBAL_ASM(
|
|
glabel bgun0f0a46a4
|
|
.late_rodata
|
|
glabel var7f1ac8cc
|
|
.word 0x3f088888
|
|
glabel var7f1ac8d0
|
|
.word 0x40c907a9
|
|
glabel var7f1ac8d4
|
|
.word 0x3d0bd8cf
|
|
glabel var7f1ac8d8
|
|
.word 0x40c907a9
|
|
glabel var7f1ac8dc
|
|
.word 0x3d0bd8cf
|
|
glabel var7f1ac8e0
|
|
.word 0x40c907a9
|
|
glabel var7f1ac8e4
|
|
.word 0x3d0bd8cf
|
|
glabel var7f1ac8e8
|
|
.word 0x3f088888
|
|
glabel var7f1ac8ec
|
|
.word 0x40c907a9
|
|
glabel var7f1ac8f0
|
|
.word 0x40c907a9
|
|
glabel var7f1ac8f4
|
|
.word 0x3c3d3463
|
|
glabel var7f1ac8f8
|
|
.word 0x40c907a9
|
|
glabel var7f1ac8fc
|
|
.word 0x3c3d3463
|
|
glabel var7f1ac900
|
|
.word 0x40c907a9
|
|
glabel var7f1ac904
|
|
.word 0x40c907a9
|
|
glabel var7f1ac908
|
|
.word 0x3bda10fd
|
|
glabel var7f1ac90c
|
|
.word 0x40c907a9
|
|
glabel var7f1ac910
|
|
.word 0x3bda10fd
|
|
glabel var7f1ac914
|
|
.word 0x3e99999a
|
|
glabel var7f1ac918
|
|
.word 0x3e8e38e4
|
|
.text
|
|
/* f0a46a4: 27bdff20 */ addiu $sp,$sp,-224
|
|
/* f0a46a8: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f0a46ac: afb00020 */ sw $s0,0x20($sp)
|
|
/* f0a46b0: f7b40018 */ sdc1 $f20,0x18($sp)
|
|
/* f0a46b4: afa500e4 */ sw $a1,0xe4($sp)
|
|
/* f0a46b8: afa600e8 */ sw $a2,0xe8($sp)
|
|
/* f0a46bc: 948206d6 */ lhu $v0,0x6d6($a0)
|
|
/* f0a46c0: 24030001 */ addiu $v1,$zero,0x1
|
|
/* f0a46c4: 00808025 */ or $s0,$a0,$zero
|
|
/* f0a46c8: 00027302 */ srl $t6,$v0,0xc
|
|
/* f0a46cc: 11c30005 */ beq $t6,$v1,.L0f0a46e4
|
|
/* f0a46d0: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0a46d4: 11c10194 */ beq $t6,$at,.L0f0a4d28
|
|
/* f0a46d8: 3c03800a */ lui $v1,%hi(g_Vars)
|
|
/* f0a46dc: 100001d5 */ b .L0f0a4e34
|
|
/* f0a46e0: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f0a46e4:
|
|
/* f0a46e4: 8e0206d4 */ lw $v0,0x6d4($s0)
|
|
/* f0a46e8: 00027d00 */ sll $t7,$v0,0x14
|
|
/* f0a46ec: 000fc742 */ srl $t8,$t7,0x1d
|
|
/* f0a46f0: 13000007 */ beqz $t8,.L0f0a4710
|
|
/* f0a46f4: 00000000 */ nop
|
|
/* f0a46f8: 1303006f */ beq $t8,$v1,.L0f0a48b8
|
|
/* f0a46fc: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0a4700: 530100e8 */ beql $t8,$at,.L0f0a4aa4
|
|
/* f0a4704: 44802000 */ mtc1 $zero,$f4
|
|
/* f0a4708: 10000147 */ b .L0f0a4c28
|
|
/* f0a470c: 3c014348 */ lui $at,0x4348
|
|
.L0f0a4710:
|
|
/* f0a4710: 0c004b70 */ jal random
|
|
/* f0a4714: 00000000 */ nop
|
|
/* f0a4718: 3c017f1b */ lui $at,%hi(var7f1ac8cc)
|
|
/* f0a471c: c420c8cc */ lwc1 $f0,%lo(var7f1ac8cc)($at)
|
|
/* f0a4720: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a4724: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a4728: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a472c: 04410005 */ bgez $v0,.L0f0a4744
|
|
/* f0a4730: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a4734: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4738: 44814000 */ mtc1 $at,$f8
|
|
/* f0a473c: 00000000 */ nop
|
|
/* f0a4740: 46083180 */ add.s $f6,$f6,$f8
|
|
.L0f0a4744:
|
|
/* f0a4744: 46143282 */ mul.s $f10,$f6,$f20
|
|
/* f0a4748: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a474c: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4750: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a4754: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4758: 46105481 */ sub.s $f18,$f10,$f16
|
|
/* f0a475c: 46009102 */ mul.s $f4,$f18,$f0
|
|
/* f0a4760: 00000000 */ nop
|
|
/* f0a4764: 46082182 */ mul.s $f6,$f4,$f8
|
|
/* f0a4768: 46003280 */ add.s $f10,$f6,$f0
|
|
/* f0a476c: 0c004b70 */ jal random
|
|
/* f0a4770: e60a06e8 */ swc1 $f10,0x6e8($s0)
|
|
/* f0a4774: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a4778: 3c014020 */ lui $at,0x4020
|
|
/* f0a477c: 44810000 */ mtc1 $at,$f0
|
|
/* f0a4780: 04410005 */ bgez $v0,.L0f0a4798
|
|
/* f0a4784: 468084a0 */ cvt.s.w $f18,$f16
|
|
/* f0a4788: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a478c: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4790: 00000000 */ nop
|
|
/* f0a4794: 46049480 */ add.s $f18,$f18,$f4
|
|
.L0f0a4798:
|
|
/* f0a4798: 46149202 */ mul.s $f8,$f18,$f20
|
|
/* f0a479c: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a47a0: 44815000 */ mtc1 $at,$f10
|
|
/* f0a47a4: 44809000 */ mtc1 $zero,$f18
|
|
/* f0a47a8: 00000000 */ nop
|
|
/* f0a47ac: e61206f0 */ swc1 $f18,0x6f0($s0)
|
|
/* f0a47b0: 46004182 */ mul.s $f6,$f8,$f0
|
|
/* f0a47b4: 00000000 */ nop
|
|
/* f0a47b8: 460a3402 */ mul.s $f16,$f6,$f10
|
|
/* f0a47bc: 46008100 */ add.s $f4,$f16,$f0
|
|
/* f0a47c0: 0c004b70 */ jal random
|
|
/* f0a47c4: e60406ec */ swc1 $f4,0x6ec($s0)
|
|
/* f0a47c8: 44824000 */ mtc1 $v0,$f8
|
|
/* f0a47cc: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a47d0: 04410004 */ bgez $v0,.L0f0a47e4
|
|
/* f0a47d4: 468041a0 */ cvt.s.w $f6,$f8
|
|
/* f0a47d8: 44815000 */ mtc1 $at,$f10
|
|
/* f0a47dc: 00000000 */ nop
|
|
/* f0a47e0: 460a3180 */ add.s $f6,$f6,$f10
|
|
.L0f0a47e4:
|
|
/* f0a47e4: 46143002 */ mul.s $f0,$f6,$f20
|
|
/* f0a47e8: 3c017f1b */ lui $at,%hi(var7f1ac8d0)
|
|
/* f0a47ec: c424c8d0 */ lwc1 $f4,%lo(var7f1ac8d0)($at)
|
|
/* f0a47f0: 3c014338 */ lui $at,0x4338
|
|
/* f0a47f4: 44814000 */ mtc1 $at,$f8
|
|
/* f0a47f8: 3c017f1b */ lui $at,%hi(var7f1ac8d4)
|
|
/* f0a47fc: c426c8d4 */ lwc1 $f6,%lo(var7f1ac8d4)($at)
|
|
/* f0a4800: 46000400 */ add.s $f16,$f0,$f0
|
|
/* f0a4804: 46048482 */ mul.s $f18,$f16,$f4
|
|
/* f0a4808: 46089283 */ div.s $f10,$f18,$f8
|
|
/* f0a480c: 46065401 */ sub.s $f16,$f10,$f6
|
|
/* f0a4810: 0c004b70 */ jal random
|
|
/* f0a4814: e7b000d0 */ swc1 $f16,0xd0($sp)
|
|
/* f0a4818: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a481c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4820: 04410004 */ bgez $v0,.L0f0a4834
|
|
/* f0a4824: 468024a0 */ cvt.s.w $f18,$f4
|
|
/* f0a4828: 44814000 */ mtc1 $at,$f8
|
|
/* f0a482c: 00000000 */ nop
|
|
/* f0a4830: 46089480 */ add.s $f18,$f18,$f8
|
|
.L0f0a4834:
|
|
/* f0a4834: 46149002 */ mul.s $f0,$f18,$f20
|
|
/* f0a4838: 3c017f1b */ lui $at,%hi(var7f1ac8d8)
|
|
/* f0a483c: c426c8d8 */ lwc1 $f6,%lo(var7f1ac8d8)($at)
|
|
/* f0a4840: 3c014338 */ lui $at,0x4338
|
|
/* f0a4844: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4848: 3c017f1b */ lui $at,%hi(var7f1ac8dc)
|
|
/* f0a484c: c432c8dc */ lwc1 $f18,%lo(var7f1ac8dc)($at)
|
|
/* f0a4850: 46000280 */ add.s $f10,$f0,$f0
|
|
/* f0a4854: 46065402 */ mul.s $f16,$f10,$f6
|
|
/* f0a4858: 46048203 */ div.s $f8,$f16,$f4
|
|
/* f0a485c: 46124281 */ sub.s $f10,$f8,$f18
|
|
/* f0a4860: 0c004b70 */ jal random
|
|
/* f0a4864: e7aa00d4 */ swc1 $f10,0xd4($sp)
|
|
/* f0a4868: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a486c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4870: 04410004 */ bgez $v0,.L0f0a4884
|
|
/* f0a4874: 46803420 */ cvt.s.w $f16,$f6
|
|
/* f0a4878: 44812000 */ mtc1 $at,$f4
|
|
/* f0a487c: 00000000 */ nop
|
|
/* f0a4880: 46048400 */ add.s $f16,$f16,$f4
|
|
.L0f0a4884:
|
|
/* f0a4884: 46148002 */ mul.s $f0,$f16,$f20
|
|
/* f0a4888: 3c017f1b */ lui $at,%hi(var7f1ac8e0)
|
|
/* f0a488c: c432c8e0 */ lwc1 $f18,%lo(var7f1ac8e0)($at)
|
|
/* f0a4890: 3c014338 */ lui $at,0x4338
|
|
/* f0a4894: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4898: 3c017f1b */ lui $at,%hi(var7f1ac8e4)
|
|
/* f0a489c: c430c8e4 */ lwc1 $f16,%lo(var7f1ac8e4)($at)
|
|
/* f0a48a0: 46000200 */ add.s $f8,$f0,$f0
|
|
/* f0a48a4: 46124282 */ mul.s $f10,$f8,$f18
|
|
/* f0a48a8: 46065103 */ div.s $f4,$f10,$f6
|
|
/* f0a48ac: 46102201 */ sub.s $f8,$f4,$f16
|
|
/* f0a48b0: 100000dc */ b .L0f0a4c24
|
|
/* f0a48b4: e7a800d8 */ swc1 $f8,0xd8($sp)
|
|
.L0f0a48b8:
|
|
/* f0a48b8: 0c004b70 */ jal random
|
|
/* f0a48bc: 00000000 */ nop
|
|
/* f0a48c0: 3c017f1b */ lui $at,%hi(var7f1ac8e8)
|
|
/* f0a48c4: c420c8e8 */ lwc1 $f0,%lo(var7f1ac8e8)($at)
|
|
/* f0a48c8: 44829000 */ mtc1 $v0,$f18
|
|
/* f0a48cc: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a48d0: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a48d4: 04410005 */ bgez $v0,.L0f0a48ec
|
|
/* f0a48d8: 468092a0 */ cvt.s.w $f10,$f18
|
|
/* f0a48dc: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a48e0: 44813000 */ mtc1 $at,$f6
|
|
/* f0a48e4: 00000000 */ nop
|
|
/* f0a48e8: 46065280 */ add.s $f10,$f10,$f6
|
|
.L0f0a48ec:
|
|
/* f0a48ec: 46145102 */ mul.s $f4,$f10,$f20
|
|
/* f0a48f0: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a48f4: 44818000 */ mtc1 $at,$f16
|
|
/* f0a48f8: 3c013d80 */ lui $at,0x3d80
|
|
/* f0a48fc: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4900: 3c014040 */ lui $at,0x4040
|
|
/* f0a4904: 46102201 */ sub.s $f8,$f4,$f16
|
|
/* f0a4908: 44812000 */ mtc1 $at,$f4
|
|
/* f0a490c: 46004482 */ mul.s $f18,$f8,$f0
|
|
/* f0a4910: 00000000 */ nop
|
|
/* f0a4914: 46069282 */ mul.s $f10,$f18,$f6
|
|
/* f0a4918: 00000000 */ nop
|
|
/* f0a491c: 46002402 */ mul.s $f16,$f4,$f0
|
|
/* f0a4920: 46105200 */ add.s $f8,$f10,$f16
|
|
/* f0a4924: 46004487 */ neg.s $f18,$f8
|
|
/* f0a4928: 0c004b70 */ jal random
|
|
/* f0a492c: e61206e8 */ swc1 $f18,0x6e8($s0)
|
|
/* f0a4930: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a4934: 3c014020 */ lui $at,0x4020
|
|
/* f0a4938: 44810000 */ mtc1 $at,$f0
|
|
/* f0a493c: 04410005 */ bgez $v0,.L0f0a4954
|
|
/* f0a4940: 46803120 */ cvt.s.w $f4,$f6
|
|
/* f0a4944: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4948: 44815000 */ mtc1 $at,$f10
|
|
/* f0a494c: 00000000 */ nop
|
|
/* f0a4950: 460a2100 */ add.s $f4,$f4,$f10
|
|
.L0f0a4954:
|
|
/* f0a4954: 46142402 */ mul.s $f16,$f4,$f20
|
|
/* f0a4958: 3c013e00 */ lui $at,0x3e00
|
|
/* f0a495c: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4960: 46008202 */ mul.s $f8,$f16,$f0
|
|
/* f0a4964: 00000000 */ nop
|
|
/* f0a4968: 46124182 */ mul.s $f6,$f8,$f18
|
|
/* f0a496c: 46003280 */ add.s $f10,$f6,$f0
|
|
/* f0a4970: 0c004b70 */ jal random
|
|
/* f0a4974: e60a06ec */ swc1 $f10,0x6ec($s0)
|
|
/* f0a4978: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a497c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4980: 04410004 */ bgez $v0,.L0f0a4994
|
|
/* f0a4984: 46802420 */ cvt.s.w $f16,$f4
|
|
/* f0a4988: 44814000 */ mtc1 $at,$f8
|
|
/* f0a498c: 00000000 */ nop
|
|
/* f0a4990: 46088400 */ add.s $f16,$f16,$f8
|
|
.L0f0a4994:
|
|
/* f0a4994: 46148482 */ mul.s $f18,$f16,$f20
|
|
/* f0a4998: 3c013f80 */ lui $at,0x3f80
|
|
/* f0a499c: 44813000 */ mtc1 $at,$f6
|
|
/* f0a49a0: 00000000 */ nop
|
|
/* f0a49a4: 46069280 */ add.s $f10,$f18,$f6
|
|
/* f0a49a8: 46005107 */ neg.s $f4,$f10
|
|
/* f0a49ac: 0c004b70 */ jal random
|
|
/* f0a49b0: e60406f0 */ swc1 $f4,0x6f0($s0)
|
|
/* f0a49b4: 44824000 */ mtc1 $v0,$f8
|
|
/* f0a49b8: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a49bc: 04410004 */ bgez $v0,.L0f0a49d0
|
|
/* f0a49c0: 46804420 */ cvt.s.w $f16,$f8
|
|
/* f0a49c4: 44819000 */ mtc1 $at,$f18
|
|
/* f0a49c8: 00000000 */ nop
|
|
/* f0a49cc: 46128400 */ add.s $f16,$f16,$f18
|
|
.L0f0a49d0:
|
|
/* f0a49d0: 46148182 */ mul.s $f6,$f16,$f20
|
|
/* f0a49d4: 3c014040 */ lui $at,0x4040
|
|
/* f0a49d8: 44815000 */ mtc1 $at,$f10
|
|
/* f0a49dc: 3c017f1b */ lui $at,%hi(var7f1ac8ec)
|
|
/* f0a49e0: c428c8ec */ lwc1 $f8,%lo(var7f1ac8ec)($at)
|
|
/* f0a49e4: 3c014350 */ lui $at,0x4350
|
|
/* f0a49e8: 44818000 */ mtc1 $at,$f16
|
|
/* f0a49ec: 460a3100 */ add.s $f4,$f6,$f10
|
|
/* f0a49f0: 46082482 */ mul.s $f18,$f4,$f8
|
|
/* f0a49f4: 46109183 */ div.s $f6,$f18,$f16
|
|
/* f0a49f8: 0c004b70 */ jal random
|
|
/* f0a49fc: e7a600d0 */ swc1 $f6,0xd0($sp)
|
|
/* f0a4a00: 44825000 */ mtc1 $v0,$f10
|
|
/* f0a4a04: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4a08: 04410004 */ bgez $v0,.L0f0a4a1c
|
|
/* f0a4a0c: 46805120 */ cvt.s.w $f4,$f10
|
|
/* f0a4a10: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4a14: 00000000 */ nop
|
|
/* f0a4a18: 46082100 */ add.s $f4,$f4,$f8
|
|
.L0f0a4a1c:
|
|
/* f0a4a1c: 46142002 */ mul.s $f0,$f4,$f20
|
|
/* f0a4a20: 3c017f1b */ lui $at,%hi(var7f1ac8f0)
|
|
/* f0a4a24: c430c8f0 */ lwc1 $f16,%lo(var7f1ac8f0)($at)
|
|
/* f0a4a28: 3c014408 */ lui $at,0x4408
|
|
/* f0a4a2c: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4a30: 3c017f1b */ lui $at,%hi(var7f1ac8f4)
|
|
/* f0a4a34: c424c8f4 */ lwc1 $f4,%lo(var7f1ac8f4)($at)
|
|
/* f0a4a38: 46000480 */ add.s $f18,$f0,$f0
|
|
/* f0a4a3c: 46109182 */ mul.s $f6,$f18,$f16
|
|
/* f0a4a40: 460a3203 */ div.s $f8,$f6,$f10
|
|
/* f0a4a44: 46044481 */ sub.s $f18,$f8,$f4
|
|
/* f0a4a48: 0c004b70 */ jal random
|
|
/* f0a4a4c: e7b200d4 */ swc1 $f18,0xd4($sp)
|
|
/* f0a4a50: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a4a54: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4a58: 04410004 */ bgez $v0,.L0f0a4a6c
|
|
/* f0a4a5c: 468081a0 */ cvt.s.w $f6,$f16
|
|
/* f0a4a60: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4a64: 00000000 */ nop
|
|
/* f0a4a68: 460a3180 */ add.s $f6,$f6,$f10
|
|
.L0f0a4a6c:
|
|
/* f0a4a6c: 46143002 */ mul.s $f0,$f6,$f20
|
|
/* f0a4a70: 3c017f1b */ lui $at,%hi(var7f1ac8f8)
|
|
/* f0a4a74: c424c8f8 */ lwc1 $f4,%lo(var7f1ac8f8)($at)
|
|
/* f0a4a78: 3c014408 */ lui $at,0x4408
|
|
/* f0a4a7c: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4a80: 3c017f1b */ lui $at,%hi(var7f1ac8fc)
|
|
/* f0a4a84: c426c8fc */ lwc1 $f6,%lo(var7f1ac8fc)($at)
|
|
/* f0a4a88: 46000200 */ add.s $f8,$f0,$f0
|
|
/* f0a4a8c: 46044482 */ mul.s $f18,$f8,$f4
|
|
/* f0a4a90: 46109283 */ div.s $f10,$f18,$f16
|
|
/* f0a4a94: 46065201 */ sub.s $f8,$f10,$f6
|
|
/* f0a4a98: 10000062 */ b .L0f0a4c24
|
|
/* f0a4a9c: e7a800d8 */ swc1 $f8,0xd8($sp)
|
|
/* f0a4aa0: 44802000 */ mtc1 $zero,$f4
|
|
.L0f0a4aa4:
|
|
/* f0a4aa4: 0c004b70 */ jal random
|
|
/* f0a4aa8: e60406e8 */ swc1 $f4,0x6e8($s0)
|
|
/* f0a4aac: 3c014020 */ lui $at,0x4020
|
|
/* f0a4ab0: 44810000 */ mtc1 $at,$f0
|
|
/* f0a4ab4: 44829000 */ mtc1 $v0,$f18
|
|
/* f0a4ab8: 3c012f80 */ lui $at,0x2f80
|
|
/* f0a4abc: 4481a000 */ mtc1 $at,$f20
|
|
/* f0a4ac0: 04410005 */ bgez $v0,.L0f0a4ad8
|
|
/* f0a4ac4: 46809420 */ cvt.s.w $f16,$f18
|
|
/* f0a4ac8: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4acc: 44815000 */ mtc1 $at,$f10
|
|
/* f0a4ad0: 00000000 */ nop
|
|
/* f0a4ad4: 460a8400 */ add.s $f16,$f16,$f10
|
|
.L0f0a4ad8:
|
|
/* f0a4ad8: 46148182 */ mul.s $f6,$f16,$f20
|
|
/* f0a4adc: 3c013e00 */ lui $at,0x3e00
|
|
/* f0a4ae0: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4ae4: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a4ae8: 00000000 */ nop
|
|
/* f0a4aec: 46044482 */ mul.s $f18,$f8,$f4
|
|
/* f0a4af0: 46009280 */ add.s $f10,$f18,$f0
|
|
/* f0a4af4: 0c004b70 */ jal random
|
|
/* f0a4af8: e60a06ec */ swc1 $f10,0x6ec($s0)
|
|
/* f0a4afc: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a4b00: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4b04: 04410004 */ bgez $v0,.L0f0a4b18
|
|
/* f0a4b08: 468081a0 */ cvt.s.w $f6,$f16
|
|
/* f0a4b0c: 44814000 */ mtc1 $at,$f8
|
|
/* f0a4b10: 00000000 */ nop
|
|
/* f0a4b14: 46083180 */ add.s $f6,$f6,$f8
|
|
.L0f0a4b18:
|
|
/* f0a4b18: 46143102 */ mul.s $f4,$f6,$f20
|
|
/* f0a4b1c: 3c013f80 */ lui $at,0x3f80
|
|
/* f0a4b20: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4b24: 3c013e80 */ lui $at,0x3e80
|
|
/* f0a4b28: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4b2c: 46122280 */ add.s $f10,$f4,$f18
|
|
/* f0a4b30: 46105202 */ mul.s $f8,$f10,$f16
|
|
/* f0a4b34: 0c004b70 */ jal random
|
|
/* f0a4b38: e60806f0 */ swc1 $f8,0x6f0($s0)
|
|
/* f0a4b3c: 44823000 */ mtc1 $v0,$f6
|
|
/* f0a4b40: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4b44: 04410004 */ bgez $v0,.L0f0a4b58
|
|
/* f0a4b48: 46803120 */ cvt.s.w $f4,$f6
|
|
/* f0a4b4c: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4b50: 00000000 */ nop
|
|
/* f0a4b54: 46122100 */ add.s $f4,$f4,$f18
|
|
.L0f0a4b58:
|
|
/* f0a4b58: 46142282 */ mul.s $f10,$f4,$f20
|
|
/* f0a4b5c: 3c014040 */ lui $at,0x4040
|
|
/* f0a4b60: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4b64: 3c017f1b */ lui $at,%hi(var7f1ac900)
|
|
/* f0a4b68: c426c900 */ lwc1 $f6,%lo(var7f1ac900)($at)
|
|
/* f0a4b6c: 3c0143b8 */ lui $at,0x43b8
|
|
/* f0a4b70: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4b74: 46105200 */ add.s $f8,$f10,$f16
|
|
/* f0a4b78: 46064482 */ mul.s $f18,$f8,$f6
|
|
/* f0a4b7c: 46049283 */ div.s $f10,$f18,$f4
|
|
/* f0a4b80: 0c004b70 */ jal random
|
|
/* f0a4b84: e7aa00d0 */ swc1 $f10,0xd0($sp)
|
|
/* f0a4b88: 44828000 */ mtc1 $v0,$f16
|
|
/* f0a4b8c: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4b90: 04410004 */ bgez $v0,.L0f0a4ba4
|
|
/* f0a4b94: 46808220 */ cvt.s.w $f8,$f16
|
|
/* f0a4b98: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4b9c: 00000000 */ nop
|
|
/* f0a4ba0: 46064200 */ add.s $f8,$f8,$f6
|
|
.L0f0a4ba4:
|
|
/* f0a4ba4: 46144002 */ mul.s $f0,$f8,$f20
|
|
/* f0a4ba8: 3c017f1b */ lui $at,%hi(var7f1ac904)
|
|
/* f0a4bac: c424c904 */ lwc1 $f4,%lo(var7f1ac904)($at)
|
|
/* f0a4bb0: 3c01446c */ lui $at,0x446c
|
|
/* f0a4bb4: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4bb8: 3c017f1b */ lui $at,%hi(var7f1ac908)
|
|
/* f0a4bbc: c428c908 */ lwc1 $f8,%lo(var7f1ac908)($at)
|
|
/* f0a4bc0: 46000480 */ add.s $f18,$f0,$f0
|
|
/* f0a4bc4: 46049282 */ mul.s $f10,$f18,$f4
|
|
/* f0a4bc8: 46105183 */ div.s $f6,$f10,$f16
|
|
/* f0a4bcc: 46083481 */ sub.s $f18,$f6,$f8
|
|
/* f0a4bd0: 0c004b70 */ jal random
|
|
/* f0a4bd4: e7b200d4 */ swc1 $f18,0xd4($sp)
|
|
/* f0a4bd8: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a4bdc: 3c014f80 */ lui $at,0x4f80
|
|
/* f0a4be0: 04410004 */ bgez $v0,.L0f0a4bf4
|
|
/* f0a4be4: 468022a0 */ cvt.s.w $f10,$f4
|
|
/* f0a4be8: 44818000 */ mtc1 $at,$f16
|
|
/* f0a4bec: 00000000 */ nop
|
|
/* f0a4bf0: 46105280 */ add.s $f10,$f10,$f16
|
|
.L0f0a4bf4:
|
|
/* f0a4bf4: 46145002 */ mul.s $f0,$f10,$f20
|
|
/* f0a4bf8: 3c017f1b */ lui $at,%hi(var7f1ac90c)
|
|
/* f0a4bfc: c428c90c */ lwc1 $f8,%lo(var7f1ac90c)($at)
|
|
/* f0a4c00: 3c01446c */ lui $at,0x446c
|
|
/* f0a4c04: 44812000 */ mtc1 $at,$f4
|
|
/* f0a4c08: 3c017f1b */ lui $at,%hi(var7f1ac910)
|
|
/* f0a4c0c: c42ac910 */ lwc1 $f10,%lo(var7f1ac910)($at)
|
|
/* f0a4c10: 46000180 */ add.s $f6,$f0,$f0
|
|
/* f0a4c14: 46083482 */ mul.s $f18,$f6,$f8
|
|
/* f0a4c18: 46049403 */ div.s $f16,$f18,$f4
|
|
/* f0a4c1c: 460a8181 */ sub.s $f6,$f16,$f10
|
|
/* f0a4c20: e7a600d8 */ swc1 $f6,0xd8($sp)
|
|
.L0f0a4c24:
|
|
/* f0a4c24: 3c014348 */ lui $at,0x4348
|
|
.L0f0a4c28:
|
|
/* f0a4c28: 44819000 */ mtc1 $at,$f18
|
|
/* f0a4c2c: c60806dc */ lwc1 $f8,0x6dc($s0)
|
|
/* f0a4c30: 27a400d0 */ addiu $a0,$sp,0xd0
|
|
/* f0a4c34: 27a50090 */ addiu $a1,$sp,0x90
|
|
/* f0a4c38: 46124101 */ sub.s $f4,$f8,$f18
|
|
/* f0a4c3c: 0c005923 */ jal mtx4LoadRotation
|
|
/* f0a4c40: e60406d8 */ swc1 $f4,0x6d8($s0)
|
|
/* f0a4c44: 27a40090 */ addiu $a0,$sp,0x90
|
|
/* f0a4c48: 0c005768 */ jal mtx4ToMtx3
|
|
/* f0a4c4c: 26050718 */ addiu $a1,$s0,0x718
|
|
/* f0a4c50: 3c03800a */ lui $v1,%hi(g_Vars)
|
|
/* f0a4c54: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
|
|
/* f0a4c58: 8c790034 */ lw $t9,0x34($v1)
|
|
/* f0a4c5c: 5b20002e */ blezl $t9,.L0f0a4d18
|
|
/* f0a4c60: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f0a4c64: 8e0806d4 */ lw $t0,0x6d4($s0)
|
|
/* f0a4c68: 00084d00 */ sll $t1,$t0,0x14
|
|
/* f0a4c6c: 00095742 */ srl $t2,$t1,0x1d
|
|
/* f0a4c70: 51400029 */ beqzl $t2,.L0f0a4d18
|
|
/* f0a4c74: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
/* f0a4c78: c6100324 */ lwc1 $f16,0x324($s0)
|
|
/* f0a4c7c: c60a0364 */ lwc1 $f10,0x364($s0)
|
|
/* f0a4c80: c460004c */ lwc1 $f0,0x4c($v1)
|
|
/* f0a4c84: 260402f4 */ addiu $a0,$s0,0x2f4
|
|
/* f0a4c88: 460a8181 */ sub.s $f6,$f16,$f10
|
|
/* f0a4c8c: 27a50044 */ addiu $a1,$sp,0x44
|
|
/* f0a4c90: 46003203 */ div.s $f8,$f6,$f0
|
|
/* f0a4c94: e7a80084 */ swc1 $f8,0x84($sp)
|
|
/* f0a4c98: c6040368 */ lwc1 $f4,0x368($s0)
|
|
/* f0a4c9c: c6120328 */ lwc1 $f18,0x328($s0)
|
|
/* f0a4ca0: 46049401 */ sub.s $f16,$f18,$f4
|
|
/* f0a4ca4: 46008283 */ div.s $f10,$f16,$f0
|
|
/* f0a4ca8: e7aa0088 */ swc1 $f10,0x88($sp)
|
|
/* f0a4cac: c608036c */ lwc1 $f8,0x36c($s0)
|
|
/* f0a4cb0: c606032c */ lwc1 $f6,0x32c($s0)
|
|
/* f0a4cb4: 46083481 */ sub.s $f18,$f6,$f8
|
|
/* f0a4cb8: 46009103 */ div.s $f4,$f18,$f0
|
|
/* f0a4cbc: 0c005d62 */ jal mtx00017588
|
|
/* f0a4cc0: e7a4008c */ swc1 $f4,0x8c($sp)
|
|
/* f0a4cc4: 27a40044 */ addiu $a0,$sp,0x44
|
|
/* f0a4cc8: 0c0056c4 */ jal mtx4RotateVecInPlace
|
|
/* f0a4ccc: 27a50084 */ addiu $a1,$sp,0x84
|
|
/* f0a4cd0: 3c017f1b */ lui $at,%hi(var7f1ac914)
|
|
/* f0a4cd4: c420c914 */ lwc1 $f0,%lo(var7f1ac914)($at)
|
|
/* f0a4cd8: c7aa0084 */ lwc1 $f10,0x84($sp)
|
|
/* f0a4cdc: c61006e8 */ lwc1 $f16,0x6e8($s0)
|
|
/* f0a4ce0: c61206ec */ lwc1 $f18,0x6ec($s0)
|
|
/* f0a4ce4: 46005182 */ mul.s $f6,$f10,$f0
|
|
/* f0a4ce8: 46068200 */ add.s $f8,$f16,$f6
|
|
/* f0a4cec: c60606f0 */ lwc1 $f6,0x6f0($s0)
|
|
/* f0a4cf0: e60806e8 */ swc1 $f8,0x6e8($s0)
|
|
/* f0a4cf4: c7a40088 */ lwc1 $f4,0x88($sp)
|
|
/* f0a4cf8: 46002282 */ mul.s $f10,$f4,$f0
|
|
/* f0a4cfc: 460a9400 */ add.s $f16,$f18,$f10
|
|
/* f0a4d00: e61006ec */ swc1 $f16,0x6ec($s0)
|
|
/* f0a4d04: c7a8008c */ lwc1 $f8,0x8c($sp)
|
|
/* f0a4d08: 46004102 */ mul.s $f4,$f8,$f0
|
|
/* f0a4d0c: 46043480 */ add.s $f18,$f6,$f4
|
|
/* f0a4d10: e61206f0 */ swc1 $f18,0x6f0($s0)
|
|
/* f0a4d14: 920b06d6 */ lbu $t3,0x6d6($s0)
|
|
.L0f0a4d18:
|
|
/* f0a4d18: 316cff0f */ andi $t4,$t3,0xff0f
|
|
/* f0a4d1c: 358d0020 */ ori $t5,$t4,0x20
|
|
/* f0a4d20: 10000043 */ b .L0f0a4e30
|
|
/* f0a4d24: a20d06d6 */ sb $t5,0x6d6($s0)
|
|
.L0f0a4d28:
|
|
/* f0a4d28: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
|
|
/* f0a4d2c: 8c6e0284 */ lw $t6,0x284($v1)
|
|
/* f0a4d30: c460004c */ lwc1 $f0,0x4c($v1)
|
|
/* f0a4d34: 3c013fc0 */ lui $at,0x3fc0
|
|
/* f0a4d38: 8dcf00d8 */ lw $t7,0xd8($t6)
|
|
/* f0a4d3c: 11e00008 */ beqz $t7,.L0f0a4d60
|
|
/* f0a4d40: 00000000 */ nop
|
|
/* f0a4d44: 44811000 */ mtc1 $at,$f2
|
|
/* f0a4d48: 00000000 */ nop
|
|
/* f0a4d4c: 4600103c */ c.lt.s $f2,$f0
|
|
/* f0a4d50: 00000000 */ nop
|
|
/* f0a4d54: 45000002 */ bc1f .L0f0a4d60
|
|
/* f0a4d58: 00000000 */ nop
|
|
/* f0a4d5c: 46001006 */ mov.s $f0,$f2
|
|
.L0f0a4d60:
|
|
/* f0a4d60: 3c017f1b */ lui $at,%hi(var7f1ac918)
|
|
/* f0a4d64: c42ac918 */ lwc1 $f10,%lo(var7f1ac918)($at)
|
|
/* f0a4d68: c60e06e0 */ lwc1 $f14,0x6e0($s0)
|
|
/* f0a4d6c: c60806d8 */ lwc1 $f8,0x6d8($s0)
|
|
/* f0a4d70: 460a0402 */ mul.s $f16,$f0,$f10
|
|
/* f0a4d74: c60206ec */ lwc1 $f2,0x6ec($s0)
|
|
/* f0a4d78: 4608703c */ c.lt.s $f14,$f8
|
|
/* f0a4d7c: 3c013f00 */ lui $at,0x3f00
|
|
/* f0a4d80: 45000006 */ bc1f .L0f0a4d9c
|
|
/* f0a4d84: 46101301 */ sub.s $f12,$f2,$f16
|
|
/* f0a4d88: 921806d6 */ lbu $t8,0x6d6($s0)
|
|
/* f0a4d8c: 3319ff0f */ andi $t9,$t8,0xff0f
|
|
/* f0a4d90: 37280030 */ ori $t0,$t9,0x30
|
|
/* f0a4d94: 10000026 */ b .L0f0a4e30
|
|
/* f0a4d98: a20806d6 */ sb $t0,0x6d6($s0)
|
|
.L0f0a4d9c:
|
|
/* f0a4d9c: 44813000 */ mtc1 $at,$f6
|
|
/* f0a4da0: 460c1480 */ add.s $f18,$f2,$f12
|
|
/* f0a4da4: c60806dc */ lwc1 $f8,0x6dc($s0)
|
|
/* f0a4da8: 46060102 */ mul.s $f4,$f0,$f6
|
|
/* f0a4dac: c60606e8 */ lwc1 $f6,0x6e8($s0)
|
|
/* f0a4db0: e60c06ec */ swc1 $f12,0x6ec($s0)
|
|
/* f0a4db4: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a4db8: 26040718 */ addiu $a0,$s0,0x718
|
|
/* f0a4dbc: 260506f4 */ addiu $a1,$s0,0x6f4
|
|
/* f0a4dc0: 46122282 */ mul.s $f10,$f4,$f18
|
|
/* f0a4dc4: 460a7400 */ add.s $f16,$f14,$f10
|
|
/* f0a4dc8: 46060102 */ mul.s $f4,$f0,$f6
|
|
/* f0a4dcc: c60a06e4 */ lwc1 $f10,0x6e4($s0)
|
|
/* f0a4dd0: e61006e0 */ swc1 $f16,0x6e0($s0)
|
|
/* f0a4dd4: c61006f0 */ lwc1 $f16,0x6f0($s0)
|
|
/* f0a4dd8: 46100182 */ mul.s $f6,$f0,$f16
|
|
/* f0a4ddc: 46044480 */ add.s $f18,$f8,$f4
|
|
/* f0a4de0: e61206dc */ swc1 $f18,0x6dc($s0)
|
|
/* f0a4de4: 46065200 */ add.s $f8,$f10,$f6
|
|
/* f0a4de8: e60806e4 */ swc1 $f8,0x6e4($s0)
|
|
/* f0a4dec: 8c690034 */ lw $t1,0x34($v1)
|
|
/* f0a4df0: 59200010 */ blezl $t1,.L0f0a4e34
|
|
/* f0a4df4: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f0a4df8: afa40030 */ sw $a0,0x30($sp)
|
|
/* f0a4dfc: afa5002c */ sw $a1,0x2c($sp)
|
|
/* f0a4e00: 8fa40030 */ lw $a0,0x30($sp)
|
|
.L0f0a4e04:
|
|
/* f0a4e04: 8fa5002c */ lw $a1,0x2c($sp)
|
|
/* f0a4e08: 0c005844 */ jal mtx00016110
|
|
/* f0a4e0c: afa20040 */ sw $v0,0x40($sp)
|
|
/* f0a4e10: 3c03800a */ lui $v1,%hi(g_Vars)
|
|
/* f0a4e14: 8fa20040 */ lw $v0,0x40($sp)
|
|
/* f0a4e18: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
|
|
/* f0a4e1c: 8c6a0034 */ lw $t2,0x34($v1)
|
|
/* f0a4e20: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f0a4e24: 004a082a */ slt $at,$v0,$t2
|
|
/* f0a4e28: 5420fff6 */ bnezl $at,.L0f0a4e04
|
|
/* f0a4e2c: 8fa40030 */ lw $a0,0x30($sp)
|
|
.L0f0a4e30:
|
|
/* f0a4e30: 8fbf0024 */ lw $ra,0x24($sp)
|
|
.L0f0a4e34:
|
|
/* f0a4e34: d7b40018 */ ldc1 $f20,0x18($sp)
|
|
/* f0a4e38: 8fb00020 */ lw $s0,0x20($sp)
|
|
/* f0a4e3c: 03e00008 */ jr $ra
|
|
/* f0a4e40: 27bd00e0 */ addiu $sp,$sp,0xe0
|
|
);
|
|
#endif
|
|
|
|
/**
|
|
* With this function stubbed, the tranquilizer's spent ammo does not detach
|
|
* when reloading, and the pulled pin on grenades and nbombs appears to move
|
|
* with the model rather than detaching properly.
|
|
*/
|
|
//void bgun0f0a46a4(struct hand *hand, struct modelfiledata *modeldef, bool isdetonator)
|
|
//{
|
|
// struct coord spd0;
|
|
// Mtxf sp90;
|
|
// struct coord sp84;
|
|
// Mtxf sp44;
|
|
// s32 i;
|
|
// f32 lvupdate;
|
|
// f32 newval;
|
|
// f32 sumval;
|
|
//
|
|
// switch (hand->unk0d0e_00) {
|
|
// case 1:
|
|
// // 6e4
|
|
// switch (hand->unk0d0e_04) {
|
|
// case 0:
|
|
// // 710
|
|
// hand->unk0d20.f[0] = (RANDOMFRAC() - 0.5f) * 0.5333333f * 0.0625f + 0.5333333f;
|
|
// hand->unk0d20.f[1] = 0.0f;
|
|
// hand->unk0d20.f[2] = RANDOMFRAC() * 2.5f * 0.0625f + 2.5f;
|
|
// spd0.f[0] = 2.0f * RANDOMFRAC() * M_BADTAU / 184.0f - 0.03414231f;
|
|
// spd0.f[1] = 2.0f * RANDOMFRAC() * M_BADTAU / 184.0f - 0.03414231f;
|
|
// spd0.f[2] = 2.0f * RANDOMFRAC() * M_BADTAU / 184.0f - 0.03414231f;
|
|
// break;
|
|
// case 1:
|
|
// // 8b8
|
|
// hand->unk0d20.f[0] = -((RANDOMFRAC() - 0.5f) * 0.5333333f * 0.0625f + 3.0f * 0.5333333f);
|
|
// hand->unk0d20.f[1] = RANDOMFRAC() * 2.5f * 0.125f + 2.5f;
|
|
// hand->unk0d20.f[2] = -(RANDOMFRAC() + 1.0f);
|
|
// spd0.f[0] = (RANDOMFRAC() + 3.0f) * M_BADTAU / 208.0f;
|
|
// spd0.f[1] = 2.0f * RANDOMFRAC() * M_BADTAU / 544.0f - 0.0115481345f;
|
|
// spd0.f[2] = 2.0f * RANDOMFRAC() * M_BADTAU / 544.0f - 0.0115481345f;
|
|
// break;
|
|
// case 2:
|
|
// // aa4
|
|
// hand->unk0d20.f[0] = 0.0f;
|
|
// hand->unk0d20.f[1] = RANDOMFRAC() * 2.5f * 0.125f + 2.5f;
|
|
// hand->unk0d20.f[2] = (RANDOMFRAC() + 1.0f) * 0.25f;
|
|
// spd0.f[0] = (RANDOMFRAC() + 3.0f) * M_BADTAU / 368.0f;
|
|
// spd0.f[1] = 2.0f * RANDOMFRAC() * M_BADTAU / 944.0f - 0.006654857f;
|
|
// spd0.f[2] = 2.0f * RANDOMFRAC() * M_BADTAU / 944.0f - 0.006654857f;
|
|
// break;
|
|
// }
|
|
//
|
|
// // c28
|
|
// hand->unk0d10 = hand->unk0d14 - 200.0f;
|
|
//
|
|
// mtx4LoadRotation(&spd0, &sp90);
|
|
// mtx4ToMtx3(&sp90, hand->unk0d50);
|
|
//
|
|
// if (g_Vars.lvupdate240 > 0 && hand->unk0d0e_04) {
|
|
// sp84.x = (hand->posmtx.m[3][0] - hand->prevmtx.m[3][0]) / g_Vars.lvupdate240f;
|
|
// sp84.y = (hand->posmtx.m[3][1] - hand->prevmtx.m[3][1]) / g_Vars.lvupdate240f;
|
|
// sp84.z = (hand->posmtx.m[3][2] - hand->prevmtx.m[3][2]) / g_Vars.lvupdate240f;
|
|
//
|
|
// mtx00017588(hand->posmtx.m, sp44.m);
|
|
// mtx4RotateVecInPlace(&sp44, &sp84);
|
|
//
|
|
// hand->unk0d20.f[0] += sp84.x * 0.3f;
|
|
// hand->unk0d20.f[1] += sp84.y * 0.3f;
|
|
// hand->unk0d20.f[2] += sp84.z * 0.3f;
|
|
// }
|
|
//
|
|
// hand->unk0d0e_00 = 2;
|
|
// break;
|
|
// case 2:
|
|
// // d28
|
|
// lvupdate = g_Vars.lvupdate240f;
|
|
//
|
|
// if (g_Vars.currentplayer->isdead && lvupdate > 1.5f) {
|
|
// lvupdate = 1.5f;
|
|
// }
|
|
//
|
|
// newval = hand->unk0d20.f[1] - lvupdate * 0.2777778f;
|
|
//
|
|
// if (hand->unk0d18 < hand->unk0d10) {
|
|
// hand->unk0d0e_00 = 3;
|
|
// break;
|
|
// }
|
|
//
|
|
// sumval = hand->unk0d20.f[1] + newval;
|
|
//
|
|
// hand->unk0d20.f[1] = newval;
|
|
//
|
|
// hand->unk0d14 += lvupdate * hand->unk0d20.f[0];
|
|
// hand->unk0d18 += lvupdate * 0.5f * sumval;
|
|
// hand->unk0d1c += lvupdate * hand->unk0d20.f[2];
|
|
//
|
|
// for (i = 0; i < g_Vars.lvupdate240; i++) {
|
|
// mtx00016110(hand->unk0d50, hand->unk0d2c);
|
|
// }
|
|
//
|
|
// break;
|
|
// }
|
|
//}
|
|
|
|
void bgun0f0a4e44(struct hand *hand, struct weapon *weapondef, struct modelfiledata *modeldef,
|
|
struct weaponfunc *funcdef, s32 maxburst, u8 *allocation, s32 weaponnum,
|
|
bool **arg7, s32 mtxindex, Mtxf *arg9, Mtxf *arg10)
|
|
{
|
|
Mtxf spd8;
|
|
s32 index;
|
|
s32 shotstotake;
|
|
bool spc4[3] = {false, false, false};
|
|
Mtxf *mtx;
|
|
s32 i;
|
|
s32 partnum;
|
|
f32 spb4;
|
|
f32 sway;
|
|
Mtxf sp70;
|
|
|
|
index = hand->burstbullets % maxburst;
|
|
shotstotake = hand->shotstotake;
|
|
|
|
spb4 = RANDOMFRAC() * 0.25f + 1.0f;
|
|
sway = weapondef->sway;
|
|
|
|
mtx4LoadIdentity(&spd8);
|
|
|
|
if (funcdef && (funcdef->flags & FUNCFLAG_00000001)) {
|
|
mtx4LoadZRotation(RANDOMFRAC() * M_BADTAU, &spd8);
|
|
}
|
|
|
|
mtx4LoadZRotation((RANDOMFRAC() * 0.3 - 0.15), &spd8);
|
|
|
|
mtx = (Mtxf *)allocation;
|
|
mtx += mtxindex;
|
|
|
|
mtx4MultMtx4InPlace(mtx, &spd8);
|
|
mtx00015f04(spb4, &spd8);
|
|
mtx00015ea8(sway, &spd8);
|
|
mtx4Copy(&spd8, mtx);
|
|
|
|
if (shotstotake == 0 && weaponnum != WEAPON_REAPER) {
|
|
shotstotake++;
|
|
}
|
|
|
|
for (i = 0; i < shotstotake; i++) {
|
|
spc4[index] = true;
|
|
index++;
|
|
|
|
if (index >= maxburst) {
|
|
index = 0;
|
|
}
|
|
}
|
|
|
|
for (i = 0; i < maxburst; i++) {
|
|
if (spc4[i] && arg7[i] != NULL) {
|
|
*arg7[i] = true;
|
|
}
|
|
}
|
|
|
|
for (partnum = 0x50; partnum <= 0x52; partnum++) {
|
|
struct modelnode *node = modelGetPart(modeldef, partnum);
|
|
struct coord sp60;
|
|
|
|
if (node && weaponnum != WEAPON_REAPER && weaponnum != WEAPON_SHOTGUN) {
|
|
struct modelrodata_position *rodata = &node->rodata->position;
|
|
s32 mtxindex = model0001a524(node, 0);
|
|
|
|
sp60.x = rodata->pos.x * spd8.m[0][0] + rodata->pos.y * spd8.m[1][0] + rodata->pos.z * spd8.m[2][0] + spd8.m[3][0];
|
|
sp60.y = rodata->pos.x * spd8.m[0][1] + rodata->pos.y * spd8.m[1][1] + rodata->pos.z * spd8.m[2][1] + spd8.m[3][1];
|
|
sp60.z = rodata->pos.x * spd8.m[0][2] + rodata->pos.y * spd8.m[1][2] + rodata->pos.z * spd8.m[2][2] + spd8.m[3][2];
|
|
|
|
mtx4LoadIdentity(&sp70);
|
|
mtx4Align(sp70.m, RANDOMFRAC() * M_BADTAU, -sp60.x, -sp60.y, -sp60.z);
|
|
mtx00015f04(0.10000001f * spb4, &sp70);
|
|
|
|
mtx = (Mtxf *)allocation;
|
|
|
|
mtx00016e98(arg10->m, 0, mtx->m[3][0] - hand->aimpos.x, mtx->m[3][1] - hand->aimpos.y, mtx->m[3][2] - hand->aimpos.z);
|
|
mtx4MultMtx4InPlace(arg10, &sp70);
|
|
mtx00016710(sway, sp70.m);
|
|
mtx4MultMtx4InPlace(arg9, &sp70);
|
|
mtx4SetTranslation(&sp60, &sp70);
|
|
|
|
mtx = (Mtxf *)allocation;
|
|
mtx += mtxindex;
|
|
|
|
mtx4Copy(&sp70, mtx);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Create casing and beam for a fired weapon,
|
|
* and uncloak if the weapon is a throwable or fired projectile.
|
|
*/
|
|
void bgunCreateFx(struct hand *hand, s32 handnum, struct weaponfunc *funcdef, s32 weaponnum, struct modelfiledata *modeldef, u8 *allocation)
|
|
{
|
|
f32 ground;
|
|
bool createbeam = true;
|
|
|
|
g_Vars.currentplayer->gunctrl.unk1583_04 = false;
|
|
|
|
if (funcdef) {
|
|
ground = g_Vars.currentplayer->vv_ground;
|
|
|
|
if (modeldef && weaponnum != WEAPON_DY357MAGNUM && weaponnum != WEAPON_DY357LX) {
|
|
s32 partnum = MODELPART_PISTOL_003C;
|
|
struct modelnode *node;
|
|
|
|
if (weaponnum == WEAPON_REAPER) {
|
|
partnum = (hand->burstbullets & 1) == 1 ? MODELPART_REAPER_0030 : MODELPART_REAPER_0031;
|
|
}
|
|
|
|
node = modelGetPart(modeldef, partnum);
|
|
|
|
if (node) {
|
|
Mtxf *mtx = (Mtxf *)allocation;
|
|
Mtxf sp24;
|
|
|
|
mtx += model0001a524(node, 0);
|
|
|
|
mtx4Copy(mtx, &sp24);
|
|
mtx00015f04(9.999999f, &sp24);
|
|
mtx4MultMtx4InPlace(camGetProjectionMtxF(), &sp24);
|
|
|
|
casingCreateForHand(handnum, ground, &sp24);
|
|
} else {
|
|
casingCreateForHand(handnum, ground, &hand->posmtx);
|
|
}
|
|
|
|
bgunSetPartVisible(MODELPART_CMP150_0046, false, hand, modeldef);
|
|
bgunSetPartVisible(MODELPART_CMP150_0047, true, hand, modeldef);
|
|
}
|
|
|
|
if (funcdef->type == INVENTORYFUNCTYPE_SHOOT_PROJECTILE) {
|
|
chrUncloakTemporarily(g_Vars.currentplayer->prop->chr);
|
|
} else if ((funcdef->type & 0xff) == INVENTORYFUNCTYPE_THROW) {
|
|
chrUncloakTemporarily(g_Vars.currentplayer->prop->chr);
|
|
}
|
|
}
|
|
|
|
if (funcdef) {
|
|
if ((funcdef->type & 0xff) == INVENTORYFUNCTYPE_CLOSE || (funcdef->type & INVENTORYFUNCTYPE_0200)) {
|
|
createbeam = false;
|
|
}
|
|
|
|
if ((funcdef->type & 0xff) == INVENTORYFUNCTYPE_SPECIAL) {
|
|
createbeam = false;
|
|
}
|
|
|
|
if ((funcdef->type & 0xff) == INVENTORYFUNCTYPE_THROW) {
|
|
createbeam = false;
|
|
}
|
|
}
|
|
|
|
if (createbeam) {
|
|
switch (weaponnum) {
|
|
case WEAPON_FALCON2:
|
|
case WEAPON_FALCON2_SILENCER:
|
|
case WEAPON_FALCON2_SCOPE:
|
|
case WEAPON_MAGSEC4:
|
|
case WEAPON_MAULER:
|
|
case WEAPON_PHOENIX:
|
|
case WEAPON_DY357MAGNUM:
|
|
case WEAPON_DY357LX:
|
|
case WEAPON_CMP150:
|
|
case WEAPON_CYCLONE:
|
|
case WEAPON_CALLISTO:
|
|
case WEAPON_RCP120:
|
|
case WEAPON_LAPTOPGUN:
|
|
case WEAPON_DRAGON:
|
|
case WEAPON_K7AVENGER:
|
|
case WEAPON_AR34:
|
|
case WEAPON_SUPERDRAGON:
|
|
case WEAPON_REAPER:
|
|
case WEAPON_SNIPERRIFLE:
|
|
case WEAPON_FARSIGHT:
|
|
case WEAPON_TRANQUILIZER:
|
|
case WEAPON_PP9I:
|
|
case WEAPON_CC13:
|
|
case WEAPON_KL01313:
|
|
case WEAPON_KF7SPECIAL:
|
|
case WEAPON_ZZT:
|
|
case WEAPON_DMC:
|
|
case WEAPON_AR53:
|
|
case WEAPON_RCP45:
|
|
beamCreateForHand(handnum);
|
|
hand->numfires++;
|
|
return;
|
|
case WEAPON_LASER:
|
|
hand->numfires++;
|
|
beamCreateForHand(handnum);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgun0f0a5550(s32 handnum)
|
|
{
|
|
u8 *mtxallocation;
|
|
Mtxf sp2c4;
|
|
Mtxf sp284;
|
|
struct modelfiledata *modeldef = NULL;
|
|
struct coord sp274 = {0, 0, 0};
|
|
Mtxf sp234;
|
|
Mtxf sp1f4;
|
|
union modelrodata *rodata;
|
|
bool *sp1e4[3] = {NULL, NULL, NULL};
|
|
s32 sp1e0 = 0;
|
|
struct modelnode *node;
|
|
struct player *player = g_Vars.currentplayer;
|
|
struct hand *hand = player->hands + handnum;
|
|
struct weaponfunc *funcdef;
|
|
struct weaponfunc_shoot *shootfunc = NULL;
|
|
s32 i;
|
|
s32 weaponnum = bgunGetWeaponNum2(handnum);
|
|
struct weapon *weapondef;
|
|
Mtxf *mtx;
|
|
bool isdetonator = false;
|
|
f32 fspare1;
|
|
f32 fspare2;
|
|
struct coord sp1a4;
|
|
Mtxf sp164;
|
|
Mtxf sp124;
|
|
struct coord sp118;
|
|
s32 j;
|
|
|
|
weapondef = weaponFindById(weaponnum);
|
|
|
|
if (handnum == HAND_LEFT && weaponnum == WEAPON_REMOTEMINE) {
|
|
isdetonator = true;
|
|
}
|
|
|
|
funcdef = gsetGetWeaponFunction2(&hand->gset);
|
|
|
|
if (funcdef && (funcdef->type & 0xff) == INVENTORYFUNCTYPE_SHOOT) {
|
|
shootfunc = (struct weaponfunc_shoot *)funcdef;
|
|
}
|
|
|
|
bgunUpdateBlend(hand, handnum);
|
|
|
|
if (handnum == HAND_RIGHT) {
|
|
if (weaponHasFlag(bgunGetWeaponNum2(HAND_LEFT), WEAPONFLAG_00000040)) {
|
|
hand->xshift += 2.0f * g_Vars.lvupdate240freal / 240.0f;
|
|
|
|
if (hand->xshift > 2.0f) {
|
|
hand->xshift = 2.0f;
|
|
}
|
|
} else {
|
|
hand->xshift -= 2.0f * g_Vars.lvupdate240freal / 240.0f;
|
|
|
|
if (hand->xshift < 0.0f) {
|
|
hand->xshift = 0.0f;
|
|
}
|
|
}
|
|
} else {
|
|
if (weaponHasFlag(bgunGetWeaponNum2(HAND_RIGHT), WEAPONFLAG_00000040)) {
|
|
hand->xshift -= 2.0f * g_Vars.lvupdate240freal / 240.0f;
|
|
|
|
if (hand->xshift < -2.0f) {
|
|
hand->xshift = -2.0f;
|
|
}
|
|
} else {
|
|
hand->xshift += 2.0f * g_Vars.lvupdate240freal / 240.0f;
|
|
|
|
if (hand->xshift > 0.0f) {
|
|
hand->xshift = 0.0f;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (handnum == HAND_RIGHT) {
|
|
sp274.x = func0f0b131c(handnum) + hand->damppos.f[0] + hand->adjustpos.f[0];
|
|
sp274.y = weapondef->updown + hand->damppos.f[1] + hand->adjustpos.f[1];
|
|
sp274.z = weapondef->frontback + hand->damppos.f[2] + hand->adjustpos.f[2];
|
|
} else if (isdetonator) {
|
|
sp274.x = 6.5f + hand->damppos.f[0] - hand->adjustpos.f[0];
|
|
sp274.y = -16.5f + hand->damppos.f[1] + hand->adjustpos.f[1];
|
|
sp274.z = -16.0f + hand->damppos.f[2] + hand->adjustpos.f[2];
|
|
} else {
|
|
sp274.x = func0f0b131c(handnum) + hand->damppos.f[0] - hand->adjustpos.f[0];
|
|
sp274.y = weapondef->updown + hand->damppos.f[1] + hand->adjustpos.f[1];
|
|
sp274.z = weapondef->frontback + hand->damppos.f[2] + hand->adjustpos.f[2];
|
|
}
|
|
|
|
sp274.y += player->guncloseroffset * 5.0f / -90.0f * 50.0f;
|
|
sp274.z -= player->guncloseroffset * 15.0f / -90.0f * 50.0f;
|
|
|
|
if (hand->firing && shootfunc && g_Vars.lvupdate240 != 0 && shootfunc->unk14 != NULL) {
|
|
sp274.x += (RANDOMFRAC() - 0.5f) * shootfunc->unk14->minradius * hand->finalmult[0];
|
|
sp274.y += (RANDOMFRAC() - 0.5f) * shootfunc->unk14->maxradius * hand->finalmult[0];
|
|
sp274.z += (RANDOMFRAC() - 0.5f) * shootfunc->unk14->incradius * hand->finalmult[0];
|
|
}
|
|
|
|
hand->fspare1 = (player->crosspos2[0] - camGetScreenLeft() - camGetScreenWidth() * 0.5f) * weapondef->eptr->unk0c / (camGetScreenWidth() * 0.5f);
|
|
|
|
if (player->crosspos2[1] - camGetScreenTop() > camGetScreenHeight() * 0.5f) {
|
|
hand->fspare2 = (player->crosspos2[1] - camGetScreenTop() - camGetScreenHeight() * 0.5f) * weapondef->eptr->unk08 / (camGetScreenHeight() * 0.5f);
|
|
} else {
|
|
hand->fspare2 = (player->crosspos2[1] - camGetScreenTop() - camGetScreenHeight() * 0.5f) * weapondef->eptr->unk04 / (camGetScreenHeight() * 0.5f);
|
|
}
|
|
|
|
fspare1 = hand->fspare1;
|
|
fspare2 = hand->fspare2;
|
|
|
|
sp274.f[0] += fspare1;
|
|
sp274.f[1] -= fspare2;
|
|
|
|
hand->visible = true;
|
|
|
|
if (!weaponHasFlag(weaponnum, WEAPONFLAG_00000040)
|
|
|| weaponHasFlag(weaponnum, WEAPONFLAG_00000080)
|
|
|| hand->mode == HANDMODE_6
|
|
|| hand->mode == HANDMODE_7
|
|
|| !bgun0f09dd7c()
|
|
|| hand->inuse == false
|
|
|| bgunGetGunMemType() == 0) {
|
|
hand->visible = false;
|
|
}
|
|
|
|
if (hand->visible) {
|
|
modeldef = player->gunctrl.gunmodeldef;
|
|
mtxallocation = gfxAllocate(modeldef->nummatrices * sizeof(Mtxf));
|
|
|
|
if (weaponHasFlag(weaponnum, WEAPONFLAG_02000000)) {
|
|
for (i = 0; i < modeldef->nummatrices; i++) {
|
|
mtx = (Mtxf *)(mtxallocation + i * sizeof(Mtxf));
|
|
mtx4LoadIdentity(mtx);
|
|
}
|
|
}
|
|
|
|
bgunExecuteModelCmdList(hand->unk0dcc);
|
|
|
|
if (player->gunctrl.handmodeldef != NULL) {
|
|
bgunExecuteModelCmdList(hand->unk0dd0);
|
|
}
|
|
|
|
bgun0f098030(hand, modeldef);
|
|
|
|
if (weaponHasFlag(weaponnum, WEAPONFLAG_00002000)) {
|
|
bgun0f0981e8(hand, modeldef);
|
|
}
|
|
}
|
|
|
|
mtx4LoadIdentity(&sp234);
|
|
|
|
if (PLAYERCOUNT() == 1 && IS8MB() && weaponHasFlag(weaponnum, WEAPONFLAG_GANGSTA)) {
|
|
bgunUpdateGangsta(hand, handnum, &sp274, funcdef, &sp284, &sp234);
|
|
}
|
|
|
|
if (hand->useposrot) {
|
|
sp274.f[0] += hand->posrotmtx.m[3][0];
|
|
sp274.f[1] += hand->posrotmtx.m[3][1];
|
|
sp274.f[2] += hand->posrotmtx.m[3][2];
|
|
|
|
mtx00015be0(&hand->posrotmtx, &sp234);
|
|
|
|
sp234.m[3][0] = 0.0f;
|
|
sp234.m[3][1] = 0.0f;
|
|
sp234.m[3][2] = 0.0f;
|
|
} else {
|
|
hand->rotxoffset = 0.0f;
|
|
hand->posoffset.x = 0.0f;
|
|
hand->posoffset.y = 0.0f;
|
|
hand->posoffset.z = 0.0f;
|
|
}
|
|
|
|
mtx00016d58(&sp284, 0.0f, 0.0f, 0.0f,
|
|
hand->damplook.x, hand->damplook.y, hand->damplook.z,
|
|
hand->dampup.x, hand->dampup.y, hand->dampup.z);
|
|
|
|
mtx00015be0(&sp284, &sp234);
|
|
|
|
sp1a4.x = 0.0f;
|
|
sp1a4.y = M_PI;
|
|
sp1a4.z = 0.0f;
|
|
|
|
mtx4LoadRotation(&sp1a4, &sp164);
|
|
|
|
sp1a4.y = 0.0f;
|
|
|
|
bgun0f0a24f0(&sp118, handnum);
|
|
|
|
sp1a4.y = -bgun0f0a2498(sp118.x, sp118.z, sp274.f[0], sp274.f[2]);
|
|
sp1a4.x = bgun0f0a2498(sp118.y, sp118.z, sp274.f[1], sp274.f[2]);
|
|
|
|
hand->lastrotangx = sp1a4.f[0];
|
|
hand->lastrotangy = sp1a4.f[1];
|
|
|
|
mtx4LoadRotation(&sp1a4, &sp124);
|
|
mtx4MultMtx4(&sp124, &sp164, &sp284);
|
|
mtx4MultMtx4InPlace(&sp284, &sp234);
|
|
mtx4Copy(&sp234, &sp2c4);
|
|
mtx4SetTranslation(&sp274, &sp2c4);
|
|
|
|
mtx4Copy(&sp2c4, &hand->cammtx);
|
|
mtx4Copy(&hand->posmtx, &hand->prevmtx);
|
|
|
|
mtx00015be4(camGetProjectionMtxF(), &hand->cammtx, &hand->posmtx);
|
|
|
|
if (hand->visible) {
|
|
for (j = 0x5a; j < 0x5d; j++) {
|
|
node = modelGetPart(modeldef, j);
|
|
|
|
if (node) {
|
|
rodata = node->rodata;
|
|
sp1e4[sp1e0] = (bool *)&hand->unk0a6c[rodata->toggle.rwdataindex];
|
|
sp1e0++;
|
|
}
|
|
}
|
|
|
|
hand->gunmodel.matrices = (Mtxf *)mtxallocation;
|
|
hand->handmodel.matrices = (Mtxf *)mtxallocation;
|
|
|
|
if (weaponHasFlag(weaponnum, WEAPONFLAG_DUALFLIP) && handnum == HAND_LEFT) {
|
|
mtx00015e24(-1, &sp2c4);
|
|
}
|
|
|
|
mtx00015f04(0.10000001f, &sp2c4);
|
|
|
|
mtx4Copy(&sp2c4, (Mtxf *)mtxallocation);
|
|
|
|
if (hand->unk0cc8_04 > 0) {
|
|
switch (weaponnum) {
|
|
case WEAPON_GRENADE:
|
|
case WEAPON_NBOMB:
|
|
hand->unk0d0e_00 = 1;
|
|
hand->unk0d0e_04 = 1;
|
|
break;
|
|
case WEAPON_TRANQUILIZER:
|
|
hand->unk0d0e_00 = 1;
|
|
hand->unk0d0e_04 = 2;
|
|
break;
|
|
}
|
|
}
|
|
|
|
var8009d144 = hand;
|
|
|
|
if (hand->unk0d0e_00 > 0) {
|
|
bgun0f0a45d0(hand, modeldef, isdetonator);
|
|
}
|
|
|
|
var8009d0dc = -1;
|
|
var8009d0f0[0] = var8009d0f0[1] = var8009d0f0[2] = -1;
|
|
|
|
switch (weaponnum) {
|
|
case WEAPON_LASER:
|
|
bgunUpdateLaser(hand);
|
|
break;
|
|
case WEAPON_REAPER:
|
|
bgunUpdateReaper(hand, modeldef);
|
|
break;
|
|
}
|
|
|
|
{
|
|
bool a0 = true;
|
|
struct modelrenderdata renderdata = {NULL, true, 3};
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
bool a3 = false;
|
|
#endif
|
|
s32 spcc;
|
|
Mtxf *spc8;
|
|
Mtxf *spc4;
|
|
Mtxf sp84;
|
|
u32 sp80;
|
|
struct coord sp74;
|
|
s32 stack;
|
|
s32 sp6c;
|
|
|
|
renderdata.unk00 = &sp2c4;
|
|
renderdata.unk10 = hand->gunmodel.matrices;
|
|
|
|
if (hand->animmode != HANDANIMMODE_IDLE) {
|
|
a0 = false;
|
|
}
|
|
|
|
switch (weaponnum) {
|
|
case WEAPON_REAPER:
|
|
a0 = false;
|
|
break;
|
|
case WEAPON_COMBATKNIFE:
|
|
if (player->hands[HAND_LEFT].loadedammo[0] == 0) {
|
|
a0 = false;
|
|
}
|
|
// fall through
|
|
case WEAPON_GRENADE:
|
|
case WEAPON_NBOMB:
|
|
case WEAPON_TIMEDMINE:
|
|
case WEAPON_PROXIMITYMINE:
|
|
case WEAPON_REMOTEMINE:
|
|
case WEAPON_ECMMINE:
|
|
if (player->hands[HAND_RIGHT].loadedammo[0] == 0) {
|
|
a0 = false;
|
|
}
|
|
|
|
if (player->hands[handnum].state == HANDSTATE_AUTOSWITCH) {
|
|
a0 = false;
|
|
}
|
|
|
|
if (player->hands[handnum].state == HANDSTATE_ATTACK) {
|
|
a0 = false;
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (hand->unk0d0e_00) {
|
|
a0 = false;
|
|
}
|
|
|
|
if (player->hands[handnum].state == HANDSTATE_CHANGEGUN
|
|
&& player->hands[handnum].stateminor < 2
|
|
&& weapondef->unequip_animation != NULL) {
|
|
a0 = false;
|
|
}
|
|
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
switch (modelGetAnimNum(&hand->gunmodel)) {
|
|
case ANIM_GUN_CROSSBOW_EQUIP:
|
|
case ANIM_GUN_LAPTOP_EQUIP:
|
|
case ANIM_GUN_LAPTOP_UNEQUIP:
|
|
case ANIM_GUN_LAPTOP_RELOAD:
|
|
case ANIM_GUN_FALCON2_RELOAD:
|
|
case ANIM_GUN_CMP150_RELOAD:
|
|
case ANIM_GUN_FARSIGHT_SHOOT:
|
|
case ANIM_GUN_SHOTGUN_SHOOT_SINGLE:
|
|
case ANIM_GUN_REAPER_SHOOT:
|
|
case ANIM_GUN_MAGSEC4_RELOAD:
|
|
case ANIM_GUN_CYCLONE_RELOAD:
|
|
case ANIM_GUN_SNIPER_RELOAD:
|
|
case ANIM_GUN_PHOENIX_RELOAD:
|
|
case ANIM_GUN_FALCON2_RELOAD_SCOPE:
|
|
case ANIM_GUN_REMOTEMINE_EQUIP:
|
|
a3 = 1;
|
|
break;
|
|
}
|
|
#endif
|
|
|
|
if (a0) {
|
|
if (player->hands[HAND_RIGHT].unk0dd4 == -1) {
|
|
mtx4LoadIdentity(&sp84);
|
|
|
|
spc4 = hand->gunmodel.matrices;
|
|
|
|
renderdata.unk00 = &sp84;
|
|
renderdata.unk10 = player->hands[HAND_RIGHT].unk0dd8;
|
|
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
var8005efd8_2 = true;
|
|
|
|
if (a3) {
|
|
var8005efb0_2 = true;
|
|
}
|
|
|
|
model0001cebc(&renderdata, &hand->gunmodel);
|
|
|
|
var8005efd8_2 = false;
|
|
|
|
if (a3) {
|
|
var8005efb0_2 = false;
|
|
}
|
|
#else
|
|
model0001cebc(&renderdata, &hand->gunmodel);
|
|
#endif
|
|
|
|
player->hands[HAND_RIGHT].unk0dd4 = 1;
|
|
|
|
hand->gunmodel.matrices = spc4;
|
|
}
|
|
|
|
spc8 = player->hands[HAND_RIGHT].unk0dd8;
|
|
spc4 = hand->gunmodel.matrices;
|
|
|
|
for (spcc = 0; spcc < hand->gunmodel.filedata->nummatrices; spcc++) {
|
|
mtx00015be4(&sp2c4, spc8, spc4);
|
|
spc8++;
|
|
spc4++;
|
|
}
|
|
} else {
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
var8005efd8_2 = true;
|
|
|
|
if (a3) {
|
|
var8005efb0_2 = true;
|
|
}
|
|
|
|
model0001cebc(&renderdata, &hand->gunmodel);
|
|
|
|
var8005efd8_2 = false;
|
|
|
|
if (a3) {
|
|
var8005efb0_2 = false;
|
|
}
|
|
#else
|
|
model0001cebc(&renderdata, &hand->gunmodel);
|
|
#endif
|
|
}
|
|
|
|
g_ModelJointPositionedFunc = 0;
|
|
|
|
node = modelGetPart(modeldef, MODELPART_PISTOL_0033);
|
|
|
|
if (node) {
|
|
sp80 = model0001a524(node, 0);
|
|
|
|
bgunUpdateSlide(handnum);
|
|
|
|
sp74.f[0] = 0.0f;
|
|
sp74.f[1] = 0.0f;
|
|
sp74.f[2] = -hand->slidetrans;
|
|
|
|
mtx = (Mtxf *)mtxallocation;
|
|
mtx += sp80;
|
|
|
|
mtx4RotateVecInPlace(mtx, &sp74);
|
|
|
|
mtx->m[3][0] += sp74.f[0];
|
|
mtx->m[3][1] += sp74.f[1];
|
|
mtx->m[3][2] += sp74.f[2];
|
|
}
|
|
|
|
if (sp1e4[0] != NULL) {
|
|
*sp1e4[0] = false;
|
|
}
|
|
|
|
if (sp1e4[1] != NULL) {
|
|
*sp1e4[1] = false;
|
|
}
|
|
|
|
if (sp1e4[2] != NULL) {
|
|
*sp1e4[2] = false;
|
|
}
|
|
|
|
switch (weaponnum) {
|
|
case WEAPON_SNIPERRIFLE:
|
|
bgunUpdateSniperRifle(modeldef, mtxallocation);
|
|
break;
|
|
case WEAPON_DEVASTATOR:
|
|
bgunUpdateDevastator(hand, mtxallocation, modeldef);
|
|
break;
|
|
case WEAPON_SHOTGUN:
|
|
bgunUpdateShotgun(hand, mtxallocation, sp1e4[0], modeldef);
|
|
break;
|
|
}
|
|
|
|
node = modelGetPart(modeldef, 0x32);
|
|
|
|
if (weaponnum == WEAPON_REAPER) {
|
|
if (hand->flashon || hand->firing) {
|
|
node = modelGetPart(modeldef, 0x1e + (hand->burstbullets % 3));
|
|
} else {
|
|
node = modelGetPart(modeldef, 0x1e + (g_Vars.lvframenum % 3));
|
|
}
|
|
}
|
|
|
|
if (node) {
|
|
sp6c = model0001a524(node, 0);
|
|
|
|
mtx = (Mtxf *)mtxallocation;
|
|
mtx += sp6c;
|
|
|
|
hand->muzzlepos.f[0] = mtx->m[3][0];
|
|
hand->muzzlepos.f[1] = mtx->m[3][1];
|
|
hand->muzzlepos.f[2] = mtx->m[3][2];
|
|
|
|
mtx4Copy(mtx, &hand->muzzlemat);
|
|
mtx4TransformVecInPlace(camGetProjectionMtxF(), &hand->muzzlepos);
|
|
|
|
hand->muzzlez = -((Mtxf *)((u32)mtxallocation + sp6c * sizeof(Mtxf)))->m[3][2];
|
|
|
|
if (hand->flashon && sp1e0 > 0 && weaponnum != WEAPON_SHOTGUN && g_Vars.lvupdate240 != 0) {
|
|
bgun0f0a4e44(hand, weapondef, modeldef, funcdef, sp1e0, mtxallocation, weaponnum, sp1e4, sp6c, &sp234, &sp1f4);
|
|
}
|
|
} else if (weaponnum == WEAPON_GRENADE
|
|
|| weaponnum == WEAPON_TIMEDMINE
|
|
|| weaponnum == WEAPON_REMOTEMINE
|
|
|| weaponnum == WEAPON_PROXIMITYMINE
|
|
|| weaponnum == WEAPON_NBOMB) {
|
|
sp6c = model0001a524(modelGetPart(modeldef, 0x37), 0);
|
|
|
|
mtx = (Mtxf *)mtxallocation;
|
|
mtx += sp6c;
|
|
|
|
hand->muzzlepos.x = mtx->m[3][0];
|
|
hand->muzzlepos.y = mtx->m[3][1];
|
|
hand->muzzlepos.z = mtx->m[3][2];
|
|
|
|
mtx4Copy(mtx, &hand->muzzlemat);
|
|
mtx4TransformVecInPlace(camGetProjectionMtxF(), &hand->muzzlepos);
|
|
|
|
hand->muzzlez = -((Mtxf *)((u32)mtxallocation + sp6c * sizeof(Mtxf)))->m[3][2];
|
|
} else {
|
|
hand->muzzlepos.x = hand->posmtx.m[3][0];
|
|
hand->muzzlepos.y = hand->posmtx.m[3][1];
|
|
hand->muzzlepos.z = hand->posmtx.m[3][2];
|
|
|
|
mtx4Copy(&hand->posmtx, &hand->muzzlemat);
|
|
|
|
hand->muzzlez = -hand->cammtx.m[3][2];
|
|
}
|
|
}
|
|
} else {
|
|
hand->muzzlepos.x = hand->posmtx.m[3][0];
|
|
hand->muzzlepos.y = hand->posmtx.m[3][1];
|
|
hand->muzzlepos.z = hand->posmtx.m[3][2];
|
|
|
|
mtx4Copy(&hand->posmtx, &hand->muzzlemat);
|
|
|
|
hand->muzzlez = -hand->cammtx.m[3][2];
|
|
}
|
|
|
|
switch (weaponnum) {
|
|
case WEAPON_ROCKETLAUNCHER:
|
|
bgunUpdateRocketLauncher(hand, handnum, (struct weaponfunc_shootprojectile *)funcdef);
|
|
break;
|
|
case WEAPON_DY357MAGNUM:
|
|
case WEAPON_DY357LX:
|
|
if (hand->unk0cc8_04 > 0) {
|
|
bgunUpdateMagnum(hand, handnum, modeldef, (Mtxf *)mtxallocation);
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (hand->firing && g_Vars.lvupdate240 != 0) {
|
|
bgunCreateFx(hand, handnum, funcdef, weaponnum, modeldef, mtxallocation);
|
|
}
|
|
|
|
if (PLAYERCOUNT() == 1 && IS8MB() && g_Vars.lvupdate240 != 0) {
|
|
bgunUpdateSmoke(hand, handnum, weaponnum, funcdef);
|
|
}
|
|
|
|
if (hand->unk0d0e_00 > 0) {
|
|
bgun0f0a46a4(hand, modeldef, isdetonator);
|
|
}
|
|
|
|
if (PLAYERCOUNT() == 1 && IS8MB() && hand->visible
|
|
&& weaponnum >= WEAPON_FALCON2 && weaponnum <= WEAPON_FALCON2_SCOPE) {
|
|
bgunUpdateLasersight(hand, modeldef, handnum, mtxallocation);
|
|
} else {
|
|
lasersightFree(handnum);
|
|
}
|
|
|
|
hand->animframeinc = 0;
|
|
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
hand->animframeincfreal = 0;
|
|
#endif
|
|
}
|
|
|
|
void bgunTickMaulerCharge(void)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
s32 i;
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
struct hand *hand = &player->hands[i];
|
|
u32 charging = false;
|
|
|
|
if (hand->inuse) {
|
|
if (bgunIsReloading(hand)) {
|
|
// Reloading - reset charge amount
|
|
hand->matmot1 = 0;
|
|
} else if (hand->gset.weaponfunc == FUNC_SECONDARY) {
|
|
// Charging or fully charged
|
|
s32 oldvalue = hand->matmot1;
|
|
s32 newvalue;
|
|
|
|
if (hand->loadedammo[0] >= 2 && hand->matmot1 < 5) {
|
|
charging = true;
|
|
hand->matmot1 += g_Vars.lvupdate240freal * 0.05f;
|
|
}
|
|
|
|
if (hand->matmot1 > 5) {
|
|
hand->matmot1 = 5;
|
|
}
|
|
|
|
newvalue = hand->matmot1;
|
|
|
|
if (oldvalue != newvalue && hand->loadedammo[0] >= 2) {
|
|
hand->loadedammo[0]--;
|
|
}
|
|
} else {
|
|
// Using primary function - make the charge wear off slowly
|
|
hand->matmot1 -= g_Vars.lvupdate240freal * 0.005f;
|
|
|
|
if (hand->matmot1 < 0) {
|
|
hand->matmot1 = 0;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Probable @bug: In other places where audio is started and then
|
|
* its speed is adjusted, the game raises the priority of the main
|
|
* thread (this thread) to above the audio thread's priority so that
|
|
* the audio thread cannot execute and start playing the audio
|
|
* between the calls to sndStart and audioPostEvent. But this pattern
|
|
* is not done here.
|
|
*
|
|
* There is a known issue where the Mauler charge sound is played
|
|
* correctly then the game proceeds to play other unrelated sound
|
|
* effects before eventually crashing. It's suspected that this lack
|
|
* of thread priority adjusting is the root cause. Perhaps a race
|
|
* condition exists where the audio thread does something with the
|
|
* sound while this thread is in the middle of reconfiguring it.
|
|
* This is not yet confirmed.
|
|
*/
|
|
if (hand->audiohandle == NULL
|
|
&& hand->matmot1 > 0.1f
|
|
&& charging
|
|
&& g_Vars.lvupdate240 != 0) {
|
|
sndStart(var80095200, SFX_MAULER_CHARGE, &hand->audiohandle, -1, -1, -1, -1, -1);
|
|
}
|
|
|
|
if (hand->audiohandle) {
|
|
f32 speed = 0.5f + hand->matmot1 / 3.0f + sinf(var80061630 * M_PI * 32.0f) * 0.03f;
|
|
|
|
if (hand->matmot1 < 0.1f || !charging) {
|
|
audioStop(hand->audiohandle);
|
|
} else {
|
|
audioPostEvent(hand->audiohandle, 16, *(s32 *)&speed);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgunTickGameplay2(void)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
struct hand *hand;
|
|
u32 stack[3];
|
|
s32 i;
|
|
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
if (g_Vars.currentplayernum == 0) {
|
|
projectilesDebug();
|
|
}
|
|
#endif
|
|
|
|
if (player->gunctrl.unk1583_06) {
|
|
// empty
|
|
} else {
|
|
bgunTickLoad();
|
|
}
|
|
|
|
// Return control to Jo if eyespy has been deselected
|
|
if ((g_Vars.currentplayer->devicesactive & ~g_Vars.currentplayer->devicesinhibit & DEVICE_EYESPY) == 0
|
|
&& player->eyespy) {
|
|
player->eyespy->active = false;
|
|
}
|
|
|
|
if ((g_Vars.currentplayer->devicesactive & ~g_Vars.currentplayer->devicesinhibit & DEVICE_XRAYSCANNER)
|
|
&& (bgunGetWeaponNum(HAND_RIGHT) != WEAPON_FARSIGHT || player->gunsightoff)) {
|
|
// Using normal xray scanner (not Farsight zoom)
|
|
if (player->visionmode != VISIONMODE_XRAY) {
|
|
player->erasertime = 0;
|
|
} else {
|
|
player->erasertime += g_Vars.lvupdate240;
|
|
}
|
|
|
|
player->visionmode = VISIONMODE_XRAY;
|
|
player->ecol_1 = 24;
|
|
player->ecol_2 = 8;
|
|
player->ecol_3 = 24;
|
|
player->epcol_0 = 2;
|
|
player->epcol_1 = 0;
|
|
player->epcol_2 = 1;
|
|
} else {
|
|
if (player->gunsightoff == 0) {
|
|
if (player->hands[HAND_RIGHT].gset.weaponnum == WEAPON_FARSIGHT) {
|
|
// Aiming with the Farsight
|
|
if (player->visionmode != VISIONMODE_XRAY) {
|
|
player->erasertime = 0;
|
|
} else {
|
|
player->erasertime += g_Vars.lvupdate240;
|
|
}
|
|
|
|
player->visionmode = VISIONMODE_XRAY;
|
|
player->ecol_1 = 16;
|
|
player->ecol_2 = 24;
|
|
player->ecol_3 = 8;
|
|
player->epcol_0 = 0;
|
|
player->epcol_1 = 1;
|
|
player->epcol_2 = 2;
|
|
} else {
|
|
// Aiming with non-Farsight
|
|
if (player->visionmode != VISIONMODE_SLAYERROCKET) {
|
|
player->visionmode = VISIONMODE_NORMAL;
|
|
}
|
|
}
|
|
} else {
|
|
// Not aiming
|
|
if (player->visionmode != VISIONMODE_SLAYERROCKET) {
|
|
player->visionmode = VISIONMODE_NORMAL;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (player->gunctrl.weaponnum == WEAPON_MAULER) {
|
|
bgunTickMaulerCharge();
|
|
}
|
|
|
|
if (g_Vars.lvupdate240 == 0) {
|
|
for (i = 0; i < 2; i++) {
|
|
hand = &player->hands[i];
|
|
|
|
if (hand->audiohandle) {
|
|
audioStop(hand->audiohandle);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (g_Vars.currentplayer->devicesactive &
|
|
~g_Vars.currentplayer->devicesinhibit & DEVICE_CLOAKRCP120) {
|
|
if (player->gunctrl.weaponnum == WEAPON_RCP120) {
|
|
struct chrdata *chr = player->prop->chr;
|
|
|
|
// Handle RCP120 cloak ammo usage
|
|
if ((chr->hidden & CHRHFLAG_CLOAKED) && chr->cloakfadefinished == true) {
|
|
hand = &player->hands[HAND_RIGHT];
|
|
hand->matmot1 += LVUPDATE240FREAL() * 0.4f;
|
|
|
|
if (hand->matmot1 > 1.0f) {
|
|
s32 usedqty = hand->matmot1;
|
|
|
|
if (usedqty > hand->loadedammo[0]) {
|
|
usedqty = hand->loadedammo[0];
|
|
}
|
|
|
|
hand->matmot1 -= usedqty;
|
|
hand->loadedammo[0] -= usedqty;
|
|
|
|
// If out of ammo, turn off cloak
|
|
if (hand->loadedammo[0] == 0 && hand->state != HANDSTATE_RELOAD) {
|
|
s32 stilltogo = hand->matmot1;
|
|
|
|
if (stilltogo > player->ammoheldarr[player->gunctrl.ammotypes[0]]) {
|
|
g_Vars.currentplayer->devicesactive &= ~DEVICE_CLOAKRCP120;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
// No longer using RCP120, so turn off cloak
|
|
player->devicesactive &= ~DEVICE_CLOAKRCP120;
|
|
}
|
|
} else if (player->gunctrl.weaponnum == WEAPON_RCP120) {
|
|
hand = &player->hands[HAND_RIGHT];
|
|
|
|
// I think this is handling situations where the player has turned off
|
|
// RCP120 cloak but there's still a bit of ammo to be subtracted on
|
|
// this tick.
|
|
if (hand->matmot1 > 1.0f) {
|
|
s32 usedqty = hand->matmot1;
|
|
|
|
if (usedqty > hand->loadedammo[0]) {
|
|
usedqty = hand->loadedammo[0];
|
|
}
|
|
|
|
hand->matmot1 -= usedqty;
|
|
hand->loadedammo[0] -= usedqty;
|
|
|
|
if (hand->matmot1 > 1.0f) {
|
|
s32 usedqty = hand->matmot1;
|
|
|
|
if (usedqty > player->ammoheldarr[player->gunctrl.ammotypes[0]]) {
|
|
usedqty = player->ammoheldarr[player->gunctrl.ammotypes[0]];
|
|
}
|
|
|
|
player->ammoheldarr[player->gunctrl.ammotypes[0]] -= usedqty;
|
|
hand->matmot1 = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
bgunTickUnequippedReload();
|
|
bgun0f0a5550(HAND_RIGHT);
|
|
|
|
if (player->hands[HAND_LEFT].inuse) {
|
|
bgun0f0a5550(HAND_LEFT);
|
|
} else {
|
|
player->hands[HAND_LEFT].unk0d0e_00 = 0;
|
|
}
|
|
|
|
bgunIsUsingSecondaryFunction();
|
|
}
|
|
|
|
s8 bgunFreeFireslotWrapper(s32 slotnum)
|
|
{
|
|
#if VERSION < VERSION_NTSC_1_0
|
|
if (slotnum >= 0) {
|
|
if (g_Fireslots[slotnum].unk04nb && sndGetState(g_Fireslots[slotnum].unk04nb) != AL_STOPPED) {
|
|
audioStop(g_Fireslots[slotnum].unk04nb);
|
|
}
|
|
|
|
if (g_Fireslots[slotnum].unk08nb && sndGetState(g_Fireslots[slotnum].unk08nb) != AL_STOPPED) {
|
|
audioStop(g_Fireslots[slotnum].unk08nb);
|
|
}
|
|
}
|
|
#endif
|
|
|
|
return bgunFreeFireslot(slotnum);
|
|
}
|
|
|
|
s8 bgunFreeFireslot(s32 fireslot_id)
|
|
{
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
if (fireslot_id >= 0 && fireslot_id < NUM_FIRESLOTS) {
|
|
g_Fireslots[fireslot_id].endlvframe = -1;
|
|
}
|
|
#else
|
|
if (fireslot_id >= 0) {
|
|
g_Fireslots[fireslot_id].endlvframe = -1;
|
|
}
|
|
#endif
|
|
|
|
return -1;
|
|
}
|
|
|
|
s32 bgunAllocateFireslot(void)
|
|
{
|
|
s32 index = -1;
|
|
s32 i;
|
|
|
|
for (i = 0; i < ARRAYCOUNT(g_Fireslots); i++) {
|
|
if (g_Fireslots[i].endlvframe < 0) {
|
|
g_Fireslots[i].endlvframe = 0;
|
|
|
|
#if VERSION < VERSION_NTSC_1_0
|
|
g_Fireslots[i].unk04nb = 0;
|
|
g_Fireslots[i].unk08nb = 0;
|
|
#endif
|
|
|
|
g_Fireslots[i].beam.age = -1;
|
|
index = i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return index;
|
|
}
|
|
|
|
u32 var8007029c = 0x00000000;
|
|
u32 var800702a0 = 0x00000001;
|
|
u32 var800702a4 = 0x00000003;
|
|
u32 var800702a8 = 0x00000000;
|
|
u32 var800702ac = 0x00000000;
|
|
u32 var800702b0 = 0x00000000;
|
|
u32 var800702b4 = 0x00000000;
|
|
u32 var800702b8 = 0x00000000;
|
|
u32 var800702bc = 0x00000000;
|
|
u32 var800702c0 = 0x00000000;
|
|
u32 var800702c4 = 0x00000000;
|
|
u32 var800702c8 = 0x00000000;
|
|
u32 var800702cc = 0x00000000;
|
|
u32 var800702d0 = 0x00000000;
|
|
u32 var800702d4 = 0x00000000;
|
|
u32 var800702d8 = 0x00000000;
|
|
u32 var800702dc = 0x00000001;
|
|
|
|
#if PAL
|
|
GLOBAL_ASM(
|
|
glabel bgunRender
|
|
.late_rodata
|
|
glabel var7f1aca8c
|
|
.word 0x3faaaaab
|
|
glabel var7f1aca90
|
|
.word 0x3f3ebebf
|
|
.text
|
|
/* f0a7138: 27bdfeb0 */ addiu $sp,$sp,-336
|
|
/* f0a713c: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f0a7140: afb50030 */ sw $s5,0x30($sp)
|
|
/* f0a7144: afb4002c */ sw $s4,0x2c($sp)
|
|
/* f0a7148: afb30028 */ sw $s3,0x28($sp)
|
|
/* f0a714c: afb20024 */ sw $s2,0x24($sp)
|
|
/* f0a7150: afb10020 */ sw $s1,0x20($sp)
|
|
/* f0a7154: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f0a7158: afa40150 */ sw $a0,0x150($sp)
|
|
/* f0a715c: 8c8f0000 */ lw $t7,0x0($a0)
|
|
/* f0a7160: 3c198007 */ lui $t9,%hi(var8007029c)
|
|
/* f0a7164: 3c11800a */ lui $s1,%hi(g_Vars)
|
|
/* f0a7168: 2739029c */ addiu $t9,$t9,%lo(var8007029c)
|
|
/* f0a716c: 26319fc0 */ addiu $s1,$s1,%lo(g_Vars)
|
|
/* f0a7170: 272a003c */ addiu $t2,$t9,0x3c
|
|
/* f0a7174: 27b8010c */ addiu $t8,$sp,0x10c
|
|
/* f0a7178: afaf014c */ sw $t7,0x14c($sp)
|
|
.L0f0a717c:
|
|
/* f0a717c: 8f210000 */ lw $at,0x0($t9)
|
|
/* f0a7180: 2739000c */ addiu $t9,$t9,0xc
|
|
/* f0a7184: 2718000c */ addiu $t8,$t8,0xc
|
|
/* f0a7188: af01fff4 */ sw $at,-0xc($t8)
|
|
/* f0a718c: 8f21fff8 */ lw $at,-0x8($t9)
|
|
/* f0a7190: af01fff8 */ sw $at,-0x8($t8)
|
|
/* f0a7194: 8f21fffc */ lw $at,-0x4($t9)
|
|
/* f0a7198: 172afff8 */ bne $t9,$t2,.L0f0a717c
|
|
/* f0a719c: af01fffc */ sw $at,-0x4($t8)
|
|
/* f0a71a0: 8f210000 */ lw $at,0x0($t9)
|
|
/* f0a71a4: af010000 */ sw $at,0x0($t8)
|
|
/* f0a71a8: 8e330284 */ lw $s3,0x284($s1)
|
|
/* f0a71ac: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a71b0: 966b0010 */ lhu $t3,0x10($s3)
|
|
/* f0a71b4: 1561000d */ bne $t3,$at,.L0f0a71ec
|
|
/* f0a71b8: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a71bc: 24040f48 */ addiu $a0,$zero,0xf48
|
|
/* f0a71c0: 8e2c0284 */ lw $t4,0x284($s1)
|
|
.L0f0a71c4:
|
|
/* f0a71c4: 01821821 */ addu $v1,$t4,$v0
|
|
/* f0a71c8: 8c6d0854 */ lw $t5,0x854($v1)
|
|
/* f0a71cc: 244207a4 */ addiu $v0,$v0,0x7a4
|
|
/* f0a71d0: 11a00002 */ beqz $t5,.L0f0a71dc
|
|
/* f0a71d4: 00000000 */ nop
|
|
/* f0a71d8: ac600850 */ sw $zero,0x850($v1)
|
|
.L0f0a71dc:
|
|
/* f0a71dc: 5444fff9 */ bnel $v0,$a0,.L0f0a71c4
|
|
/* f0a71e0: 8e2c0284 */ lw $t4,0x284($s1)
|
|
/* f0a71e4: 100002d5 */ b .L0f0a7d3c
|
|
/* f0a71e8: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.L0f0a71ec:
|
|
/* f0a71ec: 0fc5d9ad */ jal mblurRender
|
|
/* f0a71f0: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a71f4: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a71f8: 0c002ca0 */ jal vi0000b280
|
|
/* f0a71fc: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a7200: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a7204: 0c002c74 */ jal vi0000b1d0
|
|
/* f0a7208: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a720c: 244e0008 */ addiu $t6,$v0,0x8
|
|
/* f0a7210: afae014c */ sw $t6,0x14c($sp)
|
|
/* f0a7214: 0c002f40 */ jal viGetViewLeft
|
|
/* f0a7218: 0040a825 */ or $s5,$v0,$zero
|
|
/* f0a721c: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a7220: 00107c03 */ sra $t7,$s0,0x10
|
|
/* f0a7224: 0c002f44 */ jal viGetViewTop
|
|
/* f0a7228: 01e08025 */ or $s0,$t7,$zero
|
|
/* f0a722c: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a7230: 44908000 */ mtc1 $s0,$f16
|
|
/* f0a7234: 3c014080 */ lui $at,0x4080
|
|
/* f0a7238: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a723c: 44810000 */ mtc1 $at,$f0
|
|
/* f0a7240: 3c01ed00 */ lui $at,0xed00
|
|
/* f0a7244: 468084a0 */ cvt.s.w $f18,$f16
|
|
/* f0a7248: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a724c: 00000000 */ nop
|
|
/* f0a7250: 46009102 */ mul.s $f4,$f18,$f0
|
|
/* f0a7254: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0a7258: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0a725c: 44085000 */ mfc1 $t0,$f10
|
|
/* f0a7260: 440b3000 */ mfc1 $t3,$f6
|
|
/* f0a7264: 310a0fff */ andi $t2,$t0,0xfff
|
|
/* f0a7268: 0141c825 */ or $t9,$t2,$at
|
|
/* f0a726c: 316c0fff */ andi $t4,$t3,0xfff
|
|
/* f0a7270: 000c6b00 */ sll $t5,$t4,0xc
|
|
/* f0a7274: 032d7025 */ or $t6,$t9,$t5
|
|
/* f0a7278: 0c002f22 */ jal viGetViewWidth
|
|
/* f0a727c: aeae0000 */ sw $t6,0x0($s5)
|
|
/* f0a7280: 00029400 */ sll $s2,$v0,0x10
|
|
/* f0a7284: 00127c03 */ sra $t7,$s2,0x10
|
|
/* f0a7288: 0c002f40 */ jal viGetViewLeft
|
|
/* f0a728c: 01e09025 */ or $s2,$t7,$zero
|
|
/* f0a7290: 0002a400 */ sll $s4,$v0,0x10
|
|
/* f0a7294: 00144c03 */ sra $t1,$s4,0x10
|
|
/* f0a7298: 0c002f44 */ jal viGetViewTop
|
|
/* f0a729c: 0120a025 */ or $s4,$t1,$zero
|
|
/* f0a72a0: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a72a4: 00104403 */ sra $t0,$s0,0x10
|
|
/* f0a72a8: 0c002f26 */ jal viGetViewHeight
|
|
/* f0a72ac: 01008025 */ or $s0,$t0,$zero
|
|
/* f0a72b0: 00505021 */ addu $t2,$v0,$s0
|
|
/* f0a72b4: 448a4000 */ mtc1 $t2,$f8
|
|
/* f0a72b8: 0292c821 */ addu $t9,$s4,$s2
|
|
/* f0a72bc: 44992000 */ mtc1 $t9,$f4
|
|
/* f0a72c0: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0a72c4: 3c014080 */ lui $at,0x4080
|
|
/* f0a72c8: 44810000 */ mtc1 $at,$f0
|
|
/* f0a72cc: 3c053fc0 */ lui $a1,0x3fc0
|
|
/* f0a72d0: 3c06447a */ lui $a2,0x447a
|
|
/* f0a72d4: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a72d8: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f0a72dc: 00000000 */ nop
|
|
/* f0a72e0: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a72e4: 4600848d */ trunc.w.s $f18,$f16
|
|
/* f0a72e8: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0a72ec: 440b9000 */ mfc1 $t3,$f18
|
|
/* f0a72f0: 440e5000 */ mfc1 $t6,$f10
|
|
/* f0a72f4: 316c0fff */ andi $t4,$t3,0xfff
|
|
/* f0a72f8: 31cf0fff */ andi $t7,$t6,0xfff
|
|
/* f0a72fc: 000f4b00 */ sll $t1,$t7,0xc
|
|
/* f0a7300: 01894025 */ or $t0,$t4,$t1
|
|
/* f0a7304: aea80004 */ sw $t0,0x4($s5)
|
|
/* f0a7308: 0c002b29 */ jal vi0000aca4
|
|
/* f0a730c: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a7310: 8e2a0284 */ lw $t2,0x284($s1)
|
|
/* f0a7314: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a7318: 91581bfc */ lbu $t8,0x1bfc($t2)
|
|
/* f0a731c: 53000016 */ beqzl $t8,.L0f0a7378
|
|
/* f0a7320: 8e2b006c */ lw $t3,0x6c($s1)
|
|
/* f0a7324: 0fc54bc7 */ jal optionsGetScreenRatio
|
|
/* f0a7328: 00000000 */ nop
|
|
/* f0a732c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a7330: 14410008 */ bne $v0,$at,.L0f0a7354
|
|
/* f0a7334: 00000000 */ nop
|
|
/* f0a7338: 0fc2f4d6 */ jal player0f0bd358
|
|
/* f0a733c: 00000000 */ nop
|
|
/* f0a7340: 3c017f1b */ lui $at,%hi(var7f1aca8c)
|
|
/* f0a7344: c430ca8c */ lwc1 $f16,%lo(var7f1aca8c)($at)
|
|
/* f0a7348: 46100082 */ mul.s $f2,$f0,$f16
|
|
/* f0a734c: 10000005 */ b .L0f0a7364
|
|
/* f0a7350: 44061000 */ mfc1 $a2,$f2
|
|
.L0f0a7354:
|
|
/* f0a7354: 0fc2f4d6 */ jal player0f0bd358
|
|
/* f0a7358: 00000000 */ nop
|
|
/* f0a735c: 46000086 */ mov.s $f2,$f0
|
|
/* f0a7360: 44061000 */ mfc1 $a2,$f2
|
|
.L0f0a7364:
|
|
/* f0a7364: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a7368: 0c002c3a */ jal vi0000b0e8
|
|
/* f0a736c: 3c054270 */ lui $a1,0x4270
|
|
/* f0a7370: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a7374: 8e2b006c */ lw $t3,0x6c($s1)
|
|
.L0f0a7378:
|
|
/* f0a7378: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a737c: 51600004 */ beqzl $t3,.L0f0a7390
|
|
/* f0a7380: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a7384: 10000002 */ b .L0f0a7390
|
|
/* f0a7388: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f0a738c: 00002825 */ or $a1,$zero,$zero
|
|
.L0f0a7390:
|
|
/* f0a7390: 8e390068 */ lw $t9,0x68($s1)
|
|
/* f0a7394: 53200004 */ beqzl $t9,.L0f0a73a8
|
|
/* f0a7398: 00002025 */ or $a0,$zero,$zero
|
|
/* f0a739c: 10000002 */ b .L0f0a73a8
|
|
/* f0a73a0: 24040001 */ addiu $a0,$zero,0x1
|
|
/* f0a73a4: 00002025 */ or $a0,$zero,$zero
|
|
.L0f0a73a8:
|
|
/* f0a73a8: 8e2d0064 */ lw $t5,0x64($s1)
|
|
/* f0a73ac: 51a00004 */ beqzl $t5,.L0f0a73c0
|
|
/* f0a73b0: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a73b4: 10000002 */ b .L0f0a73c0
|
|
/* f0a73b8: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0a73bc: 00001025 */ or $v0,$zero,$zero
|
|
.L0f0a73c0:
|
|
/* f0a73c0: 8e2e0070 */ lw $t6,0x70($s1)
|
|
/* f0a73c4: 51c00004 */ beqzl $t6,.L0f0a73d8
|
|
/* f0a73c8: 00001825 */ or $v1,$zero,$zero
|
|
/* f0a73cc: 10000002 */ b .L0f0a73d8
|
|
/* f0a73d0: 24030001 */ addiu $v1,$zero,0x1
|
|
/* f0a73d4: 00001825 */ or $v1,$zero,$zero
|
|
.L0f0a73d8:
|
|
/* f0a73d8: 00627821 */ addu $t7,$v1,$v0
|
|
/* f0a73dc: 01e46021 */ addu $t4,$t7,$a0
|
|
/* f0a73e0: 01854821 */ addu $t1,$t4,$a1
|
|
/* f0a73e4: 15210008 */ bne $t1,$at,.L0f0a7408
|
|
/* f0a73e8: 3c088009 */ lui $t0,%hi(g_Is4Mb)
|
|
/* f0a73ec: 91080af0 */ lbu $t0,%lo(g_Is4Mb)($t0)
|
|
/* f0a73f0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a73f4: 51010005 */ beql $t0,$at,.L0f0a740c
|
|
/* f0a73f8: 0000a025 */ or $s4,$zero,$zero
|
|
/* f0a73fc: 0fc2be93 */ jal lasersightRenderBeam
|
|
/* f0a7400: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a7404: afa2014c */ sw $v0,0x14c($sp)
|
|
.L0f0a7408:
|
|
/* f0a7408: 0000a025 */ or $s4,$zero,$zero
|
|
.L0f0a740c:
|
|
/* f0a740c: 26700638 */ addiu $s0,$s3,0x638
|
|
/* f0a7410: 8fb500e4 */ lw $s5,0xe4($sp)
|
|
/* f0a7414: 24120019 */ addiu $s2,$zero,0x1e
|
|
.L0f0a7418:
|
|
/* f0a7418: 0fc2867c */ jal bgunGetWeaponNum2
|
|
/* f0a741c: 02802025 */ or $a0,$s4,$zero
|
|
/* f0a7420: afa200ec */ sw $v0,0xec($sp)
|
|
/* f0a7424: 820a0007 */ lb $t2,0x7($s0)
|
|
/* f0a7428: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a742c: 260501dc */ addiu $a1,$s0,0x1dc
|
|
/* f0a7430: 114001f2 */ beqz $t2,.L0f0a7bfc
|
|
/* f0a7434: 00003025 */ or $a2,$zero,$zero
|
|
/* f0a7438: 26180384 */ addiu $t8,$s0,0x384
|
|
/* f0a743c: afb8003c */ sw $t8,0x3c($sp)
|
|
/* f0a7440: 0fc2b2e4 */ jal beamRender
|
|
/* f0a7444: 00003825 */ or $a3,$zero,$zero
|
|
/* f0a7448: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a744c: 92040000 */ lbu $a0,0x0($s0)
|
|
/* f0a7450: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f0a7454: 34058000 */ dli $a1,0x8000
|
|
/* f0a7458: 10400030 */ beqz $v0,.L0f0a751c
|
|
/* f0a745c: 8fab014c */ lw $t3,0x14c($sp)
|
|
/* f0a7460: 25790008 */ addiu $t9,$t3,0x8
|
|
/* f0a7464: afb9014c */ sw $t9,0x14c($sp)
|
|
/* f0a7468: 3c0dbc00 */ lui $t5,0xbc00
|
|
/* f0a746c: 3c0e8000 */ lui $t6,0x8000
|
|
/* f0a7470: 35ce0040 */ ori $t6,$t6,0x40
|
|
/* f0a7474: 35ad0002 */ ori $t5,$t5,0x2
|
|
/* f0a7478: ad6d0000 */ sw $t5,0x0($t3)
|
|
/* f0a747c: ad6e0004 */ sw $t6,0x4($t3)
|
|
/* f0a7480: 8faf014c */ lw $t7,0x14c($sp)
|
|
/* f0a7484: 3c090386 */ lui $t1,0x386
|
|
/* f0a7488: 3c088007 */ lui $t0,%hi(var80070098)
|
|
/* f0a748c: 25ec0008 */ addiu $t4,$t7,0x8
|
|
/* f0a7490: afac014c */ sw $t4,0x14c($sp)
|
|
/* f0a7494: 25080098 */ addiu $t0,$t0,%lo(var80070098)
|
|
/* f0a7498: 35290010 */ ori $t1,$t1,0x10
|
|
/* f0a749c: ade90000 */ sw $t1,0x0($t7)
|
|
/* f0a74a0: ade80004 */ sw $t0,0x4($t7)
|
|
/* f0a74a4: 8faa014c */ lw $t2,0x14c($sp)
|
|
/* f0a74a8: 3c0b0388 */ lui $t3,0x388
|
|
/* f0a74ac: 3c198007 */ lui $t9,%hi(var80070090)
|
|
/* f0a74b0: 25580008 */ addiu $t8,$t2,0x8
|
|
/* f0a74b4: afb8014c */ sw $t8,0x14c($sp)
|
|
/* f0a74b8: 27390090 */ addiu $t9,$t9,%lo(var80070090)
|
|
/* f0a74bc: 356b0010 */ ori $t3,$t3,0x10
|
|
/* f0a74c0: ad4b0000 */ sw $t3,0x0($t2)
|
|
/* f0a74c4: ad590004 */ sw $t9,0x4($t2)
|
|
/* f0a74c8: 8fad014c */ lw $t5,0x14c($sp)
|
|
/* f0a74cc: 3c0f0384 */ lui $t7,0x384
|
|
/* f0a74d0: 35ef0010 */ ori $t7,$t7,0x10
|
|
/* f0a74d4: 25ae0008 */ addiu $t6,$t5,0x8
|
|
/* f0a74d8: afae014c */ sw $t6,0x14c($sp)
|
|
/* f0a74dc: adaf0000 */ sw $t7,0x0($t5)
|
|
/* f0a74e0: 0fc2d5ea */ jal camGetLookAt
|
|
/* f0a74e4: afad00d4 */ sw $t5,0xd4($sp)
|
|
/* f0a74e8: 8fa500d4 */ lw $a1,0xd4($sp)
|
|
/* f0a74ec: 3c080382 */ lui $t0,0x382
|
|
/* f0a74f0: 35080010 */ ori $t0,$t0,0x10
|
|
/* f0a74f4: aca20004 */ sw $v0,0x4($a1)
|
|
/* f0a74f8: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f0a74fc: 25890008 */ addiu $t1,$t4,0x8
|
|
/* f0a7500: afa9014c */ sw $t1,0x14c($sp)
|
|
/* f0a7504: ad880000 */ sw $t0,0x0($t4)
|
|
/* f0a7508: 0fc2d5ea */ jal camGetLookAt
|
|
/* f0a750c: afac00d0 */ sw $t4,0xd0($sp)
|
|
/* f0a7510: 8fa300d0 */ lw $v1,0xd0($sp)
|
|
/* f0a7514: 244a0010 */ addiu $t2,$v0,0x10
|
|
/* f0a7518: ac6a0004 */ sw $t2,0x4($v1)
|
|
.L0f0a751c:
|
|
/* f0a751c: 8fb8014c */ lw $t8,0x14c($sp)
|
|
/* f0a7520: 3c19bc00 */ lui $t9,0xbc00
|
|
/* f0a7524: 3739000e */ ori $t9,$t9,0xe
|
|
/* f0a7528: 270b0008 */ addiu $t3,$t8,0x8
|
|
/* f0a752c: afab014c */ sw $t3,0x14c($sp)
|
|
/* f0a7530: 3c014396 */ lui $at,0x4396
|
|
/* f0a7534: 44817000 */ mtc1 $at,$f14
|
|
/* f0a7538: 44806000 */ mtc1 $zero,$f12
|
|
/* f0a753c: af190000 */ sw $t9,0x0($t8)
|
|
/* f0a7540: 0c005b73 */ jal mtx00016dcc
|
|
/* f0a7544: afb800cc */ sw $t8,0xcc($sp)
|
|
/* f0a7548: 8fa300cc */ lw $v1,0xcc($sp)
|
|
/* f0a754c: 24050010 */ addiu $a1,$zero,0x10
|
|
/* f0a7550: ac620004 */ sw $v0,0x4($v1)
|
|
/* f0a7554: 0c006a47 */ jal modelGetPart
|
|
/* f0a7558: 8e04038c */ lw $a0,0x38c($s0)
|
|
/* f0a755c: 10400014 */ beqz $v0,.L0f0a75b0
|
|
/* f0a7560: afa200e8 */ sw $v0,0xe8($sp)
|
|
/* f0a7564: 8e04038c */ lw $a0,0x38c($s0)
|
|
/* f0a7568: 0c006a47 */ jal modelGetPart
|
|
/* f0a756c: 24050011 */ addiu $a1,$zero,0x11
|
|
/* f0a7570: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f0a7574: 0c006a87 */ jal modelGetNodeRwData
|
|
/* f0a7578: 00402825 */ or $a1,$v0,$zero
|
|
/* f0a757c: 10400003 */ beqz $v0,.L0f0a758c
|
|
/* f0a7580: 3c06800a */ lui $a2,%hi(var8009cf88)
|
|
/* f0a7584: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f0a7588: ac4d0000 */ sw $t5,0x0($v0)
|
|
.L0f0a758c:
|
|
/* f0a758c: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0a7590: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0a7594: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f0a7598: 8fa500e8 */ lw $a1,0xe8($sp)
|
|
/* f0a759c: 24c6cf88 */ addiu $a2,$a2,%lo(var8009cf88)
|
|
/* f0a75a0: 8fa7014c */ lw $a3,0x14c($sp)
|
|
/* f0a75a4: 0fc1fefe */ jal tvscreenRender
|
|
/* f0a75a8: afa00010 */ sw $zero,0x10($sp)
|
|
/* f0a75ac: afa2014c */ sw $v0,0x14c($sp)
|
|
.L0f0a75b0:
|
|
/* f0a75b0: 8faf014c */ lw $t7,0x14c($sp)
|
|
/* f0a75b4: 8e250284 */ lw $a1,0x284($s1)
|
|
/* f0a75b8: 240c0004 */ addiu $t4,$zero,0x4
|
|
/* f0a75bc: afac013c */ sw $t4,0x13c($sp)
|
|
/* f0a75c0: afaf0118 */ sw $t7,0x118($sp)
|
|
/* f0a75c4: 8ca300d8 */ lw $v1,0xd8($a1)
|
|
/* f0a75c8: 3c078007 */ lui $a3,%hi(g_InCutscene)
|
|
/* f0a75cc: 14600013 */ bnez $v1,.L0f0a761c
|
|
/* f0a75d0: 00000000 */ nop
|
|
/* f0a75d4: 8ce70764 */ lw $a3,%lo(g_InCutscene)($a3)
|
|
/* f0a75d8: 14e00010 */ bnez $a3,.L0f0a761c
|
|
/* f0a75dc: 00000000 */ nop
|
|
/* f0a75e0: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a75e4: 50400007 */ beqzl $v0,.L0f0a7604
|
|
/* f0a75e8: 8caa1c54 */ lw $t2,0x1c54($a1)
|
|
/* f0a75ec: 1040000b */ beqz $v0,.L0f0a761c
|
|
/* f0a75f0: 00000000 */ nop
|
|
/* f0a75f4: 80490037 */ lb $t1,0x37($v0)
|
|
/* f0a75f8: 15200008 */ bnez $t1,.L0f0a761c
|
|
/* f0a75fc: 00000000 */ nop
|
|
/* f0a7600: 8caa1c54 */ lw $t2,0x1c54($a1)
|
|
.L0f0a7604:
|
|
/* f0a7604: 8ca800c4 */ lw $t0,0xc4($a1)
|
|
/* f0a7608: 0140c027 */ nor $t8,$t2,$zero
|
|
/* f0a760c: 01185824 */ and $t3,$t0,$t8
|
|
/* f0a7610: 31790001 */ andi $t9,$t3,0x1
|
|
/* f0a7614: 57200016 */ bnezl $t9,.L0f0a7670
|
|
/* f0a7618: 92681615 */ lbu $t0,0x1615($s3)
|
|
.L0f0a761c:
|
|
/* f0a761c: 14600078 */ bnez $v1,.L0f0a7800
|
|
/* f0a7620: 3c078007 */ lui $a3,%hi(g_InCutscene)
|
|
/* f0a7624: 8ce70764 */ lw $a3,%lo(g_InCutscene)($a3)
|
|
/* f0a7628: 54e00076 */ bnezl $a3,.L0f0a7804
|
|
/* f0a762c: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a7630: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a7634: 50400007 */ beqzl $v0,.L0f0a7654
|
|
/* f0a7638: 8caf1c54 */ lw $t7,0x1c54($a1)
|
|
/* f0a763c: 50400071 */ beqzl $v0,.L0f0a7804
|
|
/* f0a7640: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a7644: 804d0037 */ lb $t5,0x37($v0)
|
|
/* f0a7648: 55a0006e */ bnezl $t5,.L0f0a7804
|
|
/* f0a764c: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a7650: 8caf1c54 */ lw $t7,0x1c54($a1)
|
|
.L0f0a7654:
|
|
/* f0a7654: 8cae00c4 */ lw $t6,0xc4($a1)
|
|
/* f0a7658: 01e06027 */ nor $t4,$t7,$zero
|
|
/* f0a765c: 01cc4824 */ and $t1,$t6,$t4
|
|
/* f0a7660: 312a0008 */ andi $t2,$t1,0x8
|
|
/* f0a7664: 51400067 */ beqzl $t2,.L0f0a7804
|
|
/* f0a7668: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a766c: 92681615 */ lbu $t0,0x1615($s3)
|
|
.L0f0a7670:
|
|
/* f0a7670: 92781614 */ lbu $t8,0x1614($s3)
|
|
/* f0a7674: 26641614 */ addiu $a0,$s3,0x1614
|
|
/* f0a7678: 0118082a */ slt $at,$t0,$t8
|
|
/* f0a767c: 50200009 */ beqzl $at,.L0f0a76a4
|
|
/* f0a7680: 90820002 */ lbu $v0,0x2($a0)
|
|
/* f0a7684: 90830000 */ lbu $v1,0x0($a0)
|
|
/* f0a7688: 908b0002 */ lbu $t3,0x2($a0)
|
|
/* f0a768c: 0163082a */ slt $at,$t3,$v1
|
|
/* f0a7690: 50200004 */ beqzl $at,.L0f0a76a4
|
|
/* f0a7694: 90820002 */ lbu $v0,0x2($a0)
|
|
/* f0a7698: 1000000a */ b .L0f0a76c4
|
|
/* f0a769c: 00601025 */ or $v0,$v1,$zero
|
|
/* f0a76a0: 90820002 */ lbu $v0,0x2($a0)
|
|
.L0f0a76a4:
|
|
/* f0a76a4: 90860001 */ lbu $a2,0x1($a0)
|
|
/* f0a76a8: 00401825 */ or $v1,$v0,$zero
|
|
/* f0a76ac: 0046082a */ slt $at,$v0,$a2
|
|
/* f0a76b0: 10200003 */ beqz $at,.L0f0a76c0
|
|
/* f0a76b4: 00000000 */ nop
|
|
/* f0a76b8: 10000001 */ b .L0f0a76c0
|
|
/* f0a76bc: 00c01825 */ or $v1,$a2,$zero
|
|
.L0f0a76c0:
|
|
/* f0a76c0: 00601025 */ or $v0,$v1,$zero
|
|
.L0f0a76c4:
|
|
/* f0a76c4: 90890003 */ lbu $t1,0x3($a0)
|
|
/* f0a76c8: 0002ce00 */ sll $t9,$v0,0x18
|
|
/* f0a76cc: 00026c00 */ sll $t5,$v0,0x10
|
|
/* f0a76d0: 032d7825 */ or $t7,$t9,$t5
|
|
/* f0a76d4: 00027200 */ sll $t6,$v0,0x8
|
|
/* f0a76d8: 01ee6025 */ or $t4,$t7,$t6
|
|
/* f0a76dc: 012c5021 */ addu $t2,$t1,$t4
|
|
/* f0a76e0: afaa0140 */ sw $t2,0x140($sp)
|
|
/* f0a76e4: 8ca300d8 */ lw $v1,0xd8($a1)
|
|
/* f0a76e8: 14600021 */ bnez $v1,.L0f0a7770
|
|
/* f0a76ec: 00000000 */ nop
|
|
/* f0a76f0: 14e0001f */ bnez $a3,.L0f0a7770
|
|
/* f0a76f4: 00000000 */ nop
|
|
/* f0a76f8: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a76fc: 50400007 */ beqzl $v0,.L0f0a771c
|
|
/* f0a7700: 8cab1c54 */ lw $t3,0x1c54($a1)
|
|
/* f0a7704: 1040001a */ beqz $v0,.L0f0a7770
|
|
/* f0a7708: 00000000 */ nop
|
|
/* f0a770c: 80480037 */ lb $t0,0x37($v0)
|
|
/* f0a7710: 15000017 */ bnez $t0,.L0f0a7770
|
|
/* f0a7714: 00000000 */ nop
|
|
/* f0a7718: 8cab1c54 */ lw $t3,0x1c54($a1)
|
|
.L0f0a771c:
|
|
/* f0a771c: 8cb800c4 */ lw $t8,0xc4($a1)
|
|
/* f0a7720: 3c02800a */ lui $v0,%hi(var8009caec+0x3)
|
|
/* f0a7724: 0160c827 */ nor $t9,$t3,$zero
|
|
/* f0a7728: 03196824 */ and $t5,$t8,$t9
|
|
/* f0a772c: 31af0001 */ andi $t7,$t5,0x1
|
|
/* f0a7730: 11e0000f */ beqz $t7,.L0f0a7770
|
|
/* f0a7734: 00000000 */ nop
|
|
/* f0a7738: 9042caef */ lbu $v0,%lo(var8009caec+0x3)($v0)
|
|
/* f0a773c: 3c06800a */ lui $a2,%hi(var8009caf0)
|
|
/* f0a7740: 90c6caf0 */ lbu $a2,%lo(var8009caf0)($a2)
|
|
/* f0a7744: 00027600 */ sll $t6,$v0,0x18
|
|
/* f0a7748: 00024c00 */ sll $t1,$v0,0x10
|
|
/* f0a774c: 01c96025 */ or $t4,$t6,$t1
|
|
/* f0a7750: 00025200 */ sll $t2,$v0,0x8
|
|
/* f0a7754: 018a4025 */ or $t0,$t4,$t2
|
|
/* f0a7758: afa200b0 */ sw $v0,0xb0($sp)
|
|
/* f0a775c: afa200b4 */ sw $v0,0xb4($sp)
|
|
/* f0a7760: afa200b8 */ sw $v0,0xb8($sp)
|
|
/* f0a7764: 00c8a821 */ addu $s5,$a2,$t0
|
|
/* f0a7768: 1000001f */ b .L0f0a77e8
|
|
/* f0a776c: afa600bc */ sw $a2,0xbc($sp)
|
|
.L0f0a7770:
|
|
/* f0a7770: 5460001e */ bnezl $v1,.L0f0a77ec
|
|
/* f0a7774: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0a7778: 54e0001c */ bnezl $a3,.L0f0a77ec
|
|
/* f0a777c: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0a7780: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a7784: 50400007 */ beqzl $v0,.L0f0a77a4
|
|
/* f0a7788: 8cb91c54 */ lw $t9,0x1c54($a1)
|
|
/* f0a778c: 50400017 */ beqzl $v0,.L0f0a77ec
|
|
/* f0a7790: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0a7794: 804b0037 */ lb $t3,0x37($v0)
|
|
/* f0a7798: 55600014 */ bnezl $t3,.L0f0a77ec
|
|
/* f0a779c: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0a77a0: 8cb91c54 */ lw $t9,0x1c54($a1)
|
|
.L0f0a77a4:
|
|
/* f0a77a4: 8cb800c4 */ lw $t8,0xc4($a1)
|
|
/* f0a77a8: 240200ff */ addiu $v0,$zero,0xff
|
|
/* f0a77ac: 03206827 */ nor $t5,$t9,$zero
|
|
/* f0a77b0: 030d7824 */ and $t7,$t8,$t5
|
|
/* f0a77b4: 31ee0008 */ andi $t6,$t7,0x8
|
|
/* f0a77b8: 11c0000b */ beqz $t6,.L0f0a77e8
|
|
/* f0a77bc: 24050080 */ addiu $a1,$zero,0x80
|
|
/* f0a77c0: 00024e00 */ sll $t1,$v0,0x18
|
|
/* f0a77c4: 00006400 */ sll $t4,$zero,0x10
|
|
/* f0a77c8: 012c5025 */ or $t2,$t1,$t4
|
|
/* f0a77cc: 00004200 */ sll $t0,$zero,0x8
|
|
/* f0a77d0: 01485825 */ or $t3,$t2,$t0
|
|
/* f0a77d4: 00aba821 */ addu $s5,$a1,$t3
|
|
/* f0a77d8: afa200a0 */ sw $v0,0xa0($sp)
|
|
/* f0a77dc: afa000a4 */ sw $zero,0xa4($sp)
|
|
/* f0a77e0: afa000a8 */ sw $zero,0xa8($sp)
|
|
/* f0a77e4: afa500ac */ sw $a1,0xac($sp)
|
|
.L0f0a77e8:
|
|
/* f0a77e8: 8fb900ec */ lw $t9,0xec($sp)
|
|
.L0f0a77ec:
|
|
/* f0a77ec: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a77f0: 5721003d */ bnel $t9,$at,.L0f0a78e8
|
|
/* f0a77f4: 8e6f00bc */ lw $t7,0xbc($s3)
|
|
/* f0a77f8: 1000003a */ b .L0f0a78e4
|
|
/* f0a77fc: afb50140 */ sw $s5,0x140($sp)
|
|
.L0f0a7800:
|
|
/* f0a7800: 926d1614 */ lbu $t5,0x1614($s3)
|
|
.L0f0a7804:
|
|
/* f0a7804: 92781617 */ lbu $t8,0x1617($s3)
|
|
/* f0a7808: 92691615 */ lbu $t1,0x1615($s3)
|
|
/* f0a780c: 92681616 */ lbu $t0,0x1616($s3)
|
|
/* f0a7810: 000d7e00 */ sll $t7,$t5,0x18
|
|
/* f0a7814: 030f7025 */ or $t6,$t8,$t7
|
|
/* f0a7818: 00096400 */ sll $t4,$t1,0x10
|
|
/* f0a781c: 01cc5025 */ or $t2,$t6,$t4
|
|
/* f0a7820: 00085a00 */ sll $t3,$t0,0x8
|
|
/* f0a7824: 014bc825 */ or $t9,$t2,$t3
|
|
/* f0a7828: afb90140 */ sw $t9,0x140($sp)
|
|
/* f0a782c: 920d0000 */ lbu $t5,0x0($s0)
|
|
/* f0a7830: 24010006 */ addiu $at,$zero,0x6
|
|
/* f0a7834: 0320a825 */ or $s5,$t9,$zero
|
|
/* f0a7838: 15a1002a */ bne $t5,$at,.L0f0a78e4
|
|
/* f0a783c: 3c04ff00 */ lui $a0,0xff00
|
|
/* f0a7840: 3c014248 */ lui $at,0x4248
|
|
/* f0a7844: 44812000 */ mtc1 $at,$f4
|
|
/* f0a7848: c612023c */ lwc1 $f18,0x23c($s0)
|
|
/* f0a784c: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f0a7850: 3c014f00 */ lui $at,0x4f00
|
|
/* f0a7854: 46049182 */ mul.s $f6,$f18,$f4
|
|
/* f0a7858: 3484007f */ ori $a0,$a0,0x7f
|
|
/* f0a785c: 4458f800 */ cfc1 $t8,$31
|
|
/* f0a7860: 44c6f800 */ ctc1 $a2,$31
|
|
/* f0a7864: 00000000 */ nop
|
|
/* f0a7868: 46003224 */ cvt.w.s $f8,$f6
|
|
/* f0a786c: 4446f800 */ cfc1 $a2,$31
|
|
/* f0a7870: 00000000 */ nop
|
|
/* f0a7874: 30c60078 */ andi $a2,$a2,0x78
|
|
/* f0a7878: 50c00013 */ beqzl $a2,.L0f0a78c8
|
|
/* f0a787c: 44064000 */ mfc1 $a2,$f8
|
|
/* f0a7880: 44814000 */ mtc1 $at,$f8
|
|
/* f0a7884: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f0a7888: 46083201 */ sub.s $f8,$f6,$f8
|
|
/* f0a788c: 44c6f800 */ ctc1 $a2,$31
|
|
/* f0a7890: 00000000 */ nop
|
|
/* f0a7894: 46004224 */ cvt.w.s $f8,$f8
|
|
/* f0a7898: 4446f800 */ cfc1 $a2,$31
|
|
/* f0a789c: 00000000 */ nop
|
|
/* f0a78a0: 30c60078 */ andi $a2,$a2,0x78
|
|
/* f0a78a4: 14c00005 */ bnez $a2,.L0f0a78bc
|
|
/* f0a78a8: 00000000 */ nop
|
|
/* f0a78ac: 44064000 */ mfc1 $a2,$f8
|
|
/* f0a78b0: 3c018000 */ lui $at,0x8000
|
|
/* f0a78b4: 10000007 */ b .L0f0a78d4
|
|
/* f0a78b8: 00c13025 */ or $a2,$a2,$at
|
|
.L0f0a78bc:
|
|
/* f0a78bc: 10000005 */ b .L0f0a78d4
|
|
/* f0a78c0: 2406ffff */ addiu $a2,$zero,-1
|
|
/* f0a78c4: 44064000 */ mfc1 $a2,$f8
|
|
.L0f0a78c8:
|
|
/* f0a78c8: 00000000 */ nop
|
|
/* f0a78cc: 04c0fffb */ bltz $a2,.L0f0a78bc
|
|
/* f0a78d0: 00000000 */ nop
|
|
.L0f0a78d4:
|
|
/* f0a78d4: 44d8f800 */ ctc1 $t8,$31
|
|
/* f0a78d8: 0fc01a40 */ jal colourBlend
|
|
/* f0a78dc: 03202825 */ or $a1,$t9,$zero
|
|
/* f0a78e0: afa20140 */ sw $v0,0x140($sp)
|
|
.L0f0a78e4:
|
|
/* f0a78e4: 8e6f00bc */ lw $t7,0xbc($s3)
|
|
.L0f0a78e8:
|
|
/* f0a78e8: 0fc08af9 */ jal chrGetCloakAlpha
|
|
/* f0a78ec: 8de40004 */ lw $a0,0x4($t7)
|
|
/* f0a78f0: 284100ff */ slti $at,$v0,0xff
|
|
/* f0a78f4: 1020000f */ beqz $at,.L0f0a7934
|
|
/* f0a78f8: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0a78fc: 44825000 */ mtc1 $v0,$f10
|
|
/* f0a7900: 3c017f1b */ lui $at,%hi(var7f1aca90)
|
|
/* f0a7904: c432ca90 */ lwc1 $f18,%lo(var7f1aca90)($at)
|
|
/* f0a7908: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f0a790c: 8fa40140 */ lw $a0,0x140($sp)
|
|
/* f0a7910: 240e0005 */ addiu $t6,$zero,0x5
|
|
/* f0a7914: afae013c */ sw $t6,0x13c($sp)
|
|
/* f0a7918: afa40144 */ sw $a0,0x144($sp)
|
|
/* f0a791c: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0a7920: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0a7924: 44033000 */ mfc1 $v1,$f6
|
|
/* f0a7928: 00000000 */ nop
|
|
/* f0a792c: 24750041 */ addiu $s5,$v1,0x41
|
|
/* f0a7930: afb50140 */ sw $s5,0x140($sp)
|
|
.L0f0a7934:
|
|
/* f0a7934: 0c0059d8 */ jal mtx00016760
|
|
/* f0a7938: afac0110 */ sw $t4,0x110($sp)
|
|
/* f0a793c: 8e020218 */ lw $v0,0x218($s0)
|
|
/* f0a7940: 50400017 */ beqzl $v0,.L0f0a79a0
|
|
/* f0a7944: 8fa400ec */ lw $a0,0xec($sp)
|
|
/* f0a7948: 8c460018 */ lw $a2,0x18($v0)
|
|
/* f0a794c: afa00094 */ sw $zero,0x94($sp)
|
|
/* f0a7950: 50c00013 */ beqzl $a2,.L0f0a79a0
|
|
/* f0a7954: 8fa400ec */ lw $a0,0xec($sp)
|
|
/* f0a7958: 8cc80008 */ lw $t0,0x8($a2)
|
|
/* f0a795c: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f0a7960: 27a4010c */ addiu $a0,$sp,0x10c
|
|
/* f0a7964: 1100000d */ beqz $t0,.L0f0a799c
|
|
/* f0a7968: 00c02825 */ or $a1,$a2,$zero
|
|
/* f0a796c: afaa0094 */ sw $t2,0x94($sp)
|
|
/* f0a7970: 0c0087bd */ jal modelRender
|
|
/* f0a7974: afa60098 */ sw $a2,0x98($sp)
|
|
/* f0a7978: 8fa60098 */ lw $a2,0x98($sp)
|
|
/* f0a797c: 8ccb0008 */ lw $t3,0x8($a2)
|
|
/* f0a7980: 8cc4000c */ lw $a0,0xc($a2)
|
|
/* f0a7984: 0fc30cfc */ jal func0f0c33f0
|
|
/* f0a7988: 8565000e */ lh $a1,0xe($t3)
|
|
/* f0a798c: 8e0d021c */ lw $t5,0x21c($s0)
|
|
/* f0a7990: 51a00003 */ beqzl $t5,.L0f0a79a0
|
|
/* f0a7994: 8fa400ec */ lw $a0,0xec($sp)
|
|
/* f0a7998: ae000218 */ sw $zero,0x218($s0)
|
|
.L0f0a799c:
|
|
/* f0a799c: 8fa400ec */ lw $a0,0xec($sp)
|
|
.L0f0a79a0:
|
|
/* f0a79a0: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f0a79a4: 24050020 */ addiu $a1,$zero,0x20
|
|
/* f0a79a8: 1040000e */ beqz $v0,.L0f0a79e4
|
|
/* f0a79ac: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a79b0: 8fb80118 */ lw $t8,0x118($sp)
|
|
/* f0a79b4: 3c0fb600 */ lui $t7,0xb600
|
|
/* f0a79b8: 24093000 */ addiu $t1,$zero,0x3000
|
|
/* f0a79bc: 27190008 */ addiu $t9,$t8,0x8
|
|
/* f0a79c0: afb90118 */ sw $t9,0x118($sp)
|
|
/* f0a79c4: af090004 */ sw $t1,0x4($t8)
|
|
/* f0a79c8: 16800004 */ bnez $s4,.L0f0a79dc
|
|
/* f0a79cc: af0f0000 */ sw $t7,0x0($t8)
|
|
/* f0a79d0: 240e0003 */ addiu $t6,$zero,0x3
|
|
/* f0a79d4: 10000003 */ b .L0f0a79e4
|
|
/* f0a79d8: afae0148 */ sw $t6,0x148($sp)
|
|
.L0f0a79dc:
|
|
/* f0a79dc: 240c0002 */ addiu $t4,$zero,0x2
|
|
/* f0a79e0: afac0148 */ sw $t4,0x148($sp)
|
|
.L0f0a79e4:
|
|
/* f0a79e4: 8e28006c */ lw $t0,0x6c($s1)
|
|
/* f0a79e8: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a79ec: 00002025 */ or $a0,$zero,$zero
|
|
/* f0a79f0: 11000003 */ beqz $t0,.L0f0a7a00
|
|
/* f0a79f4: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a79f8: 10000001 */ b .L0f0a7a00
|
|
/* f0a79fc: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f0a7a00:
|
|
/* f0a7a00: 8e2a0068 */ lw $t2,0x68($s1)
|
|
/* f0a7a04: 00001825 */ or $v1,$zero,$zero
|
|
/* f0a7a08: 11400003 */ beqz $t2,.L0f0a7a18
|
|
/* f0a7a0c: 00000000 */ nop
|
|
/* f0a7a10: 10000001 */ b .L0f0a7a18
|
|
/* f0a7a14: 24040001 */ addiu $a0,$zero,0x1
|
|
.L0f0a7a18:
|
|
/* f0a7a18: 8e2b0064 */ lw $t3,0x64($s1)
|
|
/* f0a7a1c: 11600003 */ beqz $t3,.L0f0a7a2c
|
|
/* f0a7a20: 00000000 */ nop
|
|
/* f0a7a24: 10000001 */ b .L0f0a7a2c
|
|
/* f0a7a28: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a7a2c:
|
|
/* f0a7a2c: 8e2d0070 */ lw $t5,0x70($s1)
|
|
/* f0a7a30: 11a00003 */ beqz $t5,.L0f0a7a40
|
|
/* f0a7a34: 00000000 */ nop
|
|
/* f0a7a38: 10000001 */ b .L0f0a7a40
|
|
/* f0a7a3c: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f0a7a40:
|
|
/* f0a7a40: 0062c021 */ addu $t8,$v1,$v0
|
|
/* f0a7a44: 0304c821 */ addu $t9,$t8,$a0
|
|
/* f0a7a48: 03257821 */ addu $t7,$t9,$a1
|
|
/* f0a7a4c: 15e10036 */ bne $t7,$at,.L0f0a7b28
|
|
/* f0a7a50: 24050041 */ addiu $a1,$zero,0x41
|
|
/* f0a7a54: 0c006a47 */ jal modelGetPart
|
|
/* f0a7a58: 8e04038c */ lw $a0,0x38c($s0)
|
|
/* f0a7a5c: 50400033 */ beqzl $v0,.L0f0a7b2c
|
|
/* f0a7a60: 27a4010c */ addiu $a0,$sp,0x10c
|
|
/* f0a7a64: 8c440004 */ lw $a0,0x4($v0)
|
|
/* f0a7a68: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a7a6c: 84890010 */ lh $t1,0x10($a0)
|
|
/* f0a7a70: 5920002e */ blezl $t1,.L0f0a7b2c
|
|
/* f0a7a74: 27a4010c */ addiu $a0,$sp,0x10c
|
|
/* f0a7a78: 8e2a0034 */ lw $t2,0x34($s1)
|
|
.L0f0a7a7c:
|
|
/* f0a7a7c: 8c8e000c */ lw $t6,0xc($a0)
|
|
/* f0a7a80: 00056080 */ sll $t4,$a1,0x2
|
|
/* f0a7a84: 01520019 */ multu $t2,$s2
|
|
/* f0a7a88: 01856023 */ subu $t4,$t4,$a1
|
|
/* f0a7a8c: 000c6080 */ sll $t4,$t4,0x2
|
|
/* f0a7a90: 01cc1021 */ addu $v0,$t6,$t4
|
|
/* f0a7a94: 8448000a */ lh $t0,0xa($v0)
|
|
/* f0a7a98: 0005c880 */ sll $t9,$a1,0x2
|
|
/* f0a7a9c: 0325c823 */ subu $t9,$t9,$a1
|
|
/* f0a7aa0: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f0a7aa4: 24420002 */ addiu $v0,$v0,0x2
|
|
/* f0a7aa8: 00005812 */ mflo $t3
|
|
/* f0a7aac: 010b6823 */ subu $t5,$t0,$t3
|
|
/* f0a7ab0: a44d0008 */ sh $t5,0x8($v0)
|
|
/* f0a7ab4: 8c98000c */ lw $t8,0xc($a0)
|
|
/* f0a7ab8: 03197821 */ addu $t7,$t8,$t9
|
|
/* f0a7abc: 85e9000a */ lh $t1,0xa($t7)
|
|
/* f0a7ac0: 2921a000 */ slti $at,$t1,-24576
|
|
/* f0a7ac4: 50200014 */ beqzl $at,.L0f0a7b18
|
|
/* f0a7ac8: 84980010 */ lh $t8,0x10($a0)
|
|
/* f0a7acc: 848e0010 */ lh $t6,0x10($a0)
|
|
/* f0a7ad0: 00001825 */ or $v1,$zero,$zero
|
|
/* f0a7ad4: 59c00010 */ blezl $t6,.L0f0a7b18
|
|
/* f0a7ad8: 84980010 */ lh $t8,0x10($a0)
|
|
/* f0a7adc: 8c8c000c */ lw $t4,0xc($a0)
|
|
.L0f0a7ae0:
|
|
/* f0a7ae0: 00035080 */ sll $t2,$v1,0x2
|
|
/* f0a7ae4: 01435023 */ subu $t2,$t2,$v1
|
|
/* f0a7ae8: 000a5080 */ sll $t2,$t2,0x2
|
|
/* f0a7aec: 018a1021 */ addu $v0,$t4,$t2
|
|
/* f0a7af0: 8448000a */ lh $t0,0xa($v0)
|
|
/* f0a7af4: 24630001 */ addiu $v1,$v1,0x1
|
|
/* f0a7af8: 24420002 */ addiu $v0,$v0,0x2
|
|
/* f0a7afc: 250b2000 */ addiu $t3,$t0,0x2000
|
|
/* f0a7b00: a44b0008 */ sh $t3,0x8($v0)
|
|
/* f0a7b04: 848d0010 */ lh $t5,0x10($a0)
|
|
/* f0a7b08: 006d082a */ slt $at,$v1,$t5
|
|
/* f0a7b0c: 5420fff4 */ bnezl $at,.L0f0a7ae0
|
|
/* f0a7b10: 8c8c000c */ lw $t4,0xc($a0)
|
|
/* f0a7b14: 84980010 */ lh $t8,0x10($a0)
|
|
.L0f0a7b18:
|
|
/* f0a7b18: 24a50001 */ addiu $a1,$a1,0x1
|
|
/* f0a7b1c: 00b8082a */ slt $at,$a1,$t8
|
|
/* f0a7b20: 5420ffd6 */ bnezl $at,.L0f0a7a7c
|
|
/* f0a7b24: 8e2a0034 */ lw $t2,0x34($s1)
|
|
.L0f0a7b28:
|
|
/* f0a7b28: 27a4010c */ addiu $a0,$sp,0x10c
|
|
.L0f0a7b2c:
|
|
/* f0a7b2c: 0c0087bd */ jal modelRender
|
|
/* f0a7b30: 8fa5003c */ lw $a1,0x3c($sp)
|
|
/* f0a7b34: 8e791594 */ lw $t9,0x1594($s3)
|
|
/* f0a7b38: 3c0f8007 */ lui $t7,%hi(var800702dc)
|
|
/* f0a7b3c: 53200013 */ beqzl $t9,.L0f0a7b8c
|
|
/* f0a7b40: 8fac0118 */ lw $t4,0x118($sp)
|
|
/* f0a7b44: 8def02dc */ lw $t7,%lo(var800702dc)($t7)
|
|
/* f0a7b48: 8fa90140 */ lw $t1,0x140($sp)
|
|
/* f0a7b4c: 51e0000f */ beqzl $t7,.L0f0a7b8c
|
|
/* f0a7b50: 8fac0118 */ lw $t4,0x118($sp)
|
|
/* f0a7b54: afa9007c */ sw $t1,0x7c($sp)
|
|
/* f0a7b58: 8e0e0390 */ lw $t6,0x390($s0)
|
|
/* f0a7b5c: 26050534 */ addiu $a1,$s0,0x534
|
|
/* f0a7b60: 00a02025 */ or $a0,$a1,$zero
|
|
/* f0a7b64: ae0e0540 */ sw $t6,0x540($s0)
|
|
/* f0a7b68: 0c007308 */ jal model0001cc20
|
|
/* f0a7b6c: afa50054 */ sw $a1,0x54($sp)
|
|
/* f0a7b70: 8fa50054 */ lw $a1,0x54($sp)
|
|
/* f0a7b74: afb50140 */ sw $s5,0x140($sp)
|
|
/* f0a7b78: 0c0087bd */ jal modelRender
|
|
/* f0a7b7c: 27a4010c */ addiu $a0,$sp,0x10c
|
|
/* f0a7b80: 8fa4007c */ lw $a0,0x7c($sp)
|
|
/* f0a7b84: afa40140 */ sw $a0,0x140($sp)
|
|
/* f0a7b88: 8fac0118 */ lw $t4,0x118($sp)
|
|
.L0f0a7b8c:
|
|
/* f0a7b8c: 8fa400ec */ lw $a0,0xec($sp)
|
|
/* f0a7b90: 24050020 */ addiu $a1,$zero,0x20
|
|
/* f0a7b94: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f0a7b98: afac014c */ sw $t4,0x14c($sp)
|
|
/* f0a7b9c: 10400007 */ beqz $v0,.L0f0a7bbc
|
|
/* f0a7ba0: 8faa014c */ lw $t2,0x14c($sp)
|
|
/* f0a7ba4: 25480008 */ addiu $t0,$t2,0x8
|
|
/* f0a7ba8: afa8014c */ sw $t0,0x14c($sp)
|
|
/* f0a7bac: 3c0bb600 */ lui $t3,0xb600
|
|
/* f0a7bb0: 240d3000 */ addiu $t5,$zero,0x3000
|
|
/* f0a7bb4: ad4d0004 */ sw $t5,0x4($t2)
|
|
/* f0a7bb8: ad4b0000 */ sw $t3,0x0($t2)
|
|
.L0f0a7bbc:
|
|
/* f0a7bbc: 8e18038c */ lw $t8,0x38c($s0)
|
|
/* f0a7bc0: 8e040390 */ lw $a0,0x390($s0)
|
|
/* f0a7bc4: 0fc30cfc */ jal func0f0c33f0
|
|
/* f0a7bc8: 8705000e */ lh $a1,0xe($t8)
|
|
/* f0a7bcc: 0c0059e1 */ jal mtx00016784
|
|
/* f0a7bd0: 00000000 */ nop
|
|
/* f0a7bd4: 8fb9014c */ lw $t9,0x14c($sp)
|
|
/* f0a7bd8: 3c09bc00 */ lui $t1,0xbc00
|
|
/* f0a7bdc: 3529000e */ ori $t1,$t1,0xe
|
|
/* f0a7be0: 272f0008 */ addiu $t7,$t9,0x8
|
|
/* f0a7be4: afaf014c */ sw $t7,0x14c($sp)
|
|
/* f0a7be8: af290000 */ sw $t1,0x0($t9)
|
|
/* f0a7bec: 0c002adb */ jal viGetPerspScale
|
|
/* f0a7bf0: afb90074 */ sw $t9,0x74($sp)
|
|
/* f0a7bf4: 8fa30074 */ lw $v1,0x74($sp)
|
|
/* f0a7bf8: ac620004 */ sw $v0,0x4($v1)
|
|
.L0f0a7bfc:
|
|
/* f0a7bfc: 26940001 */ addiu $s4,$s4,0x1
|
|
/* f0a7c00: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0a7c04: 1681fe04 */ bne $s4,$at,.L0f0a7418
|
|
/* f0a7c08: 261007a4 */ addiu $s0,$s0,0x7a4
|
|
/* f0a7c0c: afb500e4 */ sw $s5,0xe4($sp)
|
|
/* f0a7c10: 0fc2baf8 */ jal casingsRender
|
|
/* f0a7c14: 27a4014c */ addiu $a0,$sp,0x14c
|
|
/* f0a7c18: 0fc5d8a6 */ jal mblur0f176298
|
|
/* f0a7c1c: 00000000 */ nop
|
|
/* f0a7c20: 0fc5d8ab */ jal mblur0f1762ac
|
|
/* f0a7c24: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a7c28: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a7c2c: 0c002c74 */ jal vi0000b1d0
|
|
/* f0a7c30: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a7c34: 244e0008 */ addiu $t6,$v0,0x8
|
|
/* f0a7c38: afae014c */ sw $t6,0x14c($sp)
|
|
/* f0a7c3c: 0c002f40 */ jal viGetViewLeft
|
|
/* f0a7c40: 00408825 */ or $s1,$v0,$zero
|
|
/* f0a7c44: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a7c48: 00106403 */ sra $t4,$s0,0x10
|
|
/* f0a7c4c: 0c002f44 */ jal viGetViewTop
|
|
/* f0a7c50: 01808025 */ or $s0,$t4,$zero
|
|
/* f0a7c54: 44824000 */ mtc1 $v0,$f8
|
|
/* f0a7c58: 44902000 */ mtc1 $s0,$f4
|
|
/* f0a7c5c: 3c014080 */ lui $at,0x4080
|
|
/* f0a7c60: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0a7c64: 44810000 */ mtc1 $at,$f0
|
|
/* f0a7c68: 3c01ed00 */ lui $at,0xed00
|
|
/* f0a7c6c: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a7c70: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f0a7c74: 00000000 */ nop
|
|
/* f0a7c78: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a7c7c: 4600848d */ trunc.w.s $f18,$f16
|
|
/* f0a7c80: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0a7c84: 44089000 */ mfc1 $t0,$f18
|
|
/* f0a7c88: 44195000 */ mfc1 $t9,$f10
|
|
/* f0a7c8c: 310b0fff */ andi $t3,$t0,0xfff
|
|
/* f0a7c90: 01616825 */ or $t5,$t3,$at
|
|
/* f0a7c94: 332f0fff */ andi $t7,$t9,0xfff
|
|
/* f0a7c98: 000f4b00 */ sll $t1,$t7,0xc
|
|
/* f0a7c9c: 01a97025 */ or $t6,$t5,$t1
|
|
/* f0a7ca0: 0c002f22 */ jal viGetViewWidth
|
|
/* f0a7ca4: ae2e0000 */ sw $t6,0x0($s1)
|
|
/* f0a7ca8: 00029400 */ sll $s2,$v0,0x10
|
|
/* f0a7cac: 00126403 */ sra $t4,$s2,0x10
|
|
/* f0a7cb0: 0c002f40 */ jal viGetViewLeft
|
|
/* f0a7cb4: 01809025 */ or $s2,$t4,$zero
|
|
/* f0a7cb8: 0002a400 */ sll $s4,$v0,0x10
|
|
/* f0a7cbc: 00145403 */ sra $t2,$s4,0x10
|
|
/* f0a7cc0: 0c002f44 */ jal viGetViewTop
|
|
/* f0a7cc4: 0140a025 */ or $s4,$t2,$zero
|
|
/* f0a7cc8: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a7ccc: 00104403 */ sra $t0,$s0,0x10
|
|
/* f0a7cd0: 0c002f26 */ jal viGetViewHeight
|
|
/* f0a7cd4: 01008025 */ or $s0,$t0,$zero
|
|
/* f0a7cd8: 00505821 */ addu $t3,$v0,$s0
|
|
/* f0a7cdc: 448b8000 */ mtc1 $t3,$f16
|
|
/* f0a7ce0: 02926821 */ addu $t5,$s4,$s2
|
|
/* f0a7ce4: 448d5000 */ mtc1 $t5,$f10
|
|
/* f0a7ce8: 468084a0 */ cvt.s.w $f18,$f16
|
|
/* f0a7cec: 3c014080 */ lui $at,0x4080
|
|
/* f0a7cf0: 44812000 */ mtc1 $at,$f4
|
|
/* f0a7cf4: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f0a7cf8: 46049182 */ mul.s $f6,$f18,$f4
|
|
/* f0a7cfc: 44819000 */ mtc1 $at,$f18
|
|
/* f0a7d00: 00000000 */ nop
|
|
/* f0a7d04: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0a7d08: 4600320d */ trunc.w.s $f8,$f6
|
|
/* f0a7d0c: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0a7d10: 44194000 */ mfc1 $t9,$f8
|
|
/* f0a7d14: 440e3000 */ mfc1 $t6,$f6
|
|
/* f0a7d18: 332f0fff */ andi $t7,$t9,0xfff
|
|
/* f0a7d1c: 31cc0fff */ andi $t4,$t6,0xfff
|
|
/* f0a7d20: 000c5300 */ sll $t2,$t4,0xc
|
|
/* f0a7d24: 01ea4025 */ or $t0,$t7,$t2
|
|
/* f0a7d28: ae280004 */ sw $t0,0x4($s1)
|
|
/* f0a7d2c: 8fb80150 */ lw $t8,0x150($sp)
|
|
/* f0a7d30: 8fab014c */ lw $t3,0x14c($sp)
|
|
/* f0a7d34: af0b0000 */ sw $t3,0x0($t8)
|
|
/* f0a7d38: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.L0f0a7d3c:
|
|
/* f0a7d3c: 8fb0001c */ lw $s0,0x1c($sp)
|
|
/* f0a7d40: 8fb10020 */ lw $s1,0x20($sp)
|
|
/* f0a7d44: 8fb20024 */ lw $s2,0x24($sp)
|
|
/* f0a7d48: 8fb30028 */ lw $s3,0x28($sp)
|
|
/* f0a7d4c: 8fb4002c */ lw $s4,0x2c($sp)
|
|
/* f0a7d50: 8fb50030 */ lw $s5,0x30($sp)
|
|
/* f0a7d54: 03e00008 */ jr $ra
|
|
/* f0a7d58: 27bd0150 */ addiu $sp,$sp,0x150
|
|
);
|
|
#elif VERSION >= VERSION_NTSC_1_0
|
|
GLOBAL_ASM(
|
|
glabel bgunRender
|
|
.late_rodata
|
|
glabel var7f1aca8c
|
|
.word 0x3faaaaab
|
|
glabel var7f1aca90
|
|
.word 0x3f3ebebf
|
|
.text
|
|
/* f0a7138: 27bdfeb0 */ addiu $sp,$sp,-336
|
|
/* f0a713c: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f0a7140: afb50030 */ sw $s5,0x30($sp)
|
|
/* f0a7144: afb4002c */ sw $s4,0x2c($sp)
|
|
/* f0a7148: afb30028 */ sw $s3,0x28($sp)
|
|
/* f0a714c: afb20024 */ sw $s2,0x24($sp)
|
|
/* f0a7150: afb10020 */ sw $s1,0x20($sp)
|
|
/* f0a7154: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f0a7158: afa40150 */ sw $a0,0x150($sp)
|
|
/* f0a715c: 8c8f0000 */ lw $t7,0x0($a0)
|
|
/* f0a7160: 3c198007 */ lui $t9,%hi(var8007029c)
|
|
/* f0a7164: 3c11800a */ lui $s1,%hi(g_Vars)
|
|
/* f0a7168: 2739029c */ addiu $t9,$t9,%lo(var8007029c)
|
|
/* f0a716c: 26319fc0 */ addiu $s1,$s1,%lo(g_Vars)
|
|
/* f0a7170: 272a003c */ addiu $t2,$t9,0x3c
|
|
/* f0a7174: 27b8010c */ addiu $t8,$sp,0x10c
|
|
/* f0a7178: afaf014c */ sw $t7,0x14c($sp)
|
|
.L0f0a717c:
|
|
/* f0a717c: 8f210000 */ lw $at,0x0($t9)
|
|
/* f0a7180: 2739000c */ addiu $t9,$t9,0xc
|
|
/* f0a7184: 2718000c */ addiu $t8,$t8,0xc
|
|
/* f0a7188: af01fff4 */ sw $at,-0xc($t8)
|
|
/* f0a718c: 8f21fff8 */ lw $at,-0x8($t9)
|
|
/* f0a7190: af01fff8 */ sw $at,-0x8($t8)
|
|
/* f0a7194: 8f21fffc */ lw $at,-0x4($t9)
|
|
/* f0a7198: 172afff8 */ bne $t9,$t2,.L0f0a717c
|
|
/* f0a719c: af01fffc */ sw $at,-0x4($t8)
|
|
/* f0a71a0: 8f210000 */ lw $at,0x0($t9)
|
|
/* f0a71a4: af010000 */ sw $at,0x0($t8)
|
|
/* f0a71a8: 8e330284 */ lw $s3,0x284($s1)
|
|
/* f0a71ac: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a71b0: 966b0010 */ lhu $t3,0x10($s3)
|
|
/* f0a71b4: 1561000d */ bne $t3,$at,.L0f0a71ec
|
|
/* f0a71b8: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a71bc: 24040f48 */ addiu $a0,$zero,0xf48
|
|
/* f0a71c0: 8e2c0284 */ lw $t4,0x284($s1)
|
|
.L0f0a71c4:
|
|
/* f0a71c4: 01821821 */ addu $v1,$t4,$v0
|
|
/* f0a71c8: 8c6d0854 */ lw $t5,0x854($v1)
|
|
/* f0a71cc: 244207a4 */ addiu $v0,$v0,0x7a4
|
|
/* f0a71d0: 11a00002 */ beqz $t5,.L0f0a71dc
|
|
/* f0a71d4: 00000000 */ nop
|
|
/* f0a71d8: ac600850 */ sw $zero,0x850($v1)
|
|
.L0f0a71dc:
|
|
/* f0a71dc: 5444fff9 */ bnel $v0,$a0,.L0f0a71c4
|
|
/* f0a71e0: 8e2c0284 */ lw $t4,0x284($s1)
|
|
/* f0a71e4: 100002d5 */ b .L0f0a7d3c
|
|
/* f0a71e8: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.L0f0a71ec:
|
|
/* f0a71ec: 0fc5d9ad */ jal mblurRender
|
|
/* f0a71f0: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a71f4: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a71f8: 0c002ca0 */ jal vi0000b280
|
|
/* f0a71fc: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a7200: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a7204: 0c002c74 */ jal vi0000b1d0
|
|
/* f0a7208: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a720c: 244e0008 */ addiu $t6,$v0,0x8
|
|
/* f0a7210: afae014c */ sw $t6,0x14c($sp)
|
|
/* f0a7214: 0c002f40 */ jal viGetViewLeft
|
|
/* f0a7218: 0040a825 */ or $s5,$v0,$zero
|
|
/* f0a721c: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a7220: 00107c03 */ sra $t7,$s0,0x10
|
|
/* f0a7224: 0c002f44 */ jal viGetViewTop
|
|
/* f0a7228: 01e08025 */ or $s0,$t7,$zero
|
|
/* f0a722c: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a7230: 44908000 */ mtc1 $s0,$f16
|
|
/* f0a7234: 3c014080 */ lui $at,0x4080
|
|
/* f0a7238: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a723c: 44810000 */ mtc1 $at,$f0
|
|
/* f0a7240: 3c01ed00 */ lui $at,0xed00
|
|
/* f0a7244: 468084a0 */ cvt.s.w $f18,$f16
|
|
/* f0a7248: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a724c: 00000000 */ nop
|
|
/* f0a7250: 46009102 */ mul.s $f4,$f18,$f0
|
|
/* f0a7254: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0a7258: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0a725c: 44085000 */ mfc1 $t0,$f10
|
|
/* f0a7260: 440b3000 */ mfc1 $t3,$f6
|
|
/* f0a7264: 310a0fff */ andi $t2,$t0,0xfff
|
|
/* f0a7268: 0141c825 */ or $t9,$t2,$at
|
|
/* f0a726c: 316c0fff */ andi $t4,$t3,0xfff
|
|
/* f0a7270: 000c6b00 */ sll $t5,$t4,0xc
|
|
/* f0a7274: 032d7025 */ or $t6,$t9,$t5
|
|
/* f0a7278: 0c002f22 */ jal viGetViewWidth
|
|
/* f0a727c: aeae0000 */ sw $t6,0x0($s5)
|
|
/* f0a7280: 00029400 */ sll $s2,$v0,0x10
|
|
/* f0a7284: 00127c03 */ sra $t7,$s2,0x10
|
|
/* f0a7288: 0c002f40 */ jal viGetViewLeft
|
|
/* f0a728c: 01e09025 */ or $s2,$t7,$zero
|
|
/* f0a7290: 0002a400 */ sll $s4,$v0,0x10
|
|
/* f0a7294: 00144c03 */ sra $t1,$s4,0x10
|
|
/* f0a7298: 0c002f44 */ jal viGetViewTop
|
|
/* f0a729c: 0120a025 */ or $s4,$t1,$zero
|
|
/* f0a72a0: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a72a4: 00104403 */ sra $t0,$s0,0x10
|
|
/* f0a72a8: 0c002f26 */ jal viGetViewHeight
|
|
/* f0a72ac: 01008025 */ or $s0,$t0,$zero
|
|
/* f0a72b0: 00505021 */ addu $t2,$v0,$s0
|
|
/* f0a72b4: 448a4000 */ mtc1 $t2,$f8
|
|
/* f0a72b8: 0292c821 */ addu $t9,$s4,$s2
|
|
/* f0a72bc: 44992000 */ mtc1 $t9,$f4
|
|
/* f0a72c0: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0a72c4: 3c014080 */ lui $at,0x4080
|
|
/* f0a72c8: 44810000 */ mtc1 $at,$f0
|
|
/* f0a72cc: 3c053fc0 */ lui $a1,0x3fc0
|
|
/* f0a72d0: 3c06447a */ lui $a2,0x447a
|
|
/* f0a72d4: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a72d8: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f0a72dc: 00000000 */ nop
|
|
/* f0a72e0: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a72e4: 4600848d */ trunc.w.s $f18,$f16
|
|
/* f0a72e8: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0a72ec: 440b9000 */ mfc1 $t3,$f18
|
|
/* f0a72f0: 440e5000 */ mfc1 $t6,$f10
|
|
/* f0a72f4: 316c0fff */ andi $t4,$t3,0xfff
|
|
/* f0a72f8: 31cf0fff */ andi $t7,$t6,0xfff
|
|
/* f0a72fc: 000f4b00 */ sll $t1,$t7,0xc
|
|
/* f0a7300: 01894025 */ or $t0,$t4,$t1
|
|
/* f0a7304: aea80004 */ sw $t0,0x4($s5)
|
|
/* f0a7308: 0c002b29 */ jal vi0000aca4
|
|
/* f0a730c: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a7310: 8e2a0284 */ lw $t2,0x284($s1)
|
|
/* f0a7314: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a7318: 91581bfc */ lbu $t8,0x1bfc($t2)
|
|
/* f0a731c: 53000016 */ beqzl $t8,.L0f0a7378
|
|
/* f0a7320: 8e2b006c */ lw $t3,0x6c($s1)
|
|
/* f0a7324: 0fc54bc7 */ jal optionsGetScreenRatio
|
|
/* f0a7328: 00000000 */ nop
|
|
/* f0a732c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a7330: 14410008 */ bne $v0,$at,.L0f0a7354
|
|
/* f0a7334: 00000000 */ nop
|
|
/* f0a7338: 0fc2f4d6 */ jal player0f0bd358
|
|
/* f0a733c: 00000000 */ nop
|
|
/* f0a7340: 3c017f1b */ lui $at,%hi(var7f1aca8c)
|
|
/* f0a7344: c430ca8c */ lwc1 $f16,%lo(var7f1aca8c)($at)
|
|
/* f0a7348: 46100082 */ mul.s $f2,$f0,$f16
|
|
/* f0a734c: 10000005 */ b .L0f0a7364
|
|
/* f0a7350: 44061000 */ mfc1 $a2,$f2
|
|
.L0f0a7354:
|
|
/* f0a7354: 0fc2f4d6 */ jal player0f0bd358
|
|
/* f0a7358: 00000000 */ nop
|
|
/* f0a735c: 46000086 */ mov.s $f2,$f0
|
|
/* f0a7360: 44061000 */ mfc1 $a2,$f2
|
|
.L0f0a7364:
|
|
/* f0a7364: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a7368: 0c002c3a */ jal vi0000b0e8
|
|
/* f0a736c: 3c054270 */ lui $a1,0x4270
|
|
/* f0a7370: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a7374: 8e2b006c */ lw $t3,0x6c($s1)
|
|
.L0f0a7378:
|
|
/* f0a7378: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a737c: 51600004 */ beqzl $t3,.L0f0a7390
|
|
/* f0a7380: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a7384: 10000002 */ b .L0f0a7390
|
|
/* f0a7388: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f0a738c: 00002825 */ or $a1,$zero,$zero
|
|
.L0f0a7390:
|
|
/* f0a7390: 8e390068 */ lw $t9,0x68($s1)
|
|
/* f0a7394: 53200004 */ beqzl $t9,.L0f0a73a8
|
|
/* f0a7398: 00002025 */ or $a0,$zero,$zero
|
|
/* f0a739c: 10000002 */ b .L0f0a73a8
|
|
/* f0a73a0: 24040001 */ addiu $a0,$zero,0x1
|
|
/* f0a73a4: 00002025 */ or $a0,$zero,$zero
|
|
.L0f0a73a8:
|
|
/* f0a73a8: 8e2d0064 */ lw $t5,0x64($s1)
|
|
/* f0a73ac: 51a00004 */ beqzl $t5,.L0f0a73c0
|
|
/* f0a73b0: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a73b4: 10000002 */ b .L0f0a73c0
|
|
/* f0a73b8: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0a73bc: 00001025 */ or $v0,$zero,$zero
|
|
.L0f0a73c0:
|
|
/* f0a73c0: 8e2e0070 */ lw $t6,0x70($s1)
|
|
/* f0a73c4: 51c00004 */ beqzl $t6,.L0f0a73d8
|
|
/* f0a73c8: 00001825 */ or $v1,$zero,$zero
|
|
/* f0a73cc: 10000002 */ b .L0f0a73d8
|
|
/* f0a73d0: 24030001 */ addiu $v1,$zero,0x1
|
|
/* f0a73d4: 00001825 */ or $v1,$zero,$zero
|
|
.L0f0a73d8:
|
|
/* f0a73d8: 00627821 */ addu $t7,$v1,$v0
|
|
/* f0a73dc: 01e46021 */ addu $t4,$t7,$a0
|
|
/* f0a73e0: 01854821 */ addu $t1,$t4,$a1
|
|
/* f0a73e4: 15210008 */ bne $t1,$at,.L0f0a7408
|
|
/* f0a73e8: 3c088009 */ lui $t0,%hi(g_Is4Mb)
|
|
/* f0a73ec: 91080af0 */ lbu $t0,%lo(g_Is4Mb)($t0)
|
|
/* f0a73f0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a73f4: 51010005 */ beql $t0,$at,.L0f0a740c
|
|
/* f0a73f8: 0000a025 */ or $s4,$zero,$zero
|
|
/* f0a73fc: 0fc2be93 */ jal lasersightRenderBeam
|
|
/* f0a7400: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a7404: afa2014c */ sw $v0,0x14c($sp)
|
|
.L0f0a7408:
|
|
/* f0a7408: 0000a025 */ or $s4,$zero,$zero
|
|
.L0f0a740c:
|
|
/* f0a740c: 26700638 */ addiu $s0,$s3,0x638
|
|
/* f0a7410: 8fb500e4 */ lw $s5,0xe4($sp)
|
|
/* f0a7414: 24120019 */ addiu $s2,$zero,0x19
|
|
.L0f0a7418:
|
|
/* f0a7418: 0fc2867c */ jal bgunGetWeaponNum2
|
|
/* f0a741c: 02802025 */ or $a0,$s4,$zero
|
|
/* f0a7420: afa200ec */ sw $v0,0xec($sp)
|
|
/* f0a7424: 820a0007 */ lb $t2,0x7($s0)
|
|
/* f0a7428: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a742c: 260501dc */ addiu $a1,$s0,0x1dc
|
|
/* f0a7430: 114001f2 */ beqz $t2,.L0f0a7bfc
|
|
/* f0a7434: 00003025 */ or $a2,$zero,$zero
|
|
/* f0a7438: 26180384 */ addiu $t8,$s0,0x384
|
|
/* f0a743c: afb8003c */ sw $t8,0x3c($sp)
|
|
/* f0a7440: 0fc2b2e4 */ jal beamRender
|
|
/* f0a7444: 00003825 */ or $a3,$zero,$zero
|
|
/* f0a7448: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a744c: 92040000 */ lbu $a0,0x0($s0)
|
|
/* f0a7450: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f0a7454: 34058000 */ dli $a1,0x8000
|
|
/* f0a7458: 10400030 */ beqz $v0,.L0f0a751c
|
|
/* f0a745c: 8fab014c */ lw $t3,0x14c($sp)
|
|
/* f0a7460: 25790008 */ addiu $t9,$t3,0x8
|
|
/* f0a7464: afb9014c */ sw $t9,0x14c($sp)
|
|
/* f0a7468: 3c0dbc00 */ lui $t5,0xbc00
|
|
/* f0a746c: 3c0e8000 */ lui $t6,0x8000
|
|
/* f0a7470: 35ce0040 */ ori $t6,$t6,0x40
|
|
/* f0a7474: 35ad0002 */ ori $t5,$t5,0x2
|
|
/* f0a7478: ad6d0000 */ sw $t5,0x0($t3)
|
|
/* f0a747c: ad6e0004 */ sw $t6,0x4($t3)
|
|
/* f0a7480: 8faf014c */ lw $t7,0x14c($sp)
|
|
/* f0a7484: 3c090386 */ lui $t1,0x386
|
|
/* f0a7488: 3c088007 */ lui $t0,%hi(var80070098)
|
|
/* f0a748c: 25ec0008 */ addiu $t4,$t7,0x8
|
|
/* f0a7490: afac014c */ sw $t4,0x14c($sp)
|
|
/* f0a7494: 25080098 */ addiu $t0,$t0,%lo(var80070098)
|
|
/* f0a7498: 35290010 */ ori $t1,$t1,0x10
|
|
/* f0a749c: ade90000 */ sw $t1,0x0($t7)
|
|
/* f0a74a0: ade80004 */ sw $t0,0x4($t7)
|
|
/* f0a74a4: 8faa014c */ lw $t2,0x14c($sp)
|
|
/* f0a74a8: 3c0b0388 */ lui $t3,0x388
|
|
/* f0a74ac: 3c198007 */ lui $t9,%hi(var80070090)
|
|
/* f0a74b0: 25580008 */ addiu $t8,$t2,0x8
|
|
/* f0a74b4: afb8014c */ sw $t8,0x14c($sp)
|
|
/* f0a74b8: 27390090 */ addiu $t9,$t9,%lo(var80070090)
|
|
/* f0a74bc: 356b0010 */ ori $t3,$t3,0x10
|
|
/* f0a74c0: ad4b0000 */ sw $t3,0x0($t2)
|
|
/* f0a74c4: ad590004 */ sw $t9,0x4($t2)
|
|
/* f0a74c8: 8fad014c */ lw $t5,0x14c($sp)
|
|
/* f0a74cc: 3c0f0384 */ lui $t7,0x384
|
|
/* f0a74d0: 35ef0010 */ ori $t7,$t7,0x10
|
|
/* f0a74d4: 25ae0008 */ addiu $t6,$t5,0x8
|
|
/* f0a74d8: afae014c */ sw $t6,0x14c($sp)
|
|
/* f0a74dc: adaf0000 */ sw $t7,0x0($t5)
|
|
/* f0a74e0: 0fc2d5ea */ jal camGetLookAt
|
|
/* f0a74e4: afad00d4 */ sw $t5,0xd4($sp)
|
|
/* f0a74e8: 8fa500d4 */ lw $a1,0xd4($sp)
|
|
/* f0a74ec: 3c080382 */ lui $t0,0x382
|
|
/* f0a74f0: 35080010 */ ori $t0,$t0,0x10
|
|
/* f0a74f4: aca20004 */ sw $v0,0x4($a1)
|
|
/* f0a74f8: 8fac014c */ lw $t4,0x14c($sp)
|
|
/* f0a74fc: 25890008 */ addiu $t1,$t4,0x8
|
|
/* f0a7500: afa9014c */ sw $t1,0x14c($sp)
|
|
/* f0a7504: ad880000 */ sw $t0,0x0($t4)
|
|
/* f0a7508: 0fc2d5ea */ jal camGetLookAt
|
|
/* f0a750c: afac00d0 */ sw $t4,0xd0($sp)
|
|
/* f0a7510: 8fa300d0 */ lw $v1,0xd0($sp)
|
|
/* f0a7514: 244a0010 */ addiu $t2,$v0,0x10
|
|
/* f0a7518: ac6a0004 */ sw $t2,0x4($v1)
|
|
.L0f0a751c:
|
|
/* f0a751c: 8fb8014c */ lw $t8,0x14c($sp)
|
|
/* f0a7520: 3c19bc00 */ lui $t9,0xbc00
|
|
/* f0a7524: 3739000e */ ori $t9,$t9,0xe
|
|
/* f0a7528: 270b0008 */ addiu $t3,$t8,0x8
|
|
/* f0a752c: afab014c */ sw $t3,0x14c($sp)
|
|
/* f0a7530: 3c014396 */ lui $at,0x4396
|
|
/* f0a7534: 44817000 */ mtc1 $at,$f14
|
|
/* f0a7538: 44806000 */ mtc1 $zero,$f12
|
|
/* f0a753c: af190000 */ sw $t9,0x0($t8)
|
|
/* f0a7540: 0c005b73 */ jal mtx00016dcc
|
|
/* f0a7544: afb800cc */ sw $t8,0xcc($sp)
|
|
/* f0a7548: 8fa300cc */ lw $v1,0xcc($sp)
|
|
/* f0a754c: 24050010 */ addiu $a1,$zero,0x10
|
|
/* f0a7550: ac620004 */ sw $v0,0x4($v1)
|
|
/* f0a7554: 0c006a47 */ jal modelGetPart
|
|
/* f0a7558: 8e04038c */ lw $a0,0x38c($s0)
|
|
/* f0a755c: 10400014 */ beqz $v0,.L0f0a75b0
|
|
/* f0a7560: afa200e8 */ sw $v0,0xe8($sp)
|
|
/* f0a7564: 8e04038c */ lw $a0,0x38c($s0)
|
|
/* f0a7568: 0c006a47 */ jal modelGetPart
|
|
/* f0a756c: 24050011 */ addiu $a1,$zero,0x11
|
|
/* f0a7570: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f0a7574: 0c006a87 */ jal modelGetNodeRwData
|
|
/* f0a7578: 00402825 */ or $a1,$v0,$zero
|
|
/* f0a757c: 10400003 */ beqz $v0,.L0f0a758c
|
|
/* f0a7580: 3c06800a */ lui $a2,%hi(var8009cf88)
|
|
/* f0a7584: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f0a7588: ac4d0000 */ sw $t5,0x0($v0)
|
|
.L0f0a758c:
|
|
/* f0a758c: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0a7590: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0a7594: 8fa4003c */ lw $a0,0x3c($sp)
|
|
/* f0a7598: 8fa500e8 */ lw $a1,0xe8($sp)
|
|
/* f0a759c: 24c6cf88 */ addiu $a2,$a2,%lo(var8009cf88)
|
|
/* f0a75a0: 8fa7014c */ lw $a3,0x14c($sp)
|
|
/* f0a75a4: 0fc1fefe */ jal tvscreenRender
|
|
/* f0a75a8: afa00010 */ sw $zero,0x10($sp)
|
|
/* f0a75ac: afa2014c */ sw $v0,0x14c($sp)
|
|
.L0f0a75b0:
|
|
/* f0a75b0: 8faf014c */ lw $t7,0x14c($sp)
|
|
/* f0a75b4: 8e250284 */ lw $a1,0x284($s1)
|
|
/* f0a75b8: 240c0004 */ addiu $t4,$zero,0x4
|
|
/* f0a75bc: afac013c */ sw $t4,0x13c($sp)
|
|
/* f0a75c0: afaf0118 */ sw $t7,0x118($sp)
|
|
/* f0a75c4: 8ca300d8 */ lw $v1,0xd8($a1)
|
|
/* f0a75c8: 3c078007 */ lui $a3,%hi(g_InCutscene)
|
|
/* f0a75cc: 14600013 */ bnez $v1,.L0f0a761c
|
|
/* f0a75d0: 00000000 */ nop
|
|
/* f0a75d4: 8ce70764 */ lw $a3,%lo(g_InCutscene)($a3)
|
|
/* f0a75d8: 14e00010 */ bnez $a3,.L0f0a761c
|
|
/* f0a75dc: 00000000 */ nop
|
|
/* f0a75e0: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a75e4: 50400007 */ beqzl $v0,.L0f0a7604
|
|
/* f0a75e8: 8caa1c54 */ lw $t2,0x1c54($a1)
|
|
/* f0a75ec: 1040000b */ beqz $v0,.L0f0a761c
|
|
/* f0a75f0: 00000000 */ nop
|
|
/* f0a75f4: 80490037 */ lb $t1,0x37($v0)
|
|
/* f0a75f8: 15200008 */ bnez $t1,.L0f0a761c
|
|
/* f0a75fc: 00000000 */ nop
|
|
/* f0a7600: 8caa1c54 */ lw $t2,0x1c54($a1)
|
|
.L0f0a7604:
|
|
/* f0a7604: 8ca800c4 */ lw $t0,0xc4($a1)
|
|
/* f0a7608: 0140c027 */ nor $t8,$t2,$zero
|
|
/* f0a760c: 01185824 */ and $t3,$t0,$t8
|
|
/* f0a7610: 31790001 */ andi $t9,$t3,0x1
|
|
/* f0a7614: 57200016 */ bnezl $t9,.L0f0a7670
|
|
/* f0a7618: 92681615 */ lbu $t0,0x1615($s3)
|
|
.L0f0a761c:
|
|
/* f0a761c: 14600078 */ bnez $v1,.L0f0a7800
|
|
/* f0a7620: 3c078007 */ lui $a3,%hi(g_InCutscene)
|
|
/* f0a7624: 8ce70764 */ lw $a3,%lo(g_InCutscene)($a3)
|
|
/* f0a7628: 54e00076 */ bnezl $a3,.L0f0a7804
|
|
/* f0a762c: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a7630: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a7634: 50400007 */ beqzl $v0,.L0f0a7654
|
|
/* f0a7638: 8caf1c54 */ lw $t7,0x1c54($a1)
|
|
/* f0a763c: 50400071 */ beqzl $v0,.L0f0a7804
|
|
/* f0a7640: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a7644: 804d0037 */ lb $t5,0x37($v0)
|
|
/* f0a7648: 55a0006e */ bnezl $t5,.L0f0a7804
|
|
/* f0a764c: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a7650: 8caf1c54 */ lw $t7,0x1c54($a1)
|
|
.L0f0a7654:
|
|
/* f0a7654: 8cae00c4 */ lw $t6,0xc4($a1)
|
|
/* f0a7658: 01e06027 */ nor $t4,$t7,$zero
|
|
/* f0a765c: 01cc4824 */ and $t1,$t6,$t4
|
|
/* f0a7660: 312a0008 */ andi $t2,$t1,0x8
|
|
/* f0a7664: 51400067 */ beqzl $t2,.L0f0a7804
|
|
/* f0a7668: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a766c: 92681615 */ lbu $t0,0x1615($s3)
|
|
.L0f0a7670:
|
|
/* f0a7670: 92781614 */ lbu $t8,0x1614($s3)
|
|
/* f0a7674: 26641614 */ addiu $a0,$s3,0x1614
|
|
/* f0a7678: 0118082a */ slt $at,$t0,$t8
|
|
/* f0a767c: 50200009 */ beqzl $at,.L0f0a76a4
|
|
/* f0a7680: 90820002 */ lbu $v0,0x2($a0)
|
|
/* f0a7684: 90830000 */ lbu $v1,0x0($a0)
|
|
/* f0a7688: 908b0002 */ lbu $t3,0x2($a0)
|
|
/* f0a768c: 0163082a */ slt $at,$t3,$v1
|
|
/* f0a7690: 50200004 */ beqzl $at,.L0f0a76a4
|
|
/* f0a7694: 90820002 */ lbu $v0,0x2($a0)
|
|
/* f0a7698: 1000000a */ b .L0f0a76c4
|
|
/* f0a769c: 00601025 */ or $v0,$v1,$zero
|
|
/* f0a76a0: 90820002 */ lbu $v0,0x2($a0)
|
|
.L0f0a76a4:
|
|
/* f0a76a4: 90860001 */ lbu $a2,0x1($a0)
|
|
/* f0a76a8: 00401825 */ or $v1,$v0,$zero
|
|
/* f0a76ac: 0046082a */ slt $at,$v0,$a2
|
|
/* f0a76b0: 10200003 */ beqz $at,.L0f0a76c0
|
|
/* f0a76b4: 00000000 */ nop
|
|
/* f0a76b8: 10000001 */ b .L0f0a76c0
|
|
/* f0a76bc: 00c01825 */ or $v1,$a2,$zero
|
|
.L0f0a76c0:
|
|
/* f0a76c0: 00601025 */ or $v0,$v1,$zero
|
|
.L0f0a76c4:
|
|
/* f0a76c4: 90890003 */ lbu $t1,0x3($a0)
|
|
/* f0a76c8: 0002ce00 */ sll $t9,$v0,0x18
|
|
/* f0a76cc: 00026c00 */ sll $t5,$v0,0x10
|
|
/* f0a76d0: 032d7825 */ or $t7,$t9,$t5
|
|
/* f0a76d4: 00027200 */ sll $t6,$v0,0x8
|
|
/* f0a76d8: 01ee6025 */ or $t4,$t7,$t6
|
|
/* f0a76dc: 012c5021 */ addu $t2,$t1,$t4
|
|
/* f0a76e0: afaa0140 */ sw $t2,0x140($sp)
|
|
/* f0a76e4: 8ca300d8 */ lw $v1,0xd8($a1)
|
|
/* f0a76e8: 14600021 */ bnez $v1,.L0f0a7770
|
|
/* f0a76ec: 00000000 */ nop
|
|
/* f0a76f0: 14e0001f */ bnez $a3,.L0f0a7770
|
|
/* f0a76f4: 00000000 */ nop
|
|
/* f0a76f8: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a76fc: 50400007 */ beqzl $v0,.L0f0a771c
|
|
/* f0a7700: 8cab1c54 */ lw $t3,0x1c54($a1)
|
|
/* f0a7704: 1040001a */ beqz $v0,.L0f0a7770
|
|
/* f0a7708: 00000000 */ nop
|
|
/* f0a770c: 80480037 */ lb $t0,0x37($v0)
|
|
/* f0a7710: 15000017 */ bnez $t0,.L0f0a7770
|
|
/* f0a7714: 00000000 */ nop
|
|
/* f0a7718: 8cab1c54 */ lw $t3,0x1c54($a1)
|
|
.L0f0a771c:
|
|
/* f0a771c: 8cb800c4 */ lw $t8,0xc4($a1)
|
|
/* f0a7720: 3c02800a */ lui $v0,%hi(var8009caec+0x3)
|
|
/* f0a7724: 0160c827 */ nor $t9,$t3,$zero
|
|
/* f0a7728: 03196824 */ and $t5,$t8,$t9
|
|
/* f0a772c: 31af0001 */ andi $t7,$t5,0x1
|
|
/* f0a7730: 11e0000f */ beqz $t7,.L0f0a7770
|
|
/* f0a7734: 00000000 */ nop
|
|
/* f0a7738: 9042caef */ lbu $v0,%lo(var8009caec+0x3)($v0)
|
|
/* f0a773c: 3c06800a */ lui $a2,%hi(var8009caf0)
|
|
/* f0a7740: 90c6caf0 */ lbu $a2,%lo(var8009caf0)($a2)
|
|
/* f0a7744: 00027600 */ sll $t6,$v0,0x18
|
|
/* f0a7748: 00024c00 */ sll $t1,$v0,0x10
|
|
/* f0a774c: 01c96025 */ or $t4,$t6,$t1
|
|
/* f0a7750: 00025200 */ sll $t2,$v0,0x8
|
|
/* f0a7754: 018a4025 */ or $t0,$t4,$t2
|
|
/* f0a7758: afa200b0 */ sw $v0,0xb0($sp)
|
|
/* f0a775c: afa200b4 */ sw $v0,0xb4($sp)
|
|
/* f0a7760: afa200b8 */ sw $v0,0xb8($sp)
|
|
/* f0a7764: 00c8a821 */ addu $s5,$a2,$t0
|
|
/* f0a7768: 1000001f */ b .L0f0a77e8
|
|
/* f0a776c: afa600bc */ sw $a2,0xbc($sp)
|
|
.L0f0a7770:
|
|
/* f0a7770: 5460001e */ bnezl $v1,.L0f0a77ec
|
|
/* f0a7774: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0a7778: 54e0001c */ bnezl $a3,.L0f0a77ec
|
|
/* f0a777c: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0a7780: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a7784: 50400007 */ beqzl $v0,.L0f0a77a4
|
|
/* f0a7788: 8cb91c54 */ lw $t9,0x1c54($a1)
|
|
/* f0a778c: 50400017 */ beqzl $v0,.L0f0a77ec
|
|
/* f0a7790: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0a7794: 804b0037 */ lb $t3,0x37($v0)
|
|
/* f0a7798: 55600014 */ bnezl $t3,.L0f0a77ec
|
|
/* f0a779c: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0a77a0: 8cb91c54 */ lw $t9,0x1c54($a1)
|
|
.L0f0a77a4:
|
|
/* f0a77a4: 8cb800c4 */ lw $t8,0xc4($a1)
|
|
/* f0a77a8: 240200ff */ addiu $v0,$zero,0xff
|
|
/* f0a77ac: 03206827 */ nor $t5,$t9,$zero
|
|
/* f0a77b0: 030d7824 */ and $t7,$t8,$t5
|
|
/* f0a77b4: 31ee0008 */ andi $t6,$t7,0x8
|
|
/* f0a77b8: 11c0000b */ beqz $t6,.L0f0a77e8
|
|
/* f0a77bc: 24050080 */ addiu $a1,$zero,0x80
|
|
/* f0a77c0: 00024e00 */ sll $t1,$v0,0x18
|
|
/* f0a77c4: 00006400 */ sll $t4,$zero,0x10
|
|
/* f0a77c8: 012c5025 */ or $t2,$t1,$t4
|
|
/* f0a77cc: 00004200 */ sll $t0,$zero,0x8
|
|
/* f0a77d0: 01485825 */ or $t3,$t2,$t0
|
|
/* f0a77d4: 00aba821 */ addu $s5,$a1,$t3
|
|
/* f0a77d8: afa200a0 */ sw $v0,0xa0($sp)
|
|
/* f0a77dc: afa000a4 */ sw $zero,0xa4($sp)
|
|
/* f0a77e0: afa000a8 */ sw $zero,0xa8($sp)
|
|
/* f0a77e4: afa500ac */ sw $a1,0xac($sp)
|
|
.L0f0a77e8:
|
|
/* f0a77e8: 8fb900ec */ lw $t9,0xec($sp)
|
|
.L0f0a77ec:
|
|
/* f0a77ec: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a77f0: 5721003d */ bnel $t9,$at,.L0f0a78e8
|
|
/* f0a77f4: 8e6f00bc */ lw $t7,0xbc($s3)
|
|
/* f0a77f8: 1000003a */ b .L0f0a78e4
|
|
/* f0a77fc: afb50140 */ sw $s5,0x140($sp)
|
|
.L0f0a7800:
|
|
/* f0a7800: 926d1614 */ lbu $t5,0x1614($s3)
|
|
.L0f0a7804:
|
|
/* f0a7804: 92781617 */ lbu $t8,0x1617($s3)
|
|
/* f0a7808: 92691615 */ lbu $t1,0x1615($s3)
|
|
/* f0a780c: 92681616 */ lbu $t0,0x1616($s3)
|
|
/* f0a7810: 000d7e00 */ sll $t7,$t5,0x18
|
|
/* f0a7814: 030f7025 */ or $t6,$t8,$t7
|
|
/* f0a7818: 00096400 */ sll $t4,$t1,0x10
|
|
/* f0a781c: 01cc5025 */ or $t2,$t6,$t4
|
|
/* f0a7820: 00085a00 */ sll $t3,$t0,0x8
|
|
/* f0a7824: 014bc825 */ or $t9,$t2,$t3
|
|
/* f0a7828: afb90140 */ sw $t9,0x140($sp)
|
|
/* f0a782c: 920d0000 */ lbu $t5,0x0($s0)
|
|
/* f0a7830: 24010006 */ addiu $at,$zero,0x6
|
|
/* f0a7834: 0320a825 */ or $s5,$t9,$zero
|
|
/* f0a7838: 15a1002a */ bne $t5,$at,.L0f0a78e4
|
|
/* f0a783c: 3c04ff00 */ lui $a0,0xff00
|
|
/* f0a7840: 3c014248 */ lui $at,0x4248
|
|
/* f0a7844: 44812000 */ mtc1 $at,$f4
|
|
/* f0a7848: c612023c */ lwc1 $f18,0x23c($s0)
|
|
/* f0a784c: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f0a7850: 3c014f00 */ lui $at,0x4f00
|
|
/* f0a7854: 46049182 */ mul.s $f6,$f18,$f4
|
|
/* f0a7858: 3484007f */ ori $a0,$a0,0x7f
|
|
/* f0a785c: 4458f800 */ cfc1 $t8,$31
|
|
/* f0a7860: 44c6f800 */ ctc1 $a2,$31
|
|
/* f0a7864: 00000000 */ nop
|
|
/* f0a7868: 46003224 */ cvt.w.s $f8,$f6
|
|
/* f0a786c: 4446f800 */ cfc1 $a2,$31
|
|
/* f0a7870: 00000000 */ nop
|
|
/* f0a7874: 30c60078 */ andi $a2,$a2,0x78
|
|
/* f0a7878: 50c00013 */ beqzl $a2,.L0f0a78c8
|
|
/* f0a787c: 44064000 */ mfc1 $a2,$f8
|
|
/* f0a7880: 44814000 */ mtc1 $at,$f8
|
|
/* f0a7884: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f0a7888: 46083201 */ sub.s $f8,$f6,$f8
|
|
/* f0a788c: 44c6f800 */ ctc1 $a2,$31
|
|
/* f0a7890: 00000000 */ nop
|
|
/* f0a7894: 46004224 */ cvt.w.s $f8,$f8
|
|
/* f0a7898: 4446f800 */ cfc1 $a2,$31
|
|
/* f0a789c: 00000000 */ nop
|
|
/* f0a78a0: 30c60078 */ andi $a2,$a2,0x78
|
|
/* f0a78a4: 14c00005 */ bnez $a2,.L0f0a78bc
|
|
/* f0a78a8: 00000000 */ nop
|
|
/* f0a78ac: 44064000 */ mfc1 $a2,$f8
|
|
/* f0a78b0: 3c018000 */ lui $at,0x8000
|
|
/* f0a78b4: 10000007 */ b .L0f0a78d4
|
|
/* f0a78b8: 00c13025 */ or $a2,$a2,$at
|
|
.L0f0a78bc:
|
|
/* f0a78bc: 10000005 */ b .L0f0a78d4
|
|
/* f0a78c0: 2406ffff */ addiu $a2,$zero,-1
|
|
/* f0a78c4: 44064000 */ mfc1 $a2,$f8
|
|
.L0f0a78c8:
|
|
/* f0a78c8: 00000000 */ nop
|
|
/* f0a78cc: 04c0fffb */ bltz $a2,.L0f0a78bc
|
|
/* f0a78d0: 00000000 */ nop
|
|
.L0f0a78d4:
|
|
/* f0a78d4: 44d8f800 */ ctc1 $t8,$31
|
|
/* f0a78d8: 0fc01a40 */ jal colourBlend
|
|
/* f0a78dc: 03202825 */ or $a1,$t9,$zero
|
|
/* f0a78e0: afa20140 */ sw $v0,0x140($sp)
|
|
.L0f0a78e4:
|
|
/* f0a78e4: 8e6f00bc */ lw $t7,0xbc($s3)
|
|
.L0f0a78e8:
|
|
/* f0a78e8: 0fc08af9 */ jal chrGetCloakAlpha
|
|
/* f0a78ec: 8de40004 */ lw $a0,0x4($t7)
|
|
/* f0a78f0: 284100ff */ slti $at,$v0,0xff
|
|
/* f0a78f4: 1020000f */ beqz $at,.L0f0a7934
|
|
/* f0a78f8: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0a78fc: 44825000 */ mtc1 $v0,$f10
|
|
/* f0a7900: 3c017f1b */ lui $at,%hi(var7f1aca90)
|
|
/* f0a7904: c432ca90 */ lwc1 $f18,%lo(var7f1aca90)($at)
|
|
/* f0a7908: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f0a790c: 8fa40140 */ lw $a0,0x140($sp)
|
|
/* f0a7910: 240e0005 */ addiu $t6,$zero,0x5
|
|
/* f0a7914: afae013c */ sw $t6,0x13c($sp)
|
|
/* f0a7918: afa40144 */ sw $a0,0x144($sp)
|
|
/* f0a791c: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0a7920: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0a7924: 44033000 */ mfc1 $v1,$f6
|
|
/* f0a7928: 00000000 */ nop
|
|
/* f0a792c: 24750041 */ addiu $s5,$v1,0x41
|
|
/* f0a7930: afb50140 */ sw $s5,0x140($sp)
|
|
.L0f0a7934:
|
|
/* f0a7934: 0c0059d8 */ jal mtx00016760
|
|
/* f0a7938: afac0110 */ sw $t4,0x110($sp)
|
|
/* f0a793c: 8e020218 */ lw $v0,0x218($s0)
|
|
/* f0a7940: 50400017 */ beqzl $v0,.L0f0a79a0
|
|
/* f0a7944: 8fa400ec */ lw $a0,0xec($sp)
|
|
/* f0a7948: 8c460018 */ lw $a2,0x18($v0)
|
|
/* f0a794c: afa00094 */ sw $zero,0x94($sp)
|
|
/* f0a7950: 50c00013 */ beqzl $a2,.L0f0a79a0
|
|
/* f0a7954: 8fa400ec */ lw $a0,0xec($sp)
|
|
/* f0a7958: 8cc80008 */ lw $t0,0x8($a2)
|
|
/* f0a795c: 240a0001 */ addiu $t2,$zero,0x1
|
|
/* f0a7960: 27a4010c */ addiu $a0,$sp,0x10c
|
|
/* f0a7964: 1100000d */ beqz $t0,.L0f0a799c
|
|
/* f0a7968: 00c02825 */ or $a1,$a2,$zero
|
|
/* f0a796c: afaa0094 */ sw $t2,0x94($sp)
|
|
/* f0a7970: 0c0087bd */ jal modelRender
|
|
/* f0a7974: afa60098 */ sw $a2,0x98($sp)
|
|
/* f0a7978: 8fa60098 */ lw $a2,0x98($sp)
|
|
/* f0a797c: 8ccb0008 */ lw $t3,0x8($a2)
|
|
/* f0a7980: 8cc4000c */ lw $a0,0xc($a2)
|
|
/* f0a7984: 0fc30cfc */ jal func0f0c33f0
|
|
/* f0a7988: 8565000e */ lh $a1,0xe($t3)
|
|
/* f0a798c: 8e0d021c */ lw $t5,0x21c($s0)
|
|
/* f0a7990: 51a00003 */ beqzl $t5,.L0f0a79a0
|
|
/* f0a7994: 8fa400ec */ lw $a0,0xec($sp)
|
|
/* f0a7998: ae000218 */ sw $zero,0x218($s0)
|
|
.L0f0a799c:
|
|
/* f0a799c: 8fa400ec */ lw $a0,0xec($sp)
|
|
.L0f0a79a0:
|
|
/* f0a79a0: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f0a79a4: 24050020 */ addiu $a1,$zero,0x20
|
|
/* f0a79a8: 1040000e */ beqz $v0,.L0f0a79e4
|
|
/* f0a79ac: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a79b0: 8fb80118 */ lw $t8,0x118($sp)
|
|
/* f0a79b4: 3c0fb600 */ lui $t7,0xb600
|
|
/* f0a79b8: 24093000 */ addiu $t1,$zero,0x3000
|
|
/* f0a79bc: 27190008 */ addiu $t9,$t8,0x8
|
|
/* f0a79c0: afb90118 */ sw $t9,0x118($sp)
|
|
/* f0a79c4: af090004 */ sw $t1,0x4($t8)
|
|
/* f0a79c8: 16800004 */ bnez $s4,.L0f0a79dc
|
|
/* f0a79cc: af0f0000 */ sw $t7,0x0($t8)
|
|
/* f0a79d0: 240e0003 */ addiu $t6,$zero,0x3
|
|
/* f0a79d4: 10000003 */ b .L0f0a79e4
|
|
/* f0a79d8: afae0148 */ sw $t6,0x148($sp)
|
|
.L0f0a79dc:
|
|
/* f0a79dc: 240c0002 */ addiu $t4,$zero,0x2
|
|
/* f0a79e0: afac0148 */ sw $t4,0x148($sp)
|
|
.L0f0a79e4:
|
|
/* f0a79e4: 8e28006c */ lw $t0,0x6c($s1)
|
|
/* f0a79e8: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a79ec: 00002025 */ or $a0,$zero,$zero
|
|
/* f0a79f0: 11000003 */ beqz $t0,.L0f0a7a00
|
|
/* f0a79f4: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a79f8: 10000001 */ b .L0f0a7a00
|
|
/* f0a79fc: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f0a7a00:
|
|
/* f0a7a00: 8e2a0068 */ lw $t2,0x68($s1)
|
|
/* f0a7a04: 00001825 */ or $v1,$zero,$zero
|
|
/* f0a7a08: 11400003 */ beqz $t2,.L0f0a7a18
|
|
/* f0a7a0c: 00000000 */ nop
|
|
/* f0a7a10: 10000001 */ b .L0f0a7a18
|
|
/* f0a7a14: 24040001 */ addiu $a0,$zero,0x1
|
|
.L0f0a7a18:
|
|
/* f0a7a18: 8e2b0064 */ lw $t3,0x64($s1)
|
|
/* f0a7a1c: 11600003 */ beqz $t3,.L0f0a7a2c
|
|
/* f0a7a20: 00000000 */ nop
|
|
/* f0a7a24: 10000001 */ b .L0f0a7a2c
|
|
/* f0a7a28: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a7a2c:
|
|
/* f0a7a2c: 8e2d0070 */ lw $t5,0x70($s1)
|
|
/* f0a7a30: 11a00003 */ beqz $t5,.L0f0a7a40
|
|
/* f0a7a34: 00000000 */ nop
|
|
/* f0a7a38: 10000001 */ b .L0f0a7a40
|
|
/* f0a7a3c: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f0a7a40:
|
|
/* f0a7a40: 0062c021 */ addu $t8,$v1,$v0
|
|
/* f0a7a44: 0304c821 */ addu $t9,$t8,$a0
|
|
/* f0a7a48: 03257821 */ addu $t7,$t9,$a1
|
|
/* f0a7a4c: 15e10036 */ bne $t7,$at,.L0f0a7b28
|
|
/* f0a7a50: 24050041 */ addiu $a1,$zero,0x41
|
|
/* f0a7a54: 0c006a47 */ jal modelGetPart
|
|
/* f0a7a58: 8e04038c */ lw $a0,0x38c($s0)
|
|
/* f0a7a5c: 50400033 */ beqzl $v0,.L0f0a7b2c
|
|
/* f0a7a60: 27a4010c */ addiu $a0,$sp,0x10c
|
|
/* f0a7a64: 8c440004 */ lw $a0,0x4($v0)
|
|
/* f0a7a68: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a7a6c: 84890010 */ lh $t1,0x10($a0)
|
|
/* f0a7a70: 5920002e */ blezl $t1,.L0f0a7b2c
|
|
/* f0a7a74: 27a4010c */ addiu $a0,$sp,0x10c
|
|
/* f0a7a78: 8e2a0034 */ lw $t2,0x34($s1)
|
|
.L0f0a7a7c:
|
|
/* f0a7a7c: 8c8e000c */ lw $t6,0xc($a0)
|
|
/* f0a7a80: 00056080 */ sll $t4,$a1,0x2
|
|
/* f0a7a84: 01520019 */ multu $t2,$s2
|
|
/* f0a7a88: 01856023 */ subu $t4,$t4,$a1
|
|
/* f0a7a8c: 000c6080 */ sll $t4,$t4,0x2
|
|
/* f0a7a90: 01cc1021 */ addu $v0,$t6,$t4
|
|
/* f0a7a94: 8448000a */ lh $t0,0xa($v0)
|
|
/* f0a7a98: 0005c880 */ sll $t9,$a1,0x2
|
|
/* f0a7a9c: 0325c823 */ subu $t9,$t9,$a1
|
|
/* f0a7aa0: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f0a7aa4: 24420002 */ addiu $v0,$v0,0x2
|
|
/* f0a7aa8: 00005812 */ mflo $t3
|
|
/* f0a7aac: 010b6823 */ subu $t5,$t0,$t3
|
|
/* f0a7ab0: a44d0008 */ sh $t5,0x8($v0)
|
|
/* f0a7ab4: 8c98000c */ lw $t8,0xc($a0)
|
|
/* f0a7ab8: 03197821 */ addu $t7,$t8,$t9
|
|
/* f0a7abc: 85e9000a */ lh $t1,0xa($t7)
|
|
/* f0a7ac0: 2921a000 */ slti $at,$t1,-24576
|
|
/* f0a7ac4: 50200014 */ beqzl $at,.L0f0a7b18
|
|
/* f0a7ac8: 84980010 */ lh $t8,0x10($a0)
|
|
/* f0a7acc: 848e0010 */ lh $t6,0x10($a0)
|
|
/* f0a7ad0: 00001825 */ or $v1,$zero,$zero
|
|
/* f0a7ad4: 59c00010 */ blezl $t6,.L0f0a7b18
|
|
/* f0a7ad8: 84980010 */ lh $t8,0x10($a0)
|
|
/* f0a7adc: 8c8c000c */ lw $t4,0xc($a0)
|
|
.L0f0a7ae0:
|
|
/* f0a7ae0: 00035080 */ sll $t2,$v1,0x2
|
|
/* f0a7ae4: 01435023 */ subu $t2,$t2,$v1
|
|
/* f0a7ae8: 000a5080 */ sll $t2,$t2,0x2
|
|
/* f0a7aec: 018a1021 */ addu $v0,$t4,$t2
|
|
/* f0a7af0: 8448000a */ lh $t0,0xa($v0)
|
|
/* f0a7af4: 24630001 */ addiu $v1,$v1,0x1
|
|
/* f0a7af8: 24420002 */ addiu $v0,$v0,0x2
|
|
/* f0a7afc: 250b2000 */ addiu $t3,$t0,0x2000
|
|
/* f0a7b00: a44b0008 */ sh $t3,0x8($v0)
|
|
/* f0a7b04: 848d0010 */ lh $t5,0x10($a0)
|
|
/* f0a7b08: 006d082a */ slt $at,$v1,$t5
|
|
/* f0a7b0c: 5420fff4 */ bnezl $at,.L0f0a7ae0
|
|
/* f0a7b10: 8c8c000c */ lw $t4,0xc($a0)
|
|
/* f0a7b14: 84980010 */ lh $t8,0x10($a0)
|
|
.L0f0a7b18:
|
|
/* f0a7b18: 24a50001 */ addiu $a1,$a1,0x1
|
|
/* f0a7b1c: 00b8082a */ slt $at,$a1,$t8
|
|
/* f0a7b20: 5420ffd6 */ bnezl $at,.L0f0a7a7c
|
|
/* f0a7b24: 8e2a0034 */ lw $t2,0x34($s1)
|
|
.L0f0a7b28:
|
|
/* f0a7b28: 27a4010c */ addiu $a0,$sp,0x10c
|
|
.L0f0a7b2c:
|
|
/* f0a7b2c: 0c0087bd */ jal modelRender
|
|
/* f0a7b30: 8fa5003c */ lw $a1,0x3c($sp)
|
|
/* f0a7b34: 8e791594 */ lw $t9,0x1594($s3)
|
|
/* f0a7b38: 3c0f8007 */ lui $t7,%hi(var800702dc)
|
|
/* f0a7b3c: 53200013 */ beqzl $t9,.L0f0a7b8c
|
|
/* f0a7b40: 8fac0118 */ lw $t4,0x118($sp)
|
|
/* f0a7b44: 8def02dc */ lw $t7,%lo(var800702dc)($t7)
|
|
/* f0a7b48: 8fa90140 */ lw $t1,0x140($sp)
|
|
/* f0a7b4c: 51e0000f */ beqzl $t7,.L0f0a7b8c
|
|
/* f0a7b50: 8fac0118 */ lw $t4,0x118($sp)
|
|
/* f0a7b54: afa9007c */ sw $t1,0x7c($sp)
|
|
/* f0a7b58: 8e0e0390 */ lw $t6,0x390($s0)
|
|
/* f0a7b5c: 26050534 */ addiu $a1,$s0,0x534
|
|
/* f0a7b60: 00a02025 */ or $a0,$a1,$zero
|
|
/* f0a7b64: ae0e0540 */ sw $t6,0x540($s0)
|
|
/* f0a7b68: 0c007308 */ jal model0001cc20
|
|
/* f0a7b6c: afa50054 */ sw $a1,0x54($sp)
|
|
/* f0a7b70: 8fa50054 */ lw $a1,0x54($sp)
|
|
/* f0a7b74: afb50140 */ sw $s5,0x140($sp)
|
|
/* f0a7b78: 0c0087bd */ jal modelRender
|
|
/* f0a7b7c: 27a4010c */ addiu $a0,$sp,0x10c
|
|
/* f0a7b80: 8fa4007c */ lw $a0,0x7c($sp)
|
|
/* f0a7b84: afa40140 */ sw $a0,0x140($sp)
|
|
/* f0a7b88: 8fac0118 */ lw $t4,0x118($sp)
|
|
.L0f0a7b8c:
|
|
/* f0a7b8c: 8fa400ec */ lw $a0,0xec($sp)
|
|
/* f0a7b90: 24050020 */ addiu $a1,$zero,0x20
|
|
/* f0a7b94: 0fc2c5f0 */ jal weaponHasFlag
|
|
/* f0a7b98: afac014c */ sw $t4,0x14c($sp)
|
|
/* f0a7b9c: 10400007 */ beqz $v0,.L0f0a7bbc
|
|
/* f0a7ba0: 8faa014c */ lw $t2,0x14c($sp)
|
|
/* f0a7ba4: 25480008 */ addiu $t0,$t2,0x8
|
|
/* f0a7ba8: afa8014c */ sw $t0,0x14c($sp)
|
|
/* f0a7bac: 3c0bb600 */ lui $t3,0xb600
|
|
/* f0a7bb0: 240d3000 */ addiu $t5,$zero,0x3000
|
|
/* f0a7bb4: ad4d0004 */ sw $t5,0x4($t2)
|
|
/* f0a7bb8: ad4b0000 */ sw $t3,0x0($t2)
|
|
.L0f0a7bbc:
|
|
/* f0a7bbc: 8e18038c */ lw $t8,0x38c($s0)
|
|
/* f0a7bc0: 8e040390 */ lw $a0,0x390($s0)
|
|
/* f0a7bc4: 0fc30cfc */ jal func0f0c33f0
|
|
/* f0a7bc8: 8705000e */ lh $a1,0xe($t8)
|
|
/* f0a7bcc: 0c0059e1 */ jal mtx00016784
|
|
/* f0a7bd0: 00000000 */ nop
|
|
/* f0a7bd4: 8fb9014c */ lw $t9,0x14c($sp)
|
|
/* f0a7bd8: 3c09bc00 */ lui $t1,0xbc00
|
|
/* f0a7bdc: 3529000e */ ori $t1,$t1,0xe
|
|
/* f0a7be0: 272f0008 */ addiu $t7,$t9,0x8
|
|
/* f0a7be4: afaf014c */ sw $t7,0x14c($sp)
|
|
/* f0a7be8: af290000 */ sw $t1,0x0($t9)
|
|
/* f0a7bec: 0c002adb */ jal viGetPerspScale
|
|
/* f0a7bf0: afb90074 */ sw $t9,0x74($sp)
|
|
/* f0a7bf4: 8fa30074 */ lw $v1,0x74($sp)
|
|
/* f0a7bf8: ac620004 */ sw $v0,0x4($v1)
|
|
.L0f0a7bfc:
|
|
/* f0a7bfc: 26940001 */ addiu $s4,$s4,0x1
|
|
/* f0a7c00: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0a7c04: 1681fe04 */ bne $s4,$at,.L0f0a7418
|
|
/* f0a7c08: 261007a4 */ addiu $s0,$s0,0x7a4
|
|
/* f0a7c0c: afb500e4 */ sw $s5,0xe4($sp)
|
|
/* f0a7c10: 0fc2baf8 */ jal casingsRender
|
|
/* f0a7c14: 27a4014c */ addiu $a0,$sp,0x14c
|
|
/* f0a7c18: 0fc5d8a6 */ jal mblur0f176298
|
|
/* f0a7c1c: 00000000 */ nop
|
|
/* f0a7c20: 0fc5d8ab */ jal mblur0f1762ac
|
|
/* f0a7c24: 8fa4014c */ lw $a0,0x14c($sp)
|
|
/* f0a7c28: afa2014c */ sw $v0,0x14c($sp)
|
|
/* f0a7c2c: 0c002c74 */ jal vi0000b1d0
|
|
/* f0a7c30: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a7c34: 244e0008 */ addiu $t6,$v0,0x8
|
|
/* f0a7c38: afae014c */ sw $t6,0x14c($sp)
|
|
/* f0a7c3c: 0c002f40 */ jal viGetViewLeft
|
|
/* f0a7c40: 00408825 */ or $s1,$v0,$zero
|
|
/* f0a7c44: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a7c48: 00106403 */ sra $t4,$s0,0x10
|
|
/* f0a7c4c: 0c002f44 */ jal viGetViewTop
|
|
/* f0a7c50: 01808025 */ or $s0,$t4,$zero
|
|
/* f0a7c54: 44824000 */ mtc1 $v0,$f8
|
|
/* f0a7c58: 44902000 */ mtc1 $s0,$f4
|
|
/* f0a7c5c: 3c014080 */ lui $at,0x4080
|
|
/* f0a7c60: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0a7c64: 44810000 */ mtc1 $at,$f0
|
|
/* f0a7c68: 3c01ed00 */ lui $at,0xed00
|
|
/* f0a7c6c: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a7c70: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f0a7c74: 00000000 */ nop
|
|
/* f0a7c78: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a7c7c: 4600848d */ trunc.w.s $f18,$f16
|
|
/* f0a7c80: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0a7c84: 44089000 */ mfc1 $t0,$f18
|
|
/* f0a7c88: 44195000 */ mfc1 $t9,$f10
|
|
/* f0a7c8c: 310b0fff */ andi $t3,$t0,0xfff
|
|
/* f0a7c90: 01616825 */ or $t5,$t3,$at
|
|
/* f0a7c94: 332f0fff */ andi $t7,$t9,0xfff
|
|
/* f0a7c98: 000f4b00 */ sll $t1,$t7,0xc
|
|
/* f0a7c9c: 01a97025 */ or $t6,$t5,$t1
|
|
/* f0a7ca0: 0c002f22 */ jal viGetViewWidth
|
|
/* f0a7ca4: ae2e0000 */ sw $t6,0x0($s1)
|
|
/* f0a7ca8: 00029400 */ sll $s2,$v0,0x10
|
|
/* f0a7cac: 00126403 */ sra $t4,$s2,0x10
|
|
/* f0a7cb0: 0c002f40 */ jal viGetViewLeft
|
|
/* f0a7cb4: 01809025 */ or $s2,$t4,$zero
|
|
/* f0a7cb8: 0002a400 */ sll $s4,$v0,0x10
|
|
/* f0a7cbc: 00145403 */ sra $t2,$s4,0x10
|
|
/* f0a7cc0: 0c002f44 */ jal viGetViewTop
|
|
/* f0a7cc4: 0140a025 */ or $s4,$t2,$zero
|
|
/* f0a7cc8: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a7ccc: 00104403 */ sra $t0,$s0,0x10
|
|
/* f0a7cd0: 0c002f26 */ jal viGetViewHeight
|
|
/* f0a7cd4: 01008025 */ or $s0,$t0,$zero
|
|
/* f0a7cd8: 00505821 */ addu $t3,$v0,$s0
|
|
/* f0a7cdc: 448b8000 */ mtc1 $t3,$f16
|
|
/* f0a7ce0: 02926821 */ addu $t5,$s4,$s2
|
|
/* f0a7ce4: 448d5000 */ mtc1 $t5,$f10
|
|
/* f0a7ce8: 468084a0 */ cvt.s.w $f18,$f16
|
|
/* f0a7cec: 3c014080 */ lui $at,0x4080
|
|
/* f0a7cf0: 44812000 */ mtc1 $at,$f4
|
|
/* f0a7cf4: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f0a7cf8: 46049182 */ mul.s $f6,$f18,$f4
|
|
/* f0a7cfc: 44819000 */ mtc1 $at,$f18
|
|
/* f0a7d00: 00000000 */ nop
|
|
/* f0a7d04: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0a7d08: 4600320d */ trunc.w.s $f8,$f6
|
|
/* f0a7d0c: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0a7d10: 44194000 */ mfc1 $t9,$f8
|
|
/* f0a7d14: 440e3000 */ mfc1 $t6,$f6
|
|
/* f0a7d18: 332f0fff */ andi $t7,$t9,0xfff
|
|
/* f0a7d1c: 31cc0fff */ andi $t4,$t6,0xfff
|
|
/* f0a7d20: 000c5300 */ sll $t2,$t4,0xc
|
|
/* f0a7d24: 01ea4025 */ or $t0,$t7,$t2
|
|
/* f0a7d28: ae280004 */ sw $t0,0x4($s1)
|
|
/* f0a7d2c: 8fb80150 */ lw $t8,0x150($sp)
|
|
/* f0a7d30: 8fab014c */ lw $t3,0x14c($sp)
|
|
/* f0a7d34: af0b0000 */ sw $t3,0x0($t8)
|
|
/* f0a7d38: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.L0f0a7d3c:
|
|
/* f0a7d3c: 8fb0001c */ lw $s0,0x1c($sp)
|
|
/* f0a7d40: 8fb10020 */ lw $s1,0x20($sp)
|
|
/* f0a7d44: 8fb20024 */ lw $s2,0x24($sp)
|
|
/* f0a7d48: 8fb30028 */ lw $s3,0x28($sp)
|
|
/* f0a7d4c: 8fb4002c */ lw $s4,0x2c($sp)
|
|
/* f0a7d50: 8fb50030 */ lw $s5,0x30($sp)
|
|
/* f0a7d54: 03e00008 */ jr $ra
|
|
/* f0a7d58: 27bd0150 */ addiu $sp,$sp,0x150
|
|
);
|
|
#else
|
|
GLOBAL_ASM(
|
|
glabel bgunRender
|
|
.late_rodata
|
|
glabel var7f1aca8c
|
|
.word 0x3faaaaab
|
|
glabel var7f1aca90
|
|
.word 0x3f3ebebf
|
|
.text
|
|
/* f0a4e84: 27bdfeb8 */ addiu $sp,$sp,-328
|
|
/* f0a4e88: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f0a4e8c: afb50030 */ sw $s5,0x30($sp)
|
|
/* f0a4e90: afb4002c */ sw $s4,0x2c($sp)
|
|
/* f0a4e94: afb30028 */ sw $s3,0x28($sp)
|
|
/* f0a4e98: afb20024 */ sw $s2,0x24($sp)
|
|
/* f0a4e9c: afb10020 */ sw $s1,0x20($sp)
|
|
/* f0a4ea0: afb0001c */ sw $s0,0x1c($sp)
|
|
/* f0a4ea4: afa40148 */ sw $a0,0x148($sp)
|
|
/* f0a4ea8: 8c8f0000 */ lw $t7,0x0($a0)
|
|
/* f0a4eac: 3c198007 */ lui $t9,0x8007
|
|
/* f0a4eb0: 3c11800a */ lui $s1,0x800a
|
|
/* f0a4eb4: 2739295c */ addiu $t9,$t9,0x295c
|
|
/* f0a4eb8: 2631e6c0 */ addiu $s1,$s1,-6464
|
|
/* f0a4ebc: 272a003c */ addiu $t2,$t9,0x3c
|
|
/* f0a4ec0: 27b80104 */ addiu $t8,$sp,0x104
|
|
/* f0a4ec4: afaf0144 */ sw $t7,0x144($sp)
|
|
.NB0f0a4ec8:
|
|
/* f0a4ec8: 8f210000 */ lw $at,0x0($t9)
|
|
/* f0a4ecc: 2739000c */ addiu $t9,$t9,0xc
|
|
/* f0a4ed0: 2718000c */ addiu $t8,$t8,0xc
|
|
/* f0a4ed4: af01fff4 */ sw $at,-0xc($t8)
|
|
/* f0a4ed8: 8f21fff8 */ lw $at,-0x8($t9)
|
|
/* f0a4edc: af01fff8 */ sw $at,-0x8($t8)
|
|
/* f0a4ee0: 8f21fffc */ lw $at,-0x4($t9)
|
|
/* f0a4ee4: 172afff8 */ bne $t9,$t2,.NB0f0a4ec8
|
|
/* f0a4ee8: af01fffc */ sw $at,-0x4($t8)
|
|
/* f0a4eec: 8f210000 */ lw $at,0x0($t9)
|
|
/* f0a4ef0: af010000 */ sw $at,0x0($t8)
|
|
/* f0a4ef4: 8e330284 */ lw $s3,0x284($s1)
|
|
/* f0a4ef8: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a4efc: 966b0010 */ lhu $t3,0x10($s3)
|
|
/* f0a4f00: 1561000d */ bne $t3,$at,.NB0f0a4f38
|
|
/* f0a4f04: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a4f08: 24040f48 */ addiu $a0,$zero,0xf48
|
|
/* f0a4f0c: 8e2c0284 */ lw $t4,0x284($s1)
|
|
.NB0f0a4f10:
|
|
/* f0a4f10: 01821821 */ addu $v1,$t4,$v0
|
|
/* f0a4f14: 8c6d0854 */ lw $t5,0x854($v1)
|
|
/* f0a4f18: 244207a4 */ addiu $v0,$v0,0x7a4
|
|
/* f0a4f1c: 11a00002 */ beqz $t5,.NB0f0a4f28
|
|
/* f0a4f20: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a4f24: ac600850 */ sw $zero,0x850($v1)
|
|
.NB0f0a4f28:
|
|
/* f0a4f28: 5444fff9 */ bnel $v0,$a0,.NB0f0a4f10
|
|
/* f0a4f2c: 8e2c0284 */ lw $t4,0x284($s1)
|
|
/* f0a4f30: 100002cd */ beqz $zero,.NB0f0a5a68
|
|
/* f0a4f34: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.NB0f0a4f38:
|
|
/* f0a4f38: 0fc5c4d5 */ jal mblurRender
|
|
/* f0a4f3c: 8fa40144 */ lw $a0,0x144($sp)
|
|
/* f0a4f40: afa20144 */ sw $v0,0x144($sp)
|
|
/* f0a4f44: 0c002d00 */ jal vi0000b280
|
|
/* f0a4f48: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a4f4c: afa20144 */ sw $v0,0x144($sp)
|
|
/* f0a4f50: 0c002cd4 */ jal vi0000b1d0
|
|
/* f0a4f54: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a4f58: 244e0008 */ addiu $t6,$v0,0x8
|
|
/* f0a4f5c: afae0144 */ sw $t6,0x144($sp)
|
|
/* f0a4f60: 0c002fb5 */ jal viGetViewLeft
|
|
/* f0a4f64: 0040a825 */ or $s5,$v0,$zero
|
|
/* f0a4f68: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a4f6c: 00107c03 */ sra $t7,$s0,0x10
|
|
/* f0a4f70: 0c002fb9 */ jal viGetViewTop
|
|
/* f0a4f74: 01e08025 */ or $s0,$t7,$zero
|
|
/* f0a4f78: 44822000 */ mtc1 $v0,$f4
|
|
/* f0a4f7c: 44908000 */ mtc1 $s0,$f16
|
|
/* f0a4f80: 3c014080 */ lui $at,0x4080
|
|
/* f0a4f84: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a4f88: 44810000 */ mtc1 $at,$f0
|
|
/* f0a4f8c: 3c01ed00 */ lui $at,0xed00
|
|
/* f0a4f90: 468084a0 */ cvt.s.w $f18,$f16
|
|
/* f0a4f94: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a4f98: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a4f9c: 46009102 */ mul.s $f4,$f18,$f0
|
|
/* f0a4fa0: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0a4fa4: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0a4fa8: 44085000 */ mfc1 $t0,$f10
|
|
/* f0a4fac: 440b3000 */ mfc1 $t3,$f6
|
|
/* f0a4fb0: 310a0fff */ andi $t2,$t0,0xfff
|
|
/* f0a4fb4: 0141c825 */ or $t9,$t2,$at
|
|
/* f0a4fb8: 316c0fff */ andi $t4,$t3,0xfff
|
|
/* f0a4fbc: 000c6b00 */ sll $t5,$t4,0xc
|
|
/* f0a4fc0: 032d7025 */ or $t6,$t9,$t5
|
|
/* f0a4fc4: 0c002f97 */ jal viGetViewWidth
|
|
/* f0a4fc8: aeae0000 */ sw $t6,0x0($s5)
|
|
/* f0a4fcc: 00029400 */ sll $s2,$v0,0x10
|
|
/* f0a4fd0: 00127c03 */ sra $t7,$s2,0x10
|
|
/* f0a4fd4: 0c002fb5 */ jal viGetViewLeft
|
|
/* f0a4fd8: 01e09025 */ or $s2,$t7,$zero
|
|
/* f0a4fdc: 0002a400 */ sll $s4,$v0,0x10
|
|
/* f0a4fe0: 00144c03 */ sra $t1,$s4,0x10
|
|
/* f0a4fe4: 0c002fb9 */ jal viGetViewTop
|
|
/* f0a4fe8: 0120a025 */ or $s4,$t1,$zero
|
|
/* f0a4fec: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a4ff0: 00104403 */ sra $t0,$s0,0x10
|
|
/* f0a4ff4: 0c002f9b */ jal viGetViewHeight
|
|
/* f0a4ff8: 01008025 */ or $s0,$t0,$zero
|
|
/* f0a4ffc: 00505021 */ addu $t2,$v0,$s0
|
|
/* f0a5000: 448a4000 */ mtc1 $t2,$f8
|
|
/* f0a5004: 0292c821 */ addu $t9,$s4,$s2
|
|
/* f0a5008: 44992000 */ mtc1 $t9,$f4
|
|
/* f0a500c: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0a5010: 3c014080 */ lui $at,0x4080
|
|
/* f0a5014: 44810000 */ mtc1 $at,$f0
|
|
/* f0a5018: 3c053fc0 */ lui $a1,0x3fc0
|
|
/* f0a501c: 3c06447a */ lui $a2,0x447a
|
|
/* f0a5020: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a5024: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f0a5028: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a502c: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a5030: 4600848d */ trunc.w.s $f18,$f16
|
|
/* f0a5034: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0a5038: 440b9000 */ mfc1 $t3,$f18
|
|
/* f0a503c: 440e5000 */ mfc1 $t6,$f10
|
|
/* f0a5040: 316c0fff */ andi $t4,$t3,0xfff
|
|
/* f0a5044: 31cf0fff */ andi $t7,$t6,0xfff
|
|
/* f0a5048: 000f4b00 */ sll $t1,$t7,0xc
|
|
/* f0a504c: 01894025 */ or $t0,$t4,$t1
|
|
/* f0a5050: aea80004 */ sw $t0,0x4($s5)
|
|
/* f0a5054: 0c002b89 */ jal vi0000aca4
|
|
/* f0a5058: 8fa40144 */ lw $a0,0x144($sp)
|
|
/* f0a505c: 8e2a0284 */ lw $t2,0x284($s1)
|
|
/* f0a5060: afa20144 */ sw $v0,0x144($sp)
|
|
/* f0a5064: 91581bfc */ lbu $t8,0x1bfc($t2)
|
|
/* f0a5068: 53000016 */ beqzl $t8,.NB0f0a50c4
|
|
/* f0a506c: 8e2b006c */ lw $t3,0x6c($s1)
|
|
/* f0a5070: 0fc53582 */ jal optionsGetScreenRatio
|
|
/* f0a5074: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5078: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a507c: 14410008 */ bne $v0,$at,.NB0f0a50a0
|
|
/* f0a5080: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5084: 0fc2ebf0 */ jal player0f0bd358
|
|
/* f0a5088: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a508c: 3c017f1a */ lui $at,0x7f1a
|
|
/* f0a5090: c4306dd4 */ lwc1 $f16,0x6dd4($at)
|
|
/* f0a5094: 46100082 */ mul.s $f2,$f0,$f16
|
|
/* f0a5098: 10000005 */ beqz $zero,.NB0f0a50b0
|
|
/* f0a509c: 44061000 */ mfc1 $a2,$f2
|
|
.NB0f0a50a0:
|
|
/* f0a50a0: 0fc2ebf0 */ jal player0f0bd358
|
|
/* f0a50a4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a50a8: 46000086 */ mov.s $f2,$f0
|
|
/* f0a50ac: 44061000 */ mfc1 $a2,$f2
|
|
.NB0f0a50b0:
|
|
/* f0a50b0: 8fa40144 */ lw $a0,0x144($sp)
|
|
/* f0a50b4: 0c002c9a */ jal vi0000b0e8
|
|
/* f0a50b8: 3c054270 */ lui $a1,0x4270
|
|
/* f0a50bc: afa20144 */ sw $v0,0x144($sp)
|
|
/* f0a50c0: 8e2b006c */ lw $t3,0x6c($s1)
|
|
.NB0f0a50c4:
|
|
/* f0a50c4: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a50c8: 51600004 */ beqzl $t3,.NB0f0a50dc
|
|
/* f0a50cc: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a50d0: 10000002 */ beqz $zero,.NB0f0a50dc
|
|
/* f0a50d4: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f0a50d8: 00002825 */ or $a1,$zero,$zero
|
|
.NB0f0a50dc:
|
|
/* f0a50dc: 8e390068 */ lw $t9,0x68($s1)
|
|
/* f0a50e0: 53200004 */ beqzl $t9,.NB0f0a50f4
|
|
/* f0a50e4: 00002025 */ or $a0,$zero,$zero
|
|
/* f0a50e8: 10000002 */ beqz $zero,.NB0f0a50f4
|
|
/* f0a50ec: 24040001 */ addiu $a0,$zero,0x1
|
|
/* f0a50f0: 00002025 */ or $a0,$zero,$zero
|
|
.NB0f0a50f4:
|
|
/* f0a50f4: 8e2d0064 */ lw $t5,0x64($s1)
|
|
/* f0a50f8: 51a00004 */ beqzl $t5,.NB0f0a510c
|
|
/* f0a50fc: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a5100: 10000002 */ beqz $zero,.NB0f0a510c
|
|
/* f0a5104: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0a5108: 00001025 */ or $v0,$zero,$zero
|
|
.NB0f0a510c:
|
|
/* f0a510c: 8e2e0070 */ lw $t6,0x70($s1)
|
|
/* f0a5110: 51c00004 */ beqzl $t6,.NB0f0a5124
|
|
/* f0a5114: 00001825 */ or $v1,$zero,$zero
|
|
/* f0a5118: 10000002 */ beqz $zero,.NB0f0a5124
|
|
/* f0a511c: 24030001 */ addiu $v1,$zero,0x1
|
|
/* f0a5120: 00001825 */ or $v1,$zero,$zero
|
|
.NB0f0a5124:
|
|
/* f0a5124: 00627821 */ addu $t7,$v1,$v0
|
|
/* f0a5128: 01e46021 */ addu $t4,$t7,$a0
|
|
/* f0a512c: 01854821 */ addu $t1,$t4,$a1
|
|
/* f0a5130: 15210008 */ bne $t1,$at,.NB0f0a5154
|
|
/* f0a5134: 3c088009 */ lui $t0,0x8009
|
|
/* f0a5138: 910830e0 */ lbu $t0,0x30e0($t0)
|
|
/* f0a513c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a5140: 51010005 */ beql $t0,$at,.NB0f0a5158
|
|
/* f0a5144: 0000a025 */ or $s4,$zero,$zero
|
|
/* f0a5148: 0fc2b5eb */ jal lasersightRenderBeam
|
|
/* f0a514c: 8fa40144 */ lw $a0,0x144($sp)
|
|
/* f0a5150: afa20144 */ sw $v0,0x144($sp)
|
|
.NB0f0a5154:
|
|
/* f0a5154: 0000a025 */ or $s4,$zero,$zero
|
|
.NB0f0a5158:
|
|
/* f0a5158: 26700638 */ addiu $s0,$s3,0x638
|
|
/* f0a515c: 8fb500dc */ lw $s5,0xdc($sp)
|
|
/* f0a5160: 24120019 */ addiu $s2,$zero,0x19
|
|
.NB0f0a5164:
|
|
/* f0a5164: 0fc27de9 */ jal bgunGetWeaponNum2
|
|
/* f0a5168: 02802025 */ or $a0,$s4,$zero
|
|
/* f0a516c: afa200e4 */ sw $v0,0xe4($sp)
|
|
/* f0a5170: 820a0007 */ lb $t2,0x7($s0)
|
|
/* f0a5174: 8fa40144 */ lw $a0,0x144($sp)
|
|
/* f0a5178: 260501dc */ addiu $a1,$s0,0x1dc
|
|
/* f0a517c: 114001ea */ beqz $t2,.NB0f0a5928
|
|
/* f0a5180: 00003025 */ or $a2,$zero,$zero
|
|
/* f0a5184: 26180384 */ addiu $t8,$s0,0x384
|
|
/* f0a5188: afb80038 */ sw $t8,0x38($sp)
|
|
/* f0a518c: 0fc2aa3c */ jal beamRender
|
|
/* f0a5190: 00003825 */ or $a3,$zero,$zero
|
|
/* f0a5194: afa20144 */ sw $v0,0x144($sp)
|
|
/* f0a5198: 92040000 */ lbu $a0,0x0($s0)
|
|
/* f0a519c: 0fc2bd48 */ jal weaponHasFlag
|
|
/* f0a51a0: 34058000 */ dli $a1,0x8000
|
|
/* f0a51a4: 10400030 */ beqz $v0,.NB0f0a5268
|
|
/* f0a51a8: 8fab0144 */ lw $t3,0x144($sp)
|
|
/* f0a51ac: 25790008 */ addiu $t9,$t3,0x8
|
|
/* f0a51b0: afb90144 */ sw $t9,0x144($sp)
|
|
/* f0a51b4: 3c0dbc00 */ lui $t5,0xbc00
|
|
/* f0a51b8: 3c0e8000 */ lui $t6,0x8000
|
|
/* f0a51bc: 35ce0040 */ ori $t6,$t6,0x40
|
|
/* f0a51c0: 35ad0002 */ ori $t5,$t5,0x2
|
|
/* f0a51c4: ad6d0000 */ sw $t5,0x0($t3)
|
|
/* f0a51c8: ad6e0004 */ sw $t6,0x4($t3)
|
|
/* f0a51cc: 8faf0144 */ lw $t7,0x144($sp)
|
|
/* f0a51d0: 3c090386 */ lui $t1,0x386
|
|
/* f0a51d4: 3c088007 */ lui $t0,0x8007
|
|
/* f0a51d8: 25ec0008 */ addiu $t4,$t7,0x8
|
|
/* f0a51dc: afac0144 */ sw $t4,0x144($sp)
|
|
/* f0a51e0: 25082758 */ addiu $t0,$t0,0x2758
|
|
/* f0a51e4: 35290010 */ ori $t1,$t1,0x10
|
|
/* f0a51e8: ade90000 */ sw $t1,0x0($t7)
|
|
/* f0a51ec: ade80004 */ sw $t0,0x4($t7)
|
|
/* f0a51f0: 8faa0144 */ lw $t2,0x144($sp)
|
|
/* f0a51f4: 3c0b0388 */ lui $t3,0x388
|
|
/* f0a51f8: 3c198007 */ lui $t9,0x8007
|
|
/* f0a51fc: 25580008 */ addiu $t8,$t2,0x8
|
|
/* f0a5200: afb80144 */ sw $t8,0x144($sp)
|
|
/* f0a5204: 27392750 */ addiu $t9,$t9,0x2750
|
|
/* f0a5208: 356b0010 */ ori $t3,$t3,0x10
|
|
/* f0a520c: ad4b0000 */ sw $t3,0x0($t2)
|
|
/* f0a5210: ad590004 */ sw $t9,0x4($t2)
|
|
/* f0a5214: 8fad0144 */ lw $t5,0x144($sp)
|
|
/* f0a5218: 3c0f0384 */ lui $t7,0x384
|
|
/* f0a521c: 35ef0010 */ ori $t7,$t7,0x10
|
|
/* f0a5220: 25ae0008 */ addiu $t6,$t5,0x8
|
|
/* f0a5224: afae0144 */ sw $t6,0x144($sp)
|
|
/* f0a5228: adaf0000 */ sw $t7,0x0($t5)
|
|
/* f0a522c: 0fc2cd42 */ jal camGetLookAt
|
|
/* f0a5230: afad00cc */ sw $t5,0xcc($sp)
|
|
/* f0a5234: 8fa500cc */ lw $a1,0xcc($sp)
|
|
/* f0a5238: 3c080382 */ lui $t0,0x382
|
|
/* f0a523c: 35080010 */ ori $t0,$t0,0x10
|
|
/* f0a5240: aca20004 */ sw $v0,0x4($a1)
|
|
/* f0a5244: 8fac0144 */ lw $t4,0x144($sp)
|
|
/* f0a5248: 25890008 */ addiu $t1,$t4,0x8
|
|
/* f0a524c: afa90144 */ sw $t1,0x144($sp)
|
|
/* f0a5250: ad880000 */ sw $t0,0x0($t4)
|
|
/* f0a5254: 0fc2cd42 */ jal camGetLookAt
|
|
/* f0a5258: afac00c8 */ sw $t4,0xc8($sp)
|
|
/* f0a525c: 8fa300c8 */ lw $v1,0xc8($sp)
|
|
/* f0a5260: 244a0010 */ addiu $t2,$v0,0x10
|
|
/* f0a5264: ac6a0004 */ sw $t2,0x4($v1)
|
|
.NB0f0a5268:
|
|
/* f0a5268: 8fb80144 */ lw $t8,0x144($sp)
|
|
/* f0a526c: 3c19bc00 */ lui $t9,0xbc00
|
|
/* f0a5270: 3739000e */ ori $t9,$t9,0xe
|
|
/* f0a5274: 270b0008 */ addiu $t3,$t8,0x8
|
|
/* f0a5278: afab0144 */ sw $t3,0x144($sp)
|
|
/* f0a527c: 3c014396 */ lui $at,0x4396
|
|
/* f0a5280: 44817000 */ mtc1 $at,$f14
|
|
/* f0a5284: 44806000 */ mtc1 $zero,$f12
|
|
/* f0a5288: af190000 */ sw $t9,0x0($t8)
|
|
/* f0a528c: 0c005f57 */ jal mtx00016dcc
|
|
/* f0a5290: afb800c4 */ sw $t8,0xc4($sp)
|
|
/* f0a5294: 8fa300c4 */ lw $v1,0xc4($sp)
|
|
/* f0a5298: 24050010 */ addiu $a1,$zero,0x10
|
|
/* f0a529c: ac620004 */ sw $v0,0x4($v1)
|
|
/* f0a52a0: 0c006ea3 */ jal modelGetPart
|
|
/* f0a52a4: 8e04038c */ lw $a0,0x38c($s0)
|
|
/* f0a52a8: 10400014 */ beqz $v0,.NB0f0a52fc
|
|
/* f0a52ac: afa200e0 */ sw $v0,0xe0($sp)
|
|
/* f0a52b0: 8e04038c */ lw $a0,0x38c($s0)
|
|
/* f0a52b4: 0c006ea3 */ jal modelGetPart
|
|
/* f0a52b8: 24050011 */ addiu $a1,$zero,0x11
|
|
/* f0a52bc: 8fa40038 */ lw $a0,0x38($sp)
|
|
/* f0a52c0: 0c006bab */ jal modelGetNodeRwData
|
|
/* f0a52c4: 00402825 */ or $a1,$v0,$zero
|
|
/* f0a52c8: 10400003 */ beqz $v0,.NB0f0a52d8
|
|
/* f0a52cc: 3c06800a */ lui $a2,0x800a
|
|
/* f0a52d0: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f0a52d4: ac4d0000 */ sw $t5,0x0($v0)
|
|
.NB0f0a52d8:
|
|
/* f0a52d8: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0a52dc: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0a52e0: 8fa40038 */ lw $a0,0x38($sp)
|
|
/* f0a52e4: 8fa500e0 */ lw $a1,0xe0($sp)
|
|
/* f0a52e8: 24c616b8 */ addiu $a2,$a2,0x16b8
|
|
/* f0a52ec: 8fa70144 */ lw $a3,0x144($sp)
|
|
/* f0a52f0: 0fc1f99c */ jal tvscreenRender
|
|
/* f0a52f4: afa00010 */ sw $zero,0x10($sp)
|
|
/* f0a52f8: afa20144 */ sw $v0,0x144($sp)
|
|
.NB0f0a52fc:
|
|
/* f0a52fc: 8faf0144 */ lw $t7,0x144($sp)
|
|
/* f0a5300: 8e250284 */ lw $a1,0x284($s1)
|
|
/* f0a5304: 240c0004 */ addiu $t4,$zero,0x4
|
|
/* f0a5308: afac0134 */ sw $t4,0x134($sp)
|
|
/* f0a530c: afaf0110 */ sw $t7,0x110($sp)
|
|
/* f0a5310: 8ca300d8 */ lw $v1,0xd8($a1)
|
|
/* f0a5314: 3c078007 */ lui $a3,0x8007
|
|
/* f0a5318: 14600013 */ bnez $v1,.NB0f0a5368
|
|
/* f0a531c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5320: 8ce72e24 */ lw $a3,0x2e24($a3)
|
|
/* f0a5324: 14e00010 */ bnez $a3,.NB0f0a5368
|
|
/* f0a5328: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a532c: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a5330: 50400007 */ beqzl $v0,.NB0f0a5350
|
|
/* f0a5334: 8caa1c54 */ lw $t2,0x1c54($a1)
|
|
/* f0a5338: 1040000b */ beqz $v0,.NB0f0a5368
|
|
/* f0a533c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5340: 80490037 */ lb $t1,0x37($v0)
|
|
/* f0a5344: 15200008 */ bnez $t1,.NB0f0a5368
|
|
/* f0a5348: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a534c: 8caa1c54 */ lw $t2,0x1c54($a1)
|
|
.NB0f0a5350:
|
|
/* f0a5350: 8ca800c4 */ lw $t0,0xc4($a1)
|
|
/* f0a5354: 0140c027 */ nor $t8,$t2,$zero
|
|
/* f0a5358: 01185824 */ and $t3,$t0,$t8
|
|
/* f0a535c: 31790001 */ andi $t9,$t3,0x1
|
|
/* f0a5360: 57200016 */ bnezl $t9,.NB0f0a53bc
|
|
/* f0a5364: 92681615 */ lbu $t0,0x1615($s3)
|
|
.NB0f0a5368:
|
|
/* f0a5368: 14600078 */ bnez $v1,.NB0f0a554c
|
|
/* f0a536c: 3c078007 */ lui $a3,0x8007
|
|
/* f0a5370: 8ce72e24 */ lw $a3,0x2e24($a3)
|
|
/* f0a5374: 54e00076 */ bnezl $a3,.NB0f0a5550
|
|
/* f0a5378: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a537c: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a5380: 50400007 */ beqzl $v0,.NB0f0a53a0
|
|
/* f0a5384: 8caf1c54 */ lw $t7,0x1c54($a1)
|
|
/* f0a5388: 50400071 */ beqzl $v0,.NB0f0a5550
|
|
/* f0a538c: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a5390: 804d0037 */ lb $t5,0x37($v0)
|
|
/* f0a5394: 55a0006e */ bnezl $t5,.NB0f0a5550
|
|
/* f0a5398: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a539c: 8caf1c54 */ lw $t7,0x1c54($a1)
|
|
.NB0f0a53a0:
|
|
/* f0a53a0: 8cae00c4 */ lw $t6,0xc4($a1)
|
|
/* f0a53a4: 01e06027 */ nor $t4,$t7,$zero
|
|
/* f0a53a8: 01cc4824 */ and $t1,$t6,$t4
|
|
/* f0a53ac: 312a0008 */ andi $t2,$t1,0x8
|
|
/* f0a53b0: 51400067 */ beqzl $t2,.NB0f0a5550
|
|
/* f0a53b4: 926d1614 */ lbu $t5,0x1614($s3)
|
|
/* f0a53b8: 92681615 */ lbu $t0,0x1615($s3)
|
|
.NB0f0a53bc:
|
|
/* f0a53bc: 92781614 */ lbu $t8,0x1614($s3)
|
|
/* f0a53c0: 26641614 */ addiu $a0,$s3,0x1614
|
|
/* f0a53c4: 0118082a */ slt $at,$t0,$t8
|
|
/* f0a53c8: 50200009 */ beqzl $at,.NB0f0a53f0
|
|
/* f0a53cc: 90820002 */ lbu $v0,0x2($a0)
|
|
/* f0a53d0: 90830000 */ lbu $v1,0x0($a0)
|
|
/* f0a53d4: 908b0002 */ lbu $t3,0x2($a0)
|
|
/* f0a53d8: 0163082a */ slt $at,$t3,$v1
|
|
/* f0a53dc: 50200004 */ beqzl $at,.NB0f0a53f0
|
|
/* f0a53e0: 90820002 */ lbu $v0,0x2($a0)
|
|
/* f0a53e4: 1000000a */ beqz $zero,.NB0f0a5410
|
|
/* f0a53e8: 00601025 */ or $v0,$v1,$zero
|
|
/* f0a53ec: 90820002 */ lbu $v0,0x2($a0)
|
|
.NB0f0a53f0:
|
|
/* f0a53f0: 90860001 */ lbu $a2,0x1($a0)
|
|
/* f0a53f4: 00401825 */ or $v1,$v0,$zero
|
|
/* f0a53f8: 0046082a */ slt $at,$v0,$a2
|
|
/* f0a53fc: 10200003 */ beqz $at,.NB0f0a540c
|
|
/* f0a5400: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5404: 10000001 */ beqz $zero,.NB0f0a540c
|
|
/* f0a5408: 00c01825 */ or $v1,$a2,$zero
|
|
.NB0f0a540c:
|
|
/* f0a540c: 00601025 */ or $v0,$v1,$zero
|
|
.NB0f0a5410:
|
|
/* f0a5410: 90890003 */ lbu $t1,0x3($a0)
|
|
/* f0a5414: 0002ce00 */ sll $t9,$v0,0x18
|
|
/* f0a5418: 00026c00 */ sll $t5,$v0,0x10
|
|
/* f0a541c: 032d7825 */ or $t7,$t9,$t5
|
|
/* f0a5420: 00027200 */ sll $t6,$v0,0x8
|
|
/* f0a5424: 01ee6025 */ or $t4,$t7,$t6
|
|
/* f0a5428: 012c5021 */ addu $t2,$t1,$t4
|
|
/* f0a542c: afaa0138 */ sw $t2,0x138($sp)
|
|
/* f0a5430: 8ca300d8 */ lw $v1,0xd8($a1)
|
|
/* f0a5434: 14600021 */ bnez $v1,.NB0f0a54bc
|
|
/* f0a5438: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a543c: 14e0001f */ bnez $a3,.NB0f0a54bc
|
|
/* f0a5440: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5444: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a5448: 50400007 */ beqzl $v0,.NB0f0a5468
|
|
/* f0a544c: 8cab1c54 */ lw $t3,0x1c54($a1)
|
|
/* f0a5450: 1040001a */ beqz $v0,.NB0f0a54bc
|
|
/* f0a5454: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5458: 80480037 */ lb $t0,0x37($v0)
|
|
/* f0a545c: 15000017 */ bnez $t0,.NB0f0a54bc
|
|
/* f0a5460: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5464: 8cab1c54 */ lw $t3,0x1c54($a1)
|
|
.NB0f0a5468:
|
|
/* f0a5468: 8cb800c4 */ lw $t8,0xc4($a1)
|
|
/* f0a546c: 3c02800a */ lui $v0,0x800a
|
|
/* f0a5470: 0160c827 */ nor $t9,$t3,$zero
|
|
/* f0a5474: 03196824 */ and $t5,$t8,$t9
|
|
/* f0a5478: 31af0001 */ andi $t7,$t5,0x1
|
|
/* f0a547c: 11e0000f */ beqz $t7,.NB0f0a54bc
|
|
/* f0a5480: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5484: 9042122f */ lbu $v0,0x122f($v0)
|
|
/* f0a5488: 3c06800a */ lui $a2,0x800a
|
|
/* f0a548c: 90c61230 */ lbu $a2,0x1230($a2)
|
|
/* f0a5490: 00027600 */ sll $t6,$v0,0x18
|
|
/* f0a5494: 00024c00 */ sll $t1,$v0,0x10
|
|
/* f0a5498: 01c96025 */ or $t4,$t6,$t1
|
|
/* f0a549c: 00025200 */ sll $t2,$v0,0x8
|
|
/* f0a54a0: 018a4025 */ or $t0,$t4,$t2
|
|
/* f0a54a4: afa200a8 */ sw $v0,0xa8($sp)
|
|
/* f0a54a8: afa200ac */ sw $v0,0xac($sp)
|
|
/* f0a54ac: afa200b0 */ sw $v0,0xb0($sp)
|
|
/* f0a54b0: 00c8a821 */ addu $s5,$a2,$t0
|
|
/* f0a54b4: 1000001f */ beqz $zero,.NB0f0a5534
|
|
/* f0a54b8: afa600b4 */ sw $a2,0xb4($sp)
|
|
.NB0f0a54bc:
|
|
/* f0a54bc: 5460001e */ bnezl $v1,.NB0f0a5538
|
|
/* f0a54c0: 8fb900e4 */ lw $t9,0xe4($sp)
|
|
/* f0a54c4: 54e0001c */ bnezl $a3,.NB0f0a5538
|
|
/* f0a54c8: 8fb900e4 */ lw $t9,0xe4($sp)
|
|
/* f0a54cc: 8ca20480 */ lw $v0,0x480($a1)
|
|
/* f0a54d0: 50400007 */ beqzl $v0,.NB0f0a54f0
|
|
/* f0a54d4: 8cb91c54 */ lw $t9,0x1c54($a1)
|
|
/* f0a54d8: 50400017 */ beqzl $v0,.NB0f0a5538
|
|
/* f0a54dc: 8fb900e4 */ lw $t9,0xe4($sp)
|
|
/* f0a54e0: 804b0037 */ lb $t3,0x37($v0)
|
|
/* f0a54e4: 55600014 */ bnezl $t3,.NB0f0a5538
|
|
/* f0a54e8: 8fb900e4 */ lw $t9,0xe4($sp)
|
|
/* f0a54ec: 8cb91c54 */ lw $t9,0x1c54($a1)
|
|
.NB0f0a54f0:
|
|
/* f0a54f0: 8cb800c4 */ lw $t8,0xc4($a1)
|
|
/* f0a54f4: 240200ff */ addiu $v0,$zero,0xff
|
|
/* f0a54f8: 03206827 */ nor $t5,$t9,$zero
|
|
/* f0a54fc: 030d7824 */ and $t7,$t8,$t5
|
|
/* f0a5500: 31ee0008 */ andi $t6,$t7,0x8
|
|
/* f0a5504: 11c0000b */ beqz $t6,.NB0f0a5534
|
|
/* f0a5508: 24050080 */ addiu $a1,$zero,0x80
|
|
/* f0a550c: 00024e00 */ sll $t1,$v0,0x18
|
|
/* f0a5510: 00006400 */ sll $t4,$zero,0x10
|
|
/* f0a5514: 012c5025 */ or $t2,$t1,$t4
|
|
/* f0a5518: 00004200 */ sll $t0,$zero,0x8
|
|
/* f0a551c: 01485825 */ or $t3,$t2,$t0
|
|
/* f0a5520: 00aba821 */ addu $s5,$a1,$t3
|
|
/* f0a5524: afa20098 */ sw $v0,0x98($sp)
|
|
/* f0a5528: afa0009c */ sw $zero,0x9c($sp)
|
|
/* f0a552c: afa000a0 */ sw $zero,0xa0($sp)
|
|
/* f0a5530: afa500a4 */ sw $a1,0xa4($sp)
|
|
.NB0f0a5534:
|
|
/* f0a5534: 8fb900e4 */ lw $t9,0xe4($sp)
|
|
.NB0f0a5538:
|
|
/* f0a5538: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a553c: 5721003d */ bnel $t9,$at,.NB0f0a5634
|
|
/* f0a5540: 8e6f00bc */ lw $t7,0xbc($s3)
|
|
/* f0a5544: 1000003a */ beqz $zero,.NB0f0a5630
|
|
/* f0a5548: afb50138 */ sw $s5,0x138($sp)
|
|
.NB0f0a554c:
|
|
/* f0a554c: 926d1614 */ lbu $t5,0x1614($s3)
|
|
.NB0f0a5550:
|
|
/* f0a5550: 92781617 */ lbu $t8,0x1617($s3)
|
|
/* f0a5554: 92691615 */ lbu $t1,0x1615($s3)
|
|
/* f0a5558: 92681616 */ lbu $t0,0x1616($s3)
|
|
/* f0a555c: 000d7e00 */ sll $t7,$t5,0x18
|
|
/* f0a5560: 030f7025 */ or $t6,$t8,$t7
|
|
/* f0a5564: 00096400 */ sll $t4,$t1,0x10
|
|
/* f0a5568: 01cc5025 */ or $t2,$t6,$t4
|
|
/* f0a556c: 00085a00 */ sll $t3,$t0,0x8
|
|
/* f0a5570: 014bc825 */ or $t9,$t2,$t3
|
|
/* f0a5574: afb90138 */ sw $t9,0x138($sp)
|
|
/* f0a5578: 920d0000 */ lbu $t5,0x0($s0)
|
|
/* f0a557c: 24010006 */ addiu $at,$zero,0x6
|
|
/* f0a5580: 0320a825 */ or $s5,$t9,$zero
|
|
/* f0a5584: 15a1002a */ bne $t5,$at,.NB0f0a5630
|
|
/* f0a5588: 3c04ff00 */ lui $a0,0xff00
|
|
/* f0a558c: 3c014248 */ lui $at,0x4248
|
|
/* f0a5590: 44812000 */ mtc1 $at,$f4
|
|
/* f0a5594: c612023c */ lwc1 $f18,0x23c($s0)
|
|
/* f0a5598: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f0a559c: 3c014f00 */ lui $at,0x4f00
|
|
/* f0a55a0: 46049182 */ mul.s $f6,$f18,$f4
|
|
/* f0a55a4: 3484007f */ ori $a0,$a0,0x7f
|
|
/* f0a55a8: 4458f800 */ cfc1 $t8,$31
|
|
/* f0a55ac: 44c6f800 */ ctc1 $a2,$31
|
|
/* f0a55b0: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a55b4: 46003224 */ cvt.w.s $f8,$f6
|
|
/* f0a55b8: 4446f800 */ cfc1 $a2,$31
|
|
/* f0a55bc: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a55c0: 30c60078 */ andi $a2,$a2,0x78
|
|
/* f0a55c4: 50c00013 */ beqzl $a2,.NB0f0a5614
|
|
/* f0a55c8: 44064000 */ mfc1 $a2,$f8
|
|
/* f0a55cc: 44814000 */ mtc1 $at,$f8
|
|
/* f0a55d0: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f0a55d4: 46083201 */ sub.s $f8,$f6,$f8
|
|
/* f0a55d8: 44c6f800 */ ctc1 $a2,$31
|
|
/* f0a55dc: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a55e0: 46004224 */ cvt.w.s $f8,$f8
|
|
/* f0a55e4: 4446f800 */ cfc1 $a2,$31
|
|
/* f0a55e8: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a55ec: 30c60078 */ andi $a2,$a2,0x78
|
|
/* f0a55f0: 14c00005 */ bnez $a2,.NB0f0a5608
|
|
/* f0a55f4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a55f8: 44064000 */ mfc1 $a2,$f8
|
|
/* f0a55fc: 3c018000 */ lui $at,0x8000
|
|
/* f0a5600: 10000007 */ beqz $zero,.NB0f0a5620
|
|
/* f0a5604: 00c13025 */ or $a2,$a2,$at
|
|
.NB0f0a5608:
|
|
/* f0a5608: 10000005 */ beqz $zero,.NB0f0a5620
|
|
/* f0a560c: 2406ffff */ addiu $a2,$zero,-1
|
|
/* f0a5610: 44064000 */ mfc1 $a2,$f8
|
|
.NB0f0a5614:
|
|
/* f0a5614: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5618: 04c0fffb */ bltz $a2,.NB0f0a5608
|
|
/* f0a561c: 00000000 */ sll $zero,$zero,0x0
|
|
.NB0f0a5620:
|
|
/* f0a5620: 44d8f800 */ ctc1 $t8,$31
|
|
/* f0a5624: 0fc01990 */ jal colourBlend
|
|
/* f0a5628: 03202825 */ or $a1,$t9,$zero
|
|
/* f0a562c: afa20138 */ sw $v0,0x138($sp)
|
|
.NB0f0a5630:
|
|
/* f0a5630: 8e6f00bc */ lw $t7,0xbc($s3)
|
|
.NB0f0a5634:
|
|
/* f0a5634: 0fc089b4 */ jal chrGetCloakAlpha
|
|
/* f0a5638: 8de40004 */ lw $a0,0x4($t7)
|
|
/* f0a563c: 284100ff */ slti $at,$v0,0xff
|
|
/* f0a5640: 1020000f */ beqz $at,.NB0f0a5680
|
|
/* f0a5644: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0a5648: 44825000 */ mtc1 $v0,$f10
|
|
/* f0a564c: 3c017f1a */ lui $at,0x7f1a
|
|
/* f0a5650: c4326dd8 */ lwc1 $f18,0x6dd8($at)
|
|
/* f0a5654: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f0a5658: 8fa40138 */ lw $a0,0x138($sp)
|
|
/* f0a565c: 240e0005 */ addiu $t6,$zero,0x5
|
|
/* f0a5660: afae0134 */ sw $t6,0x134($sp)
|
|
/* f0a5664: afa4013c */ sw $a0,0x13c($sp)
|
|
/* f0a5668: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0a566c: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0a5670: 44033000 */ mfc1 $v1,$f6
|
|
/* f0a5674: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5678: 24750041 */ addiu $s5,$v1,0x41
|
|
/* f0a567c: afb50138 */ sw $s5,0x138($sp)
|
|
.NB0f0a5680:
|
|
/* f0a5680: 0c005dbc */ jal mtx00016760
|
|
/* f0a5684: afac0108 */ sw $t4,0x108($sp)
|
|
/* f0a5688: 8e020218 */ lw $v0,0x218($s0)
|
|
/* f0a568c: 5040000f */ beqzl $v0,.NB0f0a56cc
|
|
/* f0a5690: 8fa400e4 */ lw $a0,0xe4($sp)
|
|
/* f0a5694: 8c450018 */ lw $a1,0x18($v0)
|
|
/* f0a5698: 27a40104 */ addiu $a0,$sp,0x104
|
|
/* f0a569c: 0c008be3 */ jal modelRender
|
|
/* f0a56a0: afa50090 */ sw $a1,0x90($sp)
|
|
/* f0a56a4: 8fa60090 */ lw $a2,0x90($sp)
|
|
/* f0a56a8: 8cc80008 */ lw $t0,0x8($a2)
|
|
/* f0a56ac: 8cc4000c */ lw $a0,0xc($a2)
|
|
/* f0a56b0: 0fc303f0 */ jal func0f0c33f0
|
|
/* f0a56b4: 8505000e */ lh $a1,0xe($t0)
|
|
/* f0a56b8: 8e0a021c */ lw $t2,0x21c($s0)
|
|
/* f0a56bc: 51400003 */ beqzl $t2,.NB0f0a56cc
|
|
/* f0a56c0: 8fa400e4 */ lw $a0,0xe4($sp)
|
|
/* f0a56c4: ae000218 */ sw $zero,0x218($s0)
|
|
/* f0a56c8: 8fa400e4 */ lw $a0,0xe4($sp)
|
|
.NB0f0a56cc:
|
|
/* f0a56cc: 0fc2bd48 */ jal weaponHasFlag
|
|
/* f0a56d0: 24050020 */ addiu $a1,$zero,0x20
|
|
/* f0a56d4: 1040000e */ beqz $v0,.NB0f0a5710
|
|
/* f0a56d8: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a56dc: 8fab0110 */ lw $t3,0x110($sp)
|
|
/* f0a56e0: 3c18b600 */ lui $t8,0xb600
|
|
/* f0a56e4: 24193000 */ addiu $t9,$zero,0x3000
|
|
/* f0a56e8: 256d0008 */ addiu $t5,$t3,0x8
|
|
/* f0a56ec: afad0110 */ sw $t5,0x110($sp)
|
|
/* f0a56f0: ad790004 */ sw $t9,0x4($t3)
|
|
/* f0a56f4: 16800004 */ bnez $s4,.NB0f0a5708
|
|
/* f0a56f8: ad780000 */ sw $t8,0x0($t3)
|
|
/* f0a56fc: 240f0003 */ addiu $t7,$zero,0x3
|
|
/* f0a5700: 10000003 */ beqz $zero,.NB0f0a5710
|
|
/* f0a5704: afaf0140 */ sw $t7,0x140($sp)
|
|
.NB0f0a5708:
|
|
/* f0a5708: 24090002 */ addiu $t1,$zero,0x2
|
|
/* f0a570c: afa90140 */ sw $t1,0x140($sp)
|
|
.NB0f0a5710:
|
|
/* f0a5710: 8e2e006c */ lw $t6,0x6c($s1)
|
|
/* f0a5714: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a5718: 00002025 */ or $a0,$zero,$zero
|
|
/* f0a571c: 11c00003 */ beqz $t6,.NB0f0a572c
|
|
/* f0a5720: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a5724: 10000001 */ beqz $zero,.NB0f0a572c
|
|
/* f0a5728: 24050001 */ addiu $a1,$zero,0x1
|
|
.NB0f0a572c:
|
|
/* f0a572c: 8e2c0068 */ lw $t4,0x68($s1)
|
|
/* f0a5730: 00001825 */ or $v1,$zero,$zero
|
|
/* f0a5734: 11800003 */ beqz $t4,.NB0f0a5744
|
|
/* f0a5738: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a573c: 10000001 */ beqz $zero,.NB0f0a5744
|
|
/* f0a5740: 24040001 */ addiu $a0,$zero,0x1
|
|
.NB0f0a5744:
|
|
/* f0a5744: 8e280064 */ lw $t0,0x64($s1)
|
|
/* f0a5748: 11000003 */ beqz $t0,.NB0f0a5758
|
|
/* f0a574c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5750: 10000001 */ beqz $zero,.NB0f0a5758
|
|
/* f0a5754: 24020001 */ addiu $v0,$zero,0x1
|
|
.NB0f0a5758:
|
|
/* f0a5758: 8e2a0070 */ lw $t2,0x70($s1)
|
|
/* f0a575c: 11400003 */ beqz $t2,.NB0f0a576c
|
|
/* f0a5760: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5764: 10000001 */ beqz $zero,.NB0f0a576c
|
|
/* f0a5768: 24030001 */ addiu $v1,$zero,0x1
|
|
.NB0f0a576c:
|
|
/* f0a576c: 00625821 */ addu $t3,$v1,$v0
|
|
/* f0a5770: 01646821 */ addu $t5,$t3,$a0
|
|
/* f0a5774: 01a5c021 */ addu $t8,$t5,$a1
|
|
/* f0a5778: 17010036 */ bne $t8,$at,.NB0f0a5854
|
|
/* f0a577c: 24050041 */ addiu $a1,$zero,0x41
|
|
/* f0a5780: 0c006ea3 */ jal modelGetPart
|
|
/* f0a5784: 8e04038c */ lw $a0,0x38c($s0)
|
|
/* f0a5788: 50400033 */ beqzl $v0,.NB0f0a5858
|
|
/* f0a578c: 27a40104 */ addiu $a0,$sp,0x104
|
|
/* f0a5790: 8c440004 */ lw $a0,0x4($v0)
|
|
/* f0a5794: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a5798: 84990010 */ lh $t9,0x10($a0)
|
|
/* f0a579c: 5b20002e */ blezl $t9,.NB0f0a5858
|
|
/* f0a57a0: 27a40104 */ addiu $a0,$sp,0x104
|
|
/* f0a57a4: 8e2c0034 */ lw $t4,0x34($s1)
|
|
.NB0f0a57a8:
|
|
/* f0a57a8: 8c8f000c */ lw $t7,0xc($a0)
|
|
/* f0a57ac: 00054880 */ sll $t1,$a1,0x2
|
|
/* f0a57b0: 01920019 */ multu $t4,$s2
|
|
/* f0a57b4: 01254823 */ subu $t1,$t1,$a1
|
|
/* f0a57b8: 00094880 */ sll $t1,$t1,0x2
|
|
/* f0a57bc: 01e91021 */ addu $v0,$t7,$t1
|
|
/* f0a57c0: 844e000a */ lh $t6,0xa($v0)
|
|
/* f0a57c4: 00056880 */ sll $t5,$a1,0x2
|
|
/* f0a57c8: 01a56823 */ subu $t5,$t5,$a1
|
|
/* f0a57cc: 000d6880 */ sll $t5,$t5,0x2
|
|
/* f0a57d0: 24420002 */ addiu $v0,$v0,0x2
|
|
/* f0a57d4: 00004012 */ mflo $t0
|
|
/* f0a57d8: 01c85023 */ subu $t2,$t6,$t0
|
|
/* f0a57dc: a44a0008 */ sh $t2,0x8($v0)
|
|
/* f0a57e0: 8c8b000c */ lw $t3,0xc($a0)
|
|
/* f0a57e4: 016dc021 */ addu $t8,$t3,$t5
|
|
/* f0a57e8: 8719000a */ lh $t9,0xa($t8)
|
|
/* f0a57ec: 2b21a000 */ slti $at,$t9,-24576
|
|
/* f0a57f0: 50200014 */ beqzl $at,.NB0f0a5844
|
|
/* f0a57f4: 848b0010 */ lh $t3,0x10($a0)
|
|
/* f0a57f8: 848f0010 */ lh $t7,0x10($a0)
|
|
/* f0a57fc: 00001825 */ or $v1,$zero,$zero
|
|
/* f0a5800: 59e00010 */ blezl $t7,.NB0f0a5844
|
|
/* f0a5804: 848b0010 */ lh $t3,0x10($a0)
|
|
/* f0a5808: 8c89000c */ lw $t1,0xc($a0)
|
|
.NB0f0a580c:
|
|
/* f0a580c: 00036080 */ sll $t4,$v1,0x2
|
|
/* f0a5810: 01836023 */ subu $t4,$t4,$v1
|
|
/* f0a5814: 000c6080 */ sll $t4,$t4,0x2
|
|
/* f0a5818: 012c1021 */ addu $v0,$t1,$t4
|
|
/* f0a581c: 844e000a */ lh $t6,0xa($v0)
|
|
/* f0a5820: 24630001 */ addiu $v1,$v1,0x1
|
|
/* f0a5824: 24420002 */ addiu $v0,$v0,0x2
|
|
/* f0a5828: 25c82000 */ addiu $t0,$t6,0x2000
|
|
/* f0a582c: a4480008 */ sh $t0,0x8($v0)
|
|
/* f0a5830: 848a0010 */ lh $t2,0x10($a0)
|
|
/* f0a5834: 006a082a */ slt $at,$v1,$t2
|
|
/* f0a5838: 5420fff4 */ bnezl $at,.NB0f0a580c
|
|
/* f0a583c: 8c89000c */ lw $t1,0xc($a0)
|
|
/* f0a5840: 848b0010 */ lh $t3,0x10($a0)
|
|
.NB0f0a5844:
|
|
/* f0a5844: 24a50001 */ addiu $a1,$a1,0x1
|
|
/* f0a5848: 00ab082a */ slt $at,$a1,$t3
|
|
/* f0a584c: 5420ffd6 */ bnezl $at,.NB0f0a57a8
|
|
/* f0a5850: 8e2c0034 */ lw $t4,0x34($s1)
|
|
.NB0f0a5854:
|
|
/* f0a5854: 27a40104 */ addiu $a0,$sp,0x104
|
|
.NB0f0a5858:
|
|
/* f0a5858: 0c008be3 */ jal modelRender
|
|
/* f0a585c: 8fa50038 */ lw $a1,0x38($sp)
|
|
/* f0a5860: 8e6d1594 */ lw $t5,0x1594($s3)
|
|
/* f0a5864: 3c188007 */ lui $t8,0x8007
|
|
/* f0a5868: 51a00013 */ beqzl $t5,.NB0f0a58b8
|
|
/* f0a586c: 8fa90110 */ lw $t1,0x110($sp)
|
|
/* f0a5870: 8f18299c */ lw $t8,0x299c($t8)
|
|
/* f0a5874: 8fb90138 */ lw $t9,0x138($sp)
|
|
/* f0a5878: 5300000f */ beqzl $t8,.NB0f0a58b8
|
|
/* f0a587c: 8fa90110 */ lw $t1,0x110($sp)
|
|
/* f0a5880: afb90078 */ sw $t9,0x78($sp)
|
|
/* f0a5884: 8e0f0390 */ lw $t7,0x390($s0)
|
|
/* f0a5888: 26050534 */ addiu $a1,$s0,0x534
|
|
/* f0a588c: 00a02025 */ or $a0,$a1,$zero
|
|
/* f0a5890: ae0f0540 */ sw $t7,0x540($s0)
|
|
/* f0a5894: 0c007728 */ jal model0001cc20
|
|
/* f0a5898: afa50050 */ sw $a1,0x50($sp)
|
|
/* f0a589c: 8fa50050 */ lw $a1,0x50($sp)
|
|
/* f0a58a0: afb50138 */ sw $s5,0x138($sp)
|
|
/* f0a58a4: 0c008be3 */ jal modelRender
|
|
/* f0a58a8: 27a40104 */ addiu $a0,$sp,0x104
|
|
/* f0a58ac: 8fa40078 */ lw $a0,0x78($sp)
|
|
/* f0a58b0: afa40138 */ sw $a0,0x138($sp)
|
|
/* f0a58b4: 8fa90110 */ lw $t1,0x110($sp)
|
|
.NB0f0a58b8:
|
|
/* f0a58b8: 8fa400e4 */ lw $a0,0xe4($sp)
|
|
/* f0a58bc: 24050020 */ addiu $a1,$zero,0x20
|
|
/* f0a58c0: 0fc2bd48 */ jal weaponHasFlag
|
|
/* f0a58c4: afa90144 */ sw $t1,0x144($sp)
|
|
/* f0a58c8: 10400007 */ beqz $v0,.NB0f0a58e8
|
|
/* f0a58cc: 8fac0144 */ lw $t4,0x144($sp)
|
|
/* f0a58d0: 258e0008 */ addiu $t6,$t4,0x8
|
|
/* f0a58d4: afae0144 */ sw $t6,0x144($sp)
|
|
/* f0a58d8: 3c08b600 */ lui $t0,0xb600
|
|
/* f0a58dc: 240a3000 */ addiu $t2,$zero,0x3000
|
|
/* f0a58e0: ad8a0004 */ sw $t2,0x4($t4)
|
|
/* f0a58e4: ad880000 */ sw $t0,0x0($t4)
|
|
.NB0f0a58e8:
|
|
/* f0a58e8: 8e0b038c */ lw $t3,0x38c($s0)
|
|
/* f0a58ec: 8e040390 */ lw $a0,0x390($s0)
|
|
/* f0a58f0: 0fc303f0 */ jal func0f0c33f0
|
|
/* f0a58f4: 8565000e */ lh $a1,0xe($t3)
|
|
/* f0a58f8: 0c005dc5 */ jal mtx00016784
|
|
/* f0a58fc: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5900: 8fad0144 */ lw $t5,0x144($sp)
|
|
/* f0a5904: 3c19bc00 */ lui $t9,0xbc00
|
|
/* f0a5908: 3739000e */ ori $t9,$t9,0xe
|
|
/* f0a590c: 25b80008 */ addiu $t8,$t5,0x8
|
|
/* f0a5910: afb80144 */ sw $t8,0x144($sp)
|
|
/* f0a5914: adb90000 */ sw $t9,0x0($t5)
|
|
/* f0a5918: 0c002b3b */ jal viGetPerspScale
|
|
/* f0a591c: afad0070 */ sw $t5,0x70($sp)
|
|
/* f0a5920: 8fa30070 */ lw $v1,0x70($sp)
|
|
/* f0a5924: ac620004 */ sw $v0,0x4($v1)
|
|
.NB0f0a5928:
|
|
/* f0a5928: 26940001 */ addiu $s4,$s4,0x1
|
|
/* f0a592c: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0a5930: 1681fe0c */ bne $s4,$at,.NB0f0a5164
|
|
/* f0a5934: 261007a4 */ addiu $s0,$s0,0x7a4
|
|
/* f0a5938: afb500dc */ sw $s5,0xdc($sp)
|
|
/* f0a593c: 0fc2b250 */ jal casingsRender
|
|
/* f0a5940: 27a40144 */ addiu $a0,$sp,0x144
|
|
/* f0a5944: 0fc5c3ce */ jal mblur0f176298
|
|
/* f0a5948: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a594c: 0fc5c3d3 */ jal mblur0f1762ac
|
|
/* f0a5950: 8fa40144 */ lw $a0,0x144($sp)
|
|
/* f0a5954: afa20144 */ sw $v0,0x144($sp)
|
|
/* f0a5958: 0c002cd4 */ jal vi0000b1d0
|
|
/* f0a595c: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a5960: 244f0008 */ addiu $t7,$v0,0x8
|
|
/* f0a5964: afaf0144 */ sw $t7,0x144($sp)
|
|
/* f0a5968: 0c002fb5 */ jal viGetViewLeft
|
|
/* f0a596c: 00408825 */ or $s1,$v0,$zero
|
|
/* f0a5970: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a5974: 00104c03 */ sra $t1,$s0,0x10
|
|
/* f0a5978: 0c002fb9 */ jal viGetViewTop
|
|
/* f0a597c: 01208025 */ or $s0,$t1,$zero
|
|
/* f0a5980: 44824000 */ mtc1 $v0,$f8
|
|
/* f0a5984: 44902000 */ mtc1 $s0,$f4
|
|
/* f0a5988: 3c014080 */ lui $at,0x4080
|
|
/* f0a598c: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0a5990: 44810000 */ mtc1 $at,$f0
|
|
/* f0a5994: 3c01ed00 */ lui $at,0xed00
|
|
/* f0a5998: 468021a0 */ cvt.s.w $f6,$f4
|
|
/* f0a599c: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f0a59a0: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a59a4: 46003202 */ mul.s $f8,$f6,$f0
|
|
/* f0a59a8: 4600848d */ trunc.w.s $f18,$f16
|
|
/* f0a59ac: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0a59b0: 440e9000 */ mfc1 $t6,$f18
|
|
/* f0a59b4: 440d5000 */ mfc1 $t5,$f10
|
|
/* f0a59b8: 31c80fff */ andi $t0,$t6,0xfff
|
|
/* f0a59bc: 01015025 */ or $t2,$t0,$at
|
|
/* f0a59c0: 31b80fff */ andi $t8,$t5,0xfff
|
|
/* f0a59c4: 0018cb00 */ sll $t9,$t8,0xc
|
|
/* f0a59c8: 01597825 */ or $t7,$t2,$t9
|
|
/* f0a59cc: 0c002f97 */ jal viGetViewWidth
|
|
/* f0a59d0: ae2f0000 */ sw $t7,0x0($s1)
|
|
/* f0a59d4: 00029400 */ sll $s2,$v0,0x10
|
|
/* f0a59d8: 00124c03 */ sra $t1,$s2,0x10
|
|
/* f0a59dc: 0c002fb5 */ jal viGetViewLeft
|
|
/* f0a59e0: 01209025 */ or $s2,$t1,$zero
|
|
/* f0a59e4: 0002a400 */ sll $s4,$v0,0x10
|
|
/* f0a59e8: 00146403 */ sra $t4,$s4,0x10
|
|
/* f0a59ec: 0c002fb9 */ jal viGetViewTop
|
|
/* f0a59f0: 0180a025 */ or $s4,$t4,$zero
|
|
/* f0a59f4: 00028400 */ sll $s0,$v0,0x10
|
|
/* f0a59f8: 00107403 */ sra $t6,$s0,0x10
|
|
/* f0a59fc: 0c002f9b */ jal viGetViewHeight
|
|
/* f0a5a00: 01c08025 */ or $s0,$t6,$zero
|
|
/* f0a5a04: 00504021 */ addu $t0,$v0,$s0
|
|
/* f0a5a08: 44888000 */ mtc1 $t0,$f16
|
|
/* f0a5a0c: 02925021 */ addu $t2,$s4,$s2
|
|
/* f0a5a10: 448a5000 */ mtc1 $t2,$f10
|
|
/* f0a5a14: 468084a0 */ cvt.s.w $f18,$f16
|
|
/* f0a5a18: 3c014080 */ lui $at,0x4080
|
|
/* f0a5a1c: 44812000 */ mtc1 $at,$f4
|
|
/* f0a5a20: 46805420 */ cvt.s.w $f16,$f10
|
|
/* f0a5a24: 46049182 */ mul.s $f6,$f18,$f4
|
|
/* f0a5a28: 44819000 */ mtc1 $at,$f18
|
|
/* f0a5a2c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a5a30: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0a5a34: 4600320d */ trunc.w.s $f8,$f6
|
|
/* f0a5a38: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0a5a3c: 440d4000 */ mfc1 $t5,$f8
|
|
/* f0a5a40: 440f3000 */ mfc1 $t7,$f6
|
|
/* f0a5a44: 31b80fff */ andi $t8,$t5,0xfff
|
|
/* f0a5a48: 31e90fff */ andi $t1,$t7,0xfff
|
|
/* f0a5a4c: 00096300 */ sll $t4,$t1,0xc
|
|
/* f0a5a50: 030c7025 */ or $t6,$t8,$t4
|
|
/* f0a5a54: ae2e0004 */ sw $t6,0x4($s1)
|
|
/* f0a5a58: 8fab0148 */ lw $t3,0x148($sp)
|
|
/* f0a5a5c: 8fa80144 */ lw $t0,0x144($sp)
|
|
/* f0a5a60: ad680000 */ sw $t0,0x0($t3)
|
|
/* f0a5a64: 8fbf0034 */ lw $ra,0x34($sp)
|
|
.NB0f0a5a68:
|
|
/* f0a5a68: 8fb0001c */ lw $s0,0x1c($sp)
|
|
/* f0a5a6c: 8fb10020 */ lw $s1,0x20($sp)
|
|
/* f0a5a70: 8fb20024 */ lw $s2,0x24($sp)
|
|
/* f0a5a74: 8fb30028 */ lw $s3,0x28($sp)
|
|
/* f0a5a78: 8fb4002c */ lw $s4,0x2c($sp)
|
|
/* f0a5a7c: 8fb50030 */ lw $s5,0x30($sp)
|
|
/* f0a5a80: 03e00008 */ jr $ra
|
|
/* f0a5a84: 27bd0148 */ addiu $sp,$sp,0x148
|
|
);
|
|
#endif
|
|
|
|
// Mismatch: Goal uses different codegen for accessing vertices
|
|
//void bgunRender(Gfx **gdlptr)
|
|
//{
|
|
// Gfx *gdl = *gdlptr;
|
|
// struct modelrenderdata renderdata = {NULL, true, 3}; // 10c
|
|
// struct player *player;
|
|
// s32 i;
|
|
//
|
|
// static bool renderhand = true; // var800702dc
|
|
//
|
|
// player = g_Vars.currentplayer;
|
|
//
|
|
// if (player->visionmode == VISIONMODE_XRAY) {
|
|
// for (i = 0; i < 2; i++) {
|
|
// if (g_Vars.currentplayer->hands[i].firedrocket) {
|
|
// g_Vars.currentplayer->hands[i].rocket = NULL;
|
|
// }
|
|
// }
|
|
// return;
|
|
// }
|
|
//
|
|
// gdl = mblurRender(gdl);
|
|
// gdl = vi0000b280(gdl);
|
|
// gdl = vi0000b1d0(gdl);
|
|
//
|
|
// gDPSetScissor(gdl++, G_SC_NON_INTERLACE, viGetViewLeft(), viGetViewTop(),
|
|
// viGetViewLeft() + viGetViewWidth(), viGetViewTop() + viGetViewHeight());
|
|
//
|
|
// gdl = vi0000aca4(gdl, 1.5, 1000);
|
|
//
|
|
// if (g_Vars.currentplayer->teleportstate != TELEPORTSTATE_INACTIVE) {
|
|
// f32 f2;
|
|
//
|
|
// if (optionsGetScreenRatio() == SCREENRATIO_16_9) {
|
|
// f2 = player0f0bd358() * 1.3333334f;
|
|
// } else {
|
|
// f2 = player0f0bd358();
|
|
// }
|
|
//
|
|
// gdl = vi0000b0e8(gdl, 60, f2);
|
|
// }
|
|
//
|
|
// if (PLAYERCOUNT() == 1 && IS8MB()) {
|
|
// gdl = lasersightRenderBeam(gdl);
|
|
// }
|
|
//
|
|
// for (i = 0; i < 2; i++) {
|
|
// struct hand *hand;
|
|
// s32 j;
|
|
// s32 alpha;
|
|
// s32 weaponnum; // ec
|
|
// struct modelnode *node; // e8
|
|
// u32 colour; // e4
|
|
//
|
|
// hand = player->hands + i;
|
|
//
|
|
// weaponnum = bgunGetWeaponNum2(i);
|
|
//
|
|
// if (hand->visible) {
|
|
// gdl = beamRender(gdl, &hand->beam, 0, 0);
|
|
//
|
|
// if (weaponHasFlag(hand->gset.weaponnum, WEAPONFLAG_00008000)) {
|
|
// gSPNumLights(gdl++, 1);
|
|
// gSPLight(gdl++, &var80070098, 1);
|
|
// gSPLight(gdl++, &var80070090, 2);
|
|
// gSPLookAt(gdl++, camGetLookAt());
|
|
// }
|
|
//
|
|
// gSPPerspNormalize(gdl++, mtx00016dcc(0, 300));
|
|
//
|
|
// // There is support for guns having a TV screen on them
|
|
// // but no guns have this model part so it's not used.
|
|
// node = modelGetPart(hand->gunmodel.filedata, MODELPART_0010);
|
|
//
|
|
// if (node) {
|
|
// union modelrwdata *rwdata = modelGetNodeRwData(&hand->gunmodel, modelGetPart(hand->gunmodel.filedata, MODELPART_0011));
|
|
//
|
|
// if (rwdata) {
|
|
// rwdata->toggle.visible = true;
|
|
// }
|
|
//
|
|
// gdl = tvscreenRender(&hand->gunmodel, node, &var8009cf88, gdl, 0, 1);
|
|
// }
|
|
//
|
|
// renderdata.gdl = gdl;
|
|
// renderdata.unk30 = 4;
|
|
//
|
|
// if (USINGDEVICE(DEVICE_NIGHTVISION) || USINGDEVICE(DEVICE_IRSCANNER)) {
|
|
// // 67c
|
|
// u8 *col = player->gunshadecol;
|
|
// u32 shade;
|
|
// s32 spb0[4];
|
|
// s32 spa0[4];
|
|
//
|
|
// if (col[0] > col[1] && col[0] > col[2]) {
|
|
// shade = col[0];
|
|
// } else if (col[1] > col[2]) {
|
|
// shade = col[1];
|
|
// } else {
|
|
// shade = col[2];
|
|
// }
|
|
//
|
|
// renderdata.envcolour = (shade << 24 | shade << 16 | shade << 8) + col[3];
|
|
//
|
|
// if (USINGDEVICE(DEVICE_NIGHTVISION)) {
|
|
// spb0[0] = var8009caef;
|
|
// spb0[1] = var8009caef;
|
|
// spb0[2] = var8009caef;
|
|
// spb0[3] = var8009caf0;
|
|
//
|
|
// colour = (spb0[0] << 24 | spb0[1] << 16 | spb0[2] << 8) + spb0[3];
|
|
// } else if (USINGDEVICE(DEVICE_IRSCANNER)) {
|
|
// spa0[0] = 0xff;
|
|
// spa0[1] = 0;
|
|
// spa0[2] = 0;
|
|
// spa0[3] = 0x80;
|
|
//
|
|
// colour = (spa0[0] << 24 | spa0[1] << 16 | spa0[2] << 8) + spa0[3];
|
|
// }
|
|
//
|
|
// if (weaponnum == WEAPON_UNARMED) {
|
|
// renderdata.envcolour = colour;
|
|
// }
|
|
// } else {
|
|
// renderdata.envcolour = player->gunshadecol[0] << 24 | player->gunshadecol[1] << 16 | player->gunshadecol[2] << 8 | player->gunshadecol[3];
|
|
// colour = renderdata.envcolour;
|
|
//
|
|
// // 838
|
|
// if (hand->gset.weaponnum == WEAPON_MAULER) {
|
|
// u32 weight = hand->matmot1 * 50.0f;
|
|
// renderdata.envcolour = colourBlend(0xff00007f, renderdata.envcolour, weight);
|
|
// }
|
|
// }
|
|
//
|
|
// // Apply transparency based on player's cloak
|
|
// alpha = chrGetCloakAlpha(player->prop->chr);
|
|
//
|
|
// if (alpha < 255) {
|
|
// colour = (s32) (alpha * 0.74509805f) + 0x41;
|
|
// renderdata.unk30 = 5;
|
|
// renderdata.fogcolour = renderdata.envcolour;
|
|
// renderdata.envcolour = colour;
|
|
// }
|
|
//
|
|
// renderdata.zbufferenabled = true;
|
|
//
|
|
// mtx00016760();
|
|
//
|
|
// // Render rocket launcher's rocket if it's in Jo's hand or in the launcher
|
|
// if (hand->rocket) {
|
|
// struct model *rocketmodel = hand->rocket->base.model; // 98
|
|
// bool sp94 = false;
|
|
//
|
|
//#if VERSION >= VERSION_NTSC_1_0
|
|
// if (rocketmodel && rocketmodel->filedata) {
|
|
// sp94 = true;
|
|
//
|
|
// modelRender(&renderdata, rocketmodel);
|
|
//
|
|
// func0f0c33f0(rocketmodel->matrices, rocketmodel->filedata->nummatrices);
|
|
//
|
|
// if (hand->firedrocket) {
|
|
// hand->rocket = NULL;
|
|
// }
|
|
// }
|
|
//
|
|
// if (sp94);
|
|
//#else
|
|
// modelRender(&renderdata, rocketmodel);
|
|
//
|
|
// func0f0c33f0(rocketmodel->matrices, rocketmodel->filedata->nummatrices);
|
|
//
|
|
// if (hand->firedrocket) {
|
|
// hand->rocket = NULL;
|
|
// }
|
|
//#endif
|
|
// }
|
|
//
|
|
// if (weaponHasFlag(weaponnum, WEAPONFLAG_DUALFLIP)) {
|
|
// gSPClearGeometryMode(renderdata.gdl++, G_CULL_BOTH);
|
|
//
|
|
// if (i == HAND_RIGHT) {
|
|
// renderdata.cullmode = CULLMODE_BACK;
|
|
// } else {
|
|
// renderdata.cullmode = CULLMODE_FRONT;
|
|
// }
|
|
// }
|
|
//
|
|
// // Slide the laser's liquid texture
|
|
// if (PLAYERCOUNT() == 1) {
|
|
// node = modelGetPart(hand->gunmodel.filedata, MODELPART_LASER_0041);
|
|
//
|
|
// // a5c
|
|
// if (node) {
|
|
// struct modelrodata_gundl *rodata;
|
|
// rodata = &node->rodata->gundl;
|
|
//
|
|
// for (j = 0; j < rodata->numvertices; j++) {
|
|
// // a7c
|
|
// s32 stack[2];
|
|
// s32 k;
|
|
//
|
|
// (rodata->vertices + j)->t -= g_Vars.lvupdate240 * PALUP(25);
|
|
//
|
|
// if ((rodata->vertices + j)->t < -0x6000) {
|
|
// for (k = 0; k < rodata->numvertices; k++) {
|
|
// (rodata->vertices + k)->t += 0x2000;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// // Render the gun
|
|
// modelRender(&renderdata, &hand->gunmodel);
|
|
//
|
|
// // Render the hand
|
|
// if (player->gunctrl.handmodeldef && renderhand) {
|
|
// s32 prevcolour = renderdata.envcolour; // 7c
|
|
//
|
|
// hand->handmodel.matrices = hand->gunmodel.matrices;
|
|
//
|
|
// model0001cc20(&hand->handmodel);
|
|
//
|
|
// renderdata.envcolour = colour;
|
|
// modelRender(&renderdata, &hand->handmodel);
|
|
// renderdata.envcolour = prevcolour;
|
|
// }
|
|
//
|
|
// // Clean up
|
|
// gdl = renderdata.gdl;
|
|
//
|
|
// if (weaponHasFlag(weaponnum, WEAPONFLAG_DUALFLIP)) {
|
|
// gSPClearGeometryMode(gdl++, G_CULL_BOTH);
|
|
// }
|
|
//
|
|
// func0f0c33f0(hand->gunmodel.matrices, hand->gunmodel.filedata->nummatrices);
|
|
// mtx00016784();
|
|
//
|
|
// gSPPerspNormalize(gdl++, viGetPerspScale());
|
|
// }
|
|
// }
|
|
//
|
|
// casingsRender(&gdl);
|
|
// mblur0f176298();
|
|
//
|
|
// gdl = mblur0f1762ac(gdl);
|
|
// gdl = vi0000b1d0(gdl);
|
|
//
|
|
// gDPSetScissor(gdl++, G_SC_NON_INTERLACE, viGetViewLeft(), viGetViewTop(),
|
|
// viGetViewLeft() + viGetViewWidth(), viGetViewTop() + viGetViewHeight());
|
|
//
|
|
// *gdlptr = gdl;
|
|
//}
|
|
|
|
/**
|
|
* Find and return an available audio handle out of a pool of four.
|
|
*/
|
|
struct sndstate **bgunAllocateAudioHandle(void)
|
|
{
|
|
s32 i;
|
|
|
|
for (i = 0; i < ARRAYCOUNT(g_BgunAudioHandles); i++) {
|
|
if (g_BgunAudioHandles[i] == NULL) {
|
|
return &g_BgunAudioHandles[i];
|
|
}
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
void bgunPlayPropHitSound(struct gset *gset, struct prop *prop, s32 texturenum)
|
|
{
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
u32 rand1 = random();
|
|
u32 rand2 = random();
|
|
struct sndstate **handle;
|
|
|
|
if (g_Vars.lvupdate240 <= 0) {
|
|
return;
|
|
}
|
|
|
|
if (texturenum >= 0 && texturenum < NUM_TEXTURES
|
|
&& g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]->numsounds == 0) {
|
|
return;
|
|
}
|
|
|
|
if (gset->weaponnum == WEAPON_REMOTEMINE
|
|
|| gset->weaponnum == WEAPON_PROXIMITYMINE
|
|
|| gset->weaponnum == WEAPON_TIMEDMINE
|
|
|| gset->weaponnum == WEAPON_COMMSRIDER
|
|
|| gset->weaponnum == WEAPON_TRACERBUG
|
|
|| gset->weaponnum == WEAPON_TARGETAMPLIFIER
|
|
|| gset->weaponnum == WEAPON_ECMMINE) {
|
|
propsnd0f0939f8(NULL, prop, SFX_80AA, -1, -1, 0, 0, 0, NULL, -1, NULL, -1, -1, -1, -1);
|
|
return;
|
|
}
|
|
|
|
handle = bgunAllocateAudioHandle();
|
|
|
|
if (handle) {
|
|
if (prop->type == PROPTYPE_CHR || prop->type == PROPTYPE_PLAYER) {
|
|
struct chrdata *chr = prop->chr;
|
|
s16 soundnum = -1;
|
|
bool overridden = false;
|
|
s32 spac;
|
|
s32 spa8;
|
|
|
|
if (chrGetShield(chr) > 0) {
|
|
soundnum = SFX_SHIELD_DAMAGE;
|
|
} else if (gset->weaponnum == WEAPON_COMBATKNIFE
|
|
|| gset->weaponnum == WEAPON_COMBATKNIFE // duplicate
|
|
|| gset->weaponnum == WEAPON_BOLT) {
|
|
soundnum = SFX_05F6;
|
|
overridden = true;
|
|
} else if (gset->weaponnum == WEAPON_UNARMED
|
|
|| (gset->weaponfunc == FUNC_SECONDARY
|
|
&& (gset->weaponnum == WEAPON_FALCON2
|
|
|| gset->weaponnum == WEAPON_FALCON2_SILENCER
|
|
|| gset->weaponnum == WEAPON_FALCON2_SCOPE
|
|
|| gset->weaponnum == WEAPON_DY357MAGNUM
|
|
|| gset->weaponnum == WEAPON_DY357LX))) {
|
|
s16 sounds[] = { SFX_002F, SFX_0030, SFX_0031 };
|
|
soundnum = sounds[rand1 % ARRAYCOUNT(sounds)];
|
|
} else {
|
|
s16 sounds[] = { SFX_HIT_CHR, SFX_HIT_CHR };
|
|
soundnum = sounds[rand1 % ARRAYCOUNT(sounds)];
|
|
}
|
|
|
|
if (soundnum != -1) {
|
|
propsnd0f094ef4(&prop->pos, prop->rooms, soundnum, &spac, &spa8);
|
|
|
|
if (spac) {
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
|
|
if (*handle) {
|
|
sndAdjust(handle, 0, spac, spa8, soundnum, 1, 1, -1, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (overridden) {
|
|
return;
|
|
}
|
|
} else {
|
|
s16 soundnum = -1;
|
|
bool overridden = false;
|
|
s32 sp90;
|
|
s32 sp8c;
|
|
u32 stack;
|
|
|
|
if (texturenum == 10000) {
|
|
soundnum = SFX_SHIELD_DAMAGE;
|
|
} else if (gset->weaponnum == WEAPON_LASER) {
|
|
if (gset->weaponfunc == FUNC_PRIMARY || ((gset->unk063a % 4) == 0 && (random() % 2))) {
|
|
if ((random() % 2) == 0) {
|
|
soundnum = SFX_CLOAK_ON;
|
|
} else {
|
|
soundnum = SFX_CLOAK_OFF;
|
|
}
|
|
}
|
|
|
|
overridden = true;
|
|
} else {
|
|
if (gset->weaponnum == WEAPON_COMBATKNIFE || gset->weaponnum == WEAPON_BOLT) {
|
|
soundnum = SFX_HIT_METAL_8079;
|
|
overridden = true;
|
|
} else {
|
|
s16 sounds[] = {
|
|
SFX_001B, SFX_001C, SFX_001D, SFX_001E,
|
|
SFX_001B, SFX_001C, SFX_001D, SFX_001E,
|
|
SFX_001B, SFX_001C, SFX_001D, SFX_001E,
|
|
SFX_0023, SFX_0024, SFX_0025, SFX_0026,
|
|
SFX_0027, SFX_0028, SFX_0029, SFX_002A,
|
|
};
|
|
|
|
soundnum = sounds[rand1 % ARRAYCOUNT(sounds)];
|
|
}
|
|
}
|
|
|
|
if (soundnum != -1) {
|
|
propsnd0f094ef4(&prop->pos, prop->rooms, soundnum, &sp90, &sp8c);
|
|
|
|
if (sp90) {
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
|
|
if (*handle) {
|
|
sndAdjust(handle, 0, sp90, sp8c, soundnum, 1, 1, -1, 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (overridden) {
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (texturenum >= 0 && texturenum < NUM_TEXTURES && g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]) {
|
|
s16 soundnum = -1;
|
|
|
|
handle = bgunAllocateAudioHandle();
|
|
|
|
if (handle) {
|
|
if (g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]->numsounds > 0) {
|
|
s32 index = rand2 % g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]->numsounds;
|
|
soundnum = g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]->sounds[index];
|
|
|
|
if (soundnum != -1) {
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
}
|
|
}
|
|
|
|
if (*handle && soundnum != -1) {
|
|
func0f09505c(*handle, &prop->pos, 400, 2500, 3000, prop->rooms, soundnum, 0x7fff, 0);
|
|
}
|
|
}
|
|
}
|
|
#else
|
|
u32 rand1 = random();
|
|
u32 rand2 = random();
|
|
struct sndstate **handle;
|
|
|
|
if (g_Vars.lvupdate240 <= 0) {
|
|
return;
|
|
}
|
|
|
|
if (texturenum >= 0 && texturenum < NUM_TEXTURES
|
|
&& g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]->numsounds == 0) {
|
|
return;
|
|
}
|
|
|
|
if (gset->weaponnum == WEAPON_REMOTEMINE
|
|
|| gset->weaponnum == WEAPON_PROXIMITYMINE
|
|
|| gset->weaponnum == WEAPON_TIMEDMINE
|
|
|| gset->weaponnum == WEAPON_COMMSRIDER
|
|
|| gset->weaponnum == WEAPON_TRACERBUG
|
|
|| gset->weaponnum == WEAPON_TARGETAMPLIFIER
|
|
|| gset->weaponnum == WEAPON_ECMMINE) {
|
|
propsnd0f0939f8(NULL, prop, SFX_80AA, -1, -1, 0, 0, 0, NULL, -1, NULL, -1, -1, -1, -1);
|
|
return;
|
|
}
|
|
|
|
handle = bgunAllocateAudioHandle();
|
|
|
|
if (handle) {
|
|
if (prop->type == PROPTYPE_CHR || prop->type == PROPTYPE_PLAYER) {
|
|
struct chrdata *chr = prop->chr;
|
|
s16 soundnum;
|
|
bool overridden = false;
|
|
|
|
if (chrGetShield(chr) > 0) {
|
|
sndStart(var80095200, SFX_SHIELD_DAMAGE, handle, -1, -1, -1, -1, -1);
|
|
soundnum = SFX_SHIELD_DAMAGE;
|
|
} else if (gset->weaponnum == WEAPON_COMBATKNIFE
|
|
|| gset->weaponnum == WEAPON_COMBATKNIFE // duplicate
|
|
|| gset->weaponnum == WEAPON_BOLT) {
|
|
sndStart(var80095200, SFX_05F6, handle, -1, -1, -1, -1, -1);
|
|
soundnum = SFX_05F6;
|
|
overridden = true;
|
|
} else if (gset->weaponnum == WEAPON_UNARMED
|
|
|| (gset->weaponfunc == FUNC_SECONDARY
|
|
&& (gset->weaponnum == WEAPON_FALCON2
|
|
|| gset->weaponnum == WEAPON_FALCON2_SILENCER
|
|
|| gset->weaponnum == WEAPON_FALCON2_SCOPE
|
|
|| gset->weaponnum == WEAPON_DY357MAGNUM
|
|
|| gset->weaponnum == WEAPON_DY357LX))) {
|
|
s16 sounds[] = { SFX_002F, SFX_0030, SFX_0031 };
|
|
soundnum = sounds[rand1 % ARRAYCOUNT(sounds)];
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
} else {
|
|
s16 sounds[] = { SFX_HIT_CHR, SFX_HIT_CHR };
|
|
soundnum = sounds[rand1 % ARRAYCOUNT(sounds)];
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
}
|
|
|
|
if (*handle) {
|
|
func0f09505c(*handle, &prop->pos, 400, 2500, 3000, prop->rooms, soundnum, 0x7fff, 0);
|
|
}
|
|
|
|
if (overridden) {
|
|
return;
|
|
}
|
|
} else {
|
|
s16 soundnum;
|
|
bool overridden = false;
|
|
u32 stack;
|
|
|
|
if (texturenum == 10000) {
|
|
sndStart(var80095200, SFX_SHIELD_DAMAGE, handle, -1, -1, -1, -1, -1);
|
|
soundnum = SFX_SHIELD_DAMAGE;
|
|
} else if (gset->weaponnum == WEAPON_LASER) {
|
|
if (gset->weaponfunc == FUNC_PRIMARY || (gset->unk063a % 8) == 0) {
|
|
if ((random() % 2) == 0) {
|
|
soundnum = SFX_CLOAK_ON;
|
|
} else {
|
|
soundnum = SFX_CLOAK_OFF;
|
|
}
|
|
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
overridden = true;
|
|
}
|
|
} else {
|
|
if (gset->weaponnum == WEAPON_COMBATKNIFE || gset->weaponnum == WEAPON_BOLT) {
|
|
soundnum = SFX_HIT_METAL_8079;
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
overridden = true;
|
|
} else {
|
|
s16 sounds[] = {
|
|
SFX_001B, SFX_001C, SFX_001D, SFX_001E,
|
|
SFX_001B, SFX_001C, SFX_001D, SFX_001E,
|
|
SFX_001B, SFX_001C, SFX_001D, SFX_001E,
|
|
SFX_0023, SFX_0024, SFX_0025, SFX_0026,
|
|
SFX_0027, SFX_0028, SFX_0029, SFX_002A,
|
|
};
|
|
|
|
soundnum = sounds[rand1 % ARRAYCOUNT(sounds)];
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
}
|
|
}
|
|
|
|
if (*handle) {
|
|
func0f09505c(*handle, &prop->pos, 400, 2500, 3000, prop->rooms, soundnum, 0x7fff, 0);
|
|
}
|
|
|
|
if (overridden) {
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (texturenum >= 0 && texturenum < NUM_TEXTURES && g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]) {
|
|
s16 soundnum = -1;
|
|
|
|
handle = bgunAllocateAudioHandle();
|
|
|
|
if (handle) {
|
|
if (g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]->numsounds > 0) {
|
|
s32 index = rand2 % g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]->numsounds;
|
|
soundnum = g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]->sounds[index];
|
|
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
}
|
|
|
|
if (*handle) {
|
|
func0f09505c(*handle, &prop->pos, 400, 2500, 3000, prop->rooms, soundnum, 0x7fff, 0);
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
|
|
void bgunPlayGlassHitSound(struct coord *pos, s16 *rooms, s32 texturenum)
|
|
{
|
|
if (g_Vars.lvupdate240 > 0) {
|
|
struct sndstate **handle = bgunAllocateAudioHandle();
|
|
|
|
if (handle) {
|
|
sndStart(var80095200, SFX_HIT_GLASS, handle, -1, -1, -1, -1, -1);
|
|
|
|
if (*handle) {
|
|
func0f09505c(*handle, pos, 400, 2500, 3000, rooms, SFX_HIT_GLASS, 0x7fff, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void bgunPlayBgHitSound(struct gset *gset, struct coord *arg1, s32 texturenum, s16 *arg3)
|
|
{
|
|
#if VERSION >= VERSION_NTSC_1_0
|
|
struct sndstate **handle;
|
|
u32 rand1 = random();
|
|
u32 rand2 = random();
|
|
bool playdefault;
|
|
s16 soundnum;
|
|
bool overridden;
|
|
|
|
if (g_Vars.lvupdate240 <= 0) {
|
|
return;
|
|
}
|
|
|
|
if (texturenum >= 0 && texturenum < NUM_TEXTURES && g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]->numsounds == 0) {
|
|
return;
|
|
}
|
|
|
|
playdefault = true;
|
|
handle = bgunAllocateAudioHandle();
|
|
|
|
if (handle) {
|
|
soundnum = -1;
|
|
overridden = false;
|
|
|
|
if (gset->weaponnum == WEAPON_LASER) {
|
|
playdefault = false;
|
|
|
|
if (gset->weaponfunc == FUNC_PRIMARY || ((gset->unk063a % 4) == 0 && (random() % 2))) {
|
|
// Laser sounds
|
|
s16 sounds[] = {SFX_CLOAK_ON, SFX_CLOAK_OFF};
|
|
soundnum = sounds[rand1 % ARRAYCOUNT(sounds)];
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
overridden = true;
|
|
}
|
|
} else if (gset->weaponnum == WEAPON_COMBATKNIFE || gset->weaponnum == WEAPON_BOLT) {
|
|
// Knives and bolts make a metal sound
|
|
soundnum = SFX_HIT_METAL_8079;
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
overridden = true;
|
|
} else if (gset->weaponnum == WEAPON_REMOTEMINE
|
|
|| gset->weaponnum == WEAPON_PROXIMITYMINE
|
|
|| gset->weaponnum == WEAPON_TIMEDMINE
|
|
|| gset->weaponnum == WEAPON_COMMSRIDER
|
|
|| gset->weaponnum == WEAPON_TRACERBUG
|
|
|| gset->weaponnum == WEAPON_TARGETAMPLIFIER
|
|
|| gset->weaponnum == WEAPON_ECMMINE) {
|
|
// Mine landing/activation sound
|
|
soundnum = SFX_80AA;
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
overridden = true;
|
|
} else {
|
|
// Ricochet sounds
|
|
s16 sounds[] = {
|
|
SFX_0013, SFX_0014, SFX_0015, SFX_0016,
|
|
SFX_0017, SFX_0018, SFX_0019, SFX_001A,
|
|
SFX_0017, SFX_0018, SFX_0019, SFX_001A,
|
|
SFX_0017, SFX_0018, SFX_0019, SFX_001A,
|
|
SFX_001F, SFX_0020, SFX_0020, SFX_0021,
|
|
SFX_001F, SFX_0020, SFX_0020, SFX_0021,
|
|
SFX_001F, SFX_0020, SFX_0020, SFX_0021,
|
|
SFX_0023, SFX_0024, SFX_0025, SFX_0026,
|
|
SFX_0027, SFX_0028, SFX_0029, SFX_002A,
|
|
};
|
|
|
|
soundnum = sounds[rand1 % ARRAYCOUNT(sounds)];
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
overridden = false;
|
|
}
|
|
|
|
if (*handle != NULL) {
|
|
func0f09505c(*handle, arg1, 400, 2500, 3000, arg3, soundnum, 0x7fff, 0);
|
|
}
|
|
|
|
if (overridden) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (playdefault) {
|
|
handle = bgunAllocateAudioHandle();
|
|
|
|
if (handle != NULL && texturenum >= 0 && texturenum < NUM_TEXTURES) {
|
|
s16 soundnum;
|
|
struct surfacetype *type = g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype];
|
|
|
|
if (type->numsounds > 0) {
|
|
soundnum = -1;
|
|
|
|
if (type != NULL) {
|
|
s32 index = rand2 % type->numsounds;
|
|
soundnum = type->sounds[index];
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
}
|
|
|
|
if (*handle != NULL) {
|
|
func0f09505c(*handle, arg1, 400, 2500, 3000, arg3, soundnum, 0x7fff, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#else
|
|
struct sndstate **handle;
|
|
u32 rand1 = random();
|
|
u32 rand2 = random();
|
|
s16 soundnum;
|
|
bool overridden;
|
|
|
|
if (g_Vars.lvupdate240 <= 0) {
|
|
return;
|
|
}
|
|
|
|
if (texturenum >= 0 && texturenum < NUM_TEXTURES && g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype]->numsounds == 0) {
|
|
return;
|
|
}
|
|
|
|
handle = bgunAllocateAudioHandle();
|
|
|
|
if (handle) {
|
|
overridden = false;
|
|
|
|
if (gset->weaponnum == WEAPON_LASER) {
|
|
if (gset->weaponfunc == FUNC_PRIMARY || (gset->unk063a % 8) == 0) {
|
|
// Laser sounds
|
|
s16 sounds[] = {SFX_CLOAK_ON, SFX_CLOAK_OFF};
|
|
soundnum = sounds[rand1 % ARRAYCOUNT(sounds)];
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
overridden = true;
|
|
}
|
|
} else if (gset->weaponnum == WEAPON_COMBATKNIFE || gset->weaponnum == WEAPON_BOLT) {
|
|
// Knives and bolts make a metal sound
|
|
soundnum = SFX_HIT_METAL_8079;
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
overridden = true;
|
|
} else if (gset->weaponnum == WEAPON_REMOTEMINE
|
|
|| gset->weaponnum == WEAPON_PROXIMITYMINE
|
|
|| gset->weaponnum == WEAPON_TIMEDMINE
|
|
|| gset->weaponnum == WEAPON_COMMSRIDER
|
|
|| gset->weaponnum == WEAPON_TRACERBUG
|
|
|| gset->weaponnum == WEAPON_TARGETAMPLIFIER
|
|
|| gset->weaponnum == WEAPON_ECMMINE) {
|
|
// Mine landing/activation sound
|
|
sndStart(var80095200, SFX_80AA, handle, -1, -1, -1, -1, -1);
|
|
overridden = true;
|
|
} else {
|
|
// Ricochet sounds
|
|
s16 sounds[] = {
|
|
SFX_0013, SFX_0014, SFX_0015, SFX_0016,
|
|
SFX_0017, SFX_0018, SFX_0019, SFX_001A,
|
|
SFX_0017, SFX_0018, SFX_0019, SFX_001A,
|
|
SFX_0017, SFX_0018, SFX_0019, SFX_001A,
|
|
SFX_001F, SFX_0020, SFX_0020, SFX_0021,
|
|
SFX_001F, SFX_0020, SFX_0020, SFX_0021,
|
|
SFX_001F, SFX_0020, SFX_0020, SFX_0021,
|
|
SFX_0023, SFX_0024, SFX_0025, SFX_0026,
|
|
SFX_0027, SFX_0028, SFX_0029, SFX_002A,
|
|
};
|
|
|
|
soundnum = sounds[rand1 % ARRAYCOUNT(sounds)];
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
overridden = false;
|
|
}
|
|
|
|
if (*handle != NULL) {
|
|
func0f09505c(*handle, arg1, 400, 2500, 3000, arg3, soundnum, 0x7fff, 0);
|
|
}
|
|
|
|
if (overridden) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Play default surface hit sound
|
|
handle = bgunAllocateAudioHandle();
|
|
|
|
if (handle != NULL && texturenum >= 0 && texturenum < NUM_TEXTURES) {
|
|
s16 soundnum;
|
|
struct surfacetype *type = g_SurfaceTypes[g_Textures[texturenum].soundsurfacetype];
|
|
|
|
if (type->numsounds > 0) {
|
|
soundnum = -1;
|
|
|
|
if (type != NULL) {
|
|
s32 index = rand2 % type->numsounds;
|
|
soundnum = type->sounds[index];
|
|
sndStart(var80095200, soundnum, handle, -1, -1, -1, -1, -1);
|
|
}
|
|
|
|
if (*handle != NULL) {
|
|
func0f09505c(*handle, arg1, 400, 2500, 3000, arg3, soundnum, 0x7fff, 0);
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
|
|
void bgunSetTriggerOn(s32 handnum, bool on)
|
|
{
|
|
struct hand *hand = &g_Vars.currentplayer->hands[handnum];
|
|
|
|
hand->triggerprev = hand->triggeron;
|
|
hand->triggeron = on;
|
|
|
|
if (!on) {
|
|
hand->triggerreleased = true;
|
|
}
|
|
}
|
|
|
|
#if PAL
|
|
GLOBAL_ASM(
|
|
glabel bgunConsiderToggleGunFunction
|
|
.late_rodata
|
|
glabel var7f1acaa4
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acaa8
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acaac
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acab0
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acab4
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acab8
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acabc
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acac0
|
|
.word bgunConsiderToggleGunFunction+0xb0 # f0a8a0c
|
|
glabel var7f1acac4
|
|
.word bgunConsiderToggleGunFunction+0xb0 # f0a8a0c
|
|
glabel var7f1acac8
|
|
.word bgunConsiderToggleGunFunction+0xb0 # f0a8a0c
|
|
glabel var7f1acacc
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acad0
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acad4
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acad8
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acadc
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acae0
|
|
.word bgunConsiderToggleGunFunction+0x44 # f0a89a0
|
|
glabel var7f1acae4
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acae8
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acaec
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acaf0
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acaf4
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acaf8
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acafc
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acb00
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acb04
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acb08
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acb0c
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acb10
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acb14
|
|
.word bgunConsiderToggleGunFunction+0xb0 # f0a8a0c
|
|
.text
|
|
/* f0a895c: 27bdffe8 */ addiu $sp,$sp,-24
|
|
/* f0a8960: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f0a8964: afa40018 */ sw $a0,0x18($sp)
|
|
/* f0a8968: afa60020 */ sw $a2,0x20($sp)
|
|
/* f0a896c: 00002025 */ or $a0,$zero,$zero
|
|
/* f0a8970: 0fc2866a */ jal bgunGetWeaponNum
|
|
/* f0a8974: afa5001c */ sw $a1,0x1c($sp)
|
|
/* f0a8978: 244efffa */ addiu $t6,$v0,-6
|
|
/* f0a897c: 2dc1001d */ sltiu $at,$t6,0x1d
|
|
/* f0a8980: 10200073 */ beqz $at,.L0f0a8b50
|
|
/* f0a8984: 8fa5001c */ lw $a1,0x1c($sp)
|
|
/* f0a8988: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f0a898c: 3c017f1b */ lui $at,%hi(var7f1acaa4)
|
|
/* f0a8990: 002e0821 */ addu $at,$at,$t6
|
|
/* f0a8994: 8c2ecaa4 */ lw $t6,%lo(var7f1acaa4)($at)
|
|
/* f0a8998: 01c00008 */ jr $t6
|
|
/* f0a899c: 00000000 */ nop
|
|
/* f0a89a0: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a89a4: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a89a8: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a89ac: 90781583 */ lbu $t8,0x1583($v1)
|
|
/* f0a89b0: 37190020 */ ori $t9,$t8,0x20
|
|
/* f0a89b4: 10a00003 */ beqz $a1,.L0f0a89c4
|
|
/* f0a89b8: a0791583 */ sb $t9,0x1583($v1)
|
|
/* f0a89bc: 100000a0 */ b .L0f0a8c40
|
|
/* f0a89c0: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a89c4:
|
|
/* f0a89c4: 8fa90018 */ lw $t1,0x18($sp)
|
|
/* f0a89c8: 29210032 */ slti $at,$t1,0x29
|
|
/* f0a89cc: 50200004 */ beqzl $at,.L0f0a89e0
|
|
/* f0a89d0: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a89d4: 1000009a */ b .L0f0a8c40
|
|
/* f0a89d8: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a89dc: 8d030284 */ lw $v1,0x284($t0)
|
|
.L0f0a89e0:
|
|
/* f0a89e0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a89e4: 906a063b */ lbu $t2,0x63b($v1)
|
|
/* f0a89e8: 51410004 */ beql $t2,$at,.L0f0a89fc
|
|
/* f0a89ec: 906c0d0f */ lbu $t4,0xd0f($v1)
|
|
/* f0a89f0: 10000093 */ b .L0f0a8c40
|
|
/* f0a89f4: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a89f8: 906c0d0f */ lbu $t4,0xd0f($v1)
|
|
.L0f0a89fc:
|
|
/* f0a89fc: 24020002 */ addiu $v0,$zero,0x2
|
|
/* f0a8a00: 358d0010 */ ori $t5,$t4,0x10
|
|
/* f0a8a04: 1000008e */ b .L0f0a8c40
|
|
/* f0a8a08: a06d0d0f */ sb $t5,0xd0f($v1)
|
|
/* f0a8a0c: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8a10: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8a14: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a8a18: 906f1583 */ lbu $t7,0x1583($v1)
|
|
/* f0a8a1c: 35f80020 */ ori $t8,$t7,0x20
|
|
/* f0a8a20: a0781583 */ sb $t8,0x1583($v1)
|
|
/* f0a8a24: 8fb90020 */ lw $t9,0x20($sp)
|
|
/* f0a8a28: 1320000b */ beqz $t9,.L0f0a8a58
|
|
/* f0a8a2c: 00000000 */ nop
|
|
/* f0a8a30: 0fc2a31f */ jal bgunIsUsingSecondaryFunction
|
|
/* f0a8a34: 00000000 */ nop
|
|
/* f0a8a38: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8a3c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a8a40: 14410005 */ bne $v0,$at,.L0f0a8a58
|
|
/* f0a8a44: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8a48: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a8a4c: 906a0d0f */ lbu $t2,0xd0f($v1)
|
|
/* f0a8a50: 354b0010 */ ori $t3,$t2,0x10
|
|
/* f0a8a54: a06b0d0f */ sb $t3,0xd0f($v1)
|
|
.L0f0a8a58:
|
|
/* f0a8a58: 10000079 */ b .L0f0a8c40
|
|
/* f0a8a5c: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0a8a60: 14a00039 */ bnez $a1,.L0f0a8b48
|
|
/* f0a8a64: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8a68: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8a6c: 8d0c0284 */ lw $t4,0x284($t0)
|
|
/* f0a8a70: 81871580 */ lb $a3,0x1580($t4)
|
|
/* f0a8a74: 0007102a */ slt $v0,$zero,$a3
|
|
/* f0a8a78: 10400031 */ beqz $v0,.L0f0a8b40
|
|
/* f0a8a7c: 28e30024 */ slti $v1,$a3,0x24
|
|
/* f0a8a80: 1060002f */ beqz $v1,.L0f0a8b40
|
|
/* f0a8a84: 00000000 */ nop
|
|
/* f0a8a88: 10400014 */ beqz $v0,.L0f0a8adc
|
|
/* f0a8a8c: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a8a90: 10600012 */ beqz $v1,.L0f0a8adc
|
|
/* f0a8a94: 00602025 */ or $a0,$v1,$zero
|
|
/* f0a8a98: 8d0d0288 */ lw $t5,0x288($t0)
|
|
/* f0a8a9c: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8aa0: 0002c0c3 */ sra $t8,$v0,0x3
|
|
/* f0a8aa4: 8dae0070 */ lw $t6,0x70($t5)
|
|
/* f0a8aa8: 3c09800b */ lui $t1,%hi(g_PlayerConfigsArray+0x97)
|
|
/* f0a8aac: 304a0007 */ andi $t2,$v0,0x7
|
|
/* f0a8ab0: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0a8ab4: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0a8ab8: 000f7940 */ sll $t7,$t7,0x5
|
|
/* f0a8abc: 01f8c821 */ addu $t9,$t7,$t8
|
|
/* f0a8ac0: 01394821 */ addu $t1,$t1,$t9
|
|
/* f0a8ac4: 9129c84f */ lbu $t1,%lo(g_PlayerConfigsArray+0x97)($t1)
|
|
/* f0a8ac8: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f0a8acc: 014b6004 */ sllv $t4,$t3,$t2
|
|
/* f0a8ad0: 012c2024 */ and $a0,$t1,$t4
|
|
/* f0a8ad4: 0004682b */ sltu $t5,$zero,$a0
|
|
/* f0a8ad8: 01a02025 */ or $a0,$t5,$zero
|
|
.L0f0a8adc:
|
|
/* f0a8adc: 3c0e800a */ lui $t6,%hi(g_Vars+0x288)
|
|
/* f0a8ae0: 8dcea248 */ lw $t6,%lo(g_Vars+0x288)($t6)
|
|
/* f0a8ae4: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8ae8: 0002c8c3 */ sra $t9,$v0,0x3
|
|
/* f0a8aec: 8dcf0070 */ lw $t7,0x70($t6)
|
|
/* f0a8af0: 3c0a800b */ lui $t2,%hi(g_PlayerConfigsArray)
|
|
/* f0a8af4: 254ac7b8 */ addiu $t2,$t2,%lo(g_PlayerConfigsArray)
|
|
/* f0a8af8: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0a8afc: 030fc021 */ addu $t8,$t8,$t7
|
|
/* f0a8b00: 0018c140 */ sll $t8,$t8,0x5
|
|
/* f0a8b04: 03195821 */ addu $t3,$t8,$t9
|
|
/* f0a8b08: 016a1821 */ addu $v1,$t3,$t2
|
|
/* f0a8b0c: 30490007 */ andi $t1,$v0,0x7
|
|
/* f0a8b10: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0a8b14: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f0a8b18: 012c3004 */ sllv $a2,$t4,$t1
|
|
/* f0a8b1c: 11a40005 */ beq $t5,$a0,.L0f0a8b34
|
|
/* f0a8b20: 90650097 */ lbu $a1,0x97($v1)
|
|
/* f0a8b24: 00a67825 */ or $t7,$a1,$a2
|
|
/* f0a8b28: a06f0097 */ sb $t7,0x97($v1)
|
|
/* f0a8b2c: 10000044 */ b .L0f0a8c40
|
|
/* f0a8b30: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a8b34:
|
|
/* f0a8b34: 00c0c027 */ nor $t8,$a2,$zero
|
|
/* f0a8b38: 00b8c824 */ and $t9,$a1,$t8
|
|
/* f0a8b3c: a0790097 */ sb $t9,0x97($v1)
|
|
.L0f0a8b40:
|
|
/* f0a8b40: 1000003f */ b .L0f0a8c40
|
|
/* f0a8b44: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a8b48:
|
|
/* f0a8b48: 1000003d */ b .L0f0a8c40
|
|
/* f0a8b4c: 00001025 */ or $v0,$zero,$zero
|
|
.L0f0a8b50:
|
|
/* f0a8b50: 10a00008 */ beqz $a1,.L0f0a8b74
|
|
/* f0a8b54: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8b58: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8b5c: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8b60: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a8b64: 906a1583 */ lbu $t2,0x1583($v1)
|
|
/* f0a8b68: 354c0020 */ ori $t4,$t2,0x20
|
|
/* f0a8b6c: 10000033 */ b .L0f0a8c3c
|
|
/* f0a8b70: a06c1583 */ sb $t4,0x1583($v1)
|
|
.L0f0a8b74:
|
|
/* f0a8b74: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8b78: 8d090284 */ lw $t1,0x284($t0)
|
|
/* f0a8b7c: 81271580 */ lb $a3,0x1580($t1)
|
|
/* f0a8b80: 0007102a */ slt $v0,$zero,$a3
|
|
/* f0a8b84: 1040002d */ beqz $v0,.L0f0a8c3c
|
|
/* f0a8b88: 28e30024 */ slti $v1,$a3,0x24
|
|
/* f0a8b8c: 5060002c */ beqzl $v1,.L0f0a8c40
|
|
/* f0a8b90: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0a8b94: 50400015 */ beqzl $v0,.L0f0a8bec
|
|
/* f0a8b98: 8d0d0288 */ lw $t5,0x288($t0)
|
|
/* f0a8b9c: 10600012 */ beqz $v1,.L0f0a8be8
|
|
/* f0a8ba0: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8ba4: 8d0d0288 */ lw $t5,0x288($t0)
|
|
/* f0a8ba8: 0002c0c3 */ sra $t8,$v0,0x3
|
|
/* f0a8bac: 3c0b800b */ lui $t3,%hi(g_PlayerConfigsArray)
|
|
/* f0a8bb0: 8dae0070 */ lw $t6,0x70($t5)
|
|
/* f0a8bb4: 256bc7b8 */ addiu $t3,$t3,%lo(g_PlayerConfigsArray)
|
|
/* f0a8bb8: 304a0007 */ andi $t2,$v0,0x7
|
|
/* f0a8bbc: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0a8bc0: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0a8bc4: 000f7940 */ sll $t7,$t7,0x5
|
|
/* f0a8bc8: 01f8c821 */ addu $t9,$t7,$t8
|
|
/* f0a8bcc: 032b1821 */ addu $v1,$t9,$t3
|
|
/* f0a8bd0: 90650097 */ lbu $a1,0x97($v1)
|
|
/* f0a8bd4: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0a8bd8: 014c3004 */ sllv $a2,$t4,$t2
|
|
/* f0a8bdc: 00a64824 */ and $t1,$a1,$a2
|
|
/* f0a8be0: 55200014 */ bnezl $t1,.L0f0a8c34
|
|
/* f0a8be4: 00c07827 */ nor $t7,$a2,$zero
|
|
.L0f0a8be8:
|
|
/* f0a8be8: 8d0d0288 */ lw $t5,0x288($t0)
|
|
.L0f0a8bec:
|
|
/* f0a8bec: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8bf0: 0002c0c3 */ sra $t8,$v0,0x3
|
|
/* f0a8bf4: 8dae0070 */ lw $t6,0x70($t5)
|
|
/* f0a8bf8: 3c0b800b */ lui $t3,%hi(g_PlayerConfigsArray)
|
|
/* f0a8bfc: 256bc7b8 */ addiu $t3,$t3,%lo(g_PlayerConfigsArray)
|
|
/* f0a8c00: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0a8c04: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0a8c08: 000f7940 */ sll $t7,$t7,0x5
|
|
/* f0a8c0c: 01f8c821 */ addu $t9,$t7,$t8
|
|
/* f0a8c10: 032b1821 */ addu $v1,$t9,$t3
|
|
/* f0a8c14: 906c0097 */ lbu $t4,0x97($v1)
|
|
/* f0a8c18: 304a0007 */ andi $t2,$v0,0x7
|
|
/* f0a8c1c: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f0a8c20: 01496804 */ sllv $t5,$t1,$t2
|
|
/* f0a8c24: 018d7025 */ or $t6,$t4,$t5
|
|
/* f0a8c28: 10000004 */ b .L0f0a8c3c
|
|
/* f0a8c2c: a06e0097 */ sb $t6,0x97($v1)
|
|
/* f0a8c30: 00c07827 */ nor $t7,$a2,$zero
|
|
.L0f0a8c34:
|
|
/* f0a8c34: 00afc024 */ and $t8,$a1,$t7
|
|
/* f0a8c38: a0780097 */ sb $t8,0x97($v1)
|
|
.L0f0a8c3c:
|
|
/* f0a8c3c: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a8c40:
|
|
/* f0a8c40: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f0a8c44: 27bd0018 */ addiu $sp,$sp,0x18
|
|
/* f0a8c48: 03e00008 */ jr $ra
|
|
/* f0a8c4c: 00000000 */ nop
|
|
);
|
|
#elif VERSION >= VERSION_NTSC_1_0
|
|
GLOBAL_ASM(
|
|
glabel bgunConsiderToggleGunFunction
|
|
.late_rodata
|
|
glabel var7f1acaa4
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acaa8
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acaac
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acab0
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acab4
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acab8
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acabc
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acac0
|
|
.word bgunConsiderToggleGunFunction+0xb0 # f0a8a0c
|
|
glabel var7f1acac4
|
|
.word bgunConsiderToggleGunFunction+0xb0 # f0a8a0c
|
|
glabel var7f1acac8
|
|
.word bgunConsiderToggleGunFunction+0xb0 # f0a8a0c
|
|
glabel var7f1acacc
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acad0
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acad4
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acad8
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acadc
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acae0
|
|
.word bgunConsiderToggleGunFunction+0x44 # f0a89a0
|
|
glabel var7f1acae4
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acae8
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acaec
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acaf0
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acaf4
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acaf8
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acafc
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acb00
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acb04
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acb08
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acb0c
|
|
.word bgunConsiderToggleGunFunction+0x104 # f0a8a60
|
|
glabel var7f1acb10
|
|
.word bgunConsiderToggleGunFunction+0x1f4 # f0a8b50
|
|
glabel var7f1acb14
|
|
.word bgunConsiderToggleGunFunction+0xb0 # f0a8a0c
|
|
.text
|
|
/* f0a895c: 27bdffe8 */ addiu $sp,$sp,-24
|
|
/* f0a8960: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f0a8964: afa40018 */ sw $a0,0x18($sp)
|
|
/* f0a8968: afa60020 */ sw $a2,0x20($sp)
|
|
/* f0a896c: 00002025 */ or $a0,$zero,$zero
|
|
/* f0a8970: 0fc2866a */ jal bgunGetWeaponNum
|
|
/* f0a8974: afa5001c */ sw $a1,0x1c($sp)
|
|
/* f0a8978: 244efffa */ addiu $t6,$v0,-6
|
|
/* f0a897c: 2dc1001d */ sltiu $at,$t6,0x1d
|
|
/* f0a8980: 10200073 */ beqz $at,.L0f0a8b50
|
|
/* f0a8984: 8fa5001c */ lw $a1,0x1c($sp)
|
|
/* f0a8988: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f0a898c: 3c017f1b */ lui $at,%hi(var7f1acaa4)
|
|
/* f0a8990: 002e0821 */ addu $at,$at,$t6
|
|
/* f0a8994: 8c2ecaa4 */ lw $t6,%lo(var7f1acaa4)($at)
|
|
/* f0a8998: 01c00008 */ jr $t6
|
|
/* f0a899c: 00000000 */ nop
|
|
/* f0a89a0: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a89a4: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a89a8: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a89ac: 90781583 */ lbu $t8,0x1583($v1)
|
|
/* f0a89b0: 37190020 */ ori $t9,$t8,0x20
|
|
/* f0a89b4: 10a00003 */ beqz $a1,.L0f0a89c4
|
|
/* f0a89b8: a0791583 */ sb $t9,0x1583($v1)
|
|
/* f0a89bc: 100000a0 */ b .L0f0a8c40
|
|
/* f0a89c0: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a89c4:
|
|
/* f0a89c4: 8fa90018 */ lw $t1,0x18($sp)
|
|
/* f0a89c8: 29210032 */ slti $at,$t1,0x32
|
|
/* f0a89cc: 50200004 */ beqzl $at,.L0f0a89e0
|
|
/* f0a89d0: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a89d4: 1000009a */ b .L0f0a8c40
|
|
/* f0a89d8: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a89dc: 8d030284 */ lw $v1,0x284($t0)
|
|
.L0f0a89e0:
|
|
/* f0a89e0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a89e4: 906a063b */ lbu $t2,0x63b($v1)
|
|
/* f0a89e8: 51410004 */ beql $t2,$at,.L0f0a89fc
|
|
/* f0a89ec: 906c0d0f */ lbu $t4,0xd0f($v1)
|
|
/* f0a89f0: 10000093 */ b .L0f0a8c40
|
|
/* f0a89f4: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a89f8: 906c0d0f */ lbu $t4,0xd0f($v1)
|
|
.L0f0a89fc:
|
|
/* f0a89fc: 24020002 */ addiu $v0,$zero,0x2
|
|
/* f0a8a00: 358d0010 */ ori $t5,$t4,0x10
|
|
/* f0a8a04: 1000008e */ b .L0f0a8c40
|
|
/* f0a8a08: a06d0d0f */ sb $t5,0xd0f($v1)
|
|
/* f0a8a0c: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8a10: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8a14: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a8a18: 906f1583 */ lbu $t7,0x1583($v1)
|
|
/* f0a8a1c: 35f80020 */ ori $t8,$t7,0x20
|
|
/* f0a8a20: a0781583 */ sb $t8,0x1583($v1)
|
|
/* f0a8a24: 8fb90020 */ lw $t9,0x20($sp)
|
|
/* f0a8a28: 1320000b */ beqz $t9,.L0f0a8a58
|
|
/* f0a8a2c: 00000000 */ nop
|
|
/* f0a8a30: 0fc2a31f */ jal bgunIsUsingSecondaryFunction
|
|
/* f0a8a34: 00000000 */ nop
|
|
/* f0a8a38: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8a3c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a8a40: 14410005 */ bne $v0,$at,.L0f0a8a58
|
|
/* f0a8a44: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8a48: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a8a4c: 906a0d0f */ lbu $t2,0xd0f($v1)
|
|
/* f0a8a50: 354b0010 */ ori $t3,$t2,0x10
|
|
/* f0a8a54: a06b0d0f */ sb $t3,0xd0f($v1)
|
|
.L0f0a8a58:
|
|
/* f0a8a58: 10000079 */ b .L0f0a8c40
|
|
/* f0a8a5c: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0a8a60: 14a00039 */ bnez $a1,.L0f0a8b48
|
|
/* f0a8a64: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8a68: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8a6c: 8d0c0284 */ lw $t4,0x284($t0)
|
|
/* f0a8a70: 81871580 */ lb $a3,0x1580($t4)
|
|
/* f0a8a74: 0007102a */ slt $v0,$zero,$a3
|
|
/* f0a8a78: 10400031 */ beqz $v0,.L0f0a8b40
|
|
/* f0a8a7c: 28e30024 */ slti $v1,$a3,0x24
|
|
/* f0a8a80: 1060002f */ beqz $v1,.L0f0a8b40
|
|
/* f0a8a84: 00000000 */ nop
|
|
/* f0a8a88: 10400014 */ beqz $v0,.L0f0a8adc
|
|
/* f0a8a8c: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a8a90: 10600012 */ beqz $v1,.L0f0a8adc
|
|
/* f0a8a94: 00602025 */ or $a0,$v1,$zero
|
|
/* f0a8a98: 8d0d0288 */ lw $t5,0x288($t0)
|
|
/* f0a8a9c: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8aa0: 0002c0c3 */ sra $t8,$v0,0x3
|
|
/* f0a8aa4: 8dae0070 */ lw $t6,0x70($t5)
|
|
/* f0a8aa8: 3c09800b */ lui $t1,%hi(g_PlayerConfigsArray+0x97)
|
|
/* f0a8aac: 304a0007 */ andi $t2,$v0,0x7
|
|
/* f0a8ab0: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0a8ab4: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0a8ab8: 000f7940 */ sll $t7,$t7,0x5
|
|
/* f0a8abc: 01f8c821 */ addu $t9,$t7,$t8
|
|
/* f0a8ac0: 01394821 */ addu $t1,$t1,$t9
|
|
/* f0a8ac4: 9129c84f */ lbu $t1,%lo(g_PlayerConfigsArray+0x97)($t1)
|
|
/* f0a8ac8: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f0a8acc: 014b6004 */ sllv $t4,$t3,$t2
|
|
/* f0a8ad0: 012c2024 */ and $a0,$t1,$t4
|
|
/* f0a8ad4: 0004682b */ sltu $t5,$zero,$a0
|
|
/* f0a8ad8: 01a02025 */ or $a0,$t5,$zero
|
|
.L0f0a8adc:
|
|
/* f0a8adc: 3c0e800a */ lui $t6,%hi(g_Vars+0x288)
|
|
/* f0a8ae0: 8dcea248 */ lw $t6,%lo(g_Vars+0x288)($t6)
|
|
/* f0a8ae4: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8ae8: 0002c8c3 */ sra $t9,$v0,0x3
|
|
/* f0a8aec: 8dcf0070 */ lw $t7,0x70($t6)
|
|
/* f0a8af0: 3c0a800b */ lui $t2,%hi(g_PlayerConfigsArray)
|
|
/* f0a8af4: 254ac7b8 */ addiu $t2,$t2,%lo(g_PlayerConfigsArray)
|
|
/* f0a8af8: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0a8afc: 030fc021 */ addu $t8,$t8,$t7
|
|
/* f0a8b00: 0018c140 */ sll $t8,$t8,0x5
|
|
/* f0a8b04: 03195821 */ addu $t3,$t8,$t9
|
|
/* f0a8b08: 016a1821 */ addu $v1,$t3,$t2
|
|
/* f0a8b0c: 30490007 */ andi $t1,$v0,0x7
|
|
/* f0a8b10: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0a8b14: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f0a8b18: 012c3004 */ sllv $a2,$t4,$t1
|
|
/* f0a8b1c: 11a40005 */ beq $t5,$a0,.L0f0a8b34
|
|
/* f0a8b20: 90650097 */ lbu $a1,0x97($v1)
|
|
/* f0a8b24: 00a67825 */ or $t7,$a1,$a2
|
|
/* f0a8b28: a06f0097 */ sb $t7,0x97($v1)
|
|
/* f0a8b2c: 10000044 */ b .L0f0a8c40
|
|
/* f0a8b30: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a8b34:
|
|
/* f0a8b34: 00c0c027 */ nor $t8,$a2,$zero
|
|
/* f0a8b38: 00b8c824 */ and $t9,$a1,$t8
|
|
/* f0a8b3c: a0790097 */ sb $t9,0x97($v1)
|
|
.L0f0a8b40:
|
|
/* f0a8b40: 1000003f */ b .L0f0a8c40
|
|
/* f0a8b44: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a8b48:
|
|
/* f0a8b48: 1000003d */ b .L0f0a8c40
|
|
/* f0a8b4c: 00001025 */ or $v0,$zero,$zero
|
|
.L0f0a8b50:
|
|
/* f0a8b50: 10a00008 */ beqz $a1,.L0f0a8b74
|
|
/* f0a8b54: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8b58: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8b5c: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8b60: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a8b64: 906a1583 */ lbu $t2,0x1583($v1)
|
|
/* f0a8b68: 354c0020 */ ori $t4,$t2,0x20
|
|
/* f0a8b6c: 10000033 */ b .L0f0a8c3c
|
|
/* f0a8b70: a06c1583 */ sb $t4,0x1583($v1)
|
|
.L0f0a8b74:
|
|
/* f0a8b74: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8b78: 8d090284 */ lw $t1,0x284($t0)
|
|
/* f0a8b7c: 81271580 */ lb $a3,0x1580($t1)
|
|
/* f0a8b80: 0007102a */ slt $v0,$zero,$a3
|
|
/* f0a8b84: 1040002d */ beqz $v0,.L0f0a8c3c
|
|
/* f0a8b88: 28e30024 */ slti $v1,$a3,0x24
|
|
/* f0a8b8c: 5060002c */ beqzl $v1,.L0f0a8c40
|
|
/* f0a8b90: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0a8b94: 50400015 */ beqzl $v0,.L0f0a8bec
|
|
/* f0a8b98: 8d0d0288 */ lw $t5,0x288($t0)
|
|
/* f0a8b9c: 10600012 */ beqz $v1,.L0f0a8be8
|
|
/* f0a8ba0: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8ba4: 8d0d0288 */ lw $t5,0x288($t0)
|
|
/* f0a8ba8: 0002c0c3 */ sra $t8,$v0,0x3
|
|
/* f0a8bac: 3c0b800b */ lui $t3,%hi(g_PlayerConfigsArray)
|
|
/* f0a8bb0: 8dae0070 */ lw $t6,0x70($t5)
|
|
/* f0a8bb4: 256bc7b8 */ addiu $t3,$t3,%lo(g_PlayerConfigsArray)
|
|
/* f0a8bb8: 304a0007 */ andi $t2,$v0,0x7
|
|
/* f0a8bbc: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0a8bc0: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0a8bc4: 000f7940 */ sll $t7,$t7,0x5
|
|
/* f0a8bc8: 01f8c821 */ addu $t9,$t7,$t8
|
|
/* f0a8bcc: 032b1821 */ addu $v1,$t9,$t3
|
|
/* f0a8bd0: 90650097 */ lbu $a1,0x97($v1)
|
|
/* f0a8bd4: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0a8bd8: 014c3004 */ sllv $a2,$t4,$t2
|
|
/* f0a8bdc: 00a64824 */ and $t1,$a1,$a2
|
|
/* f0a8be0: 55200014 */ bnezl $t1,.L0f0a8c34
|
|
/* f0a8be4: 00c07827 */ nor $t7,$a2,$zero
|
|
.L0f0a8be8:
|
|
/* f0a8be8: 8d0d0288 */ lw $t5,0x288($t0)
|
|
.L0f0a8bec:
|
|
/* f0a8bec: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8bf0: 0002c0c3 */ sra $t8,$v0,0x3
|
|
/* f0a8bf4: 8dae0070 */ lw $t6,0x70($t5)
|
|
/* f0a8bf8: 3c0b800b */ lui $t3,%hi(g_PlayerConfigsArray)
|
|
/* f0a8bfc: 256bc7b8 */ addiu $t3,$t3,%lo(g_PlayerConfigsArray)
|
|
/* f0a8c00: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0a8c04: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0a8c08: 000f7940 */ sll $t7,$t7,0x5
|
|
/* f0a8c0c: 01f8c821 */ addu $t9,$t7,$t8
|
|
/* f0a8c10: 032b1821 */ addu $v1,$t9,$t3
|
|
/* f0a8c14: 906c0097 */ lbu $t4,0x97($v1)
|
|
/* f0a8c18: 304a0007 */ andi $t2,$v0,0x7
|
|
/* f0a8c1c: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f0a8c20: 01496804 */ sllv $t5,$t1,$t2
|
|
/* f0a8c24: 018d7025 */ or $t6,$t4,$t5
|
|
/* f0a8c28: 10000004 */ b .L0f0a8c3c
|
|
/* f0a8c2c: a06e0097 */ sb $t6,0x97($v1)
|
|
/* f0a8c30: 00c07827 */ nor $t7,$a2,$zero
|
|
.L0f0a8c34:
|
|
/* f0a8c34: 00afc024 */ and $t8,$a1,$t7
|
|
/* f0a8c38: a0780097 */ sb $t8,0x97($v1)
|
|
.L0f0a8c3c:
|
|
/* f0a8c3c: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a8c40:
|
|
/* f0a8c40: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f0a8c44: 27bd0018 */ addiu $sp,$sp,0x18
|
|
/* f0a8c48: 03e00008 */ jr $ra
|
|
/* f0a8c4c: 00000000 */ nop
|
|
);
|
|
#else
|
|
GLOBAL_ASM(
|
|
glabel bgunConsiderToggleGunFunction
|
|
.late_rodata
|
|
glabel var7f1acaa4
|
|
.word bgunConsiderToggleGunFunction+0x104
|
|
glabel var7f1a6fd8nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a6fdcnb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a6fe0nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a6fe4nb
|
|
.word bgunConsiderToggleGunFunction+0x104
|
|
glabel var7f1a6fe8nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a6fecnb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a6ff0nb
|
|
.word bgunConsiderToggleGunFunction+0x0b0
|
|
glabel var7f1a6ff4nb
|
|
.word bgunConsiderToggleGunFunction+0x0b0
|
|
glabel var7f1a6ff8nb
|
|
.word bgunConsiderToggleGunFunction+0x0b0
|
|
glabel var7f1a6ffcnb
|
|
.word bgunConsiderToggleGunFunction+0x104
|
|
glabel var7f1a7000nb
|
|
.word bgunConsiderToggleGunFunction+0x104
|
|
glabel var7f1a7004nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a7008nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a700cnb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a7010nb
|
|
.word bgunConsiderToggleGunFunction+0x044
|
|
glabel var7f1a7014nb
|
|
.word bgunConsiderToggleGunFunction+0x104
|
|
glabel var7f1a7018nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a701cnb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a7020nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a7024nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a7028nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a702cnb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a7030nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a7034nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a7038nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a703cnb
|
|
.word bgunConsiderToggleGunFunction+0x104
|
|
glabel var7f1a7040nb
|
|
.word bgunConsiderToggleGunFunction+0x1f4
|
|
glabel var7f1a7044nb
|
|
.word bgunConsiderToggleGunFunction+0x0b0
|
|
.text
|
|
/* f0a895c: 27bdffe8 */ addiu $sp,$sp,-24
|
|
/* f0a8960: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f0a8964: afa40018 */ sw $a0,0x18($sp)
|
|
/* f0a8968: afa60020 */ sw $a2,0x20($sp)
|
|
/* f0a896c: 00002025 */ or $a0,$zero,$zero
|
|
/* f0a8970: 0fc2866a */ jal bgunGetWeaponNum
|
|
/* f0a8974: afa5001c */ sw $a1,0x1c($sp)
|
|
/* f0a8978: 244efffa */ addiu $t6,$v0,-6
|
|
/* f0a897c: 2dc1001d */ sltiu $at,$t6,0x1d
|
|
/* f0a8980: 10200073 */ beqz $at,.L0f0a8b50
|
|
/* f0a8984: 8fa5001c */ lw $a1,0x1c($sp)
|
|
/* f0a8988: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f0a898c: 3c017f1b */ lui $at,%hi(var7f1acaa4)
|
|
/* f0a8990: 002e0821 */ addu $at,$at,$t6
|
|
/* f0a8994: 8c2ecaa4 */ lw $t6,%lo(var7f1acaa4)($at)
|
|
/* f0a8998: 01c00008 */ jr $t6
|
|
/* f0a899c: 00000000 */ nop
|
|
/* f0a89a0: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a89a4: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a89a8: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a89ac: 90781583 */ lbu $t8,0x1583($v1)
|
|
/* f0a89b0: 37190020 */ ori $t9,$t8,0x20
|
|
/* f0a89b4: 10a00003 */ beqz $a1,.L0f0a89c4
|
|
/* f0a89b8: a0791583 */ sb $t9,0x1583($v1)
|
|
/* f0a89bc: 100000a0 */ b .L0f0a8c40
|
|
/* f0a89c0: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a89c4:
|
|
/* f0a89c4: 8fa90018 */ lw $t1,0x18($sp)
|
|
/* f0a89c8: 29210032 */ slti $at,$t1,0x32
|
|
/* f0a89cc: 50200004 */ beqzl $at,.L0f0a89e0
|
|
/* f0a89d0: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a89d4: 1000009a */ b .L0f0a8c40
|
|
/* f0a89d8: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a89dc: 8d030284 */ lw $v1,0x284($t0)
|
|
.L0f0a89e0:
|
|
/* f0a89e0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a89e4: 906a063b */ lbu $t2,0x63b($v1)
|
|
/* f0a89e8: 51410004 */ beql $t2,$at,.L0f0a89fc
|
|
/* f0a89ec: 906c0d0f */ lbu $t4,0xd0f($v1)
|
|
/* f0a89f0: 10000093 */ b .L0f0a8c40
|
|
/* f0a89f4: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a89f8: 906c0d0f */ lbu $t4,0xd0f($v1)
|
|
.L0f0a89fc:
|
|
/* f0a89fc: 24020002 */ addiu $v0,$zero,0x2
|
|
/* f0a8a00: 358d0010 */ ori $t5,$t4,0x10
|
|
/* f0a8a04: 1000008e */ b .L0f0a8c40
|
|
/* f0a8a08: a06d0d0f */ sb $t5,0xd0f($v1)
|
|
/* f0a8a0c: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8a10: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8a14: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a8a18: 906f1583 */ lbu $t7,0x1583($v1)
|
|
/* f0a8a1c: 35f80020 */ ori $t8,$t7,0x20
|
|
/* f0a8a20: a0781583 */ sb $t8,0x1583($v1)
|
|
/* f0a8a24: 8fb90020 */ lw $t9,0x20($sp)
|
|
/* f0a8a28: 1320000b */ beqz $t9,.L0f0a8a58
|
|
/* f0a8a2c: 00000000 */ nop
|
|
/* f0a8a30: 0fc2a31f */ jal bgunIsUsingSecondaryFunction
|
|
/* f0a8a34: 00000000 */ nop
|
|
/* f0a8a38: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8a3c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a8a40: 14410005 */ bne $v0,$at,.L0f0a8a58
|
|
/* f0a8a44: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8a48: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a8a4c: 906a0d0f */ lbu $t2,0xd0f($v1)
|
|
/* f0a8a50: 354b0010 */ ori $t3,$t2,0x10
|
|
/* f0a8a54: a06b0d0f */ sb $t3,0xd0f($v1)
|
|
.L0f0a8a58:
|
|
/* f0a8a58: 10000079 */ b .L0f0a8c40
|
|
/* f0a8a5c: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0a8a60: 14a00039 */ bnez $a1,.L0f0a8b48
|
|
/* f0a8a64: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8a68: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8a6c: 8d0c0284 */ lw $t4,0x284($t0)
|
|
/* f0a8a70: 81871580 */ lb $a3,0x1580($t4)
|
|
/* f0a8a74: 0007102a */ slt $v0,$zero,$a3
|
|
/* f0a8a78: 10400031 */ beqz $v0,.L0f0a8b40
|
|
/* f0a8a7c: 28e30024 */ slti $v1,$a3,0x24
|
|
/* f0a8a80: 1060002f */ beqz $v1,.L0f0a8b40
|
|
/* f0a8a84: 00000000 */ nop
|
|
/* f0a8a88: 10400014 */ beqz $v0,.L0f0a8adc
|
|
/* f0a8a8c: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a8a90: 10600012 */ beqz $v1,.L0f0a8adc
|
|
/* f0a8a94: 00602025 */ or $a0,$v1,$zero
|
|
/* f0a8a98: 8d0d0288 */ lw $t5,0x288($t0)
|
|
/* f0a8a9c: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8aa0: 0002c0c3 */ sra $t8,$v0,0x3
|
|
/* f0a8aa4: 8dae0070 */ lw $t6,0x70($t5)
|
|
/* f0a8aa8: 3c09800b */ lui $t1,%hi(g_PlayerConfigsArray+0x97)
|
|
/* f0a8aac: 304a0007 */ andi $t2,$v0,0x7
|
|
/* f0a8ab0: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0a8ab4: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0a8ab8: 000f7940 */ sll $t7,$t7,0x5
|
|
/* f0a8abc: 01f8c821 */ addu $t9,$t7,$t8
|
|
/* f0a8ac0: 01394821 */ addu $t1,$t1,$t9
|
|
/* f0a8ac4: 9129c84f */ lbu $t1,%lo(g_PlayerConfigsArray+0x97)($t1)
|
|
/* f0a8ac8: 240b0001 */ addiu $t3,$zero,0x1
|
|
/* f0a8acc: 014b6004 */ sllv $t4,$t3,$t2
|
|
/* f0a8ad0: 012c2024 */ and $a0,$t1,$t4
|
|
/* f0a8ad4: 0004682b */ sltu $t5,$zero,$a0
|
|
/* f0a8ad8: 01a02025 */ or $a0,$t5,$zero
|
|
.L0f0a8adc:
|
|
/* f0a8adc: 3c0e800a */ lui $t6,%hi(g_Vars+0x288)
|
|
/* f0a8ae0: 8dcea248 */ lw $t6,%lo(g_Vars+0x288)($t6)
|
|
/* f0a8ae4: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8ae8: 0002c8c3 */ sra $t9,$v0,0x3
|
|
/* f0a8aec: 8dcf0070 */ lw $t7,0x70($t6)
|
|
/* f0a8af0: 3c0a800b */ lui $t2,%hi(g_PlayerConfigsArray)
|
|
/* f0a8af4: 254ac7b8 */ addiu $t2,$t2,%lo(g_PlayerConfigsArray)
|
|
/* f0a8af8: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0a8afc: 030fc021 */ addu $t8,$t8,$t7
|
|
/* f0a8b00: 0018c140 */ sll $t8,$t8,0x5
|
|
/* f0a8b04: 03195821 */ addu $t3,$t8,$t9
|
|
/* f0a8b08: 016a1821 */ addu $v1,$t3,$t2
|
|
/* f0a8b0c: 30490007 */ andi $t1,$v0,0x7
|
|
/* f0a8b10: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0a8b14: 240d0001 */ addiu $t5,$zero,0x1
|
|
/* f0a8b18: 012c3004 */ sllv $a2,$t4,$t1
|
|
/* f0a8b1c: 11a40005 */ beq $t5,$a0,.L0f0a8b34
|
|
/* f0a8b20: 90650097 */ lbu $a1,0x97($v1)
|
|
/* f0a8b24: 00a67825 */ or $t7,$a1,$a2
|
|
/* f0a8b28: a06f0097 */ sb $t7,0x97($v1)
|
|
/* f0a8b2c: 10000044 */ b .L0f0a8c40
|
|
/* f0a8b30: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a8b34:
|
|
/* f0a8b34: 00c0c027 */ nor $t8,$a2,$zero
|
|
/* f0a8b38: 00b8c824 */ and $t9,$a1,$t8
|
|
/* f0a8b3c: a0790097 */ sb $t9,0x97($v1)
|
|
.L0f0a8b40:
|
|
/* f0a8b40: 1000003f */ b .L0f0a8c40
|
|
/* f0a8b44: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a8b48:
|
|
/* f0a8b48: 1000003d */ b .L0f0a8c40
|
|
/* f0a8b4c: 00001025 */ or $v0,$zero,$zero
|
|
.L0f0a8b50:
|
|
/* f0a8b50: 10a00008 */ beqz $a1,.L0f0a8b74
|
|
/* f0a8b54: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8b58: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0a8b5c: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8b60: 8d030284 */ lw $v1,0x284($t0)
|
|
/* f0a8b64: 906a1583 */ lbu $t2,0x1583($v1)
|
|
/* f0a8b68: 354c0020 */ ori $t4,$t2,0x20
|
|
/* f0a8b6c: 10000033 */ b .L0f0a8c3c
|
|
/* f0a8b70: a06c1583 */ sb $t4,0x1583($v1)
|
|
.L0f0a8b74:
|
|
/* f0a8b74: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0a8b78: 8d090284 */ lw $t1,0x284($t0)
|
|
/* f0a8b7c: 81271580 */ lb $a3,0x1580($t1)
|
|
/* f0a8b80: 0007102a */ slt $v0,$zero,$a3
|
|
/* f0a8b84: 1040002d */ beqz $v0,.L0f0a8c3c
|
|
/* f0a8b88: 28e30024 */ slti $v1,$a3,0x24
|
|
/* f0a8b8c: 5060002c */ beqzl $v1,.L0f0a8c40
|
|
/* f0a8b90: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0a8b94: 50400015 */ beqzl $v0,.L0f0a8bec
|
|
/* f0a8b98: 8d0d0288 */ lw $t5,0x288($t0)
|
|
/* f0a8b9c: 10600012 */ beqz $v1,.L0f0a8be8
|
|
/* f0a8ba0: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8ba4: 8d0d0288 */ lw $t5,0x288($t0)
|
|
/* f0a8ba8: 0002c0c3 */ sra $t8,$v0,0x3
|
|
/* f0a8bac: 3c0b800b */ lui $t3,%hi(g_PlayerConfigsArray)
|
|
/* f0a8bb0: 8dae0070 */ lw $t6,0x70($t5)
|
|
/* f0a8bb4: 256bc7b8 */ addiu $t3,$t3,%lo(g_PlayerConfigsArray)
|
|
/* f0a8bb8: 304a0007 */ andi $t2,$v0,0x7
|
|
/* f0a8bbc: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0a8bc0: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0a8bc4: 000f7940 */ sll $t7,$t7,0x5
|
|
/* f0a8bc8: 01f8c821 */ addu $t9,$t7,$t8
|
|
/* f0a8bcc: 032b1821 */ addu $v1,$t9,$t3
|
|
/* f0a8bd0: 90650097 */ lbu $a1,0x97($v1)
|
|
/* f0a8bd4: 240c0001 */ addiu $t4,$zero,0x1
|
|
/* f0a8bd8: 014c3004 */ sllv $a2,$t4,$t2
|
|
/* f0a8bdc: 00a64824 */ and $t1,$a1,$a2
|
|
/* f0a8be0: 55200014 */ bnezl $t1,.L0f0a8c34
|
|
/* f0a8be4: 00c07827 */ nor $t7,$a2,$zero
|
|
.L0f0a8be8:
|
|
/* f0a8be8: 8d0d0288 */ lw $t5,0x288($t0)
|
|
.L0f0a8bec:
|
|
/* f0a8bec: 24e2ffff */ addiu $v0,$a3,-1
|
|
/* f0a8bf0: 0002c0c3 */ sra $t8,$v0,0x3
|
|
/* f0a8bf4: 8dae0070 */ lw $t6,0x70($t5)
|
|
/* f0a8bf8: 3c0b800b */ lui $t3,%hi(g_PlayerConfigsArray)
|
|
/* f0a8bfc: 256bc7b8 */ addiu $t3,$t3,%lo(g_PlayerConfigsArray)
|
|
/* f0a8c00: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0a8c04: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0a8c08: 000f7940 */ sll $t7,$t7,0x5
|
|
/* f0a8c0c: 01f8c821 */ addu $t9,$t7,$t8
|
|
/* f0a8c10: 032b1821 */ addu $v1,$t9,$t3
|
|
/* f0a8c14: 906c0097 */ lbu $t4,0x97($v1)
|
|
/* f0a8c18: 304a0007 */ andi $t2,$v0,0x7
|
|
/* f0a8c1c: 24090001 */ addiu $t1,$zero,0x1
|
|
/* f0a8c20: 01496804 */ sllv $t5,$t1,$t2
|
|
/* f0a8c24: 018d7025 */ or $t6,$t4,$t5
|
|
/* f0a8c28: 10000004 */ b .L0f0a8c3c
|
|
/* f0a8c2c: a06e0097 */ sb $t6,0x97($v1)
|
|
/* f0a8c30: 00c07827 */ nor $t7,$a2,$zero
|
|
.L0f0a8c34:
|
|
/* f0a8c34: 00afc024 */ and $t8,$a1,$t7
|
|
/* f0a8c38: a0780097 */ sb $t8,0x97($v1)
|
|
.L0f0a8c3c:
|
|
/* f0a8c3c: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0a8c40:
|
|
/* f0a8c40: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f0a8c44: 27bd0018 */ addiu $sp,$sp,0x18
|
|
/* f0a8c48: 03e00008 */ jr $ra
|
|
/* f0a8c4c: 00000000 */ nop
|
|
);
|
|
#endif
|
|
|
|
// Mismatch near the first gunfuncs check.
|
|
// Goal loads 1 into $t5 while the below uses $at.
|
|
//u32 bgunConsiderToggleGunFunction(s32 usedowntime, bool firing, s32 arg2)
|
|
//{
|
|
// switch (bgunGetWeaponNum(HAND_RIGHT)) {
|
|
// case WEAPON_SNIPERRIFLE: // f0a89a0
|
|
// // Setting this allows the sniper rifle to behave somewhat similarly to
|
|
// // a temporary function, meaning that it reverts to primary when B is
|
|
// // released.
|
|
// g_Vars.currentplayer->invertgunfunc = true;
|
|
//
|
|
// // B+Z immediately triggers crouch or stand.
|
|
// if (firing) {
|
|
// return 1;
|
|
// }
|
|
//
|
|
// // Don't do anything if B hasn't been held for 50/60ths of a second.
|
|
// if (usedowntime < 50) {
|
|
// return 0;
|
|
// }
|
|
//
|
|
// // Sanity check - make sure the sniper isn't set to alt function
|
|
// // permanently (this is impossible).
|
|
// if (g_Vars.currentplayer->hands[HAND_RIGHT].weaponfunc != 1) {
|
|
// return 0;
|
|
// }
|
|
//
|
|
// // Do crouch or stand
|
|
// g_Vars.currentplayer->hands[HAND_RIGHT].unk0d0f_03 = true;
|
|
// return 2;
|
|
// case WEAPON_RCP120:
|
|
// case WEAPON_LAPTOPGUN:
|
|
// case WEAPON_DRAGON:
|
|
// case WEAPON_REMOTEMINE: // f0a8a0c
|
|
// // These guns use temporary alt functions
|
|
// g_Vars.currentplayer->invertgunfunc = true;
|
|
//
|
|
// if (arg2 && bgunIsUsingSecondaryFunction() == true) {
|
|
// g_Vars.currentplayer->hands[HAND_RIGHT].unk0d0f_03 = true;
|
|
// }
|
|
//
|
|
// return 1;
|
|
// case WEAPON_MAULER:
|
|
// case WEAPON_CMP150:
|
|
// case WEAPON_K7AVENGER:
|
|
// case WEAPON_AR34:
|
|
// case WEAPON_FARSIGHT:
|
|
// case WEAPON_TIMEDMINE: // f0a8a60
|
|
// // These guns disallow B+Z
|
|
// if (firing == false) {
|
|
// if (g_Vars.currentplayer->weaponnum >= WEAPON_UNARMED
|
|
// && g_Vars.currentplayer->weaponnum <= WEAPON_COMBATBOOST) {
|
|
// // A macro is probably used here, hence the duplicate checks
|
|
// if ((g_Vars.currentplayer->weaponnum >= WEAPON_UNARMED
|
|
// && g_Vars.currentplayer->weaponnum <= WEAPON_COMBATBOOST
|
|
// && (g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].gunfuncs[(g_Vars.currentplayer->weaponnum - 1) >> 3] & (1 << ((g_Vars.currentplayer->weaponnum - 1) & 7)))) != 1) {
|
|
// // b24
|
|
// g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].gunfuncs[(g_Vars.currentplayer->weaponnum - 1) >> 3] |= 1 << ((g_Vars.currentplayer->weaponnum - 1) & 7);
|
|
// } else {
|
|
// // b34
|
|
// g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].gunfuncs[(g_Vars.currentplayer->weaponnum - 1) >> 3] &= ~(1 << ((g_Vars.currentplayer->weaponnum - 1) & 7));
|
|
// }
|
|
// }
|
|
//
|
|
// return 1;
|
|
// }
|
|
//
|
|
// return 0;
|
|
// default: // b50
|
|
// if (firing) {
|
|
// // B+Z
|
|
// g_Vars.currentplayer->invertgunfunc = true;
|
|
// } else {
|
|
// if (g_Vars.currentplayer->weaponnum >= WEAPON_UNARMED
|
|
// && g_Vars.currentplayer->weaponnum <= WEAPON_COMBATBOOST) {
|
|
// if (!(g_Vars.currentplayer->weaponnum >= WEAPON_UNARMED
|
|
// && g_Vars.currentplayer->weaponnum <= WEAPON_COMBATBOOST
|
|
// && (g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].gunfuncs[(g_Vars.currentplayer->weaponnum - 1) >> 3] & (1 << ((g_Vars.currentplayer->weaponnum - 1) & 7))))) {
|
|
// g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].gunfuncs[(g_Vars.currentplayer->weaponnum - 1) >> 3] |= 1 << ((g_Vars.currentplayer->weaponnum - 1) & 7);
|
|
// } else {
|
|
// g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].gunfuncs[(g_Vars.currentplayer->weaponnum - 1) >> 3] &= ~(1 << ((g_Vars.currentplayer->weaponnum - 1) & 7));
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// return 1;
|
|
// }
|
|
//}
|
|
|
|
void bgun0f0a8c50(void)
|
|
{
|
|
if (g_Vars.currentplayer->hands[HAND_RIGHT].unk0d0f_03 == 0) {
|
|
g_Vars.currentplayer->gunctrl.invertgunfunc = false;
|
|
}
|
|
}
|
|
|
|
bool bgunIsUsingSecondaryFunction(void)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
s32 weaponnum = player->gunctrl.weaponnum;
|
|
|
|
if (weaponnum >= WEAPON_UNARMED && weaponnum <= WEAPON_COMBATBOOST) {
|
|
s32 index = (weaponnum - 1) >> 3;
|
|
s32 value = 1 << ((weaponnum - 1) & 7);
|
|
|
|
if (g_PlayerConfigsArray[g_Vars.currentplayerstats->mpindex].gunfuncs[index] & value) {
|
|
if (player->gunctrl.invertgunfunc == true) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|
|
|
|
if (player->gunctrl.invertgunfunc == true) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Tick gun-related things during first-person gameplay.
|
|
*
|
|
* This function is not called during cutscenes.
|
|
*/
|
|
void bgunTickGameplay(bool triggeron)
|
|
{
|
|
s32 gunsfiring[2] = {false, false};
|
|
struct player *player = g_Vars.currentplayer;
|
|
s32 i;
|
|
|
|
// Remove weapons if in passive mode
|
|
if (g_Vars.currentplayer->gunctrl.passivemode) {
|
|
struct chrdata *chr = g_Vars.currentplayer->prop->chr;
|
|
triggeron = false;
|
|
|
|
if (invGetCount() > 1) {
|
|
invClear();
|
|
invGiveSingleWeapon(WEAPON_UNARMED);
|
|
}
|
|
|
|
if (g_Vars.currentplayer->gunctrl.weaponnum != WEAPON_UNARMED
|
|
&& g_Vars.currentplayer->gunctrl.switchtoweaponnum != WEAPON_UNARMED) {
|
|
bgunEquipWeapon(WEAPON_UNARMED);
|
|
}
|
|
|
|
g_Vars.currentplayer->gunctrl.dualwielding = false;
|
|
g_Vars.currentplayer->devicesactive = 0;
|
|
|
|
chr->cloakpause = 0;
|
|
chr->cloakfadefrac = 0;
|
|
chr->cloakfadefinished = false;
|
|
chr->hidden &= ~CHRHFLAG_CLOAKED;
|
|
}
|
|
|
|
// Remove throwable items from inventory if there's no more left
|
|
for (i = 0; i < invGetCount(); i++) {
|
|
struct weapon *weapon;
|
|
s32 weaponnum = invGetWeaponNumByIndex(i);
|
|
s32 equippedweaponnum;
|
|
|
|
switch (weaponnum) {
|
|
case WEAPON_COMBATKNIFE:
|
|
case WEAPON_GRENADE:
|
|
case WEAPON_NBOMB:
|
|
case WEAPON_COMBATBOOST:
|
|
case WEAPON_CLOAKINGDEVICE:
|
|
case WEAPON_ECMMINE:
|
|
case WEAPON_COMMSRIDER:
|
|
case WEAPON_TRACERBUG:
|
|
case WEAPON_TARGETAMPLIFIER:
|
|
weapon = weaponFindById(weaponnum);
|
|
|
|
if (weapon && weapon->ammos[0]
|
|
&& bgunGetAmmoCount(weapon->ammos[0]->type) == 0) {
|
|
equippedweaponnum = bgunGetWeaponNum(HAND_RIGHT);
|
|
invRemoveItemByNum(weaponnum);
|
|
|
|
if (weaponnum == equippedweaponnum && !invHasSingleWeaponIncAllGuns(weaponnum)) {
|
|
invCalculateCurrentIndex();
|
|
bgunEquipWeapon(invGetWeaponNumByIndex(g_Vars.currentplayer->equipcuritem));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (g_Vars.tickmode == TICKMODE_CUTSCENE) {
|
|
triggeron = false;
|
|
g_Vars.currentplayer->hands[HAND_LEFT].firing = false;
|
|
g_Vars.currentplayer->hands[HAND_RIGHT].firing = false;
|
|
}
|
|
|
|
player->playertriggerprev = player->playertriggeron;
|
|
player->playertriggeron = triggeron;
|
|
|
|
if (triggeron == false && player->playertriggerprev) {
|
|
// Releasing trigger
|
|
player->doautoselect = true;
|
|
}
|
|
|
|
// Handle gun firing - particularly alternating
|
|
// between left and right if dual wielding
|
|
if (player->playertriggeron) {
|
|
player->playertrigtime240 += g_Vars.lvupdate240;
|
|
|
|
if (player->hands[HAND_LEFT].inuse
|
|
&& player->hands[HAND_RIGHT].inuse
|
|
&& player->gunctrl.weaponnum != WEAPON_REMOTEMINE) {
|
|
if (player->playertrigtime240 > TICKS(80)) {
|
|
gunsfiring[player->curguntofire] = 1;
|
|
|
|
if (bgun0f099008(1 - player->curguntofire)
|
|
|| player->hands[1 - player->curguntofire].triggeron) {
|
|
gunsfiring[1 - player->curguntofire] = 1;
|
|
}
|
|
} else {
|
|
if (player->playertriggerprev == false &&
|
|
(bgun0f099008(1 - player->curguntofire) || !bgun0f099008(player->curguntofire))) {
|
|
player->curguntofire = 1 - player->curguntofire;
|
|
}
|
|
|
|
gunsfiring[player->curguntofire] = 1;
|
|
gunsfiring[1 - player->curguntofire] = 0;
|
|
}
|
|
} else {
|
|
if (!player->hands[player->curguntofire].inuse
|
|
&& player->hands[1 - player->curguntofire].inuse) {
|
|
player->curguntofire = 1 - player->curguntofire;
|
|
}
|
|
|
|
if (player->gunctrl.weaponnum == WEAPON_REMOTEMINE) {
|
|
player->curguntofire = 0;
|
|
}
|
|
|
|
gunsfiring[player->curguntofire] = 1;
|
|
gunsfiring[1 - player->curguntofire] = 0;
|
|
}
|
|
} else {
|
|
player->playertrigtime240 = 0;
|
|
}
|
|
|
|
bgunSetTriggerOn(HAND_RIGHT, gunsfiring[0]);
|
|
bgunSetTriggerOn(HAND_LEFT, gunsfiring[1]);
|
|
|
|
if (g_Vars.tickmode == TICKMODE_NORMAL && g_Vars.lvupdate240 > 0) {
|
|
bgunTickHand(HAND_RIGHT);
|
|
bgunTickHand(HAND_LEFT);
|
|
bgunTickSwitch();
|
|
|
|
if (cheatIsActive(CHEAT_UNLIMITEDAMMONORELOADS)) {
|
|
s32 i;
|
|
struct weapon *weapon;
|
|
struct hand *lhand = &g_Vars.currentplayer->hands[HAND_LEFT];
|
|
struct hand *rhand = &g_Vars.currentplayer->hands[HAND_RIGHT];
|
|
|
|
weapon = weaponFindById(rhand->gset.weaponnum);
|
|
|
|
for (i = 0; i != 2; i++) {
|
|
if (weapon && weapon->ammos[i] &&
|
|
bgunAmmotypeAllowsUnlimitedAmmo(weapon->ammos[i]->type)) {
|
|
rhand->loadedammo[i] = rhand->clipsizes[i];
|
|
lhand->loadedammo[i] = lhand->clipsizes[i];
|
|
}
|
|
}
|
|
|
|
bgunGiveMaxAmmo(false);
|
|
} else if (cheatIsActive(CHEAT_UNLIMITEDAMMO)) {
|
|
bgunGiveMaxAmmo(false);
|
|
}
|
|
}
|
|
|
|
bgunDecreaseNoiseRadius();
|
|
|
|
if (player->resetshadecol) {
|
|
func0f069144(g_Vars.currentplayer->prop, player->gunshadecol, player->floorcol);
|
|
player->resetshadecol = 0;
|
|
} else {
|
|
u8 shadecol[4];
|
|
func0f069144(g_Vars.currentplayer->prop, shadecol, player->floorcol);
|
|
colourTween(player->gunshadecol, shadecol);
|
|
}
|
|
|
|
invIncrementHeldTime(bgunGetWeaponNum(HAND_RIGHT), bgunGetWeaponNum(HAND_LEFT));
|
|
}
|
|
|
|
void bgunSetPassiveMode(bool enable)
|
|
{
|
|
s32 i;
|
|
|
|
for (i = 0; i < PLAYERCOUNT(); i++) {
|
|
g_Vars.players[i]->gunctrl.passivemode = enable;
|
|
}
|
|
}
|
|
|
|
void bgunSetAimType(u32 aimtype)
|
|
{
|
|
g_Vars.currentplayer->aimtype = aimtype;
|
|
}
|
|
|
|
void bgunSetAimPos(struct coord *coord)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
player->hands[HAND_RIGHT].aimpos.x = handGetXShift(HAND_RIGHT) + coord->x;
|
|
player->hands[HAND_RIGHT].aimpos.y = coord->y;
|
|
player->hands[HAND_RIGHT].aimpos.z = coord->z;
|
|
|
|
player->hands[HAND_LEFT].aimpos.x = handGetXShift(HAND_LEFT) + coord->x;
|
|
player->hands[HAND_LEFT].aimpos.y = coord->y;
|
|
player->hands[HAND_LEFT].aimpos.z = coord->z;
|
|
}
|
|
|
|
void bgunSetHitPos(struct coord *coord)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
player->hands[HAND_LEFT].hitpos.x = player->hands[HAND_RIGHT].hitpos.x = coord->x;
|
|
player->hands[HAND_LEFT].hitpos.y = player->hands[HAND_RIGHT].hitpos.y = coord->y;
|
|
player->hands[HAND_LEFT].hitpos.z = player->hands[HAND_RIGHT].hitpos.z = coord->z;
|
|
}
|
|
|
|
void bgun0f0a9494(u32 operation)
|
|
{
|
|
switch (operation) {
|
|
case 0:
|
|
g_Vars.currentplayer->hands[HAND_LEFT].hasdotinfo = g_Vars.currentplayer->hands[HAND_RIGHT].hasdotinfo = false;
|
|
break;
|
|
case 1:
|
|
break;
|
|
}
|
|
}
|
|
|
|
void bgun0f0a94d0(u32 operation, struct coord *pos, struct coord *rot)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
switch (operation) {
|
|
case 0:
|
|
if (pos->x > -100000.0f && pos->x < 100000.0f
|
|
&& pos->y > -100000.0f && pos->y < 100000.0f
|
|
&& pos->z > -100000.0f && pos->z < 100000.0f) {
|
|
player->hands[HAND_RIGHT].hasdotinfo = true;
|
|
player->hands[HAND_LEFT].hasdotinfo = true;
|
|
|
|
player->hands[HAND_LEFT].dotpos.x = player->hands[HAND_RIGHT].dotpos.x = pos->x;
|
|
player->hands[HAND_LEFT].dotpos.y = player->hands[HAND_RIGHT].dotpos.y = pos->y;
|
|
player->hands[HAND_LEFT].dotpos.z = player->hands[HAND_RIGHT].dotpos.z = pos->z;
|
|
|
|
player->hands[HAND_LEFT].dotrot.x = player->hands[HAND_RIGHT].dotrot.x = rot->x;
|
|
player->hands[HAND_LEFT].dotrot.y = player->hands[HAND_RIGHT].dotrot.y = rot->y;
|
|
player->hands[HAND_LEFT].dotrot.z = player->hands[HAND_RIGHT].dotrot.z = rot->z;
|
|
}
|
|
break;
|
|
case 1:
|
|
case 2:
|
|
lasersightSetDot(operation - 1, pos, rot);
|
|
break;
|
|
}
|
|
}
|
|
|
|
void bgunSetGunAmmoVisible(u32 reason, bool enable)
|
|
{
|
|
if (enable) {
|
|
g_Vars.currentplayer->gunammooff &= ~reason;
|
|
} else {
|
|
g_Vars.currentplayer->gunammooff |= reason;
|
|
}
|
|
}
|
|
|
|
struct ammotype g_AmmoTypes[] = {
|
|
{ 0, 0, 0 },
|
|
{ 800, 0, 0 }, // AMMOTYPE_PISTOL
|
|
{ 800, 0, 0 }, // AMMOTYPE_SMG
|
|
{ 69, 0, 0 }, // AMMOTYPE_CROSSBOW
|
|
{ 400, 0, -2 }, // AMMOTYPE_RIFLE
|
|
{ 100, 0, 0 }, // AMMOTYPE_SHOTGUN
|
|
{ 100, 0, 0 }, // AMMOTYPE_FARSIGHT
|
|
{ 12, 0, 0 }, // AMMOTYPE_GRENADE
|
|
{ 3, 0, -2 }, // AMMOTYPE_ROCKET
|
|
{ 10, 0, 0 }, // AMMOTYPE_KNIFE
|
|
{ 200, 0, 0 }, // AMMOTYPE_MAGNUM
|
|
{ 40, 0, 0 }, // AMMOTYPE_DEVASTATOR
|
|
{ 10, 0, 1 }, // AMMOTYPE_REMOTE_MINE
|
|
{ 10, 0, 1 }, // AMMOTYPE_PROXY_MINE
|
|
{ 10, 0, 1 }, // AMMOTYPE_TIMED_MINE
|
|
{ 800, 0, 0 }, // AMMOTYPE_REAPER
|
|
{ 15, 0, -2 }, // AMMOTYPE_HOMINGROCKET
|
|
{ 50, 0, 0 }, // AMMOTYPE_DART
|
|
{ 10, 0, 0 }, // AMMOTYPE_NBOMB
|
|
{ 200, 0, 0 }, // AMMOTYPE_SEDATIVE
|
|
{ TICKS(18000), 0, 0 }, // AMMOTYPE_CLOAK
|
|
{ 4, 0, 0 }, // AMMOTYPE_BOOST
|
|
{ 200, 0, 0 }, // AMMOTYPE_PSYCHOSIS
|
|
{ 2, 0, 0 }, // AMMOTYPE_17
|
|
{ 10, 0, 0 }, // AMMOTYPE_BUG
|
|
{ 10, 0, 0 }, // AMMOTYPE_MICROCAMERA
|
|
{ 10, 0, 0 }, // AMMOTYPE_PLASTIQUE
|
|
{ 1000, 0, 0 }, // AMMOTYPE_1B
|
|
{ 10, 0, 0 }, // AMMOTYPE_1C
|
|
{ 50, 0, -1 }, // AMMOTYPE_1D
|
|
{ 1, 0, 0 }, // AMMOTYPE_TOKEN
|
|
{ 200, 0, 0 }, // AMMOTYPE_1F
|
|
{ 10, 0, 0 }, // AMMOTYPE_ECM_MINE
|
|
};
|
|
|
|
void bgunSetAmmoQuantity(s32 ammotype, s32 quantity)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
s32 weaponnum = bgunGetWeaponNum(HAND_RIGHT);
|
|
s32 funcnum = -1;
|
|
s32 magamount;
|
|
|
|
// Check if this ammo type applies to the player's equipped weapon
|
|
if (bgunGetAmmoTypeForWeapon(weaponnum, FUNC_PRIMARY) == ammotype) {
|
|
funcnum = FUNC_PRIMARY;
|
|
}
|
|
|
|
if (bgunGetAmmoTypeForWeapon(weaponnum, FUNC_SECONDARY) == ammotype) {
|
|
funcnum = FUNC_SECONDARY;
|
|
}
|
|
|
|
if (funcnum != -1 && weaponHasAmmoFlag(weaponnum, funcnum, AMMOFLAG_NORESERVE)) {
|
|
// For cloak and combat boost, ammo cannot be held outside of the weapon.
|
|
// So just add it to the loaded clip.
|
|
player->hands[0].loadedammo[funcnum] += quantity;
|
|
|
|
if (player->hands[0].loadedammo[funcnum] > player->hands[0].clipsizes[funcnum]) {
|
|
player->hands[0].loadedammo[funcnum] = player->hands[0].clipsizes[funcnum];
|
|
}
|
|
|
|
player->ammoheldarr[ammotype] = 0;
|
|
return;
|
|
}
|
|
|
|
magamount = 0;
|
|
|
|
// For throwable items, the capacity applies to reserve + loaded
|
|
if (funcnum != -1 && weaponHasAmmoFlag(weaponnum, funcnum, AMMOFLAG_EQUIPPEDISRESERVE)) {
|
|
magamount = player->hands[0].loadedammo[funcnum] + player->hands[1].loadedammo[funcnum];
|
|
}
|
|
|
|
if (quantity > g_AmmoTypes[ammotype].capacity - magamount) {
|
|
player->ammoheldarr[ammotype] = g_AmmoTypes[ammotype].capacity - magamount;
|
|
} else {
|
|
player->ammoheldarr[ammotype] = quantity;
|
|
}
|
|
}
|
|
|
|
s32 bgunGetReservedAmmoCount(s32 ammotype)
|
|
{
|
|
s32 i;
|
|
s32 j;
|
|
s32 total = g_Vars.currentplayer->ammoheldarr[ammotype];
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
if (player->hands[i].inuse) {
|
|
for (j = 0; j < 2; j++) {
|
|
if (player->gunctrl.ammotypes[j] == ammotype && weaponHasAmmoFlag(player->hands[i].gset.weaponnum, j, AMMOFLAG_NORESERVE)) {
|
|
total = total + player->hands[i].loadedammo[j];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return total;
|
|
}
|
|
|
|
s32 bgunGetAmmoCount(s32 ammotype)
|
|
{
|
|
s32 i;
|
|
s32 j;
|
|
s32 total = g_Vars.currentplayer->ammoheldarr[ammotype];
|
|
struct player *player = g_Vars.currentplayer;
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
if (player->hands[i].inuse) {
|
|
for (j = 0; j < 2; j++) {
|
|
if (player->gunctrl.ammotypes[j] == ammotype) {
|
|
total = total + player->hands[i].loadedammo[j];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return total;
|
|
}
|
|
|
|
s32 bgunGetCapacityByAmmotype(s32 ammotype)
|
|
{
|
|
return g_AmmoTypes[ammotype].capacity;
|
|
}
|
|
|
|
bool bgunAmmotypeAllowsUnlimitedAmmo(u32 ammotype)
|
|
{
|
|
switch (ammotype) {
|
|
case AMMOTYPE_REMOTE_MINE:
|
|
if (g_Vars.stagenum == STAGE_CHICAGO) {
|
|
return false;
|
|
}
|
|
break;
|
|
case AMMOTYPE_TIMED_MINE:
|
|
if (g_Vars.stagenum == STAGE_AIRFORCEONE) {
|
|
return false;
|
|
}
|
|
break;
|
|
case AMMOTYPE_PSYCHOSIS:
|
|
case AMMOTYPE_17:
|
|
case AMMOTYPE_BUG:
|
|
case AMMOTYPE_MICROCAMERA:
|
|
case AMMOTYPE_PLASTIQUE:
|
|
case AMMOTYPE_1B:
|
|
case AMMOTYPE_1C:
|
|
case AMMOTYPE_1D:
|
|
case AMMOTYPE_TOKEN:
|
|
case AMMOTYPE_1F:
|
|
case AMMOTYPE_ECM_MINE:
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
void bgunGiveMaxAmmo(bool force)
|
|
{
|
|
s32 i;
|
|
|
|
for (i = 0; i < ARRAYCOUNT(g_AmmoTypes); i++) {
|
|
bool give = true;
|
|
|
|
if (!force) {
|
|
give = bgunAmmotypeAllowsUnlimitedAmmo(i);
|
|
}
|
|
|
|
if (give) {
|
|
bgunSetAmmoQuantity(i, g_AmmoTypes[i].capacity);
|
|
}
|
|
}
|
|
}
|
|
|
|
u32 bgunGetAmmoTypeForWeapon(u32 weaponnum, u32 func)
|
|
{
|
|
struct weapon *weapon = weaponFindById(weaponnum);
|
|
|
|
if (!weapon) {
|
|
return 0;
|
|
}
|
|
|
|
if (!weapon->ammos[func]) {
|
|
return 0;
|
|
}
|
|
|
|
return weapon->ammos[func]->type;
|
|
}
|
|
|
|
s32 bgunGetAmmoQtyForWeapon(u32 weaponnum, u32 func)
|
|
{
|
|
struct weapon *weapon = weaponFindById(weaponnum);
|
|
|
|
if (weapon) {
|
|
struct inventory_ammo *ammo = weapon->ammos[func];
|
|
|
|
if (ammo) {
|
|
return bgunGetReservedAmmoCount(ammo->type);
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void bgunSetAmmoQtyForWeapon(u32 weaponnum, u32 func, u32 quantity)
|
|
{
|
|
struct weapon *weapon = weaponFindById(weaponnum);
|
|
|
|
if (weapon) {
|
|
struct inventory_ammo *ammo = weapon->ammos[func];
|
|
|
|
if (ammo) {
|
|
bgunSetAmmoQuantity(ammo->type, quantity);
|
|
}
|
|
}
|
|
}
|
|
|
|
s32 bgunGetAmmoCapacityForWeapon(s32 weaponnum, s32 func)
|
|
{
|
|
struct weapon *weapon = weaponFindById(weaponnum);
|
|
struct inventory_ammo *ammo = weapon->ammos[func];
|
|
|
|
if (ammo) {
|
|
return g_AmmoTypes[ammo->type].capacity;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
Gfx *bgunRenderHudString(Gfx *gdl, char *text, s32 x, bool halign, s32 y, s32 valign, u32 colour)
|
|
{
|
|
s32 x1 = 0;
|
|
s32 y1 = 0;
|
|
s32 x2 = 0;
|
|
s32 y2 = 0;
|
|
s32 textheight;
|
|
s32 textwidth;
|
|
|
|
textwidth = 0;
|
|
textheight = 0;
|
|
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
textMeasure(&textheight, &textwidth, text, g_CharsNumeric, g_FontNumeric, -1);
|
|
#else
|
|
textMeasure(&textheight, &textwidth, text, g_CharsNumeric, g_FontNumeric, 0);
|
|
#endif
|
|
|
|
if (halign == HUDHALIGN_LEFT) { // left
|
|
x2 = x + textwidth;
|
|
x1 = x;
|
|
} else if (halign == HUDHALIGN_RIGHT) { // right
|
|
x1 = x - textwidth;
|
|
x2 = x;
|
|
} else if (halign == HUDHALIGN_MIDDLE) { // middle
|
|
x2 = x + textwidth / 2;
|
|
x1 = x2 - textwidth;
|
|
}
|
|
|
|
if (valign == HUDVALIGN_TOP) { // top
|
|
y2 = y + textheight;
|
|
y1 = y;
|
|
} else if (valign == HUDVALIGN_BOTTOM) { // bottom
|
|
y1 = y - textheight;
|
|
y2 = y;
|
|
} else if (valign == HUDVALIGN_MIDDLE) { // middle
|
|
y2 = y + textheight / 2;
|
|
y1 = y2 - textheight;
|
|
}
|
|
|
|
gdl = text0f153858(gdl, &x1, &y1, &x2, &y2);
|
|
gdl = textRender(gdl, &x1, &y1, text, g_CharsNumeric, g_FontNumeric, colour, 0x000000a0, viGetWidth(), viGetHeight(), 0, 0);
|
|
|
|
return gdl;
|
|
}
|
|
|
|
Gfx *bgunRenderHudInteger(Gfx *gdl, s32 value, s32 x, bool halign, s32 y, s32 valign, u32 colour)
|
|
{
|
|
char buffer[12];
|
|
|
|
sprintf(buffer, "%d\n", value);
|
|
gdl = bgunRenderHudString(gdl, buffer, x, halign, y, valign, colour);
|
|
|
|
return gdl;
|
|
}
|
|
|
|
void bgunResetAbmag(struct abmag *abmag)
|
|
{
|
|
abmag->loadedammo = 0;
|
|
abmag->change = 0;
|
|
abmag->ref = 0;
|
|
abmag->timer60 = 0;
|
|
}
|
|
|
|
void bgun0f0a9da8(struct abmag *mag, s32 remaining, s32 capacity, s32 height)
|
|
{
|
|
s32 newchange;
|
|
|
|
if (capacity > 20) {
|
|
s32 newremaining = height * remaining / capacity;
|
|
|
|
if (remaining > 0 && newremaining < 1) {
|
|
newremaining = 1;
|
|
}
|
|
|
|
capacity = height;
|
|
|
|
if (newremaining == mag->ref && mag->loadedammo > remaining) {
|
|
mag->ref++;
|
|
}
|
|
|
|
mag->loadedammo = remaining;
|
|
remaining = newremaining;
|
|
}
|
|
|
|
newchange = remaining - mag->ref;
|
|
|
|
if ((mag->change < 0 && newchange > 0) || (mag->change > 0 && newchange < 0)) {
|
|
mag->ref += mag->change;
|
|
mag->change = 0;
|
|
mag->timer60 = 0;
|
|
|
|
newchange = remaining - mag->ref;
|
|
}
|
|
|
|
if (mag->change < 0 && mag->change > newchange) {
|
|
if (mag->timer60 > -mag->change * TICKS(64)) {
|
|
mag->timer60 = -mag->change * TICKS(64);
|
|
}
|
|
}
|
|
|
|
mag->change = newchange;
|
|
|
|
if (mag->change > 0) {
|
|
height = capacity;
|
|
|
|
if (capacity < 6) {
|
|
height = 6;
|
|
}
|
|
} else {
|
|
height = 8;
|
|
|
|
if (mag->change < -3) {
|
|
height += -mag->change * 2;
|
|
}
|
|
}
|
|
|
|
if (mag->change != 0) {
|
|
mag->timer60 += (s16)g_Vars.lvupdate240_60 * height;
|
|
|
|
if (mag->timer60 > TICKS(255)) {
|
|
if (mag->change > 0) {
|
|
while (mag->timer60 > TICKS(255) && mag->change > 0) {
|
|
mag->change--;
|
|
mag->ref++;
|
|
mag->timer60 -= TICKS(64);
|
|
}
|
|
} else {
|
|
while (mag->timer60 > TICKS(255) && mag->change < 0) {
|
|
mag->change++;
|
|
mag->ref--;
|
|
mag->timer60 -= TICKS(64);
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
mag->timer60 = 0;
|
|
}
|
|
}
|
|
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
GLOBAL_ASM(
|
|
glabel bgunRenderHudGauge
|
|
/* f0ab044: 27bdff30 */ addiu $sp,$sp,-208
|
|
/* f0ab048: afbe0038 */ sw $s8,0x38($sp)
|
|
/* f0ab04c: afa600d8 */ sw $a2,0xd8($sp)
|
|
/* f0ab050: 8fbe00e0 */ lw $s8,0xe0($sp)
|
|
/* f0ab054: 8fae00d8 */ lw $t6,0xd8($sp)
|
|
/* f0ab058: afb00018 */ sw $s0,0x18($sp)
|
|
/* f0ab05c: 8fb000ec */ lw $s0,0xec($sp)
|
|
/* f0ab060: afb20020 */ sw $s2,0x20($sp)
|
|
/* f0ab064: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f0ab068: 00808825 */ move $s1,$a0
|
|
/* f0ab06c: afbf003c */ sw $ra,0x3c($sp)
|
|
/* f0ab070: afa500d4 */ sw $a1,0xd4($sp)
|
|
/* f0ab074: afa700dc */ sw $a3,0xdc($sp)
|
|
/* f0ab078: 03ce9023 */ subu $s2,$s8,$t6
|
|
/* f0ab07c: afb70034 */ sw $s7,0x34($sp)
|
|
/* f0ab080: afb60030 */ sw $s6,0x30($sp)
|
|
/* f0ab084: afb5002c */ sw $s5,0x2c($sp)
|
|
/* f0ab088: afb40028 */ sw $s4,0x28($sp)
|
|
/* f0ab08c: afb30024 */ sw $s3,0x24($sp)
|
|
/* f0ab090: 02403825 */ move $a3,$s2
|
|
/* f0ab094: 8fa500e8 */ lw $a1,0xe8($sp)
|
|
/* f0ab098: 8fa400e4 */ lw $a0,0xe4($sp)
|
|
/* f0ab09c: afb000b4 */ sw $s0,0xb4($sp)
|
|
/* f0ab0a0: 0fc2ab8b */ jal bgun0f0a9da8
|
|
/* f0ab0a4: 02003025 */ move $a2,$s0
|
|
/* f0ab0a8: 2a010015 */ slti $at,$s0,0x15
|
|
/* f0ab0ac: 8fa900e4 */ lw $t1,0xe4($sp)
|
|
/* f0ab0b0: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0ab0b4: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0ab0b8: 14200008 */ bnez $at,.JF0f0ab0dc
|
|
/* f0ab0bc: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0ab0c0: 812f0004 */ lb $t7,0x4($t1)
|
|
/* f0ab0c4: 24160001 */ li $s6,0x1
|
|
/* f0ab0c8: afb200b4 */ sw $s2,0xb4($sp)
|
|
/* f0ab0cc: 448f2000 */ mtc1 $t7,$f4
|
|
/* f0ab0d0: 03d23023 */ subu $a2,$s8,$s2
|
|
/* f0ab0d4: 1000002b */ b .JF0f0ab184
|
|
/* f0ab0d8: 46802020 */ cvt.s.w $f0,$f4
|
|
.JF0f0ab0dc:
|
|
/* f0ab0dc: 0250001a */ div $zero,$s2,$s0
|
|
/* f0ab0e0: 00001012 */ mflo $v0
|
|
/* f0ab0e4: 24470001 */ addiu $a3,$v0,0x1
|
|
/* f0ab0e8: 81380004 */ lb $t8,0x4($t1)
|
|
/* f0ab0ec: 00500019 */ multu $v0,$s0
|
|
/* f0ab0f0: 0040b025 */ move $s6,$v0
|
|
/* f0ab0f4: 44983000 */ mtc1 $t8,$f6
|
|
/* f0ab0f8: 00000000 */ nop
|
|
/* f0ab0fc: 46803020 */ cvt.s.w $f0,$f6
|
|
/* f0ab100: 16000002 */ bnez $s0,.JF0f0ab10c
|
|
/* f0ab104: 00000000 */ nop
|
|
/* f0ab108: 0007000d */ break 0x7
|
|
.JF0f0ab10c:
|
|
/* f0ab10c: 2401ffff */ li $at,-1
|
|
/* f0ab110: 16010004 */ bne $s0,$at,.JF0f0ab124
|
|
/* f0ab114: 3c018000 */ lui $at,0x8000
|
|
/* f0ab118: 16410002 */ bne $s2,$at,.JF0f0ab124
|
|
/* f0ab11c: 00000000 */ nop
|
|
/* f0ab120: 0006000d */ break 0x6
|
|
.JF0f0ab124:
|
|
/* f0ab124: 0000c812 */ mflo $t9
|
|
/* f0ab128: 03322023 */ subu $a0,$t9,$s2
|
|
/* f0ab12c: 00802825 */ move $a1,$a0
|
|
/* f0ab130: 00f00019 */ multu $a3,$s0
|
|
/* f0ab134: 00007012 */ mflo $t6
|
|
/* f0ab138: 01d21823 */ subu $v1,$t6,$s2
|
|
/* f0ab13c: 04810002 */ bgez $a0,.JF0f0ab148
|
|
/* f0ab140: 00603025 */ move $a2,$v1
|
|
/* f0ab144: 00042823 */ negu $a1,$a0
|
|
.JF0f0ab148:
|
|
/* f0ab148: 04630003 */ bgezl $v1,.JF0f0ab158
|
|
/* f0ab14c: 00c5082a */ slt $at,$a2,$a1
|
|
/* f0ab150: 00033023 */ negu $a2,$v1
|
|
/* f0ab154: 00c5082a */ slt $at,$a2,$a1
|
|
.JF0f0ab158:
|
|
/* f0ab158: 10200002 */ beqz $at,.JF0f0ab164
|
|
/* f0ab15c: 00000000 */ nop
|
|
/* f0ab160: 00e0b025 */ move $s6,$a3
|
|
.JF0f0ab164:
|
|
/* f0ab164: 02d00019 */ multu $s6,$s0
|
|
/* f0ab168: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0ab16c: 00007812 */ mflo $t7
|
|
/* f0ab170: 03cf1023 */ subu $v0,$s8,$t7
|
|
/* f0ab174: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f0ab178: 10200002 */ beqz $at,.JF0f0ab184
|
|
/* f0ab17c: 00403025 */ move $a2,$v0
|
|
/* f0ab180: 2446ffff */ addiu $a2,$v0,-1
|
|
.JF0f0ab184:
|
|
/* f0ab184: 16c0008a */ bnez $s6,.JF0f0ab3b0
|
|
/* f0ab188: 02202025 */ move $a0,$s1
|
|
/* f0ab18c: 03c68023 */ subu $s0,$s8,$a2
|
|
/* f0ab190: 44904000 */ mtc1 $s0,$f8
|
|
/* f0ab194: 8fb800b4 */ lw $t8,0xb4($sp)
|
|
/* f0ab198: 02202025 */ move $a0,$s1
|
|
/* f0ab19c: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0ab1a0: 44989000 */ mtc1 $t8,$f18
|
|
/* f0ab1a4: 449e4000 */ mtc1 $s8,$f8
|
|
/* f0ab1a8: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0ab1ac: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f0ab1b0: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f0ab1b4: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0ab1b8: 46048183 */ div.s $f6,$f16,$f4
|
|
/* f0ab1bc: 46065481 */ sub.s $f18,$f10,$f6
|
|
/* f0ab1c0: 4600940d */ trunc.w.s $f16,$f18
|
|
/* f0ab1c4: 44128000 */ mfc1 $s2,$f16
|
|
/* f0ab1c8: 00000000 */ nop
|
|
/* f0ab1cc: 00d2082a */ slt $at,$a2,$s2
|
|
/* f0ab1d0: 1020003e */ beqz $at,.JF0f0ab2cc
|
|
/* f0ab1d4: 00000000 */ nop
|
|
/* f0ab1d8: 0fc54bce */ jal textSetPrimColour
|
|
/* f0ab1dc: afa600bc */ sw $a2,0xbc($sp)
|
|
/* f0ab1e0: 8fae00f8 */ lw $t6,0xf8($sp)
|
|
/* f0ab1e4: 8fa600bc */ lw $a2,0xbc($sp)
|
|
/* f0ab1e8: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0ab1ec: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0ab1f0: 11c0001c */ beqz $t6,.JF0f0ab264
|
|
/* f0ab1f4: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0ab1f8: 3c138008 */ lui $s3,0x8008
|
|
/* f0ab1fc: 267300f4 */ addiu $s3,$s3,0xf4
|
|
/* f0ab200: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0ab204: 3c0af600 */ lui $t2,0xf600
|
|
/* f0ab208: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0ab20c: 018f0019 */ multu $t4,$t7
|
|
/* f0ab210: 0000c012 */ mflo $t8
|
|
/* f0ab214: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab218: 00197380 */ sll $t6,$t9,0xe
|
|
/* f0ab21c: 020bc021 */ addu $t8,$s0,$t3
|
|
/* f0ab220: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab224: 01ca7825 */ or $t7,$t6,$t2
|
|
/* f0ab228: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab22c: 01eec025 */ or $t8,$t7,$t6
|
|
/* f0ab230: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0ab234: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0ab238: 01b90019 */ multu $t5,$t9
|
|
/* f0ab23c: 03d2c823 */ subu $t9,$s8,$s2
|
|
/* f0ab240: 00007812 */ mflo $t7
|
|
/* f0ab244: 31ee03ff */ andi $t6,$t7,0x3ff
|
|
/* f0ab248: 000ec380 */ sll $t8,$t6,0xe
|
|
/* f0ab24c: 032b7821 */ addu $t7,$t9,$t3
|
|
/* f0ab250: 31ee03ff */ andi $t6,$t7,0x3ff
|
|
/* f0ab254: 000ec880 */ sll $t9,$t6,0x2
|
|
/* f0ab258: 03197825 */ or $t7,$t8,$t9
|
|
/* f0ab25c: 10000018 */ b .JF0f0ab2c0
|
|
/* f0ab260: ac4f0004 */ sw $t7,0x4($v0)
|
|
.JF0f0ab264:
|
|
/* f0ab264: 3c138008 */ lui $s3,0x8008
|
|
/* f0ab268: 267300f4 */ addiu $s3,$s3,0xf4
|
|
/* f0ab26c: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0ab270: 3c0af600 */ lui $t2,0xf600
|
|
/* f0ab274: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0ab278: 018e0019 */ multu $t4,$t6
|
|
/* f0ab27c: 0000c012 */ mflo $t8
|
|
/* f0ab280: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab284: 00197b80 */ sll $t7,$t9,0xe
|
|
/* f0ab288: 325803ff */ andi $t8,$s2,0x3ff
|
|
/* f0ab28c: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0ab290: 01ea7025 */ or $t6,$t7,$t2
|
|
/* f0ab294: 01d97825 */ or $t7,$t6,$t9
|
|
/* f0ab298: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0ab29c: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0ab2a0: 01b80019 */ multu $t5,$t8
|
|
/* f0ab2a4: 30d803ff */ andi $t8,$a2,0x3ff
|
|
/* f0ab2a8: 00007012 */ mflo $t6
|
|
/* f0ab2ac: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0ab2b0: 00197b80 */ sll $t7,$t9,0xe
|
|
/* f0ab2b4: 00187080 */ sll $t6,$t8,0x2
|
|
/* f0ab2b8: 01eec825 */ or $t9,$t7,$t6
|
|
/* f0ab2bc: ac590004 */ sw $t9,0x4($v0)
|
|
.JF0f0ab2c0:
|
|
/* f0ab2c0: 0fc54be5 */ jal text0f153838
|
|
/* f0ab2c4: 02202025 */ move $a0,$s1
|
|
/* f0ab2c8: 00408825 */ move $s1,$v0
|
|
.JF0f0ab2cc:
|
|
/* f0ab2cc: 3c138008 */ lui $s3,0x8008
|
|
/* f0ab2d0: 267300f4 */ addiu $s3,$s3,0xf4
|
|
/* f0ab2d4: 02202025 */ move $a0,$s1
|
|
/* f0ab2d8: 0fc54bce */ jal textSetPrimColour
|
|
/* f0ab2dc: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f0ab2e0: 8fb800f8 */ lw $t8,0xf8($sp)
|
|
/* f0ab2e4: 3c0af600 */ lui $t2,0xf600
|
|
/* f0ab2e8: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0ab2ec: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0ab2f0: 1300001a */ beqz $t8,.JF0f0ab35c
|
|
/* f0ab2f4: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0ab2f8: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0ab2fc: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0ab300: 018f0019 */ multu $t4,$t7
|
|
/* f0ab304: 00007012 */ mflo $t6
|
|
/* f0ab308: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0ab30c: 0019c380 */ sll $t8,$t9,0xe
|
|
/* f0ab310: 03d27023 */ subu $t6,$s8,$s2
|
|
/* f0ab314: 01cbc821 */ addu $t9,$t6,$t3
|
|
/* f0ab318: 030a7825 */ or $t7,$t8,$t2
|
|
/* f0ab31c: 333803ff */ andi $t8,$t9,0x3ff
|
|
/* f0ab320: 00187080 */ sll $t6,$t8,0x2
|
|
/* f0ab324: 01eec825 */ or $t9,$t7,$t6
|
|
/* f0ab328: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0ab32c: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0ab330: 01b80019 */ multu $t5,$t8
|
|
/* f0ab334: 03dec023 */ subu $t8,$s8,$s8
|
|
/* f0ab338: 00007812 */ mflo $t7
|
|
/* f0ab33c: 31ee03ff */ andi $t6,$t7,0x3ff
|
|
/* f0ab340: 000ecb80 */ sll $t9,$t6,0xe
|
|
/* f0ab344: 030b7821 */ addu $t7,$t8,$t3
|
|
/* f0ab348: 31ee03ff */ andi $t6,$t7,0x3ff
|
|
/* f0ab34c: 000ec080 */ sll $t8,$t6,0x2
|
|
/* f0ab350: 03387825 */ or $t7,$t9,$t8
|
|
/* f0ab354: 10000151 */ b .JF0f0ab89c
|
|
/* f0ab358: ac4f0004 */ sw $t7,0x4($v0)
|
|
.JF0f0ab35c:
|
|
/* f0ab35c: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0ab360: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0ab364: 018e0019 */ multu $t4,$t6
|
|
/* f0ab368: 0000c812 */ mflo $t9
|
|
/* f0ab36c: 333803ff */ andi $t8,$t9,0x3ff
|
|
/* f0ab370: 00187b80 */ sll $t7,$t8,0xe
|
|
/* f0ab374: 33d903ff */ andi $t9,$s8,0x3ff
|
|
/* f0ab378: 0019c080 */ sll $t8,$t9,0x2
|
|
/* f0ab37c: 01ea7025 */ or $t6,$t7,$t2
|
|
/* f0ab380: 01d87825 */ or $t7,$t6,$t8
|
|
/* f0ab384: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0ab388: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0ab38c: 01b90019 */ multu $t5,$t9
|
|
/* f0ab390: 325903ff */ andi $t9,$s2,0x3ff
|
|
/* f0ab394: 00007012 */ mflo $t6
|
|
/* f0ab398: 31d803ff */ andi $t8,$t6,0x3ff
|
|
/* f0ab39c: 00187b80 */ sll $t7,$t8,0xe
|
|
/* f0ab3a0: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab3a4: 01eec025 */ or $t8,$t7,$t6
|
|
/* f0ab3a8: 1000013c */ b .JF0f0ab89c
|
|
/* f0ab3ac: ac580004 */ sw $t8,0x4($v0)
|
|
.JF0f0ab3b0:
|
|
/* f0ab3b0: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0ab3b4: afa600bc */ sw $a2,0xbc($sp)
|
|
/* f0ab3b8: 0fc54bce */ jal textSetPrimColour
|
|
/* f0ab3bc: e7a000b8 */ swc1 $f0,0xb8($sp)
|
|
/* f0ab3c0: 8fb900b4 */ lw $t9,0xb4($sp)
|
|
/* f0ab3c4: 8fa600bc */ lw $a2,0xbc($sp)
|
|
/* f0ab3c8: 8fa900e4 */ lw $t1,0xe4($sp)
|
|
/* f0ab3cc: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0ab3d0: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0ab3d4: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0ab3d8: c7a000b8 */ lwc1 $f0,0xb8($sp)
|
|
/* f0ab3dc: 00408825 */ move $s1,$v0
|
|
/* f0ab3e0: 2412ffff */ li $s2,-1
|
|
/* f0ab3e4: 00008025 */ move $s0,$zero
|
|
/* f0ab3e8: 1b2000f5 */ blez $t9,.JF0f0ab7c0
|
|
/* f0ab3ec: 00c0a825 */ move $s5,$a2
|
|
/* f0ab3f0: 4600010d */ trunc.w.s $f4,$f0
|
|
/* f0ab3f4: 27ceffff */ addiu $t6,$s8,-1
|
|
/* f0ab3f8: 3c138008 */ lui $s3,0x8008
|
|
/* f0ab3fc: 267300f4 */ addiu $s3,$s3,0xf4
|
|
/* f0ab400: 44022000 */ mfc1 $v0,$f4
|
|
/* f0ab404: afae0040 */ sw $t6,0x40($sp)
|
|
/* f0ab408: 00c0b825 */ move $s7,$a2
|
|
/* f0ab40c: 00d64021 */ addu $t0,$a2,$s6
|
|
/* f0ab410: 3c0af600 */ lui $t2,0xf600
|
|
/* f0ab414: 8fa70094 */ lw $a3,0x94($sp)
|
|
/* f0ab418: 0322a023 */ subu $s4,$t9,$v0
|
|
/* f0ab41c: afa20050 */ sw $v0,0x50($sp)
|
|
.JF0f0ab420:
|
|
/* f0ab420: 81240005 */ lb $a0,0x5($t1)
|
|
/* f0ab424: 00002825 */ move $a1,$zero
|
|
/* f0ab428: 18800034 */ blez $a0,.JF0f0ab4fc
|
|
/* f0ab42c: 0284c023 */ subu $t8,$s4,$a0
|
|
/* f0ab430: 0218082a */ slt $at,$s0,$t8
|
|
/* f0ab434: 14200052 */ bnez $at,.JF0f0ab580
|
|
/* f0ab438: 0214082a */ slt $at,$s0,$s4
|
|
/* f0ab43c: 10200050 */ beqz $at,.JF0f0ab580
|
|
/* f0ab440: 00000000 */ nop
|
|
/* f0ab444: 852f0002 */ lh $t7,0x2($t1)
|
|
/* f0ab448: 0290c823 */ subu $t9,$s4,$s0
|
|
/* f0ab44c: 00197180 */ sll $t6,$t9,0x6
|
|
/* f0ab450: 01ee1823 */ subu $v1,$t7,$t6
|
|
/* f0ab454: 24630040 */ addiu $v1,$v1,0x40
|
|
/* f0ab458: 04600049 */ bltz $v1,.JF0f0ab580
|
|
/* f0ab45c: 28610040 */ slti $at,$v1,0x40
|
|
/* f0ab460: 14200015 */ bnez $at,.JF0f0ab4b8
|
|
/* f0ab464: 00033080 */ sll $a2,$v1,0x2
|
|
/* f0ab468: 00031080 */ sll $v0,$v1,0x2
|
|
/* f0ab46c: 2442ff04 */ addiu $v0,$v0,-252
|
|
/* f0ab470: 24010003 */ li $at,0x3
|
|
/* f0ab474: 0041001a */ div $zero,$v0,$at
|
|
/* f0ab478: 00003012 */ mflo $a2
|
|
/* f0ab47c: 2cc10100 */ sltiu $at,$a2,0x100
|
|
/* f0ab480: 14200002 */ bnez $at,.JF0f0ab48c
|
|
/* f0ab484: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f0ab488: 240600ff */ li $a2,0xff
|
|
.JF0f0ab48c:
|
|
/* f0ab48c: 2405ffbf */ li $a1,-65
|
|
/* f0ab490: 0fc01a60 */ jal colourBlend
|
|
/* f0ab494: afa80044 */ sw $t0,0x44($sp)
|
|
/* f0ab498: 8fa80044 */ lw $t0,0x44($sp)
|
|
/* f0ab49c: 8fa900e4 */ lw $t1,0xe4($sp)
|
|
/* f0ab4a0: 3c0af600 */ lui $t2,0xf600
|
|
/* f0ab4a4: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0ab4a8: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0ab4ac: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0ab4b0: 1000000f */ b .JF0f0ab4f0
|
|
/* f0ab4b4: 00403825 */ move $a3,$v0
|
|
.JF0f0ab4b8:
|
|
/* f0ab4b8: 2cc10100 */ sltiu $at,$a2,0x100
|
|
/* f0ab4bc: 14200002 */ bnez $at,.JF0f0ab4c8
|
|
/* f0ab4c0: 2404ffbf */ li $a0,-65
|
|
/* f0ab4c4: 240600ff */ li $a2,0xff
|
|
.JF0f0ab4c8:
|
|
/* f0ab4c8: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0ab4cc: 0fc01a60 */ jal colourBlend
|
|
/* f0ab4d0: afa80044 */ sw $t0,0x44($sp)
|
|
/* f0ab4d4: 8fa80044 */ lw $t0,0x44($sp)
|
|
/* f0ab4d8: 8fa900e4 */ lw $t1,0xe4($sp)
|
|
/* f0ab4dc: 3c0af600 */ lui $t2,0xf600
|
|
/* f0ab4e0: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0ab4e4: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0ab4e8: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0ab4ec: 00403825 */ move $a3,$v0
|
|
.JF0f0ab4f0:
|
|
/* f0ab4f0: 24050001 */ li $a1,0x1
|
|
/* f0ab4f4: 10000022 */ b .JF0f0ab580
|
|
/* f0ab4f8: 81240005 */ lb $a0,0x5($t1)
|
|
.JF0f0ab4fc:
|
|
/* f0ab4fc: 04810020 */ bgez $a0,.JF0f0ab580
|
|
/* f0ab500: 0284c823 */ subu $t9,$s4,$a0
|
|
/* f0ab504: 0219082a */ slt $at,$s0,$t9
|
|
/* f0ab508: 1020001d */ beqz $at,.JF0f0ab580
|
|
/* f0ab50c: 0214082a */ slt $at,$s0,$s4
|
|
/* f0ab510: 1420001b */ bnez $at,.JF0f0ab580
|
|
/* f0ab514: 8faf00b4 */ lw $t7,0xb4($sp)
|
|
/* f0ab518: 8fb80050 */ lw $t8,0x50($sp)
|
|
/* f0ab51c: 020f7023 */ subu $t6,$s0,$t7
|
|
/* f0ab520: 01d8c821 */ addu $t9,$t6,$t8
|
|
/* f0ab524: 852e0002 */ lh $t6,0x2($t1)
|
|
/* f0ab528: 00197980 */ sll $t7,$t9,0x6
|
|
/* f0ab52c: 01cf3023 */ subu $a2,$t6,$t7
|
|
/* f0ab530: 04c00013 */ bltz $a2,.JF0f0ab580
|
|
/* f0ab534: 2cc10100 */ sltiu $at,$a2,0x100
|
|
/* f0ab538: 14200003 */ bnez $at,.JF0f0ab548
|
|
/* f0ab53c: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f0ab540: 1000000e */ b .JF0f0ab57c
|
|
/* f0ab544: 8fa700f0 */ lw $a3,0xf0($sp)
|
|
.JF0f0ab548:
|
|
/* f0ab548: 34b800ff */ ori $t8,$a1,0xff
|
|
/* f0ab54c: 03002825 */ move $a1,$t8
|
|
/* f0ab550: 8fa400f0 */ lw $a0,0xf0($sp)
|
|
/* f0ab554: 0fc01a60 */ jal colourBlend
|
|
/* f0ab558: afa80044 */ sw $t0,0x44($sp)
|
|
/* f0ab55c: 8fa900e4 */ lw $t1,0xe4($sp)
|
|
/* f0ab560: 8fa80044 */ lw $t0,0x44($sp)
|
|
/* f0ab564: 3c0af600 */ lui $t2,0xf600
|
|
/* f0ab568: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0ab56c: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0ab570: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0ab574: 00403825 */ move $a3,$v0
|
|
/* f0ab578: 81240005 */ lb $a0,0x5($t1)
|
|
.JF0f0ab57c:
|
|
/* f0ab57c: 24050001 */ li $a1,0x1
|
|
.JF0f0ab580:
|
|
/* f0ab580: 04810007 */ bgez $a0,.JF0f0ab5a0
|
|
/* f0ab584: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0ab588: 0284c823 */ subu $t9,$s4,$a0
|
|
/* f0ab58c: 16190008 */ bne $s0,$t9,.JF0f0ab5b0
|
|
/* f0ab590: 00000000 */ nop
|
|
/* f0ab594: 8fa700f4 */ lw $a3,0xf4($sp)
|
|
/* f0ab598: 10000005 */ b .JF0f0ab5b0
|
|
/* f0ab59c: 24050001 */ li $a1,0x1
|
|
.JF0f0ab5a0:
|
|
/* f0ab5a0: 16140003 */ bne $s0,$s4,.JF0f0ab5b0
|
|
/* f0ab5a4: 00000000 */ nop
|
|
/* f0ab5a8: 8fa700f4 */ lw $a3,0xf4($sp)
|
|
/* f0ab5ac: 24050001 */ li $a1,0x1
|
|
.JF0f0ab5b0:
|
|
/* f0ab5b0: 5020003a */ beqzl $at,.JF0f0ab69c
|
|
/* f0ab5b4: 02e0a825 */ move $s5,$s7
|
|
/* f0ab5b8: 10a00035 */ beqz $a1,.JF0f0ab690
|
|
/* f0ab5bc: 00000000 */ nop
|
|
/* f0ab5c0: 06400032 */ bltz $s2,.JF0f0ab68c
|
|
/* f0ab5c4: 8fae00f8 */ lw $t6,0xf8($sp)
|
|
/* f0ab5c8: 51c0001c */ beqzl $t6,.JF0f0ab63c
|
|
/* f0ab5cc: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0ab5d0: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0ab5d4: 02201025 */ move $v0,$s1
|
|
/* f0ab5d8: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0ab5dc: 018f0019 */ multu $t4,$t7
|
|
/* f0ab5e0: 0000c012 */ mflo $t8
|
|
/* f0ab5e4: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab5e8: 00197380 */ sll $t6,$t9,0xe
|
|
/* f0ab5ec: 03d5c023 */ subu $t8,$s8,$s5
|
|
/* f0ab5f0: 030bc821 */ addu $t9,$t8,$t3
|
|
/* f0ab5f4: 01ca7825 */ or $t7,$t6,$t2
|
|
/* f0ab5f8: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0ab5fc: 000ec080 */ sll $t8,$t6,0x2
|
|
/* f0ab600: 01f8c825 */ or $t9,$t7,$t8
|
|
/* f0ab604: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0ab608: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0ab60c: 01ae0019 */ multu $t5,$t6
|
|
/* f0ab610: 03d27023 */ subu $t6,$s8,$s2
|
|
/* f0ab614: 00007812 */ mflo $t7
|
|
/* f0ab618: 31f803ff */ andi $t8,$t7,0x3ff
|
|
/* f0ab61c: 0018cb80 */ sll $t9,$t8,0xe
|
|
/* f0ab620: 01cb7821 */ addu $t7,$t6,$t3
|
|
/* f0ab624: 31f803ff */ andi $t8,$t7,0x3ff
|
|
/* f0ab628: 00187080 */ sll $t6,$t8,0x2
|
|
/* f0ab62c: 032e7825 */ or $t7,$t9,$t6
|
|
/* f0ab630: 10000016 */ b .JF0f0ab68c
|
|
/* f0ab634: ac4f0004 */ sw $t7,0x4($v0)
|
|
/* f0ab638: 8e780000 */ lw $t8,0x0($s3)
|
|
.JF0f0ab63c:
|
|
/* f0ab63c: 02201025 */ move $v0,$s1
|
|
/* f0ab640: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0ab644: 01980019 */ multu $t4,$t8
|
|
/* f0ab648: 0000c812 */ mflo $t9
|
|
/* f0ab64c: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0ab650: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0ab654: 325903ff */ andi $t9,$s2,0x3ff
|
|
/* f0ab658: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab65c: 01eac025 */ or $t8,$t7,$t2
|
|
/* f0ab660: 030e7825 */ or $t7,$t8,$t6
|
|
/* f0ab664: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0ab668: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0ab66c: 01b90019 */ multu $t5,$t9
|
|
/* f0ab670: 32b903ff */ andi $t9,$s5,0x3ff
|
|
/* f0ab674: 0000c012 */ mflo $t8
|
|
/* f0ab678: 330e03ff */ andi $t6,$t8,0x3ff
|
|
/* f0ab67c: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0ab680: 0019c080 */ sll $t8,$t9,0x2
|
|
/* f0ab684: 01f87025 */ or $t6,$t7,$t8
|
|
/* f0ab688: ac4e0004 */ sw $t6,0x4($v0)
|
|
.JF0f0ab68c:
|
|
/* f0ab68c: 02e0a825 */ move $s5,$s7
|
|
.JF0f0ab690:
|
|
/* f0ab690: 10000003 */ b .JF0f0ab6a0
|
|
/* f0ab694: 01009025 */ move $s2,$t0
|
|
/* f0ab698: 02e0a825 */ move $s5,$s7
|
|
.JF0f0ab69c:
|
|
/* f0ab69c: 2512ffff */ addiu $s2,$t0,-1
|
|
.JF0f0ab6a0:
|
|
/* f0ab6a0: 10a00005 */ beqz $a1,.JF0f0ab6b8
|
|
/* f0ab6a4: 02201025 */ move $v0,$s1
|
|
/* f0ab6a8: 3c19fa00 */ lui $t9,0xfa00
|
|
/* f0ab6ac: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0ab6b0: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0ab6b4: ac470004 */ sw $a3,0x4($v0)
|
|
.JF0f0ab6b8:
|
|
/* f0ab6b8: 8faf0040 */ lw $t7,0x40($sp)
|
|
/* f0ab6bc: 8fb800f8 */ lw $t8,0xf8($sp)
|
|
/* f0ab6c0: 024f082a */ slt $at,$s2,$t7
|
|
/* f0ab6c4: 14200004 */ bnez $at,.JF0f0ab6d8
|
|
/* f0ab6c8: 2ac10002 */ slti $at,$s6,0x2
|
|
/* f0ab6cc: 54200003 */ bnezl $at,.JF0f0ab6dc
|
|
/* f0ab6d0: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0ab6d4: 03c09025 */ move $s2,$s8
|
|
.JF0f0ab6d8:
|
|
/* f0ab6d8: 2ac10003 */ slti $at,$s6,0x3
|
|
.JF0f0ab6dc:
|
|
/* f0ab6dc: 54200033 */ bnezl $at,.JF0f0ab7ac
|
|
/* f0ab6e0: 8faf00b4 */ lw $t7,0xb4($sp)
|
|
/* f0ab6e4: 5300001c */ beqzl $t8,.JF0f0ab758
|
|
/* f0ab6e8: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0ab6ec: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0ab6f0: 02201025 */ move $v0,$s1
|
|
/* f0ab6f4: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0ab6f8: 018e0019 */ multu $t4,$t6
|
|
/* f0ab6fc: 0000c812 */ mflo $t9
|
|
/* f0ab700: 332f03ff */ andi $t7,$t9,0x3ff
|
|
/* f0ab704: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0ab708: 03d5c823 */ subu $t9,$s8,$s5
|
|
/* f0ab70c: 032b7821 */ addu $t7,$t9,$t3
|
|
/* f0ab710: 030a7025 */ or $t6,$t8,$t2
|
|
/* f0ab714: 31f803ff */ andi $t8,$t7,0x3ff
|
|
/* f0ab718: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0ab71c: 01d97825 */ or $t7,$t6,$t9
|
|
/* f0ab720: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0ab724: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0ab728: 01b80019 */ multu $t5,$t8
|
|
/* f0ab72c: 03d2c023 */ subu $t8,$s8,$s2
|
|
/* f0ab730: 00007012 */ mflo $t6
|
|
/* f0ab734: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0ab738: 00197b80 */ sll $t7,$t9,0xe
|
|
/* f0ab73c: 030b7021 */ addu $t6,$t8,$t3
|
|
/* f0ab740: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0ab744: 0019c080 */ sll $t8,$t9,0x2
|
|
/* f0ab748: 01f87025 */ or $t6,$t7,$t8
|
|
/* f0ab74c: 10000016 */ b .JF0f0ab7a8
|
|
/* f0ab750: ac4e0004 */ sw $t6,0x4($v0)
|
|
/* f0ab754: 8e790000 */ lw $t9,0x0($s3)
|
|
.JF0f0ab758:
|
|
/* f0ab758: 02201025 */ move $v0,$s1
|
|
/* f0ab75c: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0ab760: 01990019 */ multu $t4,$t9
|
|
/* f0ab764: 00007812 */ mflo $t7
|
|
/* f0ab768: 31f803ff */ andi $t8,$t7,0x3ff
|
|
/* f0ab76c: 00187380 */ sll $t6,$t8,0xe
|
|
/* f0ab770: 324f03ff */ andi $t7,$s2,0x3ff
|
|
/* f0ab774: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0ab778: 01cac825 */ or $t9,$t6,$t2
|
|
/* f0ab77c: 03387025 */ or $t6,$t9,$t8
|
|
/* f0ab780: ac4e0000 */ sw $t6,0x0($v0)
|
|
/* f0ab784: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0ab788: 01af0019 */ multu $t5,$t7
|
|
/* f0ab78c: 32af03ff */ andi $t7,$s5,0x3ff
|
|
/* f0ab790: 0000c812 */ mflo $t9
|
|
/* f0ab794: 333803ff */ andi $t8,$t9,0x3ff
|
|
/* f0ab798: 00187380 */ sll $t6,$t8,0xe
|
|
/* f0ab79c: 000fc880 */ sll $t9,$t7,0x2
|
|
/* f0ab7a0: 01d9c025 */ or $t8,$t6,$t9
|
|
/* f0ab7a4: ac580004 */ sw $t8,0x4($v0)
|
|
.JF0f0ab7a8:
|
|
/* f0ab7a8: 8faf00b4 */ lw $t7,0xb4($sp)
|
|
.JF0f0ab7ac:
|
|
/* f0ab7ac: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f0ab7b0: 02f6b821 */ addu $s7,$s7,$s6
|
|
/* f0ab7b4: 160fff1a */ bne $s0,$t7,.JF0f0ab420
|
|
/* f0ab7b8: 01164021 */ addu $t0,$t0,$s6
|
|
/* f0ab7bc: afa70094 */ sw $a3,0x94($sp)
|
|
.JF0f0ab7c0:
|
|
/* f0ab7c0: 3c138008 */ lui $s3,0x8008
|
|
/* f0ab7c4: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0ab7c8: 267300f4 */ addiu $s3,$s3,0xf4
|
|
/* f0ab7cc: 10200033 */ beqz $at,.JF0f0ab89c
|
|
/* f0ab7d0: 3c0af600 */ lui $t2,0xf600
|
|
/* f0ab7d4: 8fae00f8 */ lw $t6,0xf8($sp)
|
|
/* f0ab7d8: 51c0001c */ beqzl $t6,.JF0f0ab84c
|
|
/* f0ab7dc: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0ab7e0: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0ab7e4: 02201025 */ move $v0,$s1
|
|
/* f0ab7e8: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0ab7ec: 01990019 */ multu $t4,$t9
|
|
/* f0ab7f0: 0000c012 */ mflo $t8
|
|
/* f0ab7f4: 330f03ff */ andi $t7,$t8,0x3ff
|
|
/* f0ab7f8: 000f7380 */ sll $t6,$t7,0xe
|
|
/* f0ab7fc: 03d5c023 */ subu $t8,$s8,$s5
|
|
/* f0ab800: 030b7821 */ addu $t7,$t8,$t3
|
|
/* f0ab804: 01cac825 */ or $t9,$t6,$t2
|
|
/* f0ab808: 31ee03ff */ andi $t6,$t7,0x3ff
|
|
/* f0ab80c: 000ec080 */ sll $t8,$t6,0x2
|
|
/* f0ab810: 03387825 */ or $t7,$t9,$t8
|
|
/* f0ab814: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0ab818: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0ab81c: 01ae0019 */ multu $t5,$t6
|
|
/* f0ab820: 03d27023 */ subu $t6,$s8,$s2
|
|
/* f0ab824: 0000c812 */ mflo $t9
|
|
/* f0ab828: 333803ff */ andi $t8,$t9,0x3ff
|
|
/* f0ab82c: 00187b80 */ sll $t7,$t8,0xe
|
|
/* f0ab830: 01cbc821 */ addu $t9,$t6,$t3
|
|
/* f0ab834: 333803ff */ andi $t8,$t9,0x3ff
|
|
/* f0ab838: 00187080 */ sll $t6,$t8,0x2
|
|
/* f0ab83c: 01eec825 */ or $t9,$t7,$t6
|
|
/* f0ab840: 10000016 */ b .JF0f0ab89c
|
|
/* f0ab844: ac590004 */ sw $t9,0x4($v0)
|
|
/* f0ab848: 8e780000 */ lw $t8,0x0($s3)
|
|
.JF0f0ab84c:
|
|
/* f0ab84c: 02201025 */ move $v0,$s1
|
|
/* f0ab850: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0ab854: 01980019 */ multu $t4,$t8
|
|
/* f0ab858: 00007812 */ mflo $t7
|
|
/* f0ab85c: 31ee03ff */ andi $t6,$t7,0x3ff
|
|
/* f0ab860: 000ecb80 */ sll $t9,$t6,0xe
|
|
/* f0ab864: 324f03ff */ andi $t7,$s2,0x3ff
|
|
/* f0ab868: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f0ab86c: 032ac025 */ or $t8,$t9,$t2
|
|
/* f0ab870: 030ec825 */ or $t9,$t8,$t6
|
|
/* f0ab874: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0ab878: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0ab87c: 01af0019 */ multu $t5,$t7
|
|
/* f0ab880: 32af03ff */ andi $t7,$s5,0x3ff
|
|
/* f0ab884: 0000c012 */ mflo $t8
|
|
/* f0ab888: 330e03ff */ andi $t6,$t8,0x3ff
|
|
/* f0ab88c: 000ecb80 */ sll $t9,$t6,0xe
|
|
/* f0ab890: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0ab894: 03387025 */ or $t6,$t9,$t8
|
|
/* f0ab898: ac4e0004 */ sw $t6,0x4($v0)
|
|
.JF0f0ab89c:
|
|
/* f0ab89c: 0fc54be5 */ jal text0f153838
|
|
/* f0ab8a0: 02202025 */ move $a0,$s1
|
|
/* f0ab8a4: 3c0fb900 */ lui $t7,0xb900
|
|
/* f0ab8a8: 3c190050 */ lui $t9,0x50
|
|
/* f0ab8ac: 373941c8 */ ori $t9,$t9,0x41c8
|
|
/* f0ab8b0: 35ef031d */ ori $t7,$t7,0x31d
|
|
/* f0ab8b4: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0ab8b8: ac590004 */ sw $t9,0x4($v0)
|
|
/* f0ab8bc: 8fbf003c */ lw $ra,0x3c($sp)
|
|
/* f0ab8c0: 8fbe0038 */ lw $s8,0x38($sp)
|
|
/* f0ab8c4: 8fb70034 */ lw $s7,0x34($sp)
|
|
/* f0ab8c8: 8fb60030 */ lw $s6,0x30($sp)
|
|
/* f0ab8cc: 8fb5002c */ lw $s5,0x2c($sp)
|
|
/* f0ab8d0: 8fb40028 */ lw $s4,0x28($sp)
|
|
/* f0ab8d4: 8fb30024 */ lw $s3,0x24($sp)
|
|
/* f0ab8d8: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f0ab8dc: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f0ab8e0: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f0ab8e4: 27bd00d0 */ addiu $sp,$sp,0xd0
|
|
/* f0ab8e8: 03e00008 */ jr $ra
|
|
/* f0ab8ec: 24420008 */ addiu $v0,$v0,0x8
|
|
);
|
|
#elif VERSION >= VERSION_PAL_FINAL
|
|
GLOBAL_ASM(
|
|
glabel bgunRenderHudGauge
|
|
/* f0aa41c: 27bdff28 */ addiu $sp,$sp,-216
|
|
/* f0aa420: afbe0038 */ sw $s8,0x38($sp)
|
|
/* f0aa424: afa600e0 */ sw $a2,0xe0($sp)
|
|
/* f0aa428: 8fbe00e8 */ lw $s8,0xe8($sp)
|
|
/* f0aa42c: 8fae00e0 */ lw $t6,0xe0($sp)
|
|
/* f0aa430: afb00018 */ sw $s0,0x18($sp)
|
|
/* f0aa434: 8fb000f4 */ lw $s0,0xf4($sp)
|
|
/* f0aa438: afb20020 */ sw $s2,0x20($sp)
|
|
/* f0aa43c: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f0aa440: 00808825 */ move $s1,$a0
|
|
/* f0aa444: afbf003c */ sw $ra,0x3c($sp)
|
|
/* f0aa448: afa500dc */ sw $a1,0xdc($sp)
|
|
/* f0aa44c: afa700e4 */ sw $a3,0xe4($sp)
|
|
/* f0aa450: 03ce9023 */ subu $s2,$s8,$t6
|
|
/* f0aa454: afb70034 */ sw $s7,0x34($sp)
|
|
/* f0aa458: afb60030 */ sw $s6,0x30($sp)
|
|
/* f0aa45c: afb5002c */ sw $s5,0x2c($sp)
|
|
/* f0aa460: afb40028 */ sw $s4,0x28($sp)
|
|
/* f0aa464: afb30024 */ sw $s3,0x24($sp)
|
|
/* f0aa468: 02403825 */ move $a3,$s2
|
|
/* f0aa46c: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0aa470: 8fa400ec */ lw $a0,0xec($sp)
|
|
/* f0aa474: afb000bc */ sw $s0,0xbc($sp)
|
|
/* f0aa478: 0fc2a87d */ jal bgun0f0a9da8
|
|
/* f0aa47c: 02003025 */ move $a2,$s0
|
|
/* f0aa480: 2a010015 */ slti $at,$s0,0x15
|
|
/* f0aa484: 8fa800ec */ lw $t0,0xec($sp)
|
|
/* f0aa488: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa48c: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa490: 14200008 */ bnez $at,.PF0f0aa4b4
|
|
/* f0aa494: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa498: 810f0004 */ lb $t7,0x4($t0)
|
|
/* f0aa49c: 24160001 */ li $s6,0x1
|
|
/* f0aa4a0: afb200bc */ sw $s2,0xbc($sp)
|
|
/* f0aa4a4: 448f2000 */ mtc1 $t7,$f4
|
|
/* f0aa4a8: 03d23023 */ subu $a2,$s8,$s2
|
|
/* f0aa4ac: 1000002b */ b .PF0f0aa55c
|
|
/* f0aa4b0: 46802020 */ cvt.s.w $f0,$f4
|
|
.PF0f0aa4b4:
|
|
/* f0aa4b4: 0250001a */ div $zero,$s2,$s0
|
|
/* f0aa4b8: 00001012 */ mflo $v0
|
|
/* f0aa4bc: 24470001 */ addiu $a3,$v0,0x1
|
|
/* f0aa4c0: 81180004 */ lb $t8,0x4($t0)
|
|
/* f0aa4c4: 00500019 */ multu $v0,$s0
|
|
/* f0aa4c8: 0040b025 */ move $s6,$v0
|
|
/* f0aa4cc: 44983000 */ mtc1 $t8,$f6
|
|
/* f0aa4d0: 00000000 */ nop
|
|
/* f0aa4d4: 46803020 */ cvt.s.w $f0,$f6
|
|
/* f0aa4d8: 16000002 */ bnez $s0,.PF0f0aa4e4
|
|
/* f0aa4dc: 00000000 */ nop
|
|
/* f0aa4e0: 0007000d */ break 0x7
|
|
.PF0f0aa4e4:
|
|
/* f0aa4e4: 2401ffff */ li $at,-1
|
|
/* f0aa4e8: 16010004 */ bne $s0,$at,.PF0f0aa4fc
|
|
/* f0aa4ec: 3c018000 */ lui $at,0x8000
|
|
/* f0aa4f0: 16410002 */ bne $s2,$at,.PF0f0aa4fc
|
|
/* f0aa4f4: 00000000 */ nop
|
|
/* f0aa4f8: 0006000d */ break 0x6
|
|
.PF0f0aa4fc:
|
|
/* f0aa4fc: 0000c812 */ mflo $t9
|
|
/* f0aa500: 03322023 */ subu $a0,$t9,$s2
|
|
/* f0aa504: 00802825 */ move $a1,$a0
|
|
/* f0aa508: 00f00019 */ multu $a3,$s0
|
|
/* f0aa50c: 00006812 */ mflo $t5
|
|
/* f0aa510: 01b21823 */ subu $v1,$t5,$s2
|
|
/* f0aa514: 04810002 */ bgez $a0,.PF0f0aa520
|
|
/* f0aa518: 00603025 */ move $a2,$v1
|
|
/* f0aa51c: 00042823 */ negu $a1,$a0
|
|
.PF0f0aa520:
|
|
/* f0aa520: 04630003 */ bgezl $v1,.PF0f0aa530
|
|
/* f0aa524: 00c5082a */ slt $at,$a2,$a1
|
|
/* f0aa528: 00033023 */ negu $a2,$v1
|
|
/* f0aa52c: 00c5082a */ slt $at,$a2,$a1
|
|
.PF0f0aa530:
|
|
/* f0aa530: 10200002 */ beqz $at,.PF0f0aa53c
|
|
/* f0aa534: 00000000 */ nop
|
|
/* f0aa538: 00e0b025 */ move $s6,$a3
|
|
.PF0f0aa53c:
|
|
/* f0aa53c: 02d00019 */ multu $s6,$s0
|
|
/* f0aa540: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aa544: 00007012 */ mflo $t6
|
|
/* f0aa548: 03ce1023 */ subu $v0,$s8,$t6
|
|
/* f0aa54c: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f0aa550: 10200002 */ beqz $at,.PF0f0aa55c
|
|
/* f0aa554: 00403025 */ move $a2,$v0
|
|
/* f0aa558: 2446ffff */ addiu $a2,$v0,-1
|
|
.PF0f0aa55c:
|
|
/* f0aa55c: 16c0008a */ bnez $s6,.PF0f0aa788
|
|
/* f0aa560: 02202025 */ move $a0,$s1
|
|
/* f0aa564: 03c68023 */ subu $s0,$s8,$a2
|
|
/* f0aa568: 44904000 */ mtc1 $s0,$f8
|
|
/* f0aa56c: 8faf00bc */ lw $t7,0xbc($sp)
|
|
/* f0aa570: 02202025 */ move $a0,$s1
|
|
/* f0aa574: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0aa578: 448f9000 */ mtc1 $t7,$f18
|
|
/* f0aa57c: 449e4000 */ mtc1 $s8,$f8
|
|
/* f0aa580: 8fa500f8 */ lw $a1,0xf8($sp)
|
|
/* f0aa584: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f0aa588: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f0aa58c: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0aa590: 46048183 */ div.s $f6,$f16,$f4
|
|
/* f0aa594: 46065481 */ sub.s $f18,$f10,$f6
|
|
/* f0aa598: 4600940d */ trunc.w.s $f16,$f18
|
|
/* f0aa59c: 44128000 */ mfc1 $s2,$f16
|
|
/* f0aa5a0: 00000000 */ nop
|
|
/* f0aa5a4: 00d2082a */ slt $at,$a2,$s2
|
|
/* f0aa5a8: 1020003e */ beqz $at,.PF0f0aa6a4
|
|
/* f0aa5ac: 00000000 */ nop
|
|
/* f0aa5b0: 0fc5513c */ jal textSetPrimColour
|
|
/* f0aa5b4: afa600c4 */ sw $a2,0xc4($sp)
|
|
/* f0aa5b8: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0aa5bc: 8fa600c4 */ lw $a2,0xc4($sp)
|
|
/* f0aa5c0: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa5c4: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa5c8: 1320001c */ beqz $t9,.PF0f0aa63c
|
|
/* f0aa5cc: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa5d0: 3c138008 */ lui $s3,0x8008
|
|
/* f0aa5d4: 26730020 */ addiu $s3,$s3,0x20
|
|
/* f0aa5d8: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aa5dc: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa5e0: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0aa5e4: 016d0019 */ multu $t3,$t5
|
|
/* f0aa5e8: 020a6821 */ addu $t5,$s0,$t2
|
|
/* f0aa5ec: 00007012 */ mflo $t6
|
|
/* f0aa5f0: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aa5f4: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aa5f8: 31ae03ff */ andi $t6,$t5,0x3ff
|
|
/* f0aa5fc: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0aa600: 0309c825 */ or $t9,$t8,$t1
|
|
/* f0aa604: 032fc025 */ or $t8,$t9,$t7
|
|
/* f0aa608: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aa60c: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aa610: 03d2c023 */ subu $t8,$s8,$s2
|
|
/* f0aa614: 018d0019 */ multu $t4,$t5
|
|
/* f0aa618: 030a6821 */ addu $t5,$t8,$t2
|
|
/* f0aa61c: 00007012 */ mflo $t6
|
|
/* f0aa620: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa624: 00197b80 */ sll $t7,$t9,0xe
|
|
/* f0aa628: 31ae03ff */ andi $t6,$t5,0x3ff
|
|
/* f0aa62c: 000ec880 */ sll $t9,$t6,0x2
|
|
/* f0aa630: 01f9c025 */ or $t8,$t7,$t9
|
|
/* f0aa634: 10000018 */ b .PF0f0aa698
|
|
/* f0aa638: ac580004 */ sw $t8,0x4($v0)
|
|
.PF0f0aa63c:
|
|
/* f0aa63c: 3c138008 */ lui $s3,0x8008
|
|
/* f0aa640: 26730020 */ addiu $s3,$s3,0x20
|
|
/* f0aa644: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aa648: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa64c: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0aa650: 016d0019 */ multu $t3,$t5
|
|
/* f0aa654: 324d03ff */ andi $t5,$s2,0x3ff
|
|
/* f0aa658: 00007012 */ mflo $t6
|
|
/* f0aa65c: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aa660: 000fcb80 */ sll $t9,$t7,0xe
|
|
/* f0aa664: 0329c025 */ or $t8,$t9,$t1
|
|
/* f0aa668: 000d7080 */ sll $t6,$t5,0x2
|
|
/* f0aa66c: 030e7825 */ or $t7,$t8,$t6
|
|
/* f0aa670: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0aa674: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0aa678: 30cf03ff */ andi $t7,$a2,0x3ff
|
|
/* f0aa67c: 01990019 */ multu $t4,$t9
|
|
/* f0aa680: 000fc880 */ sll $t9,$t7,0x2
|
|
/* f0aa684: 00006812 */ mflo $t5
|
|
/* f0aa688: 31b803ff */ andi $t8,$t5,0x3ff
|
|
/* f0aa68c: 00187380 */ sll $t6,$t8,0xe
|
|
/* f0aa690: 01d96825 */ or $t5,$t6,$t9
|
|
/* f0aa694: ac4d0004 */ sw $t5,0x4($v0)
|
|
.PF0f0aa698:
|
|
/* f0aa698: 0fc55153 */ jal text0f153838
|
|
/* f0aa69c: 02202025 */ move $a0,$s1
|
|
/* f0aa6a0: 00408825 */ move $s1,$v0
|
|
.PF0f0aa6a4:
|
|
/* f0aa6a4: 3c138008 */ lui $s3,0x8008
|
|
/* f0aa6a8: 26730020 */ addiu $s3,$s3,0x20
|
|
/* f0aa6ac: 02202025 */ move $a0,$s1
|
|
/* f0aa6b0: 0fc5513c */ jal textSetPrimColour
|
|
/* f0aa6b4: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f0aa6b8: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aa6bc: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa6c0: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa6c4: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa6c8: 1300001a */ beqz $t8,.PF0f0aa734
|
|
/* f0aa6cc: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa6d0: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0aa6d4: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0aa6d8: 016f0019 */ multu $t3,$t7
|
|
/* f0aa6dc: 03d27823 */ subu $t7,$s8,$s2
|
|
/* f0aa6e0: 00007012 */ mflo $t6
|
|
/* f0aa6e4: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa6e8: 00196b80 */ sll $t5,$t9,0xe
|
|
/* f0aa6ec: 01ea7021 */ addu $t6,$t7,$t2
|
|
/* f0aa6f0: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa6f4: 01a9c025 */ or $t8,$t5,$t1
|
|
/* f0aa6f8: 00196880 */ sll $t5,$t9,0x2
|
|
/* f0aa6fc: 030d7825 */ or $t7,$t8,$t5
|
|
/* f0aa700: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0aa704: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aa708: 03de7823 */ subu $t7,$s8,$s8
|
|
/* f0aa70c: 018e0019 */ multu $t4,$t6
|
|
/* f0aa710: 01ea7021 */ addu $t6,$t7,$t2
|
|
/* f0aa714: 0000c812 */ mflo $t9
|
|
/* f0aa718: 333803ff */ andi $t8,$t9,0x3ff
|
|
/* f0aa71c: 00186b80 */ sll $t5,$t8,0xe
|
|
/* f0aa720: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa724: 0019c080 */ sll $t8,$t9,0x2
|
|
/* f0aa728: 01b87825 */ or $t7,$t5,$t8
|
|
/* f0aa72c: 1000016c */ b .PF0f0aace0
|
|
/* f0aa730: ac4f0004 */ sw $t7,0x4($v0)
|
|
.PF0f0aa734:
|
|
/* f0aa734: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aa738: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0aa73c: 016e0019 */ multu $t3,$t6
|
|
/* f0aa740: 33ce03ff */ andi $t6,$s8,0x3ff
|
|
/* f0aa744: 0000c812 */ mflo $t9
|
|
/* f0aa748: 332d03ff */ andi $t5,$t9,0x3ff
|
|
/* f0aa74c: 000dc380 */ sll $t8,$t5,0xe
|
|
/* f0aa750: 03097825 */ or $t7,$t8,$t1
|
|
/* f0aa754: 000ec880 */ sll $t9,$t6,0x2
|
|
/* f0aa758: 01f96825 */ or $t5,$t7,$t9
|
|
/* f0aa75c: ac4d0000 */ sw $t5,0x0($v0)
|
|
/* f0aa760: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0aa764: 324d03ff */ andi $t5,$s2,0x3ff
|
|
/* f0aa768: 01980019 */ multu $t4,$t8
|
|
/* f0aa76c: 000dc080 */ sll $t8,$t5,0x2
|
|
/* f0aa770: 00007012 */ mflo $t6
|
|
/* f0aa774: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aa778: 000fcb80 */ sll $t9,$t7,0xe
|
|
/* f0aa77c: 03387025 */ or $t6,$t9,$t8
|
|
/* f0aa780: 10000157 */ b .PF0f0aace0
|
|
/* f0aa784: ac4e0004 */ sw $t6,0x4($v0)
|
|
.PF0f0aa788:
|
|
/* f0aa788: 8fa500f8 */ lw $a1,0xf8($sp)
|
|
/* f0aa78c: afa600c4 */ sw $a2,0xc4($sp)
|
|
/* f0aa790: 0fc5513c */ jal textSetPrimColour
|
|
/* f0aa794: e7a000c0 */ swc1 $f0,0xc0($sp)
|
|
/* f0aa798: 8faf00bc */ lw $t7,0xbc($sp)
|
|
/* f0aa79c: 8fa600c4 */ lw $a2,0xc4($sp)
|
|
/* f0aa7a0: 8fa800ec */ lw $t0,0xec($sp)
|
|
/* f0aa7a4: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa7a8: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa7ac: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa7b0: c7a000c0 */ lwc1 $f0,0xc0($sp)
|
|
/* f0aa7b4: 00408825 */ move $s1,$v0
|
|
/* f0aa7b8: 2412ffff */ li $s2,-1
|
|
/* f0aa7bc: 00008025 */ move $s0,$zero
|
|
/* f0aa7c0: 19e00110 */ blez $t7,.PF0f0aac04
|
|
/* f0aa7c4: 00c0a825 */ move $s5,$a2
|
|
/* f0aa7c8: 4600010d */ trunc.w.s $f4,$f0
|
|
/* f0aa7cc: 00c0b825 */ move $s7,$a2
|
|
/* f0aa7d0: 00d63821 */ addu $a3,$a2,$s6
|
|
/* f0aa7d4: 27d9ffff */ addiu $t9,$s8,-1
|
|
/* f0aa7d8: 44022000 */ mfc1 $v0,$f4
|
|
/* f0aa7dc: 3c138008 */ lui $s3,0x8008
|
|
/* f0aa7e0: 26730020 */ addiu $s3,$s3,0x20
|
|
/* f0aa7e4: afb90044 */ sw $t9,0x44($sp)
|
|
/* f0aa7e8: 8fa6009c */ lw $a2,0x9c($sp)
|
|
/* f0aa7ec: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa7f0: 01e2a023 */ subu $s4,$t7,$v0
|
|
/* f0aa7f4: afa20058 */ sw $v0,0x58($sp)
|
|
.PF0f0aa7f8:
|
|
/* f0aa7f8: 81040005 */ lb $a0,0x5($t0)
|
|
/* f0aa7fc: 00002825 */ move $a1,$zero
|
|
/* f0aa800: 18800044 */ blez $a0,.PF0f0aa914
|
|
/* f0aa804: 0284c023 */ subu $t8,$s4,$a0
|
|
/* f0aa808: 0218082a */ slt $at,$s0,$t8
|
|
/* f0aa80c: 1420006d */ bnez $at,.PF0f0aa9c4
|
|
/* f0aa810: 0214082a */ slt $at,$s0,$s4
|
|
/* f0aa814: 1020006b */ beqz $at,.PF0f0aa9c4
|
|
/* f0aa818: 02906823 */ subu $t5,$s4,$s0
|
|
/* f0aa81c: 000d7880 */ sll $t7,$t5,0x2
|
|
/* f0aa820: 01ed7823 */ subu $t7,$t7,$t5
|
|
/* f0aa824: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f0aa828: 850e0002 */ lh $t6,0x2($t0)
|
|
/* f0aa82c: 01ed7821 */ addu $t7,$t7,$t5
|
|
/* f0aa830: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f0aa834: 01ed7821 */ addu $t7,$t7,$t5
|
|
/* f0aa838: 01cf1823 */ subu $v1,$t6,$t7
|
|
/* f0aa83c: 24630035 */ addiu $v1,$v1,0x35
|
|
/* f0aa840: 04600060 */ bltz $v1,.PF0f0aa9c4
|
|
/* f0aa844: 28610035 */ slti $at,$v1,0x35
|
|
/* f0aa848: 1420001b */ bnez $at,.PF0f0aa8b8
|
|
/* f0aa84c: 00031080 */ sll $v0,$v1,0x2
|
|
/* f0aa850: 00031080 */ sll $v0,$v1,0x2
|
|
/* f0aa854: 2442ff30 */ addiu $v0,$v0,-208
|
|
/* f0aa858: 24010003 */ li $at,0x3
|
|
/* f0aa85c: 0041001a */ div $zero,$v0,$at
|
|
/* f0aa860: 0000c812 */ mflo $t9
|
|
/* f0aa864: 0019c100 */ sll $t8,$t9,0x4
|
|
/* f0aa868: 0319c023 */ subu $t8,$t8,$t9
|
|
/* f0aa86c: 0018c080 */ sll $t8,$t8,0x2
|
|
/* f0aa870: 24010032 */ li $at,0x32
|
|
/* f0aa874: 0301001b */ divu $zero,$t8,$at
|
|
/* f0aa878: 00003012 */ mflo $a2
|
|
/* f0aa87c: 2cc10100 */ sltiu $at,$a2,0x100
|
|
/* f0aa880: 14200002 */ bnez $at,.PF0f0aa88c
|
|
/* f0aa884: 8fa400fc */ lw $a0,0xfc($sp)
|
|
/* f0aa888: 240600ff */ li $a2,0xff
|
|
.PF0f0aa88c:
|
|
/* f0aa88c: 2405ffbf */ li $a1,-65
|
|
/* f0aa890: 0fc01a3c */ jal colourBlend
|
|
/* f0aa894: afa70048 */ sw $a3,0x48($sp)
|
|
/* f0aa898: 8fa70048 */ lw $a3,0x48($sp)
|
|
/* f0aa89c: 8fa800ec */ lw $t0,0xec($sp)
|
|
/* f0aa8a0: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa8a4: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa8a8: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa8ac: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa8b0: 10000015 */ b .PF0f0aa908
|
|
/* f0aa8b4: 00403025 */ move $a2,$v0
|
|
.PF0f0aa8b8:
|
|
/* f0aa8b8: 00027100 */ sll $t6,$v0,0x4
|
|
/* f0aa8bc: 01c27023 */ subu $t6,$t6,$v0
|
|
/* f0aa8c0: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f0aa8c4: 24010032 */ li $at,0x32
|
|
/* f0aa8c8: 01c1001b */ divu $zero,$t6,$at
|
|
/* f0aa8cc: 00003012 */ mflo $a2
|
|
/* f0aa8d0: 2cc10100 */ sltiu $at,$a2,0x100
|
|
/* f0aa8d4: 14200002 */ bnez $at,.PF0f0aa8e0
|
|
/* f0aa8d8: 2404ffbf */ li $a0,-65
|
|
/* f0aa8dc: 240600ff */ li $a2,0xff
|
|
.PF0f0aa8e0:
|
|
/* f0aa8e0: 8fa500f8 */ lw $a1,0xf8($sp)
|
|
/* f0aa8e4: 0fc01a3c */ jal colourBlend
|
|
/* f0aa8e8: afa70048 */ sw $a3,0x48($sp)
|
|
/* f0aa8ec: 8fa70048 */ lw $a3,0x48($sp)
|
|
/* f0aa8f0: 8fa800ec */ lw $t0,0xec($sp)
|
|
/* f0aa8f4: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa8f8: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa8fc: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa900: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa904: 00403025 */ move $a2,$v0
|
|
.PF0f0aa908:
|
|
/* f0aa908: 24050001 */ li $a1,0x1
|
|
/* f0aa90c: 1000002d */ b .PF0f0aa9c4
|
|
/* f0aa910: 81040005 */ lb $a0,0x5($t0)
|
|
.PF0f0aa914:
|
|
/* f0aa914: 0481002b */ bgez $a0,.PF0f0aa9c4
|
|
/* f0aa918: 0284c823 */ subu $t9,$s4,$a0
|
|
/* f0aa91c: 0219082a */ slt $at,$s0,$t9
|
|
/* f0aa920: 10200028 */ beqz $at,.PF0f0aa9c4
|
|
/* f0aa924: 0214082a */ slt $at,$s0,$s4
|
|
/* f0aa928: 14200026 */ bnez $at,.PF0f0aa9c4
|
|
/* f0aa92c: 8fb800bc */ lw $t8,0xbc($sp)
|
|
/* f0aa930: 8fae0058 */ lw $t6,0x58($sp)
|
|
/* f0aa934: 02186823 */ subu $t5,$s0,$t8
|
|
/* f0aa938: 85180002 */ lh $t8,0x2($t0)
|
|
/* f0aa93c: 01ae7821 */ addu $t7,$t5,$t6
|
|
/* f0aa940: 000fc880 */ sll $t9,$t7,0x2
|
|
/* f0aa944: 032fc823 */ subu $t9,$t9,$t7
|
|
/* f0aa948: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f0aa94c: 032fc821 */ addu $t9,$t9,$t7
|
|
/* f0aa950: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f0aa954: 032fc821 */ addu $t9,$t9,$t7
|
|
/* f0aa958: 03191023 */ subu $v0,$t8,$t9
|
|
/* f0aa95c: 04400019 */ bltz $v0,.PF0f0aa9c4
|
|
/* f0aa960: 24010032 */ li $at,0x32
|
|
/* f0aa964: 00023100 */ sll $a2,$v0,0x4
|
|
/* f0aa968: 00c23023 */ subu $a2,$a2,$v0
|
|
/* f0aa96c: 00063080 */ sll $a2,$a2,0x2
|
|
/* f0aa970: 00c1001a */ div $zero,$a2,$at
|
|
/* f0aa974: 00003012 */ mflo $a2
|
|
/* f0aa978: 2cc10100 */ sltiu $at,$a2,0x100
|
|
/* f0aa97c: 14200003 */ bnez $at,.PF0f0aa98c
|
|
/* f0aa980: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f0aa984: 1000000e */ b .PF0f0aa9c0
|
|
/* f0aa988: 8fa600f8 */ lw $a2,0xf8($sp)
|
|
.PF0f0aa98c:
|
|
/* f0aa98c: 34ae00ff */ ori $t6,$a1,0xff
|
|
/* f0aa990: 01c02825 */ move $a1,$t6
|
|
/* f0aa994: 8fa400f8 */ lw $a0,0xf8($sp)
|
|
/* f0aa998: 0fc01a3c */ jal colourBlend
|
|
/* f0aa99c: afa70048 */ sw $a3,0x48($sp)
|
|
/* f0aa9a0: 8fa800ec */ lw $t0,0xec($sp)
|
|
/* f0aa9a4: 8fa70048 */ lw $a3,0x48($sp)
|
|
/* f0aa9a8: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa9ac: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa9b0: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa9b4: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa9b8: 00403025 */ move $a2,$v0
|
|
/* f0aa9bc: 81040005 */ lb $a0,0x5($t0)
|
|
.PF0f0aa9c0:
|
|
/* f0aa9c0: 24050001 */ li $a1,0x1
|
|
.PF0f0aa9c4:
|
|
/* f0aa9c4: 04810007 */ bgez $a0,.PF0f0aa9e4
|
|
/* f0aa9c8: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aa9cc: 02847823 */ subu $t7,$s4,$a0
|
|
/* f0aa9d0: 160f0008 */ bne $s0,$t7,.PF0f0aa9f4
|
|
/* f0aa9d4: 00000000 */ nop
|
|
/* f0aa9d8: 8fa600fc */ lw $a2,0xfc($sp)
|
|
/* f0aa9dc: 10000005 */ b .PF0f0aa9f4
|
|
/* f0aa9e0: 24050001 */ li $a1,0x1
|
|
.PF0f0aa9e4:
|
|
/* f0aa9e4: 16140003 */ bne $s0,$s4,.PF0f0aa9f4
|
|
/* f0aa9e8: 00000000 */ nop
|
|
/* f0aa9ec: 8fa600fc */ lw $a2,0xfc($sp)
|
|
/* f0aa9f0: 24050001 */ li $a1,0x1
|
|
.PF0f0aa9f4:
|
|
/* f0aa9f4: 5020003a */ beqzl $at,.PF0f0aaae0
|
|
/* f0aa9f8: 02e0a825 */ move $s5,$s7
|
|
/* f0aa9fc: 10a00035 */ beqz $a1,.PF0f0aaad4
|
|
/* f0aaa00: 00000000 */ nop
|
|
/* f0aaa04: 06400032 */ bltz $s2,.PF0f0aaad0
|
|
/* f0aaa08: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aaa0c: 5300001c */ beqzl $t8,.PF0f0aaa80
|
|
/* f0aaa10: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aaa14: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0aaa18: 02201025 */ move $v0,$s1
|
|
/* f0aaa1c: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aaa20: 01790019 */ multu $t3,$t9
|
|
/* f0aaa24: 03d5c823 */ subu $t9,$s8,$s5
|
|
/* f0aaa28: 00006812 */ mflo $t5
|
|
/* f0aaa2c: 31ae03ff */ andi $t6,$t5,0x3ff
|
|
/* f0aaa30: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0aaa34: 032a6821 */ addu $t5,$t9,$t2
|
|
/* f0aaa38: 31ae03ff */ andi $t6,$t5,0x3ff
|
|
/* f0aaa3c: 01e9c025 */ or $t8,$t7,$t1
|
|
/* f0aaa40: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0aaa44: 030fc825 */ or $t9,$t8,$t7
|
|
/* f0aaa48: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0aaa4c: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aaa50: 03d2c823 */ subu $t9,$s8,$s2
|
|
/* f0aaa54: 018d0019 */ multu $t4,$t5
|
|
/* f0aaa58: 032a6821 */ addu $t5,$t9,$t2
|
|
/* f0aaa5c: 00007012 */ mflo $t6
|
|
/* f0aaa60: 31d803ff */ andi $t8,$t6,0x3ff
|
|
/* f0aaa64: 00187b80 */ sll $t7,$t8,0xe
|
|
/* f0aaa68: 31ae03ff */ andi $t6,$t5,0x3ff
|
|
/* f0aaa6c: 000ec080 */ sll $t8,$t6,0x2
|
|
/* f0aaa70: 01f8c825 */ or $t9,$t7,$t8
|
|
/* f0aaa74: 10000016 */ b .PF0f0aaad0
|
|
/* f0aaa78: ac590004 */ sw $t9,0x4($v0)
|
|
/* f0aaa7c: 8e6d0000 */ lw $t5,0x0($s3)
|
|
.PF0f0aaa80:
|
|
/* f0aaa80: 02201025 */ move $v0,$s1
|
|
/* f0aaa84: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aaa88: 016d0019 */ multu $t3,$t5
|
|
/* f0aaa8c: 324d03ff */ andi $t5,$s2,0x3ff
|
|
/* f0aaa90: 00007012 */ mflo $t6
|
|
/* f0aaa94: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aaa98: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aaa9c: 0309c825 */ or $t9,$t8,$t1
|
|
/* f0aaaa0: 000d7080 */ sll $t6,$t5,0x2
|
|
/* f0aaaa4: 032e7825 */ or $t7,$t9,$t6
|
|
/* f0aaaa8: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0aaaac: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0aaab0: 32af03ff */ andi $t7,$s5,0x3ff
|
|
/* f0aaab4: 01980019 */ multu $t4,$t8
|
|
/* f0aaab8: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0aaabc: 00006812 */ mflo $t5
|
|
/* f0aaac0: 31b903ff */ andi $t9,$t5,0x3ff
|
|
/* f0aaac4: 00197380 */ sll $t6,$t9,0xe
|
|
/* f0aaac8: 01d86825 */ or $t5,$t6,$t8
|
|
/* f0aaacc: ac4d0004 */ sw $t5,0x4($v0)
|
|
.PF0f0aaad0:
|
|
/* f0aaad0: 02e0a825 */ move $s5,$s7
|
|
.PF0f0aaad4:
|
|
/* f0aaad4: 10000003 */ b .PF0f0aaae4
|
|
/* f0aaad8: 00e09025 */ move $s2,$a3
|
|
/* f0aaadc: 02e0a825 */ move $s5,$s7
|
|
.PF0f0aaae0:
|
|
/* f0aaae0: 24f2ffff */ addiu $s2,$a3,-1
|
|
.PF0f0aaae4:
|
|
/* f0aaae4: 10a00005 */ beqz $a1,.PF0f0aaafc
|
|
/* f0aaae8: 02201025 */ move $v0,$s1
|
|
/* f0aaaec: 3c19fa00 */ lui $t9,0xfa00
|
|
/* f0aaaf0: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0aaaf4: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aaaf8: ac460004 */ sw $a2,0x4($v0)
|
|
.PF0f0aaafc:
|
|
/* f0aaafc: 8faf0044 */ lw $t7,0x44($sp)
|
|
/* f0aab00: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0aab04: 024f082a */ slt $at,$s2,$t7
|
|
/* f0aab08: 14200004 */ bnez $at,.PF0f0aab1c
|
|
/* f0aab0c: 2ac10002 */ slti $at,$s6,0x2
|
|
/* f0aab10: 54200003 */ bnezl $at,.PF0f0aab20
|
|
/* f0aab14: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aab18: 03c09025 */ move $s2,$s8
|
|
.PF0f0aab1c:
|
|
/* f0aab1c: 2ac10003 */ slti $at,$s6,0x3
|
|
.PF0f0aab20:
|
|
/* f0aab20: 54200033 */ bnezl $at,.PF0f0aabf0
|
|
/* f0aab24: 8fb800bc */ lw $t8,0xbc($sp)
|
|
/* f0aab28: 51c0001c */ beqzl $t6,.PF0f0aab9c
|
|
/* f0aab2c: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aab30: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0aab34: 02201025 */ move $v0,$s1
|
|
/* f0aab38: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aab3c: 01780019 */ multu $t3,$t8
|
|
/* f0aab40: 03d5c023 */ subu $t8,$s8,$s5
|
|
/* f0aab44: 00006812 */ mflo $t5
|
|
/* f0aab48: 31b903ff */ andi $t9,$t5,0x3ff
|
|
/* f0aab4c: 00197b80 */ sll $t7,$t9,0xe
|
|
/* f0aab50: 030a6821 */ addu $t5,$t8,$t2
|
|
/* f0aab54: 31b903ff */ andi $t9,$t5,0x3ff
|
|
/* f0aab58: 01e97025 */ or $t6,$t7,$t1
|
|
/* f0aab5c: 00197880 */ sll $t7,$t9,0x2
|
|
/* f0aab60: 01cfc025 */ or $t8,$t6,$t7
|
|
/* f0aab64: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aab68: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aab6c: 03d2c023 */ subu $t8,$s8,$s2
|
|
/* f0aab70: 018d0019 */ multu $t4,$t5
|
|
/* f0aab74: 030a6821 */ addu $t5,$t8,$t2
|
|
/* f0aab78: 0000c812 */ mflo $t9
|
|
/* f0aab7c: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aab80: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0aab84: 31b903ff */ andi $t9,$t5,0x3ff
|
|
/* f0aab88: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0aab8c: 01eec025 */ or $t8,$t7,$t6
|
|
/* f0aab90: 10000016 */ b .PF0f0aabec
|
|
/* f0aab94: ac580004 */ sw $t8,0x4($v0)
|
|
/* f0aab98: 8e6d0000 */ lw $t5,0x0($s3)
|
|
.PF0f0aab9c:
|
|
/* f0aab9c: 02201025 */ move $v0,$s1
|
|
/* f0aaba0: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aaba4: 016d0019 */ multu $t3,$t5
|
|
/* f0aaba8: 324d03ff */ andi $t5,$s2,0x3ff
|
|
/* f0aabac: 0000c812 */ mflo $t9
|
|
/* f0aabb0: 332f03ff */ andi $t7,$t9,0x3ff
|
|
/* f0aabb4: 000f7380 */ sll $t6,$t7,0xe
|
|
/* f0aabb8: 01c9c025 */ or $t8,$t6,$t1
|
|
/* f0aabbc: 000dc880 */ sll $t9,$t5,0x2
|
|
/* f0aabc0: 03197825 */ or $t7,$t8,$t9
|
|
/* f0aabc4: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0aabc8: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aabcc: 32af03ff */ andi $t7,$s5,0x3ff
|
|
/* f0aabd0: 018e0019 */ multu $t4,$t6
|
|
/* f0aabd4: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f0aabd8: 00006812 */ mflo $t5
|
|
/* f0aabdc: 31b803ff */ andi $t8,$t5,0x3ff
|
|
/* f0aabe0: 0018cb80 */ sll $t9,$t8,0xe
|
|
/* f0aabe4: 032e6825 */ or $t5,$t9,$t6
|
|
/* f0aabe8: ac4d0004 */ sw $t5,0x4($v0)
|
|
.PF0f0aabec:
|
|
/* f0aabec: 8fb800bc */ lw $t8,0xbc($sp)
|
|
.PF0f0aabf0:
|
|
/* f0aabf0: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f0aabf4: 02f6b821 */ addu $s7,$s7,$s6
|
|
/* f0aabf8: 1618feff */ bne $s0,$t8,.PF0f0aa7f8
|
|
/* f0aabfc: 00f63821 */ addu $a3,$a3,$s6
|
|
/* f0aac00: afa6009c */ sw $a2,0x9c($sp)
|
|
.PF0f0aac04:
|
|
/* f0aac04: 3c138008 */ lui $s3,0x8008
|
|
/* f0aac08: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aac0c: 26730020 */ addiu $s3,$s3,0x20
|
|
/* f0aac10: 10200033 */ beqz $at,.PF0f0aace0
|
|
/* f0aac14: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aac18: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0aac1c: 51e0001c */ beqzl $t7,.PF0f0aac90
|
|
/* f0aac20: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aac24: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0aac28: 02201025 */ move $v0,$s1
|
|
/* f0aac2c: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aac30: 01790019 */ multu $t3,$t9
|
|
/* f0aac34: 03d5c823 */ subu $t9,$s8,$s5
|
|
/* f0aac38: 00007012 */ mflo $t6
|
|
/* f0aac3c: 31cd03ff */ andi $t5,$t6,0x3ff
|
|
/* f0aac40: 000dc380 */ sll $t8,$t5,0xe
|
|
/* f0aac44: 032a7021 */ addu $t6,$t9,$t2
|
|
/* f0aac48: 31cd03ff */ andi $t5,$t6,0x3ff
|
|
/* f0aac4c: 03097825 */ or $t7,$t8,$t1
|
|
/* f0aac50: 000dc080 */ sll $t8,$t5,0x2
|
|
/* f0aac54: 01f8c825 */ or $t9,$t7,$t8
|
|
/* f0aac58: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0aac5c: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aac60: 03d2c823 */ subu $t9,$s8,$s2
|
|
/* f0aac64: 018e0019 */ multu $t4,$t6
|
|
/* f0aac68: 032a7021 */ addu $t6,$t9,$t2
|
|
/* f0aac6c: 00006812 */ mflo $t5
|
|
/* f0aac70: 31af03ff */ andi $t7,$t5,0x3ff
|
|
/* f0aac74: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aac78: 31cd03ff */ andi $t5,$t6,0x3ff
|
|
/* f0aac7c: 000d7880 */ sll $t7,$t5,0x2
|
|
/* f0aac80: 030fc825 */ or $t9,$t8,$t7
|
|
/* f0aac84: 10000016 */ b .PF0f0aace0
|
|
/* f0aac88: ac590004 */ sw $t9,0x4($v0)
|
|
/* f0aac8c: 8e6e0000 */ lw $t6,0x0($s3)
|
|
.PF0f0aac90:
|
|
/* f0aac90: 02201025 */ move $v0,$s1
|
|
/* f0aac94: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aac98: 016e0019 */ multu $t3,$t6
|
|
/* f0aac9c: 324e03ff */ andi $t6,$s2,0x3ff
|
|
/* f0aaca0: 00006812 */ mflo $t5
|
|
/* f0aaca4: 31b803ff */ andi $t8,$t5,0x3ff
|
|
/* f0aaca8: 00187b80 */ sll $t7,$t8,0xe
|
|
/* f0aacac: 01e9c825 */ or $t9,$t7,$t1
|
|
/* f0aacb0: 000e6880 */ sll $t5,$t6,0x2
|
|
/* f0aacb4: 032dc025 */ or $t8,$t9,$t5
|
|
/* f0aacb8: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aacbc: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0aacc0: 32b803ff */ andi $t8,$s5,0x3ff
|
|
/* f0aacc4: 018f0019 */ multu $t4,$t7
|
|
/* f0aacc8: 00187880 */ sll $t7,$t8,0x2
|
|
/* f0aaccc: 00007012 */ mflo $t6
|
|
/* f0aacd0: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aacd4: 00196b80 */ sll $t5,$t9,0xe
|
|
/* f0aacd8: 01af7025 */ or $t6,$t5,$t7
|
|
/* f0aacdc: ac4e0004 */ sw $t6,0x4($v0)
|
|
.PF0f0aace0:
|
|
/* f0aace0: 0fc55153 */ jal text0f153838
|
|
/* f0aace4: 02202025 */ move $a0,$s1
|
|
/* f0aace8: 3c19b900 */ lui $t9,0xb900
|
|
/* f0aacec: 3c180050 */ lui $t8,0x50
|
|
/* f0aacf0: 371841c8 */ ori $t8,$t8,0x41c8
|
|
/* f0aacf4: 3739031d */ ori $t9,$t9,0x31d
|
|
/* f0aacf8: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0aacfc: ac580004 */ sw $t8,0x4($v0)
|
|
/* f0aad00: 8fbf003c */ lw $ra,0x3c($sp)
|
|
/* f0aad04: 8fbe0038 */ lw $s8,0x38($sp)
|
|
/* f0aad08: 8fb70034 */ lw $s7,0x34($sp)
|
|
/* f0aad0c: 8fb60030 */ lw $s6,0x30($sp)
|
|
/* f0aad10: 8fb5002c */ lw $s5,0x2c($sp)
|
|
/* f0aad14: 8fb40028 */ lw $s4,0x28($sp)
|
|
/* f0aad18: 8fb30024 */ lw $s3,0x24($sp)
|
|
/* f0aad1c: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f0aad20: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f0aad24: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f0aad28: 27bd00d8 */ addiu $sp,$sp,0xd8
|
|
/* f0aad2c: 03e00008 */ jr $ra
|
|
/* f0aad30: 24420008 */ addiu $v0,$v0,0x8
|
|
);
|
|
#elif VERSION >= VERSION_PAL_BETA
|
|
GLOBAL_ASM(
|
|
glabel bgunRenderHudGauge
|
|
/* f0aa36c: 27bdff28 */ addiu $sp,$sp,-216
|
|
/* f0aa370: afbe0038 */ sw $s8,0x38($sp)
|
|
/* f0aa374: afa600e0 */ sw $a2,0xe0($sp)
|
|
/* f0aa378: 8fbe00e8 */ lw $s8,0xe8($sp)
|
|
/* f0aa37c: 8fae00e0 */ lw $t6,0xe0($sp)
|
|
/* f0aa380: afb00018 */ sw $s0,0x18($sp)
|
|
/* f0aa384: 8fb000f4 */ lw $s0,0xf4($sp)
|
|
/* f0aa388: afb20020 */ sw $s2,0x20($sp)
|
|
/* f0aa38c: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f0aa390: 00808825 */ move $s1,$a0
|
|
/* f0aa394: afbf003c */ sw $ra,0x3c($sp)
|
|
/* f0aa398: afa500dc */ sw $a1,0xdc($sp)
|
|
/* f0aa39c: afa700e4 */ sw $a3,0xe4($sp)
|
|
/* f0aa3a0: 03ce9023 */ subu $s2,$s8,$t6
|
|
/* f0aa3a4: afb70034 */ sw $s7,0x34($sp)
|
|
/* f0aa3a8: afb60030 */ sw $s6,0x30($sp)
|
|
/* f0aa3ac: afb5002c */ sw $s5,0x2c($sp)
|
|
/* f0aa3b0: afb40028 */ sw $s4,0x28($sp)
|
|
/* f0aa3b4: afb30024 */ sw $s3,0x24($sp)
|
|
/* f0aa3b8: 02403825 */ move $a3,$s2
|
|
/* f0aa3bc: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0aa3c0: 8fa400ec */ lw $a0,0xec($sp)
|
|
/* f0aa3c4: afb000bc */ sw $s0,0xbc($sp)
|
|
/* f0aa3c8: 0fc2a851 */ jal bgun0f0a9da8
|
|
/* f0aa3cc: 02003025 */ move $a2,$s0
|
|
/* f0aa3d0: 2a010015 */ slti $at,$s0,0x15
|
|
/* f0aa3d4: 8fa800ec */ lw $t0,0xec($sp)
|
|
/* f0aa3d8: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa3dc: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa3e0: 14200008 */ bnez $at,.PB0f0aa404
|
|
/* f0aa3e4: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa3e8: 810f0004 */ lb $t7,0x4($t0)
|
|
/* f0aa3ec: 24160001 */ li $s6,0x1
|
|
/* f0aa3f0: afb200bc */ sw $s2,0xbc($sp)
|
|
/* f0aa3f4: 448f2000 */ mtc1 $t7,$f4
|
|
/* f0aa3f8: 03d23023 */ subu $a2,$s8,$s2
|
|
/* f0aa3fc: 1000002b */ b .PB0f0aa4ac
|
|
/* f0aa400: 46802020 */ cvt.s.w $f0,$f4
|
|
.PB0f0aa404:
|
|
/* f0aa404: 0250001a */ div $zero,$s2,$s0
|
|
/* f0aa408: 00001012 */ mflo $v0
|
|
/* f0aa40c: 24470001 */ addiu $a3,$v0,0x1
|
|
/* f0aa410: 81180004 */ lb $t8,0x4($t0)
|
|
/* f0aa414: 00500019 */ multu $v0,$s0
|
|
/* f0aa418: 0040b025 */ move $s6,$v0
|
|
/* f0aa41c: 44983000 */ mtc1 $t8,$f6
|
|
/* f0aa420: 00000000 */ nop
|
|
/* f0aa424: 46803020 */ cvt.s.w $f0,$f6
|
|
/* f0aa428: 16000002 */ bnez $s0,.PB0f0aa434
|
|
/* f0aa42c: 00000000 */ nop
|
|
/* f0aa430: 0007000d */ break 0x7
|
|
.PB0f0aa434:
|
|
/* f0aa434: 2401ffff */ li $at,-1
|
|
/* f0aa438: 16010004 */ bne $s0,$at,.PB0f0aa44c
|
|
/* f0aa43c: 3c018000 */ lui $at,0x8000
|
|
/* f0aa440: 16410002 */ bne $s2,$at,.PB0f0aa44c
|
|
/* f0aa444: 00000000 */ nop
|
|
/* f0aa448: 0006000d */ break 0x6
|
|
.PB0f0aa44c:
|
|
/* f0aa44c: 0000c812 */ mflo $t9
|
|
/* f0aa450: 03322023 */ subu $a0,$t9,$s2
|
|
/* f0aa454: 00802825 */ move $a1,$a0
|
|
/* f0aa458: 00f00019 */ multu $a3,$s0
|
|
/* f0aa45c: 00006812 */ mflo $t5
|
|
/* f0aa460: 01b21823 */ subu $v1,$t5,$s2
|
|
/* f0aa464: 04810002 */ bgez $a0,.PB0f0aa470
|
|
/* f0aa468: 00603025 */ move $a2,$v1
|
|
/* f0aa46c: 00042823 */ negu $a1,$a0
|
|
.PB0f0aa470:
|
|
/* f0aa470: 04630003 */ bgezl $v1,.PB0f0aa480
|
|
/* f0aa474: 00c5082a */ slt $at,$a2,$a1
|
|
/* f0aa478: 00033023 */ negu $a2,$v1
|
|
/* f0aa47c: 00c5082a */ slt $at,$a2,$a1
|
|
.PB0f0aa480:
|
|
/* f0aa480: 10200002 */ beqz $at,.PB0f0aa48c
|
|
/* f0aa484: 00000000 */ nop
|
|
/* f0aa488: 00e0b025 */ move $s6,$a3
|
|
.PB0f0aa48c:
|
|
/* f0aa48c: 02d00019 */ multu $s6,$s0
|
|
/* f0aa490: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aa494: 00007012 */ mflo $t6
|
|
/* f0aa498: 03ce1023 */ subu $v0,$s8,$t6
|
|
/* f0aa49c: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f0aa4a0: 10200002 */ beqz $at,.PB0f0aa4ac
|
|
/* f0aa4a4: 00403025 */ move $a2,$v0
|
|
/* f0aa4a8: 2446ffff */ addiu $a2,$v0,-1
|
|
.PB0f0aa4ac:
|
|
/* f0aa4ac: 16c0008a */ bnez $s6,.PB0f0aa6d8
|
|
/* f0aa4b0: 02202025 */ move $a0,$s1
|
|
/* f0aa4b4: 03c68023 */ subu $s0,$s8,$a2
|
|
/* f0aa4b8: 44904000 */ mtc1 $s0,$f8
|
|
/* f0aa4bc: 8faf00bc */ lw $t7,0xbc($sp)
|
|
/* f0aa4c0: 02202025 */ move $a0,$s1
|
|
/* f0aa4c4: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0aa4c8: 448f9000 */ mtc1 $t7,$f18
|
|
/* f0aa4cc: 449e4000 */ mtc1 $s8,$f8
|
|
/* f0aa4d0: 8fa500f8 */ lw $a1,0xf8($sp)
|
|
/* f0aa4d4: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f0aa4d8: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f0aa4dc: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0aa4e0: 46048183 */ div.s $f6,$f16,$f4
|
|
/* f0aa4e4: 46065481 */ sub.s $f18,$f10,$f6
|
|
/* f0aa4e8: 4600940d */ trunc.w.s $f16,$f18
|
|
/* f0aa4ec: 44128000 */ mfc1 $s2,$f16
|
|
/* f0aa4f0: 00000000 */ nop
|
|
/* f0aa4f4: 00d2082a */ slt $at,$a2,$s2
|
|
/* f0aa4f8: 1020003e */ beqz $at,.PB0f0aa5f4
|
|
/* f0aa4fc: 00000000 */ nop
|
|
/* f0aa500: 0fc552fc */ jal textSetPrimColour
|
|
/* f0aa504: afa600c4 */ sw $a2,0xc4($sp)
|
|
/* f0aa508: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0aa50c: 8fa600c4 */ lw $a2,0xc4($sp)
|
|
/* f0aa510: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa514: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa518: 1320001c */ beqz $t9,.PB0f0aa58c
|
|
/* f0aa51c: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa520: 3c138008 */ lui $s3,0x8008
|
|
/* f0aa524: 26731f90 */ addiu $s3,$s3,0x1f90
|
|
/* f0aa528: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aa52c: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa530: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0aa534: 016d0019 */ multu $t3,$t5
|
|
/* f0aa538: 020a6821 */ addu $t5,$s0,$t2
|
|
/* f0aa53c: 00007012 */ mflo $t6
|
|
/* f0aa540: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aa544: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aa548: 31ae03ff */ andi $t6,$t5,0x3ff
|
|
/* f0aa54c: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0aa550: 0309c825 */ or $t9,$t8,$t1
|
|
/* f0aa554: 032fc025 */ or $t8,$t9,$t7
|
|
/* f0aa558: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aa55c: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aa560: 03d2c023 */ subu $t8,$s8,$s2
|
|
/* f0aa564: 018d0019 */ multu $t4,$t5
|
|
/* f0aa568: 030a6821 */ addu $t5,$t8,$t2
|
|
/* f0aa56c: 00007012 */ mflo $t6
|
|
/* f0aa570: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa574: 00197b80 */ sll $t7,$t9,0xe
|
|
/* f0aa578: 31ae03ff */ andi $t6,$t5,0x3ff
|
|
/* f0aa57c: 000ec880 */ sll $t9,$t6,0x2
|
|
/* f0aa580: 01f9c025 */ or $t8,$t7,$t9
|
|
/* f0aa584: 10000018 */ b .PB0f0aa5e8
|
|
/* f0aa588: ac580004 */ sw $t8,0x4($v0)
|
|
.PB0f0aa58c:
|
|
/* f0aa58c: 3c138008 */ lui $s3,0x8008
|
|
/* f0aa590: 26731f90 */ addiu $s3,$s3,0x1f90
|
|
/* f0aa594: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aa598: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa59c: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0aa5a0: 016d0019 */ multu $t3,$t5
|
|
/* f0aa5a4: 324d03ff */ andi $t5,$s2,0x3ff
|
|
/* f0aa5a8: 00007012 */ mflo $t6
|
|
/* f0aa5ac: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aa5b0: 000fcb80 */ sll $t9,$t7,0xe
|
|
/* f0aa5b4: 0329c025 */ or $t8,$t9,$t1
|
|
/* f0aa5b8: 000d7080 */ sll $t6,$t5,0x2
|
|
/* f0aa5bc: 030e7825 */ or $t7,$t8,$t6
|
|
/* f0aa5c0: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0aa5c4: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0aa5c8: 30cf03ff */ andi $t7,$a2,0x3ff
|
|
/* f0aa5cc: 01990019 */ multu $t4,$t9
|
|
/* f0aa5d0: 000fc880 */ sll $t9,$t7,0x2
|
|
/* f0aa5d4: 00006812 */ mflo $t5
|
|
/* f0aa5d8: 31b803ff */ andi $t8,$t5,0x3ff
|
|
/* f0aa5dc: 00187380 */ sll $t6,$t8,0xe
|
|
/* f0aa5e0: 01d96825 */ or $t5,$t6,$t9
|
|
/* f0aa5e4: ac4d0004 */ sw $t5,0x4($v0)
|
|
.PB0f0aa5e8:
|
|
/* f0aa5e8: 0fc55313 */ jal text0f153838
|
|
/* f0aa5ec: 02202025 */ move $a0,$s1
|
|
/* f0aa5f0: 00408825 */ move $s1,$v0
|
|
.PB0f0aa5f4:
|
|
/* f0aa5f4: 3c138008 */ lui $s3,0x8008
|
|
/* f0aa5f8: 26731f90 */ addiu $s3,$s3,0x1f90
|
|
/* f0aa5fc: 02202025 */ move $a0,$s1
|
|
/* f0aa600: 0fc552fc */ jal textSetPrimColour
|
|
/* f0aa604: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f0aa608: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aa60c: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa610: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa614: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa618: 1300001a */ beqz $t8,.PB0f0aa684
|
|
/* f0aa61c: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa620: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0aa624: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0aa628: 016f0019 */ multu $t3,$t7
|
|
/* f0aa62c: 03d27823 */ subu $t7,$s8,$s2
|
|
/* f0aa630: 00007012 */ mflo $t6
|
|
/* f0aa634: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa638: 00196b80 */ sll $t5,$t9,0xe
|
|
/* f0aa63c: 01ea7021 */ addu $t6,$t7,$t2
|
|
/* f0aa640: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa644: 01a9c025 */ or $t8,$t5,$t1
|
|
/* f0aa648: 00196880 */ sll $t5,$t9,0x2
|
|
/* f0aa64c: 030d7825 */ or $t7,$t8,$t5
|
|
/* f0aa650: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0aa654: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aa658: 03de7823 */ subu $t7,$s8,$s8
|
|
/* f0aa65c: 018e0019 */ multu $t4,$t6
|
|
/* f0aa660: 01ea7021 */ addu $t6,$t7,$t2
|
|
/* f0aa664: 0000c812 */ mflo $t9
|
|
/* f0aa668: 333803ff */ andi $t8,$t9,0x3ff
|
|
/* f0aa66c: 00186b80 */ sll $t5,$t8,0xe
|
|
/* f0aa670: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa674: 0019c080 */ sll $t8,$t9,0x2
|
|
/* f0aa678: 01b87825 */ or $t7,$t5,$t8
|
|
/* f0aa67c: 1000016c */ b .PB0f0aac30
|
|
/* f0aa680: ac4f0004 */ sw $t7,0x4($v0)
|
|
.PB0f0aa684:
|
|
/* f0aa684: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aa688: 24510008 */ addiu $s1,$v0,0x8
|
|
/* f0aa68c: 016e0019 */ multu $t3,$t6
|
|
/* f0aa690: 33ce03ff */ andi $t6,$s8,0x3ff
|
|
/* f0aa694: 0000c812 */ mflo $t9
|
|
/* f0aa698: 332d03ff */ andi $t5,$t9,0x3ff
|
|
/* f0aa69c: 000dc380 */ sll $t8,$t5,0xe
|
|
/* f0aa6a0: 03097825 */ or $t7,$t8,$t1
|
|
/* f0aa6a4: 000ec880 */ sll $t9,$t6,0x2
|
|
/* f0aa6a8: 01f96825 */ or $t5,$t7,$t9
|
|
/* f0aa6ac: ac4d0000 */ sw $t5,0x0($v0)
|
|
/* f0aa6b0: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0aa6b4: 324d03ff */ andi $t5,$s2,0x3ff
|
|
/* f0aa6b8: 01980019 */ multu $t4,$t8
|
|
/* f0aa6bc: 000dc080 */ sll $t8,$t5,0x2
|
|
/* f0aa6c0: 00007012 */ mflo $t6
|
|
/* f0aa6c4: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aa6c8: 000fcb80 */ sll $t9,$t7,0xe
|
|
/* f0aa6cc: 03387025 */ or $t6,$t9,$t8
|
|
/* f0aa6d0: 10000157 */ b .PB0f0aac30
|
|
/* f0aa6d4: ac4e0004 */ sw $t6,0x4($v0)
|
|
.PB0f0aa6d8:
|
|
/* f0aa6d8: 8fa500f8 */ lw $a1,0xf8($sp)
|
|
/* f0aa6dc: afa600c4 */ sw $a2,0xc4($sp)
|
|
/* f0aa6e0: 0fc552fc */ jal textSetPrimColour
|
|
/* f0aa6e4: e7a000c0 */ swc1 $f0,0xc0($sp)
|
|
/* f0aa6e8: 8faf00bc */ lw $t7,0xbc($sp)
|
|
/* f0aa6ec: 8fa600c4 */ lw $a2,0xc4($sp)
|
|
/* f0aa6f0: 8fa800ec */ lw $t0,0xec($sp)
|
|
/* f0aa6f4: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa6f8: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa6fc: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa700: c7a000c0 */ lwc1 $f0,0xc0($sp)
|
|
/* f0aa704: 00408825 */ move $s1,$v0
|
|
/* f0aa708: 2412ffff */ li $s2,-1
|
|
/* f0aa70c: 00008025 */ move $s0,$zero
|
|
/* f0aa710: 19e00110 */ blez $t7,.PB0f0aab54
|
|
/* f0aa714: 00c0a825 */ move $s5,$a2
|
|
/* f0aa718: 4600010d */ trunc.w.s $f4,$f0
|
|
/* f0aa71c: 00c0b825 */ move $s7,$a2
|
|
/* f0aa720: 00d63821 */ addu $a3,$a2,$s6
|
|
/* f0aa724: 27d9ffff */ addiu $t9,$s8,-1
|
|
/* f0aa728: 44022000 */ mfc1 $v0,$f4
|
|
/* f0aa72c: 3c138008 */ lui $s3,0x8008
|
|
/* f0aa730: 26731f90 */ addiu $s3,$s3,0x1f90
|
|
/* f0aa734: afb90044 */ sw $t9,0x44($sp)
|
|
/* f0aa738: 8fa6009c */ lw $a2,0x9c($sp)
|
|
/* f0aa73c: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa740: 01e2a023 */ subu $s4,$t7,$v0
|
|
/* f0aa744: afa20058 */ sw $v0,0x58($sp)
|
|
.PB0f0aa748:
|
|
/* f0aa748: 81040005 */ lb $a0,0x5($t0)
|
|
/* f0aa74c: 00002825 */ move $a1,$zero
|
|
/* f0aa750: 18800044 */ blez $a0,.PB0f0aa864
|
|
/* f0aa754: 0284c023 */ subu $t8,$s4,$a0
|
|
/* f0aa758: 0218082a */ slt $at,$s0,$t8
|
|
/* f0aa75c: 1420006d */ bnez $at,.PB0f0aa914
|
|
/* f0aa760: 0214082a */ slt $at,$s0,$s4
|
|
/* f0aa764: 1020006b */ beqz $at,.PB0f0aa914
|
|
/* f0aa768: 02906823 */ subu $t5,$s4,$s0
|
|
/* f0aa76c: 000d7880 */ sll $t7,$t5,0x2
|
|
/* f0aa770: 01ed7823 */ subu $t7,$t7,$t5
|
|
/* f0aa774: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f0aa778: 850e0002 */ lh $t6,0x2($t0)
|
|
/* f0aa77c: 01ed7821 */ addu $t7,$t7,$t5
|
|
/* f0aa780: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f0aa784: 01ed7821 */ addu $t7,$t7,$t5
|
|
/* f0aa788: 01cf1823 */ subu $v1,$t6,$t7
|
|
/* f0aa78c: 24630035 */ addiu $v1,$v1,0x35
|
|
/* f0aa790: 04600060 */ bltz $v1,.PB0f0aa914
|
|
/* f0aa794: 28610035 */ slti $at,$v1,0x35
|
|
/* f0aa798: 1420001b */ bnez $at,.PB0f0aa808
|
|
/* f0aa79c: 00031080 */ sll $v0,$v1,0x2
|
|
/* f0aa7a0: 00031080 */ sll $v0,$v1,0x2
|
|
/* f0aa7a4: 2442ff30 */ addiu $v0,$v0,-208
|
|
/* f0aa7a8: 24010003 */ li $at,0x3
|
|
/* f0aa7ac: 0041001a */ div $zero,$v0,$at
|
|
/* f0aa7b0: 0000c812 */ mflo $t9
|
|
/* f0aa7b4: 0019c100 */ sll $t8,$t9,0x4
|
|
/* f0aa7b8: 0319c023 */ subu $t8,$t8,$t9
|
|
/* f0aa7bc: 0018c080 */ sll $t8,$t8,0x2
|
|
/* f0aa7c0: 24010032 */ li $at,0x32
|
|
/* f0aa7c4: 0301001b */ divu $zero,$t8,$at
|
|
/* f0aa7c8: 00003012 */ mflo $a2
|
|
/* f0aa7cc: 2cc10100 */ sltiu $at,$a2,0x100
|
|
/* f0aa7d0: 14200002 */ bnez $at,.PB0f0aa7dc
|
|
/* f0aa7d4: 8fa400fc */ lw $a0,0xfc($sp)
|
|
/* f0aa7d8: 240600ff */ li $a2,0xff
|
|
.PB0f0aa7dc:
|
|
/* f0aa7dc: 2405ffbf */ li $a1,-65
|
|
/* f0aa7e0: 0fc01a3c */ jal colourBlend
|
|
/* f0aa7e4: afa70048 */ sw $a3,0x48($sp)
|
|
/* f0aa7e8: 8fa70048 */ lw $a3,0x48($sp)
|
|
/* f0aa7ec: 8fa800ec */ lw $t0,0xec($sp)
|
|
/* f0aa7f0: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa7f4: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa7f8: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa7fc: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa800: 10000015 */ b .PB0f0aa858
|
|
/* f0aa804: 00403025 */ move $a2,$v0
|
|
.PB0f0aa808:
|
|
/* f0aa808: 00027100 */ sll $t6,$v0,0x4
|
|
/* f0aa80c: 01c27023 */ subu $t6,$t6,$v0
|
|
/* f0aa810: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f0aa814: 24010032 */ li $at,0x32
|
|
/* f0aa818: 01c1001b */ divu $zero,$t6,$at
|
|
/* f0aa81c: 00003012 */ mflo $a2
|
|
/* f0aa820: 2cc10100 */ sltiu $at,$a2,0x100
|
|
/* f0aa824: 14200002 */ bnez $at,.PB0f0aa830
|
|
/* f0aa828: 2404ffbf */ li $a0,-65
|
|
/* f0aa82c: 240600ff */ li $a2,0xff
|
|
.PB0f0aa830:
|
|
/* f0aa830: 8fa500f8 */ lw $a1,0xf8($sp)
|
|
/* f0aa834: 0fc01a3c */ jal colourBlend
|
|
/* f0aa838: afa70048 */ sw $a3,0x48($sp)
|
|
/* f0aa83c: 8fa70048 */ lw $a3,0x48($sp)
|
|
/* f0aa840: 8fa800ec */ lw $t0,0xec($sp)
|
|
/* f0aa844: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa848: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa84c: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa850: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa854: 00403025 */ move $a2,$v0
|
|
.PB0f0aa858:
|
|
/* f0aa858: 24050001 */ li $a1,0x1
|
|
/* f0aa85c: 1000002d */ b .PB0f0aa914
|
|
/* f0aa860: 81040005 */ lb $a0,0x5($t0)
|
|
.PB0f0aa864:
|
|
/* f0aa864: 0481002b */ bgez $a0,.PB0f0aa914
|
|
/* f0aa868: 0284c823 */ subu $t9,$s4,$a0
|
|
/* f0aa86c: 0219082a */ slt $at,$s0,$t9
|
|
/* f0aa870: 10200028 */ beqz $at,.PB0f0aa914
|
|
/* f0aa874: 0214082a */ slt $at,$s0,$s4
|
|
/* f0aa878: 14200026 */ bnez $at,.PB0f0aa914
|
|
/* f0aa87c: 8fb800bc */ lw $t8,0xbc($sp)
|
|
/* f0aa880: 8fae0058 */ lw $t6,0x58($sp)
|
|
/* f0aa884: 02186823 */ subu $t5,$s0,$t8
|
|
/* f0aa888: 85180002 */ lh $t8,0x2($t0)
|
|
/* f0aa88c: 01ae7821 */ addu $t7,$t5,$t6
|
|
/* f0aa890: 000fc880 */ sll $t9,$t7,0x2
|
|
/* f0aa894: 032fc823 */ subu $t9,$t9,$t7
|
|
/* f0aa898: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f0aa89c: 032fc821 */ addu $t9,$t9,$t7
|
|
/* f0aa8a0: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f0aa8a4: 032fc821 */ addu $t9,$t9,$t7
|
|
/* f0aa8a8: 03191023 */ subu $v0,$t8,$t9
|
|
/* f0aa8ac: 04400019 */ bltz $v0,.PB0f0aa914
|
|
/* f0aa8b0: 24010032 */ li $at,0x32
|
|
/* f0aa8b4: 00023100 */ sll $a2,$v0,0x4
|
|
/* f0aa8b8: 00c23023 */ subu $a2,$a2,$v0
|
|
/* f0aa8bc: 00063080 */ sll $a2,$a2,0x2
|
|
/* f0aa8c0: 00c1001a */ div $zero,$a2,$at
|
|
/* f0aa8c4: 00003012 */ mflo $a2
|
|
/* f0aa8c8: 2cc10100 */ sltiu $at,$a2,0x100
|
|
/* f0aa8cc: 14200003 */ bnez $at,.PB0f0aa8dc
|
|
/* f0aa8d0: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f0aa8d4: 1000000e */ b .PB0f0aa910
|
|
/* f0aa8d8: 8fa600f8 */ lw $a2,0xf8($sp)
|
|
.PB0f0aa8dc:
|
|
/* f0aa8dc: 34ae00ff */ ori $t6,$a1,0xff
|
|
/* f0aa8e0: 01c02825 */ move $a1,$t6
|
|
/* f0aa8e4: 8fa400f8 */ lw $a0,0xf8($sp)
|
|
/* f0aa8e8: 0fc01a3c */ jal colourBlend
|
|
/* f0aa8ec: afa70048 */ sw $a3,0x48($sp)
|
|
/* f0aa8f0: 8fa800ec */ lw $t0,0xec($sp)
|
|
/* f0aa8f4: 8fa70048 */ lw $a3,0x48($sp)
|
|
/* f0aa8f8: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aa8fc: 8faa00e0 */ lw $t2,0xe0($sp)
|
|
/* f0aa900: 8fab00e4 */ lw $t3,0xe4($sp)
|
|
/* f0aa904: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa908: 00403025 */ move $a2,$v0
|
|
/* f0aa90c: 81040005 */ lb $a0,0x5($t0)
|
|
.PB0f0aa910:
|
|
/* f0aa910: 24050001 */ li $a1,0x1
|
|
.PB0f0aa914:
|
|
/* f0aa914: 04810007 */ bgez $a0,.PB0f0aa934
|
|
/* f0aa918: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aa91c: 02847823 */ subu $t7,$s4,$a0
|
|
/* f0aa920: 160f0008 */ bne $s0,$t7,.PB0f0aa944
|
|
/* f0aa924: 00000000 */ nop
|
|
/* f0aa928: 8fa600fc */ lw $a2,0xfc($sp)
|
|
/* f0aa92c: 10000005 */ b .PB0f0aa944
|
|
/* f0aa930: 24050001 */ li $a1,0x1
|
|
.PB0f0aa934:
|
|
/* f0aa934: 16140003 */ bne $s0,$s4,.PB0f0aa944
|
|
/* f0aa938: 00000000 */ nop
|
|
/* f0aa93c: 8fa600fc */ lw $a2,0xfc($sp)
|
|
/* f0aa940: 24050001 */ li $a1,0x1
|
|
.PB0f0aa944:
|
|
/* f0aa944: 5020003a */ beqzl $at,.PB0f0aaa30
|
|
/* f0aa948: 02e0a825 */ move $s5,$s7
|
|
/* f0aa94c: 10a00035 */ beqz $a1,.PB0f0aaa24
|
|
/* f0aa950: 00000000 */ nop
|
|
/* f0aa954: 06400032 */ bltz $s2,.PB0f0aaa20
|
|
/* f0aa958: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aa95c: 5300001c */ beqzl $t8,.PB0f0aa9d0
|
|
/* f0aa960: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aa964: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0aa968: 02201025 */ move $v0,$s1
|
|
/* f0aa96c: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aa970: 01790019 */ multu $t3,$t9
|
|
/* f0aa974: 03d5c823 */ subu $t9,$s8,$s5
|
|
/* f0aa978: 00006812 */ mflo $t5
|
|
/* f0aa97c: 31ae03ff */ andi $t6,$t5,0x3ff
|
|
/* f0aa980: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0aa984: 032a6821 */ addu $t5,$t9,$t2
|
|
/* f0aa988: 31ae03ff */ andi $t6,$t5,0x3ff
|
|
/* f0aa98c: 01e9c025 */ or $t8,$t7,$t1
|
|
/* f0aa990: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0aa994: 030fc825 */ or $t9,$t8,$t7
|
|
/* f0aa998: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0aa99c: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aa9a0: 03d2c823 */ subu $t9,$s8,$s2
|
|
/* f0aa9a4: 018d0019 */ multu $t4,$t5
|
|
/* f0aa9a8: 032a6821 */ addu $t5,$t9,$t2
|
|
/* f0aa9ac: 00007012 */ mflo $t6
|
|
/* f0aa9b0: 31d803ff */ andi $t8,$t6,0x3ff
|
|
/* f0aa9b4: 00187b80 */ sll $t7,$t8,0xe
|
|
/* f0aa9b8: 31ae03ff */ andi $t6,$t5,0x3ff
|
|
/* f0aa9bc: 000ec080 */ sll $t8,$t6,0x2
|
|
/* f0aa9c0: 01f8c825 */ or $t9,$t7,$t8
|
|
/* f0aa9c4: 10000016 */ b .PB0f0aaa20
|
|
/* f0aa9c8: ac590004 */ sw $t9,0x4($v0)
|
|
/* f0aa9cc: 8e6d0000 */ lw $t5,0x0($s3)
|
|
.PB0f0aa9d0:
|
|
/* f0aa9d0: 02201025 */ move $v0,$s1
|
|
/* f0aa9d4: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aa9d8: 016d0019 */ multu $t3,$t5
|
|
/* f0aa9dc: 324d03ff */ andi $t5,$s2,0x3ff
|
|
/* f0aa9e0: 00007012 */ mflo $t6
|
|
/* f0aa9e4: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aa9e8: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aa9ec: 0309c825 */ or $t9,$t8,$t1
|
|
/* f0aa9f0: 000d7080 */ sll $t6,$t5,0x2
|
|
/* f0aa9f4: 032e7825 */ or $t7,$t9,$t6
|
|
/* f0aa9f8: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0aa9fc: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0aaa00: 32af03ff */ andi $t7,$s5,0x3ff
|
|
/* f0aaa04: 01980019 */ multu $t4,$t8
|
|
/* f0aaa08: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0aaa0c: 00006812 */ mflo $t5
|
|
/* f0aaa10: 31b903ff */ andi $t9,$t5,0x3ff
|
|
/* f0aaa14: 00197380 */ sll $t6,$t9,0xe
|
|
/* f0aaa18: 01d86825 */ or $t5,$t6,$t8
|
|
/* f0aaa1c: ac4d0004 */ sw $t5,0x4($v0)
|
|
.PB0f0aaa20:
|
|
/* f0aaa20: 02e0a825 */ move $s5,$s7
|
|
.PB0f0aaa24:
|
|
/* f0aaa24: 10000003 */ b .PB0f0aaa34
|
|
/* f0aaa28: 00e09025 */ move $s2,$a3
|
|
/* f0aaa2c: 02e0a825 */ move $s5,$s7
|
|
.PB0f0aaa30:
|
|
/* f0aaa30: 24f2ffff */ addiu $s2,$a3,-1
|
|
.PB0f0aaa34:
|
|
/* f0aaa34: 10a00005 */ beqz $a1,.PB0f0aaa4c
|
|
/* f0aaa38: 02201025 */ move $v0,$s1
|
|
/* f0aaa3c: 3c19fa00 */ lui $t9,0xfa00
|
|
/* f0aaa40: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0aaa44: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aaa48: ac460004 */ sw $a2,0x4($v0)
|
|
.PB0f0aaa4c:
|
|
/* f0aaa4c: 8faf0044 */ lw $t7,0x44($sp)
|
|
/* f0aaa50: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0aaa54: 024f082a */ slt $at,$s2,$t7
|
|
/* f0aaa58: 14200004 */ bnez $at,.PB0f0aaa6c
|
|
/* f0aaa5c: 2ac10002 */ slti $at,$s6,0x2
|
|
/* f0aaa60: 54200003 */ bnezl $at,.PB0f0aaa70
|
|
/* f0aaa64: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aaa68: 03c09025 */ move $s2,$s8
|
|
.PB0f0aaa6c:
|
|
/* f0aaa6c: 2ac10003 */ slti $at,$s6,0x3
|
|
.PB0f0aaa70:
|
|
/* f0aaa70: 54200033 */ bnezl $at,.PB0f0aab40
|
|
/* f0aaa74: 8fb800bc */ lw $t8,0xbc($sp)
|
|
/* f0aaa78: 51c0001c */ beqzl $t6,.PB0f0aaaec
|
|
/* f0aaa7c: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aaa80: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0aaa84: 02201025 */ move $v0,$s1
|
|
/* f0aaa88: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aaa8c: 01780019 */ multu $t3,$t8
|
|
/* f0aaa90: 03d5c023 */ subu $t8,$s8,$s5
|
|
/* f0aaa94: 00006812 */ mflo $t5
|
|
/* f0aaa98: 31b903ff */ andi $t9,$t5,0x3ff
|
|
/* f0aaa9c: 00197b80 */ sll $t7,$t9,0xe
|
|
/* f0aaaa0: 030a6821 */ addu $t5,$t8,$t2
|
|
/* f0aaaa4: 31b903ff */ andi $t9,$t5,0x3ff
|
|
/* f0aaaa8: 01e97025 */ or $t6,$t7,$t1
|
|
/* f0aaaac: 00197880 */ sll $t7,$t9,0x2
|
|
/* f0aaab0: 01cfc025 */ or $t8,$t6,$t7
|
|
/* f0aaab4: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aaab8: 8e6d0000 */ lw $t5,0x0($s3)
|
|
/* f0aaabc: 03d2c023 */ subu $t8,$s8,$s2
|
|
/* f0aaac0: 018d0019 */ multu $t4,$t5
|
|
/* f0aaac4: 030a6821 */ addu $t5,$t8,$t2
|
|
/* f0aaac8: 0000c812 */ mflo $t9
|
|
/* f0aaacc: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aaad0: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0aaad4: 31b903ff */ andi $t9,$t5,0x3ff
|
|
/* f0aaad8: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0aaadc: 01eec025 */ or $t8,$t7,$t6
|
|
/* f0aaae0: 10000016 */ b .PB0f0aab3c
|
|
/* f0aaae4: ac580004 */ sw $t8,0x4($v0)
|
|
/* f0aaae8: 8e6d0000 */ lw $t5,0x0($s3)
|
|
.PB0f0aaaec:
|
|
/* f0aaaec: 02201025 */ move $v0,$s1
|
|
/* f0aaaf0: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aaaf4: 016d0019 */ multu $t3,$t5
|
|
/* f0aaaf8: 324d03ff */ andi $t5,$s2,0x3ff
|
|
/* f0aaafc: 0000c812 */ mflo $t9
|
|
/* f0aab00: 332f03ff */ andi $t7,$t9,0x3ff
|
|
/* f0aab04: 000f7380 */ sll $t6,$t7,0xe
|
|
/* f0aab08: 01c9c025 */ or $t8,$t6,$t1
|
|
/* f0aab0c: 000dc880 */ sll $t9,$t5,0x2
|
|
/* f0aab10: 03197825 */ or $t7,$t8,$t9
|
|
/* f0aab14: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0aab18: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aab1c: 32af03ff */ andi $t7,$s5,0x3ff
|
|
/* f0aab20: 018e0019 */ multu $t4,$t6
|
|
/* f0aab24: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f0aab28: 00006812 */ mflo $t5
|
|
/* f0aab2c: 31b803ff */ andi $t8,$t5,0x3ff
|
|
/* f0aab30: 0018cb80 */ sll $t9,$t8,0xe
|
|
/* f0aab34: 032e6825 */ or $t5,$t9,$t6
|
|
/* f0aab38: ac4d0004 */ sw $t5,0x4($v0)
|
|
.PB0f0aab3c:
|
|
/* f0aab3c: 8fb800bc */ lw $t8,0xbc($sp)
|
|
.PB0f0aab40:
|
|
/* f0aab40: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f0aab44: 02f6b821 */ addu $s7,$s7,$s6
|
|
/* f0aab48: 1618feff */ bne $s0,$t8,.PB0f0aa748
|
|
/* f0aab4c: 00f63821 */ addu $a3,$a3,$s6
|
|
/* f0aab50: afa6009c */ sw $a2,0x9c($sp)
|
|
.PB0f0aab54:
|
|
/* f0aab54: 3c138008 */ lui $s3,0x8008
|
|
/* f0aab58: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aab5c: 26731f90 */ addiu $s3,$s3,0x1f90
|
|
/* f0aab60: 10200033 */ beqz $at,.PB0f0aac30
|
|
/* f0aab64: 3c09f600 */ lui $t1,0xf600
|
|
/* f0aab68: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0aab6c: 51e0001c */ beqzl $t7,.PB0f0aabe0
|
|
/* f0aab70: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aab74: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0aab78: 02201025 */ move $v0,$s1
|
|
/* f0aab7c: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aab80: 01790019 */ multu $t3,$t9
|
|
/* f0aab84: 03d5c823 */ subu $t9,$s8,$s5
|
|
/* f0aab88: 00007012 */ mflo $t6
|
|
/* f0aab8c: 31cd03ff */ andi $t5,$t6,0x3ff
|
|
/* f0aab90: 000dc380 */ sll $t8,$t5,0xe
|
|
/* f0aab94: 032a7021 */ addu $t6,$t9,$t2
|
|
/* f0aab98: 31cd03ff */ andi $t5,$t6,0x3ff
|
|
/* f0aab9c: 03097825 */ or $t7,$t8,$t1
|
|
/* f0aaba0: 000dc080 */ sll $t8,$t5,0x2
|
|
/* f0aaba4: 01f8c825 */ or $t9,$t7,$t8
|
|
/* f0aaba8: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0aabac: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aabb0: 03d2c823 */ subu $t9,$s8,$s2
|
|
/* f0aabb4: 018e0019 */ multu $t4,$t6
|
|
/* f0aabb8: 032a7021 */ addu $t6,$t9,$t2
|
|
/* f0aabbc: 00006812 */ mflo $t5
|
|
/* f0aabc0: 31af03ff */ andi $t7,$t5,0x3ff
|
|
/* f0aabc4: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aabc8: 31cd03ff */ andi $t5,$t6,0x3ff
|
|
/* f0aabcc: 000d7880 */ sll $t7,$t5,0x2
|
|
/* f0aabd0: 030fc825 */ or $t9,$t8,$t7
|
|
/* f0aabd4: 10000016 */ b .PB0f0aac30
|
|
/* f0aabd8: ac590004 */ sw $t9,0x4($v0)
|
|
/* f0aabdc: 8e6e0000 */ lw $t6,0x0($s3)
|
|
.PB0f0aabe0:
|
|
/* f0aabe0: 02201025 */ move $v0,$s1
|
|
/* f0aabe4: 26310008 */ addiu $s1,$s1,0x8
|
|
/* f0aabe8: 016e0019 */ multu $t3,$t6
|
|
/* f0aabec: 324e03ff */ andi $t6,$s2,0x3ff
|
|
/* f0aabf0: 00006812 */ mflo $t5
|
|
/* f0aabf4: 31b803ff */ andi $t8,$t5,0x3ff
|
|
/* f0aabf8: 00187b80 */ sll $t7,$t8,0xe
|
|
/* f0aabfc: 01e9c825 */ or $t9,$t7,$t1
|
|
/* f0aac00: 000e6880 */ sll $t5,$t6,0x2
|
|
/* f0aac04: 032dc025 */ or $t8,$t9,$t5
|
|
/* f0aac08: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aac0c: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0aac10: 32b803ff */ andi $t8,$s5,0x3ff
|
|
/* f0aac14: 018f0019 */ multu $t4,$t7
|
|
/* f0aac18: 00187880 */ sll $t7,$t8,0x2
|
|
/* f0aac1c: 00007012 */ mflo $t6
|
|
/* f0aac20: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aac24: 00196b80 */ sll $t5,$t9,0xe
|
|
/* f0aac28: 01af7025 */ or $t6,$t5,$t7
|
|
/* f0aac2c: ac4e0004 */ sw $t6,0x4($v0)
|
|
.PB0f0aac30:
|
|
/* f0aac30: 0fc55313 */ jal text0f153838
|
|
/* f0aac34: 02202025 */ move $a0,$s1
|
|
/* f0aac38: 3c19b900 */ lui $t9,0xb900
|
|
/* f0aac3c: 3c180050 */ lui $t8,0x50
|
|
/* f0aac40: 371841c8 */ ori $t8,$t8,0x41c8
|
|
/* f0aac44: 3739031d */ ori $t9,$t9,0x31d
|
|
/* f0aac48: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0aac4c: ac580004 */ sw $t8,0x4($v0)
|
|
/* f0aac50: 8fbf003c */ lw $ra,0x3c($sp)
|
|
/* f0aac54: 8fbe0038 */ lw $s8,0x38($sp)
|
|
/* f0aac58: 8fb70034 */ lw $s7,0x34($sp)
|
|
/* f0aac5c: 8fb60030 */ lw $s6,0x30($sp)
|
|
/* f0aac60: 8fb5002c */ lw $s5,0x2c($sp)
|
|
/* f0aac64: 8fb40028 */ lw $s4,0x28($sp)
|
|
/* f0aac68: 8fb30024 */ lw $s3,0x24($sp)
|
|
/* f0aac6c: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f0aac70: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f0aac74: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f0aac78: 27bd00d8 */ addiu $sp,$sp,0xd8
|
|
/* f0aac7c: 03e00008 */ jr $ra
|
|
/* f0aac80: 24420008 */ addiu $v0,$v0,0x8
|
|
);
|
|
#else
|
|
GLOBAL_ASM(
|
|
glabel bgunRenderHudGauge
|
|
/* f0a9fc0: 27bdff30 */ addiu $sp,$sp,-208
|
|
/* f0a9fc4: afa600d8 */ sw $a2,0xd8($sp)
|
|
/* f0a9fc8: 8faf00d8 */ lw $t7,0xd8($sp)
|
|
/* f0a9fcc: 8fae00e0 */ lw $t6,0xe0($sp)
|
|
/* f0a9fd0: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f0a9fd4: 8fb100ec */ lw $s1,0xec($sp)
|
|
/* f0a9fd8: afb70034 */ sw $s7,0x34($sp)
|
|
/* f0a9fdc: 8fb700e4 */ lw $s7,0xe4($sp)
|
|
/* f0a9fe0: afb20020 */ sw $s2,0x20($sp)
|
|
/* f0a9fe4: afb00018 */ sw $s0,0x18($sp)
|
|
/* f0a9fe8: 00808025 */ or $s0,$a0,$zero
|
|
/* f0a9fec: afbf003c */ sw $ra,0x3c($sp)
|
|
/* f0a9ff0: afa500d4 */ sw $a1,0xd4($sp)
|
|
/* f0a9ff4: afa700dc */ sw $a3,0xdc($sp)
|
|
/* f0a9ff8: 01cf9023 */ subu $s2,$t6,$t7
|
|
/* f0a9ffc: afbe0038 */ sw $s8,0x38($sp)
|
|
/* f0aa000: afb60030 */ sw $s6,0x30($sp)
|
|
/* f0aa004: afb5002c */ sw $s5,0x2c($sp)
|
|
/* f0aa008: afb40028 */ sw $s4,0x28($sp)
|
|
/* f0aa00c: afb30024 */ sw $s3,0x24($sp)
|
|
/* f0aa010: 02403825 */ or $a3,$s2,$zero
|
|
/* f0aa014: 8fa500e8 */ lw $a1,0xe8($sp)
|
|
/* f0aa018: afb100b4 */ sw $s1,0xb4($sp)
|
|
/* f0aa01c: 02203025 */ or $a2,$s1,$zero
|
|
/* f0aa020: 0fc2a76a */ jal bgun0f0a9da8
|
|
/* f0aa024: 02e02025 */ or $a0,$s7,$zero
|
|
/* f0aa028: 2a210015 */ slti $at,$s1,0x15
|
|
/* f0aa02c: 8fa900e0 */ lw $t1,0xe0($sp)
|
|
/* f0aa030: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0aa034: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa038: 14200008 */ bnez $at,.L0f0aa05c
|
|
/* f0aa03c: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0aa040: 82f80004 */ lb $t8,0x4($s7)
|
|
/* f0aa044: 24160001 */ addiu $s6,$zero,0x1
|
|
/* f0aa048: afb200b4 */ sw $s2,0xb4($sp)
|
|
/* f0aa04c: 44982000 */ mtc1 $t8,$f4
|
|
/* f0aa050: 01323023 */ subu $a2,$t1,$s2
|
|
/* f0aa054: 1000002b */ b .L0f0aa104
|
|
/* f0aa058: 46802020 */ cvt.s.w $f0,$f4
|
|
.L0f0aa05c:
|
|
/* f0aa05c: 0251001a */ div $zero,$s2,$s1
|
|
/* f0aa060: 00001012 */ mflo $v0
|
|
/* f0aa064: 24470001 */ addiu $a3,$v0,0x1
|
|
/* f0aa068: 82f90004 */ lb $t9,0x4($s7)
|
|
/* f0aa06c: 00510019 */ multu $v0,$s1
|
|
/* f0aa070: 0040b025 */ or $s6,$v0,$zero
|
|
/* f0aa074: 44993000 */ mtc1 $t9,$f6
|
|
/* f0aa078: 00000000 */ nop
|
|
/* f0aa07c: 46803020 */ cvt.s.w $f0,$f6
|
|
/* f0aa080: 16200002 */ bnez $s1,.L0f0aa08c
|
|
/* f0aa084: 00000000 */ nop
|
|
/* f0aa088: 0007000d */ break 0x7
|
|
.L0f0aa08c:
|
|
/* f0aa08c: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0aa090: 16210004 */ bne $s1,$at,.L0f0aa0a4
|
|
/* f0aa094: 3c018000 */ lui $at,0x8000
|
|
/* f0aa098: 16410002 */ bne $s2,$at,.L0f0aa0a4
|
|
/* f0aa09c: 00000000 */ nop
|
|
/* f0aa0a0: 0006000d */ break 0x6
|
|
.L0f0aa0a4:
|
|
/* f0aa0a4: 00007012 */ mflo $t6
|
|
/* f0aa0a8: 01d22023 */ subu $a0,$t6,$s2
|
|
/* f0aa0ac: 00802825 */ or $a1,$a0,$zero
|
|
/* f0aa0b0: 00f10019 */ multu $a3,$s1
|
|
/* f0aa0b4: 00007812 */ mflo $t7
|
|
/* f0aa0b8: 01f21823 */ subu $v1,$t7,$s2
|
|
/* f0aa0bc: 04810002 */ bgez $a0,.L0f0aa0c8
|
|
/* f0aa0c0: 00603025 */ or $a2,$v1,$zero
|
|
/* f0aa0c4: 00042823 */ negu $a1,$a0
|
|
.L0f0aa0c8:
|
|
/* f0aa0c8: 04630003 */ bgezl $v1,.L0f0aa0d8
|
|
/* f0aa0cc: 00c5082a */ slt $at,$a2,$a1
|
|
/* f0aa0d0: 00033023 */ negu $a2,$v1
|
|
/* f0aa0d4: 00c5082a */ slt $at,$a2,$a1
|
|
.L0f0aa0d8:
|
|
/* f0aa0d8: 10200002 */ beqz $at,.L0f0aa0e4
|
|
/* f0aa0dc: 00000000 */ nop
|
|
/* f0aa0e0: 00e0b025 */ or $s6,$a3,$zero
|
|
.L0f0aa0e4:
|
|
/* f0aa0e4: 02d10019 */ multu $s6,$s1
|
|
/* f0aa0e8: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aa0ec: 0000c012 */ mflo $t8
|
|
/* f0aa0f0: 01381023 */ subu $v0,$t1,$t8
|
|
/* f0aa0f4: 24420001 */ addiu $v0,$v0,0x1
|
|
/* f0aa0f8: 10200002 */ beqz $at,.L0f0aa104
|
|
/* f0aa0fc: 00403025 */ or $a2,$v0,$zero
|
|
/* f0aa100: 2446ffff */ addiu $a2,$v0,-1
|
|
.L0f0aa104:
|
|
/* f0aa104: 16c0008c */ bnez $s6,.L0f0aa338
|
|
/* f0aa108: 02002025 */ or $a0,$s0,$zero
|
|
/* f0aa10c: 01268823 */ subu $s1,$t1,$a2
|
|
/* f0aa110: 44914000 */ mtc1 $s1,$f8
|
|
/* f0aa114: 8fb900b4 */ lw $t9,0xb4($sp)
|
|
/* f0aa118: 02002025 */ or $a0,$s0,$zero
|
|
/* f0aa11c: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0aa120: 44999000 */ mtc1 $t9,$f18
|
|
/* f0aa124: 44894000 */ mtc1 $t1,$f8
|
|
/* f0aa128: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0aa12c: 46809120 */ cvt.s.w $f4,$f18
|
|
/* f0aa130: 46005402 */ mul.s $f16,$f10,$f0
|
|
/* f0aa134: 468042a0 */ cvt.s.w $f10,$f8
|
|
/* f0aa138: 46048183 */ div.s $f6,$f16,$f4
|
|
/* f0aa13c: 46065481 */ sub.s $f18,$f10,$f6
|
|
/* f0aa140: 4600940d */ trunc.w.s $f16,$f18
|
|
/* f0aa144: 44128000 */ mfc1 $s2,$f16
|
|
/* f0aa148: 00000000 */ nop
|
|
/* f0aa14c: 00d2082a */ slt $at,$a2,$s2
|
|
/* f0aa150: 1020003f */ beqz $at,.L0f0aa250
|
|
/* f0aa154: 00000000 */ nop
|
|
/* f0aa158: 0fc54df7 */ jal textSetPrimColour
|
|
/* f0aa15c: afa600bc */ sw $a2,0xbc($sp)
|
|
/* f0aa160: 8faf00f8 */ lw $t7,0xf8($sp)
|
|
/* f0aa164: 8fa600bc */ lw $a2,0xbc($sp)
|
|
/* f0aa168: 8fa900e0 */ lw $t1,0xe0($sp)
|
|
/* f0aa16c: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0aa170: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa174: 11e0001c */ beqz $t7,.L0f0aa1e8
|
|
/* f0aa178: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0aa17c: 3c138008 */ lui $s3,%hi(g_ScaleX)
|
|
/* f0aa180: 2673fac0 */ addiu $s3,$s3,%lo(g_ScaleX)
|
|
/* f0aa184: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0aa188: 3c0af600 */ lui $t2,0xf600
|
|
/* f0aa18c: 24500008 */ addiu $s0,$v0,0x8
|
|
/* f0aa190: 01980019 */ multu $t4,$t8
|
|
/* f0aa194: 0000c812 */ mflo $t9
|
|
/* f0aa198: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aa19c: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0aa1a0: 022bc821 */ addu $t9,$s1,$t3
|
|
/* f0aa1a4: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aa1a8: 01eac025 */ or $t8,$t7,$t2
|
|
/* f0aa1ac: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0aa1b0: 030fc825 */ or $t9,$t8,$t7
|
|
/* f0aa1b4: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0aa1b8: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aa1bc: 01ae0019 */ multu $t5,$t6
|
|
/* f0aa1c0: 01327023 */ subu $t6,$t1,$s2
|
|
/* f0aa1c4: 0000c012 */ mflo $t8
|
|
/* f0aa1c8: 330f03ff */ andi $t7,$t8,0x3ff
|
|
/* f0aa1cc: 000fcb80 */ sll $t9,$t7,0xe
|
|
/* f0aa1d0: 01cbc021 */ addu $t8,$t6,$t3
|
|
/* f0aa1d4: 330f03ff */ andi $t7,$t8,0x3ff
|
|
/* f0aa1d8: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f0aa1dc: 032ec025 */ or $t8,$t9,$t6
|
|
/* f0aa1e0: 10000018 */ b .L0f0aa244
|
|
/* f0aa1e4: ac580004 */ sw $t8,0x4($v0)
|
|
.L0f0aa1e8:
|
|
/* f0aa1e8: 3c138008 */ lui $s3,%hi(g_ScaleX)
|
|
/* f0aa1ec: 2673fac0 */ addiu $s3,$s3,%lo(g_ScaleX)
|
|
/* f0aa1f0: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0aa1f4: 3c0af600 */ lui $t2,0xf600
|
|
/* f0aa1f8: 24500008 */ addiu $s0,$v0,0x8
|
|
/* f0aa1fc: 018f0019 */ multu $t4,$t7
|
|
/* f0aa200: 0000c812 */ mflo $t9
|
|
/* f0aa204: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aa208: 000ec380 */ sll $t8,$t6,0xe
|
|
/* f0aa20c: 325903ff */ andi $t9,$s2,0x3ff
|
|
/* f0aa210: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0aa214: 030a7825 */ or $t7,$t8,$t2
|
|
/* f0aa218: 01eec025 */ or $t8,$t7,$t6
|
|
/* f0aa21c: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aa220: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0aa224: 01b90019 */ multu $t5,$t9
|
|
/* f0aa228: 30d903ff */ andi $t9,$a2,0x3ff
|
|
/* f0aa22c: 00007812 */ mflo $t7
|
|
/* f0aa230: 31ee03ff */ andi $t6,$t7,0x3ff
|
|
/* f0aa234: 000ec380 */ sll $t8,$t6,0xe
|
|
/* f0aa238: 00197880 */ sll $t7,$t9,0x2
|
|
/* f0aa23c: 030f7025 */ or $t6,$t8,$t7
|
|
/* f0aa240: ac4e0004 */ sw $t6,0x4($v0)
|
|
.L0f0aa244:
|
|
/* f0aa244: 0fc54e0e */ jal text0f153838
|
|
/* f0aa248: 02002025 */ or $a0,$s0,$zero
|
|
/* f0aa24c: 00408025 */ or $s0,$v0,$zero
|
|
.L0f0aa250:
|
|
/* f0aa250: 3c138008 */ lui $s3,%hi(g_ScaleX)
|
|
/* f0aa254: 2673fac0 */ addiu $s3,$s3,%lo(g_ScaleX)
|
|
/* f0aa258: 02002025 */ or $a0,$s0,$zero
|
|
/* f0aa25c: 0fc54df7 */ jal textSetPrimColour
|
|
/* f0aa260: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f0aa264: 8fb900f8 */ lw $t9,0xf8($sp)
|
|
/* f0aa268: 8fa900e0 */ lw $t1,0xe0($sp)
|
|
/* f0aa26c: 3c0af600 */ lui $t2,0xf600
|
|
/* f0aa270: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0aa274: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa278: 1320001a */ beqz $t9,.L0f0aa2e4
|
|
/* f0aa27c: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0aa280: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0aa284: 24500008 */ addiu $s0,$v0,0x8
|
|
/* f0aa288: 01980019 */ multu $t4,$t8
|
|
/* f0aa28c: 00007812 */ mflo $t7
|
|
/* f0aa290: 31ee03ff */ andi $t6,$t7,0x3ff
|
|
/* f0aa294: 000ecb80 */ sll $t9,$t6,0xe
|
|
/* f0aa298: 01327823 */ subu $t7,$t1,$s2
|
|
/* f0aa29c: 01eb7021 */ addu $t6,$t7,$t3
|
|
/* f0aa2a0: 032ac025 */ or $t8,$t9,$t2
|
|
/* f0aa2a4: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa2a8: 00197880 */ sll $t7,$t9,0x2
|
|
/* f0aa2ac: 030f7025 */ or $t6,$t8,$t7
|
|
/* f0aa2b0: ac4e0000 */ sw $t6,0x0($v0)
|
|
/* f0aa2b4: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0aa2b8: 01b90019 */ multu $t5,$t9
|
|
/* f0aa2bc: 0129c823 */ subu $t9,$t1,$t1
|
|
/* f0aa2c0: 0000c012 */ mflo $t8
|
|
/* f0aa2c4: 330f03ff */ andi $t7,$t8,0x3ff
|
|
/* f0aa2c8: 000f7380 */ sll $t6,$t7,0xe
|
|
/* f0aa2cc: 032bc021 */ addu $t8,$t9,$t3
|
|
/* f0aa2d0: 330f03ff */ andi $t7,$t8,0x3ff
|
|
/* f0aa2d4: 000fc880 */ sll $t9,$t7,0x2
|
|
/* f0aa2d8: 01d9c025 */ or $t8,$t6,$t9
|
|
/* f0aa2dc: 1000014e */ b .L0f0aa818
|
|
/* f0aa2e0: ac580004 */ sw $t8,0x4($v0)
|
|
.L0f0aa2e4:
|
|
/* f0aa2e4: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0aa2e8: 24500008 */ addiu $s0,$v0,0x8
|
|
/* f0aa2ec: 018f0019 */ multu $t4,$t7
|
|
/* f0aa2f0: 00007012 */ mflo $t6
|
|
/* f0aa2f4: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa2f8: 0019c380 */ sll $t8,$t9,0xe
|
|
/* f0aa2fc: 312e03ff */ andi $t6,$t1,0x3ff
|
|
/* f0aa300: 000ec880 */ sll $t9,$t6,0x2
|
|
/* f0aa304: 030a7825 */ or $t7,$t8,$t2
|
|
/* f0aa308: 01f9c025 */ or $t8,$t7,$t9
|
|
/* f0aa30c: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aa310: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aa314: 01ae0019 */ multu $t5,$t6
|
|
/* f0aa318: 324e03ff */ andi $t6,$s2,0x3ff
|
|
/* f0aa31c: 00007812 */ mflo $t7
|
|
/* f0aa320: 31f903ff */ andi $t9,$t7,0x3ff
|
|
/* f0aa324: 0019c380 */ sll $t8,$t9,0xe
|
|
/* f0aa328: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0aa32c: 030fc825 */ or $t9,$t8,$t7
|
|
/* f0aa330: 10000139 */ b .L0f0aa818
|
|
/* f0aa334: ac590004 */ sw $t9,0x4($v0)
|
|
.L0f0aa338:
|
|
/* f0aa338: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0aa33c: afa600bc */ sw $a2,0xbc($sp)
|
|
/* f0aa340: 0fc54df7 */ jal textSetPrimColour
|
|
/* f0aa344: e7a000b8 */ swc1 $f0,0xb8($sp)
|
|
/* f0aa348: 8fae00b4 */ lw $t6,0xb4($sp)
|
|
/* f0aa34c: 8fa600bc */ lw $a2,0xbc($sp)
|
|
/* f0aa350: 8fa900e0 */ lw $t1,0xe0($sp)
|
|
/* f0aa354: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0aa358: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa35c: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0aa360: c7a000b8 */ lwc1 $f0,0xb8($sp)
|
|
/* f0aa364: 00408025 */ or $s0,$v0,$zero
|
|
/* f0aa368: 2412ffff */ addiu $s2,$zero,-1
|
|
/* f0aa36c: 00008825 */ or $s1,$zero,$zero
|
|
/* f0aa370: 19c000f2 */ blez $t6,.L0f0aa73c
|
|
/* f0aa374: 00c0a825 */ or $s5,$a2,$zero
|
|
/* f0aa378: 4600010d */ trunc.w.s $f4,$f0
|
|
/* f0aa37c: 252fffff */ addiu $t7,$t1,-1
|
|
/* f0aa380: 3c138008 */ lui $s3,%hi(g_ScaleX)
|
|
/* f0aa384: 2673fac0 */ addiu $s3,$s3,%lo(g_ScaleX)
|
|
/* f0aa388: 44022000 */ mfc1 $v0,$f4
|
|
/* f0aa38c: afaf0040 */ sw $t7,0x40($sp)
|
|
/* f0aa390: 00c0f025 */ or $s8,$a2,$zero
|
|
/* f0aa394: 00d64021 */ addu $t0,$a2,$s6
|
|
/* f0aa398: 3c0af600 */ lui $t2,0xf600
|
|
/* f0aa39c: 8fa70094 */ lw $a3,0x94($sp)
|
|
/* f0aa3a0: 01c2a023 */ subu $s4,$t6,$v0
|
|
/* f0aa3a4: afa20050 */ sw $v0,0x50($sp)
|
|
.L0f0aa3a8:
|
|
/* f0aa3a8: 82e40005 */ lb $a0,0x5($s7)
|
|
/* f0aa3ac: 00002825 */ or $a1,$zero,$zero
|
|
/* f0aa3b0: 18800031 */ blez $a0,.L0f0aa478
|
|
/* f0aa3b4: 0284c823 */ subu $t9,$s4,$a0
|
|
/* f0aa3b8: 0239082a */ slt $at,$s1,$t9
|
|
/* f0aa3bc: 1420004f */ bnez $at,.L0f0aa4fc
|
|
/* f0aa3c0: 0234082a */ slt $at,$s1,$s4
|
|
/* f0aa3c4: 1020004d */ beqz $at,.L0f0aa4fc
|
|
/* f0aa3c8: 00000000 */ nop
|
|
/* f0aa3cc: 86f80002 */ lh $t8,0x2($s7)
|
|
/* f0aa3d0: 02917023 */ subu $t6,$s4,$s1
|
|
/* f0aa3d4: 000e7980 */ sll $t7,$t6,0x6
|
|
/* f0aa3d8: 030f1823 */ subu $v1,$t8,$t7
|
|
/* f0aa3dc: 24630040 */ addiu $v1,$v1,0x40
|
|
/* f0aa3e0: 04600046 */ bltz $v1,.L0f0aa4fc
|
|
/* f0aa3e4: 28610040 */ slti $at,$v1,0x40
|
|
/* f0aa3e8: 14200015 */ bnez $at,.L0f0aa440
|
|
/* f0aa3ec: 2404ffbf */ addiu $a0,$zero,-65
|
|
/* f0aa3f0: 00031080 */ sll $v0,$v1,0x2
|
|
/* f0aa3f4: 2442ff04 */ addiu $v0,$v0,-252
|
|
/* f0aa3f8: 24010003 */ addiu $at,$zero,0x3
|
|
/* f0aa3fc: 0041001a */ div $zero,$v0,$at
|
|
/* f0aa400: 00003012 */ mflo $a2
|
|
/* f0aa404: 2cc10100 */ sltiu $at,$a2,0x100
|
|
/* f0aa408: 14200002 */ bnez $at,.L0f0aa414
|
|
/* f0aa40c: 8fa400f4 */ lw $a0,0xf4($sp)
|
|
/* f0aa410: 240600ff */ addiu $a2,$zero,0xff
|
|
.L0f0aa414:
|
|
/* f0aa414: 2405ffbf */ addiu $a1,$zero,-65
|
|
/* f0aa418: 0fc01a40 */ jal colourBlend
|
|
/* f0aa41c: afa80044 */ sw $t0,0x44($sp)
|
|
/* f0aa420: 8fa80044 */ lw $t0,0x44($sp)
|
|
/* f0aa424: 8fa900e0 */ lw $t1,0xe0($sp)
|
|
/* f0aa428: 3c0af600 */ lui $t2,0xf600
|
|
/* f0aa42c: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0aa430: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa434: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0aa438: 1000000c */ b .L0f0aa46c
|
|
/* f0aa43c: 00403825 */ or $a3,$v0,$zero
|
|
.L0f0aa440:
|
|
/* f0aa440: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0aa444: 00033080 */ sll $a2,$v1,0x2
|
|
/* f0aa448: 0fc01a40 */ jal colourBlend
|
|
/* f0aa44c: afa80044 */ sw $t0,0x44($sp)
|
|
/* f0aa450: 8fa80044 */ lw $t0,0x44($sp)
|
|
/* f0aa454: 8fa900e0 */ lw $t1,0xe0($sp)
|
|
/* f0aa458: 3c0af600 */ lui $t2,0xf600
|
|
/* f0aa45c: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0aa460: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa464: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0aa468: 00403825 */ or $a3,$v0,$zero
|
|
.L0f0aa46c:
|
|
/* f0aa46c: 24050001 */ addiu $a1,$zero,0x1
|
|
/* f0aa470: 10000022 */ b .L0f0aa4fc
|
|
/* f0aa474: 82e40005 */ lb $a0,0x5($s7)
|
|
.L0f0aa478:
|
|
/* f0aa478: 04810020 */ bgez $a0,.L0f0aa4fc
|
|
/* f0aa47c: 02847023 */ subu $t6,$s4,$a0
|
|
/* f0aa480: 022e082a */ slt $at,$s1,$t6
|
|
/* f0aa484: 1020001d */ beqz $at,.L0f0aa4fc
|
|
/* f0aa488: 0234082a */ slt $at,$s1,$s4
|
|
/* f0aa48c: 1420001b */ bnez $at,.L0f0aa4fc
|
|
/* f0aa490: 8fb800b4 */ lw $t8,0xb4($sp)
|
|
/* f0aa494: 8fb90050 */ lw $t9,0x50($sp)
|
|
/* f0aa498: 02387823 */ subu $t7,$s1,$t8
|
|
/* f0aa49c: 01f97021 */ addu $t6,$t7,$t9
|
|
/* f0aa4a0: 86ef0002 */ lh $t7,0x2($s7)
|
|
/* f0aa4a4: 000ec180 */ sll $t8,$t6,0x6
|
|
/* f0aa4a8: 01f83023 */ subu $a2,$t7,$t8
|
|
/* f0aa4ac: 04c00013 */ bltz $a2,.L0f0aa4fc
|
|
/* f0aa4b0: 2cc10100 */ sltiu $at,$a2,0x100
|
|
/* f0aa4b4: 14200003 */ bnez $at,.L0f0aa4c4
|
|
/* f0aa4b8: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f0aa4bc: 1000000e */ b .L0f0aa4f8
|
|
/* f0aa4c0: 8fa700f0 */ lw $a3,0xf0($sp)
|
|
.L0f0aa4c4:
|
|
/* f0aa4c4: 34b900ff */ ori $t9,$a1,0xff
|
|
/* f0aa4c8: 03202825 */ or $a1,$t9,$zero
|
|
/* f0aa4cc: 8fa400f0 */ lw $a0,0xf0($sp)
|
|
/* f0aa4d0: 0fc01a40 */ jal colourBlend
|
|
/* f0aa4d4: afa80044 */ sw $t0,0x44($sp)
|
|
/* f0aa4d8: 8fa80044 */ lw $t0,0x44($sp)
|
|
/* f0aa4dc: 8fa900e0 */ lw $t1,0xe0($sp)
|
|
/* f0aa4e0: 3c0af600 */ lui $t2,0xf600
|
|
/* f0aa4e4: 8fab00d8 */ lw $t3,0xd8($sp)
|
|
/* f0aa4e8: 8fac00dc */ lw $t4,0xdc($sp)
|
|
/* f0aa4ec: 8fad00d4 */ lw $t5,0xd4($sp)
|
|
/* f0aa4f0: 00403825 */ or $a3,$v0,$zero
|
|
/* f0aa4f4: 82e40005 */ lb $a0,0x5($s7)
|
|
.L0f0aa4f8:
|
|
/* f0aa4f8: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f0aa4fc:
|
|
/* f0aa4fc: 04810007 */ bgez $a0,.L0f0aa51c
|
|
/* f0aa500: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aa504: 02847023 */ subu $t6,$s4,$a0
|
|
/* f0aa508: 162e0008 */ bne $s1,$t6,.L0f0aa52c
|
|
/* f0aa50c: 00000000 */ nop
|
|
/* f0aa510: 8fa700f4 */ lw $a3,0xf4($sp)
|
|
/* f0aa514: 10000005 */ b .L0f0aa52c
|
|
/* f0aa518: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f0aa51c:
|
|
/* f0aa51c: 16340003 */ bne $s1,$s4,.L0f0aa52c
|
|
/* f0aa520: 00000000 */ nop
|
|
/* f0aa524: 8fa700f4 */ lw $a3,0xf4($sp)
|
|
/* f0aa528: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f0aa52c:
|
|
/* f0aa52c: 5020003a */ beqzl $at,.L0f0aa618
|
|
/* f0aa530: 03c0a825 */ or $s5,$s8,$zero
|
|
/* f0aa534: 10a00035 */ beqz $a1,.L0f0aa60c
|
|
/* f0aa538: 00000000 */ nop
|
|
/* f0aa53c: 06400032 */ bltz $s2,.L0f0aa608
|
|
/* f0aa540: 8faf00f8 */ lw $t7,0xf8($sp)
|
|
/* f0aa544: 51e0001c */ beqzl $t7,.L0f0aa5b8
|
|
/* f0aa548: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0aa54c: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0aa550: 02001025 */ or $v0,$s0,$zero
|
|
/* f0aa554: 26100008 */ addiu $s0,$s0,0x8
|
|
/* f0aa558: 01980019 */ multu $t4,$t8
|
|
/* f0aa55c: 0000c812 */ mflo $t9
|
|
/* f0aa560: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aa564: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0aa568: 0135c823 */ subu $t9,$t1,$s5
|
|
/* f0aa56c: 032b7021 */ addu $t6,$t9,$t3
|
|
/* f0aa570: 01eac025 */ or $t8,$t7,$t2
|
|
/* f0aa574: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aa578: 000fc880 */ sll $t9,$t7,0x2
|
|
/* f0aa57c: 03197025 */ or $t6,$t8,$t9
|
|
/* f0aa580: ac4e0000 */ sw $t6,0x0($v0)
|
|
/* f0aa584: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0aa588: 01af0019 */ multu $t5,$t7
|
|
/* f0aa58c: 01327823 */ subu $t7,$t1,$s2
|
|
/* f0aa590: 0000c012 */ mflo $t8
|
|
/* f0aa594: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0aa598: 00197380 */ sll $t6,$t9,0xe
|
|
/* f0aa59c: 01ebc021 */ addu $t8,$t7,$t3
|
|
/* f0aa5a0: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0aa5a4: 00197880 */ sll $t7,$t9,0x2
|
|
/* f0aa5a8: 01cfc025 */ or $t8,$t6,$t7
|
|
/* f0aa5ac: 10000016 */ b .L0f0aa608
|
|
/* f0aa5b0: ac580004 */ sw $t8,0x4($v0)
|
|
/* f0aa5b4: 8e790000 */ lw $t9,0x0($s3)
|
|
.L0f0aa5b8:
|
|
/* f0aa5b8: 02001025 */ or $v0,$s0,$zero
|
|
/* f0aa5bc: 26100008 */ addiu $s0,$s0,0x8
|
|
/* f0aa5c0: 01990019 */ multu $t4,$t9
|
|
/* f0aa5c4: 00007012 */ mflo $t6
|
|
/* f0aa5c8: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aa5cc: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aa5d0: 324e03ff */ andi $t6,$s2,0x3ff
|
|
/* f0aa5d4: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0aa5d8: 030ac825 */ or $t9,$t8,$t2
|
|
/* f0aa5dc: 032fc025 */ or $t8,$t9,$t7
|
|
/* f0aa5e0: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aa5e4: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aa5e8: 01ae0019 */ multu $t5,$t6
|
|
/* f0aa5ec: 32ae03ff */ andi $t6,$s5,0x3ff
|
|
/* f0aa5f0: 0000c812 */ mflo $t9
|
|
/* f0aa5f4: 332f03ff */ andi $t7,$t9,0x3ff
|
|
/* f0aa5f8: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aa5fc: 000ec880 */ sll $t9,$t6,0x2
|
|
/* f0aa600: 03197825 */ or $t7,$t8,$t9
|
|
/* f0aa604: ac4f0004 */ sw $t7,0x4($v0)
|
|
.L0f0aa608:
|
|
/* f0aa608: 03c0a825 */ or $s5,$s8,$zero
|
|
.L0f0aa60c:
|
|
/* f0aa60c: 10000003 */ b .L0f0aa61c
|
|
/* f0aa610: 01009025 */ or $s2,$t0,$zero
|
|
/* f0aa614: 03c0a825 */ or $s5,$s8,$zero
|
|
.L0f0aa618:
|
|
/* f0aa618: 2512ffff */ addiu $s2,$t0,-1
|
|
.L0f0aa61c:
|
|
/* f0aa61c: 10a00005 */ beqz $a1,.L0f0aa634
|
|
/* f0aa620: 02001025 */ or $v0,$s0,$zero
|
|
/* f0aa624: 3c0efa00 */ lui $t6,0xfa00
|
|
/* f0aa628: ac4e0000 */ sw $t6,0x0($v0)
|
|
/* f0aa62c: 26100008 */ addiu $s0,$s0,0x8
|
|
/* f0aa630: ac470004 */ sw $a3,0x4($v0)
|
|
.L0f0aa634:
|
|
/* f0aa634: 8fb80040 */ lw $t8,0x40($sp)
|
|
/* f0aa638: 8fb900f8 */ lw $t9,0xf8($sp)
|
|
/* f0aa63c: 0258082a */ slt $at,$s2,$t8
|
|
/* f0aa640: 14200004 */ bnez $at,.L0f0aa654
|
|
/* f0aa644: 2ac10002 */ slti $at,$s6,0x2
|
|
/* f0aa648: 54200003 */ bnezl $at,.L0f0aa658
|
|
/* f0aa64c: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aa650: 01209025 */ or $s2,$t1,$zero
|
|
.L0f0aa654:
|
|
/* f0aa654: 2ac10003 */ slti $at,$s6,0x3
|
|
.L0f0aa658:
|
|
/* f0aa658: 54200033 */ bnezl $at,.L0f0aa728
|
|
/* f0aa65c: 8fb800b4 */ lw $t8,0xb4($sp)
|
|
/* f0aa660: 5320001c */ beqzl $t9,.L0f0aa6d4
|
|
/* f0aa664: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aa668: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0aa66c: 02001025 */ or $v0,$s0,$zero
|
|
/* f0aa670: 26100008 */ addiu $s0,$s0,0x8
|
|
/* f0aa674: 018f0019 */ multu $t4,$t7
|
|
/* f0aa678: 00007012 */ mflo $t6
|
|
/* f0aa67c: 31d803ff */ andi $t8,$t6,0x3ff
|
|
/* f0aa680: 0018cb80 */ sll $t9,$t8,0xe
|
|
/* f0aa684: 01357023 */ subu $t6,$t1,$s5
|
|
/* f0aa688: 01cbc021 */ addu $t8,$t6,$t3
|
|
/* f0aa68c: 032a7825 */ or $t7,$t9,$t2
|
|
/* f0aa690: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0aa694: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0aa698: 01eec025 */ or $t8,$t7,$t6
|
|
/* f0aa69c: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aa6a0: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0aa6a4: 01b90019 */ multu $t5,$t9
|
|
/* f0aa6a8: 0132c823 */ subu $t9,$t1,$s2
|
|
/* f0aa6ac: 00007812 */ mflo $t7
|
|
/* f0aa6b0: 31ee03ff */ andi $t6,$t7,0x3ff
|
|
/* f0aa6b4: 000ec380 */ sll $t8,$t6,0xe
|
|
/* f0aa6b8: 032b7821 */ addu $t7,$t9,$t3
|
|
/* f0aa6bc: 31ee03ff */ andi $t6,$t7,0x3ff
|
|
/* f0aa6c0: 000ec880 */ sll $t9,$t6,0x2
|
|
/* f0aa6c4: 03197825 */ or $t7,$t8,$t9
|
|
/* f0aa6c8: 10000016 */ b .L0f0aa724
|
|
/* f0aa6cc: ac4f0004 */ sw $t7,0x4($v0)
|
|
/* f0aa6d0: 8e6e0000 */ lw $t6,0x0($s3)
|
|
.L0f0aa6d4:
|
|
/* f0aa6d4: 02001025 */ or $v0,$s0,$zero
|
|
/* f0aa6d8: 26100008 */ addiu $s0,$s0,0x8
|
|
/* f0aa6dc: 018e0019 */ multu $t4,$t6
|
|
/* f0aa6e0: 0000c012 */ mflo $t8
|
|
/* f0aa6e4: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0aa6e8: 00197b80 */ sll $t7,$t9,0xe
|
|
/* f0aa6ec: 325803ff */ andi $t8,$s2,0x3ff
|
|
/* f0aa6f0: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0aa6f4: 01ea7025 */ or $t6,$t7,$t2
|
|
/* f0aa6f8: 01d97825 */ or $t7,$t6,$t9
|
|
/* f0aa6fc: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0aa700: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0aa704: 01b80019 */ multu $t5,$t8
|
|
/* f0aa708: 32b803ff */ andi $t8,$s5,0x3ff
|
|
/* f0aa70c: 00007012 */ mflo $t6
|
|
/* f0aa710: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa714: 00197b80 */ sll $t7,$t9,0xe
|
|
/* f0aa718: 00187080 */ sll $t6,$t8,0x2
|
|
/* f0aa71c: 01eec825 */ or $t9,$t7,$t6
|
|
/* f0aa720: ac590004 */ sw $t9,0x4($v0)
|
|
.L0f0aa724:
|
|
/* f0aa724: 8fb800b4 */ lw $t8,0xb4($sp)
|
|
.L0f0aa728:
|
|
/* f0aa728: 26310001 */ addiu $s1,$s1,0x1
|
|
/* f0aa72c: 03d6f021 */ addu $s8,$s8,$s6
|
|
/* f0aa730: 1638ff1d */ bne $s1,$t8,.L0f0aa3a8
|
|
/* f0aa734: 01164021 */ addu $t0,$t0,$s6
|
|
/* f0aa738: afa70094 */ sw $a3,0x94($sp)
|
|
.L0f0aa73c:
|
|
/* f0aa73c: 3c138008 */ lui $s3,%hi(g_ScaleX)
|
|
/* f0aa740: 2ac10003 */ slti $at,$s6,0x3
|
|
/* f0aa744: 2673fac0 */ addiu $s3,$s3,%lo(g_ScaleX)
|
|
/* f0aa748: 10200033 */ beqz $at,.L0f0aa818
|
|
/* f0aa74c: 3c0af600 */ lui $t2,0xf600
|
|
/* f0aa750: 8faf00f8 */ lw $t7,0xf8($sp)
|
|
/* f0aa754: 51e0001c */ beqzl $t7,.L0f0aa7c8
|
|
/* f0aa758: 8e790000 */ lw $t9,0x0($s3)
|
|
/* f0aa75c: 8e6e0000 */ lw $t6,0x0($s3)
|
|
/* f0aa760: 02001025 */ or $v0,$s0,$zero
|
|
/* f0aa764: 26100008 */ addiu $s0,$s0,0x8
|
|
/* f0aa768: 018e0019 */ multu $t4,$t6
|
|
/* f0aa76c: 0000c812 */ mflo $t9
|
|
/* f0aa770: 333803ff */ andi $t8,$t9,0x3ff
|
|
/* f0aa774: 00187b80 */ sll $t7,$t8,0xe
|
|
/* f0aa778: 0135c823 */ subu $t9,$t1,$s5
|
|
/* f0aa77c: 032bc021 */ addu $t8,$t9,$t3
|
|
/* f0aa780: 01ea7025 */ or $t6,$t7,$t2
|
|
/* f0aa784: 330f03ff */ andi $t7,$t8,0x3ff
|
|
/* f0aa788: 000fc880 */ sll $t9,$t7,0x2
|
|
/* f0aa78c: 01d9c025 */ or $t8,$t6,$t9
|
|
/* f0aa790: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aa794: 8e6f0000 */ lw $t7,0x0($s3)
|
|
/* f0aa798: 01af0019 */ multu $t5,$t7
|
|
/* f0aa79c: 01327823 */ subu $t7,$t1,$s2
|
|
/* f0aa7a0: 00007012 */ mflo $t6
|
|
/* f0aa7a4: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa7a8: 0019c380 */ sll $t8,$t9,0xe
|
|
/* f0aa7ac: 01eb7021 */ addu $t6,$t7,$t3
|
|
/* f0aa7b0: 31d903ff */ andi $t9,$t6,0x3ff
|
|
/* f0aa7b4: 00197880 */ sll $t7,$t9,0x2
|
|
/* f0aa7b8: 030f7025 */ or $t6,$t8,$t7
|
|
/* f0aa7bc: 10000016 */ b .L0f0aa818
|
|
/* f0aa7c0: ac4e0004 */ sw $t6,0x4($v0)
|
|
/* f0aa7c4: 8e790000 */ lw $t9,0x0($s3)
|
|
.L0f0aa7c8:
|
|
/* f0aa7c8: 02001025 */ or $v0,$s0,$zero
|
|
/* f0aa7cc: 26100008 */ addiu $s0,$s0,0x8
|
|
/* f0aa7d0: 01990019 */ multu $t4,$t9
|
|
/* f0aa7d4: 0000c012 */ mflo $t8
|
|
/* f0aa7d8: 330f03ff */ andi $t7,$t8,0x3ff
|
|
/* f0aa7dc: 000f7380 */ sll $t6,$t7,0xe
|
|
/* f0aa7e0: 325803ff */ andi $t8,$s2,0x3ff
|
|
/* f0aa7e4: 00187880 */ sll $t7,$t8,0x2
|
|
/* f0aa7e8: 01cac825 */ or $t9,$t6,$t2
|
|
/* f0aa7ec: 032f7025 */ or $t6,$t9,$t7
|
|
/* f0aa7f0: ac4e0000 */ sw $t6,0x0($v0)
|
|
/* f0aa7f4: 8e780000 */ lw $t8,0x0($s3)
|
|
/* f0aa7f8: 01b80019 */ multu $t5,$t8
|
|
/* f0aa7fc: 32b803ff */ andi $t8,$s5,0x3ff
|
|
/* f0aa800: 0000c812 */ mflo $t9
|
|
/* f0aa804: 332f03ff */ andi $t7,$t9,0x3ff
|
|
/* f0aa808: 000f7380 */ sll $t6,$t7,0xe
|
|
/* f0aa80c: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0aa810: 01d97825 */ or $t7,$t6,$t9
|
|
/* f0aa814: ac4f0004 */ sw $t7,0x4($v0)
|
|
.L0f0aa818:
|
|
/* f0aa818: 0fc54e0e */ jal text0f153838
|
|
/* f0aa81c: 02002025 */ or $a0,$s0,$zero
|
|
/* f0aa820: 3c18b900 */ lui $t8,0xb900
|
|
/* f0aa824: 3c0e0050 */ lui $t6,0x50
|
|
/* f0aa828: 35ce41c8 */ ori $t6,$t6,0x41c8
|
|
/* f0aa82c: 3718031d */ ori $t8,$t8,0x31d
|
|
/* f0aa830: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0aa834: ac4e0004 */ sw $t6,0x4($v0)
|
|
/* f0aa838: 8fbf003c */ lw $ra,0x3c($sp)
|
|
/* f0aa83c: 8fbe0038 */ lw $s8,0x38($sp)
|
|
/* f0aa840: 8fb70034 */ lw $s7,0x34($sp)
|
|
/* f0aa844: 8fb60030 */ lw $s6,0x30($sp)
|
|
/* f0aa848: 8fb5002c */ lw $s5,0x2c($sp)
|
|
/* f0aa84c: 8fb40028 */ lw $s4,0x28($sp)
|
|
/* f0aa850: 8fb30024 */ lw $s3,0x24($sp)
|
|
/* f0aa854: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f0aa858: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f0aa85c: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f0aa860: 27bd00d0 */ addiu $sp,$sp,0xd0
|
|
/* f0aa864: 03e00008 */ jr $ra
|
|
/* f0aa868: 24420008 */ addiu $v0,$v0,0x8
|
|
);
|
|
#endif
|
|
|
|
/**
|
|
* Render an ammo gauge on the HUD.
|
|
*
|
|
* Ammo gauges can be displayed in two ways. If the capacity is less than 20,
|
|
* each bullet is displayed as a separate block with a gap between each. If the
|
|
* capacity is 20 or more, a single block covers the whole gauge and the block
|
|
* is partitioned into two (filled and empty).
|
|
*
|
|
* For the separated mode, a unit refers to a single bullet/block.
|
|
* For the merged mode, a unit refers to a single 1px high line in the gauge.
|
|
*/
|
|
// Mismatch: Regalloc (play with the if-statements near 3a8)
|
|
// Some potential clues:
|
|
// - gaugeheight variable can be removed and usages replaced with (y2 - y1)
|
|
// - (s32)ref can be made into a variable
|
|
// - At 278, asm effectively does y2 - y2 + y1, so a tmp variable is used to
|
|
// prevent optimising out the y2s
|
|
// - Unsigned comparison at fadeamount > 255U
|
|
// - There are several callee-save registers (s2, s5, s8) which can either be
|
|
// variables or used by the compiler to hold expressions that are used several
|
|
// times. Below, s2 is a variable while s5 and s8 are inline expressions.
|
|
//Gfx *bgunRenderHudGauge(Gfx *gdl, s32 x1, s32 y1, s32 x2, s32 y2, struct abmag *abmag, s32 remaining, s32 capacity, u32 emptycolour, u32 filledcolour, bool flip)
|
|
//{
|
|
// s32 gaugeheight = y2 - y1; // s2
|
|
// s32 unitheight;
|
|
// s32 remainder1;
|
|
// s32 remainder2;
|
|
// s32 gaugetop; // bc
|
|
// f32 ref; // b8
|
|
// s32 numunits = capacity; // b4 = s1
|
|
// s32 i;
|
|
//
|
|
// // 020
|
|
// bgun0f0a9da8(abmag, remaining, capacity, gaugeheight);
|
|
//
|
|
// if (capacity > 20) {
|
|
// // Use a single merged bar
|
|
// ref = abmag->ref;
|
|
// unitheight = 1;
|
|
// numunits = gaugeheight;
|
|
// gaugetop = y2 - gaugeheight;
|
|
// } else {
|
|
// // 05c
|
|
// // Use a separate block for each bullet
|
|
// ref = abmag->ref;
|
|
// unitheight = gaugeheight / capacity;
|
|
// remainder1 = unitheight * capacity - gaugeheight;
|
|
// remainder2 = (unitheight + 1) * capacity - gaugeheight;
|
|
//
|
|
// if (remainder1 < 0) {
|
|
// remainder1 = -remainder1;
|
|
// }
|
|
//
|
|
// if (remainder2 < 0) {
|
|
// remainder2 = -remainder2;
|
|
// }
|
|
//
|
|
// if (remainder2 < remainder1) {
|
|
// unitheight++;
|
|
// }
|
|
//
|
|
// gaugetop = y2 - unitheight * capacity + 1;
|
|
//
|
|
// if (unitheight <= 2) {
|
|
// gaugetop--;
|
|
// }
|
|
// }
|
|
//
|
|
// // 104
|
|
// if (unitheight == 0) {
|
|
// /**
|
|
// * Using separate blocks, but the clip capacity is more than the gauge
|
|
// * height meaning each block is less than 1px. This is impossible
|
|
// * because the gauge switches modes away from separate blocks at 20,
|
|
// * therefore this code is unreachable.
|
|
// *
|
|
// * This code renders the gauge in the merged style, but uses 1px per
|
|
// * bullet and truncates the gauge at the gaugetop if needed. This is
|
|
// * clearly an early revision of the code, as it is visually misleading
|
|
// * and also lacks the transition effect.
|
|
// */
|
|
// s32 partitiony;
|
|
// s32 tmp;
|
|
//
|
|
// gaugeheight = y2 - gaugetop;
|
|
// partitiony = y2 - gaugeheight * ref / numunits;
|
|
// tmp = y2;
|
|
//
|
|
// // 150
|
|
// if (partitiony > gaugetop) {
|
|
// // Render empty partition
|
|
// gdl = textSetPrimColour(gdl, emptycolour);
|
|
//
|
|
// if (flip) {
|
|
// gDPFillRectangleScaled(gdl++, x1, y2 - partitiony + y1, x2, gaugeheight + y1);
|
|
// } else {
|
|
// gDPFillRectangleScaled(gdl++, x1, gaugetop, x2, partitiony);
|
|
// }
|
|
//
|
|
// gdl = text0f153838(gdl);
|
|
// }
|
|
//
|
|
// // 25c
|
|
// // Render filled partition
|
|
// gdl = textSetPrimColour(gdl, filledcolour);
|
|
//
|
|
// // 278
|
|
// if (flip) {
|
|
// gDPFillRectangleScaled(gdl++, x1, y2 - tmp + y1, x2, y2 - partitiony + y1);
|
|
// } else {
|
|
// // 2e4
|
|
// gDPFillRectangleScaled(gdl++, x1, partitiony, x2, y2);
|
|
// }
|
|
// } else {
|
|
// // 338
|
|
// u32 colour;
|
|
// s32 unittop;
|
|
// s32 unitbottom;
|
|
//
|
|
// gdl = textSetPrimColour(gdl, emptycolour);
|
|
//
|
|
// unittop = gaugetop; // s5
|
|
// unitbottom = -1;
|
|
//
|
|
// for (i = 0; i < numunits; i++) {
|
|
// // 3a8
|
|
// bool newstate = false;
|
|
//
|
|
// //if (gaugetop + i * unitheight);
|
|
// //if (abmag);
|
|
// if (capacity);
|
|
//
|
|
// // 3b0
|
|
// if (abmag->change > 0) {
|
|
// // Loading or reloading
|
|
// // 3bc
|
|
// if (i >= numunits - (s32)ref - abmag->change && i < numunits - (s32)ref) {
|
|
// // Unit is potentially unsettled
|
|
// s32 fadeamount = abmag->timer60 - (numunits - (s32)ref - i - 1) * 64;
|
|
//
|
|
// // 3e0
|
|
// if (fadeamount >= 0) {
|
|
// if (fadeamount >= 64) {
|
|
// // Unit is transitioning to filled
|
|
// u32 weight = (fadeamount * 4 - 252) / 3;
|
|
//
|
|
// if (weight > 255) {
|
|
// weight = 255;
|
|
// }
|
|
//
|
|
// colour = colourBlend(filledcolour, 0xffffffbf, weight);
|
|
// } else {
|
|
// // Unit is bright and has not started transitioning to filled yet
|
|
// colour = colourBlend(0xffffffbf, emptycolour, fadeamount * 4);
|
|
// }
|
|
//
|
|
// newstate = true;
|
|
// }
|
|
// }
|
|
// } else /*478*/ if (abmag->change < 0) {
|
|
// // Firing
|
|
// if (i < numunits - (s32)ref - abmag->change && i >= numunits - (s32)ref) {
|
|
// s32 fadeamount = abmag->timer60 - (i - numunits + (s32)ref) * 64;
|
|
//
|
|
// // 48c
|
|
// if (fadeamount >= 0) {
|
|
// if (fadeamount > 255U) {
|
|
// colour = emptycolour;
|
|
// } else {
|
|
// // Unit was recently emptied
|
|
// colour = colourBlend(emptycolour, filledcolour | 0xff, fadeamount);
|
|
// }
|
|
//
|
|
// newstate = true;
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// // 4fc
|
|
// // Special case for units which are one after the last one being
|
|
// // faded. I think their colour is calculated incorrectly by the code
|
|
// // above and this is resetting them to the normal filled colour.
|
|
// if (abmag->change < 0) {
|
|
// // Firing
|
|
// if (i == numunits - (s32)ref - abmag->change) {
|
|
// colour = filledcolour;
|
|
// newstate = true;
|
|
// }
|
|
// } else {
|
|
// // 51c
|
|
// if (i == numunits - (s32)ref) {
|
|
// colour = filledcolour;
|
|
// newstate = true;
|
|
// }
|
|
// }
|
|
//
|
|
// // 52c
|
|
// // Calculate unittop and unitbottom. For merged gauges keep unittop
|
|
// // as it is if possible, so the empty and filled partitions can be
|
|
// // drawn whenever the state is changed in order to save gfx calls.
|
|
// if (unitheight <= 2) {
|
|
// // 534
|
|
// if (newstate) {
|
|
// // 53c
|
|
// if (unitbottom >= 0) {
|
|
// // Render empty or transitioning unit of merged gauge
|
|
// // 544
|
|
// if (flip) {
|
|
// gDPFillRectangleScaled(gdl++, x1, y2 - unitbottom + y1, x2, y2 - unittop + y1);
|
|
// } else {
|
|
// // 5b4
|
|
// gDPFillRectangleScaled(gdl++, x1, unittop, x2, unitbottom);
|
|
// }
|
|
// }
|
|
//
|
|
// unittop = gaugetop + i * unitheight;
|
|
// }
|
|
//
|
|
// unitbottom = gaugetop + i * unitheight + unitheight;
|
|
// } else {
|
|
// // 614
|
|
// // Separate blocks - reduce unitbottom by 1 to make a gap
|
|
// unittop = gaugetop + i * unitheight;
|
|
// unitbottom = gaugetop + i * unitheight + unitheight - 1;
|
|
// }
|
|
//
|
|
// // 61c
|
|
// if (newstate) {
|
|
// gDPSetPrimColorViaWord(gdl++, 0, 0, colour);
|
|
// }
|
|
//
|
|
// // 640
|
|
// // For separate blocks, clip the unit bottom to the bottom of the gauge
|
|
// if (unitbottom >= y2 - 1 && unitheight >= 2) {
|
|
// unitbottom = y2;
|
|
// }
|
|
//
|
|
// // 658
|
|
// // Render separated blocks
|
|
// if (unitheight >= 3) {
|
|
// // 660
|
|
// if (flip) {
|
|
// gDPFillRectangleScaled(gdl++, x1, y2 - unitbottom + y1, x2, y2 - unittop + y1);
|
|
// } else {
|
|
// // 6d0
|
|
// gDPFillRectangleScaled(gdl++, x1, unittop, x2, unitbottom);
|
|
// }
|
|
// }
|
|
// } // end loop
|
|
//
|
|
// // For merged gauges, render the final partition
|
|
// if (unitheight <= 2) {
|
|
// s32 stack;
|
|
//
|
|
// // 754
|
|
// if (flip) {
|
|
// gDPFillRectangleScaled(gdl++, x1, y2 - unitbottom + y1, x2, y2 - unittop + y1);
|
|
// } else {
|
|
// // 7c4
|
|
// gDPFillRectangleScaled(gdl++, x1, unittop, x2, unitbottom);
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// gdl = text0f153838(gdl);
|
|
//
|
|
// gDPSetRenderMode(gdl++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2);
|
|
//
|
|
// return gdl;
|
|
//}
|
|
|
|
#if VERSION == VERSION_JPN_FINAL
|
|
GLOBAL_ASM(
|
|
glabel bgunRenderHud
|
|
/* f0aa86c: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
|
|
/* f0aa870: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
|
|
/* f0aa874: 27bdfed0 */ addiu $sp,$sp,-304
|
|
/* f0aa878: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f0aa87c: afa40130 */ sw $a0,0x130($sp)
|
|
/* f0aa880: 0c002f44 */ jal viGetViewTop
|
|
/* f0aa884: afae012c */ sw $t6,0x12c($sp)
|
|
/* f0aa888: 0c002f26 */ jal viGetViewHeight
|
|
/* f0aa88c: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0aa890: 87af0076 */ lh $t7,0x76($sp)
|
|
/* f0aa894: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0aa898: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0aa89c: 8d0e006c */ lw $t6,0x6c($t0)
|
|
/* f0aa8a0: 004fc021 */ addu $t8,$v0,$t7
|
|
/* f0aa8a4: 2719fff3 */ addiu $t9,$t8,-13
|
|
/* f0aa8a8: 11c00003 */ beqz $t6,.L0f0aa8b8
|
|
/* f0aa8ac: afb90128 */ sw $t9,0x128($sp)
|
|
/* f0aa8b0: 10000002 */ b .L0f0aa8bc
|
|
/* f0aa8b4: 24060001 */ addiu $a2,$zero,0x1
|
|
.L0f0aa8b8:
|
|
/* f0aa8b8: 00003025 */ or $a2,$zero,$zero
|
|
.L0f0aa8bc:
|
|
/* f0aa8bc: 8d0f0068 */ lw $t7,0x68($t0)
|
|
/* f0aa8c0: 00001825 */ or $v1,$zero,$zero
|
|
/* f0aa8c4: 00002825 */ or $a1,$zero,$zero
|
|
/* f0aa8c8: 11e00003 */ beqz $t7,.L0f0aa8d8
|
|
/* f0aa8cc: 00001025 */ or $v0,$zero,$zero
|
|
/* f0aa8d0: 10000001 */ b .L0f0aa8d8
|
|
/* f0aa8d4: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f0aa8d8:
|
|
/* f0aa8d8: 8d180064 */ lw $t8,0x64($t0)
|
|
/* f0aa8dc: 13000003 */ beqz $t8,.L0f0aa8ec
|
|
/* f0aa8e0: 00000000 */ nop
|
|
/* f0aa8e4: 10000001 */ b .L0f0aa8ec
|
|
/* f0aa8e8: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f0aa8ec:
|
|
/* f0aa8ec: 8d190070 */ lw $t9,0x70($t0)
|
|
/* f0aa8f0: 13200003 */ beqz $t9,.L0f0aa900
|
|
/* f0aa8f4: 00000000 */ nop
|
|
/* f0aa8f8: 10000001 */ b .L0f0aa900
|
|
/* f0aa8fc: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0aa900:
|
|
/* f0aa900: 8d18028c */ lw $t8,0x28c($t0)
|
|
/* f0aa904: 00457021 */ addu $t6,$v0,$a1
|
|
/* f0aa908: 01c37821 */ addu $t7,$t6,$v1
|
|
/* f0aa90c: afb80120 */ sw $t8,0x120($sp)
|
|
/* f0aa910: 8fb8012c */ lw $t8,0x12c($sp)
|
|
/* f0aa914: 01e63821 */ addu $a3,$t7,$a2
|
|
/* f0aa918: 24190009 */ addiu $t9,$zero,0x9
|
|
/* f0aa91c: 240e0024 */ addiu $t6,$zero,0x24
|
|
/* f0aa920: 240f0039 */ addiu $t7,$zero,0x39
|
|
/* f0aa924: afa70124 */ sw $a3,0x124($sp)
|
|
/* f0aa928: afa00110 */ sw $zero,0x110($sp)
|
|
/* f0aa92c: afb9010c */ sw $t9,0x10c($sp)
|
|
/* f0aa930: afae0108 */ sw $t6,0x108($sp)
|
|
/* f0aa934: afaf0104 */ sw $t7,0x104($sp)
|
|
/* f0aa938: 83041580 */ lb $a0,0x1580($t8)
|
|
/* f0aa93c: 0fc2c3f4 */ jal weaponFindById
|
|
/* f0aa940: afa70060 */ sw $a3,0x60($sp)
|
|
/* f0aa944: 8fb9012c */ lw $t9,0x12c($sp)
|
|
/* f0aa948: afa200fc */ sw $v0,0xfc($sp)
|
|
/* f0aa94c: 3c03800a */ lui $v1,%hi(g_Vars)
|
|
/* f0aa950: 8f2e00d8 */ lw $t6,0xd8($t9)
|
|
/* f0aa954: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
|
|
/* f0aa958: 51c00004 */ beqzl $t6,.L0f0aa96c
|
|
/* f0aa95c: 8c6f0284 */ lw $t7,0x284($v1)
|
|
/* f0aa960: 10000457 */ b .L0f0abac0
|
|
/* f0aa964: 8fa20130 */ lw $v0,0x130($sp)
|
|
/* f0aa968: 8c6f0284 */ lw $t7,0x284($v1)
|
|
.L0f0aa96c:
|
|
/* f0aa96c: 8df81580 */ lw $t8,0x1580($t7)
|
|
/* f0aa970: 33190001 */ andi $t9,$t8,0x1
|
|
/* f0aa974: 53200004 */ beqzl $t9,.L0f0aa988
|
|
/* f0aa978: 8c6e000c */ lw $t6,0xc($v1)
|
|
/* f0aa97c: 10000450 */ b .L0f0abac0
|
|
/* f0aa980: 8fa20130 */ lw $v0,0x130($sp)
|
|
/* f0aa984: 8c6e000c */ lw $t6,0xc($v1)
|
|
.L0f0aa988:
|
|
/* f0aa988: 3c0f8007 */ lui $t7,%hi(g_ViRes)
|
|
/* f0aa98c: 29c10005 */ slti $at,$t6,0x5
|
|
/* f0aa990: 10200003 */ beqz $at,.L0f0aa9a0
|
|
/* f0aa994: 00000000 */ nop
|
|
/* f0aa998: 10000449 */ b .L0f0abac0
|
|
/* f0aa99c: 8fa20130 */ lw $v0,0x130($sp)
|
|
.L0f0aa9a0:
|
|
/* f0aa9a0: 8def06c8 */ lw $t7,%lo(g_ViRes)($t7)
|
|
/* f0aa9a4: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0aa9a8: 144f0004 */ bne $v0,$t7,.L0f0aa9bc
|
|
/* f0aa9ac: 24180002 */ addiu $t8,$zero,0x2
|
|
/* f0aa9b0: 3c018008 */ lui $at,%hi(g_ScaleX)
|
|
/* f0aa9b4: 10000003 */ b .L0f0aa9c4
|
|
/* f0aa9b8: ac38fac0 */ sw $t8,%lo(g_ScaleX)($at)
|
|
.L0f0aa9bc:
|
|
/* f0aa9bc: 3c018008 */ lui $at,%hi(g_ScaleX)
|
|
/* f0aa9c0: ac22fac0 */ sw $v0,%lo(g_ScaleX)($at)
|
|
.L0f0aa9c4:
|
|
/* f0aa9c4: 0fc54d8a */ jal text0f153628
|
|
/* f0aa9c8: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aa9cc: 8fb90060 */ lw $t9,0x60($sp)
|
|
/* f0aa9d0: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0aa9d4: 2b210002 */ slti $at,$t9,0x2
|
|
/* f0aa9d8: 1420002a */ bnez $at,.L0f0aaa84
|
|
/* f0aa9dc: 240e0005 */ addiu $t6,$zero,0x5
|
|
/* f0aa9e0: 240f001a */ addiu $t7,$zero,0x1a
|
|
/* f0aa9e4: 2418002f */ addiu $t8,$zero,0x2f
|
|
/* f0aa9e8: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0aa9ec: afae010c */ sw $t6,0x10c($sp)
|
|
/* f0aa9f0: afaf0108 */ sw $t7,0x108($sp)
|
|
/* f0aa9f4: 17210015 */ bne $t9,$at,.L0f0aaa4c
|
|
/* f0aa9f8: afb80104 */ sw $t8,0x104($sp)
|
|
/* f0aa9fc: 3c0e8009 */ lui $t6,%hi(g_Is4Mb)
|
|
/* f0aaa00: 91ce0af0 */ lbu $t6,%lo(g_Is4Mb)($t6)
|
|
/* f0aaa04: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0aaa08: 51c10009 */ beql $t6,$at,.L0f0aaa30
|
|
/* f0aaa0c: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0aaa10: 0fc54bcd */ jal optionsGetScreenSplit
|
|
/* f0aaa14: 00000000 */ nop
|
|
/* f0aaa18: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0aaa1c: 10410007 */ beq $v0,$at,.L0f0aaa3c
|
|
/* f0aaa20: 8faf0120 */ lw $t7,0x120($sp)
|
|
/* f0aaa24: 55e00006 */ bnezl $t7,.L0f0aaa40
|
|
/* f0aaa28: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0aaa2c: 8fb80128 */ lw $t8,0x128($sp)
|
|
.L0f0aaa30:
|
|
/* f0aaa30: 2719000a */ addiu $t9,$t8,0xa
|
|
/* f0aaa34: 10000019 */ b .L0f0aaa9c
|
|
/* f0aaa38: afb90128 */ sw $t9,0x128($sp)
|
|
.L0f0aaa3c:
|
|
/* f0aaa3c: 8fae0128 */ lw $t6,0x128($sp)
|
|
.L0f0aaa40:
|
|
/* f0aaa40: 25cf0002 */ addiu $t7,$t6,0x2
|
|
/* f0aaa44: 10000015 */ b .L0f0aaa9c
|
|
/* f0aaa48: afaf0128 */ sw $t7,0x128($sp)
|
|
.L0f0aaa4c:
|
|
/* f0aaa4c: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0aaa50: 8fb90120 */ lw $t9,0x120($sp)
|
|
/* f0aaa54: 2b010003 */ slti $at,$t8,0x3
|
|
/* f0aaa58: 14200010 */ bnez $at,.L0f0aaa9c
|
|
/* f0aaa5c: 2b210002 */ slti $at,$t9,0x2
|
|
/* f0aaa60: 10200005 */ beqz $at,.L0f0aaa78
|
|
/* f0aaa64: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0aaa68: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0aaa6c: 25cf000a */ addiu $t7,$t6,0xa
|
|
/* f0aaa70: 1000000a */ b .L0f0aaa9c
|
|
/* f0aaa74: afaf0128 */ sw $t7,0x128($sp)
|
|
.L0f0aaa78:
|
|
/* f0aaa78: 27190002 */ addiu $t9,$t8,0x2
|
|
/* f0aaa7c: 10000007 */ b .L0f0aaa9c
|
|
/* f0aaa80: afb90128 */ sw $t9,0x128($sp)
|
|
.L0f0aaa84:
|
|
/* f0aaa84: 0fc54b60 */ jal optionsGetEffectiveScreenSize
|
|
/* f0aaa88: 00000000 */ nop
|
|
/* f0aaa8c: 10400003 */ beqz $v0,.L0f0aaa9c
|
|
/* f0aaa90: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0aaa94: 25cf0008 */ addiu $t7,$t6,0x8
|
|
/* f0aaa98: afaf0128 */ sw $t7,0x128($sp)
|
|
.L0f0aaa9c:
|
|
/* f0aaa9c: 8fa2012c */ lw $v0,0x12c($sp)
|
|
/* f0aaaa0: 3c18ff00 */ lui $t8,0xff00
|
|
/* f0aaaa4: 3c0e800a */ lui $t6,%hi(g_Vars+0x34)
|
|
/* f0aaaa8: 8dce9ff4 */ lw $t6,%lo(g_Vars+0x34)($t6)
|
|
/* f0aaaac: 37180040 */ ori $t8,$t8,0x40
|
|
/* f0aaab0: afb800f4 */ sw $t8,0xf4($sp)
|
|
/* f0aaab4: 9059063b */ lbu $t9,0x63b($v0)
|
|
/* f0aaab8: 24420638 */ addiu $v0,$v0,0x638
|
|
/* f0aaabc: 000e7840 */ sll $t7,$t6,0x1
|
|
/* f0aaac0: afaf00ec */ sw $t7,0xec($sp)
|
|
/* f0aaac4: afa2005c */ sw $v0,0x5c($sp)
|
|
/* f0aaac8: 27a400dc */ addiu $a0,$sp,0xdc
|
|
/* f0aaacc: 00002825 */ or $a1,$zero,$zero
|
|
/* f0aaad0: 0fc26313 */ jal bgunGetWeaponInfo
|
|
/* f0aaad4: afb900f0 */ sw $t9,0xf0($sp)
|
|
/* f0aaad8: 0fc2a31f */ jal bgunIsUsingSecondaryFunction
|
|
/* f0aaadc: 00000000 */ nop
|
|
/* f0aaae0: afa200e8 */ sw $v0,0xe8($sp)
|
|
/* f0aaae4: 00402025 */ or $a0,$v0,$zero
|
|
/* f0aaae8: 27a500dc */ addiu $a1,$sp,0xdc
|
|
/* f0aaaec: 0fc26328 */ jal bgun0f098ca0
|
|
/* f0aaaf0: 8fa6005c */ lw $a2,0x5c($sp)
|
|
/* f0aaaf4: 04400003 */ bltz $v0,.L0f0aab04
|
|
/* f0aaaf8: 00000000 */ nop
|
|
/* f0aaafc: 8fb800e8 */ lw $t8,0xe8($sp)
|
|
/* f0aab00: afb800f0 */ sw $t8,0xf0($sp)
|
|
.L0f0aab04:
|
|
/* f0aab04: 0c002f40 */ jal viGetViewLeft
|
|
/* f0aab08: 00000000 */ nop
|
|
/* f0aab0c: 0c002f22 */ jal viGetViewWidth
|
|
/* f0aab10: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0aab14: 87b90076 */ lh $t9,0x76($sp)
|
|
/* f0aab18: 3c0f8008 */ lui $t7,%hi(g_ScaleX)
|
|
/* f0aab1c: 8deffac0 */ lw $t7,%lo(g_ScaleX)($t7)
|
|
/* f0aab20: 00597021 */ addu $t6,$v0,$t9
|
|
/* f0aab24: 8fb9010c */ lw $t9,0x10c($sp)
|
|
/* f0aab28: 01cf001a */ div $zero,$t6,$t7
|
|
/* f0aab2c: 15e00002 */ bnez $t7,.L0f0aab38
|
|
/* f0aab30: 00000000 */ nop
|
|
/* f0aab34: 0007000d */ break 0x7
|
|
.L0f0aab38:
|
|
/* f0aab38: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0aab3c: 15e10004 */ bne $t7,$at,.L0f0aab50
|
|
/* f0aab40: 3c018000 */ lui $at,0x8000
|
|
/* f0aab44: 15c10002 */ bne $t6,$at,.L0f0aab50
|
|
/* f0aab48: 00000000 */ nop
|
|
/* f0aab4c: 0006000d */ break 0x6
|
|
.L0f0aab50:
|
|
/* f0aab50: 0000c012 */ mflo $t8
|
|
/* f0aab54: 03197023 */ subu $t6,$t8,$t9
|
|
/* f0aab58: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0aab5c: 25cfffe8 */ addiu $t7,$t6,-24
|
|
/* f0aab60: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0aab64: 1701000f */ bne $t8,$at,.L0f0aaba4
|
|
/* f0aab68: afaf0100 */ sw $t7,0x100($sp)
|
|
/* f0aab6c: 0fc54bcd */ jal optionsGetScreenSplit
|
|
/* f0aab70: 00000000 */ nop
|
|
/* f0aab74: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f0aab78: 10e20004 */ beq $a3,$v0,.L0f0aab8c
|
|
/* f0aab7c: 3c198009 */ lui $t9,%hi(g_Is4Mb)
|
|
/* f0aab80: 93390af0 */ lbu $t9,%lo(g_Is4Mb)($t9)
|
|
/* f0aab84: 54f90008 */ bnel $a3,$t9,.L0f0aaba8
|
|
/* f0aab88: 8fb90060 */ lw $t9,0x60($sp)
|
|
.L0f0aab8c:
|
|
/* f0aab8c: 8fae0120 */ lw $t6,0x120($sp)
|
|
/* f0aab90: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0aab94: 15c00003 */ bnez $t6,.L0f0aaba4
|
|
/* f0aab98: 25f8000f */ addiu $t8,$t7,0xf
|
|
/* f0aab9c: 1000000b */ b .L0f0aabcc
|
|
/* f0aaba0: afb80100 */ sw $t8,0x100($sp)
|
|
.L0f0aaba4:
|
|
/* f0aaba4: 8fb90060 */ lw $t9,0x60($sp)
|
|
.L0f0aaba8:
|
|
/* f0aaba8: 8fae0120 */ lw $t6,0x120($sp)
|
|
/* f0aabac: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f0aabb0: 2b210003 */ slti $at,$t9,0x3
|
|
/* f0aabb4: 14200005 */ bnez $at,.L0f0aabcc
|
|
/* f0aabb8: 31cf0001 */ andi $t7,$t6,0x1
|
|
/* f0aabbc: 15e00003 */ bnez $t7,.L0f0aabcc
|
|
/* f0aabc0: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aabc4: 2719000f */ addiu $t9,$t8,0xf
|
|
/* f0aabc8: afb90100 */ sw $t9,0x100($sp)
|
|
.L0f0aabcc:
|
|
/* f0aabcc: 8fa600f0 */ lw $a2,0xf0($sp)
|
|
/* f0aabd0: 8faa012c */ lw $t2,0x12c($sp)
|
|
/* f0aabd4: 54c70014 */ bnel $a2,$a3,.L0f0aac28
|
|
/* f0aabd8: 8faa012c */ lw $t2,0x12c($sp)
|
|
/* f0aabdc: 914215e7 */ lbu $v0,0x15e7($t2)
|
|
/* f0aabe0: 254a1580 */ addiu $t2,$t2,0x1580
|
|
/* f0aabe4: 284100ff */ slti $at,$v0,0xff
|
|
/* f0aabe8: 1020000e */ beqz $at,.L0f0aac24
|
|
/* f0aabec: 28410080 */ slti $at,$v0,0x80
|
|
/* f0aabf0: 10200003 */ beqz $at,.L0f0aac00
|
|
/* f0aabf4: 240e0080 */ addiu $t6,$zero,0x80
|
|
/* f0aabf8: a14e0067 */ sb $t6,0x67($t2)
|
|
/* f0aabfc: 31c200ff */ andi $v0,$t6,0xff
|
|
.L0f0aac00:
|
|
/* f0aac00: 8faf00ec */ lw $t7,0xec($sp)
|
|
/* f0aac04: 241800ff */ addiu $t8,$zero,0xff
|
|
/* f0aac08: 004f1821 */ addu $v1,$v0,$t7
|
|
/* f0aac0c: 28610100 */ slti $at,$v1,0x100
|
|
/* f0aac10: 54200004 */ bnezl $at,.L0f0aac24
|
|
/* f0aac14: a1430067 */ sb $v1,0x67($t2)
|
|
/* f0aac18: 10000002 */ b .L0f0aac24
|
|
/* f0aac1c: a1580067 */ sb $t8,0x67($t2)
|
|
/* f0aac20: a1430067 */ sb $v1,0x67($t2)
|
|
.L0f0aac24:
|
|
/* f0aac24: 8faa012c */ lw $t2,0x12c($sp)
|
|
.L0f0aac28:
|
|
/* f0aac28: 254a1580 */ addiu $t2,$t2,0x1580
|
|
/* f0aac2c: 14c0000a */ bnez $a2,.L0f0aac58
|
|
/* f0aac30: 91420067 */ lbu $v0,0x67($t2)
|
|
/* f0aac34: 18400008 */ blez $v0,.L0f0aac58
|
|
/* f0aac38: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0aac3c: 00591823 */ subu $v1,$v0,$t9
|
|
/* f0aac40: 04610004 */ bgez $v1,.L0f0aac54
|
|
/* f0aac44: 306200ff */ andi $v0,$v1,0xff
|
|
/* f0aac48: a1400067 */ sb $zero,0x67($t2)
|
|
/* f0aac4c: 10000002 */ b .L0f0aac58
|
|
/* f0aac50: 300200ff */ andi $v0,$zero,0xff
|
|
.L0f0aac54:
|
|
/* f0aac54: a1430067 */ sb $v1,0x67($t2)
|
|
.L0f0aac58:
|
|
/* f0aac58: 28410081 */ slti $at,$v0,0x81
|
|
/* f0aac5c: 14200007 */ bnez $at,.L0f0aac7c
|
|
/* f0aac60: 00027040 */ sll $t6,$v0,0x1
|
|
/* f0aac64: 25cfff00 */ addiu $t7,$t6,-256
|
|
/* f0aac68: 3c01ff00 */ lui $at,0xff00
|
|
/* f0aac6c: 34210040 */ ori $at,$at,0x40
|
|
/* f0aac70: 000fc400 */ sll $t8,$t7,0x10
|
|
/* f0aac74: 0301c825 */ or $t9,$t8,$at
|
|
/* f0aac78: afb900f4 */ sw $t9,0xf4($sp)
|
|
.L0f0aac7c:
|
|
/* f0aac7c: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aac80: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f0aac84: 0fc54df7 */ jal textSetPrimColour
|
|
/* f0aac88: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aac8c: 3c068008 */ lui $a2,%hi(g_ScaleX)
|
|
/* f0aac90: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0aac94: 24c6fac0 */ addiu $a2,$a2,%lo(g_ScaleX)
|
|
/* f0aac98: 8cd90000 */ lw $t9,0x0($a2)
|
|
/* f0aac9c: 25f8fffe */ addiu $t8,$t7,-2
|
|
/* f0aaca0: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f0aaca4: 03190019 */ multu $t8,$t9
|
|
/* f0aaca8: 3c01f600 */ lui $at,0xf600
|
|
/* f0aacac: 30a303ff */ andi $v1,$a1,0x3ff
|
|
/* f0aacb0: 00037080 */ sll $t6,$v1,0x2
|
|
/* f0aacb4: 01c01825 */ or $v1,$t6,$zero
|
|
/* f0aacb8: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0aacbc: 00007012 */ mflo $t6
|
|
/* f0aacc0: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aacc4: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aacc8: 0301c825 */ or $t9,$t8,$at
|
|
/* f0aaccc: 03237025 */ or $t6,$t9,$v1
|
|
/* f0aacd0: ac4e0000 */ sw $t6,0x0($v0)
|
|
/* f0aacd4: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0aacd8: 8cd90000 */ lw $t9,0x0($a2)
|
|
/* f0aacdc: 25f8fff3 */ addiu $t8,$t7,-13
|
|
/* f0aace0: 03190019 */ multu $t8,$t9
|
|
/* f0aace4: 24b9fff5 */ addiu $t9,$a1,-11
|
|
/* f0aace8: 00007012 */ mflo $t6
|
|
/* f0aacec: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aacf0: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aacf4: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aacf8: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0aacfc: 030fc825 */ or $t9,$t8,$t7
|
|
/* f0aad00: ac590004 */ sw $t9,0x4($v0)
|
|
/* f0aad04: 0fc54e0e */ jal text0f153838
|
|
/* f0aad08: afa30060 */ sw $v1,0x60($sp)
|
|
/* f0aad0c: 3c0e800a */ lui $t6,%hi(g_Vars+0x288)
|
|
/* f0aad10: 8dcea248 */ lw $t6,%lo(g_Vars+0x288)($t6)
|
|
/* f0aad14: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0aad18: 0fc54a16 */ jal optionsGetShowGunFunction
|
|
/* f0aad1c: 8dc40070 */ lw $a0,0x70($t6)
|
|
/* f0aad20: 10400163 */ beqz $v0,.L0f0ab2b0
|
|
/* f0aad24: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aad28: 8fb8005c */ lw $t8,0x5c($sp)
|
|
/* f0aad2c: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0aad30: 93040000 */ lbu $a0,0x0($t8)
|
|
/* f0aad34: 0fc2c401 */ jal weaponGetFunctionById
|
|
/* f0aad38: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aad3c: 0fc44bd4 */ jal invGetCurrentIndex
|
|
/* f0aad40: afa200bc */ sw $v0,0xbc($sp)
|
|
/* f0aad44: 0fc44b3e */ jal invGetNameIdByIndex
|
|
/* f0aad48: 00402025 */ or $a0,$v0,$zero
|
|
/* f0aad4c: 00402025 */ or $a0,$v0,$zero
|
|
/* f0aad50: 0fc5b9f1 */ jal langGet
|
|
/* f0aad54: a7a200ba */ sh $v0,0xba($sp)
|
|
/* f0aad58: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aad5c: 97a300ba */ lhu $v1,0xba($sp)
|
|
/* f0aad60: 00403025 */ or $a2,$v0,$zero
|
|
/* f0aad64: 954f0072 */ lhu $t7,0x72($t2)
|
|
/* f0aad68: 3c02800a */ lui $v0,%hi(g_Vars+0x38)
|
|
/* f0aad6c: 27a400c4 */ addiu $a0,$sp,0xc4
|
|
/* f0aad70: 106f0003 */ beq $v1,$t7,.L0f0aad80
|
|
/* f0aad74: 27a500c0 */ addiu $a1,$sp,0xc0
|
|
/* f0aad78: a140006f */ sb $zero,0x6f($t2)
|
|
/* f0aad7c: a5430072 */ sh $v1,0x72($t2)
|
|
.L0f0aad80:
|
|
/* f0aad80: 9143006f */ lbu $v1,0x6f($t2)
|
|
/* f0aad84: 3c078008 */ lui $a3,%hi(g_CharsHandelGothicXs)
|
|
/* f0aad88: 286100ff */ slti $at,$v1,0xff
|
|
/* f0aad8c: 5020008b */ beqzl $at,.L0f0aafbc
|
|
/* f0aad90: 8fa200bc */ lw $v0,0xbc($sp)
|
|
/* f0aad94: 8c429ff8 */ lw $v0,%lo(g_Vars+0x38)($v0)
|
|
/* f0aad98: 3c1955ff */ lui $t9,0x55ff
|
|
/* f0aad9c: 3739ffff */ ori $t9,$t9,0xffff
|
|
/* f0aada0: 00627021 */ addu $t6,$v1,$v0
|
|
/* f0aada4: 29c10100 */ slti $at,$t6,0x100
|
|
/* f0aada8: 14200004 */ bnez $at,.L0f0aadbc
|
|
/* f0aadac: afb900d0 */ sw $t9,0xd0($sp)
|
|
/* f0aadb0: 241800ff */ addiu $t8,$zero,0xff
|
|
/* f0aadb4: 10000003 */ b .L0f0aadc4
|
|
/* f0aadb8: a158006f */ sb $t8,0x6f($t2)
|
|
.L0f0aadbc:
|
|
/* f0aadbc: 0062c821 */ addu $t9,$v1,$v0
|
|
/* f0aadc0: a159006f */ sb $t9,0x6f($t2)
|
|
.L0f0aadc4:
|
|
/* f0aadc4: 3c0e8008 */ lui $t6,%hi(g_FontHandelGothicXs)
|
|
/* f0aadc8: 8dcefb04 */ lw $t6,%lo(g_FontHandelGothicXs)($t6)
|
|
/* f0aadcc: 8ce7fb08 */ lw $a3,%lo(g_CharsHandelGothicXs)($a3)
|
|
/* f0aadd0: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0aadd4: afa600d4 */ sw $a2,0xd4($sp)
|
|
/* f0aadd8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aaddc: 0fc55cbe */ jal textMeasure
|
|
/* f0aade0: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0aade4: 8fb800c0 */ lw $t8,0xc0($sp)
|
|
/* f0aade8: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aadec: 00002825 */ or $a1,$zero,$zero
|
|
/* f0aadf0: 270f0002 */ addiu $t7,$t8,0x2
|
|
/* f0aadf4: afaf00c0 */ sw $t7,0xc0($sp)
|
|
/* f0aadf8: 9142006f */ lbu $v0,0x6f($t2)
|
|
/* f0aadfc: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f0aae00: 0322c823 */ subu $t9,$t9,$v0
|
|
/* f0aae04: 032f082a */ slt $at,$t9,$t7
|
|
/* f0aae08: 50200003 */ beqzl $at,.L0f0aae18
|
|
/* f0aae0c: 8fae0124 */ lw $t6,0x124($sp)
|
|
/* f0aae10: afb900c0 */ sw $t9,0xc0($sp)
|
|
/* f0aae14: 8fae0124 */ lw $t6,0x124($sp)
|
|
.L0f0aae18:
|
|
/* f0aae18: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aae1c: 8fb900c0 */ lw $t9,0xc0($sp)
|
|
/* f0aae20: 29c10002 */ slti $at,$t6,0x2
|
|
/* f0aae24: 14200007 */ bnez $at,.L0f0aae44
|
|
/* f0aae28: 03197823 */ subu $t7,$t8,$t9
|
|
/* f0aae2c: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aae30: 8fb900c0 */ lw $t9,0xc0($sp)
|
|
/* f0aae34: 03197823 */ subu $t7,$t8,$t9
|
|
/* f0aae38: 25eefff3 */ addiu $t6,$t7,-13
|
|
/* f0aae3c: 10000003 */ b .L0f0aae4c
|
|
/* f0aae40: afae00cc */ sw $t6,0xcc($sp)
|
|
.L0f0aae44:
|
|
/* f0aae44: 25eefffe */ addiu $t6,$t7,-2
|
|
/* f0aae48: afae00cc */ sw $t6,0xcc($sp)
|
|
.L0f0aae4c:
|
|
/* f0aae4c: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0aae50: 8fb900c4 */ lw $t9,0xc4($sp)
|
|
/* f0aae54: 03197823 */ subu $t7,$t8,$t9
|
|
/* f0aae58: 25eefff6 */ addiu $t6,$t7,-10
|
|
/* f0aae5c: afae00c8 */ sw $t6,0xc8($sp)
|
|
/* f0aae60: 9143006f */ lbu $v1,0x6f($t2)
|
|
/* f0aae64: 240e00ff */ addiu $t6,$zero,0xff
|
|
/* f0aae68: 286100c1 */ slti $at,$v1,0xc1
|
|
/* f0aae6c: 1420000d */ bnez $at,.L0f0aaea4
|
|
/* f0aae70: 0003c200 */ sll $t8,$v1,0x8
|
|
/* f0aae74: 3c01ffff */ lui $at,0xffff
|
|
/* f0aae78: 342140c0 */ ori $at,$at,0x40c0
|
|
/* f0aae7c: 0303c023 */ subu $t8,$t8,$v1
|
|
/* f0aae80: 0301c821 */ addu $t9,$t8,$at
|
|
/* f0aae84: 2401003f */ addiu $at,$zero,0x3f
|
|
/* f0aae88: 0321001b */ divu $zero,$t9,$at
|
|
/* f0aae8c: 00007812 */ mflo $t7
|
|
/* f0aae90: 3c0155ff */ lui $at,0x55ff
|
|
/* f0aae94: 01cf1023 */ subu $v0,$t6,$t7
|
|
/* f0aae98: 3421ff00 */ ori $at,$at,0xff00
|
|
/* f0aae9c: 0041c025 */ or $t8,$v0,$at
|
|
/* f0aaea0: afb800d0 */ sw $t8,0xd0($sp)
|
|
.L0f0aaea4:
|
|
/* f0aaea4: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aaea8: 0fc54df7 */ jal textSetPrimColour
|
|
/* f0aaeac: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aaeb0: 3c038008 */ lui $v1,%hi(g_ScaleX)
|
|
/* f0aaeb4: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0aaeb8: 2463fac0 */ addiu $v1,$v1,%lo(g_ScaleX)
|
|
/* f0aaebc: 8c6f0000 */ lw $t7,0x0($v1)
|
|
/* f0aaec0: 272efff5 */ addiu $t6,$t9,-11
|
|
/* f0aaec4: 3c01f600 */ lui $at,0xf600
|
|
/* f0aaec8: 01cf0019 */ multu $t6,$t7
|
|
/* f0aaecc: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0aaed0: 0000c012 */ mflo $t8
|
|
/* f0aaed4: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0aaed8: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0aaedc: 00197380 */ sll $t6,$t9,0xe
|
|
/* f0aaee0: 01c17825 */ or $t7,$t6,$at
|
|
/* f0aaee4: 01f8c825 */ or $t9,$t7,$t8
|
|
/* f0aaee8: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0aaeec: 8fae00cc */ lw $t6,0xcc($sp)
|
|
/* f0aaef0: 8c780000 */ lw $t8,0x0($v1)
|
|
/* f0aaef4: 25cfffff */ addiu $t7,$t6,-1
|
|
/* f0aaef8: 01f80019 */ multu $t7,$t8
|
|
/* f0aaefc: 8fb800c8 */ lw $t8,0xc8($sp)
|
|
/* f0aaf00: 0000c812 */ mflo $t9
|
|
/* f0aaf04: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aaf08: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0aaf0c: 2719ffff */ addiu $t9,$t8,-1
|
|
/* f0aaf10: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aaf14: 000ec080 */ sll $t8,$t6,0x2
|
|
/* f0aaf18: 01f8c825 */ or $t9,$t7,$t8
|
|
/* f0aaf1c: 0fc54e0e */ jal text0f153838
|
|
/* f0aaf20: ac590004 */ sw $t9,0x4($v0)
|
|
/* f0aaf24: 3c018006 */ lui $at,%hi(var80061630)
|
|
/* f0aaf28: c4241630 */ lwc1 $f4,%lo(var80061630)($at)
|
|
/* f0aaf2c: 3c014248 */ lui $at,0x4248
|
|
/* f0aaf30: 44813000 */ mtc1 $at,$f6
|
|
/* f0aaf34: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0aaf38: 00002825 */ or $a1,$zero,$zero
|
|
/* f0aaf3c: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f0aaf40: 24060032 */ addiu $a2,$zero,0x32
|
|
/* f0aaf44: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0aaf48: 44045000 */ mfc1 $a0,$f10
|
|
/* f0aaf4c: 0fc54f54 */ jal textSetWaveBlend
|
|
/* f0aaf50: 00000000 */ nop
|
|
/* f0aaf54: 2404ffff */ addiu $a0,$zero,-1
|
|
/* f0aaf58: 0fc54f8e */ jal textSetWaveColours
|
|
/* f0aaf5c: 2405ffff */ addiu $a1,$zero,-1
|
|
/* f0aaf60: 3c0f8008 */ lui $t7,%hi(g_CharsHandelGothicXs)
|
|
/* f0aaf64: 8deffb08 */ lw $t7,%lo(g_CharsHandelGothicXs)($t7)
|
|
/* f0aaf68: 3c188008 */ lui $t8,%hi(g_FontHandelGothicXs)
|
|
/* f0aaf6c: 8f18fb04 */ lw $t8,%lo(g_FontHandelGothicXs)($t8)
|
|
/* f0aaf70: 8fb900d0 */ lw $t9,0xd0($sp)
|
|
/* f0aaf74: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0aaf78: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0aaf7c: 240f03e8 */ addiu $t7,$zero,0x3e8
|
|
/* f0aaf80: afaf0020 */ sw $t7,0x20($sp)
|
|
/* f0aaf84: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aaf88: 27a500cc */ addiu $a1,$sp,0xcc
|
|
/* f0aaf8c: 27a600c8 */ addiu $a2,$sp,0xc8
|
|
/* f0aaf90: 8fa700d4 */ lw $a3,0xd4($sp)
|
|
/* f0aaf94: afa00024 */ sw $zero,0x24($sp)
|
|
/* f0aaf98: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0aaf9c: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0aafa0: afb90018 */ sw $t9,0x18($sp)
|
|
/* f0aafa4: 0fc5580f */ jal textRenderProjected
|
|
/* f0aafa8: afae001c */ sw $t6,0x1c($sp)
|
|
/* f0aafac: 0fc54f93 */ jal textResetBlends
|
|
/* f0aafb0: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0aafb4: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aafb8: 8fa200bc */ lw $v0,0xbc($sp)
|
|
.L0f0aafbc:
|
|
/* f0aafbc: 504000bd */ beqzl $v0,.L0f0ab2b4
|
|
/* f0aafc0: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f0aafc4: 94440004 */ lhu $a0,0x4($v0)
|
|
/* f0aafc8: 0fc5b9f1 */ jal langGet
|
|
/* f0aafcc: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aafd0: 3c18ff55 */ lui $t8,0xff55
|
|
/* f0aafd4: 8fa300bc */ lw $v1,0xbc($sp)
|
|
/* f0aafd8: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aafdc: 371855ff */ ori $t8,$t8,0x55ff
|
|
/* f0aafe0: afb800d0 */ sw $t8,0xd0($sp)
|
|
/* f0aafe4: 94790004 */ lhu $t9,0x4($v1)
|
|
/* f0aafe8: 9544006c */ lhu $a0,0x6c($t2)
|
|
/* f0aafec: 13240005 */ beq $t9,$a0,.L0f0ab004
|
|
/* f0aaff0: 00000000 */ nop
|
|
/* f0aaff4: 914e0067 */ lbu $t6,0x67($t2)
|
|
/* f0aaff8: 29c10081 */ slti $at,$t6,0x81
|
|
/* f0aaffc: 50200004 */ beqzl $at,.L0f0ab010
|
|
/* f0ab000: a140006e */ sb $zero,0x6e($t2)
|
|
.L0f0ab004:
|
|
/* f0ab004: 14800005 */ bnez $a0,.L0f0ab01c
|
|
/* f0ab008: 00000000 */ nop
|
|
/* f0ab00c: a140006e */ sb $zero,0x6e($t2)
|
|
.L0f0ab010:
|
|
/* f0ab010: 946f0004 */ lhu $t7,0x4($v1)
|
|
/* f0ab014: a54f006c */ sh $t7,0x6c($t2)
|
|
/* f0ab018: 31e4ffff */ andi $a0,$t7,0xffff
|
|
.L0f0ab01c:
|
|
/* f0ab01c: 0fc5b9f1 */ jal langGet
|
|
/* f0ab020: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab024: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab028: 00403025 */ or $a2,$v0,$zero
|
|
/* f0ab02c: 3c02800a */ lui $v0,%hi(g_Vars+0x38)
|
|
/* f0ab030: 9143006e */ lbu $v1,0x6e($t2)
|
|
/* f0ab034: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0ab038: 27a400c4 */ addiu $a0,$sp,0xc4
|
|
/* f0ab03c: 286100ff */ slti $at,$v1,0xff
|
|
/* f0ab040: 1020009b */ beqz $at,.L0f0ab2b0
|
|
/* f0ab044: 27a500c0 */ addiu $a1,$sp,0xc0
|
|
/* f0ab048: 8c429ff8 */ lw $v0,%lo(g_Vars+0x38)($v0)
|
|
/* f0ab04c: 2719fff5 */ addiu $t9,$t8,-11
|
|
/* f0ab050: afb90060 */ sw $t9,0x60($sp)
|
|
/* f0ab054: 00627021 */ addu $t6,$v1,$v0
|
|
/* f0ab058: 29c10100 */ slti $at,$t6,0x100
|
|
/* f0ab05c: 14200004 */ bnez $at,.L0f0ab070
|
|
/* f0ab060: 3c078008 */ lui $a3,%hi(g_CharsHandelGothicXs)
|
|
/* f0ab064: 240f00ff */ addiu $t7,$zero,0xff
|
|
/* f0ab068: 10000003 */ b .L0f0ab078
|
|
/* f0ab06c: a14f006e */ sb $t7,0x6e($t2)
|
|
.L0f0ab070:
|
|
/* f0ab070: 0062c821 */ addu $t9,$v1,$v0
|
|
/* f0ab074: a159006e */ sb $t9,0x6e($t2)
|
|
.L0f0ab078:
|
|
/* f0ab078: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0ab07c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab080: 55c1000a */ bnel $t6,$at,.L0f0ab0ac
|
|
/* f0ab084: 8fb800f0 */ lw $t8,0xf0($sp)
|
|
/* f0ab088: 8fb800bc */ lw $t8,0xbc($sp)
|
|
/* f0ab08c: 954f006c */ lhu $t7,0x6c($t2)
|
|
/* f0ab090: 3c0effff */ lui $t6,0xffff
|
|
/* f0ab094: 97190004 */ lhu $t9,0x4($t8)
|
|
/* f0ab098: 35ce55ff */ ori $t6,$t6,0x55ff
|
|
/* f0ab09c: 55f90003 */ bnel $t7,$t9,.L0f0ab0ac
|
|
/* f0ab0a0: 8fb800f0 */ lw $t8,0xf0($sp)
|
|
/* f0ab0a4: afae00d0 */ sw $t6,0xd0($sp)
|
|
/* f0ab0a8: 8fb800f0 */ lw $t8,0xf0($sp)
|
|
.L0f0ab0ac:
|
|
/* f0ab0ac: 8fb900bc */ lw $t9,0xbc($sp)
|
|
/* f0ab0b0: 17000008 */ bnez $t8,.L0f0ab0d4
|
|
/* f0ab0b4: 00000000 */ nop
|
|
/* f0ab0b8: 954f006c */ lhu $t7,0x6c($t2)
|
|
/* f0ab0bc: 972e0004 */ lhu $t6,0x4($t9)
|
|
/* f0ab0c0: 8fb800d0 */ lw $t8,0xd0($sp)
|
|
/* f0ab0c4: 3c0100ff */ lui $at,0xff
|
|
/* f0ab0c8: 11ee0002 */ beq $t7,$t6,.L0f0ab0d4
|
|
/* f0ab0cc: 0301c825 */ or $t9,$t8,$at
|
|
/* f0ab0d0: afb900d0 */ sw $t9,0xd0($sp)
|
|
.L0f0ab0d4:
|
|
/* f0ab0d4: 3c0f8008 */ lui $t7,%hi(g_FontHandelGothicXs)
|
|
/* f0ab0d8: 8deffb04 */ lw $t7,%lo(g_FontHandelGothicXs)($t7)
|
|
/* f0ab0dc: 8ce7fb08 */ lw $a3,%lo(g_CharsHandelGothicXs)($a3)
|
|
/* f0ab0e0: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab0e4: afa600d4 */ sw $a2,0xd4($sp)
|
|
/* f0ab0e8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab0ec: 0fc55cbe */ jal textMeasure
|
|
/* f0ab0f0: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0ab0f4: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0ab0f8: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab0fc: 00002825 */ or $a1,$zero,$zero
|
|
/* f0ab100: 25d80002 */ addiu $t8,$t6,0x2
|
|
/* f0ab104: afb800c0 */ sw $t8,0xc0($sp)
|
|
/* f0ab108: 9142006e */ lbu $v0,0x6e($t2)
|
|
/* f0ab10c: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f0ab110: 0322c823 */ subu $t9,$t9,$v0
|
|
/* f0ab114: 0338082a */ slt $at,$t9,$t8
|
|
/* f0ab118: 50200003 */ beqzl $at,.L0f0ab128
|
|
/* f0ab11c: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0ab120: afb900c0 */ sw $t9,0xc0($sp)
|
|
/* f0ab124: 8faf0100 */ lw $t7,0x100($sp)
|
|
.L0f0ab128:
|
|
/* f0ab128: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0ab12c: 01eec823 */ subu $t9,$t7,$t6
|
|
/* f0ab130: 8fae00c4 */ lw $t6,0xc4($sp)
|
|
/* f0ab134: 8faf0128 */ lw $t7,0x128($sp)
|
|
/* f0ab138: 2738fff3 */ addiu $t8,$t9,-13
|
|
/* f0ab13c: afb800cc */ sw $t8,0xcc($sp)
|
|
/* f0ab140: 01eec823 */ subu $t9,$t7,$t6
|
|
/* f0ab144: 27380003 */ addiu $t8,$t9,3
|
|
/* f0ab148: afb800c8 */ sw $t8,0xc8($sp)
|
|
/* f0ab14c: 9143006e */ lbu $v1,0x6e($t2)
|
|
/* f0ab150: 241800ff */ addiu $t8,$zero,0xff
|
|
/* f0ab154: 286100c1 */ slti $at,$v1,0xc1
|
|
/* f0ab158: 1420000e */ bnez $at,.L0f0ab194
|
|
/* f0ab15c: 00037a00 */ sll $t7,$v1,0x8
|
|
/* f0ab160: 3c01ffff */ lui $at,0xffff
|
|
/* f0ab164: 342140c0 */ ori $at,$at,0x40c0
|
|
/* f0ab168: 01e37823 */ subu $t7,$t7,$v1
|
|
/* f0ab16c: 01e17021 */ addu $t6,$t7,$at
|
|
/* f0ab170: 2401003f */ addiu $at,$zero,0x3f
|
|
/* f0ab174: 01c1001b */ divu $zero,$t6,$at
|
|
/* f0ab178: 8faf00d0 */ lw $t7,0xd0($sp)
|
|
/* f0ab17c: 0000c812 */ mflo $t9
|
|
/* f0ab180: 2401ff00 */ addiu $at,$zero,-256
|
|
/* f0ab184: 03191023 */ subu $v0,$t8,$t9
|
|
/* f0ab188: 01e17024 */ and $t6,$t7,$at
|
|
/* f0ab18c: 01c2c025 */ or $t8,$t6,$v0
|
|
/* f0ab190: afb800d0 */ sw $t8,0xd0($sp)
|
|
.L0f0ab194:
|
|
/* f0ab194: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab198: 0fc54df7 */ jal textSetPrimColour
|
|
/* f0ab19c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab1a0: 3c038008 */ lui $v1,%hi(g_ScaleX)
|
|
/* f0ab1a4: 2463fac0 */ addiu $v1,$v1,%lo(g_ScaleX)
|
|
/* f0ab1a8: 8c6f0000 */ lw $t7,0x0($v1)
|
|
/* f0ab1ac: 8fb90060 */ lw $t9,0x60($sp)
|
|
/* f0ab1b0: 3c01f600 */ lui $at,0xf600
|
|
/* f0ab1b4: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0ab1b8: 032f0019 */ multu $t9,$t7
|
|
/* f0ab1bc: 00007012 */ mflo $t6
|
|
/* f0ab1c0: 31d803ff */ andi $t8,$t6,0x3ff
|
|
/* f0ab1c4: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0ab1c8: 0018cb80 */ sll $t9,$t8,0xe
|
|
/* f0ab1cc: 03217825 */ or $t7,$t9,$at
|
|
/* f0ab1d0: 25d80003 */ addiu $t8,$t6,0x3
|
|
/* f0ab1d4: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab1d8: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab1dc: 01eec025 */ or $t8,$t7,$t6
|
|
/* f0ab1e0: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0ab1e4: 8fb900cc */ lw $t9,0xcc($sp)
|
|
/* f0ab1e8: 8c6e0000 */ lw $t6,0x0($v1)
|
|
/* f0ab1ec: 272fffff */ addiu $t7,$t9,-1
|
|
/* f0ab1f0: 01ee0019 */ multu $t7,$t6
|
|
/* f0ab1f4: 8fae00c8 */ lw $t6,0xc8($sp)
|
|
/* f0ab1f8: 0000c012 */ mflo $t8
|
|
/* f0ab1fc: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab200: 00197b80 */ sll $t7,$t9,0xe
|
|
/* f0ab204: 25d8ffff */ addiu $t8,$t6,-1
|
|
/* f0ab208: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab20c: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab210: 01eec025 */ or $t8,$t7,$t6
|
|
/* f0ab214: 0fc54e0e */ jal text0f153838
|
|
/* f0ab218: ac580004 */ sw $t8,0x4($v0)
|
|
/* f0ab21c: 3c018006 */ lui $at,%hi(var80061630)
|
|
/* f0ab220: c4301630 */ lwc1 $f16,%lo(var80061630)($at)
|
|
/* f0ab224: 3c014248 */ lui $at,0x4248
|
|
/* f0ab228: 44819000 */ mtc1 $at,$f18
|
|
/* f0ab22c: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab230: 00002825 */ or $a1,$zero,$zero
|
|
/* f0ab234: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0ab238: 24060032 */ addiu $a2,$zero,0x32
|
|
/* f0ab23c: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0ab240: 44043000 */ mfc1 $a0,$f6
|
|
/* f0ab244: 0fc54f54 */ jal textSetWaveBlend
|
|
/* f0ab248: 00000000 */ nop
|
|
/* f0ab24c: 2404ffff */ addiu $a0,$zero,-1
|
|
/* f0ab250: 0fc54f8e */ jal textSetWaveColours
|
|
/* f0ab254: 2405ffff */ addiu $a1,$zero,-1
|
|
/* f0ab258: 3c0f8008 */ lui $t7,%hi(g_CharsHandelGothicXs)
|
|
/* f0ab25c: 8deffb08 */ lw $t7,%lo(g_CharsHandelGothicXs)($t7)
|
|
/* f0ab260: 3c0e8008 */ lui $t6,%hi(g_FontHandelGothicXs)
|
|
/* f0ab264: 8dcefb04 */ lw $t6,%lo(g_FontHandelGothicXs)($t6)
|
|
/* f0ab268: 8fb800d0 */ lw $t8,0xd0($sp)
|
|
/* f0ab26c: 8fb900c0 */ lw $t9,0xc0($sp)
|
|
/* f0ab270: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0ab274: 240f03e8 */ addiu $t7,$zero,0x3e8
|
|
/* f0ab278: afaf0020 */ sw $t7,0x20($sp)
|
|
/* f0ab27c: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab280: 27a500cc */ addiu $a1,$sp,0xcc
|
|
/* f0ab284: 27a600c8 */ addiu $a2,$sp,0xc8
|
|
/* f0ab288: 8fa700d4 */ lw $a3,0xd4($sp)
|
|
/* f0ab28c: afa00024 */ sw $zero,0x24($sp)
|
|
/* f0ab290: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab294: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0ab298: afb80018 */ sw $t8,0x18($sp)
|
|
/* f0ab29c: 0fc5580f */ jal textRenderProjected
|
|
/* f0ab2a0: afb9001c */ sw $t9,0x1c($sp)
|
|
/* f0ab2a4: 0fc54f93 */ jal textResetBlends
|
|
/* f0ab2a8: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab2ac: 8faa0058 */ lw $t2,0x58($sp)
|
|
.L0f0ab2b0:
|
|
/* f0ab2b0: 8fa500fc */ lw $a1,0xfc($sp)
|
|
.L0f0ab2b4:
|
|
/* f0ab2b4: 8fae005c */ lw $t6,0x5c($sp)
|
|
/* f0ab2b8: 50a0000a */ beqzl $a1,.L0f0ab2e4
|
|
/* f0ab2bc: 8fb80110 */ lw $t8,0x110($sp)
|
|
/* f0ab2c0: 91d80003 */ lbu $t8,0x3($t6)
|
|
/* f0ab2c4: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0ab2c8: 00b97821 */ addu $t7,$a1,$t9
|
|
/* f0ab2cc: 8de20014 */ lw $v0,0x14($t7)
|
|
/* f0ab2d0: 50400004 */ beqzl $v0,.L0f0ab2e4
|
|
/* f0ab2d4: 8fb80110 */ lw $t8,0x110($sp)
|
|
/* f0ab2d8: 804e0007 */ lb $t6,0x7($v0)
|
|
/* f0ab2dc: afae0110 */ sw $t6,0x110($sp)
|
|
/* f0ab2e0: 8fb80110 */ lw $t8,0x110($sp)
|
|
.L0f0ab2e4:
|
|
/* f0ab2e4: 2403ffff */ addiu $v1,$zero,-1
|
|
/* f0ab2e8: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab2ec: 57030014 */ bnel $t8,$v1,.L0f0ab340
|
|
/* f0ab2f0: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f0ab2f4: 932f0003 */ lbu $t7,0x3($t9)
|
|
/* f0ab2f8: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f0ab2fc: 000ec023 */ negu $t8,$t6
|
|
/* f0ab300: 00b8c821 */ addu $t9,$a1,$t8
|
|
/* f0ab304: 8f220018 */ lw $v0,0x18($t9)
|
|
/* f0ab308: 50400004 */ beqzl $v0,.L0f0ab31c
|
|
/* f0ab30c: 8fae0110 */ lw $t6,0x110($sp)
|
|
/* f0ab310: 804f0007 */ lb $t7,0x7($v0)
|
|
/* f0ab314: afaf0110 */ sw $t7,0x110($sp)
|
|
/* f0ab318: 8fae0110 */ lw $t6,0x110($sp)
|
|
.L0f0ab31c:
|
|
/* f0ab31c: 55c30008 */ bnel $t6,$v1,.L0f0ab340
|
|
/* f0ab320: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f0ab324: 0fc54de0 */ jal text0f153780
|
|
/* f0ab328: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab32c: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f0ab330: 3c018008 */ lui $at,%hi(g_ScaleX)
|
|
/* f0ab334: 100001e2 */ b .L0f0abac0
|
|
/* f0ab338: ac38fac0 */ sw $t8,%lo(g_ScaleX)($at)
|
|
/* f0ab33c: 8fb90110 */ lw $t9,0x110($sp)
|
|
.L0f0ab340:
|
|
/* f0ab340: 814f0069 */ lb $t7,0x69($t2)
|
|
/* f0ab344: 8fa4012c */ lw $a0,0x12c($sp)
|
|
/* f0ab348: 132f000d */ beq $t9,$t7,.L0f0ab380
|
|
/* f0ab34c: 24841568 */ addiu $a0,$a0,0x1568
|
|
/* f0ab350: 0fc2a765 */ jal bgunResetAbmag
|
|
/* f0ab354: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab358: 8fa4005c */ lw $a0,0x5c($sp)
|
|
/* f0ab35c: 0fc2a765 */ jal bgunResetAbmag
|
|
/* f0ab360: 2484078c */ addiu $a0,$a0,0x78c
|
|
/* f0ab364: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab368: 0fc2a765 */ jal bgunResetAbmag
|
|
/* f0ab36c: 2544005c */ addiu $a0,$t2,0x5c
|
|
/* f0ab370: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab374: 8fae0110 */ lw $t6,0x110($sp)
|
|
/* f0ab378: a14e0069 */ sb $t6,0x69($t2)
|
|
/* f0ab37c: 8fa500fc */ lw $a1,0xfc($sp)
|
|
.L0f0ab380:
|
|
/* f0ab380: 8fb8012c */ lw $t8,0x12c($sp)
|
|
/* f0ab384: 8fa20110 */ lw $v0,0x110($sp)
|
|
/* f0ab388: 27190ddc */ addiu $t9,$t8,0xddc
|
|
/* f0ab38c: afb90060 */ sw $t9,0x60($sp)
|
|
/* f0ab390: 830f0de4 */ lb $t7,0xde4($t8)
|
|
/* f0ab394: 00027080 */ sll $t6,$v0,0x2
|
|
/* f0ab398: 00ae2021 */ addu $a0,$a1,$t6
|
|
/* f0ab39c: 51e00076 */ beqzl $t7,.L0f0ab578
|
|
/* f0ab3a0: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab3a4: 8c99001c */ lw $t9,0x1c($a0)
|
|
/* f0ab3a8: 53200073 */ beqzl $t9,.L0f0ab578
|
|
/* f0ab3ac: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab3b0: 930f0ddc */ lbu $t7,0xddc($t8)
|
|
/* f0ab3b4: 24010022 */ addiu $at,$zero,0x22
|
|
/* f0ab3b8: 51e1006f */ beql $t7,$at,.L0f0ab578
|
|
/* f0ab3bc: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab3c0: afae0050 */ sw $t6,0x50($sp)
|
|
/* f0ab3c4: afa40054 */ sw $a0,0x54($sp)
|
|
/* f0ab3c8: 0c002f40 */ jal viGetViewLeft
|
|
/* f0ab3cc: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab3d0: 3c0e8008 */ lui $t6,%hi(g_ScaleX)
|
|
/* f0ab3d4: 8dcefac0 */ lw $t6,%lo(g_ScaleX)($t6)
|
|
/* f0ab3d8: 8faf0124 */ lw $t7,0x124($sp)
|
|
/* f0ab3dc: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0ab3e0: 004e001a */ div $zero,$v0,$t6
|
|
/* f0ab3e4: 0000c812 */ mflo $t9
|
|
/* f0ab3e8: 27380018 */ addiu $t8,$t9,0x18
|
|
/* f0ab3ec: afb80100 */ sw $t8,0x100($sp)
|
|
/* f0ab3f0: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab3f4: 15c00002 */ bnez $t6,.L0f0ab400
|
|
/* f0ab3f8: 00000000 */ nop
|
|
/* f0ab3fc: 0007000d */ break 0x7
|
|
.L0f0ab400:
|
|
/* f0ab400: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0ab404: 15c10004 */ bne $t6,$at,.L0f0ab418
|
|
/* f0ab408: 3c018000 */ lui $at,0x8000
|
|
/* f0ab40c: 14410002 */ bne $v0,$at,.L0f0ab418
|
|
/* f0ab410: 00000000 */ nop
|
|
/* f0ab414: 0006000d */ break 0x6
|
|
.L0f0ab418:
|
|
/* f0ab418: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0ab41c: 55e10015 */ bnel $t7,$at,.L0f0ab474
|
|
/* f0ab420: 8fae0124 */ lw $t6,0x124($sp)
|
|
/* f0ab424: afa40054 */ sw $a0,0x54($sp)
|
|
/* f0ab428: 0fc54bcd */ jal optionsGetScreenSplit
|
|
/* f0ab42c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab430: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab434: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0ab438: 10410006 */ beq $v0,$at,.L0f0ab454
|
|
/* f0ab43c: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab440: 3c0e8009 */ lui $t6,%hi(g_Is4Mb)
|
|
/* f0ab444: 91ce0af0 */ lbu $t6,%lo(g_Is4Mb)($t6)
|
|
/* f0ab448: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab44c: 55c10009 */ bnel $t6,$at,.L0f0ab474
|
|
/* f0ab450: 8fae0124 */ lw $t6,0x124($sp)
|
|
.L0f0ab454:
|
|
/* f0ab454: 8fb90120 */ lw $t9,0x120($sp)
|
|
/* f0ab458: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0ab45c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab460: 17210003 */ bne $t9,$at,.L0f0ab470
|
|
/* f0ab464: 270ffff2 */ addiu $t7,$t8,-14
|
|
/* f0ab468: 1000000b */ b .L0f0ab498
|
|
/* f0ab46c: afaf0100 */ sw $t7,0x100($sp)
|
|
.L0f0ab470:
|
|
/* f0ab470: 8fae0124 */ lw $t6,0x124($sp)
|
|
.L0f0ab474:
|
|
/* f0ab474: 8fb90120 */ lw $t9,0x120($sp)
|
|
/* f0ab478: 29c10003 */ slti $at,$t6,0x3
|
|
/* f0ab47c: 14200006 */ bnez $at,.L0f0ab498
|
|
/* f0ab480: 33380001 */ andi $t8,$t9,0x1
|
|
/* f0ab484: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab488: 17010003 */ bne $t8,$at,.L0f0ab498
|
|
/* f0ab48c: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0ab490: 25eefff2 */ addiu $t6,$t7,-14
|
|
/* f0ab494: afae0100 */ sw $t6,0x100($sp)
|
|
.L0f0ab498:
|
|
/* f0ab498: 8fa90060 */ lw $t1,0x60($sp)
|
|
/* f0ab49c: 8fb90050 */ lw $t9,0x50($sp)
|
|
/* f0ab4a0: 01391821 */ addu $v1,$t1,$t9
|
|
/* f0ab4a4: 8c680228 */ lw $t0,0x228($v1)
|
|
/* f0ab4a8: 59000033 */ blezl $t0,.L0f0ab578
|
|
/* f0ab4ac: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab4b0: 8c98001c */ lw $t8,0x1c($a0)
|
|
/* f0ab4b4: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab4b8: 930f0010 */ lbu $t7,0x10($t8)
|
|
/* f0ab4bc: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0ab4c0: 31ee0002 */ andi $t6,$t7,0x2
|
|
/* f0ab4c4: 15c0002b */ bnez $t6,.L0f0ab574
|
|
/* f0ab4c8: 8faf0108 */ lw $t7,0x108($sp)
|
|
/* f0ab4cc: 8fae0104 */ lw $t6,0x104($sp)
|
|
/* f0ab4d0: 030f1023 */ subu $v0,$t8,$t7
|
|
/* f0ab4d4: 244ffffd */ addiu $t7,$v0,-3
|
|
/* f0ab4d8: 004e3023 */ subu $a2,$v0,$t6
|
|
/* f0ab4dc: 252e078c */ addiu $t6,$t1,0x78c
|
|
/* f0ab4e0: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0ab4e4: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0ab4e8: 8c790220 */ lw $t9,0x220($v1)
|
|
/* f0ab4ec: 8fb8010c */ lw $t8,0x10c($sp)
|
|
/* f0ab4f0: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0ab4f4: 3c0f00ff */ lui $t7,0xff
|
|
/* f0ab4f8: 35ef0040 */ ori $t7,$t7,0x40
|
|
/* f0ab4fc: 00b83821 */ addu $a3,$a1,$t8
|
|
/* f0ab500: 3c180030 */ lui $t8,0x30
|
|
/* f0ab504: 37180080 */ ori $t8,$t8,0x80
|
|
/* f0ab508: afb80020 */ sw $t8,0x20($sp)
|
|
/* f0ab50c: afa70044 */ sw $a3,0x44($sp)
|
|
/* f0ab510: afaf0024 */ sw $t7,0x24($sp)
|
|
/* f0ab514: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab518: afa3004c */ sw $v1,0x4c($sp)
|
|
/* f0ab51c: afa20048 */ sw $v0,0x48($sp)
|
|
/* f0ab520: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab524: afa8001c */ sw $t0,0x1c($sp)
|
|
/* f0ab528: 24c6fffd */ addiu $a2,$a2,-3
|
|
/* f0ab52c: 0fc2a7f0 */ jal bgunRenderHudGauge
|
|
/* f0ab530: afb90018 */ sw $t9,0x18($sp)
|
|
/* f0ab534: 8fa3004c */ lw $v1,0x4c($sp)
|
|
/* f0ab538: 8fae0048 */ lw $t6,0x48($sp)
|
|
/* f0ab53c: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0ab540: 3c1800ff */ lui $t8,0xff
|
|
/* f0ab544: 8c650220 */ lw $a1,0x220($v1)
|
|
/* f0ab548: 371800a0 */ ori $t8,$t8,0xa0
|
|
/* f0ab54c: 25d9fff8 */ addiu $t9,$t6,-8
|
|
/* f0ab550: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab554: afb80018 */ sw $t8,0x18($sp)
|
|
/* f0ab558: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab55c: 00402025 */ or $a0,$v0,$zero
|
|
/* f0ab560: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f0ab564: 0fc2a74b */ jal bgunRenderHudInteger
|
|
/* f0ab568: 24c60002 */ addiu $a2,$a2,0x2
|
|
/* f0ab56c: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab570: afa20130 */ sw $v0,0x130($sp)
|
|
.L0f0ab574:
|
|
/* f0ab574: 8faf005c */ lw $t7,0x5c($sp)
|
|
.L0f0ab578:
|
|
/* f0ab578: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f0ab57c: 81ee0008 */ lb $t6,0x8($t7)
|
|
/* f0ab580: 0159c021 */ addu $t8,$t2,$t9
|
|
/* f0ab584: 11c00149 */ beqz $t6,.L0f0abaac
|
|
/* f0ab588: 00000000 */ nop
|
|
/* f0ab58c: 830f0064 */ lb $t7,0x64($t8)
|
|
/* f0ab590: 8fae012c */ lw $t6,0x12c($sp)
|
|
/* f0ab594: 05e00145 */ bltz $t7,.L0f0abaac
|
|
/* f0ab598: 01d9c021 */ addu $t8,$t6,$t9
|
|
/* f0ab59c: 830f15e4 */ lb $t7,0x15e4($t8)
|
|
/* f0ab5a0: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab5a4: afae0050 */ sw $t6,0x50($sp)
|
|
/* f0ab5a8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab5ac: 0c002f40 */ jal viGetViewLeft
|
|
/* f0ab5b0: afaf00a4 */ sw $t7,0xa4($sp)
|
|
/* f0ab5b4: 0c002f22 */ jal viGetViewWidth
|
|
/* f0ab5b8: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0ab5bc: 87b80076 */ lh $t8,0x76($sp)
|
|
/* f0ab5c0: 3c198008 */ lui $t9,%hi(g_ScaleX)
|
|
/* f0ab5c4: 8f39fac0 */ lw $t9,%lo(g_ScaleX)($t9)
|
|
/* f0ab5c8: 00587821 */ addu $t7,$v0,$t8
|
|
/* f0ab5cc: 8fb8010c */ lw $t8,0x10c($sp)
|
|
/* f0ab5d0: 01f9001a */ div $zero,$t7,$t9
|
|
/* f0ab5d4: 00007012 */ mflo $t6
|
|
/* f0ab5d8: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab5dc: 17200002 */ bnez $t9,.L0f0ab5e8
|
|
/* f0ab5e0: 00000000 */ nop
|
|
/* f0ab5e4: 0007000d */ break 0x7
|
|
.L0f0ab5e8:
|
|
/* f0ab5e8: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0ab5ec: 17210004 */ bne $t9,$at,.L0f0ab600
|
|
/* f0ab5f0: 3c018000 */ lui $at,0x8000
|
|
/* f0ab5f4: 15e10002 */ bne $t7,$at,.L0f0ab600
|
|
/* f0ab5f8: 00000000 */ nop
|
|
/* f0ab5fc: 0006000d */ break 0x6
|
|
.L0f0ab600:
|
|
/* f0ab600: 01d87823 */ subu $t7,$t6,$t8
|
|
/* f0ab604: 8fae0124 */ lw $t6,0x124($sp)
|
|
/* f0ab608: 25f9ffe8 */ addiu $t9,$t7,-24
|
|
/* f0ab60c: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0ab610: 15c10011 */ bne $t6,$at,.L0f0ab658
|
|
/* f0ab614: afb90100 */ sw $t9,0x100($sp)
|
|
/* f0ab618: 0fc54bcd */ jal optionsGetScreenSplit
|
|
/* f0ab61c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab620: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab624: 10410006 */ beq $v0,$at,.L0f0ab640
|
|
/* f0ab628: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab62c: 3c188009 */ lui $t8,%hi(g_Is4Mb)
|
|
/* f0ab630: 93180af0 */ lbu $t8,%lo(g_Is4Mb)($t8)
|
|
/* f0ab634: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab638: 57010008 */ bnel $t8,$at,.L0f0ab65c
|
|
/* f0ab63c: 8fb80124 */ lw $t8,0x124($sp)
|
|
.L0f0ab640:
|
|
/* f0ab640: 8faf0120 */ lw $t7,0x120($sp)
|
|
/* f0ab644: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0ab648: 15e00003 */ bnez $t7,.L0f0ab658
|
|
/* f0ab64c: 272e000f */ addiu $t6,$t9,0xf
|
|
/* f0ab650: 1000000a */ b .L0f0ab67c
|
|
/* f0ab654: afae0100 */ sw $t6,0x100($sp)
|
|
.L0f0ab658:
|
|
/* f0ab658: 8fb80124 */ lw $t8,0x124($sp)
|
|
.L0f0ab65c:
|
|
/* f0ab65c: 8faf0120 */ lw $t7,0x120($sp)
|
|
/* f0ab660: 2b010003 */ slti $at,$t8,0x3
|
|
/* f0ab664: 14200005 */ bnez $at,.L0f0ab67c
|
|
/* f0ab668: 31f90001 */ andi $t9,$t7,0x1
|
|
/* f0ab66c: 17200003 */ bnez $t9,.L0f0ab67c
|
|
/* f0ab670: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab674: 25d8000f */ addiu $t8,$t6,0xf
|
|
/* f0ab678: afb80100 */ sw $t8,0x100($sp)
|
|
.L0f0ab67c:
|
|
/* f0ab67c: 8fb900a4 */ lw $t9,0xa4($sp)
|
|
/* f0ab680: 8fa90050 */ lw $t1,0x50($sp)
|
|
/* f0ab684: 8faf012c */ lw $t7,0x12c($sp)
|
|
/* f0ab688: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab68c: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab690: 01eec021 */ addu $t8,$t7,$t6
|
|
/* f0ab694: 8faf00fc */ lw $t7,0xfc($sp)
|
|
/* f0ab698: 03294021 */ addu $t0,$t9,$t1
|
|
/* f0ab69c: 8d030228 */ lw $v1,0x228($t0)
|
|
/* f0ab6a0: 8f0c17a8 */ lw $t4,0x17a8($t8)
|
|
/* f0ab6a4: 01e97021 */ addu $t6,$t7,$t1
|
|
/* f0ab6a8: 58600038 */ blezl $v1,.L0f0ab78c
|
|
/* f0ab6ac: 8fb900a4 */ lw $t9,0xa4($sp)
|
|
/* f0ab6b0: 8dc2001c */ lw $v0,0x1c($t6)
|
|
/* f0ab6b4: 50400035 */ beqzl $v0,.L0f0ab78c
|
|
/* f0ab6b8: 8fb900a4 */ lw $t9,0xa4($sp)
|
|
/* f0ab6bc: 90580010 */ lbu $t8,0x10($v0)
|
|
/* f0ab6c0: 272e078c */ addiu $t6,$t9,0x78c
|
|
/* f0ab6c4: 3c1900ff */ lui $t9,0xff
|
|
/* f0ab6c8: 330f0002 */ andi $t7,$t8,0x2
|
|
/* f0ab6cc: 15e0002e */ bnez $t7,.L0f0ab788
|
|
/* f0ab6d0: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0ab6d4: 8faf0108 */ lw $t7,0x108($sp)
|
|
/* f0ab6d8: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0ab6dc: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0ab6e0: 030f1023 */ subu $v0,$t8,$t7
|
|
/* f0ab6e4: 8fb80104 */ lw $t8,0x104($sp)
|
|
/* f0ab6e8: 8faf010c */ lw $t7,0x10c($sp)
|
|
/* f0ab6ec: 244efff8 */ addiu $t6,$v0,-8
|
|
/* f0ab6f0: 00583023 */ subu $a2,$v0,$t8
|
|
/* f0ab6f4: 2458fffd */ addiu $t8,$v0,-3
|
|
/* f0ab6f8: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0ab6fc: 00af3821 */ addu $a3,$a1,$t7
|
|
/* f0ab700: 8d0f0220 */ lw $t7,0x220($t0)
|
|
/* f0ab704: 3c180030 */ lui $t8,0x30
|
|
/* f0ab708: 37180080 */ ori $t8,$t8,0x80
|
|
/* f0ab70c: 37390040 */ ori $t9,$t9,0x40
|
|
/* f0ab710: afb90024 */ sw $t9,0x24($sp)
|
|
/* f0ab714: afb80020 */ sw $t8,0x20($sp)
|
|
/* f0ab718: afac00a0 */ sw $t4,0xa0($sp)
|
|
/* f0ab71c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab720: afa80038 */ sw $t0,0x38($sp)
|
|
/* f0ab724: afae0054 */ sw $t6,0x54($sp)
|
|
/* f0ab728: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab72c: afa3001c */ sw $v1,0x1c($sp)
|
|
/* f0ab730: 24c6fffd */ addiu $a2,$a2,-3
|
|
/* f0ab734: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab738: 0fc2a7f0 */ jal bgunRenderHudGauge
|
|
/* f0ab73c: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f0ab740: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f0ab744: 8fa60100 */ lw $a2,0x100($sp)
|
|
/* f0ab748: 8faf0054 */ lw $t7,0x54($sp)
|
|
/* f0ab74c: 3c1800ff */ lui $t8,0xff
|
|
/* f0ab750: 8d050220 */ lw $a1,0x220($t0)
|
|
/* f0ab754: 371800a0 */ ori $t8,$t8,0xa0
|
|
/* f0ab758: afb80018 */ sw $t8,0x18($sp)
|
|
/* f0ab75c: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab760: 00402025 */ or $a0,$v0,$zero
|
|
/* f0ab764: 00003825 */ or $a3,$zero,$zero
|
|
/* f0ab768: 24c6fffe */ addiu $a2,$a2,-2
|
|
/* f0ab76c: 0fc2a74b */ jal bgunRenderHudInteger
|
|
/* f0ab770: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0ab774: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f0ab778: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab77c: 8fac00a0 */ lw $t4,0xa0($sp)
|
|
/* f0ab780: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab784: 8fa90050 */ lw $t1,0x50($sp)
|
|
.L0f0ab788:
|
|
/* f0ab788: 8fb900a4 */ lw $t9,0xa4($sp)
|
|
.L0f0ab78c:
|
|
/* f0ab78c: 3c0b8007 */ lui $t3,%hi(g_AmmoTypes)
|
|
/* f0ab790: 8faf00fc */ lw $t7,0xfc($sp)
|
|
/* f0ab794: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab798: 01d97023 */ subu $t6,$t6,$t9
|
|
/* f0ab79c: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f0ab7a0: 016e5821 */ addu $t3,$t3,$t6
|
|
/* f0ab7a4: 8d6b0368 */ lw $t3,%lo(g_AmmoTypes)($t3)
|
|
/* f0ab7a8: 01e9c021 */ addu $t8,$t7,$t1
|
|
/* f0ab7ac: 5960003e */ blezl $t3,.L0f0ab8a8
|
|
/* f0ab7b0: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab7b4: 8f19001c */ lw $t9,0x1c($t8)
|
|
/* f0ab7b8: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0ab7bc: 01804825 */ or $t1,$t4,$zero
|
|
/* f0ab7c0: 93220010 */ lbu $v0,0x10($t9)
|
|
/* f0ab7c4: 25f8fffe */ addiu $t8,$t7,-2
|
|
/* f0ab7c8: 304e0001 */ andi $t6,$v0,0x1
|
|
/* f0ab7cc: 55c00036 */ bnezl $t6,.L0f0ab8a8
|
|
/* f0ab7d0: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab7d4: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0ab7d8: 8fae0108 */ lw $t6,0x108($sp)
|
|
/* f0ab7dc: afb80054 */ sw $t8,0x54($sp)
|
|
/* f0ab7e0: 8fb8010c */ lw $t8,0x10c($sp)
|
|
/* f0ab7e4: 032e3023 */ subu $a2,$t9,$t6
|
|
/* f0ab7e8: 30590002 */ andi $t9,$v0,0x2
|
|
/* f0ab7ec: 254d005c */ addiu $t5,$t2,0x5c
|
|
/* f0ab7f0: 1320000d */ beqz $t9,.L0f0ab828
|
|
/* f0ab7f4: 01f83821 */ addu $a3,$t7,$t8
|
|
/* f0ab7f8: 8d180228 */ lw $t8,0x228($t0)
|
|
/* f0ab7fc: 8fae0060 */ lw $t6,0x60($sp)
|
|
/* f0ab800: 8faf0050 */ lw $t7,0x50($sp)
|
|
/* f0ab804: 1b000003 */ blez $t8,.L0f0ab814
|
|
/* f0ab808: 01cf1821 */ addu $v1,$t6,$t7
|
|
/* f0ab80c: 8d190220 */ lw $t9,0x220($t0)
|
|
/* f0ab810: 01994821 */ addu $t1,$t4,$t9
|
|
.L0f0ab814:
|
|
/* f0ab814: 8c6e0228 */ lw $t6,0x228($v1)
|
|
/* f0ab818: 59c00004 */ blezl $t6,.L0f0ab82c
|
|
/* f0ab81c: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0ab820: 8c6f0220 */ lw $t7,0x220($v1)
|
|
/* f0ab824: 012f4821 */ addu $t1,$t1,$t7
|
|
.L0f0ab828:
|
|
/* f0ab828: 8fb80128 */ lw $t8,0x128($sp)
|
|
.L0f0ab82c:
|
|
/* f0ab82c: 3c190040 */ lui $t9,0x40
|
|
/* f0ab830: 3c0e00ff */ lui $t6,0xff
|
|
/* f0ab834: 35cec040 */ ori $t6,$t6,0xc040
|
|
/* f0ab838: 37393080 */ ori $t9,$t9,0x3080
|
|
/* f0ab83c: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f0ab840: afaf0028 */ sw $t7,0x28($sp)
|
|
/* f0ab844: afb90020 */ sw $t9,0x20($sp)
|
|
/* f0ab848: afae0024 */ sw $t6,0x24($sp)
|
|
/* f0ab84c: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab850: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0ab854: afad0014 */ sw $t5,0x14($sp)
|
|
/* f0ab858: afa90018 */ sw $t1,0x18($sp)
|
|
/* f0ab85c: afab001c */ sw $t3,0x1c($sp)
|
|
/* f0ab860: afa60048 */ sw $a2,0x48($sp)
|
|
/* f0ab864: afa9009c */ sw $t1,0x9c($sp)
|
|
/* f0ab868: 0fc2a7f0 */ jal bgunRenderHudGauge
|
|
/* f0ab86c: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0ab870: 8fb80048 */ lw $t8,0x48($sp)
|
|
/* f0ab874: 3c0e00ff */ lui $t6,0xff
|
|
/* f0ab878: 35cec0a0 */ ori $t6,$t6,0xc0a0
|
|
/* f0ab87c: 27190001 */ addiu $t9,$t8,0x1
|
|
/* f0ab880: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab884: afae0018 */ sw $t6,0x18($sp)
|
|
/* f0ab888: 00402025 */ or $a0,$v0,$zero
|
|
/* f0ab88c: 8fa5009c */ lw $a1,0x9c($sp)
|
|
/* f0ab890: 8fa60054 */ lw $a2,0x54($sp)
|
|
/* f0ab894: 00003825 */ or $a3,$zero,$zero
|
|
/* f0ab898: 0fc2a74b */ jal bgunRenderHudInteger
|
|
/* f0ab89c: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab8a0: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab8a4: 8faf005c */ lw $t7,0x5c($sp)
|
|
.L0f0ab8a8:
|
|
/* f0ab8a8: 24010023 */ addiu $at,$zero,0x23
|
|
/* f0ab8ac: 24090e10 */ addiu $t1,$zero,0xe10
|
|
/* f0ab8b0: 91f80000 */ lbu $t8,0x0($t7)
|
|
/* f0ab8b4: 3c03800a */ lui $v1,%hi(g_Vars+0x45c)
|
|
/* f0ab8b8: 1701007c */ bne $t8,$at,.L0f0abaac
|
|
/* f0ab8bc: 00000000 */ nop
|
|
/* f0ab8c0: 8c63a41c */ lw $v1,%lo(g_Vars+0x45c)($v1)
|
|
/* f0ab8c4: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab8c8: 8faf010c */ lw $t7,0x10c($sp)
|
|
/* f0ab8cc: 0069001a */ div $zero,$v1,$t1
|
|
/* f0ab8d0: 0000c812 */ mflo $t9
|
|
/* f0ab8d4: afb9005c */ sw $t9,0x5c($sp)
|
|
/* f0ab8d8: 01cfc021 */ addu $t8,$t6,$t7
|
|
/* f0ab8dc: 8fae0108 */ lw $t6,0x108($sp)
|
|
/* f0ab8e0: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0ab8e4: afb80044 */ sw $t8,0x44($sp)
|
|
/* f0ab8e8: 15200002 */ bnez $t1,.L0f0ab8f4
|
|
/* f0ab8ec: 00000000 */ nop
|
|
/* f0ab8f0: 0007000d */ break 0x7
|
|
.L0f0ab8f4:
|
|
/* f0ab8f4: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0ab8f8: 15210004 */ bne $t1,$at,.L0f0ab90c
|
|
/* f0ab8fc: 3c018000 */ lui $at,0x8000
|
|
/* f0ab900: 14610002 */ bne $v1,$at,.L0f0ab90c
|
|
/* f0ab904: 00000000 */ nop
|
|
/* f0ab908: 0006000d */ break 0x6
|
|
.L0f0ab90c:
|
|
/* f0ab90c: 032e7823 */ subu $t7,$t9,$t6
|
|
/* f0ab910: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab914: 25f80001 */ addiu $t8,$t7,0x1
|
|
/* f0ab918: afb80060 */ sw $t8,0x60($sp)
|
|
/* f0ab91c: 5b20002e */ blezl $t9,.L0f0ab9d8
|
|
/* f0ab920: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab924: 03290019 */ multu $t9,$t1
|
|
/* f0ab928: 2408003c */ addiu $t0,$zero,0x3c
|
|
/* f0ab92c: 03203025 */ or $a2,$t9,$zero
|
|
/* f0ab930: 3c057f1b */ lui $a1,%hi(var7f1ac18c)
|
|
/* f0ab934: 24a5c18c */ addiu $a1,$a1,%lo(var7f1ac18c)
|
|
/* f0ab938: 27a40078 */ addiu $a0,$sp,0x78
|
|
/* f0ab93c: 00007012 */ mflo $t6
|
|
/* f0ab940: 006e1023 */ subu $v0,$v1,$t6
|
|
/* f0ab944: 00000000 */ nop
|
|
/* f0ab948: 0048001a */ div $zero,$v0,$t0
|
|
/* f0ab94c: 00003812 */ mflo $a3
|
|
/* f0ab950: 15000002 */ bnez $t0,.L0f0ab95c
|
|
/* f0ab954: 00000000 */ nop
|
|
/* f0ab958: 0007000d */ break 0x7
|
|
.L0f0ab95c:
|
|
/* f0ab95c: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0ab960: 15010004 */ bne $t0,$at,.L0f0ab974
|
|
/* f0ab964: 3c018000 */ lui $at,0x8000
|
|
/* f0ab968: 14410002 */ bne $v0,$at,.L0f0ab974
|
|
/* f0ab96c: 00000000 */ nop
|
|
/* f0ab970: 0006000d */ break 0x6
|
|
.L0f0ab974:
|
|
/* f0ab974: 00e80019 */ multu $a3,$t0
|
|
/* f0ab978: 00007812 */ mflo $t7
|
|
/* f0ab97c: 004fc023 */ subu $t8,$v0,$t7
|
|
/* f0ab980: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0ab984: 0338c823 */ subu $t9,$t9,$t8
|
|
/* f0ab988: 0019c8c0 */ sll $t9,$t9,0x3
|
|
/* f0ab98c: 0338c821 */ addu $t9,$t9,$t8
|
|
/* f0ab990: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f0ab994: 0328001a */ div $zero,$t9,$t0
|
|
/* f0ab998: 00007012 */ mflo $t6
|
|
/* f0ab99c: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0ab9a0: 15000002 */ bnez $t0,.L0f0ab9ac
|
|
/* f0ab9a4: 00000000 */ nop
|
|
/* f0ab9a8: 0007000d */ break 0x7
|
|
.L0f0ab9ac:
|
|
/* f0ab9ac: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0ab9b0: 15010004 */ bne $t0,$at,.L0f0ab9c4
|
|
/* f0ab9b4: 3c018000 */ lui $at,0x8000
|
|
/* f0ab9b8: 17210002 */ bne $t9,$at,.L0f0ab9c4
|
|
/* f0ab9bc: 00000000 */ nop
|
|
/* f0ab9c0: 0006000d */ break 0x6
|
|
.L0f0ab9c4:
|
|
/* f0ab9c4: 0c004dad */ jal sprintf
|
|
/* f0ab9c8: 00000000 */ nop
|
|
/* f0ab9cc: 1000002b */ b .L0f0aba7c
|
|
/* f0ab9d0: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0ab9d4: 8faf005c */ lw $t7,0x5c($sp)
|
|
.L0f0ab9d8:
|
|
/* f0ab9d8: 2408003c */ addiu $t0,$zero,0x3c
|
|
/* f0ab9dc: 3c057f1b */ lui $a1,%hi(var7f1ac19c)
|
|
/* f0ab9e0: 01e90019 */ multu $t7,$t1
|
|
/* f0ab9e4: 24a5c19c */ addiu $a1,$a1,%lo(var7f1ac19c)
|
|
/* f0ab9e8: 27a40078 */ addiu $a0,$sp,0x78
|
|
/* f0ab9ec: 0000c012 */ mflo $t8
|
|
/* f0ab9f0: 00781023 */ subu $v0,$v1,$t8
|
|
/* f0ab9f4: 00000000 */ nop
|
|
/* f0ab9f8: 0048001a */ div $zero,$v0,$t0
|
|
/* f0ab9fc: 00003012 */ mflo $a2
|
|
/* f0aba00: 15000002 */ bnez $t0,.L0f0aba0c
|
|
/* f0aba04: 00000000 */ nop
|
|
/* f0aba08: 0007000d */ break 0x7
|
|
.L0f0aba0c:
|
|
/* f0aba0c: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0aba10: 15010004 */ bne $t0,$at,.L0f0aba24
|
|
/* f0aba14: 3c018000 */ lui $at,0x8000
|
|
/* f0aba18: 14410002 */ bne $v0,$at,.L0f0aba24
|
|
/* f0aba1c: 00000000 */ nop
|
|
/* f0aba20: 0006000d */ break 0x6
|
|
.L0f0aba24:
|
|
/* f0aba24: 00c80019 */ multu $a2,$t0
|
|
/* f0aba28: 0000c812 */ mflo $t9
|
|
/* f0aba2c: 00597023 */ subu $t6,$v0,$t9
|
|
/* f0aba30: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0aba34: 01ee7823 */ subu $t7,$t7,$t6
|
|
/* f0aba38: 000f78c0 */ sll $t7,$t7,0x3
|
|
/* f0aba3c: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0aba40: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f0aba44: 01e8001a */ div $zero,$t7,$t0
|
|
/* f0aba48: 00003812 */ mflo $a3
|
|
/* f0aba4c: 15000002 */ bnez $t0,.L0f0aba58
|
|
/* f0aba50: 00000000 */ nop
|
|
/* f0aba54: 0007000d */ break 0x7
|
|
.L0f0aba58:
|
|
/* f0aba58: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0aba5c: 15010004 */ bne $t0,$at,.L0f0aba70
|
|
/* f0aba60: 3c018000 */ lui $at,0x8000
|
|
/* f0aba64: 15e10002 */ bne $t7,$at,.L0f0aba70
|
|
/* f0aba68: 00000000 */ nop
|
|
/* f0aba6c: 0006000d */ break 0x6
|
|
.L0f0aba70:
|
|
/* f0aba70: 0c004dad */ jal sprintf
|
|
/* f0aba74: 00000000 */ nop
|
|
/* f0aba78: 8fa60044 */ lw $a2,0x44($sp)
|
|
.L0f0aba7c:
|
|
/* f0aba7c: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0aba80: 3c1900ff */ lui $t9,0xff
|
|
/* f0aba84: 3739c0a0 */ ori $t9,$t9,0xc0a0
|
|
/* f0aba88: afb90018 */ sw $t9,0x18($sp)
|
|
/* f0aba8c: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aba90: 27a50078 */ addiu $a1,$sp,0x78
|
|
/* f0aba94: 00003825 */ or $a3,$zero,$zero
|
|
/* f0aba98: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0aba9c: 24c6fffe */ addiu $a2,$a2,-2
|
|
/* f0abaa0: 0fc2a6da */ jal bgunRenderHudString
|
|
/* f0abaa4: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0abaa8: afa20130 */ sw $v0,0x130($sp)
|
|
.L0f0abaac:
|
|
/* f0abaac: 0fc54de0 */ jal text0f153780
|
|
/* f0abab0: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0abab4: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0abab8: 3c018008 */ lui $at,%hi(g_ScaleX)
|
|
/* f0ababc: ac2efac0 */ sw $t6,%lo(g_ScaleX)($at)
|
|
.L0f0abac0:
|
|
/* f0abac0: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f0abac4: 27bd0130 */ addiu $sp,$sp,0x130
|
|
/* f0abac8: 03e00008 */ jr $ra
|
|
/* f0abacc: 00000000 */ nop
|
|
);
|
|
#elif VERSION == VERSION_PAL_FINAL
|
|
GLOBAL_ASM(
|
|
glabel bgunRenderHud
|
|
/* f0aad34: 3c0e800a */ lui $t6,0x800a
|
|
/* f0aad38: 8dcea794 */ lw $t6,-0x586c($t6)
|
|
/* f0aad3c: 27bdfed0 */ addiu $sp,$sp,-304
|
|
/* f0aad40: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f0aad44: afa40130 */ sw $a0,0x130($sp)
|
|
/* f0aad48: 0c002e95 */ jal viGetViewTop
|
|
/* f0aad4c: afae012c */ sw $t6,0x12c($sp)
|
|
/* f0aad50: 0c002e77 */ jal viGetViewHeight
|
|
/* f0aad54: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0aad58: 87af0076 */ lh $t7,0x76($sp)
|
|
/* f0aad5c: 3c08800a */ lui $t0,0x800a
|
|
/* f0aad60: 2508a510 */ addiu $t0,$t0,-23280
|
|
/* f0aad64: 8d0e006c */ lw $t6,0x6c($t0)
|
|
/* f0aad68: 004fc021 */ addu $t8,$v0,$t7
|
|
/* f0aad6c: 2719fff3 */ addiu $t9,$t8,-13
|
|
/* f0aad70: 11c00003 */ beqz $t6,.PF0f0aad80
|
|
/* f0aad74: afb90128 */ sw $t9,0x128($sp)
|
|
/* f0aad78: 10000002 */ b .PF0f0aad84
|
|
/* f0aad7c: 24060001 */ li $a2,0x1
|
|
.PF0f0aad80:
|
|
/* f0aad80: 00003025 */ move $a2,$zero
|
|
.PF0f0aad84:
|
|
/* f0aad84: 8d0f0068 */ lw $t7,0x68($t0)
|
|
/* f0aad88: 00001825 */ move $v1,$zero
|
|
/* f0aad8c: 00002825 */ move $a1,$zero
|
|
/* f0aad90: 11e00003 */ beqz $t7,.PF0f0aada0
|
|
/* f0aad94: 00001025 */ move $v0,$zero
|
|
/* f0aad98: 10000001 */ b .PF0f0aada0
|
|
/* f0aad9c: 24030001 */ li $v1,0x1
|
|
.PF0f0aada0:
|
|
/* f0aada0: 8d180064 */ lw $t8,0x64($t0)
|
|
/* f0aada4: 13000003 */ beqz $t8,.PF0f0aadb4
|
|
/* f0aada8: 00000000 */ nop
|
|
/* f0aadac: 10000001 */ b .PF0f0aadb4
|
|
/* f0aadb0: 24050001 */ li $a1,0x1
|
|
.PF0f0aadb4:
|
|
/* f0aadb4: 8d190070 */ lw $t9,0x70($t0)
|
|
/* f0aadb8: 13200003 */ beqz $t9,.PF0f0aadc8
|
|
/* f0aadbc: 00000000 */ nop
|
|
/* f0aadc0: 10000001 */ b .PF0f0aadc8
|
|
/* f0aadc4: 24020001 */ li $v0,0x1
|
|
.PF0f0aadc8:
|
|
/* f0aadc8: 8d18028c */ lw $t8,0x28c($t0)
|
|
/* f0aadcc: 00457021 */ addu $t6,$v0,$a1
|
|
/* f0aadd0: 01c37821 */ addu $t7,$t6,$v1
|
|
/* f0aadd4: afb80120 */ sw $t8,0x120($sp)
|
|
/* f0aadd8: 8fb8012c */ lw $t8,0x12c($sp)
|
|
/* f0aaddc: 01e63821 */ addu $a3,$t7,$a2
|
|
/* f0aade0: 24190009 */ li $t9,0x9
|
|
/* f0aade4: 240e0024 */ li $t6,0x24
|
|
/* f0aade8: 240f0039 */ li $t7,0x39
|
|
/* f0aadec: afa70124 */ sw $a3,0x124($sp)
|
|
/* f0aadf0: afa00110 */ sw $zero,0x110($sp)
|
|
/* f0aadf4: afb9010c */ sw $t9,0x10c($sp)
|
|
/* f0aadf8: afae0108 */ sw $t6,0x108($sp)
|
|
/* f0aadfc: afaf0104 */ sw $t7,0x104($sp)
|
|
/* f0aae00: 83041580 */ lb $a0,0x1580($t8)
|
|
/* f0aae04: 0fc2c524 */ jal weaponFindById
|
|
/* f0aae08: afa70060 */ sw $a3,0x60($sp)
|
|
/* f0aae0c: 8fb9012c */ lw $t9,0x12c($sp)
|
|
/* f0aae10: afa200fc */ sw $v0,0xfc($sp)
|
|
/* f0aae14: 3c02800a */ lui $v0,0x800a
|
|
/* f0aae18: 8f2e00d8 */ lw $t6,0xd8($t9)
|
|
/* f0aae1c: 2442a510 */ addiu $v0,$v0,-23280
|
|
/* f0aae20: 51c00004 */ beqzl $t6,.PF0f0aae34
|
|
/* f0aae24: 8c4f0284 */ lw $t7,0x284($v0)
|
|
/* f0aae28: 10000454 */ b .PF0f0abf7c
|
|
/* f0aae2c: 8fa20130 */ lw $v0,0x130($sp)
|
|
/* f0aae30: 8c4f0284 */ lw $t7,0x284($v0)
|
|
.PF0f0aae34:
|
|
/* f0aae34: 8df81580 */ lw $t8,0x1580($t7)
|
|
/* f0aae38: 33190001 */ andi $t9,$t8,0x1
|
|
/* f0aae3c: 53200004 */ beqzl $t9,.PF0f0aae50
|
|
/* f0aae40: 8c4e000c */ lw $t6,0xc($v0)
|
|
/* f0aae44: 1000044d */ b .PF0f0abf7c
|
|
/* f0aae48: 8fa20130 */ lw $v0,0x130($sp)
|
|
/* f0aae4c: 8c4e000c */ lw $t6,0xc($v0)
|
|
.PF0f0aae50:
|
|
/* f0aae50: 240f0001 */ li $t7,0x1
|
|
/* f0aae54: 29c10005 */ slti $at,$t6,0x5
|
|
/* f0aae58: 10200003 */ beqz $at,.PF0f0aae68
|
|
/* f0aae5c: 00000000 */ nop
|
|
/* f0aae60: 10000446 */ b .PF0f0abf7c
|
|
/* f0aae64: 8fa20130 */ lw $v0,0x130($sp)
|
|
.PF0f0aae68:
|
|
/* f0aae68: 3c018008 */ lui $at,0x8008
|
|
/* f0aae6c: ac2f0020 */ sw $t7,0x20($at)
|
|
/* f0aae70: 0fc550cf */ jal text0f153628
|
|
/* f0aae74: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aae78: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0aae7c: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0aae80: 2b010002 */ slti $at,$t8,0x2
|
|
/* f0aae84: 1420002a */ bnez $at,.PF0f0aaf30
|
|
/* f0aae88: 24190005 */ li $t9,0x5
|
|
/* f0aae8c: 240e001a */ li $t6,0x1a
|
|
/* f0aae90: 240f002f */ li $t7,0x2f
|
|
/* f0aae94: 24010002 */ li $at,0x2
|
|
/* f0aae98: afb9010c */ sw $t9,0x10c($sp)
|
|
/* f0aae9c: afae0108 */ sw $t6,0x108($sp)
|
|
/* f0aaea0: 17010015 */ bne $t8,$at,.PF0f0aaef8
|
|
/* f0aaea4: afaf0104 */ sw $t7,0x104($sp)
|
|
/* f0aaea8: 3c198009 */ lui $t9,0x8009
|
|
/* f0aaeac: 93391040 */ lbu $t9,0x1040($t9)
|
|
/* f0aaeb0: 24010001 */ li $at,0x1
|
|
/* f0aaeb4: 53210009 */ beql $t9,$at,.PF0f0aaedc
|
|
/* f0aaeb8: 8faf0128 */ lw $t7,0x128($sp)
|
|
/* f0aaebc: 0fc54ef9 */ jal optionsGetScreenSplit
|
|
/* f0aaec0: 00000000 */ nop
|
|
/* f0aaec4: 24010001 */ li $at,0x1
|
|
/* f0aaec8: 10410007 */ beq $v0,$at,.PF0f0aaee8
|
|
/* f0aaecc: 8fae0120 */ lw $t6,0x120($sp)
|
|
/* f0aaed0: 55c00006 */ bnezl $t6,.PF0f0aaeec
|
|
/* f0aaed4: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0aaed8: 8faf0128 */ lw $t7,0x128($sp)
|
|
.PF0f0aaedc:
|
|
/* f0aaedc: 25f8000a */ addiu $t8,$t7,0xa
|
|
/* f0aaee0: 10000019 */ b .PF0f0aaf48
|
|
/* f0aaee4: afb80128 */ sw $t8,0x128($sp)
|
|
.PF0f0aaee8:
|
|
/* f0aaee8: 8fb90128 */ lw $t9,0x128($sp)
|
|
.PF0f0aaeec:
|
|
/* f0aaeec: 272e0002 */ addiu $t6,$t9,0x2
|
|
/* f0aaef0: 10000015 */ b .PF0f0aaf48
|
|
/* f0aaef4: afae0128 */ sw $t6,0x128($sp)
|
|
.PF0f0aaef8:
|
|
/* f0aaef8: 8faf0060 */ lw $t7,0x60($sp)
|
|
/* f0aaefc: 8fb80120 */ lw $t8,0x120($sp)
|
|
/* f0aaf00: 29e10003 */ slti $at,$t7,0x3
|
|
/* f0aaf04: 14200010 */ bnez $at,.PF0f0aaf48
|
|
/* f0aaf08: 2b010002 */ slti $at,$t8,0x2
|
|
/* f0aaf0c: 10200005 */ beqz $at,.PF0f0aaf24
|
|
/* f0aaf10: 8faf0128 */ lw $t7,0x128($sp)
|
|
/* f0aaf14: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0aaf18: 272e000a */ addiu $t6,$t9,0xa
|
|
/* f0aaf1c: 1000000a */ b .PF0f0aaf48
|
|
/* f0aaf20: afae0128 */ sw $t6,0x128($sp)
|
|
.PF0f0aaf24:
|
|
/* f0aaf24: 25f80002 */ addiu $t8,$t7,0x2
|
|
/* f0aaf28: 10000007 */ b .PF0f0aaf48
|
|
/* f0aaf2c: afb80128 */ sw $t8,0x128($sp)
|
|
.PF0f0aaf30:
|
|
/* f0aaf30: 0fc54e8c */ jal optionsGetEffectiveScreenSize
|
|
/* f0aaf34: 00000000 */ nop
|
|
/* f0aaf38: 10400003 */ beqz $v0,.PF0f0aaf48
|
|
/* f0aaf3c: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0aaf40: 272e0008 */ addiu $t6,$t9,0x8
|
|
/* f0aaf44: afae0128 */ sw $t6,0x128($sp)
|
|
.PF0f0aaf48:
|
|
/* f0aaf48: 3c19800a */ lui $t9,0x800a
|
|
/* f0aaf4c: 8f39a544 */ lw $t9,-0x5abc($t9)
|
|
/* f0aaf50: 24010032 */ li $at,0x32
|
|
/* f0aaf54: 8fa2012c */ lw $v0,0x12c($sp)
|
|
/* f0aaf58: 00197100 */ sll $t6,$t9,0x4
|
|
/* f0aaf5c: 01d97023 */ subu $t6,$t6,$t9
|
|
/* f0aaf60: 000e70c0 */ sll $t6,$t6,0x3
|
|
/* f0aaf64: 01c1001a */ div $zero,$t6,$at
|
|
/* f0aaf68: 3c0fff00 */ lui $t7,0xff00
|
|
/* f0aaf6c: 35ef0040 */ ori $t7,$t7,0x40
|
|
/* f0aaf70: afaf00f4 */ sw $t7,0xf4($sp)
|
|
/* f0aaf74: 9058063b */ lbu $t8,0x63b($v0)
|
|
/* f0aaf78: 00007812 */ mflo $t7
|
|
/* f0aaf7c: 24420638 */ addiu $v0,$v0,0x638
|
|
/* f0aaf80: afaf00ec */ sw $t7,0xec($sp)
|
|
/* f0aaf84: afa2005c */ sw $v0,0x5c($sp)
|
|
/* f0aaf88: 27a400dc */ addiu $a0,$sp,0xdc
|
|
/* f0aaf8c: 00002825 */ move $a1,$zero
|
|
/* f0aaf90: 0fc26333 */ jal bgunGetWeaponInfo
|
|
/* f0aaf94: afb800f0 */ sw $t8,0xf0($sp)
|
|
/* f0aaf98: 0fc2a432 */ jal bgunIsUsingSecondaryFunction
|
|
/* f0aaf9c: 00000000 */ nop
|
|
/* f0aafa0: afa200e8 */ sw $v0,0xe8($sp)
|
|
/* f0aafa4: 00402025 */ move $a0,$v0
|
|
/* f0aafa8: 27a500dc */ addiu $a1,$sp,0xdc
|
|
/* f0aafac: 0fc26348 */ jal bgun0f098ca0
|
|
/* f0aafb0: 8fa6005c */ lw $a2,0x5c($sp)
|
|
/* f0aafb4: 04400003 */ bltz $v0,.PF0f0aafc4
|
|
/* f0aafb8: 00000000 */ nop
|
|
/* f0aafbc: 8fb800e8 */ lw $t8,0xe8($sp)
|
|
/* f0aafc0: afb800f0 */ sw $t8,0xf0($sp)
|
|
.PF0f0aafc4:
|
|
/* f0aafc4: 0c002e91 */ jal viGetViewLeft
|
|
/* f0aafc8: 00000000 */ nop
|
|
/* f0aafcc: 0c002e73 */ jal viGetViewWidth
|
|
/* f0aafd0: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0aafd4: 87b90076 */ lh $t9,0x76($sp)
|
|
/* f0aafd8: 3c0f8008 */ lui $t7,0x8008
|
|
/* f0aafdc: 8def0020 */ lw $t7,0x20($t7)
|
|
/* f0aafe0: 00597021 */ addu $t6,$v0,$t9
|
|
/* f0aafe4: 8fb9010c */ lw $t9,0x10c($sp)
|
|
/* f0aafe8: 01cf001a */ div $zero,$t6,$t7
|
|
/* f0aafec: 15e00002 */ bnez $t7,.PF0f0aaff8
|
|
/* f0aaff0: 00000000 */ nop
|
|
/* f0aaff4: 0007000d */ break 0x7
|
|
.PF0f0aaff8:
|
|
/* f0aaff8: 2401ffff */ li $at,-1
|
|
/* f0aaffc: 15e10004 */ bne $t7,$at,.PF0f0ab010
|
|
/* f0ab000: 3c018000 */ lui $at,0x8000
|
|
/* f0ab004: 15c10002 */ bne $t6,$at,.PF0f0ab010
|
|
/* f0ab008: 00000000 */ nop
|
|
/* f0ab00c: 0006000d */ break 0x6
|
|
.PF0f0ab010:
|
|
/* f0ab010: 0000c012 */ mflo $t8
|
|
/* f0ab014: 03197023 */ subu $t6,$t8,$t9
|
|
/* f0ab018: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0ab01c: 25cfffe8 */ addiu $t7,$t6,-24
|
|
/* f0ab020: 24010002 */ li $at,0x2
|
|
/* f0ab024: 1701000f */ bne $t8,$at,.PF0f0ab064
|
|
/* f0ab028: afaf0100 */ sw $t7,0x100($sp)
|
|
/* f0ab02c: 0fc54ef9 */ jal optionsGetScreenSplit
|
|
/* f0ab030: 00000000 */ nop
|
|
/* f0ab034: 24070001 */ li $a3,0x1
|
|
/* f0ab038: 10e20004 */ beq $a3,$v0,.PF0f0ab04c
|
|
/* f0ab03c: 3c198009 */ lui $t9,0x8009
|
|
/* f0ab040: 93391040 */ lbu $t9,0x1040($t9)
|
|
/* f0ab044: 54f90008 */ bnel $a3,$t9,.PF0f0ab068
|
|
/* f0ab048: 8fb90060 */ lw $t9,0x60($sp)
|
|
.PF0f0ab04c:
|
|
/* f0ab04c: 8fae0120 */ lw $t6,0x120($sp)
|
|
/* f0ab050: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0ab054: 15c00003 */ bnez $t6,.PF0f0ab064
|
|
/* f0ab058: 25f8000f */ addiu $t8,$t7,0xf
|
|
/* f0ab05c: 1000000b */ b .PF0f0ab08c
|
|
/* f0ab060: afb80100 */ sw $t8,0x100($sp)
|
|
.PF0f0ab064:
|
|
/* f0ab064: 8fb90060 */ lw $t9,0x60($sp)
|
|
.PF0f0ab068:
|
|
/* f0ab068: 8fae0120 */ lw $t6,0x120($sp)
|
|
/* f0ab06c: 24070001 */ li $a3,0x1
|
|
/* f0ab070: 2b210003 */ slti $at,$t9,0x3
|
|
/* f0ab074: 14200005 */ bnez $at,.PF0f0ab08c
|
|
/* f0ab078: 31cf0001 */ andi $t7,$t6,0x1
|
|
/* f0ab07c: 15e00003 */ bnez $t7,.PF0f0ab08c
|
|
/* f0ab080: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0ab084: 2719000f */ addiu $t9,$t8,0xf
|
|
/* f0ab088: afb90100 */ sw $t9,0x100($sp)
|
|
.PF0f0ab08c:
|
|
/* f0ab08c: 8fa600f0 */ lw $a2,0xf0($sp)
|
|
/* f0ab090: 8faa012c */ lw $t2,0x12c($sp)
|
|
/* f0ab094: 54c70014 */ bnel $a2,$a3,.PF0f0ab0e8
|
|
/* f0ab098: 8faa012c */ lw $t2,0x12c($sp)
|
|
/* f0ab09c: 914215e7 */ lbu $v0,0x15e7($t2)
|
|
/* f0ab0a0: 254a1580 */ addiu $t2,$t2,0x1580
|
|
/* f0ab0a4: 284100ff */ slti $at,$v0,0xff
|
|
/* f0ab0a8: 1020000e */ beqz $at,.PF0f0ab0e4
|
|
/* f0ab0ac: 28410080 */ slti $at,$v0,0x80
|
|
/* f0ab0b0: 10200003 */ beqz $at,.PF0f0ab0c0
|
|
/* f0ab0b4: 240e0080 */ li $t6,0x80
|
|
/* f0ab0b8: a14e0067 */ sb $t6,0x67($t2)
|
|
/* f0ab0bc: 31c200ff */ andi $v0,$t6,0xff
|
|
.PF0f0ab0c0:
|
|
/* f0ab0c0: 8faf00ec */ lw $t7,0xec($sp)
|
|
/* f0ab0c4: 241800ff */ li $t8,0xff
|
|
/* f0ab0c8: 004f1821 */ addu $v1,$v0,$t7
|
|
/* f0ab0cc: 28610100 */ slti $at,$v1,0x100
|
|
/* f0ab0d0: 54200004 */ bnezl $at,.PF0f0ab0e4
|
|
/* f0ab0d4: a1430067 */ sb $v1,0x67($t2)
|
|
/* f0ab0d8: 10000002 */ b .PF0f0ab0e4
|
|
/* f0ab0dc: a1580067 */ sb $t8,0x67($t2)
|
|
/* f0ab0e0: a1430067 */ sb $v1,0x67($t2)
|
|
.PF0f0ab0e4:
|
|
/* f0ab0e4: 8faa012c */ lw $t2,0x12c($sp)
|
|
.PF0f0ab0e8:
|
|
/* f0ab0e8: 254a1580 */ addiu $t2,$t2,0x1580
|
|
/* f0ab0ec: 14c0000a */ bnez $a2,.PF0f0ab118
|
|
/* f0ab0f0: 91420067 */ lbu $v0,0x67($t2)
|
|
/* f0ab0f4: 18400008 */ blez $v0,.PF0f0ab118
|
|
/* f0ab0f8: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0ab0fc: 00591823 */ subu $v1,$v0,$t9
|
|
/* f0ab100: 04610004 */ bgez $v1,.PF0f0ab114
|
|
/* f0ab104: 306200ff */ andi $v0,$v1,0xff
|
|
/* f0ab108: a1400067 */ sb $zero,0x67($t2)
|
|
/* f0ab10c: 10000002 */ b .PF0f0ab118
|
|
/* f0ab110: 300200ff */ andi $v0,$zero,0xff
|
|
.PF0f0ab114:
|
|
/* f0ab114: a1430067 */ sb $v1,0x67($t2)
|
|
.PF0f0ab118:
|
|
/* f0ab118: 28410081 */ slti $at,$v0,0x81
|
|
/* f0ab11c: 14200007 */ bnez $at,.PF0f0ab13c
|
|
/* f0ab120: 00027040 */ sll $t6,$v0,0x1
|
|
/* f0ab124: 25cfff00 */ addiu $t7,$t6,-256
|
|
/* f0ab128: 3c01ff00 */ lui $at,0xff00
|
|
/* f0ab12c: 34210040 */ ori $at,$at,0x40
|
|
/* f0ab130: 000fc400 */ sll $t8,$t7,0x10
|
|
/* f0ab134: 0301c825 */ or $t9,$t8,$at
|
|
/* f0ab138: afb900f4 */ sw $t9,0xf4($sp)
|
|
.PF0f0ab13c:
|
|
/* f0ab13c: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab140: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f0ab144: 0fc5513c */ jal textSetPrimColour
|
|
/* f0ab148: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab14c: 3c068008 */ lui $a2,0x8008
|
|
/* f0ab150: 8fa70100 */ lw $a3,0x100($sp)
|
|
/* f0ab154: 24c60020 */ addiu $a2,$a2,0x20
|
|
/* f0ab158: 8cd80000 */ lw $t8,0x0($a2)
|
|
/* f0ab15c: 24effffe */ addiu $t7,$a3,-2
|
|
/* f0ab160: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f0ab164: 01f80019 */ multu $t7,$t8
|
|
/* f0ab168: 3c01f600 */ lui $at,0xf600
|
|
/* f0ab16c: 30a303ff */ andi $v1,$a1,0x3ff
|
|
/* f0ab170: 00037080 */ sll $t6,$v1,0x2
|
|
/* f0ab174: 01c01825 */ move $v1,$t6
|
|
/* f0ab178: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0ab17c: 0000c812 */ mflo $t9
|
|
/* f0ab180: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0ab184: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0ab188: 01e1c025 */ or $t8,$t7,$at
|
|
/* f0ab18c: 0303c825 */ or $t9,$t8,$v1
|
|
/* f0ab190: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0ab194: 8ccf0000 */ lw $t7,0x0($a2)
|
|
/* f0ab198: 24eefff3 */ addiu $t6,$a3,-13
|
|
/* f0ab19c: 01cf0019 */ multu $t6,$t7
|
|
/* f0ab1a0: 24affff5 */ addiu $t7,$a1,-11
|
|
/* f0ab1a4: 0000c012 */ mflo $t8
|
|
/* f0ab1a8: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab1ac: 00197380 */ sll $t6,$t9,0xe
|
|
/* f0ab1b0: 31f803ff */ andi $t8,$t7,0x3ff
|
|
/* f0ab1b4: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0ab1b8: 01d97825 */ or $t7,$t6,$t9
|
|
/* f0ab1bc: ac4f0004 */ sw $t7,0x4($v0)
|
|
/* f0ab1c0: 0fc55153 */ jal text0f153838
|
|
/* f0ab1c4: afa30060 */ sw $v1,0x60($sp)
|
|
/* f0ab1c8: 3c18800a */ lui $t8,0x800a
|
|
/* f0ab1cc: 8f18a798 */ lw $t8,-0x5868($t8)
|
|
/* f0ab1d0: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab1d4: 0fc54d42 */ jal optionsGetShowGunFunction
|
|
/* f0ab1d8: 8f040070 */ lw $a0,0x70($t8)
|
|
/* f0ab1dc: 10400163 */ beqz $v0,.PF0f0ab76c
|
|
/* f0ab1e0: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab1e4: 8fae005c */ lw $t6,0x5c($sp)
|
|
/* f0ab1e8: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0ab1ec: 91c40000 */ lbu $a0,0x0($t6)
|
|
/* f0ab1f0: 0fc2c531 */ jal weaponGetFunctionById
|
|
/* f0ab1f4: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab1f8: 0fc44e8c */ jal invGetCurrentIndex
|
|
/* f0ab1fc: afa200bc */ sw $v0,0xbc($sp)
|
|
/* f0ab200: 0fc44df6 */ jal invGetNameIdByIndex
|
|
/* f0ab204: 00402025 */ move $a0,$v0
|
|
/* f0ab208: 00402025 */ move $a0,$v0
|
|
/* f0ab20c: 0fc5bdaa */ jal langGet
|
|
/* f0ab210: a7a200ba */ sh $v0,0xba($sp)
|
|
/* f0ab214: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab218: 97a300ba */ lhu $v1,0xba($sp)
|
|
/* f0ab21c: 00403025 */ move $a2,$v0
|
|
/* f0ab220: 95590072 */ lhu $t9,0x72($t2)
|
|
/* f0ab224: 3c02800a */ lui $v0,0x800a
|
|
/* f0ab228: 27a400c4 */ addiu $a0,$sp,0xc4
|
|
/* f0ab22c: 10790003 */ beq $v1,$t9,.PF0f0ab23c
|
|
/* f0ab230: 27a500c0 */ addiu $a1,$sp,0xc0
|
|
/* f0ab234: a140006f */ sb $zero,0x6f($t2)
|
|
/* f0ab238: a5430072 */ sh $v1,0x72($t2)
|
|
.PF0f0ab23c:
|
|
/* f0ab23c: 9143006f */ lbu $v1,0x6f($t2)
|
|
/* f0ab240: 3c078008 */ lui $a3,0x8008
|
|
/* f0ab244: 286100ff */ slti $at,$v1,0xff
|
|
/* f0ab248: 5020008b */ beqzl $at,.PF0f0ab478
|
|
/* f0ab24c: 8fa200bc */ lw $v0,0xbc($sp)
|
|
/* f0ab250: 8c42a548 */ lw $v0,-0x5ab8($v0)
|
|
/* f0ab254: 3c0f55ff */ lui $t7,0x55ff
|
|
/* f0ab258: 35efffff */ ori $t7,$t7,0xffff
|
|
/* f0ab25c: 0062c021 */ addu $t8,$v1,$v0
|
|
/* f0ab260: 2b010100 */ slti $at,$t8,0x100
|
|
/* f0ab264: 14200004 */ bnez $at,.PF0f0ab278
|
|
/* f0ab268: afaf00d0 */ sw $t7,0xd0($sp)
|
|
/* f0ab26c: 240e00ff */ li $t6,0xff
|
|
/* f0ab270: 10000003 */ b .PF0f0ab280
|
|
/* f0ab274: a14e006f */ sb $t6,0x6f($t2)
|
|
.PF0f0ab278:
|
|
/* f0ab278: 00627821 */ addu $t7,$v1,$v0
|
|
/* f0ab27c: a14f006f */ sb $t7,0x6f($t2)
|
|
.PF0f0ab280:
|
|
/* f0ab280: 3c188008 */ lui $t8,0x8008
|
|
/* f0ab284: 8f180064 */ lw $t8,0x64($t8)
|
|
/* f0ab288: 8ce70068 */ lw $a3,0x68($a3)
|
|
/* f0ab28c: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab290: afa600d4 */ sw $a2,0xd4($sp)
|
|
/* f0ab294: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab298: 0fc5609a */ jal textMeasure
|
|
/* f0ab29c: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0ab2a0: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0ab2a4: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab2a8: 00002825 */ move $a1,$zero
|
|
/* f0ab2ac: 25d90002 */ addiu $t9,$t6,0x2
|
|
/* f0ab2b0: afb900c0 */ sw $t9,0xc0($sp)
|
|
/* f0ab2b4: 9142006f */ lbu $v0,0x6f($t2)
|
|
/* f0ab2b8: 00027880 */ sll $t7,$v0,0x2
|
|
/* f0ab2bc: 01e27823 */ subu $t7,$t7,$v0
|
|
/* f0ab2c0: 01f9082a */ slt $at,$t7,$t9
|
|
/* f0ab2c4: 50200003 */ beqzl $at,.PF0f0ab2d4
|
|
/* f0ab2c8: 8fb80124 */ lw $t8,0x124($sp)
|
|
/* f0ab2cc: afaf00c0 */ sw $t7,0xc0($sp)
|
|
/* f0ab2d0: 8fb80124 */ lw $t8,0x124($sp)
|
|
.PF0f0ab2d4:
|
|
/* f0ab2d4: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab2d8: 8faf00c0 */ lw $t7,0xc0($sp)
|
|
/* f0ab2dc: 2b010002 */ slti $at,$t8,0x2
|
|
/* f0ab2e0: 14200007 */ bnez $at,.PF0f0ab300
|
|
/* f0ab2e4: 01cfc823 */ subu $t9,$t6,$t7
|
|
/* f0ab2e8: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab2ec: 8faf00c0 */ lw $t7,0xc0($sp)
|
|
/* f0ab2f0: 01cfc823 */ subu $t9,$t6,$t7
|
|
/* f0ab2f4: 2738fff3 */ addiu $t8,$t9,-13
|
|
/* f0ab2f8: 10000003 */ b .PF0f0ab308
|
|
/* f0ab2fc: afb800cc */ sw $t8,0xcc($sp)
|
|
.PF0f0ab300:
|
|
/* f0ab300: 2738fffe */ addiu $t8,$t9,-2
|
|
/* f0ab304: afb800cc */ sw $t8,0xcc($sp)
|
|
.PF0f0ab308:
|
|
/* f0ab308: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0ab30c: 8faf00c4 */ lw $t7,0xc4($sp)
|
|
/* f0ab310: 01cfc823 */ subu $t9,$t6,$t7
|
|
/* f0ab314: 2738fff1 */ addiu $t8,$t9,-15
|
|
/* f0ab318: afb800c8 */ sw $t8,0xc8($sp)
|
|
/* f0ab31c: 9143006f */ lbu $v1,0x6f($t2)
|
|
/* f0ab320: 241800ff */ li $t8,0xff
|
|
/* f0ab324: 286100c1 */ slti $at,$v1,0xc1
|
|
/* f0ab328: 1420000d */ bnez $at,.PF0f0ab360
|
|
/* f0ab32c: 00037200 */ sll $t6,$v1,0x8
|
|
/* f0ab330: 3c01ffff */ lui $at,0xffff
|
|
/* f0ab334: 342140c0 */ ori $at,$at,0x40c0
|
|
/* f0ab338: 01c37023 */ subu $t6,$t6,$v1
|
|
/* f0ab33c: 01c17821 */ addu $t7,$t6,$at
|
|
/* f0ab340: 2401003f */ li $at,0x3f
|
|
/* f0ab344: 01e1001b */ divu $zero,$t7,$at
|
|
/* f0ab348: 0000c812 */ mflo $t9
|
|
/* f0ab34c: 3c0155ff */ lui $at,0x55ff
|
|
/* f0ab350: 03191023 */ subu $v0,$t8,$t9
|
|
/* f0ab354: 3421ff00 */ ori $at,$at,0xff00
|
|
/* f0ab358: 00417025 */ or $t6,$v0,$at
|
|
/* f0ab35c: afae00d0 */ sw $t6,0xd0($sp)
|
|
.PF0f0ab360:
|
|
/* f0ab360: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab364: 0fc5513c */ jal textSetPrimColour
|
|
/* f0ab368: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab36c: 3c038008 */ lui $v1,0x8008
|
|
/* f0ab370: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0ab374: 24630020 */ addiu $v1,$v1,0x20
|
|
/* f0ab378: 8c790000 */ lw $t9,0x0($v1)
|
|
/* f0ab37c: 25f8fff5 */ addiu $t8,$t7,-11
|
|
/* f0ab380: 3c01f600 */ lui $at,0xf600
|
|
/* f0ab384: 03190019 */ multu $t8,$t9
|
|
/* f0ab388: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0ab38c: 00007012 */ mflo $t6
|
|
/* f0ab390: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0ab394: 8fae0060 */ lw $t6,0x60($sp)
|
|
/* f0ab398: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0ab39c: 0301c825 */ or $t9,$t8,$at
|
|
/* f0ab3a0: 032e7825 */ or $t7,$t9,$t6
|
|
/* f0ab3a4: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0ab3a8: 8fb800cc */ lw $t8,0xcc($sp)
|
|
/* f0ab3ac: 8c6e0000 */ lw $t6,0x0($v1)
|
|
/* f0ab3b0: 2719ffff */ addiu $t9,$t8,-1
|
|
/* f0ab3b4: 032e0019 */ multu $t9,$t6
|
|
/* f0ab3b8: 8fae00c8 */ lw $t6,0xc8($sp)
|
|
/* f0ab3bc: 00007812 */ mflo $t7
|
|
/* f0ab3c0: 31f803ff */ andi $t8,$t7,0x3ff
|
|
/* f0ab3c4: 0018cb80 */ sll $t9,$t8,0xe
|
|
/* f0ab3c8: 25cfffff */ addiu $t7,$t6,-1
|
|
/* f0ab3cc: 31f803ff */ andi $t8,$t7,0x3ff
|
|
/* f0ab3d0: 00187080 */ sll $t6,$t8,0x2
|
|
/* f0ab3d4: 032e7825 */ or $t7,$t9,$t6
|
|
/* f0ab3d8: 0fc55153 */ jal text0f153838
|
|
/* f0ab3dc: ac4f0004 */ sw $t7,0x4($v0)
|
|
/* f0ab3e0: 3c018006 */ lui $at,0x8006
|
|
/* f0ab3e4: c4241300 */ lwc1 $f4,0x1300($at)
|
|
/* f0ab3e8: 3c014248 */ lui $at,0x4248
|
|
/* f0ab3ec: 44813000 */ mtc1 $at,$f6
|
|
/* f0ab3f0: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab3f4: 00002825 */ move $a1,$zero
|
|
/* f0ab3f8: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f0ab3fc: 24060032 */ li $a2,0x32
|
|
/* f0ab400: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0ab404: 44045000 */ mfc1 $a0,$f10
|
|
/* f0ab408: 0fc55299 */ jal textSetWaveBlend
|
|
/* f0ab40c: 00000000 */ nop
|
|
/* f0ab410: 2404ffff */ li $a0,-1
|
|
/* f0ab414: 0fc552d3 */ jal textSetWaveColours
|
|
/* f0ab418: 2405ffff */ li $a1,-1
|
|
/* f0ab41c: 3c198008 */ lui $t9,0x8008
|
|
/* f0ab420: 8f390068 */ lw $t9,0x68($t9)
|
|
/* f0ab424: 3c0e8008 */ lui $t6,0x8008
|
|
/* f0ab428: 8dce0064 */ lw $t6,0x64($t6)
|
|
/* f0ab42c: 8faf00d0 */ lw $t7,0xd0($sp)
|
|
/* f0ab430: 8fb800c0 */ lw $t8,0xc0($sp)
|
|
/* f0ab434: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab438: 241903e8 */ li $t9,0x3e8
|
|
/* f0ab43c: afb90020 */ sw $t9,0x20($sp)
|
|
/* f0ab440: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab444: 27a500cc */ addiu $a1,$sp,0xcc
|
|
/* f0ab448: 27a600c8 */ addiu $a2,$sp,0xc8
|
|
/* f0ab44c: 8fa700d4 */ lw $a3,0xd4($sp)
|
|
/* f0ab450: afa00024 */ sw $zero,0x24($sp)
|
|
/* f0ab454: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab458: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0ab45c: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f0ab460: 0fc55c50 */ jal textRenderProjected
|
|
/* f0ab464: afb8001c */ sw $t8,0x1c($sp)
|
|
/* f0ab468: 0fc552d8 */ jal textResetBlends
|
|
/* f0ab46c: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab470: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab474: 8fa200bc */ lw $v0,0xbc($sp)
|
|
.PF0f0ab478:
|
|
/* f0ab478: 504000bd */ beqzl $v0,.PF0f0ab770
|
|
/* f0ab47c: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f0ab480: 94440004 */ lhu $a0,0x4($v0)
|
|
/* f0ab484: 0fc5bdaa */ jal langGet
|
|
/* f0ab488: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab48c: 3c0eff55 */ lui $t6,0xff55
|
|
/* f0ab490: 8fa300bc */ lw $v1,0xbc($sp)
|
|
/* f0ab494: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab498: 35ce55ff */ ori $t6,$t6,0x55ff
|
|
/* f0ab49c: afae00d0 */ sw $t6,0xd0($sp)
|
|
/* f0ab4a0: 946f0004 */ lhu $t7,0x4($v1)
|
|
/* f0ab4a4: 9544006c */ lhu $a0,0x6c($t2)
|
|
/* f0ab4a8: 11e40005 */ beq $t7,$a0,.PF0f0ab4c0
|
|
/* f0ab4ac: 00000000 */ nop
|
|
/* f0ab4b0: 91580067 */ lbu $t8,0x67($t2)
|
|
/* f0ab4b4: 2b010081 */ slti $at,$t8,0x81
|
|
/* f0ab4b8: 50200004 */ beqzl $at,.PF0f0ab4cc
|
|
/* f0ab4bc: a140006e */ sb $zero,0x6e($t2)
|
|
.PF0f0ab4c0:
|
|
/* f0ab4c0: 14800005 */ bnez $a0,.PF0f0ab4d8
|
|
/* f0ab4c4: 00000000 */ nop
|
|
/* f0ab4c8: a140006e */ sb $zero,0x6e($t2)
|
|
.PF0f0ab4cc:
|
|
/* f0ab4cc: 94790004 */ lhu $t9,0x4($v1)
|
|
/* f0ab4d0: a559006c */ sh $t9,0x6c($t2)
|
|
/* f0ab4d4: 3324ffff */ andi $a0,$t9,0xffff
|
|
.PF0f0ab4d8:
|
|
/* f0ab4d8: 0fc5bdaa */ jal langGet
|
|
/* f0ab4dc: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab4e0: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab4e4: 00403025 */ move $a2,$v0
|
|
/* f0ab4e8: 3c02800a */ lui $v0,0x800a
|
|
/* f0ab4ec: 9143006e */ lbu $v1,0x6e($t2)
|
|
/* f0ab4f0: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab4f4: 27a400c4 */ addiu $a0,$sp,0xc4
|
|
/* f0ab4f8: 286100ff */ slti $at,$v1,0xff
|
|
/* f0ab4fc: 1020009b */ beqz $at,.PF0f0ab76c
|
|
/* f0ab500: 27a500c0 */ addiu $a1,$sp,0xc0
|
|
/* f0ab504: 8c42a548 */ lw $v0,-0x5ab8($v0)
|
|
/* f0ab508: 25cffff5 */ addiu $t7,$t6,-11
|
|
/* f0ab50c: afaf0060 */ sw $t7,0x60($sp)
|
|
/* f0ab510: 0062c021 */ addu $t8,$v1,$v0
|
|
/* f0ab514: 2b010100 */ slti $at,$t8,0x100
|
|
/* f0ab518: 14200004 */ bnez $at,.PF0f0ab52c
|
|
/* f0ab51c: 3c078008 */ lui $a3,0x8008
|
|
/* f0ab520: 241900ff */ li $t9,0xff
|
|
/* f0ab524: 10000003 */ b .PF0f0ab534
|
|
/* f0ab528: a159006e */ sb $t9,0x6e($t2)
|
|
.PF0f0ab52c:
|
|
/* f0ab52c: 00627821 */ addu $t7,$v1,$v0
|
|
/* f0ab530: a14f006e */ sb $t7,0x6e($t2)
|
|
.PF0f0ab534:
|
|
/* f0ab534: 8fb800f0 */ lw $t8,0xf0($sp)
|
|
/* f0ab538: 24010001 */ li $at,0x1
|
|
/* f0ab53c: 5701000a */ bnel $t8,$at,.PF0f0ab568
|
|
/* f0ab540: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0ab544: 8fae00bc */ lw $t6,0xbc($sp)
|
|
/* f0ab548: 9559006c */ lhu $t9,0x6c($t2)
|
|
/* f0ab54c: 3c18ffff */ lui $t8,0xffff
|
|
/* f0ab550: 95cf0004 */ lhu $t7,0x4($t6)
|
|
/* f0ab554: 371855ff */ ori $t8,$t8,0x55ff
|
|
/* f0ab558: 572f0003 */ bnel $t9,$t7,.PF0f0ab568
|
|
/* f0ab55c: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0ab560: afb800d0 */ sw $t8,0xd0($sp)
|
|
/* f0ab564: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
.PF0f0ab568:
|
|
/* f0ab568: 8faf00bc */ lw $t7,0xbc($sp)
|
|
/* f0ab56c: 15c00008 */ bnez $t6,.PF0f0ab590
|
|
/* f0ab570: 00000000 */ nop
|
|
/* f0ab574: 9559006c */ lhu $t9,0x6c($t2)
|
|
/* f0ab578: 95f80004 */ lhu $t8,0x4($t7)
|
|
/* f0ab57c: 8fae00d0 */ lw $t6,0xd0($sp)
|
|
/* f0ab580: 3c0100ff */ lui $at,0xff
|
|
/* f0ab584: 13380002 */ beq $t9,$t8,.PF0f0ab590
|
|
/* f0ab588: 01c17825 */ or $t7,$t6,$at
|
|
/* f0ab58c: afaf00d0 */ sw $t7,0xd0($sp)
|
|
.PF0f0ab590:
|
|
/* f0ab590: 3c198008 */ lui $t9,0x8008
|
|
/* f0ab594: 8f390064 */ lw $t9,0x64($t9)
|
|
/* f0ab598: 8ce70068 */ lw $a3,0x68($a3)
|
|
/* f0ab59c: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab5a0: afa600d4 */ sw $a2,0xd4($sp)
|
|
/* f0ab5a4: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab5a8: 0fc5609a */ jal textMeasure
|
|
/* f0ab5ac: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab5b0: 8fb800c0 */ lw $t8,0xc0($sp)
|
|
/* f0ab5b4: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab5b8: 00002825 */ move $a1,$zero
|
|
/* f0ab5bc: 270e0002 */ addiu $t6,$t8,0x2
|
|
/* f0ab5c0: afae00c0 */ sw $t6,0xc0($sp)
|
|
/* f0ab5c4: 9142006e */ lbu $v0,0x6e($t2)
|
|
/* f0ab5c8: 00027880 */ sll $t7,$v0,0x2
|
|
/* f0ab5cc: 01e27823 */ subu $t7,$t7,$v0
|
|
/* f0ab5d0: 01ee082a */ slt $at,$t7,$t6
|
|
/* f0ab5d4: 50200003 */ beqzl $at,.PF0f0ab5e4
|
|
/* f0ab5d8: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0ab5dc: afaf00c0 */ sw $t7,0xc0($sp)
|
|
/* f0ab5e0: 8fb90100 */ lw $t9,0x100($sp)
|
|
.PF0f0ab5e4:
|
|
/* f0ab5e4: 8fb800c0 */ lw $t8,0xc0($sp)
|
|
/* f0ab5e8: 03387823 */ subu $t7,$t9,$t8
|
|
/* f0ab5ec: 8fb800c4 */ lw $t8,0xc4($sp)
|
|
/* f0ab5f0: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0ab5f4: 25eefff3 */ addiu $t6,$t7,-13
|
|
/* f0ab5f8: afae00cc */ sw $t6,0xcc($sp)
|
|
/* f0ab5fc: 03387823 */ subu $t7,$t9,$t8
|
|
/* f0ab600: 25eeffff */ addiu $t6,$t7,-1
|
|
/* f0ab604: afae00c8 */ sw $t6,0xc8($sp)
|
|
/* f0ab608: 9143006e */ lbu $v1,0x6e($t2)
|
|
/* f0ab60c: 240e00ff */ li $t6,0xff
|
|
/* f0ab610: 286100c1 */ slti $at,$v1,0xc1
|
|
/* f0ab614: 1420000e */ bnez $at,.PF0f0ab650
|
|
/* f0ab618: 0003ca00 */ sll $t9,$v1,0x8
|
|
/* f0ab61c: 3c01ffff */ lui $at,0xffff
|
|
/* f0ab620: 342140c0 */ ori $at,$at,0x40c0
|
|
/* f0ab624: 0323c823 */ subu $t9,$t9,$v1
|
|
/* f0ab628: 0321c021 */ addu $t8,$t9,$at
|
|
/* f0ab62c: 2401003f */ li $at,0x3f
|
|
/* f0ab630: 0301001b */ divu $zero,$t8,$at
|
|
/* f0ab634: 8fb900d0 */ lw $t9,0xd0($sp)
|
|
/* f0ab638: 00007812 */ mflo $t7
|
|
/* f0ab63c: 2401ff00 */ li $at,-256
|
|
/* f0ab640: 01cf1023 */ subu $v0,$t6,$t7
|
|
/* f0ab644: 0321c024 */ and $t8,$t9,$at
|
|
/* f0ab648: 03027025 */ or $t6,$t8,$v0
|
|
/* f0ab64c: afae00d0 */ sw $t6,0xd0($sp)
|
|
.PF0f0ab650:
|
|
/* f0ab650: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab654: 0fc5513c */ jal textSetPrimColour
|
|
/* f0ab658: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab65c: 3c038008 */ lui $v1,0x8008
|
|
/* f0ab660: 24630020 */ addiu $v1,$v1,0x20
|
|
/* f0ab664: 8c790000 */ lw $t9,0x0($v1)
|
|
/* f0ab668: 8faf0060 */ lw $t7,0x60($sp)
|
|
/* f0ab66c: 3c01f600 */ lui $at,0xf600
|
|
/* f0ab670: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0ab674: 01f90019 */ multu $t7,$t9
|
|
/* f0ab678: 0000c012 */ mflo $t8
|
|
/* f0ab67c: 330e03ff */ andi $t6,$t8,0x3ff
|
|
/* f0ab680: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0ab684: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0ab688: 01e1c825 */ or $t9,$t7,$at
|
|
/* f0ab68c: 270e0003 */ addiu $t6,$t8,0x3
|
|
/* f0ab690: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0ab694: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0ab698: 03387025 */ or $t6,$t9,$t8
|
|
/* f0ab69c: ac4e0000 */ sw $t6,0x0($v0)
|
|
/* f0ab6a0: 8faf00cc */ lw $t7,0xcc($sp)
|
|
/* f0ab6a4: 8c780000 */ lw $t8,0x0($v1)
|
|
/* f0ab6a8: 25f9ffff */ addiu $t9,$t7,-1
|
|
/* f0ab6ac: 03380019 */ multu $t9,$t8
|
|
/* f0ab6b0: 8fb800c8 */ lw $t8,0xc8($sp)
|
|
/* f0ab6b4: 00007012 */ mflo $t6
|
|
/* f0ab6b8: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0ab6bc: 000fcb80 */ sll $t9,$t7,0xe
|
|
/* f0ab6c0: 270effff */ addiu $t6,$t8,-1
|
|
/* f0ab6c4: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0ab6c8: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0ab6cc: 03387025 */ or $t6,$t9,$t8
|
|
/* f0ab6d0: 0fc55153 */ jal text0f153838
|
|
/* f0ab6d4: ac4e0004 */ sw $t6,0x4($v0)
|
|
/* f0ab6d8: 3c018006 */ lui $at,0x8006
|
|
/* f0ab6dc: c4301300 */ lwc1 $f16,0x1300($at)
|
|
/* f0ab6e0: 3c014248 */ lui $at,0x4248
|
|
/* f0ab6e4: 44819000 */ mtc1 $at,$f18
|
|
/* f0ab6e8: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab6ec: 00002825 */ move $a1,$zero
|
|
/* f0ab6f0: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0ab6f4: 24060032 */ li $a2,0x32
|
|
/* f0ab6f8: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0ab6fc: 44043000 */ mfc1 $a0,$f6
|
|
/* f0ab700: 0fc55299 */ jal textSetWaveBlend
|
|
/* f0ab704: 00000000 */ nop
|
|
/* f0ab708: 2404ffff */ li $a0,-1
|
|
/* f0ab70c: 0fc552d3 */ jal textSetWaveColours
|
|
/* f0ab710: 2405ffff */ li $a1,-1
|
|
/* f0ab714: 3c198008 */ lui $t9,0x8008
|
|
/* f0ab718: 8f390068 */ lw $t9,0x68($t9)
|
|
/* f0ab71c: 3c188008 */ lui $t8,0x8008
|
|
/* f0ab720: 8f180064 */ lw $t8,0x64($t8)
|
|
/* f0ab724: 8fae00d0 */ lw $t6,0xd0($sp)
|
|
/* f0ab728: 8faf00c0 */ lw $t7,0xc0($sp)
|
|
/* f0ab72c: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab730: 241903e8 */ li $t9,0x3e8
|
|
/* f0ab734: afb90020 */ sw $t9,0x20($sp)
|
|
/* f0ab738: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab73c: 27a500cc */ addiu $a1,$sp,0xcc
|
|
/* f0ab740: 27a600c8 */ addiu $a2,$sp,0xc8
|
|
/* f0ab744: 8fa700d4 */ lw $a3,0xd4($sp)
|
|
/* f0ab748: afa00024 */ sw $zero,0x24($sp)
|
|
/* f0ab74c: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab750: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0ab754: afae0018 */ sw $t6,0x18($sp)
|
|
/* f0ab758: 0fc55c50 */ jal textRenderProjected
|
|
/* f0ab75c: afaf001c */ sw $t7,0x1c($sp)
|
|
/* f0ab760: 0fc552d8 */ jal textResetBlends
|
|
/* f0ab764: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab768: 8faa0058 */ lw $t2,0x58($sp)
|
|
.PF0f0ab76c:
|
|
/* f0ab76c: 8fa500fc */ lw $a1,0xfc($sp)
|
|
.PF0f0ab770:
|
|
/* f0ab770: 8fb8005c */ lw $t8,0x5c($sp)
|
|
/* f0ab774: 50a0000a */ beqzl $a1,.PF0f0ab7a0
|
|
/* f0ab778: 8fae0110 */ lw $t6,0x110($sp)
|
|
/* f0ab77c: 930e0003 */ lbu $t6,0x3($t8)
|
|
/* f0ab780: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0ab784: 00afc821 */ addu $t9,$a1,$t7
|
|
/* f0ab788: 8f220014 */ lw $v0,0x14($t9)
|
|
/* f0ab78c: 50400004 */ beqzl $v0,.PF0f0ab7a0
|
|
/* f0ab790: 8fae0110 */ lw $t6,0x110($sp)
|
|
/* f0ab794: 80580007 */ lb $t8,0x7($v0)
|
|
/* f0ab798: afb80110 */ sw $t8,0x110($sp)
|
|
/* f0ab79c: 8fae0110 */ lw $t6,0x110($sp)
|
|
.PF0f0ab7a0:
|
|
/* f0ab7a0: 2403ffff */ li $v1,-1
|
|
/* f0ab7a4: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab7a8: 55c30014 */ bnel $t6,$v1,.PF0f0ab7fc
|
|
/* f0ab7ac: 8faf0110 */ lw $t7,0x110($sp)
|
|
/* f0ab7b0: 91f90003 */ lbu $t9,0x3($t7)
|
|
/* f0ab7b4: 0019c080 */ sll $t8,$t9,0x2
|
|
/* f0ab7b8: 00187023 */ negu $t6,$t8
|
|
/* f0ab7bc: 00ae7821 */ addu $t7,$a1,$t6
|
|
/* f0ab7c0: 8de20018 */ lw $v0,0x18($t7)
|
|
/* f0ab7c4: 50400004 */ beqzl $v0,.PF0f0ab7d8
|
|
/* f0ab7c8: 8fb80110 */ lw $t8,0x110($sp)
|
|
/* f0ab7cc: 80590007 */ lb $t9,0x7($v0)
|
|
/* f0ab7d0: afb90110 */ sw $t9,0x110($sp)
|
|
/* f0ab7d4: 8fb80110 */ lw $t8,0x110($sp)
|
|
.PF0f0ab7d8:
|
|
/* f0ab7d8: 57030008 */ bnel $t8,$v1,.PF0f0ab7fc
|
|
/* f0ab7dc: 8faf0110 */ lw $t7,0x110($sp)
|
|
/* f0ab7e0: 0fc55125 */ jal text0f153780
|
|
/* f0ab7e4: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab7e8: 240e0001 */ li $t6,0x1
|
|
/* f0ab7ec: 3c018008 */ lui $at,0x8008
|
|
/* f0ab7f0: 100001e2 */ b .PF0f0abf7c
|
|
/* f0ab7f4: ac2e0020 */ sw $t6,0x20($at)
|
|
/* f0ab7f8: 8faf0110 */ lw $t7,0x110($sp)
|
|
.PF0f0ab7fc:
|
|
/* f0ab7fc: 81590069 */ lb $t9,0x69($t2)
|
|
/* f0ab800: 8fa4012c */ lw $a0,0x12c($sp)
|
|
/* f0ab804: 11f9000d */ beq $t7,$t9,.PF0f0ab83c
|
|
/* f0ab808: 24841568 */ addiu $a0,$a0,0x1568
|
|
/* f0ab80c: 0fc2a878 */ jal bgunResetAbmag
|
|
/* f0ab810: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab814: 8fa4005c */ lw $a0,0x5c($sp)
|
|
/* f0ab818: 0fc2a878 */ jal bgunResetAbmag
|
|
/* f0ab81c: 2484078c */ addiu $a0,$a0,0x78c
|
|
/* f0ab820: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab824: 0fc2a878 */ jal bgunResetAbmag
|
|
/* f0ab828: 2544005c */ addiu $a0,$t2,0x5c
|
|
/* f0ab82c: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab830: 8fb80110 */ lw $t8,0x110($sp)
|
|
/* f0ab834: a1580069 */ sb $t8,0x69($t2)
|
|
/* f0ab838: 8fa500fc */ lw $a1,0xfc($sp)
|
|
.PF0f0ab83c:
|
|
/* f0ab83c: 8fae012c */ lw $t6,0x12c($sp)
|
|
/* f0ab840: 8fa20110 */ lw $v0,0x110($sp)
|
|
/* f0ab844: 25cf0ddc */ addiu $t7,$t6,0xddc
|
|
/* f0ab848: afaf0060 */ sw $t7,0x60($sp)
|
|
/* f0ab84c: 81d90de4 */ lb $t9,0xde4($t6)
|
|
/* f0ab850: 0002c080 */ sll $t8,$v0,0x2
|
|
/* f0ab854: 00b82021 */ addu $a0,$a1,$t8
|
|
/* f0ab858: 53200076 */ beqzl $t9,.PF0f0aba34
|
|
/* f0ab85c: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab860: 8c8f001c */ lw $t7,0x1c($a0)
|
|
/* f0ab864: 51e00073 */ beqzl $t7,.PF0f0aba34
|
|
/* f0ab868: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab86c: 91d90ddc */ lbu $t9,0xddc($t6)
|
|
/* f0ab870: 24010022 */ li $at,0x22
|
|
/* f0ab874: 5321006f */ beql $t9,$at,.PF0f0aba34
|
|
/* f0ab878: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab87c: afb80050 */ sw $t8,0x50($sp)
|
|
/* f0ab880: afa40054 */ sw $a0,0x54($sp)
|
|
/* f0ab884: 0c002e91 */ jal viGetViewLeft
|
|
/* f0ab888: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab88c: 3c188008 */ lui $t8,0x8008
|
|
/* f0ab890: 8f180020 */ lw $t8,0x20($t8)
|
|
/* f0ab894: 8fb90124 */ lw $t9,0x124($sp)
|
|
/* f0ab898: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0ab89c: 0058001a */ div $zero,$v0,$t8
|
|
/* f0ab8a0: 00007812 */ mflo $t7
|
|
/* f0ab8a4: 25ee0018 */ addiu $t6,$t7,0x18
|
|
/* f0ab8a8: afae0100 */ sw $t6,0x100($sp)
|
|
/* f0ab8ac: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab8b0: 17000002 */ bnez $t8,.PF0f0ab8bc
|
|
/* f0ab8b4: 00000000 */ nop
|
|
/* f0ab8b8: 0007000d */ break 0x7
|
|
.PF0f0ab8bc:
|
|
/* f0ab8bc: 2401ffff */ li $at,-1
|
|
/* f0ab8c0: 17010004 */ bne $t8,$at,.PF0f0ab8d4
|
|
/* f0ab8c4: 3c018000 */ lui $at,0x8000
|
|
/* f0ab8c8: 14410002 */ bne $v0,$at,.PF0f0ab8d4
|
|
/* f0ab8cc: 00000000 */ nop
|
|
/* f0ab8d0: 0006000d */ break 0x6
|
|
.PF0f0ab8d4:
|
|
/* f0ab8d4: 24010002 */ li $at,0x2
|
|
/* f0ab8d8: 57210015 */ bnel $t9,$at,.PF0f0ab930
|
|
/* f0ab8dc: 8fb80124 */ lw $t8,0x124($sp)
|
|
/* f0ab8e0: afa40054 */ sw $a0,0x54($sp)
|
|
/* f0ab8e4: 0fc54ef9 */ jal optionsGetScreenSplit
|
|
/* f0ab8e8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab8ec: 24010001 */ li $at,0x1
|
|
/* f0ab8f0: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0ab8f4: 10410006 */ beq $v0,$at,.PF0f0ab910
|
|
/* f0ab8f8: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab8fc: 3c188009 */ lui $t8,0x8009
|
|
/* f0ab900: 93181040 */ lbu $t8,0x1040($t8)
|
|
/* f0ab904: 24010001 */ li $at,0x1
|
|
/* f0ab908: 57010009 */ bnel $t8,$at,.PF0f0ab930
|
|
/* f0ab90c: 8fb80124 */ lw $t8,0x124($sp)
|
|
.PF0f0ab910:
|
|
/* f0ab910: 8faf0120 */ lw $t7,0x120($sp)
|
|
/* f0ab914: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab918: 24010001 */ li $at,0x1
|
|
/* f0ab91c: 15e10003 */ bne $t7,$at,.PF0f0ab92c
|
|
/* f0ab920: 25d9fff2 */ addiu $t9,$t6,-14
|
|
/* f0ab924: 1000000b */ b .PF0f0ab954
|
|
/* f0ab928: afb90100 */ sw $t9,0x100($sp)
|
|
.PF0f0ab92c:
|
|
/* f0ab92c: 8fb80124 */ lw $t8,0x124($sp)
|
|
.PF0f0ab930:
|
|
/* f0ab930: 8faf0120 */ lw $t7,0x120($sp)
|
|
/* f0ab934: 2b010003 */ slti $at,$t8,0x3
|
|
/* f0ab938: 14200006 */ bnez $at,.PF0f0ab954
|
|
/* f0ab93c: 31ee0001 */ andi $t6,$t7,0x1
|
|
/* f0ab940: 24010001 */ li $at,0x1
|
|
/* f0ab944: 15c10003 */ bne $t6,$at,.PF0f0ab954
|
|
/* f0ab948: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0ab94c: 2738fff2 */ addiu $t8,$t9,-14
|
|
/* f0ab950: afb80100 */ sw $t8,0x100($sp)
|
|
.PF0f0ab954:
|
|
/* f0ab954: 8fa90060 */ lw $t1,0x60($sp)
|
|
/* f0ab958: 8faf0050 */ lw $t7,0x50($sp)
|
|
/* f0ab95c: 012f1821 */ addu $v1,$t1,$t7
|
|
/* f0ab960: 8c680228 */ lw $t0,0x228($v1)
|
|
/* f0ab964: 59000033 */ blezl $t0,.PF0f0aba34
|
|
/* f0ab968: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab96c: 8c8e001c */ lw $t6,0x1c($a0)
|
|
/* f0ab970: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab974: 91d90010 */ lbu $t9,0x10($t6)
|
|
/* f0ab978: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0ab97c: 33380002 */ andi $t8,$t9,0x2
|
|
/* f0ab980: 1700002b */ bnez $t8,.PF0f0aba30
|
|
/* f0ab984: 8fb90108 */ lw $t9,0x108($sp)
|
|
/* f0ab988: 8fb80104 */ lw $t8,0x104($sp)
|
|
/* f0ab98c: 01d91023 */ subu $v0,$t6,$t9
|
|
/* f0ab990: 2459fffd */ addiu $t9,$v0,-3
|
|
/* f0ab994: 00583023 */ subu $a2,$v0,$t8
|
|
/* f0ab998: 2538078c */ addiu $t8,$t1,0x78c
|
|
/* f0ab99c: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0ab9a0: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab9a4: 8c6f0220 */ lw $t7,0x220($v1)
|
|
/* f0ab9a8: 8fae010c */ lw $t6,0x10c($sp)
|
|
/* f0ab9ac: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0ab9b0: 3c1900ff */ lui $t9,0xff
|
|
/* f0ab9b4: 37390040 */ ori $t9,$t9,0x40
|
|
/* f0ab9b8: 00ae3821 */ addu $a3,$a1,$t6
|
|
/* f0ab9bc: 3c0e0030 */ lui $t6,0x30
|
|
/* f0ab9c0: 35ce0080 */ ori $t6,$t6,0x80
|
|
/* f0ab9c4: afae0020 */ sw $t6,0x20($sp)
|
|
/* f0ab9c8: afa70044 */ sw $a3,0x44($sp)
|
|
/* f0ab9cc: afb90024 */ sw $t9,0x24($sp)
|
|
/* f0ab9d0: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab9d4: afa3004c */ sw $v1,0x4c($sp)
|
|
/* f0ab9d8: afa20048 */ sw $v0,0x48($sp)
|
|
/* f0ab9dc: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab9e0: afa8001c */ sw $t0,0x1c($sp)
|
|
/* f0ab9e4: 24c6fffd */ addiu $a2,$a2,-3
|
|
/* f0ab9e8: 0fc2a907 */ jal bgunRenderHudGauge
|
|
/* f0ab9ec: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f0ab9f0: 8fa3004c */ lw $v1,0x4c($sp)
|
|
/* f0ab9f4: 8fb80048 */ lw $t8,0x48($sp)
|
|
/* f0ab9f8: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0ab9fc: 3c0e00ff */ lui $t6,0xff
|
|
/* f0aba00: 8c650220 */ lw $a1,0x220($v1)
|
|
/* f0aba04: 35ce00a0 */ ori $t6,$t6,0xa0
|
|
/* f0aba08: 270ffff8 */ addiu $t7,$t8,-8
|
|
/* f0aba0c: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0aba10: afae0018 */ sw $t6,0x18($sp)
|
|
/* f0aba14: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0aba18: 00402025 */ move $a0,$v0
|
|
/* f0aba1c: 24070001 */ li $a3,0x1
|
|
/* f0aba20: 0fc2a85e */ jal bgunRenderHudInteger
|
|
/* f0aba24: 24c60002 */ addiu $a2,$a2,0x2
|
|
/* f0aba28: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aba2c: afa20130 */ sw $v0,0x130($sp)
|
|
.PF0f0aba30:
|
|
/* f0aba30: 8fb9005c */ lw $t9,0x5c($sp)
|
|
.PF0f0aba34:
|
|
/* f0aba34: 8faf0110 */ lw $t7,0x110($sp)
|
|
/* f0aba38: 83380008 */ lb $t8,0x8($t9)
|
|
/* f0aba3c: 014f7021 */ addu $t6,$t2,$t7
|
|
/* f0aba40: 13000149 */ beqz $t8,.PF0f0abf68
|
|
/* f0aba44: 00000000 */ nop
|
|
/* f0aba48: 81d90064 */ lb $t9,0x64($t6)
|
|
/* f0aba4c: 8fb8012c */ lw $t8,0x12c($sp)
|
|
/* f0aba50: 07200145 */ bltz $t9,.PF0f0abf68
|
|
/* f0aba54: 030f7021 */ addu $t6,$t8,$t7
|
|
/* f0aba58: 81d915e4 */ lb $t9,0x15e4($t6)
|
|
/* f0aba5c: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0aba60: afb80050 */ sw $t8,0x50($sp)
|
|
/* f0aba64: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aba68: 0c002e91 */ jal viGetViewLeft
|
|
/* f0aba6c: afb900a4 */ sw $t9,0xa4($sp)
|
|
/* f0aba70: 0c002e73 */ jal viGetViewWidth
|
|
/* f0aba74: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0aba78: 87ae0076 */ lh $t6,0x76($sp)
|
|
/* f0aba7c: 3c0f8008 */ lui $t7,0x8008
|
|
/* f0aba80: 8def0020 */ lw $t7,0x20($t7)
|
|
/* f0aba84: 004ec821 */ addu $t9,$v0,$t6
|
|
/* f0aba88: 8fae010c */ lw $t6,0x10c($sp)
|
|
/* f0aba8c: 032f001a */ div $zero,$t9,$t7
|
|
/* f0aba90: 0000c012 */ mflo $t8
|
|
/* f0aba94: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aba98: 15e00002 */ bnez $t7,.PF0f0abaa4
|
|
/* f0aba9c: 00000000 */ nop
|
|
/* f0abaa0: 0007000d */ break 0x7
|
|
.PF0f0abaa4:
|
|
/* f0abaa4: 2401ffff */ li $at,-1
|
|
/* f0abaa8: 15e10004 */ bne $t7,$at,.PF0f0ababc
|
|
/* f0abaac: 3c018000 */ lui $at,0x8000
|
|
/* f0abab0: 17210002 */ bne $t9,$at,.PF0f0ababc
|
|
/* f0abab4: 00000000 */ nop
|
|
/* f0abab8: 0006000d */ break 0x6
|
|
.PF0f0ababc:
|
|
/* f0ababc: 030ec823 */ subu $t9,$t8,$t6
|
|
/* f0abac0: 8fb80124 */ lw $t8,0x124($sp)
|
|
/* f0abac4: 272fffe8 */ addiu $t7,$t9,-24
|
|
/* f0abac8: 24010002 */ li $at,0x2
|
|
/* f0abacc: 17010011 */ bne $t8,$at,.PF0f0abb14
|
|
/* f0abad0: afaf0100 */ sw $t7,0x100($sp)
|
|
/* f0abad4: 0fc54ef9 */ jal optionsGetScreenSplit
|
|
/* f0abad8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0abadc: 24010001 */ li $at,0x1
|
|
/* f0abae0: 10410006 */ beq $v0,$at,.PF0f0abafc
|
|
/* f0abae4: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0abae8: 3c0e8009 */ lui $t6,0x8009
|
|
/* f0abaec: 91ce1040 */ lbu $t6,0x1040($t6)
|
|
/* f0abaf0: 24010001 */ li $at,0x1
|
|
/* f0abaf4: 55c10008 */ bnel $t6,$at,.PF0f0abb18
|
|
/* f0abaf8: 8fae0124 */ lw $t6,0x124($sp)
|
|
.PF0f0abafc:
|
|
/* f0abafc: 8fb90120 */ lw $t9,0x120($sp)
|
|
/* f0abb00: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0abb04: 17200003 */ bnez $t9,.PF0f0abb14
|
|
/* f0abb08: 25f8000f */ addiu $t8,$t7,0xf
|
|
/* f0abb0c: 1000000a */ b .PF0f0abb38
|
|
/* f0abb10: afb80100 */ sw $t8,0x100($sp)
|
|
.PF0f0abb14:
|
|
/* f0abb14: 8fae0124 */ lw $t6,0x124($sp)
|
|
.PF0f0abb18:
|
|
/* f0abb18: 8fb90120 */ lw $t9,0x120($sp)
|
|
/* f0abb1c: 29c10003 */ slti $at,$t6,0x3
|
|
/* f0abb20: 14200005 */ bnez $at,.PF0f0abb38
|
|
/* f0abb24: 332f0001 */ andi $t7,$t9,0x1
|
|
/* f0abb28: 15e00003 */ bnez $t7,.PF0f0abb38
|
|
/* f0abb2c: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0abb30: 270e000f */ addiu $t6,$t8,0xf
|
|
/* f0abb34: afae0100 */ sw $t6,0x100($sp)
|
|
.PF0f0abb38:
|
|
/* f0abb38: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
/* f0abb3c: 8fa90050 */ lw $t1,0x50($sp)
|
|
/* f0abb40: 8fb9012c */ lw $t9,0x12c($sp)
|
|
/* f0abb44: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0abb48: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0abb4c: 03387021 */ addu $t6,$t9,$t8
|
|
/* f0abb50: 8fb900fc */ lw $t9,0xfc($sp)
|
|
/* f0abb54: 01e94021 */ addu $t0,$t7,$t1
|
|
/* f0abb58: 8d030228 */ lw $v1,0x228($t0)
|
|
/* f0abb5c: 8dcc17a8 */ lw $t4,0x17a8($t6)
|
|
/* f0abb60: 0329c021 */ addu $t8,$t9,$t1
|
|
/* f0abb64: 58600038 */ blezl $v1,.PF0f0abc48
|
|
/* f0abb68: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
/* f0abb6c: 8f02001c */ lw $v0,0x1c($t8)
|
|
/* f0abb70: 50400035 */ beqzl $v0,.PF0f0abc48
|
|
/* f0abb74: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
/* f0abb78: 904e0010 */ lbu $t6,0x10($v0)
|
|
/* f0abb7c: 25f8078c */ addiu $t8,$t7,0x78c
|
|
/* f0abb80: 3c0f00ff */ lui $t7,0xff
|
|
/* f0abb84: 31d90002 */ andi $t9,$t6,0x2
|
|
/* f0abb88: 1720002e */ bnez $t9,.PF0f0abc44
|
|
/* f0abb8c: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0abb90: 8fb90108 */ lw $t9,0x108($sp)
|
|
/* f0abb94: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0abb98: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0abb9c: 01d91023 */ subu $v0,$t6,$t9
|
|
/* f0abba0: 8fae0104 */ lw $t6,0x104($sp)
|
|
/* f0abba4: 8fb9010c */ lw $t9,0x10c($sp)
|
|
/* f0abba8: 2458fff8 */ addiu $t8,$v0,-8
|
|
/* f0abbac: 004e3023 */ subu $a2,$v0,$t6
|
|
/* f0abbb0: 244efffd */ addiu $t6,$v0,-3
|
|
/* f0abbb4: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0abbb8: 00b93821 */ addu $a3,$a1,$t9
|
|
/* f0abbbc: 8d190220 */ lw $t9,0x220($t0)
|
|
/* f0abbc0: 3c0e0030 */ lui $t6,0x30
|
|
/* f0abbc4: 35ce0080 */ ori $t6,$t6,0x80
|
|
/* f0abbc8: 35ef0040 */ ori $t7,$t7,0x40
|
|
/* f0abbcc: afaf0024 */ sw $t7,0x24($sp)
|
|
/* f0abbd0: afae0020 */ sw $t6,0x20($sp)
|
|
/* f0abbd4: afac00a0 */ sw $t4,0xa0($sp)
|
|
/* f0abbd8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0abbdc: afa80038 */ sw $t0,0x38($sp)
|
|
/* f0abbe0: afb80054 */ sw $t8,0x54($sp)
|
|
/* f0abbe4: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0abbe8: afa3001c */ sw $v1,0x1c($sp)
|
|
/* f0abbec: 24c6fffd */ addiu $a2,$a2,-3
|
|
/* f0abbf0: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0abbf4: 0fc2a907 */ jal bgunRenderHudGauge
|
|
/* f0abbf8: afb90018 */ sw $t9,0x18($sp)
|
|
/* f0abbfc: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f0abc00: 8fa60100 */ lw $a2,0x100($sp)
|
|
/* f0abc04: 8fb90054 */ lw $t9,0x54($sp)
|
|
/* f0abc08: 3c0e00ff */ lui $t6,0xff
|
|
/* f0abc0c: 8d050220 */ lw $a1,0x220($t0)
|
|
/* f0abc10: 35ce00a0 */ ori $t6,$t6,0xa0
|
|
/* f0abc14: afae0018 */ sw $t6,0x18($sp)
|
|
/* f0abc18: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0abc1c: 00402025 */ move $a0,$v0
|
|
/* f0abc20: 00003825 */ move $a3,$zero
|
|
/* f0abc24: 24c6fffe */ addiu $a2,$a2,-2
|
|
/* f0abc28: 0fc2a85e */ jal bgunRenderHudInteger
|
|
/* f0abc2c: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0abc30: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f0abc34: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0abc38: 8fac00a0 */ lw $t4,0xa0($sp)
|
|
/* f0abc3c: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0abc40: 8fa90050 */ lw $t1,0x50($sp)
|
|
.PF0f0abc44:
|
|
/* f0abc44: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
.PF0f0abc48:
|
|
/* f0abc48: 3c0b8007 */ lui $t3,0x8007
|
|
/* f0abc4c: 8fb900fc */ lw $t9,0xfc($sp)
|
|
/* f0abc50: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0abc54: 030fc023 */ subu $t8,$t8,$t7
|
|
/* f0abc58: 0018c080 */ sll $t8,$t8,0x2
|
|
/* f0abc5c: 01785821 */ addu $t3,$t3,$t8
|
|
/* f0abc60: 8d6b06f8 */ lw $t3,0x6f8($t3)
|
|
/* f0abc64: 03297021 */ addu $t6,$t9,$t1
|
|
/* f0abc68: 5960003e */ blezl $t3,.PF0f0abd64
|
|
/* f0abc6c: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0abc70: 8dcf001c */ lw $t7,0x1c($t6)
|
|
/* f0abc74: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0abc78: 91e20010 */ lbu $v0,0x10($t7)
|
|
/* f0abc7c: 272efffe */ addiu $t6,$t9,-2
|
|
/* f0abc80: 30580001 */ andi $t8,$v0,0x1
|
|
/* f0abc84: 57000037 */ bnezl $t8,.PF0f0abd64
|
|
/* f0abc88: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0abc8c: 8faf0128 */ lw $t7,0x128($sp)
|
|
/* f0abc90: 8fb80108 */ lw $t8,0x108($sp)
|
|
/* f0abc94: afae0054 */ sw $t6,0x54($sp)
|
|
/* f0abc98: 8fae010c */ lw $t6,0x10c($sp)
|
|
/* f0abc9c: 01f83023 */ subu $a2,$t7,$t8
|
|
/* f0abca0: 304f0002 */ andi $t7,$v0,0x2
|
|
/* f0abca4: 01804825 */ move $t1,$t4
|
|
/* f0abca8: 254d005c */ addiu $t5,$t2,0x5c
|
|
/* f0abcac: 11e0000d */ beqz $t7,.PF0f0abce4
|
|
/* f0abcb0: 032e3821 */ addu $a3,$t9,$t6
|
|
/* f0abcb4: 8d0e0228 */ lw $t6,0x228($t0)
|
|
/* f0abcb8: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0abcbc: 8fb90050 */ lw $t9,0x50($sp)
|
|
/* f0abcc0: 19c00003 */ blez $t6,.PF0f0abcd0
|
|
/* f0abcc4: 03191821 */ addu $v1,$t8,$t9
|
|
/* f0abcc8: 8d0f0220 */ lw $t7,0x220($t0)
|
|
/* f0abccc: 018f4821 */ addu $t1,$t4,$t7
|
|
.PF0f0abcd0:
|
|
/* f0abcd0: 8c780228 */ lw $t8,0x228($v1)
|
|
/* f0abcd4: 5b000004 */ blezl $t8,.PF0f0abce8
|
|
/* f0abcd8: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0abcdc: 8c790220 */ lw $t9,0x220($v1)
|
|
/* f0abce0: 01394821 */ addu $t1,$t1,$t9
|
|
.PF0f0abce4:
|
|
/* f0abce4: 8fae0128 */ lw $t6,0x128($sp)
|
|
.PF0f0abce8:
|
|
/* f0abce8: 3c0f0040 */ lui $t7,0x40
|
|
/* f0abcec: 3c1800ff */ lui $t8,0xff
|
|
/* f0abcf0: 3718c040 */ ori $t8,$t8,0xc040
|
|
/* f0abcf4: 35ef3080 */ ori $t7,$t7,0x3080
|
|
/* f0abcf8: 24190001 */ li $t9,0x1
|
|
/* f0abcfc: afb90028 */ sw $t9,0x28($sp)
|
|
/* f0abd00: afaf0020 */ sw $t7,0x20($sp)
|
|
/* f0abd04: afb80024 */ sw $t8,0x24($sp)
|
|
/* f0abd08: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0abd0c: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0abd10: afad0014 */ sw $t5,0x14($sp)
|
|
/* f0abd14: afa90018 */ sw $t1,0x18($sp)
|
|
/* f0abd18: afab001c */ sw $t3,0x1c($sp)
|
|
/* f0abd1c: afa60048 */ sw $a2,0x48($sp)
|
|
/* f0abd20: afa9009c */ sw $t1,0x9c($sp)
|
|
/* f0abd24: 0fc2a907 */ jal bgunRenderHudGauge
|
|
/* f0abd28: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0abd2c: 8fae0048 */ lw $t6,0x48($sp)
|
|
/* f0abd30: 3c1800ff */ lui $t8,0xff
|
|
/* f0abd34: 3718c0a0 */ ori $t8,$t8,0xc0a0
|
|
/* f0abd38: 25cf0001 */ addiu $t7,$t6,0x1
|
|
/* f0abd3c: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0abd40: afb80018 */ sw $t8,0x18($sp)
|
|
/* f0abd44: 00402025 */ move $a0,$v0
|
|
/* f0abd48: 8fa5009c */ lw $a1,0x9c($sp)
|
|
/* f0abd4c: 8fa60054 */ lw $a2,0x54($sp)
|
|
/* f0abd50: 00003825 */ move $a3,$zero
|
|
/* f0abd54: 0fc2a85e */ jal bgunRenderHudInteger
|
|
/* f0abd58: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0abd5c: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0abd60: 8fb9005c */ lw $t9,0x5c($sp)
|
|
.PF0f0abd64:
|
|
/* f0abd64: 24010023 */ li $at,0x23
|
|
/* f0abd68: 24080bb8 */ li $t0,0xbb8
|
|
/* f0abd6c: 932e0000 */ lbu $t6,0x0($t9)
|
|
/* f0abd70: 3c03800a */ lui $v1,0x800a
|
|
/* f0abd74: 15c1007c */ bne $t6,$at,.PF0f0abf68
|
|
/* f0abd78: 00000000 */ nop
|
|
/* f0abd7c: 8c63a96c */ lw $v1,-0x5694($v1)
|
|
/* f0abd80: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0abd84: 8fb9010c */ lw $t9,0x10c($sp)
|
|
/* f0abd88: 0068001a */ div $zero,$v1,$t0
|
|
/* f0abd8c: 00007812 */ mflo $t7
|
|
/* f0abd90: afaf005c */ sw $t7,0x5c($sp)
|
|
/* f0abd94: 03197021 */ addu $t6,$t8,$t9
|
|
/* f0abd98: 8fb80108 */ lw $t8,0x108($sp)
|
|
/* f0abd9c: 8faf0128 */ lw $t7,0x128($sp)
|
|
/* f0abda0: afae0044 */ sw $t6,0x44($sp)
|
|
/* f0abda4: 15000002 */ bnez $t0,.PF0f0abdb0
|
|
/* f0abda8: 00000000 */ nop
|
|
/* f0abdac: 0007000d */ break 0x7
|
|
.PF0f0abdb0:
|
|
/* f0abdb0: 2401ffff */ li $at,-1
|
|
/* f0abdb4: 15010004 */ bne $t0,$at,.PF0f0abdc8
|
|
/* f0abdb8: 3c018000 */ lui $at,0x8000
|
|
/* f0abdbc: 14610002 */ bne $v1,$at,.PF0f0abdc8
|
|
/* f0abdc0: 00000000 */ nop
|
|
/* f0abdc4: 0006000d */ break 0x6
|
|
.PF0f0abdc8:
|
|
/* f0abdc8: 01f8c823 */ subu $t9,$t7,$t8
|
|
/* f0abdcc: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0abdd0: 272e0001 */ addiu $t6,$t9,0x1
|
|
/* f0abdd4: afae0060 */ sw $t6,0x60($sp)
|
|
/* f0abdd8: 59e0002e */ blezl $t7,.PF0f0abe94
|
|
/* f0abddc: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0abde0: 01e80019 */ multu $t7,$t0
|
|
/* f0abde4: 24090032 */ li $t1,0x32
|
|
/* f0abde8: 01e03025 */ move $a2,$t7
|
|
/* f0abdec: 3c057f1b */ lui $a1,0x7f1b
|
|
/* f0abdf0: 24a5d37c */ addiu $a1,$a1,-11396
|
|
/* f0abdf4: 27a40078 */ addiu $a0,$sp,0x78
|
|
/* f0abdf8: 0000c012 */ mflo $t8
|
|
/* f0abdfc: 00781023 */ subu $v0,$v1,$t8
|
|
/* f0abe00: 00000000 */ nop
|
|
/* f0abe04: 0049001a */ div $zero,$v0,$t1
|
|
/* f0abe08: 00003812 */ mflo $a3
|
|
/* f0abe0c: 15200002 */ bnez $t1,.PF0f0abe18
|
|
/* f0abe10: 00000000 */ nop
|
|
/* f0abe14: 0007000d */ break 0x7
|
|
.PF0f0abe18:
|
|
/* f0abe18: 2401ffff */ li $at,-1
|
|
/* f0abe1c: 15210004 */ bne $t1,$at,.PF0f0abe30
|
|
/* f0abe20: 3c018000 */ lui $at,0x8000
|
|
/* f0abe24: 14410002 */ bne $v0,$at,.PF0f0abe30
|
|
/* f0abe28: 00000000 */ nop
|
|
/* f0abe2c: 0006000d */ break 0x6
|
|
.PF0f0abe30:
|
|
/* f0abe30: 00e90019 */ multu $a3,$t1
|
|
/* f0abe34: 0000c812 */ mflo $t9
|
|
/* f0abe38: 00597023 */ subu $t6,$v0,$t9
|
|
/* f0abe3c: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0abe40: 01ee7823 */ subu $t7,$t7,$t6
|
|
/* f0abe44: 000f78c0 */ sll $t7,$t7,0x3
|
|
/* f0abe48: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0abe4c: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f0abe50: 01e9001a */ div $zero,$t7,$t1
|
|
/* f0abe54: 0000c012 */ mflo $t8
|
|
/* f0abe58: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0abe5c: 15200002 */ bnez $t1,.PF0f0abe68
|
|
/* f0abe60: 00000000 */ nop
|
|
/* f0abe64: 0007000d */ break 0x7
|
|
.PF0f0abe68:
|
|
/* f0abe68: 2401ffff */ li $at,-1
|
|
/* f0abe6c: 15210004 */ bne $t1,$at,.PF0f0abe80
|
|
/* f0abe70: 3c018000 */ lui $at,0x8000
|
|
/* f0abe74: 15e10002 */ bne $t7,$at,.PF0f0abe80
|
|
/* f0abe78: 00000000 */ nop
|
|
/* f0abe7c: 0006000d */ break 0x6
|
|
.PF0f0abe80:
|
|
/* f0abe80: 0c004d11 */ jal sprintf
|
|
/* f0abe84: 00000000 */ nop
|
|
/* f0abe88: 1000002b */ b .PF0f0abf38
|
|
/* f0abe8c: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0abe90: 8fb9005c */ lw $t9,0x5c($sp)
|
|
.PF0f0abe94:
|
|
/* f0abe94: 24090032 */ li $t1,0x32
|
|
/* f0abe98: 3c057f1b */ lui $a1,0x7f1b
|
|
/* f0abe9c: 03280019 */ multu $t9,$t0
|
|
/* f0abea0: 24a5d38c */ addiu $a1,$a1,-11380
|
|
/* f0abea4: 27a40078 */ addiu $a0,$sp,0x78
|
|
/* f0abea8: 00007012 */ mflo $t6
|
|
/* f0abeac: 006e1023 */ subu $v0,$v1,$t6
|
|
/* f0abeb0: 00000000 */ nop
|
|
/* f0abeb4: 0049001a */ div $zero,$v0,$t1
|
|
/* f0abeb8: 00003012 */ mflo $a2
|
|
/* f0abebc: 15200002 */ bnez $t1,.PF0f0abec8
|
|
/* f0abec0: 00000000 */ nop
|
|
/* f0abec4: 0007000d */ break 0x7
|
|
.PF0f0abec8:
|
|
/* f0abec8: 2401ffff */ li $at,-1
|
|
/* f0abecc: 15210004 */ bne $t1,$at,.PF0f0abee0
|
|
/* f0abed0: 3c018000 */ lui $at,0x8000
|
|
/* f0abed4: 14410002 */ bne $v0,$at,.PF0f0abee0
|
|
/* f0abed8: 00000000 */ nop
|
|
/* f0abedc: 0006000d */ break 0x6
|
|
.PF0f0abee0:
|
|
/* f0abee0: 00c90019 */ multu $a2,$t1
|
|
/* f0abee4: 00007812 */ mflo $t7
|
|
/* f0abee8: 004fc023 */ subu $t8,$v0,$t7
|
|
/* f0abeec: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0abef0: 0338c823 */ subu $t9,$t9,$t8
|
|
/* f0abef4: 0019c8c0 */ sll $t9,$t9,0x3
|
|
/* f0abef8: 0338c821 */ addu $t9,$t9,$t8
|
|
/* f0abefc: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f0abf00: 0329001a */ div $zero,$t9,$t1
|
|
/* f0abf04: 00003812 */ mflo $a3
|
|
/* f0abf08: 15200002 */ bnez $t1,.PF0f0abf14
|
|
/* f0abf0c: 00000000 */ nop
|
|
/* f0abf10: 0007000d */ break 0x7
|
|
.PF0f0abf14:
|
|
/* f0abf14: 2401ffff */ li $at,-1
|
|
/* f0abf18: 15210004 */ bne $t1,$at,.PF0f0abf2c
|
|
/* f0abf1c: 3c018000 */ lui $at,0x8000
|
|
/* f0abf20: 17210002 */ bne $t9,$at,.PF0f0abf2c
|
|
/* f0abf24: 00000000 */ nop
|
|
/* f0abf28: 0006000d */ break 0x6
|
|
.PF0f0abf2c:
|
|
/* f0abf2c: 0c004d11 */ jal sprintf
|
|
/* f0abf30: 00000000 */ nop
|
|
/* f0abf34: 8fa60044 */ lw $a2,0x44($sp)
|
|
.PF0f0abf38:
|
|
/* f0abf38: 8fae0060 */ lw $t6,0x60($sp)
|
|
/* f0abf3c: 3c0f00ff */ lui $t7,0xff
|
|
/* f0abf40: 35efc0a0 */ ori $t7,$t7,0xc0a0
|
|
/* f0abf44: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f0abf48: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0abf4c: 27a50078 */ addiu $a1,$sp,0x78
|
|
/* f0abf50: 00003825 */ move $a3,$zero
|
|
/* f0abf54: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0abf58: 24c6fffe */ addiu $a2,$a2,-2
|
|
/* f0abf5c: 0fc2a7ed */ jal bgunRenderHudString
|
|
/* f0abf60: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0abf64: afa20130 */ sw $v0,0x130($sp)
|
|
.PF0f0abf68:
|
|
/* f0abf68: 0fc55125 */ jal text0f153780
|
|
/* f0abf6c: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0abf70: 24180001 */ li $t8,0x1
|
|
/* f0abf74: 3c018008 */ lui $at,0x8008
|
|
/* f0abf78: ac380020 */ sw $t8,0x20($at)
|
|
.PF0f0abf7c:
|
|
/* f0abf7c: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f0abf80: 27bd0130 */ addiu $sp,$sp,0x130
|
|
/* f0abf84: 03e00008 */ jr $ra
|
|
/* f0abf88: 00000000 */ nop
|
|
);
|
|
#elif VERSION == VERSION_PAL_BETA
|
|
GLOBAL_ASM(
|
|
glabel bgunRenderHud
|
|
/* f0aac84: 3c0e800a */ lui $t6,0x800a
|
|
/* f0aac88: 8dcee754 */ lw $t6,-0x18ac($t6)
|
|
/* f0aac8c: 27bdfed0 */ addiu $sp,$sp,-304
|
|
/* f0aac90: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f0aac94: afa40130 */ sw $a0,0x130($sp)
|
|
/* f0aac98: 0c002e8f */ jal viGetViewTop
|
|
/* f0aac9c: afae012c */ sw $t6,0x12c($sp)
|
|
/* f0aaca0: 0c002e71 */ jal viGetViewHeight
|
|
/* f0aaca4: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0aaca8: 87af0076 */ lh $t7,0x76($sp)
|
|
/* f0aacac: 3c08800a */ lui $t0,0x800a
|
|
/* f0aacb0: 2508e4d0 */ addiu $t0,$t0,-6960
|
|
/* f0aacb4: 8d0e006c */ lw $t6,0x6c($t0)
|
|
/* f0aacb8: 004fc021 */ addu $t8,$v0,$t7
|
|
/* f0aacbc: 2719fff3 */ addiu $t9,$t8,-13
|
|
/* f0aacc0: 11c00003 */ beqz $t6,.PB0f0aacd0
|
|
/* f0aacc4: afb90128 */ sw $t9,0x128($sp)
|
|
/* f0aacc8: 10000002 */ b .PB0f0aacd4
|
|
/* f0aaccc: 24060001 */ li $a2,0x1
|
|
.PB0f0aacd0:
|
|
/* f0aacd0: 00003025 */ move $a2,$zero
|
|
.PB0f0aacd4:
|
|
/* f0aacd4: 8d0f0068 */ lw $t7,0x68($t0)
|
|
/* f0aacd8: 00001825 */ move $v1,$zero
|
|
/* f0aacdc: 00002825 */ move $a1,$zero
|
|
/* f0aace0: 11e00003 */ beqz $t7,.PB0f0aacf0
|
|
/* f0aace4: 00001025 */ move $v0,$zero
|
|
/* f0aace8: 10000001 */ b .PB0f0aacf0
|
|
/* f0aacec: 24030001 */ li $v1,0x1
|
|
.PB0f0aacf0:
|
|
/* f0aacf0: 8d180064 */ lw $t8,0x64($t0)
|
|
/* f0aacf4: 13000003 */ beqz $t8,.PB0f0aad04
|
|
/* f0aacf8: 00000000 */ nop
|
|
/* f0aacfc: 10000001 */ b .PB0f0aad04
|
|
/* f0aad00: 24050001 */ li $a1,0x1
|
|
.PB0f0aad04:
|
|
/* f0aad04: 8d190070 */ lw $t9,0x70($t0)
|
|
/* f0aad08: 13200003 */ beqz $t9,.PB0f0aad18
|
|
/* f0aad0c: 00000000 */ nop
|
|
/* f0aad10: 10000001 */ b .PB0f0aad18
|
|
/* f0aad14: 24020001 */ li $v0,0x1
|
|
.PB0f0aad18:
|
|
/* f0aad18: 8d18028c */ lw $t8,0x28c($t0)
|
|
/* f0aad1c: 00457021 */ addu $t6,$v0,$a1
|
|
/* f0aad20: 01c37821 */ addu $t7,$t6,$v1
|
|
/* f0aad24: afb80120 */ sw $t8,0x120($sp)
|
|
/* f0aad28: 8fb8012c */ lw $t8,0x12c($sp)
|
|
/* f0aad2c: 01e63821 */ addu $a3,$t7,$a2
|
|
/* f0aad30: 24190009 */ li $t9,0x9
|
|
/* f0aad34: 240e0024 */ li $t6,0x24
|
|
/* f0aad38: 240f0039 */ li $t7,0x39
|
|
/* f0aad3c: afa70124 */ sw $a3,0x124($sp)
|
|
/* f0aad40: afa00110 */ sw $zero,0x110($sp)
|
|
/* f0aad44: afb9010c */ sw $t9,0x10c($sp)
|
|
/* f0aad48: afae0108 */ sw $t6,0x108($sp)
|
|
/* f0aad4c: afaf0104 */ sw $t7,0x104($sp)
|
|
/* f0aad50: 83041580 */ lb $a0,0x1580($t8)
|
|
/* f0aad54: 0fc2c4f8 */ jal weaponFindById
|
|
/* f0aad58: afa70060 */ sw $a3,0x60($sp)
|
|
/* f0aad5c: 8fb9012c */ lw $t9,0x12c($sp)
|
|
/* f0aad60: afa200fc */ sw $v0,0xfc($sp)
|
|
/* f0aad64: 3c02800a */ lui $v0,0x800a
|
|
/* f0aad68: 8f2e00d8 */ lw $t6,0xd8($t9)
|
|
/* f0aad6c: 2442e4d0 */ addiu $v0,$v0,-6960
|
|
/* f0aad70: 51c00004 */ beqzl $t6,.PB0f0aad84
|
|
/* f0aad74: 8c4f0284 */ lw $t7,0x284($v0)
|
|
/* f0aad78: 10000454 */ b .PB0f0abecc
|
|
/* f0aad7c: 8fa20130 */ lw $v0,0x130($sp)
|
|
/* f0aad80: 8c4f0284 */ lw $t7,0x284($v0)
|
|
.PB0f0aad84:
|
|
/* f0aad84: 8df81580 */ lw $t8,0x1580($t7)
|
|
/* f0aad88: 33190001 */ andi $t9,$t8,0x1
|
|
/* f0aad8c: 53200004 */ beqzl $t9,.PB0f0aada0
|
|
/* f0aad90: 8c4e000c */ lw $t6,0xc($v0)
|
|
/* f0aad94: 1000044d */ b .PB0f0abecc
|
|
/* f0aad98: 8fa20130 */ lw $v0,0x130($sp)
|
|
/* f0aad9c: 8c4e000c */ lw $t6,0xc($v0)
|
|
.PB0f0aada0:
|
|
/* f0aada0: 240f0001 */ li $t7,0x1
|
|
/* f0aada4: 29c10005 */ slti $at,$t6,0x5
|
|
/* f0aada8: 10200003 */ beqz $at,.PB0f0aadb8
|
|
/* f0aadac: 00000000 */ nop
|
|
/* f0aadb0: 10000446 */ b .PB0f0abecc
|
|
/* f0aadb4: 8fa20130 */ lw $v0,0x130($sp)
|
|
.PB0f0aadb8:
|
|
/* f0aadb8: 3c018008 */ lui $at,0x8008
|
|
/* f0aadbc: ac2f1f90 */ sw $t7,0x1f90($at)
|
|
/* f0aadc0: 0fc5528f */ jal text0f153628
|
|
/* f0aadc4: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aadc8: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0aadcc: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0aadd0: 2b010002 */ slti $at,$t8,0x2
|
|
/* f0aadd4: 1420002a */ bnez $at,.PB0f0aae80
|
|
/* f0aadd8: 24190005 */ li $t9,0x5
|
|
/* f0aaddc: 240e001a */ li $t6,0x1a
|
|
/* f0aade0: 240f002f */ li $t7,0x2f
|
|
/* f0aade4: 24010002 */ li $at,0x2
|
|
/* f0aade8: afb9010c */ sw $t9,0x10c($sp)
|
|
/* f0aadec: afae0108 */ sw $t6,0x108($sp)
|
|
/* f0aadf0: 17010015 */ bne $t8,$at,.PB0f0aae48
|
|
/* f0aadf4: afaf0104 */ sw $t7,0x104($sp)
|
|
/* f0aadf8: 3c198009 */ lui $t9,0x8009
|
|
/* f0aadfc: 93392fd0 */ lbu $t9,0x2fd0($t9)
|
|
/* f0aae00: 24010001 */ li $at,0x1
|
|
/* f0aae04: 53210009 */ beql $t9,$at,.PB0f0aae2c
|
|
/* f0aae08: 8faf0128 */ lw $t7,0x128($sp)
|
|
/* f0aae0c: 0fc550b9 */ jal optionsGetScreenSplit
|
|
/* f0aae10: 00000000 */ nop
|
|
/* f0aae14: 24010001 */ li $at,0x1
|
|
/* f0aae18: 10410007 */ beq $v0,$at,.PB0f0aae38
|
|
/* f0aae1c: 8fae0120 */ lw $t6,0x120($sp)
|
|
/* f0aae20: 55c00006 */ bnezl $t6,.PB0f0aae3c
|
|
/* f0aae24: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0aae28: 8faf0128 */ lw $t7,0x128($sp)
|
|
.PB0f0aae2c:
|
|
/* f0aae2c: 25f8000a */ addiu $t8,$t7,0xa
|
|
/* f0aae30: 10000019 */ b .PB0f0aae98
|
|
/* f0aae34: afb80128 */ sw $t8,0x128($sp)
|
|
.PB0f0aae38:
|
|
/* f0aae38: 8fb90128 */ lw $t9,0x128($sp)
|
|
.PB0f0aae3c:
|
|
/* f0aae3c: 272e0002 */ addiu $t6,$t9,0x2
|
|
/* f0aae40: 10000015 */ b .PB0f0aae98
|
|
/* f0aae44: afae0128 */ sw $t6,0x128($sp)
|
|
.PB0f0aae48:
|
|
/* f0aae48: 8faf0060 */ lw $t7,0x60($sp)
|
|
/* f0aae4c: 8fb80120 */ lw $t8,0x120($sp)
|
|
/* f0aae50: 29e10003 */ slti $at,$t7,0x3
|
|
/* f0aae54: 14200010 */ bnez $at,.PB0f0aae98
|
|
/* f0aae58: 2b010002 */ slti $at,$t8,0x2
|
|
/* f0aae5c: 10200005 */ beqz $at,.PB0f0aae74
|
|
/* f0aae60: 8faf0128 */ lw $t7,0x128($sp)
|
|
/* f0aae64: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0aae68: 272e000a */ addiu $t6,$t9,0xa
|
|
/* f0aae6c: 1000000a */ b .PB0f0aae98
|
|
/* f0aae70: afae0128 */ sw $t6,0x128($sp)
|
|
.PB0f0aae74:
|
|
/* f0aae74: 25f80002 */ addiu $t8,$t7,0x2
|
|
/* f0aae78: 10000007 */ b .PB0f0aae98
|
|
/* f0aae7c: afb80128 */ sw $t8,0x128($sp)
|
|
.PB0f0aae80:
|
|
/* f0aae80: 0fc5504c */ jal optionsGetEffectiveScreenSize
|
|
/* f0aae84: 00000000 */ nop
|
|
/* f0aae88: 10400003 */ beqz $v0,.PB0f0aae98
|
|
/* f0aae8c: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0aae90: 272e0008 */ addiu $t6,$t9,0x8
|
|
/* f0aae94: afae0128 */ sw $t6,0x128($sp)
|
|
.PB0f0aae98:
|
|
/* f0aae98: 3c19800a */ lui $t9,0x800a
|
|
/* f0aae9c: 8f39e504 */ lw $t9,-0x1afc($t9)
|
|
/* f0aaea0: 24010032 */ li $at,0x32
|
|
/* f0aaea4: 8fa2012c */ lw $v0,0x12c($sp)
|
|
/* f0aaea8: 00197100 */ sll $t6,$t9,0x4
|
|
/* f0aaeac: 01d97023 */ subu $t6,$t6,$t9
|
|
/* f0aaeb0: 000e70c0 */ sll $t6,$t6,0x3
|
|
/* f0aaeb4: 01c1001a */ div $zero,$t6,$at
|
|
/* f0aaeb8: 3c0fff00 */ lui $t7,0xff00
|
|
/* f0aaebc: 35ef0040 */ ori $t7,$t7,0x40
|
|
/* f0aaec0: afaf00f4 */ sw $t7,0xf4($sp)
|
|
/* f0aaec4: 9058063b */ lbu $t8,0x63b($v0)
|
|
/* f0aaec8: 00007812 */ mflo $t7
|
|
/* f0aaecc: 24420638 */ addiu $v0,$v0,0x638
|
|
/* f0aaed0: afaf00ec */ sw $t7,0xec($sp)
|
|
/* f0aaed4: afa2005c */ sw $v0,0x5c($sp)
|
|
/* f0aaed8: 27a400dc */ addiu $a0,$sp,0xdc
|
|
/* f0aaedc: 00002825 */ move $a1,$zero
|
|
/* f0aaee0: 0fc26307 */ jal bgunGetWeaponInfo
|
|
/* f0aaee4: afb800f0 */ sw $t8,0xf0($sp)
|
|
/* f0aaee8: 0fc2a406 */ jal bgunIsUsingSecondaryFunction
|
|
/* f0aaeec: 00000000 */ nop
|
|
/* f0aaef0: afa200e8 */ sw $v0,0xe8($sp)
|
|
/* f0aaef4: 00402025 */ move $a0,$v0
|
|
/* f0aaef8: 27a500dc */ addiu $a1,$sp,0xdc
|
|
/* f0aaefc: 0fc2631c */ jal bgun0f098ca0
|
|
/* f0aaf00: 8fa6005c */ lw $a2,0x5c($sp)
|
|
/* f0aaf04: 04400003 */ bltz $v0,.PB0f0aaf14
|
|
/* f0aaf08: 00000000 */ nop
|
|
/* f0aaf0c: 8fb800e8 */ lw $t8,0xe8($sp)
|
|
/* f0aaf10: afb800f0 */ sw $t8,0xf0($sp)
|
|
.PB0f0aaf14:
|
|
/* f0aaf14: 0c002e8b */ jal viGetViewLeft
|
|
/* f0aaf18: 00000000 */ nop
|
|
/* f0aaf1c: 0c002e6d */ jal viGetViewWidth
|
|
/* f0aaf20: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0aaf24: 87b90076 */ lh $t9,0x76($sp)
|
|
/* f0aaf28: 3c0f8008 */ lui $t7,0x8008
|
|
/* f0aaf2c: 8def1f90 */ lw $t7,0x1f90($t7)
|
|
/* f0aaf30: 00597021 */ addu $t6,$v0,$t9
|
|
/* f0aaf34: 8fb9010c */ lw $t9,0x10c($sp)
|
|
/* f0aaf38: 01cf001a */ div $zero,$t6,$t7
|
|
/* f0aaf3c: 15e00002 */ bnez $t7,.PB0f0aaf48
|
|
/* f0aaf40: 00000000 */ nop
|
|
/* f0aaf44: 0007000d */ break 0x7
|
|
.PB0f0aaf48:
|
|
/* f0aaf48: 2401ffff */ li $at,-1
|
|
/* f0aaf4c: 15e10004 */ bne $t7,$at,.PB0f0aaf60
|
|
/* f0aaf50: 3c018000 */ lui $at,0x8000
|
|
/* f0aaf54: 15c10002 */ bne $t6,$at,.PB0f0aaf60
|
|
/* f0aaf58: 00000000 */ nop
|
|
/* f0aaf5c: 0006000d */ break 0x6
|
|
.PB0f0aaf60:
|
|
/* f0aaf60: 0000c012 */ mflo $t8
|
|
/* f0aaf64: 03197023 */ subu $t6,$t8,$t9
|
|
/* f0aaf68: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0aaf6c: 25cfffe8 */ addiu $t7,$t6,-24
|
|
/* f0aaf70: 24010002 */ li $at,0x2
|
|
/* f0aaf74: 1701000f */ bne $t8,$at,.PB0f0aafb4
|
|
/* f0aaf78: afaf0100 */ sw $t7,0x100($sp)
|
|
/* f0aaf7c: 0fc550b9 */ jal optionsGetScreenSplit
|
|
/* f0aaf80: 00000000 */ nop
|
|
/* f0aaf84: 24070001 */ li $a3,0x1
|
|
/* f0aaf88: 10e20004 */ beq $a3,$v0,.PB0f0aaf9c
|
|
/* f0aaf8c: 3c198009 */ lui $t9,0x8009
|
|
/* f0aaf90: 93392fd0 */ lbu $t9,0x2fd0($t9)
|
|
/* f0aaf94: 54f90008 */ bnel $a3,$t9,.PB0f0aafb8
|
|
/* f0aaf98: 8fb90060 */ lw $t9,0x60($sp)
|
|
.PB0f0aaf9c:
|
|
/* f0aaf9c: 8fae0120 */ lw $t6,0x120($sp)
|
|
/* f0aafa0: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0aafa4: 15c00003 */ bnez $t6,.PB0f0aafb4
|
|
/* f0aafa8: 25f8000f */ addiu $t8,$t7,0xf
|
|
/* f0aafac: 1000000b */ b .PB0f0aafdc
|
|
/* f0aafb0: afb80100 */ sw $t8,0x100($sp)
|
|
.PB0f0aafb4:
|
|
/* f0aafb4: 8fb90060 */ lw $t9,0x60($sp)
|
|
.PB0f0aafb8:
|
|
/* f0aafb8: 8fae0120 */ lw $t6,0x120($sp)
|
|
/* f0aafbc: 24070001 */ li $a3,0x1
|
|
/* f0aafc0: 2b210003 */ slti $at,$t9,0x3
|
|
/* f0aafc4: 14200005 */ bnez $at,.PB0f0aafdc
|
|
/* f0aafc8: 31cf0001 */ andi $t7,$t6,0x1
|
|
/* f0aafcc: 15e00003 */ bnez $t7,.PB0f0aafdc
|
|
/* f0aafd0: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aafd4: 2719000f */ addiu $t9,$t8,0xf
|
|
/* f0aafd8: afb90100 */ sw $t9,0x100($sp)
|
|
.PB0f0aafdc:
|
|
/* f0aafdc: 8fa600f0 */ lw $a2,0xf0($sp)
|
|
/* f0aafe0: 8faa012c */ lw $t2,0x12c($sp)
|
|
/* f0aafe4: 54c70014 */ bnel $a2,$a3,.PB0f0ab038
|
|
/* f0aafe8: 8faa012c */ lw $t2,0x12c($sp)
|
|
/* f0aafec: 914215e7 */ lbu $v0,0x15e7($t2)
|
|
/* f0aaff0: 254a1580 */ addiu $t2,$t2,0x1580
|
|
/* f0aaff4: 284100ff */ slti $at,$v0,0xff
|
|
/* f0aaff8: 1020000e */ beqz $at,.PB0f0ab034
|
|
/* f0aaffc: 28410080 */ slti $at,$v0,0x80
|
|
/* f0ab000: 10200003 */ beqz $at,.PB0f0ab010
|
|
/* f0ab004: 240e0080 */ li $t6,0x80
|
|
/* f0ab008: a14e0067 */ sb $t6,0x67($t2)
|
|
/* f0ab00c: 31c200ff */ andi $v0,$t6,0xff
|
|
.PB0f0ab010:
|
|
/* f0ab010: 8faf00ec */ lw $t7,0xec($sp)
|
|
/* f0ab014: 241800ff */ li $t8,0xff
|
|
/* f0ab018: 004f1821 */ addu $v1,$v0,$t7
|
|
/* f0ab01c: 28610100 */ slti $at,$v1,0x100
|
|
/* f0ab020: 54200004 */ bnezl $at,.PB0f0ab034
|
|
/* f0ab024: a1430067 */ sb $v1,0x67($t2)
|
|
/* f0ab028: 10000002 */ b .PB0f0ab034
|
|
/* f0ab02c: a1580067 */ sb $t8,0x67($t2)
|
|
/* f0ab030: a1430067 */ sb $v1,0x67($t2)
|
|
.PB0f0ab034:
|
|
/* f0ab034: 8faa012c */ lw $t2,0x12c($sp)
|
|
.PB0f0ab038:
|
|
/* f0ab038: 254a1580 */ addiu $t2,$t2,0x1580
|
|
/* f0ab03c: 14c0000a */ bnez $a2,.PB0f0ab068
|
|
/* f0ab040: 91420067 */ lbu $v0,0x67($t2)
|
|
/* f0ab044: 18400008 */ blez $v0,.PB0f0ab068
|
|
/* f0ab048: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0ab04c: 00591823 */ subu $v1,$v0,$t9
|
|
/* f0ab050: 04610004 */ bgez $v1,.PB0f0ab064
|
|
/* f0ab054: 306200ff */ andi $v0,$v1,0xff
|
|
/* f0ab058: a1400067 */ sb $zero,0x67($t2)
|
|
/* f0ab05c: 10000002 */ b .PB0f0ab068
|
|
/* f0ab060: 300200ff */ andi $v0,$zero,0xff
|
|
.PB0f0ab064:
|
|
/* f0ab064: a1430067 */ sb $v1,0x67($t2)
|
|
.PB0f0ab068:
|
|
/* f0ab068: 28410081 */ slti $at,$v0,0x81
|
|
/* f0ab06c: 14200007 */ bnez $at,.PB0f0ab08c
|
|
/* f0ab070: 00027040 */ sll $t6,$v0,0x1
|
|
/* f0ab074: 25cfff00 */ addiu $t7,$t6,-256
|
|
/* f0ab078: 3c01ff00 */ lui $at,0xff00
|
|
/* f0ab07c: 34210040 */ ori $at,$at,0x40
|
|
/* f0ab080: 000fc400 */ sll $t8,$t7,0x10
|
|
/* f0ab084: 0301c825 */ or $t9,$t8,$at
|
|
/* f0ab088: afb900f4 */ sw $t9,0xf4($sp)
|
|
.PB0f0ab08c:
|
|
/* f0ab08c: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab090: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f0ab094: 0fc552fc */ jal textSetPrimColour
|
|
/* f0ab098: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab09c: 3c068008 */ lui $a2,0x8008
|
|
/* f0ab0a0: 8fa70100 */ lw $a3,0x100($sp)
|
|
/* f0ab0a4: 24c61f90 */ addiu $a2,$a2,0x1f90
|
|
/* f0ab0a8: 8cd80000 */ lw $t8,0x0($a2)
|
|
/* f0ab0ac: 24effffe */ addiu $t7,$a3,-2
|
|
/* f0ab0b0: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f0ab0b4: 01f80019 */ multu $t7,$t8
|
|
/* f0ab0b8: 3c01f600 */ lui $at,0xf600
|
|
/* f0ab0bc: 30a303ff */ andi $v1,$a1,0x3ff
|
|
/* f0ab0c0: 00037080 */ sll $t6,$v1,0x2
|
|
/* f0ab0c4: 01c01825 */ move $v1,$t6
|
|
/* f0ab0c8: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0ab0cc: 0000c812 */ mflo $t9
|
|
/* f0ab0d0: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0ab0d4: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0ab0d8: 01e1c025 */ or $t8,$t7,$at
|
|
/* f0ab0dc: 0303c825 */ or $t9,$t8,$v1
|
|
/* f0ab0e0: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0ab0e4: 8ccf0000 */ lw $t7,0x0($a2)
|
|
/* f0ab0e8: 24eefff3 */ addiu $t6,$a3,-13
|
|
/* f0ab0ec: 01cf0019 */ multu $t6,$t7
|
|
/* f0ab0f0: 24affff5 */ addiu $t7,$a1,-11
|
|
/* f0ab0f4: 0000c012 */ mflo $t8
|
|
/* f0ab0f8: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab0fc: 00197380 */ sll $t6,$t9,0xe
|
|
/* f0ab100: 31f803ff */ andi $t8,$t7,0x3ff
|
|
/* f0ab104: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0ab108: 01d97825 */ or $t7,$t6,$t9
|
|
/* f0ab10c: ac4f0004 */ sw $t7,0x4($v0)
|
|
/* f0ab110: 0fc55313 */ jal text0f153838
|
|
/* f0ab114: afa30060 */ sw $v1,0x60($sp)
|
|
/* f0ab118: 3c18800a */ lui $t8,0x800a
|
|
/* f0ab11c: 8f18e758 */ lw $t8,-0x18a8($t8)
|
|
/* f0ab120: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab124: 0fc54f02 */ jal optionsGetShowGunFunction
|
|
/* f0ab128: 8f040070 */ lw $a0,0x70($t8)
|
|
/* f0ab12c: 10400163 */ beqz $v0,.PB0f0ab6bc
|
|
/* f0ab130: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab134: 8fae005c */ lw $t6,0x5c($sp)
|
|
/* f0ab138: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0ab13c: 91c40000 */ lbu $a0,0x0($t6)
|
|
/* f0ab140: 0fc2c505 */ jal weaponGetFunctionById
|
|
/* f0ab144: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab148: 0fc44dfc */ jal invGetCurrentIndex
|
|
/* f0ab14c: afa200bc */ sw $v0,0xbc($sp)
|
|
/* f0ab150: 0fc44d66 */ jal invGetNameIdByIndex
|
|
/* f0ab154: 00402025 */ move $a0,$v0
|
|
/* f0ab158: 00402025 */ move $a0,$v0
|
|
/* f0ab15c: 0fc5c06a */ jal langGet
|
|
/* f0ab160: a7a200ba */ sh $v0,0xba($sp)
|
|
/* f0ab164: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab168: 97a300ba */ lhu $v1,0xba($sp)
|
|
/* f0ab16c: 00403025 */ move $a2,$v0
|
|
/* f0ab170: 95590072 */ lhu $t9,0x72($t2)
|
|
/* f0ab174: 3c02800a */ lui $v0,0x800a
|
|
/* f0ab178: 27a400c4 */ addiu $a0,$sp,0xc4
|
|
/* f0ab17c: 10790003 */ beq $v1,$t9,.PB0f0ab18c
|
|
/* f0ab180: 27a500c0 */ addiu $a1,$sp,0xc0
|
|
/* f0ab184: a140006f */ sb $zero,0x6f($t2)
|
|
/* f0ab188: a5430072 */ sh $v1,0x72($t2)
|
|
.PB0f0ab18c:
|
|
/* f0ab18c: 9143006f */ lbu $v1,0x6f($t2)
|
|
/* f0ab190: 3c078008 */ lui $a3,0x8008
|
|
/* f0ab194: 286100ff */ slti $at,$v1,0xff
|
|
/* f0ab198: 5020008b */ beqzl $at,.PB0f0ab3c8
|
|
/* f0ab19c: 8fa200bc */ lw $v0,0xbc($sp)
|
|
/* f0ab1a0: 8c42e508 */ lw $v0,-0x1af8($v0)
|
|
/* f0ab1a4: 3c0f55ff */ lui $t7,0x55ff
|
|
/* f0ab1a8: 35efffff */ ori $t7,$t7,0xffff
|
|
/* f0ab1ac: 0062c021 */ addu $t8,$v1,$v0
|
|
/* f0ab1b0: 2b010100 */ slti $at,$t8,0x100
|
|
/* f0ab1b4: 14200004 */ bnez $at,.PB0f0ab1c8
|
|
/* f0ab1b8: afaf00d0 */ sw $t7,0xd0($sp)
|
|
/* f0ab1bc: 240e00ff */ li $t6,0xff
|
|
/* f0ab1c0: 10000003 */ b .PB0f0ab1d0
|
|
/* f0ab1c4: a14e006f */ sb $t6,0x6f($t2)
|
|
.PB0f0ab1c8:
|
|
/* f0ab1c8: 00627821 */ addu $t7,$v1,$v0
|
|
/* f0ab1cc: a14f006f */ sb $t7,0x6f($t2)
|
|
.PB0f0ab1d0:
|
|
/* f0ab1d0: 3c188008 */ lui $t8,0x8008
|
|
/* f0ab1d4: 8f181fd4 */ lw $t8,0x1fd4($t8)
|
|
/* f0ab1d8: 8ce71fd8 */ lw $a3,0x1fd8($a3)
|
|
/* f0ab1dc: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab1e0: afa600d4 */ sw $a2,0xd4($sp)
|
|
/* f0ab1e4: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab1e8: 0fc5625a */ jal textMeasure
|
|
/* f0ab1ec: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0ab1f0: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0ab1f4: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab1f8: 00002825 */ move $a1,$zero
|
|
/* f0ab1fc: 25d90002 */ addiu $t9,$t6,0x2
|
|
/* f0ab200: afb900c0 */ sw $t9,0xc0($sp)
|
|
/* f0ab204: 9142006f */ lbu $v0,0x6f($t2)
|
|
/* f0ab208: 00027880 */ sll $t7,$v0,0x2
|
|
/* f0ab20c: 01e27823 */ subu $t7,$t7,$v0
|
|
/* f0ab210: 01f9082a */ slt $at,$t7,$t9
|
|
/* f0ab214: 50200003 */ beqzl $at,.PB0f0ab224
|
|
/* f0ab218: 8fb80124 */ lw $t8,0x124($sp)
|
|
/* f0ab21c: afaf00c0 */ sw $t7,0xc0($sp)
|
|
/* f0ab220: 8fb80124 */ lw $t8,0x124($sp)
|
|
.PB0f0ab224:
|
|
/* f0ab224: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab228: 8faf00c0 */ lw $t7,0xc0($sp)
|
|
/* f0ab22c: 2b010002 */ slti $at,$t8,0x2
|
|
/* f0ab230: 14200007 */ bnez $at,.PB0f0ab250
|
|
/* f0ab234: 01cfc823 */ subu $t9,$t6,$t7
|
|
/* f0ab238: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab23c: 8faf00c0 */ lw $t7,0xc0($sp)
|
|
/* f0ab240: 01cfc823 */ subu $t9,$t6,$t7
|
|
/* f0ab244: 2738fff3 */ addiu $t8,$t9,-13
|
|
/* f0ab248: 10000003 */ b .PB0f0ab258
|
|
/* f0ab24c: afb800cc */ sw $t8,0xcc($sp)
|
|
.PB0f0ab250:
|
|
/* f0ab250: 2738fffe */ addiu $t8,$t9,-2
|
|
/* f0ab254: afb800cc */ sw $t8,0xcc($sp)
|
|
.PB0f0ab258:
|
|
/* f0ab258: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0ab25c: 8faf00c4 */ lw $t7,0xc4($sp)
|
|
/* f0ab260: 01cfc823 */ subu $t9,$t6,$t7
|
|
/* f0ab264: 2738fff1 */ addiu $t8,$t9,-15
|
|
/* f0ab268: afb800c8 */ sw $t8,0xc8($sp)
|
|
/* f0ab26c: 9143006f */ lbu $v1,0x6f($t2)
|
|
/* f0ab270: 241800ff */ li $t8,0xff
|
|
/* f0ab274: 286100c1 */ slti $at,$v1,0xc1
|
|
/* f0ab278: 1420000d */ bnez $at,.PB0f0ab2b0
|
|
/* f0ab27c: 00037200 */ sll $t6,$v1,0x8
|
|
/* f0ab280: 3c01ffff */ lui $at,0xffff
|
|
/* f0ab284: 342140c0 */ ori $at,$at,0x40c0
|
|
/* f0ab288: 01c37023 */ subu $t6,$t6,$v1
|
|
/* f0ab28c: 01c17821 */ addu $t7,$t6,$at
|
|
/* f0ab290: 2401003f */ li $at,0x3f
|
|
/* f0ab294: 01e1001b */ divu $zero,$t7,$at
|
|
/* f0ab298: 0000c812 */ mflo $t9
|
|
/* f0ab29c: 3c0155ff */ lui $at,0x55ff
|
|
/* f0ab2a0: 03191023 */ subu $v0,$t8,$t9
|
|
/* f0ab2a4: 3421ff00 */ ori $at,$at,0xff00
|
|
/* f0ab2a8: 00417025 */ or $t6,$v0,$at
|
|
/* f0ab2ac: afae00d0 */ sw $t6,0xd0($sp)
|
|
.PB0f0ab2b0:
|
|
/* f0ab2b0: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab2b4: 0fc552fc */ jal textSetPrimColour
|
|
/* f0ab2b8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab2bc: 3c038008 */ lui $v1,0x8008
|
|
/* f0ab2c0: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0ab2c4: 24631f90 */ addiu $v1,$v1,0x1f90
|
|
/* f0ab2c8: 8c790000 */ lw $t9,0x0($v1)
|
|
/* f0ab2cc: 25f8fff5 */ addiu $t8,$t7,-11
|
|
/* f0ab2d0: 3c01f600 */ lui $at,0xf600
|
|
/* f0ab2d4: 03190019 */ multu $t8,$t9
|
|
/* f0ab2d8: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0ab2dc: 00007012 */ mflo $t6
|
|
/* f0ab2e0: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0ab2e4: 8fae0060 */ lw $t6,0x60($sp)
|
|
/* f0ab2e8: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0ab2ec: 0301c825 */ or $t9,$t8,$at
|
|
/* f0ab2f0: 032e7825 */ or $t7,$t9,$t6
|
|
/* f0ab2f4: ac4f0000 */ sw $t7,0x0($v0)
|
|
/* f0ab2f8: 8fb800cc */ lw $t8,0xcc($sp)
|
|
/* f0ab2fc: 8c6e0000 */ lw $t6,0x0($v1)
|
|
/* f0ab300: 2719ffff */ addiu $t9,$t8,-1
|
|
/* f0ab304: 032e0019 */ multu $t9,$t6
|
|
/* f0ab308: 8fae00c8 */ lw $t6,0xc8($sp)
|
|
/* f0ab30c: 00007812 */ mflo $t7
|
|
/* f0ab310: 31f803ff */ andi $t8,$t7,0x3ff
|
|
/* f0ab314: 0018cb80 */ sll $t9,$t8,0xe
|
|
/* f0ab318: 25cfffff */ addiu $t7,$t6,-1
|
|
/* f0ab31c: 31f803ff */ andi $t8,$t7,0x3ff
|
|
/* f0ab320: 00187080 */ sll $t6,$t8,0x2
|
|
/* f0ab324: 032e7825 */ or $t7,$t9,$t6
|
|
/* f0ab328: 0fc55313 */ jal text0f153838
|
|
/* f0ab32c: ac4f0004 */ sw $t7,0x4($v0)
|
|
/* f0ab330: 3c018006 */ lui $at,0x8006
|
|
/* f0ab334: c4242cf0 */ lwc1 $f4,0x2cf0($at)
|
|
/* f0ab338: 3c014248 */ lui $at,0x4248
|
|
/* f0ab33c: 44813000 */ mtc1 $at,$f6
|
|
/* f0ab340: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab344: 00002825 */ move $a1,$zero
|
|
/* f0ab348: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f0ab34c: 24060032 */ li $a2,0x32
|
|
/* f0ab350: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0ab354: 44045000 */ mfc1 $a0,$f10
|
|
/* f0ab358: 0fc55459 */ jal textSetWaveBlend
|
|
/* f0ab35c: 00000000 */ nop
|
|
/* f0ab360: 2404ffff */ li $a0,-1
|
|
/* f0ab364: 0fc55493 */ jal textSetWaveColours
|
|
/* f0ab368: 2405ffff */ li $a1,-1
|
|
/* f0ab36c: 3c198008 */ lui $t9,0x8008
|
|
/* f0ab370: 8f391fd8 */ lw $t9,0x1fd8($t9)
|
|
/* f0ab374: 3c0e8008 */ lui $t6,0x8008
|
|
/* f0ab378: 8dce1fd4 */ lw $t6,0x1fd4($t6)
|
|
/* f0ab37c: 8faf00d0 */ lw $t7,0xd0($sp)
|
|
/* f0ab380: 8fb800c0 */ lw $t8,0xc0($sp)
|
|
/* f0ab384: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab388: 241903e8 */ li $t9,0x3e8
|
|
/* f0ab38c: afb90020 */ sw $t9,0x20($sp)
|
|
/* f0ab390: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab394: 27a500cc */ addiu $a1,$sp,0xcc
|
|
/* f0ab398: 27a600c8 */ addiu $a2,$sp,0xc8
|
|
/* f0ab39c: 8fa700d4 */ lw $a3,0xd4($sp)
|
|
/* f0ab3a0: afa00024 */ sw $zero,0x24($sp)
|
|
/* f0ab3a4: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab3a8: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0ab3ac: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f0ab3b0: 0fc55e10 */ jal textRenderProjected
|
|
/* f0ab3b4: afb8001c */ sw $t8,0x1c($sp)
|
|
/* f0ab3b8: 0fc55498 */ jal textResetBlends
|
|
/* f0ab3bc: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab3c0: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab3c4: 8fa200bc */ lw $v0,0xbc($sp)
|
|
.PB0f0ab3c8:
|
|
/* f0ab3c8: 504000bd */ beqzl $v0,.PB0f0ab6c0
|
|
/* f0ab3cc: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f0ab3d0: 94440004 */ lhu $a0,0x4($v0)
|
|
/* f0ab3d4: 0fc5c06a */ jal langGet
|
|
/* f0ab3d8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab3dc: 3c0eff55 */ lui $t6,0xff55
|
|
/* f0ab3e0: 8fa300bc */ lw $v1,0xbc($sp)
|
|
/* f0ab3e4: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab3e8: 35ce55ff */ ori $t6,$t6,0x55ff
|
|
/* f0ab3ec: afae00d0 */ sw $t6,0xd0($sp)
|
|
/* f0ab3f0: 946f0004 */ lhu $t7,0x4($v1)
|
|
/* f0ab3f4: 9544006c */ lhu $a0,0x6c($t2)
|
|
/* f0ab3f8: 11e40005 */ beq $t7,$a0,.PB0f0ab410
|
|
/* f0ab3fc: 00000000 */ nop
|
|
/* f0ab400: 91580067 */ lbu $t8,0x67($t2)
|
|
/* f0ab404: 2b010081 */ slti $at,$t8,0x81
|
|
/* f0ab408: 50200004 */ beqzl $at,.PB0f0ab41c
|
|
/* f0ab40c: a140006e */ sb $zero,0x6e($t2)
|
|
.PB0f0ab410:
|
|
/* f0ab410: 14800005 */ bnez $a0,.PB0f0ab428
|
|
/* f0ab414: 00000000 */ nop
|
|
/* f0ab418: a140006e */ sb $zero,0x6e($t2)
|
|
.PB0f0ab41c:
|
|
/* f0ab41c: 94790004 */ lhu $t9,0x4($v1)
|
|
/* f0ab420: a559006c */ sh $t9,0x6c($t2)
|
|
/* f0ab424: 3324ffff */ andi $a0,$t9,0xffff
|
|
.PB0f0ab428:
|
|
/* f0ab428: 0fc5c06a */ jal langGet
|
|
/* f0ab42c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab430: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab434: 00403025 */ move $a2,$v0
|
|
/* f0ab438: 3c02800a */ lui $v0,0x800a
|
|
/* f0ab43c: 9143006e */ lbu $v1,0x6e($t2)
|
|
/* f0ab440: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab444: 27a400c4 */ addiu $a0,$sp,0xc4
|
|
/* f0ab448: 286100ff */ slti $at,$v1,0xff
|
|
/* f0ab44c: 1020009b */ beqz $at,.PB0f0ab6bc
|
|
/* f0ab450: 27a500c0 */ addiu $a1,$sp,0xc0
|
|
/* f0ab454: 8c42e508 */ lw $v0,-0x1af8($v0)
|
|
/* f0ab458: 25cffff5 */ addiu $t7,$t6,-11
|
|
/* f0ab45c: afaf0060 */ sw $t7,0x60($sp)
|
|
/* f0ab460: 0062c021 */ addu $t8,$v1,$v0
|
|
/* f0ab464: 2b010100 */ slti $at,$t8,0x100
|
|
/* f0ab468: 14200004 */ bnez $at,.PB0f0ab47c
|
|
/* f0ab46c: 3c078008 */ lui $a3,0x8008
|
|
/* f0ab470: 241900ff */ li $t9,0xff
|
|
/* f0ab474: 10000003 */ b .PB0f0ab484
|
|
/* f0ab478: a159006e */ sb $t9,0x6e($t2)
|
|
.PB0f0ab47c:
|
|
/* f0ab47c: 00627821 */ addu $t7,$v1,$v0
|
|
/* f0ab480: a14f006e */ sb $t7,0x6e($t2)
|
|
.PB0f0ab484:
|
|
/* f0ab484: 8fb800f0 */ lw $t8,0xf0($sp)
|
|
/* f0ab488: 24010001 */ li $at,0x1
|
|
/* f0ab48c: 5701000a */ bnel $t8,$at,.PB0f0ab4b8
|
|
/* f0ab490: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0ab494: 8fae00bc */ lw $t6,0xbc($sp)
|
|
/* f0ab498: 9559006c */ lhu $t9,0x6c($t2)
|
|
/* f0ab49c: 3c18ffff */ lui $t8,0xffff
|
|
/* f0ab4a0: 95cf0004 */ lhu $t7,0x4($t6)
|
|
/* f0ab4a4: 371855ff */ ori $t8,$t8,0x55ff
|
|
/* f0ab4a8: 572f0003 */ bnel $t9,$t7,.PB0f0ab4b8
|
|
/* f0ab4ac: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0ab4b0: afb800d0 */ sw $t8,0xd0($sp)
|
|
/* f0ab4b4: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
.PB0f0ab4b8:
|
|
/* f0ab4b8: 8faf00bc */ lw $t7,0xbc($sp)
|
|
/* f0ab4bc: 15c00008 */ bnez $t6,.PB0f0ab4e0
|
|
/* f0ab4c0: 00000000 */ nop
|
|
/* f0ab4c4: 9559006c */ lhu $t9,0x6c($t2)
|
|
/* f0ab4c8: 95f80004 */ lhu $t8,0x4($t7)
|
|
/* f0ab4cc: 8fae00d0 */ lw $t6,0xd0($sp)
|
|
/* f0ab4d0: 3c0100ff */ lui $at,0xff
|
|
/* f0ab4d4: 13380002 */ beq $t9,$t8,.PB0f0ab4e0
|
|
/* f0ab4d8: 01c17825 */ or $t7,$t6,$at
|
|
/* f0ab4dc: afaf00d0 */ sw $t7,0xd0($sp)
|
|
.PB0f0ab4e0:
|
|
/* f0ab4e0: 3c198008 */ lui $t9,0x8008
|
|
/* f0ab4e4: 8f391fd4 */ lw $t9,0x1fd4($t9)
|
|
/* f0ab4e8: 8ce71fd8 */ lw $a3,0x1fd8($a3)
|
|
/* f0ab4ec: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab4f0: afa600d4 */ sw $a2,0xd4($sp)
|
|
/* f0ab4f4: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab4f8: 0fc5625a */ jal textMeasure
|
|
/* f0ab4fc: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab500: 8fb800c0 */ lw $t8,0xc0($sp)
|
|
/* f0ab504: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab508: 00002825 */ move $a1,$zero
|
|
/* f0ab50c: 270e0002 */ addiu $t6,$t8,0x2
|
|
/* f0ab510: afae00c0 */ sw $t6,0xc0($sp)
|
|
/* f0ab514: 9142006e */ lbu $v0,0x6e($t2)
|
|
/* f0ab518: 00027880 */ sll $t7,$v0,0x2
|
|
/* f0ab51c: 01e27823 */ subu $t7,$t7,$v0
|
|
/* f0ab520: 01ee082a */ slt $at,$t7,$t6
|
|
/* f0ab524: 50200003 */ beqzl $at,.PB0f0ab534
|
|
/* f0ab528: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0ab52c: afaf00c0 */ sw $t7,0xc0($sp)
|
|
/* f0ab530: 8fb90100 */ lw $t9,0x100($sp)
|
|
.PB0f0ab534:
|
|
/* f0ab534: 8fb800c0 */ lw $t8,0xc0($sp)
|
|
/* f0ab538: 03387823 */ subu $t7,$t9,$t8
|
|
/* f0ab53c: 8fb800c4 */ lw $t8,0xc4($sp)
|
|
/* f0ab540: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0ab544: 25eefff3 */ addiu $t6,$t7,-13
|
|
/* f0ab548: afae00cc */ sw $t6,0xcc($sp)
|
|
/* f0ab54c: 03387823 */ subu $t7,$t9,$t8
|
|
/* f0ab550: 25eeffff */ addiu $t6,$t7,-1
|
|
/* f0ab554: afae00c8 */ sw $t6,0xc8($sp)
|
|
/* f0ab558: 9143006e */ lbu $v1,0x6e($t2)
|
|
/* f0ab55c: 240e00ff */ li $t6,0xff
|
|
/* f0ab560: 286100c1 */ slti $at,$v1,0xc1
|
|
/* f0ab564: 1420000e */ bnez $at,.PB0f0ab5a0
|
|
/* f0ab568: 0003ca00 */ sll $t9,$v1,0x8
|
|
/* f0ab56c: 3c01ffff */ lui $at,0xffff
|
|
/* f0ab570: 342140c0 */ ori $at,$at,0x40c0
|
|
/* f0ab574: 0323c823 */ subu $t9,$t9,$v1
|
|
/* f0ab578: 0321c021 */ addu $t8,$t9,$at
|
|
/* f0ab57c: 2401003f */ li $at,0x3f
|
|
/* f0ab580: 0301001b */ divu $zero,$t8,$at
|
|
/* f0ab584: 8fb900d0 */ lw $t9,0xd0($sp)
|
|
/* f0ab588: 00007812 */ mflo $t7
|
|
/* f0ab58c: 2401ff00 */ li $at,-256
|
|
/* f0ab590: 01cf1023 */ subu $v0,$t6,$t7
|
|
/* f0ab594: 0321c024 */ and $t8,$t9,$at
|
|
/* f0ab598: 03027025 */ or $t6,$t8,$v0
|
|
/* f0ab59c: afae00d0 */ sw $t6,0xd0($sp)
|
|
.PB0f0ab5a0:
|
|
/* f0ab5a0: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab5a4: 0fc552fc */ jal textSetPrimColour
|
|
/* f0ab5a8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab5ac: 3c038008 */ lui $v1,0x8008
|
|
/* f0ab5b0: 24631f90 */ addiu $v1,$v1,0x1f90
|
|
/* f0ab5b4: 8c790000 */ lw $t9,0x0($v1)
|
|
/* f0ab5b8: 8faf0060 */ lw $t7,0x60($sp)
|
|
/* f0ab5bc: 3c01f600 */ lui $at,0xf600
|
|
/* f0ab5c0: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0ab5c4: 01f90019 */ multu $t7,$t9
|
|
/* f0ab5c8: 0000c012 */ mflo $t8
|
|
/* f0ab5cc: 330e03ff */ andi $t6,$t8,0x3ff
|
|
/* f0ab5d0: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0ab5d4: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0ab5d8: 01e1c825 */ or $t9,$t7,$at
|
|
/* f0ab5dc: 270e0003 */ addiu $t6,$t8,0x3
|
|
/* f0ab5e0: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0ab5e4: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0ab5e8: 03387025 */ or $t6,$t9,$t8
|
|
/* f0ab5ec: ac4e0000 */ sw $t6,0x0($v0)
|
|
/* f0ab5f0: 8faf00cc */ lw $t7,0xcc($sp)
|
|
/* f0ab5f4: 8c780000 */ lw $t8,0x0($v1)
|
|
/* f0ab5f8: 25f9ffff */ addiu $t9,$t7,-1
|
|
/* f0ab5fc: 03380019 */ multu $t9,$t8
|
|
/* f0ab600: 8fb800c8 */ lw $t8,0xc8($sp)
|
|
/* f0ab604: 00007012 */ mflo $t6
|
|
/* f0ab608: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0ab60c: 000fcb80 */ sll $t9,$t7,0xe
|
|
/* f0ab610: 270effff */ addiu $t6,$t8,-1
|
|
/* f0ab614: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0ab618: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0ab61c: 03387025 */ or $t6,$t9,$t8
|
|
/* f0ab620: 0fc55313 */ jal text0f153838
|
|
/* f0ab624: ac4e0004 */ sw $t6,0x4($v0)
|
|
/* f0ab628: 3c018006 */ lui $at,0x8006
|
|
/* f0ab62c: c4302cf0 */ lwc1 $f16,0x2cf0($at)
|
|
/* f0ab630: 3c014248 */ lui $at,0x4248
|
|
/* f0ab634: 44819000 */ mtc1 $at,$f18
|
|
/* f0ab638: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab63c: 00002825 */ move $a1,$zero
|
|
/* f0ab640: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0ab644: 24060032 */ li $a2,0x32
|
|
/* f0ab648: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0ab64c: 44043000 */ mfc1 $a0,$f6
|
|
/* f0ab650: 0fc55459 */ jal textSetWaveBlend
|
|
/* f0ab654: 00000000 */ nop
|
|
/* f0ab658: 2404ffff */ li $a0,-1
|
|
/* f0ab65c: 0fc55493 */ jal textSetWaveColours
|
|
/* f0ab660: 2405ffff */ li $a1,-1
|
|
/* f0ab664: 3c198008 */ lui $t9,0x8008
|
|
/* f0ab668: 8f391fd8 */ lw $t9,0x1fd8($t9)
|
|
/* f0ab66c: 3c188008 */ lui $t8,0x8008
|
|
/* f0ab670: 8f181fd4 */ lw $t8,0x1fd4($t8)
|
|
/* f0ab674: 8fae00d0 */ lw $t6,0xd0($sp)
|
|
/* f0ab678: 8faf00c0 */ lw $t7,0xc0($sp)
|
|
/* f0ab67c: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab680: 241903e8 */ li $t9,0x3e8
|
|
/* f0ab684: afb90020 */ sw $t9,0x20($sp)
|
|
/* f0ab688: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab68c: 27a500cc */ addiu $a1,$sp,0xcc
|
|
/* f0ab690: 27a600c8 */ addiu $a2,$sp,0xc8
|
|
/* f0ab694: 8fa700d4 */ lw $a3,0xd4($sp)
|
|
/* f0ab698: afa00024 */ sw $zero,0x24($sp)
|
|
/* f0ab69c: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab6a0: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0ab6a4: afae0018 */ sw $t6,0x18($sp)
|
|
/* f0ab6a8: 0fc55e10 */ jal textRenderProjected
|
|
/* f0ab6ac: afaf001c */ sw $t7,0x1c($sp)
|
|
/* f0ab6b0: 0fc55498 */ jal textResetBlends
|
|
/* f0ab6b4: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab6b8: 8faa0058 */ lw $t2,0x58($sp)
|
|
.PB0f0ab6bc:
|
|
/* f0ab6bc: 8fa500fc */ lw $a1,0xfc($sp)
|
|
.PB0f0ab6c0:
|
|
/* f0ab6c0: 8fb8005c */ lw $t8,0x5c($sp)
|
|
/* f0ab6c4: 50a0000a */ beqzl $a1,.PB0f0ab6f0
|
|
/* f0ab6c8: 8fae0110 */ lw $t6,0x110($sp)
|
|
/* f0ab6cc: 930e0003 */ lbu $t6,0x3($t8)
|
|
/* f0ab6d0: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0ab6d4: 00afc821 */ addu $t9,$a1,$t7
|
|
/* f0ab6d8: 8f220014 */ lw $v0,0x14($t9)
|
|
/* f0ab6dc: 50400004 */ beqzl $v0,.PB0f0ab6f0
|
|
/* f0ab6e0: 8fae0110 */ lw $t6,0x110($sp)
|
|
/* f0ab6e4: 80580007 */ lb $t8,0x7($v0)
|
|
/* f0ab6e8: afb80110 */ sw $t8,0x110($sp)
|
|
/* f0ab6ec: 8fae0110 */ lw $t6,0x110($sp)
|
|
.PB0f0ab6f0:
|
|
/* f0ab6f0: 2403ffff */ li $v1,-1
|
|
/* f0ab6f4: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab6f8: 55c30014 */ bnel $t6,$v1,.PB0f0ab74c
|
|
/* f0ab6fc: 8faf0110 */ lw $t7,0x110($sp)
|
|
/* f0ab700: 91f90003 */ lbu $t9,0x3($t7)
|
|
/* f0ab704: 0019c080 */ sll $t8,$t9,0x2
|
|
/* f0ab708: 00187023 */ negu $t6,$t8
|
|
/* f0ab70c: 00ae7821 */ addu $t7,$a1,$t6
|
|
/* f0ab710: 8de20018 */ lw $v0,0x18($t7)
|
|
/* f0ab714: 50400004 */ beqzl $v0,.PB0f0ab728
|
|
/* f0ab718: 8fb80110 */ lw $t8,0x110($sp)
|
|
/* f0ab71c: 80590007 */ lb $t9,0x7($v0)
|
|
/* f0ab720: afb90110 */ sw $t9,0x110($sp)
|
|
/* f0ab724: 8fb80110 */ lw $t8,0x110($sp)
|
|
.PB0f0ab728:
|
|
/* f0ab728: 57030008 */ bnel $t8,$v1,.PB0f0ab74c
|
|
/* f0ab72c: 8faf0110 */ lw $t7,0x110($sp)
|
|
/* f0ab730: 0fc552e5 */ jal text0f153780
|
|
/* f0ab734: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab738: 240e0001 */ li $t6,0x1
|
|
/* f0ab73c: 3c018008 */ lui $at,0x8008
|
|
/* f0ab740: 100001e2 */ b .PB0f0abecc
|
|
/* f0ab744: ac2e1f90 */ sw $t6,0x1f90($at)
|
|
/* f0ab748: 8faf0110 */ lw $t7,0x110($sp)
|
|
.PB0f0ab74c:
|
|
/* f0ab74c: 81590069 */ lb $t9,0x69($t2)
|
|
/* f0ab750: 8fa4012c */ lw $a0,0x12c($sp)
|
|
/* f0ab754: 11f9000d */ beq $t7,$t9,.PB0f0ab78c
|
|
/* f0ab758: 24841568 */ addiu $a0,$a0,0x1568
|
|
/* f0ab75c: 0fc2a84c */ jal bgunResetAbmag
|
|
/* f0ab760: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab764: 8fa4005c */ lw $a0,0x5c($sp)
|
|
/* f0ab768: 0fc2a84c */ jal bgunResetAbmag
|
|
/* f0ab76c: 2484078c */ addiu $a0,$a0,0x78c
|
|
/* f0ab770: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab774: 0fc2a84c */ jal bgunResetAbmag
|
|
/* f0ab778: 2544005c */ addiu $a0,$t2,0x5c
|
|
/* f0ab77c: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab780: 8fb80110 */ lw $t8,0x110($sp)
|
|
/* f0ab784: a1580069 */ sb $t8,0x69($t2)
|
|
/* f0ab788: 8fa500fc */ lw $a1,0xfc($sp)
|
|
.PB0f0ab78c:
|
|
/* f0ab78c: 8fae012c */ lw $t6,0x12c($sp)
|
|
/* f0ab790: 8fa20110 */ lw $v0,0x110($sp)
|
|
/* f0ab794: 25cf0ddc */ addiu $t7,$t6,0xddc
|
|
/* f0ab798: afaf0060 */ sw $t7,0x60($sp)
|
|
/* f0ab79c: 81d90de4 */ lb $t9,0xde4($t6)
|
|
/* f0ab7a0: 0002c080 */ sll $t8,$v0,0x2
|
|
/* f0ab7a4: 00b82021 */ addu $a0,$a1,$t8
|
|
/* f0ab7a8: 53200076 */ beqzl $t9,.PB0f0ab984
|
|
/* f0ab7ac: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab7b0: 8c8f001c */ lw $t7,0x1c($a0)
|
|
/* f0ab7b4: 51e00073 */ beqzl $t7,.PB0f0ab984
|
|
/* f0ab7b8: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab7bc: 91d90ddc */ lbu $t9,0xddc($t6)
|
|
/* f0ab7c0: 24010022 */ li $at,0x22
|
|
/* f0ab7c4: 5321006f */ beql $t9,$at,.PB0f0ab984
|
|
/* f0ab7c8: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab7cc: afb80050 */ sw $t8,0x50($sp)
|
|
/* f0ab7d0: afa40054 */ sw $a0,0x54($sp)
|
|
/* f0ab7d4: 0c002e8b */ jal viGetViewLeft
|
|
/* f0ab7d8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab7dc: 3c188008 */ lui $t8,0x8008
|
|
/* f0ab7e0: 8f181f90 */ lw $t8,0x1f90($t8)
|
|
/* f0ab7e4: 8fb90124 */ lw $t9,0x124($sp)
|
|
/* f0ab7e8: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0ab7ec: 0058001a */ div $zero,$v0,$t8
|
|
/* f0ab7f0: 00007812 */ mflo $t7
|
|
/* f0ab7f4: 25ee0018 */ addiu $t6,$t7,0x18
|
|
/* f0ab7f8: afae0100 */ sw $t6,0x100($sp)
|
|
/* f0ab7fc: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab800: 17000002 */ bnez $t8,.PB0f0ab80c
|
|
/* f0ab804: 00000000 */ nop
|
|
/* f0ab808: 0007000d */ break 0x7
|
|
.PB0f0ab80c:
|
|
/* f0ab80c: 2401ffff */ li $at,-1
|
|
/* f0ab810: 17010004 */ bne $t8,$at,.PB0f0ab824
|
|
/* f0ab814: 3c018000 */ lui $at,0x8000
|
|
/* f0ab818: 14410002 */ bne $v0,$at,.PB0f0ab824
|
|
/* f0ab81c: 00000000 */ nop
|
|
/* f0ab820: 0006000d */ break 0x6
|
|
.PB0f0ab824:
|
|
/* f0ab824: 24010002 */ li $at,0x2
|
|
/* f0ab828: 57210015 */ bnel $t9,$at,.PB0f0ab880
|
|
/* f0ab82c: 8fb80124 */ lw $t8,0x124($sp)
|
|
/* f0ab830: afa40054 */ sw $a0,0x54($sp)
|
|
/* f0ab834: 0fc550b9 */ jal optionsGetScreenSplit
|
|
/* f0ab838: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab83c: 24010001 */ li $at,0x1
|
|
/* f0ab840: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0ab844: 10410006 */ beq $v0,$at,.PB0f0ab860
|
|
/* f0ab848: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab84c: 3c188009 */ lui $t8,0x8009
|
|
/* f0ab850: 93182fd0 */ lbu $t8,0x2fd0($t8)
|
|
/* f0ab854: 24010001 */ li $at,0x1
|
|
/* f0ab858: 57010009 */ bnel $t8,$at,.PB0f0ab880
|
|
/* f0ab85c: 8fb80124 */ lw $t8,0x124($sp)
|
|
.PB0f0ab860:
|
|
/* f0ab860: 8faf0120 */ lw $t7,0x120($sp)
|
|
/* f0ab864: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab868: 24010001 */ li $at,0x1
|
|
/* f0ab86c: 15e10003 */ bne $t7,$at,.PB0f0ab87c
|
|
/* f0ab870: 25d9fff2 */ addiu $t9,$t6,-14
|
|
/* f0ab874: 1000000b */ b .PB0f0ab8a4
|
|
/* f0ab878: afb90100 */ sw $t9,0x100($sp)
|
|
.PB0f0ab87c:
|
|
/* f0ab87c: 8fb80124 */ lw $t8,0x124($sp)
|
|
.PB0f0ab880:
|
|
/* f0ab880: 8faf0120 */ lw $t7,0x120($sp)
|
|
/* f0ab884: 2b010003 */ slti $at,$t8,0x3
|
|
/* f0ab888: 14200006 */ bnez $at,.PB0f0ab8a4
|
|
/* f0ab88c: 31ee0001 */ andi $t6,$t7,0x1
|
|
/* f0ab890: 24010001 */ li $at,0x1
|
|
/* f0ab894: 15c10003 */ bne $t6,$at,.PB0f0ab8a4
|
|
/* f0ab898: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0ab89c: 2738fff2 */ addiu $t8,$t9,-14
|
|
/* f0ab8a0: afb80100 */ sw $t8,0x100($sp)
|
|
.PB0f0ab8a4:
|
|
/* f0ab8a4: 8fa90060 */ lw $t1,0x60($sp)
|
|
/* f0ab8a8: 8faf0050 */ lw $t7,0x50($sp)
|
|
/* f0ab8ac: 012f1821 */ addu $v1,$t1,$t7
|
|
/* f0ab8b0: 8c680228 */ lw $t0,0x228($v1)
|
|
/* f0ab8b4: 59000033 */ blezl $t0,.PB0f0ab984
|
|
/* f0ab8b8: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab8bc: 8c8e001c */ lw $t6,0x1c($a0)
|
|
/* f0ab8c0: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab8c4: 91d90010 */ lbu $t9,0x10($t6)
|
|
/* f0ab8c8: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0ab8cc: 33380002 */ andi $t8,$t9,0x2
|
|
/* f0ab8d0: 1700002b */ bnez $t8,.PB0f0ab980
|
|
/* f0ab8d4: 8fb90108 */ lw $t9,0x108($sp)
|
|
/* f0ab8d8: 8fb80104 */ lw $t8,0x104($sp)
|
|
/* f0ab8dc: 01d91023 */ subu $v0,$t6,$t9
|
|
/* f0ab8e0: 2459fffd */ addiu $t9,$v0,-3
|
|
/* f0ab8e4: 00583023 */ subu $a2,$v0,$t8
|
|
/* f0ab8e8: 2538078c */ addiu $t8,$t1,0x78c
|
|
/* f0ab8ec: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0ab8f0: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab8f4: 8c6f0220 */ lw $t7,0x220($v1)
|
|
/* f0ab8f8: 8fae010c */ lw $t6,0x10c($sp)
|
|
/* f0ab8fc: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0ab900: 3c1900ff */ lui $t9,0xff
|
|
/* f0ab904: 37390040 */ ori $t9,$t9,0x40
|
|
/* f0ab908: 00ae3821 */ addu $a3,$a1,$t6
|
|
/* f0ab90c: 3c0e0030 */ lui $t6,0x30
|
|
/* f0ab910: 35ce0080 */ ori $t6,$t6,0x80
|
|
/* f0ab914: afae0020 */ sw $t6,0x20($sp)
|
|
/* f0ab918: afa70044 */ sw $a3,0x44($sp)
|
|
/* f0ab91c: afb90024 */ sw $t9,0x24($sp)
|
|
/* f0ab920: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab924: afa3004c */ sw $v1,0x4c($sp)
|
|
/* f0ab928: afa20048 */ sw $v0,0x48($sp)
|
|
/* f0ab92c: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab930: afa8001c */ sw $t0,0x1c($sp)
|
|
/* f0ab934: 24c6fffd */ addiu $a2,$a2,-3
|
|
/* f0ab938: 0fc2a8db */ jal bgunRenderHudGauge
|
|
/* f0ab93c: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f0ab940: 8fa3004c */ lw $v1,0x4c($sp)
|
|
/* f0ab944: 8fb80048 */ lw $t8,0x48($sp)
|
|
/* f0ab948: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0ab94c: 3c0e00ff */ lui $t6,0xff
|
|
/* f0ab950: 8c650220 */ lw $a1,0x220($v1)
|
|
/* f0ab954: 35ce00a0 */ ori $t6,$t6,0xa0
|
|
/* f0ab958: 270ffff8 */ addiu $t7,$t8,-8
|
|
/* f0ab95c: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0ab960: afae0018 */ sw $t6,0x18($sp)
|
|
/* f0ab964: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab968: 00402025 */ move $a0,$v0
|
|
/* f0ab96c: 24070001 */ li $a3,0x1
|
|
/* f0ab970: 0fc2a832 */ jal bgunRenderHudInteger
|
|
/* f0ab974: 24c60002 */ addiu $a2,$a2,0x2
|
|
/* f0ab978: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab97c: afa20130 */ sw $v0,0x130($sp)
|
|
.PB0f0ab980:
|
|
/* f0ab980: 8fb9005c */ lw $t9,0x5c($sp)
|
|
.PB0f0ab984:
|
|
/* f0ab984: 8faf0110 */ lw $t7,0x110($sp)
|
|
/* f0ab988: 83380008 */ lb $t8,0x8($t9)
|
|
/* f0ab98c: 014f7021 */ addu $t6,$t2,$t7
|
|
/* f0ab990: 13000149 */ beqz $t8,.PB0f0abeb8
|
|
/* f0ab994: 00000000 */ nop
|
|
/* f0ab998: 81d90064 */ lb $t9,0x64($t6)
|
|
/* f0ab99c: 8fb8012c */ lw $t8,0x12c($sp)
|
|
/* f0ab9a0: 07200145 */ bltz $t9,.PB0f0abeb8
|
|
/* f0ab9a4: 030f7021 */ addu $t6,$t8,$t7
|
|
/* f0ab9a8: 81d915e4 */ lb $t9,0x15e4($t6)
|
|
/* f0ab9ac: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0ab9b0: afb80050 */ sw $t8,0x50($sp)
|
|
/* f0ab9b4: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab9b8: 0c002e8b */ jal viGetViewLeft
|
|
/* f0ab9bc: afb900a4 */ sw $t9,0xa4($sp)
|
|
/* f0ab9c0: 0c002e6d */ jal viGetViewWidth
|
|
/* f0ab9c4: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0ab9c8: 87ae0076 */ lh $t6,0x76($sp)
|
|
/* f0ab9cc: 3c0f8008 */ lui $t7,0x8008
|
|
/* f0ab9d0: 8def1f90 */ lw $t7,0x1f90($t7)
|
|
/* f0ab9d4: 004ec821 */ addu $t9,$v0,$t6
|
|
/* f0ab9d8: 8fae010c */ lw $t6,0x10c($sp)
|
|
/* f0ab9dc: 032f001a */ div $zero,$t9,$t7
|
|
/* f0ab9e0: 0000c012 */ mflo $t8
|
|
/* f0ab9e4: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab9e8: 15e00002 */ bnez $t7,.PB0f0ab9f4
|
|
/* f0ab9ec: 00000000 */ nop
|
|
/* f0ab9f0: 0007000d */ break 0x7
|
|
.PB0f0ab9f4:
|
|
/* f0ab9f4: 2401ffff */ li $at,-1
|
|
/* f0ab9f8: 15e10004 */ bne $t7,$at,.PB0f0aba0c
|
|
/* f0ab9fc: 3c018000 */ lui $at,0x8000
|
|
/* f0aba00: 17210002 */ bne $t9,$at,.PB0f0aba0c
|
|
/* f0aba04: 00000000 */ nop
|
|
/* f0aba08: 0006000d */ break 0x6
|
|
.PB0f0aba0c:
|
|
/* f0aba0c: 030ec823 */ subu $t9,$t8,$t6
|
|
/* f0aba10: 8fb80124 */ lw $t8,0x124($sp)
|
|
/* f0aba14: 272fffe8 */ addiu $t7,$t9,-24
|
|
/* f0aba18: 24010002 */ li $at,0x2
|
|
/* f0aba1c: 17010011 */ bne $t8,$at,.PB0f0aba64
|
|
/* f0aba20: afaf0100 */ sw $t7,0x100($sp)
|
|
/* f0aba24: 0fc550b9 */ jal optionsGetScreenSplit
|
|
/* f0aba28: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aba2c: 24010001 */ li $at,0x1
|
|
/* f0aba30: 10410006 */ beq $v0,$at,.PB0f0aba4c
|
|
/* f0aba34: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aba38: 3c0e8009 */ lui $t6,0x8009
|
|
/* f0aba3c: 91ce2fd0 */ lbu $t6,0x2fd0($t6)
|
|
/* f0aba40: 24010001 */ li $at,0x1
|
|
/* f0aba44: 55c10008 */ bnel $t6,$at,.PB0f0aba68
|
|
/* f0aba48: 8fae0124 */ lw $t6,0x124($sp)
|
|
.PB0f0aba4c:
|
|
/* f0aba4c: 8fb90120 */ lw $t9,0x120($sp)
|
|
/* f0aba50: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0aba54: 17200003 */ bnez $t9,.PB0f0aba64
|
|
/* f0aba58: 25f8000f */ addiu $t8,$t7,0xf
|
|
/* f0aba5c: 1000000a */ b .PB0f0aba88
|
|
/* f0aba60: afb80100 */ sw $t8,0x100($sp)
|
|
.PB0f0aba64:
|
|
/* f0aba64: 8fae0124 */ lw $t6,0x124($sp)
|
|
.PB0f0aba68:
|
|
/* f0aba68: 8fb90120 */ lw $t9,0x120($sp)
|
|
/* f0aba6c: 29c10003 */ slti $at,$t6,0x3
|
|
/* f0aba70: 14200005 */ bnez $at,.PB0f0aba88
|
|
/* f0aba74: 332f0001 */ andi $t7,$t9,0x1
|
|
/* f0aba78: 15e00003 */ bnez $t7,.PB0f0aba88
|
|
/* f0aba7c: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aba80: 270e000f */ addiu $t6,$t8,0xf
|
|
/* f0aba84: afae0100 */ sw $t6,0x100($sp)
|
|
.PB0f0aba88:
|
|
/* f0aba88: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
/* f0aba8c: 8fa90050 */ lw $t1,0x50($sp)
|
|
/* f0aba90: 8fb9012c */ lw $t9,0x12c($sp)
|
|
/* f0aba94: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0aba98: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0aba9c: 03387021 */ addu $t6,$t9,$t8
|
|
/* f0abaa0: 8fb900fc */ lw $t9,0xfc($sp)
|
|
/* f0abaa4: 01e94021 */ addu $t0,$t7,$t1
|
|
/* f0abaa8: 8d030228 */ lw $v1,0x228($t0)
|
|
/* f0abaac: 8dcc17a8 */ lw $t4,0x17a8($t6)
|
|
/* f0abab0: 0329c021 */ addu $t8,$t9,$t1
|
|
/* f0abab4: 58600038 */ blezl $v1,.PB0f0abb98
|
|
/* f0abab8: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
/* f0ababc: 8f02001c */ lw $v0,0x1c($t8)
|
|
/* f0abac0: 50400035 */ beqzl $v0,.PB0f0abb98
|
|
/* f0abac4: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
/* f0abac8: 904e0010 */ lbu $t6,0x10($v0)
|
|
/* f0abacc: 25f8078c */ addiu $t8,$t7,0x78c
|
|
/* f0abad0: 3c0f00ff */ lui $t7,0xff
|
|
/* f0abad4: 31d90002 */ andi $t9,$t6,0x2
|
|
/* f0abad8: 1720002e */ bnez $t9,.PB0f0abb94
|
|
/* f0abadc: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0abae0: 8fb90108 */ lw $t9,0x108($sp)
|
|
/* f0abae4: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0abae8: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0abaec: 01d91023 */ subu $v0,$t6,$t9
|
|
/* f0abaf0: 8fae0104 */ lw $t6,0x104($sp)
|
|
/* f0abaf4: 8fb9010c */ lw $t9,0x10c($sp)
|
|
/* f0abaf8: 2458fff8 */ addiu $t8,$v0,-8
|
|
/* f0abafc: 004e3023 */ subu $a2,$v0,$t6
|
|
/* f0abb00: 244efffd */ addiu $t6,$v0,-3
|
|
/* f0abb04: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0abb08: 00b93821 */ addu $a3,$a1,$t9
|
|
/* f0abb0c: 8d190220 */ lw $t9,0x220($t0)
|
|
/* f0abb10: 3c0e0030 */ lui $t6,0x30
|
|
/* f0abb14: 35ce0080 */ ori $t6,$t6,0x80
|
|
/* f0abb18: 35ef0040 */ ori $t7,$t7,0x40
|
|
/* f0abb1c: afaf0024 */ sw $t7,0x24($sp)
|
|
/* f0abb20: afae0020 */ sw $t6,0x20($sp)
|
|
/* f0abb24: afac00a0 */ sw $t4,0xa0($sp)
|
|
/* f0abb28: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0abb2c: afa80038 */ sw $t0,0x38($sp)
|
|
/* f0abb30: afb80054 */ sw $t8,0x54($sp)
|
|
/* f0abb34: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0abb38: afa3001c */ sw $v1,0x1c($sp)
|
|
/* f0abb3c: 24c6fffd */ addiu $a2,$a2,-3
|
|
/* f0abb40: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0abb44: 0fc2a8db */ jal bgunRenderHudGauge
|
|
/* f0abb48: afb90018 */ sw $t9,0x18($sp)
|
|
/* f0abb4c: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f0abb50: 8fa60100 */ lw $a2,0x100($sp)
|
|
/* f0abb54: 8fb90054 */ lw $t9,0x54($sp)
|
|
/* f0abb58: 3c0e00ff */ lui $t6,0xff
|
|
/* f0abb5c: 8d050220 */ lw $a1,0x220($t0)
|
|
/* f0abb60: 35ce00a0 */ ori $t6,$t6,0xa0
|
|
/* f0abb64: afae0018 */ sw $t6,0x18($sp)
|
|
/* f0abb68: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0abb6c: 00402025 */ move $a0,$v0
|
|
/* f0abb70: 00003825 */ move $a3,$zero
|
|
/* f0abb74: 24c6fffe */ addiu $a2,$a2,-2
|
|
/* f0abb78: 0fc2a832 */ jal bgunRenderHudInteger
|
|
/* f0abb7c: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0abb80: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f0abb84: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0abb88: 8fac00a0 */ lw $t4,0xa0($sp)
|
|
/* f0abb8c: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0abb90: 8fa90050 */ lw $t1,0x50($sp)
|
|
.PB0f0abb94:
|
|
/* f0abb94: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
.PB0f0abb98:
|
|
/* f0abb98: 3c0b8007 */ lui $t3,0x8007
|
|
/* f0abb9c: 8fb900fc */ lw $t9,0xfc($sp)
|
|
/* f0abba0: 000fc080 */ sll $t8,$t7,0x2
|
|
/* f0abba4: 030fc023 */ subu $t8,$t8,$t7
|
|
/* f0abba8: 0018c080 */ sll $t8,$t8,0x2
|
|
/* f0abbac: 01785821 */ addu $t3,$t3,$t8
|
|
/* f0abbb0: 8d6b20e8 */ lw $t3,0x20e8($t3)
|
|
/* f0abbb4: 03297021 */ addu $t6,$t9,$t1
|
|
/* f0abbb8: 5960003e */ blezl $t3,.PB0f0abcb4
|
|
/* f0abbbc: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0abbc0: 8dcf001c */ lw $t7,0x1c($t6)
|
|
/* f0abbc4: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0abbc8: 91e20010 */ lbu $v0,0x10($t7)
|
|
/* f0abbcc: 272efffe */ addiu $t6,$t9,-2
|
|
/* f0abbd0: 30580001 */ andi $t8,$v0,0x1
|
|
/* f0abbd4: 57000037 */ bnezl $t8,.PB0f0abcb4
|
|
/* f0abbd8: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0abbdc: 8faf0128 */ lw $t7,0x128($sp)
|
|
/* f0abbe0: 8fb80108 */ lw $t8,0x108($sp)
|
|
/* f0abbe4: afae0054 */ sw $t6,0x54($sp)
|
|
/* f0abbe8: 8fae010c */ lw $t6,0x10c($sp)
|
|
/* f0abbec: 01f83023 */ subu $a2,$t7,$t8
|
|
/* f0abbf0: 304f0002 */ andi $t7,$v0,0x2
|
|
/* f0abbf4: 01804825 */ move $t1,$t4
|
|
/* f0abbf8: 254d005c */ addiu $t5,$t2,0x5c
|
|
/* f0abbfc: 11e0000d */ beqz $t7,.PB0f0abc34
|
|
/* f0abc00: 032e3821 */ addu $a3,$t9,$t6
|
|
/* f0abc04: 8d0e0228 */ lw $t6,0x228($t0)
|
|
/* f0abc08: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0abc0c: 8fb90050 */ lw $t9,0x50($sp)
|
|
/* f0abc10: 19c00003 */ blez $t6,.PB0f0abc20
|
|
/* f0abc14: 03191821 */ addu $v1,$t8,$t9
|
|
/* f0abc18: 8d0f0220 */ lw $t7,0x220($t0)
|
|
/* f0abc1c: 018f4821 */ addu $t1,$t4,$t7
|
|
.PB0f0abc20:
|
|
/* f0abc20: 8c780228 */ lw $t8,0x228($v1)
|
|
/* f0abc24: 5b000004 */ blezl $t8,.PB0f0abc38
|
|
/* f0abc28: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0abc2c: 8c790220 */ lw $t9,0x220($v1)
|
|
/* f0abc30: 01394821 */ addu $t1,$t1,$t9
|
|
.PB0f0abc34:
|
|
/* f0abc34: 8fae0128 */ lw $t6,0x128($sp)
|
|
.PB0f0abc38:
|
|
/* f0abc38: 3c0f0040 */ lui $t7,0x40
|
|
/* f0abc3c: 3c1800ff */ lui $t8,0xff
|
|
/* f0abc40: 3718c040 */ ori $t8,$t8,0xc040
|
|
/* f0abc44: 35ef3080 */ ori $t7,$t7,0x3080
|
|
/* f0abc48: 24190001 */ li $t9,0x1
|
|
/* f0abc4c: afb90028 */ sw $t9,0x28($sp)
|
|
/* f0abc50: afaf0020 */ sw $t7,0x20($sp)
|
|
/* f0abc54: afb80024 */ sw $t8,0x24($sp)
|
|
/* f0abc58: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0abc5c: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0abc60: afad0014 */ sw $t5,0x14($sp)
|
|
/* f0abc64: afa90018 */ sw $t1,0x18($sp)
|
|
/* f0abc68: afab001c */ sw $t3,0x1c($sp)
|
|
/* f0abc6c: afa60048 */ sw $a2,0x48($sp)
|
|
/* f0abc70: afa9009c */ sw $t1,0x9c($sp)
|
|
/* f0abc74: 0fc2a8db */ jal bgunRenderHudGauge
|
|
/* f0abc78: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0abc7c: 8fae0048 */ lw $t6,0x48($sp)
|
|
/* f0abc80: 3c1800ff */ lui $t8,0xff
|
|
/* f0abc84: 3718c0a0 */ ori $t8,$t8,0xc0a0
|
|
/* f0abc88: 25cf0001 */ addiu $t7,$t6,0x1
|
|
/* f0abc8c: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0abc90: afb80018 */ sw $t8,0x18($sp)
|
|
/* f0abc94: 00402025 */ move $a0,$v0
|
|
/* f0abc98: 8fa5009c */ lw $a1,0x9c($sp)
|
|
/* f0abc9c: 8fa60054 */ lw $a2,0x54($sp)
|
|
/* f0abca0: 00003825 */ move $a3,$zero
|
|
/* f0abca4: 0fc2a832 */ jal bgunRenderHudInteger
|
|
/* f0abca8: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0abcac: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0abcb0: 8fb9005c */ lw $t9,0x5c($sp)
|
|
.PB0f0abcb4:
|
|
/* f0abcb4: 24010023 */ li $at,0x23
|
|
/* f0abcb8: 24080bb8 */ li $t0,0xbb8
|
|
/* f0abcbc: 932e0000 */ lbu $t6,0x0($t9)
|
|
/* f0abcc0: 3c03800a */ lui $v1,0x800a
|
|
/* f0abcc4: 15c1007c */ bne $t6,$at,.PB0f0abeb8
|
|
/* f0abcc8: 00000000 */ nop
|
|
/* f0abccc: 8c63e92c */ lw $v1,-0x16d4($v1)
|
|
/* f0abcd0: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0abcd4: 8fb9010c */ lw $t9,0x10c($sp)
|
|
/* f0abcd8: 0068001a */ div $zero,$v1,$t0
|
|
/* f0abcdc: 00007812 */ mflo $t7
|
|
/* f0abce0: afaf005c */ sw $t7,0x5c($sp)
|
|
/* f0abce4: 03197021 */ addu $t6,$t8,$t9
|
|
/* f0abce8: 8fb80108 */ lw $t8,0x108($sp)
|
|
/* f0abcec: 8faf0128 */ lw $t7,0x128($sp)
|
|
/* f0abcf0: afae0044 */ sw $t6,0x44($sp)
|
|
/* f0abcf4: 15000002 */ bnez $t0,.PB0f0abd00
|
|
/* f0abcf8: 00000000 */ nop
|
|
/* f0abcfc: 0007000d */ break 0x7
|
|
.PB0f0abd00:
|
|
/* f0abd00: 2401ffff */ li $at,-1
|
|
/* f0abd04: 15010004 */ bne $t0,$at,.PB0f0abd18
|
|
/* f0abd08: 3c018000 */ lui $at,0x8000
|
|
/* f0abd0c: 14610002 */ bne $v1,$at,.PB0f0abd18
|
|
/* f0abd10: 00000000 */ nop
|
|
/* f0abd14: 0006000d */ break 0x6
|
|
.PB0f0abd18:
|
|
/* f0abd18: 01f8c823 */ subu $t9,$t7,$t8
|
|
/* f0abd1c: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0abd20: 272e0001 */ addiu $t6,$t9,0x1
|
|
/* f0abd24: afae0060 */ sw $t6,0x60($sp)
|
|
/* f0abd28: 59e0002e */ blezl $t7,.PB0f0abde4
|
|
/* f0abd2c: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0abd30: 01e80019 */ multu $t7,$t0
|
|
/* f0abd34: 24090032 */ li $t1,0x32
|
|
/* f0abd38: 01e03025 */ move $a2,$t7
|
|
/* f0abd3c: 3c057f1b */ lui $a1,0x7f1b
|
|
/* f0abd40: 24a5ddcc */ addiu $a1,$a1,-8756
|
|
/* f0abd44: 27a40078 */ addiu $a0,$sp,0x78
|
|
/* f0abd48: 0000c012 */ mflo $t8
|
|
/* f0abd4c: 00781023 */ subu $v0,$v1,$t8
|
|
/* f0abd50: 00000000 */ nop
|
|
/* f0abd54: 0049001a */ div $zero,$v0,$t1
|
|
/* f0abd58: 00003812 */ mflo $a3
|
|
/* f0abd5c: 15200002 */ bnez $t1,.PB0f0abd68
|
|
/* f0abd60: 00000000 */ nop
|
|
/* f0abd64: 0007000d */ break 0x7
|
|
.PB0f0abd68:
|
|
/* f0abd68: 2401ffff */ li $at,-1
|
|
/* f0abd6c: 15210004 */ bne $t1,$at,.PB0f0abd80
|
|
/* f0abd70: 3c018000 */ lui $at,0x8000
|
|
/* f0abd74: 14410002 */ bne $v0,$at,.PB0f0abd80
|
|
/* f0abd78: 00000000 */ nop
|
|
/* f0abd7c: 0006000d */ break 0x6
|
|
.PB0f0abd80:
|
|
/* f0abd80: 00e90019 */ multu $a3,$t1
|
|
/* f0abd84: 0000c812 */ mflo $t9
|
|
/* f0abd88: 00597023 */ subu $t6,$v0,$t9
|
|
/* f0abd8c: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0abd90: 01ee7823 */ subu $t7,$t7,$t6
|
|
/* f0abd94: 000f78c0 */ sll $t7,$t7,0x3
|
|
/* f0abd98: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0abd9c: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f0abda0: 01e9001a */ div $zero,$t7,$t1
|
|
/* f0abda4: 0000c012 */ mflo $t8
|
|
/* f0abda8: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0abdac: 15200002 */ bnez $t1,.PB0f0abdb8
|
|
/* f0abdb0: 00000000 */ nop
|
|
/* f0abdb4: 0007000d */ break 0x7
|
|
.PB0f0abdb8:
|
|
/* f0abdb8: 2401ffff */ li $at,-1
|
|
/* f0abdbc: 15210004 */ bne $t1,$at,.PB0f0abdd0
|
|
/* f0abdc0: 3c018000 */ lui $at,0x8000
|
|
/* f0abdc4: 15e10002 */ bne $t7,$at,.PB0f0abdd0
|
|
/* f0abdc8: 00000000 */ nop
|
|
/* f0abdcc: 0006000d */ break 0x6
|
|
.PB0f0abdd0:
|
|
/* f0abdd0: 0c004e1d */ jal sprintf
|
|
/* f0abdd4: 00000000 */ nop
|
|
/* f0abdd8: 1000002b */ b .PB0f0abe88
|
|
/* f0abddc: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0abde0: 8fb9005c */ lw $t9,0x5c($sp)
|
|
.PB0f0abde4:
|
|
/* f0abde4: 24090032 */ li $t1,0x32
|
|
/* f0abde8: 3c057f1b */ lui $a1,0x7f1b
|
|
/* f0abdec: 03280019 */ multu $t9,$t0
|
|
/* f0abdf0: 24a5dddc */ addiu $a1,$a1,-8740
|
|
/* f0abdf4: 27a40078 */ addiu $a0,$sp,0x78
|
|
/* f0abdf8: 00007012 */ mflo $t6
|
|
/* f0abdfc: 006e1023 */ subu $v0,$v1,$t6
|
|
/* f0abe00: 00000000 */ nop
|
|
/* f0abe04: 0049001a */ div $zero,$v0,$t1
|
|
/* f0abe08: 00003012 */ mflo $a2
|
|
/* f0abe0c: 15200002 */ bnez $t1,.PB0f0abe18
|
|
/* f0abe10: 00000000 */ nop
|
|
/* f0abe14: 0007000d */ break 0x7
|
|
.PB0f0abe18:
|
|
/* f0abe18: 2401ffff */ li $at,-1
|
|
/* f0abe1c: 15210004 */ bne $t1,$at,.PB0f0abe30
|
|
/* f0abe20: 3c018000 */ lui $at,0x8000
|
|
/* f0abe24: 14410002 */ bne $v0,$at,.PB0f0abe30
|
|
/* f0abe28: 00000000 */ nop
|
|
/* f0abe2c: 0006000d */ break 0x6
|
|
.PB0f0abe30:
|
|
/* f0abe30: 00c90019 */ multu $a2,$t1
|
|
/* f0abe34: 00007812 */ mflo $t7
|
|
/* f0abe38: 004fc023 */ subu $t8,$v0,$t7
|
|
/* f0abe3c: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0abe40: 0338c823 */ subu $t9,$t9,$t8
|
|
/* f0abe44: 0019c8c0 */ sll $t9,$t9,0x3
|
|
/* f0abe48: 0338c821 */ addu $t9,$t9,$t8
|
|
/* f0abe4c: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f0abe50: 0329001a */ div $zero,$t9,$t1
|
|
/* f0abe54: 00003812 */ mflo $a3
|
|
/* f0abe58: 15200002 */ bnez $t1,.PB0f0abe64
|
|
/* f0abe5c: 00000000 */ nop
|
|
/* f0abe60: 0007000d */ break 0x7
|
|
.PB0f0abe64:
|
|
/* f0abe64: 2401ffff */ li $at,-1
|
|
/* f0abe68: 15210004 */ bne $t1,$at,.PB0f0abe7c
|
|
/* f0abe6c: 3c018000 */ lui $at,0x8000
|
|
/* f0abe70: 17210002 */ bne $t9,$at,.PB0f0abe7c
|
|
/* f0abe74: 00000000 */ nop
|
|
/* f0abe78: 0006000d */ break 0x6
|
|
.PB0f0abe7c:
|
|
/* f0abe7c: 0c004e1d */ jal sprintf
|
|
/* f0abe80: 00000000 */ nop
|
|
/* f0abe84: 8fa60044 */ lw $a2,0x44($sp)
|
|
.PB0f0abe88:
|
|
/* f0abe88: 8fae0060 */ lw $t6,0x60($sp)
|
|
/* f0abe8c: 3c0f00ff */ lui $t7,0xff
|
|
/* f0abe90: 35efc0a0 */ ori $t7,$t7,0xc0a0
|
|
/* f0abe94: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f0abe98: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0abe9c: 27a50078 */ addiu $a1,$sp,0x78
|
|
/* f0abea0: 00003825 */ move $a3,$zero
|
|
/* f0abea4: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0abea8: 24c6fffe */ addiu $a2,$a2,-2
|
|
/* f0abeac: 0fc2a7c1 */ jal bgunRenderHudString
|
|
/* f0abeb0: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0abeb4: afa20130 */ sw $v0,0x130($sp)
|
|
.PB0f0abeb8:
|
|
/* f0abeb8: 0fc552e5 */ jal text0f153780
|
|
/* f0abebc: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0abec0: 24180001 */ li $t8,0x1
|
|
/* f0abec4: 3c018008 */ lui $at,0x8008
|
|
/* f0abec8: ac381f90 */ sw $t8,0x1f90($at)
|
|
.PB0f0abecc:
|
|
/* f0abecc: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f0abed0: 27bd0130 */ addiu $sp,$sp,0x130
|
|
/* f0abed4: 03e00008 */ jr $ra
|
|
/* f0abed8: 00000000 */ nop
|
|
);
|
|
#elif VERSION >= VERSION_NTSC_1_0
|
|
GLOBAL_ASM(
|
|
glabel bgunRenderHud
|
|
/* f0aa86c: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
|
|
/* f0aa870: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
|
|
/* f0aa874: 27bdfed0 */ addiu $sp,$sp,-304
|
|
/* f0aa878: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f0aa87c: afa40130 */ sw $a0,0x130($sp)
|
|
/* f0aa880: 0c002f44 */ jal viGetViewTop
|
|
/* f0aa884: afae012c */ sw $t6,0x12c($sp)
|
|
/* f0aa888: 0c002f26 */ jal viGetViewHeight
|
|
/* f0aa88c: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0aa890: 87af0076 */ lh $t7,0x76($sp)
|
|
/* f0aa894: 3c08800a */ lui $t0,%hi(g_Vars)
|
|
/* f0aa898: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
|
|
/* f0aa89c: 8d0e006c */ lw $t6,0x6c($t0)
|
|
/* f0aa8a0: 004fc021 */ addu $t8,$v0,$t7
|
|
/* f0aa8a4: 2719fff3 */ addiu $t9,$t8,-13
|
|
/* f0aa8a8: 11c00003 */ beqz $t6,.L0f0aa8b8
|
|
/* f0aa8ac: afb90128 */ sw $t9,0x128($sp)
|
|
/* f0aa8b0: 10000002 */ b .L0f0aa8bc
|
|
/* f0aa8b4: 24060001 */ addiu $a2,$zero,0x1
|
|
.L0f0aa8b8:
|
|
/* f0aa8b8: 00003025 */ or $a2,$zero,$zero
|
|
.L0f0aa8bc:
|
|
/* f0aa8bc: 8d0f0068 */ lw $t7,0x68($t0)
|
|
/* f0aa8c0: 00001825 */ or $v1,$zero,$zero
|
|
/* f0aa8c4: 00002825 */ or $a1,$zero,$zero
|
|
/* f0aa8c8: 11e00003 */ beqz $t7,.L0f0aa8d8
|
|
/* f0aa8cc: 00001025 */ or $v0,$zero,$zero
|
|
/* f0aa8d0: 10000001 */ b .L0f0aa8d8
|
|
/* f0aa8d4: 24030001 */ addiu $v1,$zero,0x1
|
|
.L0f0aa8d8:
|
|
/* f0aa8d8: 8d180064 */ lw $t8,0x64($t0)
|
|
/* f0aa8dc: 13000003 */ beqz $t8,.L0f0aa8ec
|
|
/* f0aa8e0: 00000000 */ nop
|
|
/* f0aa8e4: 10000001 */ b .L0f0aa8ec
|
|
/* f0aa8e8: 24050001 */ addiu $a1,$zero,0x1
|
|
.L0f0aa8ec:
|
|
/* f0aa8ec: 8d190070 */ lw $t9,0x70($t0)
|
|
/* f0aa8f0: 13200003 */ beqz $t9,.L0f0aa900
|
|
/* f0aa8f4: 00000000 */ nop
|
|
/* f0aa8f8: 10000001 */ b .L0f0aa900
|
|
/* f0aa8fc: 24020001 */ addiu $v0,$zero,0x1
|
|
.L0f0aa900:
|
|
/* f0aa900: 8d18028c */ lw $t8,0x28c($t0)
|
|
/* f0aa904: 00457021 */ addu $t6,$v0,$a1
|
|
/* f0aa908: 01c37821 */ addu $t7,$t6,$v1
|
|
/* f0aa90c: afb80120 */ sw $t8,0x120($sp)
|
|
/* f0aa910: 8fb8012c */ lw $t8,0x12c($sp)
|
|
/* f0aa914: 01e63821 */ addu $a3,$t7,$a2
|
|
/* f0aa918: 24190009 */ addiu $t9,$zero,0x9
|
|
/* f0aa91c: 240e0024 */ addiu $t6,$zero,0x24
|
|
/* f0aa920: 240f0039 */ addiu $t7,$zero,0x39
|
|
/* f0aa924: afa70124 */ sw $a3,0x124($sp)
|
|
/* f0aa928: afa00110 */ sw $zero,0x110($sp)
|
|
/* f0aa92c: afb9010c */ sw $t9,0x10c($sp)
|
|
/* f0aa930: afae0108 */ sw $t6,0x108($sp)
|
|
/* f0aa934: afaf0104 */ sw $t7,0x104($sp)
|
|
/* f0aa938: 83041580 */ lb $a0,0x1580($t8)
|
|
/* f0aa93c: 0fc2c3f4 */ jal weaponFindById
|
|
/* f0aa940: afa70060 */ sw $a3,0x60($sp)
|
|
/* f0aa944: 8fb9012c */ lw $t9,0x12c($sp)
|
|
/* f0aa948: afa200fc */ sw $v0,0xfc($sp)
|
|
/* f0aa94c: 3c03800a */ lui $v1,%hi(g_Vars)
|
|
/* f0aa950: 8f2e00d8 */ lw $t6,0xd8($t9)
|
|
/* f0aa954: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
|
|
/* f0aa958: 51c00004 */ beqzl $t6,.L0f0aa96c
|
|
/* f0aa95c: 8c6f0284 */ lw $t7,0x284($v1)
|
|
/* f0aa960: 10000457 */ b .L0f0abac0
|
|
/* f0aa964: 8fa20130 */ lw $v0,0x130($sp)
|
|
/* f0aa968: 8c6f0284 */ lw $t7,0x284($v1)
|
|
.L0f0aa96c:
|
|
/* f0aa96c: 8df81580 */ lw $t8,0x1580($t7)
|
|
/* f0aa970: 33190001 */ andi $t9,$t8,0x1
|
|
/* f0aa974: 53200004 */ beqzl $t9,.L0f0aa988
|
|
/* f0aa978: 8c6e000c */ lw $t6,0xc($v1)
|
|
/* f0aa97c: 10000450 */ b .L0f0abac0
|
|
/* f0aa980: 8fa20130 */ lw $v0,0x130($sp)
|
|
/* f0aa984: 8c6e000c */ lw $t6,0xc($v1)
|
|
.L0f0aa988:
|
|
/* f0aa988: 3c0f8007 */ lui $t7,%hi(g_ViRes)
|
|
/* f0aa98c: 29c10005 */ slti $at,$t6,0x5
|
|
/* f0aa990: 10200003 */ beqz $at,.L0f0aa9a0
|
|
/* f0aa994: 00000000 */ nop
|
|
/* f0aa998: 10000449 */ b .L0f0abac0
|
|
/* f0aa99c: 8fa20130 */ lw $v0,0x130($sp)
|
|
.L0f0aa9a0:
|
|
/* f0aa9a0: 8def06c8 */ lw $t7,%lo(g_ViRes)($t7)
|
|
/* f0aa9a4: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0aa9a8: 144f0004 */ bne $v0,$t7,.L0f0aa9bc
|
|
/* f0aa9ac: 24180002 */ addiu $t8,$zero,0x2
|
|
/* f0aa9b0: 3c018008 */ lui $at,%hi(g_ScaleX)
|
|
/* f0aa9b4: 10000003 */ b .L0f0aa9c4
|
|
/* f0aa9b8: ac38fac0 */ sw $t8,%lo(g_ScaleX)($at)
|
|
.L0f0aa9bc:
|
|
/* f0aa9bc: 3c018008 */ lui $at,%hi(g_ScaleX)
|
|
/* f0aa9c0: ac22fac0 */ sw $v0,%lo(g_ScaleX)($at)
|
|
.L0f0aa9c4:
|
|
/* f0aa9c4: 0fc54d8a */ jal text0f153628
|
|
/* f0aa9c8: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aa9cc: 8fb90060 */ lw $t9,0x60($sp)
|
|
/* f0aa9d0: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0aa9d4: 2b210002 */ slti $at,$t9,0x2
|
|
/* f0aa9d8: 1420002a */ bnez $at,.L0f0aaa84
|
|
/* f0aa9dc: 240e0005 */ addiu $t6,$zero,0x5
|
|
/* f0aa9e0: 240f001a */ addiu $t7,$zero,0x1a
|
|
/* f0aa9e4: 2418002f */ addiu $t8,$zero,0x2f
|
|
/* f0aa9e8: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0aa9ec: afae010c */ sw $t6,0x10c($sp)
|
|
/* f0aa9f0: afaf0108 */ sw $t7,0x108($sp)
|
|
/* f0aa9f4: 17210015 */ bne $t9,$at,.L0f0aaa4c
|
|
/* f0aa9f8: afb80104 */ sw $t8,0x104($sp)
|
|
/* f0aa9fc: 3c0e8009 */ lui $t6,%hi(g_Is4Mb)
|
|
/* f0aaa00: 91ce0af0 */ lbu $t6,%lo(g_Is4Mb)($t6)
|
|
/* f0aaa04: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0aaa08: 51c10009 */ beql $t6,$at,.L0f0aaa30
|
|
/* f0aaa0c: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0aaa10: 0fc54bcd */ jal optionsGetScreenSplit
|
|
/* f0aaa14: 00000000 */ nop
|
|
/* f0aaa18: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0aaa1c: 10410007 */ beq $v0,$at,.L0f0aaa3c
|
|
/* f0aaa20: 8faf0120 */ lw $t7,0x120($sp)
|
|
/* f0aaa24: 55e00006 */ bnezl $t7,.L0f0aaa40
|
|
/* f0aaa28: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0aaa2c: 8fb80128 */ lw $t8,0x128($sp)
|
|
.L0f0aaa30:
|
|
/* f0aaa30: 2719000a */ addiu $t9,$t8,0xa
|
|
/* f0aaa34: 10000019 */ b .L0f0aaa9c
|
|
/* f0aaa38: afb90128 */ sw $t9,0x128($sp)
|
|
.L0f0aaa3c:
|
|
/* f0aaa3c: 8fae0128 */ lw $t6,0x128($sp)
|
|
.L0f0aaa40:
|
|
/* f0aaa40: 25cf0002 */ addiu $t7,$t6,0x2
|
|
/* f0aaa44: 10000015 */ b .L0f0aaa9c
|
|
/* f0aaa48: afaf0128 */ sw $t7,0x128($sp)
|
|
.L0f0aaa4c:
|
|
/* f0aaa4c: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0aaa50: 8fb90120 */ lw $t9,0x120($sp)
|
|
/* f0aaa54: 2b010003 */ slti $at,$t8,0x3
|
|
/* f0aaa58: 14200010 */ bnez $at,.L0f0aaa9c
|
|
/* f0aaa5c: 2b210002 */ slti $at,$t9,0x2
|
|
/* f0aaa60: 10200005 */ beqz $at,.L0f0aaa78
|
|
/* f0aaa64: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0aaa68: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0aaa6c: 25cf000a */ addiu $t7,$t6,0xa
|
|
/* f0aaa70: 1000000a */ b .L0f0aaa9c
|
|
/* f0aaa74: afaf0128 */ sw $t7,0x128($sp)
|
|
.L0f0aaa78:
|
|
/* f0aaa78: 27190002 */ addiu $t9,$t8,0x2
|
|
/* f0aaa7c: 10000007 */ b .L0f0aaa9c
|
|
/* f0aaa80: afb90128 */ sw $t9,0x128($sp)
|
|
.L0f0aaa84:
|
|
/* f0aaa84: 0fc54b60 */ jal optionsGetEffectiveScreenSize
|
|
/* f0aaa88: 00000000 */ nop
|
|
/* f0aaa8c: 10400003 */ beqz $v0,.L0f0aaa9c
|
|
/* f0aaa90: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0aaa94: 25cf0008 */ addiu $t7,$t6,0x8
|
|
/* f0aaa98: afaf0128 */ sw $t7,0x128($sp)
|
|
.L0f0aaa9c:
|
|
/* f0aaa9c: 8fa2012c */ lw $v0,0x12c($sp)
|
|
/* f0aaaa0: 3c18ff00 */ lui $t8,0xff00
|
|
/* f0aaaa4: 3c0e800a */ lui $t6,%hi(g_Vars+0x34)
|
|
/* f0aaaa8: 8dce9ff4 */ lw $t6,%lo(g_Vars+0x34)($t6)
|
|
/* f0aaaac: 37180040 */ ori $t8,$t8,0x40
|
|
/* f0aaab0: afb800f4 */ sw $t8,0xf4($sp)
|
|
/* f0aaab4: 9059063b */ lbu $t9,0x63b($v0)
|
|
/* f0aaab8: 24420638 */ addiu $v0,$v0,0x638
|
|
/* f0aaabc: 000e7840 */ sll $t7,$t6,0x1
|
|
/* f0aaac0: afaf00ec */ sw $t7,0xec($sp)
|
|
/* f0aaac4: afa2005c */ sw $v0,0x5c($sp)
|
|
/* f0aaac8: 27a400dc */ addiu $a0,$sp,0xdc
|
|
/* f0aaacc: 00002825 */ or $a1,$zero,$zero
|
|
/* f0aaad0: 0fc26313 */ jal bgunGetWeaponInfo
|
|
/* f0aaad4: afb900f0 */ sw $t9,0xf0($sp)
|
|
/* f0aaad8: 0fc2a31f */ jal bgunIsUsingSecondaryFunction
|
|
/* f0aaadc: 00000000 */ nop
|
|
/* f0aaae0: afa200e8 */ sw $v0,0xe8($sp)
|
|
/* f0aaae4: 00402025 */ or $a0,$v0,$zero
|
|
/* f0aaae8: 27a500dc */ addiu $a1,$sp,0xdc
|
|
/* f0aaaec: 0fc26328 */ jal bgun0f098ca0
|
|
/* f0aaaf0: 8fa6005c */ lw $a2,0x5c($sp)
|
|
/* f0aaaf4: 04400003 */ bltz $v0,.L0f0aab04
|
|
/* f0aaaf8: 00000000 */ nop
|
|
/* f0aaafc: 8fb800e8 */ lw $t8,0xe8($sp)
|
|
/* f0aab00: afb800f0 */ sw $t8,0xf0($sp)
|
|
.L0f0aab04:
|
|
/* f0aab04: 0c002f40 */ jal viGetViewLeft
|
|
/* f0aab08: 00000000 */ nop
|
|
/* f0aab0c: 0c002f22 */ jal viGetViewWidth
|
|
/* f0aab10: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0aab14: 87b90076 */ lh $t9,0x76($sp)
|
|
/* f0aab18: 3c0f8008 */ lui $t7,%hi(g_ScaleX)
|
|
/* f0aab1c: 8deffac0 */ lw $t7,%lo(g_ScaleX)($t7)
|
|
/* f0aab20: 00597021 */ addu $t6,$v0,$t9
|
|
/* f0aab24: 8fb9010c */ lw $t9,0x10c($sp)
|
|
/* f0aab28: 01cf001a */ div $zero,$t6,$t7
|
|
/* f0aab2c: 15e00002 */ bnez $t7,.L0f0aab38
|
|
/* f0aab30: 00000000 */ nop
|
|
/* f0aab34: 0007000d */ break 0x7
|
|
.L0f0aab38:
|
|
/* f0aab38: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0aab3c: 15e10004 */ bne $t7,$at,.L0f0aab50
|
|
/* f0aab40: 3c018000 */ lui $at,0x8000
|
|
/* f0aab44: 15c10002 */ bne $t6,$at,.L0f0aab50
|
|
/* f0aab48: 00000000 */ nop
|
|
/* f0aab4c: 0006000d */ break 0x6
|
|
.L0f0aab50:
|
|
/* f0aab50: 0000c012 */ mflo $t8
|
|
/* f0aab54: 03197023 */ subu $t6,$t8,$t9
|
|
/* f0aab58: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0aab5c: 25cfffe8 */ addiu $t7,$t6,-24
|
|
/* f0aab60: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0aab64: 1701000f */ bne $t8,$at,.L0f0aaba4
|
|
/* f0aab68: afaf0100 */ sw $t7,0x100($sp)
|
|
/* f0aab6c: 0fc54bcd */ jal optionsGetScreenSplit
|
|
/* f0aab70: 00000000 */ nop
|
|
/* f0aab74: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f0aab78: 10e20004 */ beq $a3,$v0,.L0f0aab8c
|
|
/* f0aab7c: 3c198009 */ lui $t9,%hi(g_Is4Mb)
|
|
/* f0aab80: 93390af0 */ lbu $t9,%lo(g_Is4Mb)($t9)
|
|
/* f0aab84: 54f90008 */ bnel $a3,$t9,.L0f0aaba8
|
|
/* f0aab88: 8fb90060 */ lw $t9,0x60($sp)
|
|
.L0f0aab8c:
|
|
/* f0aab8c: 8fae0120 */ lw $t6,0x120($sp)
|
|
/* f0aab90: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0aab94: 15c00003 */ bnez $t6,.L0f0aaba4
|
|
/* f0aab98: 25f8000f */ addiu $t8,$t7,0xf
|
|
/* f0aab9c: 1000000b */ b .L0f0aabcc
|
|
/* f0aaba0: afb80100 */ sw $t8,0x100($sp)
|
|
.L0f0aaba4:
|
|
/* f0aaba4: 8fb90060 */ lw $t9,0x60($sp)
|
|
.L0f0aaba8:
|
|
/* f0aaba8: 8fae0120 */ lw $t6,0x120($sp)
|
|
/* f0aabac: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f0aabb0: 2b210003 */ slti $at,$t9,0x3
|
|
/* f0aabb4: 14200005 */ bnez $at,.L0f0aabcc
|
|
/* f0aabb8: 31cf0001 */ andi $t7,$t6,0x1
|
|
/* f0aabbc: 15e00003 */ bnez $t7,.L0f0aabcc
|
|
/* f0aabc0: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aabc4: 2719000f */ addiu $t9,$t8,0xf
|
|
/* f0aabc8: afb90100 */ sw $t9,0x100($sp)
|
|
.L0f0aabcc:
|
|
/* f0aabcc: 8fa600f0 */ lw $a2,0xf0($sp)
|
|
/* f0aabd0: 8faa012c */ lw $t2,0x12c($sp)
|
|
/* f0aabd4: 54c70014 */ bnel $a2,$a3,.L0f0aac28
|
|
/* f0aabd8: 8faa012c */ lw $t2,0x12c($sp)
|
|
/* f0aabdc: 914215e7 */ lbu $v0,0x15e7($t2)
|
|
/* f0aabe0: 254a1580 */ addiu $t2,$t2,0x1580
|
|
/* f0aabe4: 284100ff */ slti $at,$v0,0xff
|
|
/* f0aabe8: 1020000e */ beqz $at,.L0f0aac24
|
|
/* f0aabec: 28410080 */ slti $at,$v0,0x80
|
|
/* f0aabf0: 10200003 */ beqz $at,.L0f0aac00
|
|
/* f0aabf4: 240e0080 */ addiu $t6,$zero,0x80
|
|
/* f0aabf8: a14e0067 */ sb $t6,0x67($t2)
|
|
/* f0aabfc: 31c200ff */ andi $v0,$t6,0xff
|
|
.L0f0aac00:
|
|
/* f0aac00: 8faf00ec */ lw $t7,0xec($sp)
|
|
/* f0aac04: 241800ff */ addiu $t8,$zero,0xff
|
|
/* f0aac08: 004f1821 */ addu $v1,$v0,$t7
|
|
/* f0aac0c: 28610100 */ slti $at,$v1,0x100
|
|
/* f0aac10: 54200004 */ bnezl $at,.L0f0aac24
|
|
/* f0aac14: a1430067 */ sb $v1,0x67($t2)
|
|
/* f0aac18: 10000002 */ b .L0f0aac24
|
|
/* f0aac1c: a1580067 */ sb $t8,0x67($t2)
|
|
/* f0aac20: a1430067 */ sb $v1,0x67($t2)
|
|
.L0f0aac24:
|
|
/* f0aac24: 8faa012c */ lw $t2,0x12c($sp)
|
|
.L0f0aac28:
|
|
/* f0aac28: 254a1580 */ addiu $t2,$t2,0x1580
|
|
/* f0aac2c: 14c0000a */ bnez $a2,.L0f0aac58
|
|
/* f0aac30: 91420067 */ lbu $v0,0x67($t2)
|
|
/* f0aac34: 18400008 */ blez $v0,.L0f0aac58
|
|
/* f0aac38: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0aac3c: 00591823 */ subu $v1,$v0,$t9
|
|
/* f0aac40: 04610004 */ bgez $v1,.L0f0aac54
|
|
/* f0aac44: 306200ff */ andi $v0,$v1,0xff
|
|
/* f0aac48: a1400067 */ sb $zero,0x67($t2)
|
|
/* f0aac4c: 10000002 */ b .L0f0aac58
|
|
/* f0aac50: 300200ff */ andi $v0,$zero,0xff
|
|
.L0f0aac54:
|
|
/* f0aac54: a1430067 */ sb $v1,0x67($t2)
|
|
.L0f0aac58:
|
|
/* f0aac58: 28410081 */ slti $at,$v0,0x81
|
|
/* f0aac5c: 14200007 */ bnez $at,.L0f0aac7c
|
|
/* f0aac60: 00027040 */ sll $t6,$v0,0x1
|
|
/* f0aac64: 25cfff00 */ addiu $t7,$t6,-256
|
|
/* f0aac68: 3c01ff00 */ lui $at,0xff00
|
|
/* f0aac6c: 34210040 */ ori $at,$at,0x40
|
|
/* f0aac70: 000fc400 */ sll $t8,$t7,0x10
|
|
/* f0aac74: 0301c825 */ or $t9,$t8,$at
|
|
/* f0aac78: afb900f4 */ sw $t9,0xf4($sp)
|
|
.L0f0aac7c:
|
|
/* f0aac7c: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aac80: 8fa500f4 */ lw $a1,0xf4($sp)
|
|
/* f0aac84: 0fc54df7 */ jal textSetPrimColour
|
|
/* f0aac88: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aac8c: 3c068008 */ lui $a2,%hi(g_ScaleX)
|
|
/* f0aac90: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0aac94: 24c6fac0 */ addiu $a2,$a2,%lo(g_ScaleX)
|
|
/* f0aac98: 8cd90000 */ lw $t9,0x0($a2)
|
|
/* f0aac9c: 25f8fffe */ addiu $t8,$t7,-2
|
|
/* f0aaca0: 8fa50128 */ lw $a1,0x128($sp)
|
|
/* f0aaca4: 03190019 */ multu $t8,$t9
|
|
/* f0aaca8: 3c01f600 */ lui $at,0xf600
|
|
/* f0aacac: 30a303ff */ andi $v1,$a1,0x3ff
|
|
/* f0aacb0: 00037080 */ sll $t6,$v1,0x2
|
|
/* f0aacb4: 01c01825 */ or $v1,$t6,$zero
|
|
/* f0aacb8: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0aacbc: 00007012 */ mflo $t6
|
|
/* f0aacc0: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aacc4: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aacc8: 0301c825 */ or $t9,$t8,$at
|
|
/* f0aaccc: 03237025 */ or $t6,$t9,$v1
|
|
/* f0aacd0: ac4e0000 */ sw $t6,0x0($v0)
|
|
/* f0aacd4: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0aacd8: 8cd90000 */ lw $t9,0x0($a2)
|
|
/* f0aacdc: 25f8fff3 */ addiu $t8,$t7,-13
|
|
/* f0aace0: 03190019 */ multu $t8,$t9
|
|
/* f0aace4: 24b9fff5 */ addiu $t9,$a1,-11
|
|
/* f0aace8: 00007012 */ mflo $t6
|
|
/* f0aacec: 31cf03ff */ andi $t7,$t6,0x3ff
|
|
/* f0aacf0: 000fc380 */ sll $t8,$t7,0xe
|
|
/* f0aacf4: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aacf8: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0aacfc: 030fc825 */ or $t9,$t8,$t7
|
|
/* f0aad00: ac590004 */ sw $t9,0x4($v0)
|
|
/* f0aad04: 0fc54e0e */ jal text0f153838
|
|
/* f0aad08: afa30060 */ sw $v1,0x60($sp)
|
|
/* f0aad0c: 3c0e800a */ lui $t6,%hi(g_Vars+0x288)
|
|
/* f0aad10: 8dcea248 */ lw $t6,%lo(g_Vars+0x288)($t6)
|
|
/* f0aad14: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0aad18: 0fc54a16 */ jal optionsGetShowGunFunction
|
|
/* f0aad1c: 8dc40070 */ lw $a0,0x70($t6)
|
|
/* f0aad20: 10400163 */ beqz $v0,.L0f0ab2b0
|
|
/* f0aad24: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aad28: 8fb8005c */ lw $t8,0x5c($sp)
|
|
/* f0aad2c: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0aad30: 93040000 */ lbu $a0,0x0($t8)
|
|
/* f0aad34: 0fc2c401 */ jal weaponGetFunctionById
|
|
/* f0aad38: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aad3c: 0fc44bd4 */ jal invGetCurrentIndex
|
|
/* f0aad40: afa200bc */ sw $v0,0xbc($sp)
|
|
/* f0aad44: 0fc44b3e */ jal invGetNameIdByIndex
|
|
/* f0aad48: 00402025 */ or $a0,$v0,$zero
|
|
/* f0aad4c: 00402025 */ or $a0,$v0,$zero
|
|
/* f0aad50: 0fc5b9f1 */ jal langGet
|
|
/* f0aad54: a7a200ba */ sh $v0,0xba($sp)
|
|
/* f0aad58: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aad5c: 97a300ba */ lhu $v1,0xba($sp)
|
|
/* f0aad60: 00403025 */ or $a2,$v0,$zero
|
|
/* f0aad64: 954f0072 */ lhu $t7,0x72($t2)
|
|
/* f0aad68: 3c02800a */ lui $v0,%hi(g_Vars+0x38)
|
|
/* f0aad6c: 27a400c4 */ addiu $a0,$sp,0xc4
|
|
/* f0aad70: 106f0003 */ beq $v1,$t7,.L0f0aad80
|
|
/* f0aad74: 27a500c0 */ addiu $a1,$sp,0xc0
|
|
/* f0aad78: a140006f */ sb $zero,0x6f($t2)
|
|
/* f0aad7c: a5430072 */ sh $v1,0x72($t2)
|
|
.L0f0aad80:
|
|
/* f0aad80: 9143006f */ lbu $v1,0x6f($t2)
|
|
/* f0aad84: 3c078008 */ lui $a3,%hi(g_CharsHandelGothicXs)
|
|
/* f0aad88: 286100ff */ slti $at,$v1,0xff
|
|
/* f0aad8c: 5020008b */ beqzl $at,.L0f0aafbc
|
|
/* f0aad90: 8fa200bc */ lw $v0,0xbc($sp)
|
|
/* f0aad94: 8c429ff8 */ lw $v0,%lo(g_Vars+0x38)($v0)
|
|
/* f0aad98: 3c1955ff */ lui $t9,0x55ff
|
|
/* f0aad9c: 3739ffff */ ori $t9,$t9,0xffff
|
|
/* f0aada0: 00627021 */ addu $t6,$v1,$v0
|
|
/* f0aada4: 29c10100 */ slti $at,$t6,0x100
|
|
/* f0aada8: 14200004 */ bnez $at,.L0f0aadbc
|
|
/* f0aadac: afb900d0 */ sw $t9,0xd0($sp)
|
|
/* f0aadb0: 241800ff */ addiu $t8,$zero,0xff
|
|
/* f0aadb4: 10000003 */ b .L0f0aadc4
|
|
/* f0aadb8: a158006f */ sb $t8,0x6f($t2)
|
|
.L0f0aadbc:
|
|
/* f0aadbc: 0062c821 */ addu $t9,$v1,$v0
|
|
/* f0aadc0: a159006f */ sb $t9,0x6f($t2)
|
|
.L0f0aadc4:
|
|
/* f0aadc4: 3c0e8008 */ lui $t6,%hi(g_FontHandelGothicXs)
|
|
/* f0aadc8: 8dcefb04 */ lw $t6,%lo(g_FontHandelGothicXs)($t6)
|
|
/* f0aadcc: 8ce7fb08 */ lw $a3,%lo(g_CharsHandelGothicXs)($a3)
|
|
/* f0aadd0: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0aadd4: afa600d4 */ sw $a2,0xd4($sp)
|
|
/* f0aadd8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aaddc: 0fc55cbe */ jal textMeasure
|
|
/* f0aade0: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0aade4: 8fb800c0 */ lw $t8,0xc0($sp)
|
|
/* f0aade8: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aadec: 00002825 */ or $a1,$zero,$zero
|
|
/* f0aadf0: 270f0002 */ addiu $t7,$t8,0x2
|
|
/* f0aadf4: afaf00c0 */ sw $t7,0xc0($sp)
|
|
/* f0aadf8: 9142006f */ lbu $v0,0x6f($t2)
|
|
/* f0aadfc: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f0aae00: 0322c823 */ subu $t9,$t9,$v0
|
|
/* f0aae04: 032f082a */ slt $at,$t9,$t7
|
|
/* f0aae08: 50200003 */ beqzl $at,.L0f0aae18
|
|
/* f0aae0c: 8fae0124 */ lw $t6,0x124($sp)
|
|
/* f0aae10: afb900c0 */ sw $t9,0xc0($sp)
|
|
/* f0aae14: 8fae0124 */ lw $t6,0x124($sp)
|
|
.L0f0aae18:
|
|
/* f0aae18: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aae1c: 8fb900c0 */ lw $t9,0xc0($sp)
|
|
/* f0aae20: 29c10002 */ slti $at,$t6,0x2
|
|
/* f0aae24: 14200007 */ bnez $at,.L0f0aae44
|
|
/* f0aae28: 03197823 */ subu $t7,$t8,$t9
|
|
/* f0aae2c: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0aae30: 8fb900c0 */ lw $t9,0xc0($sp)
|
|
/* f0aae34: 03197823 */ subu $t7,$t8,$t9
|
|
/* f0aae38: 25eefff3 */ addiu $t6,$t7,-13
|
|
/* f0aae3c: 10000003 */ b .L0f0aae4c
|
|
/* f0aae40: afae00cc */ sw $t6,0xcc($sp)
|
|
.L0f0aae44:
|
|
/* f0aae44: 25eefffe */ addiu $t6,$t7,-2
|
|
/* f0aae48: afae00cc */ sw $t6,0xcc($sp)
|
|
.L0f0aae4c:
|
|
/* f0aae4c: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0aae50: 8fb900c4 */ lw $t9,0xc4($sp)
|
|
/* f0aae54: 03197823 */ subu $t7,$t8,$t9
|
|
/* f0aae58: 25eefff1 */ addiu $t6,$t7,-15
|
|
/* f0aae5c: afae00c8 */ sw $t6,0xc8($sp)
|
|
/* f0aae60: 9143006f */ lbu $v1,0x6f($t2)
|
|
/* f0aae64: 240e00ff */ addiu $t6,$zero,0xff
|
|
/* f0aae68: 286100c1 */ slti $at,$v1,0xc1
|
|
/* f0aae6c: 1420000d */ bnez $at,.L0f0aaea4
|
|
/* f0aae70: 0003c200 */ sll $t8,$v1,0x8
|
|
/* f0aae74: 3c01ffff */ lui $at,0xffff
|
|
/* f0aae78: 342140c0 */ ori $at,$at,0x40c0
|
|
/* f0aae7c: 0303c023 */ subu $t8,$t8,$v1
|
|
/* f0aae80: 0301c821 */ addu $t9,$t8,$at
|
|
/* f0aae84: 2401003f */ addiu $at,$zero,0x3f
|
|
/* f0aae88: 0321001b */ divu $zero,$t9,$at
|
|
/* f0aae8c: 00007812 */ mflo $t7
|
|
/* f0aae90: 3c0155ff */ lui $at,0x55ff
|
|
/* f0aae94: 01cf1023 */ subu $v0,$t6,$t7
|
|
/* f0aae98: 3421ff00 */ ori $at,$at,0xff00
|
|
/* f0aae9c: 0041c025 */ or $t8,$v0,$at
|
|
/* f0aaea0: afb800d0 */ sw $t8,0xd0($sp)
|
|
.L0f0aaea4:
|
|
/* f0aaea4: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aaea8: 0fc54df7 */ jal textSetPrimColour
|
|
/* f0aaeac: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aaeb0: 3c038008 */ lui $v1,%hi(g_ScaleX)
|
|
/* f0aaeb4: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0aaeb8: 2463fac0 */ addiu $v1,$v1,%lo(g_ScaleX)
|
|
/* f0aaebc: 8c6f0000 */ lw $t7,0x0($v1)
|
|
/* f0aaec0: 272efff5 */ addiu $t6,$t9,-11
|
|
/* f0aaec4: 3c01f600 */ lui $at,0xf600
|
|
/* f0aaec8: 01cf0019 */ multu $t6,$t7
|
|
/* f0aaecc: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0aaed0: 0000c012 */ mflo $t8
|
|
/* f0aaed4: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0aaed8: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0aaedc: 00197380 */ sll $t6,$t9,0xe
|
|
/* f0aaee0: 01c17825 */ or $t7,$t6,$at
|
|
/* f0aaee4: 01f8c825 */ or $t9,$t7,$t8
|
|
/* f0aaee8: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0aaeec: 8fae00cc */ lw $t6,0xcc($sp)
|
|
/* f0aaef0: 8c780000 */ lw $t8,0x0($v1)
|
|
/* f0aaef4: 25cfffff */ addiu $t7,$t6,-1
|
|
/* f0aaef8: 01f80019 */ multu $t7,$t8
|
|
/* f0aaefc: 8fb800c8 */ lw $t8,0xc8($sp)
|
|
/* f0aaf00: 0000c812 */ mflo $t9
|
|
/* f0aaf04: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aaf08: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0aaf0c: 2719ffff */ addiu $t9,$t8,-1
|
|
/* f0aaf10: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0aaf14: 000ec080 */ sll $t8,$t6,0x2
|
|
/* f0aaf18: 01f8c825 */ or $t9,$t7,$t8
|
|
/* f0aaf1c: 0fc54e0e */ jal text0f153838
|
|
/* f0aaf20: ac590004 */ sw $t9,0x4($v0)
|
|
/* f0aaf24: 3c018006 */ lui $at,%hi(var80061630)
|
|
/* f0aaf28: c4241630 */ lwc1 $f4,%lo(var80061630)($at)
|
|
/* f0aaf2c: 3c014248 */ lui $at,0x4248
|
|
/* f0aaf30: 44813000 */ mtc1 $at,$f6
|
|
/* f0aaf34: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0aaf38: 00002825 */ or $a1,$zero,$zero
|
|
/* f0aaf3c: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f0aaf40: 24060032 */ addiu $a2,$zero,0x32
|
|
/* f0aaf44: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0aaf48: 44045000 */ mfc1 $a0,$f10
|
|
/* f0aaf4c: 0fc54f54 */ jal textSetWaveBlend
|
|
/* f0aaf50: 00000000 */ nop
|
|
/* f0aaf54: 2404ffff */ addiu $a0,$zero,-1
|
|
/* f0aaf58: 0fc54f8e */ jal textSetWaveColours
|
|
/* f0aaf5c: 2405ffff */ addiu $a1,$zero,-1
|
|
/* f0aaf60: 3c0f8008 */ lui $t7,%hi(g_CharsHandelGothicXs)
|
|
/* f0aaf64: 8deffb08 */ lw $t7,%lo(g_CharsHandelGothicXs)($t7)
|
|
/* f0aaf68: 3c188008 */ lui $t8,%hi(g_FontHandelGothicXs)
|
|
/* f0aaf6c: 8f18fb04 */ lw $t8,%lo(g_FontHandelGothicXs)($t8)
|
|
/* f0aaf70: 8fb900d0 */ lw $t9,0xd0($sp)
|
|
/* f0aaf74: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0aaf78: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0aaf7c: 240f03e8 */ addiu $t7,$zero,0x3e8
|
|
/* f0aaf80: afaf0020 */ sw $t7,0x20($sp)
|
|
/* f0aaf84: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aaf88: 27a500cc */ addiu $a1,$sp,0xcc
|
|
/* f0aaf8c: 27a600c8 */ addiu $a2,$sp,0xc8
|
|
/* f0aaf90: 8fa700d4 */ lw $a3,0xd4($sp)
|
|
/* f0aaf94: afa00024 */ sw $zero,0x24($sp)
|
|
/* f0aaf98: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0aaf9c: afb80014 */ sw $t8,0x14($sp)
|
|
/* f0aafa0: afb90018 */ sw $t9,0x18($sp)
|
|
/* f0aafa4: 0fc5580f */ jal textRenderProjected
|
|
/* f0aafa8: afae001c */ sw $t6,0x1c($sp)
|
|
/* f0aafac: 0fc54f93 */ jal textResetBlends
|
|
/* f0aafb0: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0aafb4: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aafb8: 8fa200bc */ lw $v0,0xbc($sp)
|
|
.L0f0aafbc:
|
|
/* f0aafbc: 504000bd */ beqzl $v0,.L0f0ab2b4
|
|
/* f0aafc0: 8fa500fc */ lw $a1,0xfc($sp)
|
|
/* f0aafc4: 94440004 */ lhu $a0,0x4($v0)
|
|
/* f0aafc8: 0fc5b9f1 */ jal langGet
|
|
/* f0aafcc: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0aafd0: 3c18ff55 */ lui $t8,0xff55
|
|
/* f0aafd4: 8fa300bc */ lw $v1,0xbc($sp)
|
|
/* f0aafd8: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0aafdc: 371855ff */ ori $t8,$t8,0x55ff
|
|
/* f0aafe0: afb800d0 */ sw $t8,0xd0($sp)
|
|
/* f0aafe4: 94790004 */ lhu $t9,0x4($v1)
|
|
/* f0aafe8: 9544006c */ lhu $a0,0x6c($t2)
|
|
/* f0aafec: 13240005 */ beq $t9,$a0,.L0f0ab004
|
|
/* f0aaff0: 00000000 */ nop
|
|
/* f0aaff4: 914e0067 */ lbu $t6,0x67($t2)
|
|
/* f0aaff8: 29c10081 */ slti $at,$t6,0x81
|
|
/* f0aaffc: 50200004 */ beqzl $at,.L0f0ab010
|
|
/* f0ab000: a140006e */ sb $zero,0x6e($t2)
|
|
.L0f0ab004:
|
|
/* f0ab004: 14800005 */ bnez $a0,.L0f0ab01c
|
|
/* f0ab008: 00000000 */ nop
|
|
/* f0ab00c: a140006e */ sb $zero,0x6e($t2)
|
|
.L0f0ab010:
|
|
/* f0ab010: 946f0004 */ lhu $t7,0x4($v1)
|
|
/* f0ab014: a54f006c */ sh $t7,0x6c($t2)
|
|
/* f0ab018: 31e4ffff */ andi $a0,$t7,0xffff
|
|
.L0f0ab01c:
|
|
/* f0ab01c: 0fc5b9f1 */ jal langGet
|
|
/* f0ab020: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab024: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab028: 00403025 */ or $a2,$v0,$zero
|
|
/* f0ab02c: 3c02800a */ lui $v0,%hi(g_Vars+0x38)
|
|
/* f0ab030: 9143006e */ lbu $v1,0x6e($t2)
|
|
/* f0ab034: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0ab038: 27a400c4 */ addiu $a0,$sp,0xc4
|
|
/* f0ab03c: 286100ff */ slti $at,$v1,0xff
|
|
/* f0ab040: 1020009b */ beqz $at,.L0f0ab2b0
|
|
/* f0ab044: 27a500c0 */ addiu $a1,$sp,0xc0
|
|
/* f0ab048: 8c429ff8 */ lw $v0,%lo(g_Vars+0x38)($v0)
|
|
/* f0ab04c: 2719fff5 */ addiu $t9,$t8,-11
|
|
/* f0ab050: afb90060 */ sw $t9,0x60($sp)
|
|
/* f0ab054: 00627021 */ addu $t6,$v1,$v0
|
|
/* f0ab058: 29c10100 */ slti $at,$t6,0x100
|
|
/* f0ab05c: 14200004 */ bnez $at,.L0f0ab070
|
|
/* f0ab060: 3c078008 */ lui $a3,%hi(g_CharsHandelGothicXs)
|
|
/* f0ab064: 240f00ff */ addiu $t7,$zero,0xff
|
|
/* f0ab068: 10000003 */ b .L0f0ab078
|
|
/* f0ab06c: a14f006e */ sb $t7,0x6e($t2)
|
|
.L0f0ab070:
|
|
/* f0ab070: 0062c821 */ addu $t9,$v1,$v0
|
|
/* f0ab074: a159006e */ sb $t9,0x6e($t2)
|
|
.L0f0ab078:
|
|
/* f0ab078: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0ab07c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab080: 55c1000a */ bnel $t6,$at,.L0f0ab0ac
|
|
/* f0ab084: 8fb800f0 */ lw $t8,0xf0($sp)
|
|
/* f0ab088: 8fb800bc */ lw $t8,0xbc($sp)
|
|
/* f0ab08c: 954f006c */ lhu $t7,0x6c($t2)
|
|
/* f0ab090: 3c0effff */ lui $t6,0xffff
|
|
/* f0ab094: 97190004 */ lhu $t9,0x4($t8)
|
|
/* f0ab098: 35ce55ff */ ori $t6,$t6,0x55ff
|
|
/* f0ab09c: 55f90003 */ bnel $t7,$t9,.L0f0ab0ac
|
|
/* f0ab0a0: 8fb800f0 */ lw $t8,0xf0($sp)
|
|
/* f0ab0a4: afae00d0 */ sw $t6,0xd0($sp)
|
|
/* f0ab0a8: 8fb800f0 */ lw $t8,0xf0($sp)
|
|
.L0f0ab0ac:
|
|
/* f0ab0ac: 8fb900bc */ lw $t9,0xbc($sp)
|
|
/* f0ab0b0: 17000008 */ bnez $t8,.L0f0ab0d4
|
|
/* f0ab0b4: 00000000 */ nop
|
|
/* f0ab0b8: 954f006c */ lhu $t7,0x6c($t2)
|
|
/* f0ab0bc: 972e0004 */ lhu $t6,0x4($t9)
|
|
/* f0ab0c0: 8fb800d0 */ lw $t8,0xd0($sp)
|
|
/* f0ab0c4: 3c0100ff */ lui $at,0xff
|
|
/* f0ab0c8: 11ee0002 */ beq $t7,$t6,.L0f0ab0d4
|
|
/* f0ab0cc: 0301c825 */ or $t9,$t8,$at
|
|
/* f0ab0d0: afb900d0 */ sw $t9,0xd0($sp)
|
|
.L0f0ab0d4:
|
|
/* f0ab0d4: 3c0f8008 */ lui $t7,%hi(g_FontHandelGothicXs)
|
|
/* f0ab0d8: 8deffb04 */ lw $t7,%lo(g_FontHandelGothicXs)($t7)
|
|
/* f0ab0dc: 8ce7fb08 */ lw $a3,%lo(g_CharsHandelGothicXs)($a3)
|
|
/* f0ab0e0: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab0e4: afa600d4 */ sw $a2,0xd4($sp)
|
|
/* f0ab0e8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab0ec: 0fc55cbe */ jal textMeasure
|
|
/* f0ab0f0: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0ab0f4: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0ab0f8: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab0fc: 00002825 */ or $a1,$zero,$zero
|
|
/* f0ab100: 25d80002 */ addiu $t8,$t6,0x2
|
|
/* f0ab104: afb800c0 */ sw $t8,0xc0($sp)
|
|
/* f0ab108: 9142006e */ lbu $v0,0x6e($t2)
|
|
/* f0ab10c: 0002c880 */ sll $t9,$v0,0x2
|
|
/* f0ab110: 0322c823 */ subu $t9,$t9,$v0
|
|
/* f0ab114: 0338082a */ slt $at,$t9,$t8
|
|
/* f0ab118: 50200003 */ beqzl $at,.L0f0ab128
|
|
/* f0ab11c: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0ab120: afb900c0 */ sw $t9,0xc0($sp)
|
|
/* f0ab124: 8faf0100 */ lw $t7,0x100($sp)
|
|
.L0f0ab128:
|
|
/* f0ab128: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0ab12c: 01eec823 */ subu $t9,$t7,$t6
|
|
/* f0ab130: 8fae00c4 */ lw $t6,0xc4($sp)
|
|
/* f0ab134: 8faf0128 */ lw $t7,0x128($sp)
|
|
/* f0ab138: 2738fff3 */ addiu $t8,$t9,-13
|
|
/* f0ab13c: afb800cc */ sw $t8,0xcc($sp)
|
|
/* f0ab140: 01eec823 */ subu $t9,$t7,$t6
|
|
/* f0ab144: 2738ffff */ addiu $t8,$t9,-1
|
|
/* f0ab148: afb800c8 */ sw $t8,0xc8($sp)
|
|
/* f0ab14c: 9143006e */ lbu $v1,0x6e($t2)
|
|
/* f0ab150: 241800ff */ addiu $t8,$zero,0xff
|
|
/* f0ab154: 286100c1 */ slti $at,$v1,0xc1
|
|
/* f0ab158: 1420000e */ bnez $at,.L0f0ab194
|
|
/* f0ab15c: 00037a00 */ sll $t7,$v1,0x8
|
|
/* f0ab160: 3c01ffff */ lui $at,0xffff
|
|
/* f0ab164: 342140c0 */ ori $at,$at,0x40c0
|
|
/* f0ab168: 01e37823 */ subu $t7,$t7,$v1
|
|
/* f0ab16c: 01e17021 */ addu $t6,$t7,$at
|
|
/* f0ab170: 2401003f */ addiu $at,$zero,0x3f
|
|
/* f0ab174: 01c1001b */ divu $zero,$t6,$at
|
|
/* f0ab178: 8faf00d0 */ lw $t7,0xd0($sp)
|
|
/* f0ab17c: 0000c812 */ mflo $t9
|
|
/* f0ab180: 2401ff00 */ addiu $at,$zero,-256
|
|
/* f0ab184: 03191023 */ subu $v0,$t8,$t9
|
|
/* f0ab188: 01e17024 */ and $t6,$t7,$at
|
|
/* f0ab18c: 01c2c025 */ or $t8,$t6,$v0
|
|
/* f0ab190: afb800d0 */ sw $t8,0xd0($sp)
|
|
.L0f0ab194:
|
|
/* f0ab194: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab198: 0fc54df7 */ jal textSetPrimColour
|
|
/* f0ab19c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab1a0: 3c038008 */ lui $v1,%hi(g_ScaleX)
|
|
/* f0ab1a4: 2463fac0 */ addiu $v1,$v1,%lo(g_ScaleX)
|
|
/* f0ab1a8: 8c6f0000 */ lw $t7,0x0($v1)
|
|
/* f0ab1ac: 8fb90060 */ lw $t9,0x60($sp)
|
|
/* f0ab1b0: 3c01f600 */ lui $at,0xf600
|
|
/* f0ab1b4: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0ab1b8: 032f0019 */ multu $t9,$t7
|
|
/* f0ab1bc: 00007012 */ mflo $t6
|
|
/* f0ab1c0: 31d803ff */ andi $t8,$t6,0x3ff
|
|
/* f0ab1c4: 8fae0128 */ lw $t6,0x128($sp)
|
|
/* f0ab1c8: 0018cb80 */ sll $t9,$t8,0xe
|
|
/* f0ab1cc: 03217825 */ or $t7,$t9,$at
|
|
/* f0ab1d0: 25d80003 */ addiu $t8,$t6,0x3
|
|
/* f0ab1d4: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab1d8: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab1dc: 01eec025 */ or $t8,$t7,$t6
|
|
/* f0ab1e0: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0ab1e4: 8fb900cc */ lw $t9,0xcc($sp)
|
|
/* f0ab1e8: 8c6e0000 */ lw $t6,0x0($v1)
|
|
/* f0ab1ec: 272fffff */ addiu $t7,$t9,-1
|
|
/* f0ab1f0: 01ee0019 */ multu $t7,$t6
|
|
/* f0ab1f4: 8fae00c8 */ lw $t6,0xc8($sp)
|
|
/* f0ab1f8: 0000c012 */ mflo $t8
|
|
/* f0ab1fc: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab200: 00197b80 */ sll $t7,$t9,0xe
|
|
/* f0ab204: 25d8ffff */ addiu $t8,$t6,-1
|
|
/* f0ab208: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0ab20c: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab210: 01eec025 */ or $t8,$t7,$t6
|
|
/* f0ab214: 0fc54e0e */ jal text0f153838
|
|
/* f0ab218: ac580004 */ sw $t8,0x4($v0)
|
|
/* f0ab21c: 3c018006 */ lui $at,%hi(var80061630)
|
|
/* f0ab220: c4301630 */ lwc1 $f16,%lo(var80061630)($at)
|
|
/* f0ab224: 3c014248 */ lui $at,0x4248
|
|
/* f0ab228: 44819000 */ mtc1 $at,$f18
|
|
/* f0ab22c: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab230: 00002825 */ or $a1,$zero,$zero
|
|
/* f0ab234: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0ab238: 24060032 */ addiu $a2,$zero,0x32
|
|
/* f0ab23c: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0ab240: 44043000 */ mfc1 $a0,$f6
|
|
/* f0ab244: 0fc54f54 */ jal textSetWaveBlend
|
|
/* f0ab248: 00000000 */ nop
|
|
/* f0ab24c: 2404ffff */ addiu $a0,$zero,-1
|
|
/* f0ab250: 0fc54f8e */ jal textSetWaveColours
|
|
/* f0ab254: 2405ffff */ addiu $a1,$zero,-1
|
|
/* f0ab258: 3c0f8008 */ lui $t7,%hi(g_CharsHandelGothicXs)
|
|
/* f0ab25c: 8deffb08 */ lw $t7,%lo(g_CharsHandelGothicXs)($t7)
|
|
/* f0ab260: 3c0e8008 */ lui $t6,%hi(g_FontHandelGothicXs)
|
|
/* f0ab264: 8dcefb04 */ lw $t6,%lo(g_FontHandelGothicXs)($t6)
|
|
/* f0ab268: 8fb800d0 */ lw $t8,0xd0($sp)
|
|
/* f0ab26c: 8fb900c0 */ lw $t9,0xc0($sp)
|
|
/* f0ab270: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0ab274: 240f03e8 */ addiu $t7,$zero,0x3e8
|
|
/* f0ab278: afaf0020 */ sw $t7,0x20($sp)
|
|
/* f0ab27c: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab280: 27a500cc */ addiu $a1,$sp,0xcc
|
|
/* f0ab284: 27a600c8 */ addiu $a2,$sp,0xc8
|
|
/* f0ab288: 8fa700d4 */ lw $a3,0xd4($sp)
|
|
/* f0ab28c: afa00024 */ sw $zero,0x24($sp)
|
|
/* f0ab290: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab294: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0ab298: afb80018 */ sw $t8,0x18($sp)
|
|
/* f0ab29c: 0fc5580f */ jal textRenderProjected
|
|
/* f0ab2a0: afb9001c */ sw $t9,0x1c($sp)
|
|
/* f0ab2a4: 0fc54f93 */ jal textResetBlends
|
|
/* f0ab2a8: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab2ac: 8faa0058 */ lw $t2,0x58($sp)
|
|
.L0f0ab2b0:
|
|
/* f0ab2b0: 8fa500fc */ lw $a1,0xfc($sp)
|
|
.L0f0ab2b4:
|
|
/* f0ab2b4: 8fae005c */ lw $t6,0x5c($sp)
|
|
/* f0ab2b8: 50a0000a */ beqzl $a1,.L0f0ab2e4
|
|
/* f0ab2bc: 8fb80110 */ lw $t8,0x110($sp)
|
|
/* f0ab2c0: 91d80003 */ lbu $t8,0x3($t6)
|
|
/* f0ab2c4: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0ab2c8: 00b97821 */ addu $t7,$a1,$t9
|
|
/* f0ab2cc: 8de20014 */ lw $v0,0x14($t7)
|
|
/* f0ab2d0: 50400004 */ beqzl $v0,.L0f0ab2e4
|
|
/* f0ab2d4: 8fb80110 */ lw $t8,0x110($sp)
|
|
/* f0ab2d8: 804e0007 */ lb $t6,0x7($v0)
|
|
/* f0ab2dc: afae0110 */ sw $t6,0x110($sp)
|
|
/* f0ab2e0: 8fb80110 */ lw $t8,0x110($sp)
|
|
.L0f0ab2e4:
|
|
/* f0ab2e4: 2403ffff */ addiu $v1,$zero,-1
|
|
/* f0ab2e8: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab2ec: 57030014 */ bnel $t8,$v1,.L0f0ab340
|
|
/* f0ab2f0: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f0ab2f4: 932f0003 */ lbu $t7,0x3($t9)
|
|
/* f0ab2f8: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f0ab2fc: 000ec023 */ negu $t8,$t6
|
|
/* f0ab300: 00b8c821 */ addu $t9,$a1,$t8
|
|
/* f0ab304: 8f220018 */ lw $v0,0x18($t9)
|
|
/* f0ab308: 50400004 */ beqzl $v0,.L0f0ab31c
|
|
/* f0ab30c: 8fae0110 */ lw $t6,0x110($sp)
|
|
/* f0ab310: 804f0007 */ lb $t7,0x7($v0)
|
|
/* f0ab314: afaf0110 */ sw $t7,0x110($sp)
|
|
/* f0ab318: 8fae0110 */ lw $t6,0x110($sp)
|
|
.L0f0ab31c:
|
|
/* f0ab31c: 55c30008 */ bnel $t6,$v1,.L0f0ab340
|
|
/* f0ab320: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f0ab324: 0fc54de0 */ jal text0f153780
|
|
/* f0ab328: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab32c: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f0ab330: 3c018008 */ lui $at,%hi(g_ScaleX)
|
|
/* f0ab334: 100001e2 */ b .L0f0abac0
|
|
/* f0ab338: ac38fac0 */ sw $t8,%lo(g_ScaleX)($at)
|
|
/* f0ab33c: 8fb90110 */ lw $t9,0x110($sp)
|
|
.L0f0ab340:
|
|
/* f0ab340: 814f0069 */ lb $t7,0x69($t2)
|
|
/* f0ab344: 8fa4012c */ lw $a0,0x12c($sp)
|
|
/* f0ab348: 132f000d */ beq $t9,$t7,.L0f0ab380
|
|
/* f0ab34c: 24841568 */ addiu $a0,$a0,0x1568
|
|
/* f0ab350: 0fc2a765 */ jal bgunResetAbmag
|
|
/* f0ab354: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab358: 8fa4005c */ lw $a0,0x5c($sp)
|
|
/* f0ab35c: 0fc2a765 */ jal bgunResetAbmag
|
|
/* f0ab360: 2484078c */ addiu $a0,$a0,0x78c
|
|
/* f0ab364: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab368: 0fc2a765 */ jal bgunResetAbmag
|
|
/* f0ab36c: 2544005c */ addiu $a0,$t2,0x5c
|
|
/* f0ab370: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab374: 8fae0110 */ lw $t6,0x110($sp)
|
|
/* f0ab378: a14e0069 */ sb $t6,0x69($t2)
|
|
/* f0ab37c: 8fa500fc */ lw $a1,0xfc($sp)
|
|
.L0f0ab380:
|
|
/* f0ab380: 8fb8012c */ lw $t8,0x12c($sp)
|
|
/* f0ab384: 8fa20110 */ lw $v0,0x110($sp)
|
|
/* f0ab388: 27190ddc */ addiu $t9,$t8,0xddc
|
|
/* f0ab38c: afb90060 */ sw $t9,0x60($sp)
|
|
/* f0ab390: 830f0de4 */ lb $t7,0xde4($t8)
|
|
/* f0ab394: 00027080 */ sll $t6,$v0,0x2
|
|
/* f0ab398: 00ae2021 */ addu $a0,$a1,$t6
|
|
/* f0ab39c: 51e00076 */ beqzl $t7,.L0f0ab578
|
|
/* f0ab3a0: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab3a4: 8c99001c */ lw $t9,0x1c($a0)
|
|
/* f0ab3a8: 53200073 */ beqzl $t9,.L0f0ab578
|
|
/* f0ab3ac: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab3b0: 930f0ddc */ lbu $t7,0xddc($t8)
|
|
/* f0ab3b4: 24010022 */ addiu $at,$zero,0x22
|
|
/* f0ab3b8: 51e1006f */ beql $t7,$at,.L0f0ab578
|
|
/* f0ab3bc: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab3c0: afae0050 */ sw $t6,0x50($sp)
|
|
/* f0ab3c4: afa40054 */ sw $a0,0x54($sp)
|
|
/* f0ab3c8: 0c002f40 */ jal viGetViewLeft
|
|
/* f0ab3cc: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab3d0: 3c0e8008 */ lui $t6,%hi(g_ScaleX)
|
|
/* f0ab3d4: 8dcefac0 */ lw $t6,%lo(g_ScaleX)($t6)
|
|
/* f0ab3d8: 8faf0124 */ lw $t7,0x124($sp)
|
|
/* f0ab3dc: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0ab3e0: 004e001a */ div $zero,$v0,$t6
|
|
/* f0ab3e4: 0000c812 */ mflo $t9
|
|
/* f0ab3e8: 27380018 */ addiu $t8,$t9,0x18
|
|
/* f0ab3ec: afb80100 */ sw $t8,0x100($sp)
|
|
/* f0ab3f0: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab3f4: 15c00002 */ bnez $t6,.L0f0ab400
|
|
/* f0ab3f8: 00000000 */ nop
|
|
/* f0ab3fc: 0007000d */ break 0x7
|
|
.L0f0ab400:
|
|
/* f0ab400: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0ab404: 15c10004 */ bne $t6,$at,.L0f0ab418
|
|
/* f0ab408: 3c018000 */ lui $at,0x8000
|
|
/* f0ab40c: 14410002 */ bne $v0,$at,.L0f0ab418
|
|
/* f0ab410: 00000000 */ nop
|
|
/* f0ab414: 0006000d */ break 0x6
|
|
.L0f0ab418:
|
|
/* f0ab418: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0ab41c: 55e10015 */ bnel $t7,$at,.L0f0ab474
|
|
/* f0ab420: 8fae0124 */ lw $t6,0x124($sp)
|
|
/* f0ab424: afa40054 */ sw $a0,0x54($sp)
|
|
/* f0ab428: 0fc54bcd */ jal optionsGetScreenSplit
|
|
/* f0ab42c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab430: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab434: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0ab438: 10410006 */ beq $v0,$at,.L0f0ab454
|
|
/* f0ab43c: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab440: 3c0e8009 */ lui $t6,%hi(g_Is4Mb)
|
|
/* f0ab444: 91ce0af0 */ lbu $t6,%lo(g_Is4Mb)($t6)
|
|
/* f0ab448: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab44c: 55c10009 */ bnel $t6,$at,.L0f0ab474
|
|
/* f0ab450: 8fae0124 */ lw $t6,0x124($sp)
|
|
.L0f0ab454:
|
|
/* f0ab454: 8fb90120 */ lw $t9,0x120($sp)
|
|
/* f0ab458: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0ab45c: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab460: 17210003 */ bne $t9,$at,.L0f0ab470
|
|
/* f0ab464: 270ffff2 */ addiu $t7,$t8,-14
|
|
/* f0ab468: 1000000b */ b .L0f0ab498
|
|
/* f0ab46c: afaf0100 */ sw $t7,0x100($sp)
|
|
.L0f0ab470:
|
|
/* f0ab470: 8fae0124 */ lw $t6,0x124($sp)
|
|
.L0f0ab474:
|
|
/* f0ab474: 8fb90120 */ lw $t9,0x120($sp)
|
|
/* f0ab478: 29c10003 */ slti $at,$t6,0x3
|
|
/* f0ab47c: 14200006 */ bnez $at,.L0f0ab498
|
|
/* f0ab480: 33380001 */ andi $t8,$t9,0x1
|
|
/* f0ab484: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab488: 17010003 */ bne $t8,$at,.L0f0ab498
|
|
/* f0ab48c: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0ab490: 25eefff2 */ addiu $t6,$t7,-14
|
|
/* f0ab494: afae0100 */ sw $t6,0x100($sp)
|
|
.L0f0ab498:
|
|
/* f0ab498: 8fa90060 */ lw $t1,0x60($sp)
|
|
/* f0ab49c: 8fb90050 */ lw $t9,0x50($sp)
|
|
/* f0ab4a0: 01391821 */ addu $v1,$t1,$t9
|
|
/* f0ab4a4: 8c680228 */ lw $t0,0x228($v1)
|
|
/* f0ab4a8: 59000033 */ blezl $t0,.L0f0ab578
|
|
/* f0ab4ac: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab4b0: 8c98001c */ lw $t8,0x1c($a0)
|
|
/* f0ab4b4: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab4b8: 930f0010 */ lbu $t7,0x10($t8)
|
|
/* f0ab4bc: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0ab4c0: 31ee0002 */ andi $t6,$t7,0x2
|
|
/* f0ab4c4: 15c0002b */ bnez $t6,.L0f0ab574
|
|
/* f0ab4c8: 8faf0108 */ lw $t7,0x108($sp)
|
|
/* f0ab4cc: 8fae0104 */ lw $t6,0x104($sp)
|
|
/* f0ab4d0: 030f1023 */ subu $v0,$t8,$t7
|
|
/* f0ab4d4: 244ffffd */ addiu $t7,$v0,-3
|
|
/* f0ab4d8: 004e3023 */ subu $a2,$v0,$t6
|
|
/* f0ab4dc: 252e078c */ addiu $t6,$t1,0x78c
|
|
/* f0ab4e0: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0ab4e4: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0ab4e8: 8c790220 */ lw $t9,0x220($v1)
|
|
/* f0ab4ec: 8fb8010c */ lw $t8,0x10c($sp)
|
|
/* f0ab4f0: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0ab4f4: 3c0f00ff */ lui $t7,0xff
|
|
/* f0ab4f8: 35ef0040 */ ori $t7,$t7,0x40
|
|
/* f0ab4fc: 00b83821 */ addu $a3,$a1,$t8
|
|
/* f0ab500: 3c180030 */ lui $t8,0x30
|
|
/* f0ab504: 37180080 */ ori $t8,$t8,0x80
|
|
/* f0ab508: afb80020 */ sw $t8,0x20($sp)
|
|
/* f0ab50c: afa70044 */ sw $a3,0x44($sp)
|
|
/* f0ab510: afaf0024 */ sw $t7,0x24($sp)
|
|
/* f0ab514: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab518: afa3004c */ sw $v1,0x4c($sp)
|
|
/* f0ab51c: afa20048 */ sw $v0,0x48($sp)
|
|
/* f0ab520: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab524: afa8001c */ sw $t0,0x1c($sp)
|
|
/* f0ab528: 24c6fffd */ addiu $a2,$a2,-3
|
|
/* f0ab52c: 0fc2a7f0 */ jal bgunRenderHudGauge
|
|
/* f0ab530: afb90018 */ sw $t9,0x18($sp)
|
|
/* f0ab534: 8fa3004c */ lw $v1,0x4c($sp)
|
|
/* f0ab538: 8fae0048 */ lw $t6,0x48($sp)
|
|
/* f0ab53c: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0ab540: 3c1800ff */ lui $t8,0xff
|
|
/* f0ab544: 8c650220 */ lw $a1,0x220($v1)
|
|
/* f0ab548: 371800a0 */ ori $t8,$t8,0xa0
|
|
/* f0ab54c: 25d9fff8 */ addiu $t9,$t6,-8
|
|
/* f0ab550: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab554: afb80018 */ sw $t8,0x18($sp)
|
|
/* f0ab558: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab55c: 00402025 */ or $a0,$v0,$zero
|
|
/* f0ab560: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f0ab564: 0fc2a74b */ jal bgunRenderHudInteger
|
|
/* f0ab568: 24c60002 */ addiu $a2,$a2,0x2
|
|
/* f0ab56c: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab570: afa20130 */ sw $v0,0x130($sp)
|
|
.L0f0ab574:
|
|
/* f0ab574: 8faf005c */ lw $t7,0x5c($sp)
|
|
.L0f0ab578:
|
|
/* f0ab578: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f0ab57c: 81ee0008 */ lb $t6,0x8($t7)
|
|
/* f0ab580: 0159c021 */ addu $t8,$t2,$t9
|
|
/* f0ab584: 11c00149 */ beqz $t6,.L0f0abaac
|
|
/* f0ab588: 00000000 */ nop
|
|
/* f0ab58c: 830f0064 */ lb $t7,0x64($t8)
|
|
/* f0ab590: 8fae012c */ lw $t6,0x12c($sp)
|
|
/* f0ab594: 05e00145 */ bltz $t7,.L0f0abaac
|
|
/* f0ab598: 01d9c021 */ addu $t8,$t6,$t9
|
|
/* f0ab59c: 830f15e4 */ lb $t7,0x15e4($t8)
|
|
/* f0ab5a0: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab5a4: afae0050 */ sw $t6,0x50($sp)
|
|
/* f0ab5a8: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab5ac: 0c002f40 */ jal viGetViewLeft
|
|
/* f0ab5b0: afaf00a4 */ sw $t7,0xa4($sp)
|
|
/* f0ab5b4: 0c002f22 */ jal viGetViewWidth
|
|
/* f0ab5b8: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0ab5bc: 87b80076 */ lh $t8,0x76($sp)
|
|
/* f0ab5c0: 3c198008 */ lui $t9,%hi(g_ScaleX)
|
|
/* f0ab5c4: 8f39fac0 */ lw $t9,%lo(g_ScaleX)($t9)
|
|
/* f0ab5c8: 00587821 */ addu $t7,$v0,$t8
|
|
/* f0ab5cc: 8fb8010c */ lw $t8,0x10c($sp)
|
|
/* f0ab5d0: 01f9001a */ div $zero,$t7,$t9
|
|
/* f0ab5d4: 00007012 */ mflo $t6
|
|
/* f0ab5d8: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab5dc: 17200002 */ bnez $t9,.L0f0ab5e8
|
|
/* f0ab5e0: 00000000 */ nop
|
|
/* f0ab5e4: 0007000d */ break 0x7
|
|
.L0f0ab5e8:
|
|
/* f0ab5e8: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0ab5ec: 17210004 */ bne $t9,$at,.L0f0ab600
|
|
/* f0ab5f0: 3c018000 */ lui $at,0x8000
|
|
/* f0ab5f4: 15e10002 */ bne $t7,$at,.L0f0ab600
|
|
/* f0ab5f8: 00000000 */ nop
|
|
/* f0ab5fc: 0006000d */ break 0x6
|
|
.L0f0ab600:
|
|
/* f0ab600: 01d87823 */ subu $t7,$t6,$t8
|
|
/* f0ab604: 8fae0124 */ lw $t6,0x124($sp)
|
|
/* f0ab608: 25f9ffe8 */ addiu $t9,$t7,-24
|
|
/* f0ab60c: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0ab610: 15c10011 */ bne $t6,$at,.L0f0ab658
|
|
/* f0ab614: afb90100 */ sw $t9,0x100($sp)
|
|
/* f0ab618: 0fc54bcd */ jal optionsGetScreenSplit
|
|
/* f0ab61c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab620: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab624: 10410006 */ beq $v0,$at,.L0f0ab640
|
|
/* f0ab628: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab62c: 3c188009 */ lui $t8,%hi(g_Is4Mb)
|
|
/* f0ab630: 93180af0 */ lbu $t8,%lo(g_Is4Mb)($t8)
|
|
/* f0ab634: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0ab638: 57010008 */ bnel $t8,$at,.L0f0ab65c
|
|
/* f0ab63c: 8fb80124 */ lw $t8,0x124($sp)
|
|
.L0f0ab640:
|
|
/* f0ab640: 8faf0120 */ lw $t7,0x120($sp)
|
|
/* f0ab644: 8fb90100 */ lw $t9,0x100($sp)
|
|
/* f0ab648: 15e00003 */ bnez $t7,.L0f0ab658
|
|
/* f0ab64c: 272e000f */ addiu $t6,$t9,0xf
|
|
/* f0ab650: 1000000a */ b .L0f0ab67c
|
|
/* f0ab654: afae0100 */ sw $t6,0x100($sp)
|
|
.L0f0ab658:
|
|
/* f0ab658: 8fb80124 */ lw $t8,0x124($sp)
|
|
.L0f0ab65c:
|
|
/* f0ab65c: 8faf0120 */ lw $t7,0x120($sp)
|
|
/* f0ab660: 2b010003 */ slti $at,$t8,0x3
|
|
/* f0ab664: 14200005 */ bnez $at,.L0f0ab67c
|
|
/* f0ab668: 31f90001 */ andi $t9,$t7,0x1
|
|
/* f0ab66c: 17200003 */ bnez $t9,.L0f0ab67c
|
|
/* f0ab670: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab674: 25d8000f */ addiu $t8,$t6,0xf
|
|
/* f0ab678: afb80100 */ sw $t8,0x100($sp)
|
|
.L0f0ab67c:
|
|
/* f0ab67c: 8fb900a4 */ lw $t9,0xa4($sp)
|
|
/* f0ab680: 8fa90050 */ lw $t1,0x50($sp)
|
|
/* f0ab684: 8faf012c */ lw $t7,0x12c($sp)
|
|
/* f0ab688: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab68c: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab690: 01eec021 */ addu $t8,$t7,$t6
|
|
/* f0ab694: 8faf00fc */ lw $t7,0xfc($sp)
|
|
/* f0ab698: 03294021 */ addu $t0,$t9,$t1
|
|
/* f0ab69c: 8d030228 */ lw $v1,0x228($t0)
|
|
/* f0ab6a0: 8f0c17a8 */ lw $t4,0x17a8($t8)
|
|
/* f0ab6a4: 01e97021 */ addu $t6,$t7,$t1
|
|
/* f0ab6a8: 58600038 */ blezl $v1,.L0f0ab78c
|
|
/* f0ab6ac: 8fb900a4 */ lw $t9,0xa4($sp)
|
|
/* f0ab6b0: 8dc2001c */ lw $v0,0x1c($t6)
|
|
/* f0ab6b4: 50400035 */ beqzl $v0,.L0f0ab78c
|
|
/* f0ab6b8: 8fb900a4 */ lw $t9,0xa4($sp)
|
|
/* f0ab6bc: 90580010 */ lbu $t8,0x10($v0)
|
|
/* f0ab6c0: 272e078c */ addiu $t6,$t9,0x78c
|
|
/* f0ab6c4: 3c1900ff */ lui $t9,0xff
|
|
/* f0ab6c8: 330f0002 */ andi $t7,$t8,0x2
|
|
/* f0ab6cc: 15e0002e */ bnez $t7,.L0f0ab788
|
|
/* f0ab6d0: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0ab6d4: 8faf0108 */ lw $t7,0x108($sp)
|
|
/* f0ab6d8: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0ab6dc: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0ab6e0: 030f1023 */ subu $v0,$t8,$t7
|
|
/* f0ab6e4: 8fb80104 */ lw $t8,0x104($sp)
|
|
/* f0ab6e8: 8faf010c */ lw $t7,0x10c($sp)
|
|
/* f0ab6ec: 244efff8 */ addiu $t6,$v0,-8
|
|
/* f0ab6f0: 00583023 */ subu $a2,$v0,$t8
|
|
/* f0ab6f4: 2458fffd */ addiu $t8,$v0,-3
|
|
/* f0ab6f8: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0ab6fc: 00af3821 */ addu $a3,$a1,$t7
|
|
/* f0ab700: 8d0f0220 */ lw $t7,0x220($t0)
|
|
/* f0ab704: 3c180030 */ lui $t8,0x30
|
|
/* f0ab708: 37180080 */ ori $t8,$t8,0x80
|
|
/* f0ab70c: 37390040 */ ori $t9,$t9,0x40
|
|
/* f0ab710: afb90024 */ sw $t9,0x24($sp)
|
|
/* f0ab714: afb80020 */ sw $t8,0x20($sp)
|
|
/* f0ab718: afac00a0 */ sw $t4,0xa0($sp)
|
|
/* f0ab71c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0ab720: afa80038 */ sw $t0,0x38($sp)
|
|
/* f0ab724: afae0054 */ sw $t6,0x54($sp)
|
|
/* f0ab728: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0ab72c: afa3001c */ sw $v1,0x1c($sp)
|
|
/* f0ab730: 24c6fffd */ addiu $a2,$a2,-3
|
|
/* f0ab734: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab738: 0fc2a7f0 */ jal bgunRenderHudGauge
|
|
/* f0ab73c: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f0ab740: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f0ab744: 8fa60100 */ lw $a2,0x100($sp)
|
|
/* f0ab748: 8faf0054 */ lw $t7,0x54($sp)
|
|
/* f0ab74c: 3c1800ff */ lui $t8,0xff
|
|
/* f0ab750: 8d050220 */ lw $a1,0x220($t0)
|
|
/* f0ab754: 371800a0 */ ori $t8,$t8,0xa0
|
|
/* f0ab758: afb80018 */ sw $t8,0x18($sp)
|
|
/* f0ab75c: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab760: 00402025 */ or $a0,$v0,$zero
|
|
/* f0ab764: 00003825 */ or $a3,$zero,$zero
|
|
/* f0ab768: 24c6fffe */ addiu $a2,$a2,-2
|
|
/* f0ab76c: 0fc2a74b */ jal bgunRenderHudInteger
|
|
/* f0ab770: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0ab774: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f0ab778: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0ab77c: 8fac00a0 */ lw $t4,0xa0($sp)
|
|
/* f0ab780: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab784: 8fa90050 */ lw $t1,0x50($sp)
|
|
.L0f0ab788:
|
|
/* f0ab788: 8fb900a4 */ lw $t9,0xa4($sp)
|
|
.L0f0ab78c:
|
|
/* f0ab78c: 3c0b8007 */ lui $t3,%hi(g_AmmoTypes)
|
|
/* f0ab790: 8faf00fc */ lw $t7,0xfc($sp)
|
|
/* f0ab794: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0ab798: 01d97023 */ subu $t6,$t6,$t9
|
|
/* f0ab79c: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f0ab7a0: 016e5821 */ addu $t3,$t3,$t6
|
|
/* f0ab7a4: 8d6b0368 */ lw $t3,%lo(g_AmmoTypes)($t3)
|
|
/* f0ab7a8: 01e9c021 */ addu $t8,$t7,$t1
|
|
/* f0ab7ac: 5960003e */ blezl $t3,.L0f0ab8a8
|
|
/* f0ab7b0: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab7b4: 8f19001c */ lw $t9,0x1c($t8)
|
|
/* f0ab7b8: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0ab7bc: 01804825 */ or $t1,$t4,$zero
|
|
/* f0ab7c0: 93220010 */ lbu $v0,0x10($t9)
|
|
/* f0ab7c4: 25f8fffe */ addiu $t8,$t7,-2
|
|
/* f0ab7c8: 304e0001 */ andi $t6,$v0,0x1
|
|
/* f0ab7cc: 55c00036 */ bnezl $t6,.L0f0ab8a8
|
|
/* f0ab7d0: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab7d4: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0ab7d8: 8fae0108 */ lw $t6,0x108($sp)
|
|
/* f0ab7dc: afb80054 */ sw $t8,0x54($sp)
|
|
/* f0ab7e0: 8fb8010c */ lw $t8,0x10c($sp)
|
|
/* f0ab7e4: 032e3023 */ subu $a2,$t9,$t6
|
|
/* f0ab7e8: 30590002 */ andi $t9,$v0,0x2
|
|
/* f0ab7ec: 254d005c */ addiu $t5,$t2,0x5c
|
|
/* f0ab7f0: 1320000d */ beqz $t9,.L0f0ab828
|
|
/* f0ab7f4: 01f83821 */ addu $a3,$t7,$t8
|
|
/* f0ab7f8: 8d180228 */ lw $t8,0x228($t0)
|
|
/* f0ab7fc: 8fae0060 */ lw $t6,0x60($sp)
|
|
/* f0ab800: 8faf0050 */ lw $t7,0x50($sp)
|
|
/* f0ab804: 1b000003 */ blez $t8,.L0f0ab814
|
|
/* f0ab808: 01cf1821 */ addu $v1,$t6,$t7
|
|
/* f0ab80c: 8d190220 */ lw $t9,0x220($t0)
|
|
/* f0ab810: 01994821 */ addu $t1,$t4,$t9
|
|
.L0f0ab814:
|
|
/* f0ab814: 8c6e0228 */ lw $t6,0x228($v1)
|
|
/* f0ab818: 59c00004 */ blezl $t6,.L0f0ab82c
|
|
/* f0ab81c: 8fb80128 */ lw $t8,0x128($sp)
|
|
/* f0ab820: 8c6f0220 */ lw $t7,0x220($v1)
|
|
/* f0ab824: 012f4821 */ addu $t1,$t1,$t7
|
|
.L0f0ab828:
|
|
/* f0ab828: 8fb80128 */ lw $t8,0x128($sp)
|
|
.L0f0ab82c:
|
|
/* f0ab82c: 3c190040 */ lui $t9,0x40
|
|
/* f0ab830: 3c0e00ff */ lui $t6,0xff
|
|
/* f0ab834: 35cec040 */ ori $t6,$t6,0xc040
|
|
/* f0ab838: 37393080 */ ori $t9,$t9,0x3080
|
|
/* f0ab83c: 240f0001 */ addiu $t7,$zero,0x1
|
|
/* f0ab840: afaf0028 */ sw $t7,0x28($sp)
|
|
/* f0ab844: afb90020 */ sw $t9,0x20($sp)
|
|
/* f0ab848: afae0024 */ sw $t6,0x24($sp)
|
|
/* f0ab84c: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0ab850: 8fa50100 */ lw $a1,0x100($sp)
|
|
/* f0ab854: afad0014 */ sw $t5,0x14($sp)
|
|
/* f0ab858: afa90018 */ sw $t1,0x18($sp)
|
|
/* f0ab85c: afab001c */ sw $t3,0x1c($sp)
|
|
/* f0ab860: afa60048 */ sw $a2,0x48($sp)
|
|
/* f0ab864: afa9009c */ sw $t1,0x9c($sp)
|
|
/* f0ab868: 0fc2a7f0 */ jal bgunRenderHudGauge
|
|
/* f0ab86c: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0ab870: 8fb80048 */ lw $t8,0x48($sp)
|
|
/* f0ab874: 3c0e00ff */ lui $t6,0xff
|
|
/* f0ab878: 35cec0a0 */ ori $t6,$t6,0xc0a0
|
|
/* f0ab87c: 27190001 */ addiu $t9,$t8,0x1
|
|
/* f0ab880: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0ab884: afae0018 */ sw $t6,0x18($sp)
|
|
/* f0ab888: 00402025 */ or $a0,$v0,$zero
|
|
/* f0ab88c: 8fa5009c */ lw $a1,0x9c($sp)
|
|
/* f0ab890: 8fa60054 */ lw $a2,0x54($sp)
|
|
/* f0ab894: 00003825 */ or $a3,$zero,$zero
|
|
/* f0ab898: 0fc2a74b */ jal bgunRenderHudInteger
|
|
/* f0ab89c: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0ab8a0: afa20130 */ sw $v0,0x130($sp)
|
|
/* f0ab8a4: 8faf005c */ lw $t7,0x5c($sp)
|
|
.L0f0ab8a8:
|
|
/* f0ab8a8: 24010023 */ addiu $at,$zero,0x23
|
|
/* f0ab8ac: 24090e10 */ addiu $t1,$zero,0xe10
|
|
/* f0ab8b0: 91f80000 */ lbu $t8,0x0($t7)
|
|
/* f0ab8b4: 3c03800a */ lui $v1,%hi(g_Vars+0x45c)
|
|
/* f0ab8b8: 1701007c */ bne $t8,$at,.L0f0abaac
|
|
/* f0ab8bc: 00000000 */ nop
|
|
/* f0ab8c0: 8c63a41c */ lw $v1,%lo(g_Vars+0x45c)($v1)
|
|
/* f0ab8c4: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0ab8c8: 8faf010c */ lw $t7,0x10c($sp)
|
|
/* f0ab8cc: 0069001a */ div $zero,$v1,$t1
|
|
/* f0ab8d0: 0000c812 */ mflo $t9
|
|
/* f0ab8d4: afb9005c */ sw $t9,0x5c($sp)
|
|
/* f0ab8d8: 01cfc021 */ addu $t8,$t6,$t7
|
|
/* f0ab8dc: 8fae0108 */ lw $t6,0x108($sp)
|
|
/* f0ab8e0: 8fb90128 */ lw $t9,0x128($sp)
|
|
/* f0ab8e4: afb80044 */ sw $t8,0x44($sp)
|
|
/* f0ab8e8: 15200002 */ bnez $t1,.L0f0ab8f4
|
|
/* f0ab8ec: 00000000 */ nop
|
|
/* f0ab8f0: 0007000d */ break 0x7
|
|
.L0f0ab8f4:
|
|
/* f0ab8f4: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0ab8f8: 15210004 */ bne $t1,$at,.L0f0ab90c
|
|
/* f0ab8fc: 3c018000 */ lui $at,0x8000
|
|
/* f0ab900: 14610002 */ bne $v1,$at,.L0f0ab90c
|
|
/* f0ab904: 00000000 */ nop
|
|
/* f0ab908: 0006000d */ break 0x6
|
|
.L0f0ab90c:
|
|
/* f0ab90c: 032e7823 */ subu $t7,$t9,$t6
|
|
/* f0ab910: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0ab914: 25f80001 */ addiu $t8,$t7,0x1
|
|
/* f0ab918: afb80060 */ sw $t8,0x60($sp)
|
|
/* f0ab91c: 5b20002e */ blezl $t9,.L0f0ab9d8
|
|
/* f0ab920: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0ab924: 03290019 */ multu $t9,$t1
|
|
/* f0ab928: 2408003c */ addiu $t0,$zero,0x3c
|
|
/* f0ab92c: 03203025 */ or $a2,$t9,$zero
|
|
/* f0ab930: 3c057f1b */ lui $a1,%hi(var7f1ac18c)
|
|
/* f0ab934: 24a5c18c */ addiu $a1,$a1,%lo(var7f1ac18c)
|
|
/* f0ab938: 27a40078 */ addiu $a0,$sp,0x78
|
|
/* f0ab93c: 00007012 */ mflo $t6
|
|
/* f0ab940: 006e1023 */ subu $v0,$v1,$t6
|
|
/* f0ab944: 00000000 */ nop
|
|
/* f0ab948: 0048001a */ div $zero,$v0,$t0
|
|
/* f0ab94c: 00003812 */ mflo $a3
|
|
/* f0ab950: 15000002 */ bnez $t0,.L0f0ab95c
|
|
/* f0ab954: 00000000 */ nop
|
|
/* f0ab958: 0007000d */ break 0x7
|
|
.L0f0ab95c:
|
|
/* f0ab95c: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0ab960: 15010004 */ bne $t0,$at,.L0f0ab974
|
|
/* f0ab964: 3c018000 */ lui $at,0x8000
|
|
/* f0ab968: 14410002 */ bne $v0,$at,.L0f0ab974
|
|
/* f0ab96c: 00000000 */ nop
|
|
/* f0ab970: 0006000d */ break 0x6
|
|
.L0f0ab974:
|
|
/* f0ab974: 00e80019 */ multu $a3,$t0
|
|
/* f0ab978: 00007812 */ mflo $t7
|
|
/* f0ab97c: 004fc023 */ subu $t8,$v0,$t7
|
|
/* f0ab980: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0ab984: 0338c823 */ subu $t9,$t9,$t8
|
|
/* f0ab988: 0019c8c0 */ sll $t9,$t9,0x3
|
|
/* f0ab98c: 0338c821 */ addu $t9,$t9,$t8
|
|
/* f0ab990: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f0ab994: 0328001a */ div $zero,$t9,$t0
|
|
/* f0ab998: 00007012 */ mflo $t6
|
|
/* f0ab99c: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0ab9a0: 15000002 */ bnez $t0,.L0f0ab9ac
|
|
/* f0ab9a4: 00000000 */ nop
|
|
/* f0ab9a8: 0007000d */ break 0x7
|
|
.L0f0ab9ac:
|
|
/* f0ab9ac: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0ab9b0: 15010004 */ bne $t0,$at,.L0f0ab9c4
|
|
/* f0ab9b4: 3c018000 */ lui $at,0x8000
|
|
/* f0ab9b8: 17210002 */ bne $t9,$at,.L0f0ab9c4
|
|
/* f0ab9bc: 00000000 */ nop
|
|
/* f0ab9c0: 0006000d */ break 0x6
|
|
.L0f0ab9c4:
|
|
/* f0ab9c4: 0c004dad */ jal sprintf
|
|
/* f0ab9c8: 00000000 */ nop
|
|
/* f0ab9cc: 1000002b */ b .L0f0aba7c
|
|
/* f0ab9d0: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0ab9d4: 8faf005c */ lw $t7,0x5c($sp)
|
|
.L0f0ab9d8:
|
|
/* f0ab9d8: 2408003c */ addiu $t0,$zero,0x3c
|
|
/* f0ab9dc: 3c057f1b */ lui $a1,%hi(var7f1ac19c)
|
|
/* f0ab9e0: 01e90019 */ multu $t7,$t1
|
|
/* f0ab9e4: 24a5c19c */ addiu $a1,$a1,%lo(var7f1ac19c)
|
|
/* f0ab9e8: 27a40078 */ addiu $a0,$sp,0x78
|
|
/* f0ab9ec: 0000c012 */ mflo $t8
|
|
/* f0ab9f0: 00781023 */ subu $v0,$v1,$t8
|
|
/* f0ab9f4: 00000000 */ nop
|
|
/* f0ab9f8: 0048001a */ div $zero,$v0,$t0
|
|
/* f0ab9fc: 00003012 */ mflo $a2
|
|
/* f0aba00: 15000002 */ bnez $t0,.L0f0aba0c
|
|
/* f0aba04: 00000000 */ nop
|
|
/* f0aba08: 0007000d */ break 0x7
|
|
.L0f0aba0c:
|
|
/* f0aba0c: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0aba10: 15010004 */ bne $t0,$at,.L0f0aba24
|
|
/* f0aba14: 3c018000 */ lui $at,0x8000
|
|
/* f0aba18: 14410002 */ bne $v0,$at,.L0f0aba24
|
|
/* f0aba1c: 00000000 */ nop
|
|
/* f0aba20: 0006000d */ break 0x6
|
|
.L0f0aba24:
|
|
/* f0aba24: 00c80019 */ multu $a2,$t0
|
|
/* f0aba28: 0000c812 */ mflo $t9
|
|
/* f0aba2c: 00597023 */ subu $t6,$v0,$t9
|
|
/* f0aba30: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f0aba34: 01ee7823 */ subu $t7,$t7,$t6
|
|
/* f0aba38: 000f78c0 */ sll $t7,$t7,0x3
|
|
/* f0aba3c: 01ee7821 */ addu $t7,$t7,$t6
|
|
/* f0aba40: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f0aba44: 01e8001a */ div $zero,$t7,$t0
|
|
/* f0aba48: 00003812 */ mflo $a3
|
|
/* f0aba4c: 15000002 */ bnez $t0,.L0f0aba58
|
|
/* f0aba50: 00000000 */ nop
|
|
/* f0aba54: 0007000d */ break 0x7
|
|
.L0f0aba58:
|
|
/* f0aba58: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0aba5c: 15010004 */ bne $t0,$at,.L0f0aba70
|
|
/* f0aba60: 3c018000 */ lui $at,0x8000
|
|
/* f0aba64: 15e10002 */ bne $t7,$at,.L0f0aba70
|
|
/* f0aba68: 00000000 */ nop
|
|
/* f0aba6c: 0006000d */ break 0x6
|
|
.L0f0aba70:
|
|
/* f0aba70: 0c004dad */ jal sprintf
|
|
/* f0aba74: 00000000 */ nop
|
|
/* f0aba78: 8fa60044 */ lw $a2,0x44($sp)
|
|
.L0f0aba7c:
|
|
/* f0aba7c: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0aba80: 3c1900ff */ lui $t9,0xff
|
|
/* f0aba84: 3739c0a0 */ ori $t9,$t9,0xc0a0
|
|
/* f0aba88: afb90018 */ sw $t9,0x18($sp)
|
|
/* f0aba8c: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0aba90: 27a50078 */ addiu $a1,$sp,0x78
|
|
/* f0aba94: 00003825 */ or $a3,$zero,$zero
|
|
/* f0aba98: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0aba9c: 24c6fffe */ addiu $a2,$a2,-2
|
|
/* f0abaa0: 0fc2a6da */ jal bgunRenderHudString
|
|
/* f0abaa4: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0abaa8: afa20130 */ sw $v0,0x130($sp)
|
|
.L0f0abaac:
|
|
/* f0abaac: 0fc54de0 */ jal text0f153780
|
|
/* f0abab0: 8fa40130 */ lw $a0,0x130($sp)
|
|
/* f0abab4: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0abab8: 3c018008 */ lui $at,%hi(g_ScaleX)
|
|
/* f0ababc: ac2efac0 */ sw $t6,%lo(g_ScaleX)($at)
|
|
.L0f0abac0:
|
|
/* f0abac0: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f0abac4: 27bd0130 */ addiu $sp,$sp,0x130
|
|
/* f0abac8: 03e00008 */ jr $ra
|
|
/* f0abacc: 00000000 */ nop
|
|
);
|
|
#else
|
|
GLOBAL_ASM(
|
|
glabel bgunRenderHud
|
|
/* f0a860c: 3c0e800a */ lui $t6,0x800a
|
|
/* f0a8610: 8dcee944 */ lw $t6,-0x16bc($t6)
|
|
/* f0a8614: 27bdfee0 */ addiu $sp,$sp,-288
|
|
/* f0a8618: afbf0034 */ sw $ra,0x34($sp)
|
|
/* f0a861c: afa40120 */ sw $a0,0x120($sp)
|
|
/* f0a8620: 0c002fb9 */ jal viGetViewTop
|
|
/* f0a8624: afae011c */ sw $t6,0x11c($sp)
|
|
/* f0a8628: 0c002f9b */ jal viGetViewHeight
|
|
/* f0a862c: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0a8630: 87af0076 */ lh $t7,0x76($sp)
|
|
/* f0a8634: 3c08800a */ lui $t0,0x800a
|
|
/* f0a8638: 2508e6c0 */ addiu $t0,$t0,-6464
|
|
/* f0a863c: 8d0e006c */ lw $t6,0x6c($t0)
|
|
/* f0a8640: 004fc021 */ addu $t8,$v0,$t7
|
|
/* f0a8644: 2719fff3 */ addiu $t9,$t8,-13
|
|
/* f0a8648: 11c00003 */ beqz $t6,.NB0f0a8658
|
|
/* f0a864c: afb90118 */ sw $t9,0x118($sp)
|
|
/* f0a8650: 10000002 */ beqz $zero,.NB0f0a865c
|
|
/* f0a8654: 24060001 */ addiu $a2,$zero,0x1
|
|
.NB0f0a8658:
|
|
/* f0a8658: 00003025 */ or $a2,$zero,$zero
|
|
.NB0f0a865c:
|
|
/* f0a865c: 8d0f0068 */ lw $t7,0x68($t0)
|
|
/* f0a8660: 00001825 */ or $v1,$zero,$zero
|
|
/* f0a8664: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a8668: 11e00003 */ beqz $t7,.NB0f0a8678
|
|
/* f0a866c: 00001025 */ or $v0,$zero,$zero
|
|
/* f0a8670: 10000001 */ beqz $zero,.NB0f0a8678
|
|
/* f0a8674: 24030001 */ addiu $v1,$zero,0x1
|
|
.NB0f0a8678:
|
|
/* f0a8678: 8d180064 */ lw $t8,0x64($t0)
|
|
/* f0a867c: 13000003 */ beqz $t8,.NB0f0a868c
|
|
/* f0a8680: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a8684: 10000001 */ beqz $zero,.NB0f0a868c
|
|
/* f0a8688: 24050001 */ addiu $a1,$zero,0x1
|
|
.NB0f0a868c:
|
|
/* f0a868c: 8d190070 */ lw $t9,0x70($t0)
|
|
/* f0a8690: 13200003 */ beqz $t9,.NB0f0a86a0
|
|
/* f0a8694: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a8698: 10000001 */ beqz $zero,.NB0f0a86a0
|
|
/* f0a869c: 24020001 */ addiu $v0,$zero,0x1
|
|
.NB0f0a86a0:
|
|
/* f0a86a0: 8d18028c */ lw $t8,0x28c($t0)
|
|
/* f0a86a4: 00457021 */ addu $t6,$v0,$a1
|
|
/* f0a86a8: 01c37821 */ addu $t7,$t6,$v1
|
|
/* f0a86ac: afb80110 */ sw $t8,0x110($sp)
|
|
/* f0a86b0: 8fb8011c */ lw $t8,0x11c($sp)
|
|
/* f0a86b4: 01e63821 */ addu $a3,$t7,$a2
|
|
/* f0a86b8: 24190009 */ addiu $t9,$zero,0x9
|
|
/* f0a86bc: 240e0024 */ addiu $t6,$zero,0x24
|
|
/* f0a86c0: 240f0039 */ addiu $t7,$zero,0x39
|
|
/* f0a86c4: afa70114 */ sw $a3,0x114($sp)
|
|
/* f0a86c8: afa00100 */ sw $zero,0x100($sp)
|
|
/* f0a86cc: afb900fc */ sw $t9,0xfc($sp)
|
|
/* f0a86d0: afae00f8 */ sw $t6,0xf8($sp)
|
|
/* f0a86d4: afaf00f4 */ sw $t7,0xf4($sp)
|
|
/* f0a86d8: 83041580 */ lb $a0,0x1580($t8)
|
|
/* f0a86dc: 0fc2bb4c */ jal weaponFindById
|
|
/* f0a86e0: afa70060 */ sw $a3,0x60($sp)
|
|
/* f0a86e4: 8fb9011c */ lw $t9,0x11c($sp)
|
|
/* f0a86e8: afa200ec */ sw $v0,0xec($sp)
|
|
/* f0a86ec: 3c03800a */ lui $v1,0x800a
|
|
/* f0a86f0: 8f2e00d8 */ lw $t6,0xd8($t9)
|
|
/* f0a86f4: 2463e6c0 */ addiu $v1,$v1,-6464
|
|
/* f0a86f8: 51c00004 */ beqzl $t6,.NB0f0a870c
|
|
/* f0a86fc: 8c6f0284 */ lw $t7,0x284($v1)
|
|
/* f0a8700: 10000447 */ beqz $zero,.NB0f0a9820
|
|
/* f0a8704: 8fa20120 */ lw $v0,0x120($sp)
|
|
/* f0a8708: 8c6f0284 */ lw $t7,0x284($v1)
|
|
.NB0f0a870c:
|
|
/* f0a870c: 8df81580 */ lw $t8,0x1580($t7)
|
|
/* f0a8710: 33190001 */ andi $t9,$t8,0x1
|
|
/* f0a8714: 53200004 */ beqzl $t9,.NB0f0a8728
|
|
/* f0a8718: 8c6e000c */ lw $t6,0xc($v1)
|
|
/* f0a871c: 10000440 */ beqz $zero,.NB0f0a9820
|
|
/* f0a8720: 8fa20120 */ lw $v0,0x120($sp)
|
|
/* f0a8724: 8c6e000c */ lw $t6,0xc($v1)
|
|
.NB0f0a8728:
|
|
/* f0a8728: 3c0f8007 */ lui $t7,0x8007
|
|
/* f0a872c: 29c10005 */ slti $at,$t6,0x5
|
|
/* f0a8730: 10200003 */ beqz $at,.NB0f0a8740
|
|
/* f0a8734: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a8738: 10000439 */ beqz $zero,.NB0f0a9820
|
|
/* f0a873c: 8fa20120 */ lw $v0,0x120($sp)
|
|
.NB0f0a8740:
|
|
/* f0a8740: 8def2d88 */ lw $t7,0x2d88($t7)
|
|
/* f0a8744: 24020001 */ addiu $v0,$zero,0x1
|
|
/* f0a8748: 144f0004 */ bne $v0,$t7,.NB0f0a875c
|
|
/* f0a874c: 24180002 */ addiu $t8,$zero,0x2
|
|
/* f0a8750: 3c018008 */ lui $at,0x8008
|
|
/* f0a8754: 10000003 */ beqz $zero,.NB0f0a8764
|
|
/* f0a8758: ac382320 */ sw $t8,0x2320($at)
|
|
.NB0f0a875c:
|
|
/* f0a875c: 3c018008 */ lui $at,0x8008
|
|
/* f0a8760: ac222320 */ sw $v0,0x2320($at)
|
|
.NB0f0a8764:
|
|
/* f0a8764: 0fc5374a */ jal text0f153628
|
|
/* f0a8768: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a876c: 8fb90060 */ lw $t9,0x60($sp)
|
|
/* f0a8770: afa20120 */ sw $v0,0x120($sp)
|
|
/* f0a8774: 2b210002 */ slti $at,$t9,0x2
|
|
/* f0a8778: 1420002a */ bnez $at,.NB0f0a8824
|
|
/* f0a877c: 240e0005 */ addiu $t6,$zero,0x5
|
|
/* f0a8780: 240f001a */ addiu $t7,$zero,0x1a
|
|
/* f0a8784: 2418002f */ addiu $t8,$zero,0x2f
|
|
/* f0a8788: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0a878c: afae00fc */ sw $t6,0xfc($sp)
|
|
/* f0a8790: afaf00f8 */ sw $t7,0xf8($sp)
|
|
/* f0a8794: 17210015 */ bne $t9,$at,.NB0f0a87ec
|
|
/* f0a8798: afb800f4 */ sw $t8,0xf4($sp)
|
|
/* f0a879c: 3c0e8009 */ lui $t6,0x8009
|
|
/* f0a87a0: 91ce30e0 */ lbu $t6,0x30e0($t6)
|
|
/* f0a87a4: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a87a8: 51c10009 */ beql $t6,$at,.NB0f0a87d0
|
|
/* f0a87ac: 8fb80118 */ lw $t8,0x118($sp)
|
|
/* f0a87b0: 0fc53588 */ jal optionsGetScreenSplit
|
|
/* f0a87b4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a87b8: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a87bc: 10410007 */ beq $v0,$at,.NB0f0a87dc
|
|
/* f0a87c0: 8faf0110 */ lw $t7,0x110($sp)
|
|
/* f0a87c4: 55e00006 */ bnezl $t7,.NB0f0a87e0
|
|
/* f0a87c8: 8fae0118 */ lw $t6,0x118($sp)
|
|
/* f0a87cc: 8fb80118 */ lw $t8,0x118($sp)
|
|
.NB0f0a87d0:
|
|
/* f0a87d0: 2719000a */ addiu $t9,$t8,0xa
|
|
/* f0a87d4: 10000019 */ beqz $zero,.NB0f0a883c
|
|
/* f0a87d8: afb90118 */ sw $t9,0x118($sp)
|
|
.NB0f0a87dc:
|
|
/* f0a87dc: 8fae0118 */ lw $t6,0x118($sp)
|
|
.NB0f0a87e0:
|
|
/* f0a87e0: 25cf0002 */ addiu $t7,$t6,0x2
|
|
/* f0a87e4: 10000015 */ beqz $zero,.NB0f0a883c
|
|
/* f0a87e8: afaf0118 */ sw $t7,0x118($sp)
|
|
.NB0f0a87ec:
|
|
/* f0a87ec: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0a87f0: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f0a87f4: 2b010003 */ slti $at,$t8,0x3
|
|
/* f0a87f8: 14200010 */ bnez $at,.NB0f0a883c
|
|
/* f0a87fc: 2b210002 */ slti $at,$t9,0x2
|
|
/* f0a8800: 10200005 */ beqz $at,.NB0f0a8818
|
|
/* f0a8804: 8fb80118 */ lw $t8,0x118($sp)
|
|
/* f0a8808: 8fae0118 */ lw $t6,0x118($sp)
|
|
/* f0a880c: 25cf000a */ addiu $t7,$t6,0xa
|
|
/* f0a8810: 1000000a */ beqz $zero,.NB0f0a883c
|
|
/* f0a8814: afaf0118 */ sw $t7,0x118($sp)
|
|
.NB0f0a8818:
|
|
/* f0a8818: 27190002 */ addiu $t9,$t8,0x2
|
|
/* f0a881c: 10000007 */ beqz $zero,.NB0f0a883c
|
|
/* f0a8820: afb90118 */ sw $t9,0x118($sp)
|
|
.NB0f0a8824:
|
|
/* f0a8824: 0fc5351c */ jal optionsGetEffectiveScreenSize
|
|
/* f0a8828: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a882c: 10400003 */ beqz $v0,.NB0f0a883c
|
|
/* f0a8830: 8fae0118 */ lw $t6,0x118($sp)
|
|
/* f0a8834: 25cf0008 */ addiu $t7,$t6,0x8
|
|
/* f0a8838: afaf0118 */ sw $t7,0x118($sp)
|
|
.NB0f0a883c:
|
|
/* f0a883c: 8fa2011c */ lw $v0,0x11c($sp)
|
|
/* f0a8840: 3c18ff00 */ lui $t8,0xff00
|
|
/* f0a8844: 3c0e800a */ lui $t6,0x800a
|
|
/* f0a8848: 8dcee6f4 */ lw $t6,-0x190c($t6)
|
|
/* f0a884c: 37180040 */ ori $t8,$t8,0x40
|
|
/* f0a8850: afb800e4 */ sw $t8,0xe4($sp)
|
|
/* f0a8854: 9059063b */ lbu $t9,0x63b($v0)
|
|
/* f0a8858: 24420638 */ addiu $v0,$v0,0x638
|
|
/* f0a885c: 000e7840 */ sll $t7,$t6,0x1
|
|
/* f0a8860: afaf00dc */ sw $t7,0xdc($sp)
|
|
/* f0a8864: afa2005c */ sw $v0,0x5c($sp)
|
|
/* f0a8868: 0c002fb5 */ jal viGetViewLeft
|
|
/* f0a886c: afb900e0 */ sw $t9,0xe0($sp)
|
|
/* f0a8870: 0c002f97 */ jal viGetViewWidth
|
|
/* f0a8874: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0a8878: 87b80076 */ lh $t8,0x76($sp)
|
|
/* f0a887c: 3c0e8008 */ lui $t6,0x8008
|
|
/* f0a8880: 8dce2320 */ lw $t6,0x2320($t6)
|
|
/* f0a8884: 0058c821 */ addu $t9,$v0,$t8
|
|
/* f0a8888: 8fb800fc */ lw $t8,0xfc($sp)
|
|
/* f0a888c: 032e001a */ div $zero,$t9,$t6
|
|
/* f0a8890: 15c00002 */ bnez $t6,.NB0f0a889c
|
|
/* f0a8894: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a8898: 0007000d */ break 0x7
|
|
.NB0f0a889c:
|
|
/* f0a889c: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0a88a0: 15c10004 */ bne $t6,$at,.NB0f0a88b4
|
|
/* f0a88a4: 3c018000 */ lui $at,0x8000
|
|
/* f0a88a8: 17210002 */ bne $t9,$at,.NB0f0a88b4
|
|
/* f0a88ac: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a88b0: 0006000d */ break 0x6
|
|
.NB0f0a88b4:
|
|
/* f0a88b4: 00007812 */ mflo $t7
|
|
/* f0a88b8: 01f8c823 */ subu $t9,$t7,$t8
|
|
/* f0a88bc: 8faf0060 */ lw $t7,0x60($sp)
|
|
/* f0a88c0: 272effe8 */ addiu $t6,$t9,-24
|
|
/* f0a88c4: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0a88c8: 15e1000f */ bne $t7,$at,.NB0f0a8908
|
|
/* f0a88cc: afae00f0 */ sw $t6,0xf0($sp)
|
|
/* f0a88d0: 0fc53588 */ jal optionsGetScreenSplit
|
|
/* f0a88d4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a88d8: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f0a88dc: 10c20004 */ beq $a2,$v0,.NB0f0a88f0
|
|
/* f0a88e0: 3c188009 */ lui $t8,0x8009
|
|
/* f0a88e4: 931830e0 */ lbu $t8,0x30e0($t8)
|
|
/* f0a88e8: 54d80008 */ bnel $a2,$t8,.NB0f0a890c
|
|
/* f0a88ec: 8fb80060 */ lw $t8,0x60($sp)
|
|
.NB0f0a88f0:
|
|
/* f0a88f0: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f0a88f4: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0a88f8: 17200003 */ bnez $t9,.NB0f0a8908
|
|
/* f0a88fc: 25cf000f */ addiu $t7,$t6,0xf
|
|
/* f0a8900: 1000000b */ beqz $zero,.NB0f0a8930
|
|
/* f0a8904: afaf00f0 */ sw $t7,0xf0($sp)
|
|
.NB0f0a8908:
|
|
/* f0a8908: 8fb80060 */ lw $t8,0x60($sp)
|
|
.NB0f0a890c:
|
|
/* f0a890c: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f0a8910: 24060001 */ addiu $a2,$zero,0x1
|
|
/* f0a8914: 2b010003 */ slti $at,$t8,0x3
|
|
/* f0a8918: 14200005 */ bnez $at,.NB0f0a8930
|
|
/* f0a891c: 332e0001 */ andi $t6,$t9,0x1
|
|
/* f0a8920: 15c00003 */ bnez $t6,.NB0f0a8930
|
|
/* f0a8924: 8faf00f0 */ lw $t7,0xf0($sp)
|
|
/* f0a8928: 25f8000f */ addiu $t8,$t7,0xf
|
|
/* f0a892c: afb800f0 */ sw $t8,0xf0($sp)
|
|
.NB0f0a8930:
|
|
/* f0a8930: 8fa400e0 */ lw $a0,0xe0($sp)
|
|
/* f0a8934: 8faa011c */ lw $t2,0x11c($sp)
|
|
/* f0a8938: 54860014 */ bnel $a0,$a2,.NB0f0a898c
|
|
/* f0a893c: 8faa011c */ lw $t2,0x11c($sp)
|
|
/* f0a8940: 914215e7 */ lbu $v0,0x15e7($t2)
|
|
/* f0a8944: 254a1580 */ addiu $t2,$t2,0x1580
|
|
/* f0a8948: 284100ff */ slti $at,$v0,0xff
|
|
/* f0a894c: 1020000e */ beqz $at,.NB0f0a8988
|
|
/* f0a8950: 28410080 */ slti $at,$v0,0x80
|
|
/* f0a8954: 10200003 */ beqz $at,.NB0f0a8964
|
|
/* f0a8958: 24190080 */ addiu $t9,$zero,0x80
|
|
/* f0a895c: a1590067 */ sb $t9,0x67($t2)
|
|
/* f0a8960: 332200ff */ andi $v0,$t9,0xff
|
|
.NB0f0a8964:
|
|
/* f0a8964: 8fae00dc */ lw $t6,0xdc($sp)
|
|
/* f0a8968: 240f00ff */ addiu $t7,$zero,0xff
|
|
/* f0a896c: 004e1821 */ addu $v1,$v0,$t6
|
|
/* f0a8970: 28610100 */ slti $at,$v1,0x100
|
|
/* f0a8974: 54200004 */ bnezl $at,.NB0f0a8988
|
|
/* f0a8978: a1430067 */ sb $v1,0x67($t2)
|
|
/* f0a897c: 10000002 */ beqz $zero,.NB0f0a8988
|
|
/* f0a8980: a14f0067 */ sb $t7,0x67($t2)
|
|
/* f0a8984: a1430067 */ sb $v1,0x67($t2)
|
|
.NB0f0a8988:
|
|
/* f0a8988: 8faa011c */ lw $t2,0x11c($sp)
|
|
.NB0f0a898c:
|
|
/* f0a898c: 254a1580 */ addiu $t2,$t2,0x1580
|
|
/* f0a8990: 1480000a */ bnez $a0,.NB0f0a89bc
|
|
/* f0a8994: 91420067 */ lbu $v0,0x67($t2)
|
|
/* f0a8998: 18400008 */ blez $v0,.NB0f0a89bc
|
|
/* f0a899c: 8fb800dc */ lw $t8,0xdc($sp)
|
|
/* f0a89a0: 00581823 */ subu $v1,$v0,$t8
|
|
/* f0a89a4: 04610004 */ bgez $v1,.NB0f0a89b8
|
|
/* f0a89a8: 306200ff */ andi $v0,$v1,0xff
|
|
/* f0a89ac: a1400067 */ sb $zero,0x67($t2)
|
|
/* f0a89b0: 10000002 */ beqz $zero,.NB0f0a89bc
|
|
/* f0a89b4: 300200ff */ andi $v0,$zero,0xff
|
|
.NB0f0a89b8:
|
|
/* f0a89b8: a1430067 */ sb $v1,0x67($t2)
|
|
.NB0f0a89bc:
|
|
/* f0a89bc: 28410081 */ slti $at,$v0,0x81
|
|
/* f0a89c0: 14200007 */ bnez $at,.NB0f0a89e0
|
|
/* f0a89c4: 0002c840 */ sll $t9,$v0,0x1
|
|
/* f0a89c8: 272eff00 */ addiu $t6,$t9,-256
|
|
/* f0a89cc: 3c01ff00 */ lui $at,0xff00
|
|
/* f0a89d0: 34210040 */ ori $at,$at,0x40
|
|
/* f0a89d4: 000e7c00 */ sll $t7,$t6,0x10
|
|
/* f0a89d8: 01e1c025 */ or $t8,$t7,$at
|
|
/* f0a89dc: afb800e4 */ sw $t8,0xe4($sp)
|
|
.NB0f0a89e0:
|
|
/* f0a89e0: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a89e4: 8fa500e4 */ lw $a1,0xe4($sp)
|
|
/* f0a89e8: 0fc537b7 */ jal textSetPrimColour
|
|
/* f0a89ec: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a89f0: 3c068008 */ lui $a2,0x8008
|
|
/* f0a89f4: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0a89f8: 24c62320 */ addiu $a2,$a2,0x2320
|
|
/* f0a89fc: 8cd80000 */ lw $t8,0x0($a2)
|
|
/* f0a8a00: 25cffffe */ addiu $t7,$t6,-2
|
|
/* f0a8a04: 8fa50118 */ lw $a1,0x118($sp)
|
|
/* f0a8a08: 01f80019 */ multu $t7,$t8
|
|
/* f0a8a0c: 3c01f600 */ lui $at,0xf600
|
|
/* f0a8a10: 30a303ff */ andi $v1,$a1,0x3ff
|
|
/* f0a8a14: 0003c880 */ sll $t9,$v1,0x2
|
|
/* f0a8a18: 03201825 */ or $v1,$t9,$zero
|
|
/* f0a8a1c: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0a8a20: 0000c812 */ mflo $t9
|
|
/* f0a8a24: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0a8a28: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0a8a2c: 01e1c025 */ or $t8,$t7,$at
|
|
/* f0a8a30: 0303c825 */ or $t9,$t8,$v1
|
|
/* f0a8a34: ac590000 */ sw $t9,0x0($v0)
|
|
/* f0a8a38: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0a8a3c: 8cd80000 */ lw $t8,0x0($a2)
|
|
/* f0a8a40: 25cffff3 */ addiu $t7,$t6,-13
|
|
/* f0a8a44: 01f80019 */ multu $t7,$t8
|
|
/* f0a8a48: 24b8fff5 */ addiu $t8,$a1,-11
|
|
/* f0a8a4c: 0000c812 */ mflo $t9
|
|
/* f0a8a50: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0a8a54: 000e7b80 */ sll $t7,$t6,0xe
|
|
/* f0a8a58: 331903ff */ andi $t9,$t8,0x3ff
|
|
/* f0a8a5c: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0a8a60: 01eec025 */ or $t8,$t7,$t6
|
|
/* f0a8a64: ac580004 */ sw $t8,0x4($v0)
|
|
/* f0a8a68: 0fc537ce */ jal text0f153838
|
|
/* f0a8a6c: afa30060 */ sw $v1,0x60($sp)
|
|
/* f0a8a70: 3c19800a */ lui $t9,0x800a
|
|
/* f0a8a74: 8f39e948 */ lw $t9,-0x16b8($t9)
|
|
/* f0a8a78: afa20120 */ sw $v0,0x120($sp)
|
|
/* f0a8a7c: 0fc533d2 */ jal optionsGetShowGunFunction
|
|
/* f0a8a80: 8f240070 */ lw $a0,0x70($t9)
|
|
/* f0a8a84: 10400162 */ beqz $v0,.NB0f0a9010
|
|
/* f0a8a88: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a8a8c: 8fa2005c */ lw $v0,0x5c($sp)
|
|
/* f0a8a90: 90440000 */ lbu $a0,0x0($v0)
|
|
/* f0a8a94: 90450003 */ lbu $a1,0x3($v0)
|
|
/* f0a8a98: 0fc2bb59 */ jal weaponGetFunctionById
|
|
/* f0a8a9c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a8aa0: 0fc434ec */ jal invGetCurrentIndex
|
|
/* f0a8aa4: afa200bc */ sw $v0,0xbc($sp)
|
|
/* f0a8aa8: 0fc43456 */ jal invGetNameIdByIndex
|
|
/* f0a8aac: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a8ab0: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a8ab4: 0fc5a4dd */ jal langGet
|
|
/* f0a8ab8: a7a200ba */ sh $v0,0xba($sp)
|
|
/* f0a8abc: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a8ac0: 97a300ba */ lhu $v1,0xba($sp)
|
|
/* f0a8ac4: 00403025 */ or $a2,$v0,$zero
|
|
/* f0a8ac8: 954f0072 */ lhu $t7,0x72($t2)
|
|
/* f0a8acc: 3c02800a */ lui $v0,0x800a
|
|
/* f0a8ad0: 27a400c4 */ addiu $a0,$sp,0xc4
|
|
/* f0a8ad4: 106f0003 */ beq $v1,$t7,.NB0f0a8ae4
|
|
/* f0a8ad8: 27a500c0 */ addiu $a1,$sp,0xc0
|
|
/* f0a8adc: a140006f */ sb $zero,0x6f($t2)
|
|
/* f0a8ae0: a5430072 */ sh $v1,0x72($t2)
|
|
.NB0f0a8ae4:
|
|
/* f0a8ae4: 9143006f */ lbu $v1,0x6f($t2)
|
|
/* f0a8ae8: 3c078008 */ lui $a3,0x8008
|
|
/* f0a8aec: 286100ff */ slti $at,$v1,0xff
|
|
/* f0a8af0: 5020008b */ beqzl $at,.NB0f0a8d20
|
|
/* f0a8af4: 8fa200bc */ lw $v0,0xbc($sp)
|
|
/* f0a8af8: 8c42e6f8 */ lw $v0,-0x1908($v0)
|
|
/* f0a8afc: 3c0e55ff */ lui $t6,0x55ff
|
|
/* f0a8b00: 35ceffff */ ori $t6,$t6,0xffff
|
|
/* f0a8b04: 0062c021 */ addu $t8,$v1,$v0
|
|
/* f0a8b08: 2b010100 */ slti $at,$t8,0x100
|
|
/* f0a8b0c: 14200004 */ bnez $at,.NB0f0a8b20
|
|
/* f0a8b10: afae00d0 */ sw $t6,0xd0($sp)
|
|
/* f0a8b14: 241900ff */ addiu $t9,$zero,0xff
|
|
/* f0a8b18: 10000003 */ beqz $zero,.NB0f0a8b28
|
|
/* f0a8b1c: a159006f */ sb $t9,0x6f($t2)
|
|
.NB0f0a8b20:
|
|
/* f0a8b20: 00627021 */ addu $t6,$v1,$v0
|
|
/* f0a8b24: a14e006f */ sb $t6,0x6f($t2)
|
|
.NB0f0a8b28:
|
|
/* f0a8b28: 3c188008 */ lui $t8,0x8008
|
|
/* f0a8b2c: 8f182364 */ lw $t8,0x2364($t8)
|
|
/* f0a8b30: 8ce72368 */ lw $a3,0x2368($a3)
|
|
/* f0a8b34: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0a8b38: afa600d4 */ sw $a2,0xd4($sp)
|
|
/* f0a8b3c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a8b40: 0fc54655 */ jal textMeasure
|
|
/* f0a8b44: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0a8b48: 8fb900c0 */ lw $t9,0xc0($sp)
|
|
/* f0a8b4c: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a8b50: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a8b54: 272f0002 */ addiu $t7,$t9,0x2
|
|
/* f0a8b58: afaf00c0 */ sw $t7,0xc0($sp)
|
|
/* f0a8b5c: 9142006f */ lbu $v0,0x6f($t2)
|
|
/* f0a8b60: 00027080 */ sll $t6,$v0,0x2
|
|
/* f0a8b64: 01c27023 */ subu $t6,$t6,$v0
|
|
/* f0a8b68: 01cf082a */ slt $at,$t6,$t7
|
|
/* f0a8b6c: 50200003 */ beqzl $at,.NB0f0a8b7c
|
|
/* f0a8b70: 8fb80114 */ lw $t8,0x114($sp)
|
|
/* f0a8b74: afae00c0 */ sw $t6,0xc0($sp)
|
|
/* f0a8b78: 8fb80114 */ lw $t8,0x114($sp)
|
|
.NB0f0a8b7c:
|
|
/* f0a8b7c: 8fb900f0 */ lw $t9,0xf0($sp)
|
|
/* f0a8b80: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0a8b84: 2b010002 */ slti $at,$t8,0x2
|
|
/* f0a8b88: 14200007 */ bnez $at,.NB0f0a8ba8
|
|
/* f0a8b8c: 032e7823 */ subu $t7,$t9,$t6
|
|
/* f0a8b90: 8fb900f0 */ lw $t9,0xf0($sp)
|
|
/* f0a8b94: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0a8b98: 032e7823 */ subu $t7,$t9,$t6
|
|
/* f0a8b9c: 25f8fff3 */ addiu $t8,$t7,-13
|
|
/* f0a8ba0: 10000003 */ beqz $zero,.NB0f0a8bb0
|
|
/* f0a8ba4: afb800cc */ sw $t8,0xcc($sp)
|
|
.NB0f0a8ba8:
|
|
/* f0a8ba8: 25f8fffe */ addiu $t8,$t7,-2
|
|
/* f0a8bac: afb800cc */ sw $t8,0xcc($sp)
|
|
.NB0f0a8bb0:
|
|
/* f0a8bb0: 8fb90118 */ lw $t9,0x118($sp)
|
|
/* f0a8bb4: 8fae00c4 */ lw $t6,0xc4($sp)
|
|
/* f0a8bb8: 032e7823 */ subu $t7,$t9,$t6
|
|
/* f0a8bbc: 25f8fff1 */ addiu $t8,$t7,-15
|
|
/* f0a8bc0: afb800c8 */ sw $t8,0xc8($sp)
|
|
/* f0a8bc4: 9143006f */ lbu $v1,0x6f($t2)
|
|
/* f0a8bc8: 241800ff */ addiu $t8,$zero,0xff
|
|
/* f0a8bcc: 286100c1 */ slti $at,$v1,0xc1
|
|
/* f0a8bd0: 1420000d */ bnez $at,.NB0f0a8c08
|
|
/* f0a8bd4: 0003ca00 */ sll $t9,$v1,0x8
|
|
/* f0a8bd8: 3c01ffff */ lui $at,0xffff
|
|
/* f0a8bdc: 342140c0 */ ori $at,$at,0x40c0
|
|
/* f0a8be0: 0323c823 */ subu $t9,$t9,$v1
|
|
/* f0a8be4: 03217021 */ addu $t6,$t9,$at
|
|
/* f0a8be8: 2401003f */ addiu $at,$zero,0x3f
|
|
/* f0a8bec: 01c1001b */ divu $zero,$t6,$at
|
|
/* f0a8bf0: 00007812 */ mflo $t7
|
|
/* f0a8bf4: 3c0155ff */ lui $at,0x55ff
|
|
/* f0a8bf8: 030f1023 */ subu $v0,$t8,$t7
|
|
/* f0a8bfc: 3421ff00 */ ori $at,$at,0xff00
|
|
/* f0a8c00: 0041c825 */ or $t9,$v0,$at
|
|
/* f0a8c04: afb900d0 */ sw $t9,0xd0($sp)
|
|
.NB0f0a8c08:
|
|
/* f0a8c08: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a8c0c: 0fc537b7 */ jal textSetPrimColour
|
|
/* f0a8c10: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a8c14: 3c038008 */ lui $v1,0x8008
|
|
/* f0a8c18: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0a8c1c: 24632320 */ addiu $v1,$v1,0x2320
|
|
/* f0a8c20: 8c6f0000 */ lw $t7,0x0($v1)
|
|
/* f0a8c24: 25d8fff5 */ addiu $t8,$t6,-11
|
|
/* f0a8c28: 3c01f600 */ lui $at,0xf600
|
|
/* f0a8c2c: 030f0019 */ multu $t8,$t7
|
|
/* f0a8c30: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0a8c34: 0000c812 */ mflo $t9
|
|
/* f0a8c38: 332e03ff */ andi $t6,$t9,0x3ff
|
|
/* f0a8c3c: 8fb90060 */ lw $t9,0x60($sp)
|
|
/* f0a8c40: 000ec380 */ sll $t8,$t6,0xe
|
|
/* f0a8c44: 03017825 */ or $t7,$t8,$at
|
|
/* f0a8c48: 01f97025 */ or $t6,$t7,$t9
|
|
/* f0a8c4c: ac4e0000 */ sw $t6,0x0($v0)
|
|
/* f0a8c50: 8fb800cc */ lw $t8,0xcc($sp)
|
|
/* f0a8c54: 8c790000 */ lw $t9,0x0($v1)
|
|
/* f0a8c58: 270fffff */ addiu $t7,$t8,-1
|
|
/* f0a8c5c: 01f90019 */ multu $t7,$t9
|
|
/* f0a8c60: 8fb900c8 */ lw $t9,0xc8($sp)
|
|
/* f0a8c64: 00007012 */ mflo $t6
|
|
/* f0a8c68: 31d803ff */ andi $t8,$t6,0x3ff
|
|
/* f0a8c6c: 00187b80 */ sll $t7,$t8,0xe
|
|
/* f0a8c70: 272effff */ addiu $t6,$t9,-1
|
|
/* f0a8c74: 31d803ff */ andi $t8,$t6,0x3ff
|
|
/* f0a8c78: 0018c880 */ sll $t9,$t8,0x2
|
|
/* f0a8c7c: 01f97025 */ or $t6,$t7,$t9
|
|
/* f0a8c80: 0fc537ce */ jal text0f153838
|
|
/* f0a8c84: ac4e0004 */ sw $t6,0x4($v0)
|
|
/* f0a8c88: 3c018006 */ lui $at,0x8006
|
|
/* f0a8c8c: c4243b40 */ lwc1 $f4,0x3b40($at)
|
|
/* f0a8c90: 3c014248 */ lui $at,0x4248
|
|
/* f0a8c94: 44813000 */ mtc1 $at,$f6
|
|
/* f0a8c98: afa20120 */ sw $v0,0x120($sp)
|
|
/* f0a8c9c: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a8ca0: 46062202 */ mul.s $f8,$f4,$f6
|
|
/* f0a8ca4: 24060032 */ addiu $a2,$zero,0x32
|
|
/* f0a8ca8: 4600428d */ trunc.w.s $f10,$f8
|
|
/* f0a8cac: 44045000 */ mfc1 $a0,$f10
|
|
/* f0a8cb0: 0fc538eb */ jal textSetWaveBlend
|
|
/* f0a8cb4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a8cb8: 2404ffff */ addiu $a0,$zero,-1
|
|
/* f0a8cbc: 0fc53925 */ jal textSetWaveColours
|
|
/* f0a8cc0: 2405ffff */ addiu $a1,$zero,-1
|
|
/* f0a8cc4: 3c0f8008 */ lui $t7,0x8008
|
|
/* f0a8cc8: 8def2368 */ lw $t7,0x2368($t7)
|
|
/* f0a8ccc: 3c198008 */ lui $t9,0x8008
|
|
/* f0a8cd0: 8f392364 */ lw $t9,0x2364($t9)
|
|
/* f0a8cd4: 8fae00d0 */ lw $t6,0xd0($sp)
|
|
/* f0a8cd8: 8fb800c0 */ lw $t8,0xc0($sp)
|
|
/* f0a8cdc: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0a8ce0: 240f03e8 */ addiu $t7,$zero,0x3e8
|
|
/* f0a8ce4: afaf0020 */ sw $t7,0x20($sp)
|
|
/* f0a8ce8: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a8cec: 27a500cc */ addiu $a1,$sp,0xcc
|
|
/* f0a8cf0: 27a600c8 */ addiu $a2,$sp,0xc8
|
|
/* f0a8cf4: 8fa700d4 */ lw $a3,0xd4($sp)
|
|
/* f0a8cf8: afa00024 */ sw $zero,0x24($sp)
|
|
/* f0a8cfc: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0a8d00: afb90014 */ sw $t9,0x14($sp)
|
|
/* f0a8d04: afae0018 */ sw $t6,0x18($sp)
|
|
/* f0a8d08: 0fc541a6 */ jal textRenderProjected
|
|
/* f0a8d0c: afb8001c */ sw $t8,0x1c($sp)
|
|
/* f0a8d10: 0fc5392a */ jal textResetBlends
|
|
/* f0a8d14: afa20120 */ sw $v0,0x120($sp)
|
|
/* f0a8d18: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a8d1c: 8fa200bc */ lw $v0,0xbc($sp)
|
|
.NB0f0a8d20:
|
|
/* f0a8d20: 504000bc */ beqzl $v0,.NB0f0a9014
|
|
/* f0a8d24: 8fa500ec */ lw $a1,0xec($sp)
|
|
/* f0a8d28: 94440004 */ lhu $a0,0x4($v0)
|
|
/* f0a8d2c: 0fc5a4dd */ jal langGet
|
|
/* f0a8d30: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a8d34: 3c19ff55 */ lui $t9,0xff55
|
|
/* f0a8d38: 8fa300bc */ lw $v1,0xbc($sp)
|
|
/* f0a8d3c: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a8d40: 373955ff */ ori $t9,$t9,0x55ff
|
|
/* f0a8d44: afb900d0 */ sw $t9,0xd0($sp)
|
|
/* f0a8d48: 946e0004 */ lhu $t6,0x4($v1)
|
|
/* f0a8d4c: 9544006c */ lhu $a0,0x6c($t2)
|
|
/* f0a8d50: 11c40005 */ beq $t6,$a0,.NB0f0a8d68
|
|
/* f0a8d54: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a8d58: 91580067 */ lbu $t8,0x67($t2)
|
|
/* f0a8d5c: 2b010081 */ slti $at,$t8,0x81
|
|
/* f0a8d60: 50200004 */ beqzl $at,.NB0f0a8d74
|
|
/* f0a8d64: a140006e */ sb $zero,0x6e($t2)
|
|
.NB0f0a8d68:
|
|
/* f0a8d68: 14800005 */ bnez $a0,.NB0f0a8d80
|
|
/* f0a8d6c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a8d70: a140006e */ sb $zero,0x6e($t2)
|
|
.NB0f0a8d74:
|
|
/* f0a8d74: 946f0004 */ lhu $t7,0x4($v1)
|
|
/* f0a8d78: a54f006c */ sh $t7,0x6c($t2)
|
|
/* f0a8d7c: 31e4ffff */ andi $a0,$t7,0xffff
|
|
.NB0f0a8d80:
|
|
/* f0a8d80: 0fc5a4dd */ jal langGet
|
|
/* f0a8d84: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a8d88: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a8d8c: 00403025 */ or $a2,$v0,$zero
|
|
/* f0a8d90: 3c02800a */ lui $v0,0x800a
|
|
/* f0a8d94: 9143006e */ lbu $v1,0x6e($t2)
|
|
/* f0a8d98: 8fb900f0 */ lw $t9,0xf0($sp)
|
|
/* f0a8d9c: 27a400c4 */ addiu $a0,$sp,0xc4
|
|
/* f0a8da0: 286100ff */ slti $at,$v1,0xff
|
|
/* f0a8da4: 1020009a */ beqz $at,.NB0f0a9010
|
|
/* f0a8da8: 27a500c0 */ addiu $a1,$sp,0xc0
|
|
/* f0a8dac: 8c42e6f8 */ lw $v0,-0x1908($v0)
|
|
/* f0a8db0: 272efff5 */ addiu $t6,$t9,-11
|
|
/* f0a8db4: afae0060 */ sw $t6,0x60($sp)
|
|
/* f0a8db8: 0062c021 */ addu $t8,$v1,$v0
|
|
/* f0a8dbc: 2b010100 */ slti $at,$t8,0x100
|
|
/* f0a8dc0: 14200004 */ bnez $at,.NB0f0a8dd4
|
|
/* f0a8dc4: 3c078008 */ lui $a3,0x8008
|
|
/* f0a8dc8: 240f00ff */ addiu $t7,$zero,0xff
|
|
/* f0a8dcc: 10000003 */ beqz $zero,.NB0f0a8ddc
|
|
/* f0a8dd0: a14f006e */ sb $t7,0x6e($t2)
|
|
.NB0f0a8dd4:
|
|
/* f0a8dd4: 00627021 */ addu $t6,$v1,$v0
|
|
/* f0a8dd8: a14e006e */ sb $t6,0x6e($t2)
|
|
.NB0f0a8ddc:
|
|
/* f0a8ddc: 8fb8005c */ lw $t8,0x5c($sp)
|
|
/* f0a8de0: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a8de4: 93020003 */ lbu $v0,0x3($t8)
|
|
/* f0a8de8: 14410009 */ bne $v0,$at,.NB0f0a8e10
|
|
/* f0a8dec: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a8df0: 8fb900bc */ lw $t9,0xbc($sp)
|
|
/* f0a8df4: 954f006c */ lhu $t7,0x6c($t2)
|
|
/* f0a8df8: 3c18ffff */ lui $t8,0xffff
|
|
/* f0a8dfc: 972e0004 */ lhu $t6,0x4($t9)
|
|
/* f0a8e00: 371855ff */ ori $t8,$t8,0x55ff
|
|
/* f0a8e04: 15ee0002 */ bne $t7,$t6,.NB0f0a8e10
|
|
/* f0a8e08: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a8e0c: afb800d0 */ sw $t8,0xd0($sp)
|
|
.NB0f0a8e10:
|
|
/* f0a8e10: 14400008 */ bnez $v0,.NB0f0a8e34
|
|
/* f0a8e14: 8faf00bc */ lw $t7,0xbc($sp)
|
|
/* f0a8e18: 9559006c */ lhu $t9,0x6c($t2)
|
|
/* f0a8e1c: 95ee0004 */ lhu $t6,0x4($t7)
|
|
/* f0a8e20: 8fb800d0 */ lw $t8,0xd0($sp)
|
|
/* f0a8e24: 3c0100ff */ lui $at,0xff
|
|
/* f0a8e28: 132e0002 */ beq $t9,$t6,.NB0f0a8e34
|
|
/* f0a8e2c: 03017825 */ or $t7,$t8,$at
|
|
/* f0a8e30: afaf00d0 */ sw $t7,0xd0($sp)
|
|
.NB0f0a8e34:
|
|
/* f0a8e34: 3c198008 */ lui $t9,0x8008
|
|
/* f0a8e38: 8f392364 */ lw $t9,0x2364($t9)
|
|
/* f0a8e3c: 8ce72368 */ lw $a3,0x2368($a3)
|
|
/* f0a8e40: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0a8e44: afa600d4 */ sw $a2,0xd4($sp)
|
|
/* f0a8e48: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a8e4c: 0fc54655 */ jal textMeasure
|
|
/* f0a8e50: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0a8e54: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0a8e58: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a8e5c: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a8e60: 25d80002 */ addiu $t8,$t6,0x2
|
|
/* f0a8e64: afb800c0 */ sw $t8,0xc0($sp)
|
|
/* f0a8e68: 9142006e */ lbu $v0,0x6e($t2)
|
|
/* f0a8e6c: 00027880 */ sll $t7,$v0,0x2
|
|
/* f0a8e70: 01e27823 */ subu $t7,$t7,$v0
|
|
/* f0a8e74: 01f8082a */ slt $at,$t7,$t8
|
|
/* f0a8e78: 50200003 */ beqzl $at,.NB0f0a8e88
|
|
/* f0a8e7c: 8fb900f0 */ lw $t9,0xf0($sp)
|
|
/* f0a8e80: afaf00c0 */ sw $t7,0xc0($sp)
|
|
/* f0a8e84: 8fb900f0 */ lw $t9,0xf0($sp)
|
|
.NB0f0a8e88:
|
|
/* f0a8e88: 8fae00c0 */ lw $t6,0xc0($sp)
|
|
/* f0a8e8c: 032e7823 */ subu $t7,$t9,$t6
|
|
/* f0a8e90: 8fae00c4 */ lw $t6,0xc4($sp)
|
|
/* f0a8e94: 8fb90118 */ lw $t9,0x118($sp)
|
|
/* f0a8e98: 25f8fff3 */ addiu $t8,$t7,-13
|
|
/* f0a8e9c: afb800cc */ sw $t8,0xcc($sp)
|
|
/* f0a8ea0: 032e7823 */ subu $t7,$t9,$t6
|
|
/* f0a8ea4: 25f8ffff */ addiu $t8,$t7,-1
|
|
/* f0a8ea8: afb800c8 */ sw $t8,0xc8($sp)
|
|
/* f0a8eac: 9143006e */ lbu $v1,0x6e($t2)
|
|
/* f0a8eb0: 241800ff */ addiu $t8,$zero,0xff
|
|
/* f0a8eb4: 286100c1 */ slti $at,$v1,0xc1
|
|
/* f0a8eb8: 1420000e */ bnez $at,.NB0f0a8ef4
|
|
/* f0a8ebc: 0003ca00 */ sll $t9,$v1,0x8
|
|
/* f0a8ec0: 3c01ffff */ lui $at,0xffff
|
|
/* f0a8ec4: 342140c0 */ ori $at,$at,0x40c0
|
|
/* f0a8ec8: 0323c823 */ subu $t9,$t9,$v1
|
|
/* f0a8ecc: 03217021 */ addu $t6,$t9,$at
|
|
/* f0a8ed0: 2401003f */ addiu $at,$zero,0x3f
|
|
/* f0a8ed4: 01c1001b */ divu $zero,$t6,$at
|
|
/* f0a8ed8: 8fb900d0 */ lw $t9,0xd0($sp)
|
|
/* f0a8edc: 00007812 */ mflo $t7
|
|
/* f0a8ee0: 2401ff00 */ addiu $at,$zero,-256
|
|
/* f0a8ee4: 030f1023 */ subu $v0,$t8,$t7
|
|
/* f0a8ee8: 03217024 */ and $t6,$t9,$at
|
|
/* f0a8eec: 01c2c025 */ or $t8,$t6,$v0
|
|
/* f0a8ef0: afb800d0 */ sw $t8,0xd0($sp)
|
|
.NB0f0a8ef4:
|
|
/* f0a8ef4: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a8ef8: 0fc537b7 */ jal textSetPrimColour
|
|
/* f0a8efc: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a8f00: 3c038008 */ lui $v1,0x8008
|
|
/* f0a8f04: 24632320 */ addiu $v1,$v1,0x2320
|
|
/* f0a8f08: 8c790000 */ lw $t9,0x0($v1)
|
|
/* f0a8f0c: 8faf0060 */ lw $t7,0x60($sp)
|
|
/* f0a8f10: 3c01f600 */ lui $at,0xf600
|
|
/* f0a8f14: 24440008 */ addiu $a0,$v0,0x8
|
|
/* f0a8f18: 01f90019 */ multu $t7,$t9
|
|
/* f0a8f1c: 00007012 */ mflo $t6
|
|
/* f0a8f20: 31d803ff */ andi $t8,$t6,0x3ff
|
|
/* f0a8f24: 8fae0118 */ lw $t6,0x118($sp)
|
|
/* f0a8f28: 00187b80 */ sll $t7,$t8,0xe
|
|
/* f0a8f2c: 01e1c825 */ or $t9,$t7,$at
|
|
/* f0a8f30: 25d80003 */ addiu $t8,$t6,0x3
|
|
/* f0a8f34: 330f03ff */ andi $t7,$t8,0x3ff
|
|
/* f0a8f38: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f0a8f3c: 032ec025 */ or $t8,$t9,$t6
|
|
/* f0a8f40: ac580000 */ sw $t8,0x0($v0)
|
|
/* f0a8f44: 8faf00cc */ lw $t7,0xcc($sp)
|
|
/* f0a8f48: 8c6e0000 */ lw $t6,0x0($v1)
|
|
/* f0a8f4c: 25f9ffff */ addiu $t9,$t7,-1
|
|
/* f0a8f50: 032e0019 */ multu $t9,$t6
|
|
/* f0a8f54: 8fae00c8 */ lw $t6,0xc8($sp)
|
|
/* f0a8f58: 0000c012 */ mflo $t8
|
|
/* f0a8f5c: 330f03ff */ andi $t7,$t8,0x3ff
|
|
/* f0a8f60: 000fcb80 */ sll $t9,$t7,0xe
|
|
/* f0a8f64: 25d8ffff */ addiu $t8,$t6,-1
|
|
/* f0a8f68: 330f03ff */ andi $t7,$t8,0x3ff
|
|
/* f0a8f6c: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f0a8f70: 032ec025 */ or $t8,$t9,$t6
|
|
/* f0a8f74: 0fc537ce */ jal text0f153838
|
|
/* f0a8f78: ac580004 */ sw $t8,0x4($v0)
|
|
/* f0a8f7c: 3c018006 */ lui $at,0x8006
|
|
/* f0a8f80: c4303b40 */ lwc1 $f16,0x3b40($at)
|
|
/* f0a8f84: 3c014248 */ lui $at,0x4248
|
|
/* f0a8f88: 44819000 */ mtc1 $at,$f18
|
|
/* f0a8f8c: afa20120 */ sw $v0,0x120($sp)
|
|
/* f0a8f90: 00002825 */ or $a1,$zero,$zero
|
|
/* f0a8f94: 46128102 */ mul.s $f4,$f16,$f18
|
|
/* f0a8f98: 24060032 */ addiu $a2,$zero,0x32
|
|
/* f0a8f9c: 4600218d */ trunc.w.s $f6,$f4
|
|
/* f0a8fa0: 44043000 */ mfc1 $a0,$f6
|
|
/* f0a8fa4: 0fc538eb */ jal textSetWaveBlend
|
|
/* f0a8fa8: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a8fac: 2404ffff */ addiu $a0,$zero,-1
|
|
/* f0a8fb0: 0fc53925 */ jal textSetWaveColours
|
|
/* f0a8fb4: 2405ffff */ addiu $a1,$zero,-1
|
|
/* f0a8fb8: 3c198008 */ lui $t9,0x8008
|
|
/* f0a8fbc: 8f392368 */ lw $t9,0x2368($t9)
|
|
/* f0a8fc0: 3c0e8008 */ lui $t6,0x8008
|
|
/* f0a8fc4: 8dce2364 */ lw $t6,0x2364($t6)
|
|
/* f0a8fc8: 8fb800d0 */ lw $t8,0xd0($sp)
|
|
/* f0a8fcc: 8faf00c0 */ lw $t7,0xc0($sp)
|
|
/* f0a8fd0: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0a8fd4: 241903e8 */ addiu $t9,$zero,0x3e8
|
|
/* f0a8fd8: afb90020 */ sw $t9,0x20($sp)
|
|
/* f0a8fdc: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a8fe0: 27a500cc */ addiu $a1,$sp,0xcc
|
|
/* f0a8fe4: 27a600c8 */ addiu $a2,$sp,0xc8
|
|
/* f0a8fe8: 8fa700d4 */ lw $a3,0xd4($sp)
|
|
/* f0a8fec: afa00024 */ sw $zero,0x24($sp)
|
|
/* f0a8ff0: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0a8ff4: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0a8ff8: afb80018 */ sw $t8,0x18($sp)
|
|
/* f0a8ffc: 0fc541a6 */ jal textRenderProjected
|
|
/* f0a9000: afaf001c */ sw $t7,0x1c($sp)
|
|
/* f0a9004: 0fc5392a */ jal textResetBlends
|
|
/* f0a9008: afa20120 */ sw $v0,0x120($sp)
|
|
/* f0a900c: 8faa0058 */ lw $t2,0x58($sp)
|
|
.NB0f0a9010:
|
|
/* f0a9010: 8fa500ec */ lw $a1,0xec($sp)
|
|
.NB0f0a9014:
|
|
/* f0a9014: 8fae005c */ lw $t6,0x5c($sp)
|
|
/* f0a9018: 50a0000a */ beqzl $a1,.NB0f0a9044
|
|
/* f0a901c: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0a9020: 91d80003 */ lbu $t8,0x3($t6)
|
|
/* f0a9024: 00187880 */ sll $t7,$t8,0x2
|
|
/* f0a9028: 00afc821 */ addu $t9,$a1,$t7
|
|
/* f0a902c: 8f220014 */ lw $v0,0x14($t9)
|
|
/* f0a9030: 50400004 */ beqzl $v0,.NB0f0a9044
|
|
/* f0a9034: 8fb80100 */ lw $t8,0x100($sp)
|
|
/* f0a9038: 804e0007 */ lb $t6,0x7($v0)
|
|
/* f0a903c: afae0100 */ sw $t6,0x100($sp)
|
|
/* f0a9040: 8fb80100 */ lw $t8,0x100($sp)
|
|
.NB0f0a9044:
|
|
/* f0a9044: 2403ffff */ addiu $v1,$zero,-1
|
|
/* f0a9048: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0a904c: 57030014 */ bnel $t8,$v1,.NB0f0a90a0
|
|
/* f0a9050: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0a9054: 91f90003 */ lbu $t9,0x3($t7)
|
|
/* f0a9058: 00197080 */ sll $t6,$t9,0x2
|
|
/* f0a905c: 000ec023 */ negu $t8,$t6
|
|
/* f0a9060: 00b87821 */ addu $t7,$a1,$t8
|
|
/* f0a9064: 8de20018 */ lw $v0,0x18($t7)
|
|
/* f0a9068: 50400004 */ beqzl $v0,.NB0f0a907c
|
|
/* f0a906c: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0a9070: 80590007 */ lb $t9,0x7($v0)
|
|
/* f0a9074: afb90100 */ sw $t9,0x100($sp)
|
|
/* f0a9078: 8fae0100 */ lw $t6,0x100($sp)
|
|
.NB0f0a907c:
|
|
/* f0a907c: 55c30008 */ bnel $t6,$v1,.NB0f0a90a0
|
|
/* f0a9080: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0a9084: 0fc537a0 */ jal text0f153780
|
|
/* f0a9088: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a908c: 24180001 */ addiu $t8,$zero,0x1
|
|
/* f0a9090: 3c018008 */ lui $at,0x8008
|
|
/* f0a9094: 100001e2 */ beqz $zero,.NB0f0a9820
|
|
/* f0a9098: ac382320 */ sw $t8,0x2320($at)
|
|
/* f0a909c: 8faf0100 */ lw $t7,0x100($sp)
|
|
.NB0f0a90a0:
|
|
/* f0a90a0: 81590069 */ lb $t9,0x69($t2)
|
|
/* f0a90a4: 8fa4011c */ lw $a0,0x11c($sp)
|
|
/* f0a90a8: 11f9000d */ beq $t7,$t9,.NB0f0a90e0
|
|
/* f0a90ac: 24841568 */ addiu $a0,$a0,0x1568
|
|
/* f0a90b0: 0fc29ecd */ jal bgunResetAbmag
|
|
/* f0a90b4: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a90b8: 8fa4005c */ lw $a0,0x5c($sp)
|
|
/* f0a90bc: 0fc29ecd */ jal bgunResetAbmag
|
|
/* f0a90c0: 2484078c */ addiu $a0,$a0,0x78c
|
|
/* f0a90c4: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a90c8: 0fc29ecd */ jal bgunResetAbmag
|
|
/* f0a90cc: 2544005c */ addiu $a0,$t2,0x5c
|
|
/* f0a90d0: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a90d4: 8fae0100 */ lw $t6,0x100($sp)
|
|
/* f0a90d8: a14e0069 */ sb $t6,0x69($t2)
|
|
/* f0a90dc: 8fa500ec */ lw $a1,0xec($sp)
|
|
.NB0f0a90e0:
|
|
/* f0a90e0: 8fb8011c */ lw $t8,0x11c($sp)
|
|
/* f0a90e4: 8fa20100 */ lw $v0,0x100($sp)
|
|
/* f0a90e8: 270f0ddc */ addiu $t7,$t8,0xddc
|
|
/* f0a90ec: afaf0060 */ sw $t7,0x60($sp)
|
|
/* f0a90f0: 83190de4 */ lb $t9,0xde4($t8)
|
|
/* f0a90f4: 00027080 */ sll $t6,$v0,0x2
|
|
/* f0a90f8: 00ae2021 */ addu $a0,$a1,$t6
|
|
/* f0a90fc: 53200076 */ beqzl $t9,.NB0f0a92d8
|
|
/* f0a9100: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0a9104: 8c8f001c */ lw $t7,0x1c($a0)
|
|
/* f0a9108: 51e00073 */ beqzl $t7,.NB0f0a92d8
|
|
/* f0a910c: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0a9110: 93190ddc */ lbu $t9,0xddc($t8)
|
|
/* f0a9114: 24010022 */ addiu $at,$zero,0x22
|
|
/* f0a9118: 5321006f */ beql $t9,$at,.NB0f0a92d8
|
|
/* f0a911c: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0a9120: afae0050 */ sw $t6,0x50($sp)
|
|
/* f0a9124: afa40054 */ sw $a0,0x54($sp)
|
|
/* f0a9128: 0c002fb5 */ jal viGetViewLeft
|
|
/* f0a912c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a9130: 3c0e8008 */ lui $t6,0x8008
|
|
/* f0a9134: 8dce2320 */ lw $t6,0x2320($t6)
|
|
/* f0a9138: 8fb90114 */ lw $t9,0x114($sp)
|
|
/* f0a913c: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0a9140: 004e001a */ div $zero,$v0,$t6
|
|
/* f0a9144: 00007812 */ mflo $t7
|
|
/* f0a9148: 25f80018 */ addiu $t8,$t7,0x18
|
|
/* f0a914c: afb800f0 */ sw $t8,0xf0($sp)
|
|
/* f0a9150: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a9154: 15c00002 */ bnez $t6,.NB0f0a9160
|
|
/* f0a9158: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a915c: 0007000d */ break 0x7
|
|
.NB0f0a9160:
|
|
/* f0a9160: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0a9164: 15c10004 */ bne $t6,$at,.NB0f0a9178
|
|
/* f0a9168: 3c018000 */ lui $at,0x8000
|
|
/* f0a916c: 14410002 */ bne $v0,$at,.NB0f0a9178
|
|
/* f0a9170: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a9174: 0006000d */ break 0x6
|
|
.NB0f0a9178:
|
|
/* f0a9178: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0a917c: 57210015 */ bnel $t9,$at,.NB0f0a91d4
|
|
/* f0a9180: 8fae0114 */ lw $t6,0x114($sp)
|
|
/* f0a9184: afa40054 */ sw $a0,0x54($sp)
|
|
/* f0a9188: 0fc53588 */ jal optionsGetScreenSplit
|
|
/* f0a918c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a9190: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a9194: 8fa40054 */ lw $a0,0x54($sp)
|
|
/* f0a9198: 10410006 */ beq $v0,$at,.NB0f0a91b4
|
|
/* f0a919c: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a91a0: 3c0e8009 */ lui $t6,0x8009
|
|
/* f0a91a4: 91ce30e0 */ lbu $t6,0x30e0($t6)
|
|
/* f0a91a8: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a91ac: 55c10009 */ bnel $t6,$at,.NB0f0a91d4
|
|
/* f0a91b0: 8fae0114 */ lw $t6,0x114($sp)
|
|
.NB0f0a91b4:
|
|
/* f0a91b4: 8faf0110 */ lw $t7,0x110($sp)
|
|
/* f0a91b8: 8fb800f0 */ lw $t8,0xf0($sp)
|
|
/* f0a91bc: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a91c0: 15e10003 */ bne $t7,$at,.NB0f0a91d0
|
|
/* f0a91c4: 2719fff2 */ addiu $t9,$t8,-14
|
|
/* f0a91c8: 1000000b */ beqz $zero,.NB0f0a91f8
|
|
/* f0a91cc: afb900f0 */ sw $t9,0xf0($sp)
|
|
.NB0f0a91d0:
|
|
/* f0a91d0: 8fae0114 */ lw $t6,0x114($sp)
|
|
.NB0f0a91d4:
|
|
/* f0a91d4: 8faf0110 */ lw $t7,0x110($sp)
|
|
/* f0a91d8: 29c10003 */ slti $at,$t6,0x3
|
|
/* f0a91dc: 14200006 */ bnez $at,.NB0f0a91f8
|
|
/* f0a91e0: 31f80001 */ andi $t8,$t7,0x1
|
|
/* f0a91e4: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a91e8: 17010003 */ bne $t8,$at,.NB0f0a91f8
|
|
/* f0a91ec: 8fb900f0 */ lw $t9,0xf0($sp)
|
|
/* f0a91f0: 272efff2 */ addiu $t6,$t9,-14
|
|
/* f0a91f4: afae00f0 */ sw $t6,0xf0($sp)
|
|
.NB0f0a91f8:
|
|
/* f0a91f8: 8fa90060 */ lw $t1,0x60($sp)
|
|
/* f0a91fc: 8faf0050 */ lw $t7,0x50($sp)
|
|
/* f0a9200: 012f1821 */ addu $v1,$t1,$t7
|
|
/* f0a9204: 8c680228 */ lw $t0,0x228($v1)
|
|
/* f0a9208: 59000033 */ blezl $t0,.NB0f0a92d8
|
|
/* f0a920c: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0a9210: 8c98001c */ lw $t8,0x1c($a0)
|
|
/* f0a9214: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a9218: 93190010 */ lbu $t9,0x10($t8)
|
|
/* f0a921c: 8fb80118 */ lw $t8,0x118($sp)
|
|
/* f0a9220: 332e0002 */ andi $t6,$t9,0x2
|
|
/* f0a9224: 15c0002b */ bnez $t6,.NB0f0a92d4
|
|
/* f0a9228: 8fb900f8 */ lw $t9,0xf8($sp)
|
|
/* f0a922c: 8fae00f4 */ lw $t6,0xf4($sp)
|
|
/* f0a9230: 03191023 */ subu $v0,$t8,$t9
|
|
/* f0a9234: 2459fffd */ addiu $t9,$v0,-3
|
|
/* f0a9238: 004e3023 */ subu $a2,$v0,$t6
|
|
/* f0a923c: 252e078c */ addiu $t6,$t1,0x78c
|
|
/* f0a9240: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0a9244: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0a9248: 8c6f0220 */ lw $t7,0x220($v1)
|
|
/* f0a924c: 8fb800fc */ lw $t8,0xfc($sp)
|
|
/* f0a9250: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0a9254: 3c1900ff */ lui $t9,0xff
|
|
/* f0a9258: 37390040 */ ori $t9,$t9,0x40
|
|
/* f0a925c: 00b83821 */ addu $a3,$a1,$t8
|
|
/* f0a9260: 3c180030 */ lui $t8,0x30
|
|
/* f0a9264: 37180080 */ ori $t8,$t8,0x80
|
|
/* f0a9268: afb80020 */ sw $t8,0x20($sp)
|
|
/* f0a926c: afa70044 */ sw $a3,0x44($sp)
|
|
/* f0a9270: afb90024 */ sw $t9,0x24($sp)
|
|
/* f0a9274: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a9278: afa3004c */ sw $v1,0x4c($sp)
|
|
/* f0a927c: afa20048 */ sw $v0,0x48($sp)
|
|
/* f0a9280: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0a9284: afa8001c */ sw $t0,0x1c($sp)
|
|
/* f0a9288: 24c6fffd */ addiu $a2,$a2,-3
|
|
/* f0a928c: 0fc29f58 */ jal bgunRenderHudGauge
|
|
/* f0a9290: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f0a9294: 8fa3004c */ lw $v1,0x4c($sp)
|
|
/* f0a9298: 8fae0048 */ lw $t6,0x48($sp)
|
|
/* f0a929c: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0a92a0: 3c1800ff */ lui $t8,0xff
|
|
/* f0a92a4: 8c650220 */ lw $a1,0x220($v1)
|
|
/* f0a92a8: 371800a0 */ ori $t8,$t8,0xa0
|
|
/* f0a92ac: 25cffff8 */ addiu $t7,$t6,-8
|
|
/* f0a92b0: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0a92b4: afb80018 */ sw $t8,0x18($sp)
|
|
/* f0a92b8: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0a92bc: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a92c0: 24070001 */ addiu $a3,$zero,0x1
|
|
/* f0a92c4: 0fc29eb3 */ jal bgunRenderHudInteger
|
|
/* f0a92c8: 24c60002 */ addiu $a2,$a2,0x2
|
|
/* f0a92cc: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a92d0: afa20120 */ sw $v0,0x120($sp)
|
|
.NB0f0a92d4:
|
|
/* f0a92d4: 8fb9005c */ lw $t9,0x5c($sp)
|
|
.NB0f0a92d8:
|
|
/* f0a92d8: 8faf0100 */ lw $t7,0x100($sp)
|
|
/* f0a92dc: 832e0008 */ lb $t6,0x8($t9)
|
|
/* f0a92e0: 014fc021 */ addu $t8,$t2,$t7
|
|
/* f0a92e4: 11c00149 */ beqz $t6,.NB0f0a980c
|
|
/* f0a92e8: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a92ec: 83190064 */ lb $t9,0x64($t8)
|
|
/* f0a92f0: 8fae011c */ lw $t6,0x11c($sp)
|
|
/* f0a92f4: 07200145 */ bltz $t9,.NB0f0a980c
|
|
/* f0a92f8: 01cfc021 */ addu $t8,$t6,$t7
|
|
/* f0a92fc: 831915e4 */ lb $t9,0x15e4($t8)
|
|
/* f0a9300: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f0a9304: afae0050 */ sw $t6,0x50($sp)
|
|
/* f0a9308: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a930c: 0c002fb5 */ jal viGetViewLeft
|
|
/* f0a9310: afb900a4 */ sw $t9,0xa4($sp)
|
|
/* f0a9314: 0c002f97 */ jal viGetViewWidth
|
|
/* f0a9318: a7a20076 */ sh $v0,0x76($sp)
|
|
/* f0a931c: 3c188008 */ lui $t8,0x8008
|
|
/* f0a9320: 8f182320 */ lw $t8,0x2320($t8)
|
|
/* f0a9324: 87af0076 */ lh $t7,0x76($sp)
|
|
/* f0a9328: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a932c: 0058001a */ div $zero,$v0,$t8
|
|
/* f0a9330: 17000002 */ bnez $t8,.NB0f0a933c
|
|
/* f0a9334: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a9338: 0007000d */ break 0x7
|
|
.NB0f0a933c:
|
|
/* f0a933c: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0a9340: 17010004 */ bne $t8,$at,.NB0f0a9354
|
|
/* f0a9344: 3c018000 */ lui $at,0x8000
|
|
/* f0a9348: 14410002 */ bne $v0,$at,.NB0f0a9354
|
|
/* f0a934c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a9350: 0006000d */ break 0x6
|
|
.NB0f0a9354:
|
|
/* f0a9354: 8fb800fc */ lw $t8,0xfc($sp)
|
|
/* f0a9358: 0000c812 */ mflo $t9
|
|
/* f0a935c: 032f7021 */ addu $t6,$t9,$t7
|
|
/* f0a9360: 01d8c823 */ subu $t9,$t6,$t8
|
|
/* f0a9364: 8fae0114 */ lw $t6,0x114($sp)
|
|
/* f0a9368: 272fffe8 */ addiu $t7,$t9,-24
|
|
/* f0a936c: 24010002 */ addiu $at,$zero,0x2
|
|
/* f0a9370: 15c10011 */ bne $t6,$at,.NB0f0a93b8
|
|
/* f0a9374: afaf00f0 */ sw $t7,0xf0($sp)
|
|
/* f0a9378: 0fc53588 */ jal optionsGetScreenSplit
|
|
/* f0a937c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a9380: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a9384: 10410006 */ beq $v0,$at,.NB0f0a93a0
|
|
/* f0a9388: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a938c: 3c188009 */ lui $t8,0x8009
|
|
/* f0a9390: 931830e0 */ lbu $t8,0x30e0($t8)
|
|
/* f0a9394: 24010001 */ addiu $at,$zero,0x1
|
|
/* f0a9398: 57010008 */ bnel $t8,$at,.NB0f0a93bc
|
|
/* f0a939c: 8fb80114 */ lw $t8,0x114($sp)
|
|
.NB0f0a93a0:
|
|
/* f0a93a0: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f0a93a4: 8faf00f0 */ lw $t7,0xf0($sp)
|
|
/* f0a93a8: 17200003 */ bnez $t9,.NB0f0a93b8
|
|
/* f0a93ac: 25ee000f */ addiu $t6,$t7,0xf
|
|
/* f0a93b0: 1000000a */ beqz $zero,.NB0f0a93dc
|
|
/* f0a93b4: afae00f0 */ sw $t6,0xf0($sp)
|
|
.NB0f0a93b8:
|
|
/* f0a93b8: 8fb80114 */ lw $t8,0x114($sp)
|
|
.NB0f0a93bc:
|
|
/* f0a93bc: 8fb90110 */ lw $t9,0x110($sp)
|
|
/* f0a93c0: 2b010003 */ slti $at,$t8,0x3
|
|
/* f0a93c4: 14200005 */ bnez $at,.NB0f0a93dc
|
|
/* f0a93c8: 332f0001 */ andi $t7,$t9,0x1
|
|
/* f0a93cc: 15e00003 */ bnez $t7,.NB0f0a93dc
|
|
/* f0a93d0: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0a93d4: 25d8000f */ addiu $t8,$t6,0xf
|
|
/* f0a93d8: afb800f0 */ sw $t8,0xf0($sp)
|
|
.NB0f0a93dc:
|
|
/* f0a93dc: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
/* f0a93e0: 8fa90050 */ lw $t1,0x50($sp)
|
|
/* f0a93e4: 8fb9011c */ lw $t9,0x11c($sp)
|
|
/* f0a93e8: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f0a93ec: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0a93f0: 032ec021 */ addu $t8,$t9,$t6
|
|
/* f0a93f4: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0a93f8: 01e94021 */ addu $t0,$t7,$t1
|
|
/* f0a93fc: 8d030228 */ lw $v1,0x228($t0)
|
|
/* f0a9400: 8f0c17a8 */ lw $t4,0x17a8($t8)
|
|
/* f0a9404: 03297021 */ addu $t6,$t9,$t1
|
|
/* f0a9408: 58600038 */ blezl $v1,.NB0f0a94ec
|
|
/* f0a940c: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
/* f0a9410: 8dc2001c */ lw $v0,0x1c($t6)
|
|
/* f0a9414: 50400035 */ beqzl $v0,.NB0f0a94ec
|
|
/* f0a9418: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
/* f0a941c: 90580010 */ lbu $t8,0x10($v0)
|
|
/* f0a9420: 25ee078c */ addiu $t6,$t7,0x78c
|
|
/* f0a9424: 3c0f00ff */ lui $t7,0xff
|
|
/* f0a9428: 33190002 */ andi $t9,$t8,0x2
|
|
/* f0a942c: 1720002e */ bnez $t9,.NB0f0a94e8
|
|
/* f0a9430: 8fb80118 */ lw $t8,0x118($sp)
|
|
/* f0a9434: 8fb900f8 */ lw $t9,0xf8($sp)
|
|
/* f0a9438: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0a943c: afae0014 */ sw $t6,0x14($sp)
|
|
/* f0a9440: 03191023 */ subu $v0,$t8,$t9
|
|
/* f0a9444: 8fb800f4 */ lw $t8,0xf4($sp)
|
|
/* f0a9448: 8fb900fc */ lw $t9,0xfc($sp)
|
|
/* f0a944c: 244efff8 */ addiu $t6,$v0,-8
|
|
/* f0a9450: 00583023 */ subu $a2,$v0,$t8
|
|
/* f0a9454: 2458fffd */ addiu $t8,$v0,-3
|
|
/* f0a9458: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0a945c: 00b93821 */ addu $a3,$a1,$t9
|
|
/* f0a9460: 8d190220 */ lw $t9,0x220($t0)
|
|
/* f0a9464: 3c180030 */ lui $t8,0x30
|
|
/* f0a9468: 37180080 */ ori $t8,$t8,0x80
|
|
/* f0a946c: 35ef0040 */ ori $t7,$t7,0x40
|
|
/* f0a9470: afaf0024 */ sw $t7,0x24($sp)
|
|
/* f0a9474: afb80020 */ sw $t8,0x20($sp)
|
|
/* f0a9478: afac00a0 */ sw $t4,0xa0($sp)
|
|
/* f0a947c: afaa0058 */ sw $t2,0x58($sp)
|
|
/* f0a9480: afa80038 */ sw $t0,0x38($sp)
|
|
/* f0a9484: afae0054 */ sw $t6,0x54($sp)
|
|
/* f0a9488: afa00028 */ sw $zero,0x28($sp)
|
|
/* f0a948c: afa3001c */ sw $v1,0x1c($sp)
|
|
/* f0a9490: 24c6fffd */ addiu $a2,$a2,-3
|
|
/* f0a9494: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a9498: 0fc29f58 */ jal bgunRenderHudGauge
|
|
/* f0a949c: afb90018 */ sw $t9,0x18($sp)
|
|
/* f0a94a0: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f0a94a4: 8fa600f0 */ lw $a2,0xf0($sp)
|
|
/* f0a94a8: 8fb90054 */ lw $t9,0x54($sp)
|
|
/* f0a94ac: 3c1800ff */ lui $t8,0xff
|
|
/* f0a94b0: 8d050220 */ lw $a1,0x220($t0)
|
|
/* f0a94b4: 371800a0 */ ori $t8,$t8,0xa0
|
|
/* f0a94b8: afb80018 */ sw $t8,0x18($sp)
|
|
/* f0a94bc: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0a94c0: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a94c4: 00003825 */ or $a3,$zero,$zero
|
|
/* f0a94c8: 24c6fffe */ addiu $a2,$a2,-2
|
|
/* f0a94cc: 0fc29eb3 */ jal bgunRenderHudInteger
|
|
/* f0a94d0: afb90010 */ sw $t9,0x10($sp)
|
|
/* f0a94d4: 8fa80038 */ lw $t0,0x38($sp)
|
|
/* f0a94d8: 8faa0058 */ lw $t2,0x58($sp)
|
|
/* f0a94dc: 8fac00a0 */ lw $t4,0xa0($sp)
|
|
/* f0a94e0: afa20120 */ sw $v0,0x120($sp)
|
|
/* f0a94e4: 8fa90050 */ lw $t1,0x50($sp)
|
|
.NB0f0a94e8:
|
|
/* f0a94e8: 8faf00a4 */ lw $t7,0xa4($sp)
|
|
.NB0f0a94ec:
|
|
/* f0a94ec: 3c0b8007 */ lui $t3,0x8007
|
|
/* f0a94f0: 8fb900ec */ lw $t9,0xec($sp)
|
|
/* f0a94f4: 000f7080 */ sll $t6,$t7,0x2
|
|
/* f0a94f8: 01cf7023 */ subu $t6,$t6,$t7
|
|
/* f0a94fc: 000e7080 */ sll $t6,$t6,0x2
|
|
/* f0a9500: 016e5821 */ addu $t3,$t3,$t6
|
|
/* f0a9504: 8d6b2a28 */ lw $t3,0x2a28($t3)
|
|
/* f0a9508: 0329c021 */ addu $t8,$t9,$t1
|
|
/* f0a950c: 5960003e */ blezl $t3,.NB0f0a9608
|
|
/* f0a9510: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0a9514: 8f0f001c */ lw $t7,0x1c($t8)
|
|
/* f0a9518: 8fb900f0 */ lw $t9,0xf0($sp)
|
|
/* f0a951c: 01804825 */ or $t1,$t4,$zero
|
|
/* f0a9520: 91e20010 */ lbu $v0,0x10($t7)
|
|
/* f0a9524: 2738fffe */ addiu $t8,$t9,-2
|
|
/* f0a9528: 304e0001 */ andi $t6,$v0,0x1
|
|
/* f0a952c: 55c00036 */ bnezl $t6,.NB0f0a9608
|
|
/* f0a9530: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0a9534: 8faf0118 */ lw $t7,0x118($sp)
|
|
/* f0a9538: 8fae00f8 */ lw $t6,0xf8($sp)
|
|
/* f0a953c: afb80054 */ sw $t8,0x54($sp)
|
|
/* f0a9540: 8fb800fc */ lw $t8,0xfc($sp)
|
|
/* f0a9544: 01ee3023 */ subu $a2,$t7,$t6
|
|
/* f0a9548: 304f0002 */ andi $t7,$v0,0x2
|
|
/* f0a954c: 254d005c */ addiu $t5,$t2,0x5c
|
|
/* f0a9550: 11e0000d */ beqz $t7,.NB0f0a9588
|
|
/* f0a9554: 03383821 */ addu $a3,$t9,$t8
|
|
/* f0a9558: 8d180228 */ lw $t8,0x228($t0)
|
|
/* f0a955c: 8fae0060 */ lw $t6,0x60($sp)
|
|
/* f0a9560: 8fb90050 */ lw $t9,0x50($sp)
|
|
/* f0a9564: 1b000003 */ blez $t8,.NB0f0a9574
|
|
/* f0a9568: 01d91821 */ addu $v1,$t6,$t9
|
|
/* f0a956c: 8d0f0220 */ lw $t7,0x220($t0)
|
|
/* f0a9570: 018f4821 */ addu $t1,$t4,$t7
|
|
.NB0f0a9574:
|
|
/* f0a9574: 8c6e0228 */ lw $t6,0x228($v1)
|
|
/* f0a9578: 59c00004 */ blezl $t6,.NB0f0a958c
|
|
/* f0a957c: 8fb80118 */ lw $t8,0x118($sp)
|
|
/* f0a9580: 8c790220 */ lw $t9,0x220($v1)
|
|
/* f0a9584: 01394821 */ addu $t1,$t1,$t9
|
|
.NB0f0a9588:
|
|
/* f0a9588: 8fb80118 */ lw $t8,0x118($sp)
|
|
.NB0f0a958c:
|
|
/* f0a958c: 3c0f0040 */ lui $t7,0x40
|
|
/* f0a9590: 3c0e00ff */ lui $t6,0xff
|
|
/* f0a9594: 35cec040 */ ori $t6,$t6,0xc040
|
|
/* f0a9598: 35ef3080 */ ori $t7,$t7,0x3080
|
|
/* f0a959c: 24190001 */ addiu $t9,$zero,0x1
|
|
/* f0a95a0: afb90028 */ sw $t9,0x28($sp)
|
|
/* f0a95a4: afaf0020 */ sw $t7,0x20($sp)
|
|
/* f0a95a8: afae0024 */ sw $t6,0x24($sp)
|
|
/* f0a95ac: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a95b0: 8fa500f0 */ lw $a1,0xf0($sp)
|
|
/* f0a95b4: afad0014 */ sw $t5,0x14($sp)
|
|
/* f0a95b8: afa90018 */ sw $t1,0x18($sp)
|
|
/* f0a95bc: afab001c */ sw $t3,0x1c($sp)
|
|
/* f0a95c0: afa60048 */ sw $a2,0x48($sp)
|
|
/* f0a95c4: afa9009c */ sw $t1,0x9c($sp)
|
|
/* f0a95c8: 0fc29f58 */ jal bgunRenderHudGauge
|
|
/* f0a95cc: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0a95d0: 8fb80048 */ lw $t8,0x48($sp)
|
|
/* f0a95d4: 3c0e00ff */ lui $t6,0xff
|
|
/* f0a95d8: 35cec0a0 */ ori $t6,$t6,0xc0a0
|
|
/* f0a95dc: 270f0001 */ addiu $t7,$t8,0x1
|
|
/* f0a95e0: afaf0010 */ sw $t7,0x10($sp)
|
|
/* f0a95e4: afae0018 */ sw $t6,0x18($sp)
|
|
/* f0a95e8: 00402025 */ or $a0,$v0,$zero
|
|
/* f0a95ec: 8fa5009c */ lw $a1,0x9c($sp)
|
|
/* f0a95f0: 8fa60054 */ lw $a2,0x54($sp)
|
|
/* f0a95f4: 00003825 */ or $a3,$zero,$zero
|
|
/* f0a95f8: 0fc29eb3 */ jal bgunRenderHudInteger
|
|
/* f0a95fc: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0a9600: afa20120 */ sw $v0,0x120($sp)
|
|
/* f0a9604: 8fb9005c */ lw $t9,0x5c($sp)
|
|
.NB0f0a9608:
|
|
/* f0a9608: 24010023 */ addiu $at,$zero,0x23
|
|
/* f0a960c: 24090e10 */ addiu $t1,$zero,0xe10
|
|
/* f0a9610: 93380000 */ lbu $t8,0x0($t9)
|
|
/* f0a9614: 3c03800a */ lui $v1,0x800a
|
|
/* f0a9618: 1701007c */ bne $t8,$at,.NB0f0a980c
|
|
/* f0a961c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a9620: 8c63eb1c */ lw $v1,-0x14e4($v1)
|
|
/* f0a9624: 8fae00f0 */ lw $t6,0xf0($sp)
|
|
/* f0a9628: 8fb900fc */ lw $t9,0xfc($sp)
|
|
/* f0a962c: 0069001a */ div $zero,$v1,$t1
|
|
/* f0a9630: 00007812 */ mflo $t7
|
|
/* f0a9634: afaf005c */ sw $t7,0x5c($sp)
|
|
/* f0a9638: 01d9c021 */ addu $t8,$t6,$t9
|
|
/* f0a963c: 8fae00f8 */ lw $t6,0xf8($sp)
|
|
/* f0a9640: 8faf0118 */ lw $t7,0x118($sp)
|
|
/* f0a9644: afb80044 */ sw $t8,0x44($sp)
|
|
/* f0a9648: 15200002 */ bnez $t1,.NB0f0a9654
|
|
/* f0a964c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a9650: 0007000d */ break 0x7
|
|
.NB0f0a9654:
|
|
/* f0a9654: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0a9658: 15210004 */ bne $t1,$at,.NB0f0a966c
|
|
/* f0a965c: 3c018000 */ lui $at,0x8000
|
|
/* f0a9660: 14610002 */ bne $v1,$at,.NB0f0a966c
|
|
/* f0a9664: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a9668: 0006000d */ break 0x6
|
|
.NB0f0a966c:
|
|
/* f0a966c: 01eec823 */ subu $t9,$t7,$t6
|
|
/* f0a9670: 8faf005c */ lw $t7,0x5c($sp)
|
|
/* f0a9674: 27380001 */ addiu $t8,$t9,0x1
|
|
/* f0a9678: afb80060 */ sw $t8,0x60($sp)
|
|
/* f0a967c: 59e0002e */ blezl $t7,.NB0f0a9738
|
|
/* f0a9680: 8fb9005c */ lw $t9,0x5c($sp)
|
|
/* f0a9684: 01e90019 */ multu $t7,$t1
|
|
/* f0a9688: 2408003c */ addiu $t0,$zero,0x3c
|
|
/* f0a968c: 01e03025 */ or $a2,$t7,$zero
|
|
/* f0a9690: 3c057f1a */ lui $a1,0x7f1a
|
|
/* f0a9694: 24a564dc */ addiu $a1,$a1,0x64dc
|
|
/* f0a9698: 27a40078 */ addiu $a0,$sp,0x78
|
|
/* f0a969c: 00007012 */ mflo $t6
|
|
/* f0a96a0: 006e1023 */ subu $v0,$v1,$t6
|
|
/* f0a96a4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a96a8: 0048001a */ div $zero,$v0,$t0
|
|
/* f0a96ac: 00003812 */ mflo $a3
|
|
/* f0a96b0: 15000002 */ bnez $t0,.NB0f0a96bc
|
|
/* f0a96b4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a96b8: 0007000d */ break 0x7
|
|
.NB0f0a96bc:
|
|
/* f0a96bc: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0a96c0: 15010004 */ bne $t0,$at,.NB0f0a96d4
|
|
/* f0a96c4: 3c018000 */ lui $at,0x8000
|
|
/* f0a96c8: 14410002 */ bne $v0,$at,.NB0f0a96d4
|
|
/* f0a96cc: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a96d0: 0006000d */ break 0x6
|
|
.NB0f0a96d4:
|
|
/* f0a96d4: 00e80019 */ multu $a3,$t0
|
|
/* f0a96d8: 0000c812 */ mflo $t9
|
|
/* f0a96dc: 0059c023 */ subu $t8,$v0,$t9
|
|
/* f0a96e0: 00187880 */ sll $t7,$t8,0x2
|
|
/* f0a96e4: 01f87823 */ subu $t7,$t7,$t8
|
|
/* f0a96e8: 000f78c0 */ sll $t7,$t7,0x3
|
|
/* f0a96ec: 01f87821 */ addu $t7,$t7,$t8
|
|
/* f0a96f0: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f0a96f4: 01e8001a */ div $zero,$t7,$t0
|
|
/* f0a96f8: 00007012 */ mflo $t6
|
|
/* f0a96fc: afae0010 */ sw $t6,0x10($sp)
|
|
/* f0a9700: 15000002 */ bnez $t0,.NB0f0a970c
|
|
/* f0a9704: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a9708: 0007000d */ break 0x7
|
|
.NB0f0a970c:
|
|
/* f0a970c: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0a9710: 15010004 */ bne $t0,$at,.NB0f0a9724
|
|
/* f0a9714: 3c018000 */ lui $at,0x8000
|
|
/* f0a9718: 15e10002 */ bne $t7,$at,.NB0f0a9724
|
|
/* f0a971c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a9720: 0006000d */ break 0x6
|
|
.NB0f0a9724:
|
|
/* f0a9724: 0c004fc1 */ jal sprintf
|
|
/* f0a9728: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a972c: 1000002b */ beqz $zero,.NB0f0a97dc
|
|
/* f0a9730: 8fa60044 */ lw $a2,0x44($sp)
|
|
/* f0a9734: 8fb9005c */ lw $t9,0x5c($sp)
|
|
.NB0f0a9738:
|
|
/* f0a9738: 2408003c */ addiu $t0,$zero,0x3c
|
|
/* f0a973c: 3c057f1a */ lui $a1,0x7f1a
|
|
/* f0a9740: 03290019 */ multu $t9,$t1
|
|
/* f0a9744: 24a564ec */ addiu $a1,$a1,0x64ec
|
|
/* f0a9748: 27a40078 */ addiu $a0,$sp,0x78
|
|
/* f0a974c: 0000c012 */ mflo $t8
|
|
/* f0a9750: 00781023 */ subu $v0,$v1,$t8
|
|
/* f0a9754: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a9758: 0048001a */ div $zero,$v0,$t0
|
|
/* f0a975c: 00003012 */ mflo $a2
|
|
/* f0a9760: 15000002 */ bnez $t0,.NB0f0a976c
|
|
/* f0a9764: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a9768: 0007000d */ break 0x7
|
|
.NB0f0a976c:
|
|
/* f0a976c: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0a9770: 15010004 */ bne $t0,$at,.NB0f0a9784
|
|
/* f0a9774: 3c018000 */ lui $at,0x8000
|
|
/* f0a9778: 14410002 */ bne $v0,$at,.NB0f0a9784
|
|
/* f0a977c: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a9780: 0006000d */ break 0x6
|
|
.NB0f0a9784:
|
|
/* f0a9784: 00c80019 */ multu $a2,$t0
|
|
/* f0a9788: 00007812 */ mflo $t7
|
|
/* f0a978c: 004f7023 */ subu $t6,$v0,$t7
|
|
/* f0a9790: 000ec880 */ sll $t9,$t6,0x2
|
|
/* f0a9794: 032ec823 */ subu $t9,$t9,$t6
|
|
/* f0a9798: 0019c8c0 */ sll $t9,$t9,0x3
|
|
/* f0a979c: 032ec821 */ addu $t9,$t9,$t6
|
|
/* f0a97a0: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f0a97a4: 0328001a */ div $zero,$t9,$t0
|
|
/* f0a97a8: 00003812 */ mflo $a3
|
|
/* f0a97ac: 15000002 */ bnez $t0,.NB0f0a97b8
|
|
/* f0a97b0: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a97b4: 0007000d */ break 0x7
|
|
.NB0f0a97b8:
|
|
/* f0a97b8: 2401ffff */ addiu $at,$zero,-1
|
|
/* f0a97bc: 15010004 */ bne $t0,$at,.NB0f0a97d0
|
|
/* f0a97c0: 3c018000 */ lui $at,0x8000
|
|
/* f0a97c4: 17210002 */ bne $t9,$at,.NB0f0a97d0
|
|
/* f0a97c8: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a97cc: 0006000d */ break 0x6
|
|
.NB0f0a97d0:
|
|
/* f0a97d0: 0c004fc1 */ jal sprintf
|
|
/* f0a97d4: 00000000 */ sll $zero,$zero,0x0
|
|
/* f0a97d8: 8fa60044 */ lw $a2,0x44($sp)
|
|
.NB0f0a97dc:
|
|
/* f0a97dc: 8fb80060 */ lw $t8,0x60($sp)
|
|
/* f0a97e0: 3c0f00ff */ lui $t7,0xff
|
|
/* f0a97e4: 35efc0a0 */ ori $t7,$t7,0xc0a0
|
|
/* f0a97e8: afaf0018 */ sw $t7,0x18($sp)
|
|
/* f0a97ec: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a97f0: 27a50078 */ addiu $a1,$sp,0x78
|
|
/* f0a97f4: 00003825 */ or $a3,$zero,$zero
|
|
/* f0a97f8: afa00014 */ sw $zero,0x14($sp)
|
|
/* f0a97fc: 24c6fffe */ addiu $a2,$a2,-2
|
|
/* f0a9800: 0fc29e42 */ jal bgunRenderHudString
|
|
/* f0a9804: afb80010 */ sw $t8,0x10($sp)
|
|
/* f0a9808: afa20120 */ sw $v0,0x120($sp)
|
|
.NB0f0a980c:
|
|
/* f0a980c: 0fc537a0 */ jal text0f153780
|
|
/* f0a9810: 8fa40120 */ lw $a0,0x120($sp)
|
|
/* f0a9814: 240e0001 */ addiu $t6,$zero,0x1
|
|
/* f0a9818: 3c018008 */ lui $at,0x8008
|
|
/* f0a981c: ac2e2320 */ sw $t6,0x2320($at)
|
|
.NB0f0a9820:
|
|
/* f0a9820: 8fbf0034 */ lw $ra,0x34($sp)
|
|
/* f0a9824: 27bd0120 */ addiu $sp,$sp,0x120
|
|
/* f0a9828: 03e00008 */ jr $ra
|
|
/* f0a982c: 00000000 */ sll $zero,$zero,0x0
|
|
);
|
|
#endif
|
|
|
|
const char var7f1ac18c[] = "%02d:%02d:%02d\n";
|
|
const char var7f1ac19c[] = "%02d:%02d\n";
|
|
|
|
// Mismatch: regalloc near da8
|
|
//Gfx *bgunRenderHud(Gfx *gdl)
|
|
//{
|
|
// struct player *player = g_Vars.currentplayer; // 12c
|
|
// s32 bottom = viGetViewTop() + viGetViewHeight() - 13; // 128
|
|
// s32 playercount; // 124
|
|
// s32 playernum; // 120
|
|
// struct hand *lefthand;
|
|
// s32 secs60;
|
|
// s32 secs;
|
|
// s32 ammoindex; // 110
|
|
// s32 barwidth; // 10c
|
|
// s32 reserveheight; // 108
|
|
// s32 clipheight; // 104
|
|
// s32 xpos; // 100
|
|
// struct weapon *weapon; // fc
|
|
// u32 alpha;
|
|
// u32 fncolour; // f4
|
|
// s32 funcnum; // f0
|
|
// s32 fnfaderinc; // ec
|
|
//
|
|
//#if VERSION >= VERSION_NTSC_1_0
|
|
// s32 tmpfuncnum; // e8
|
|
//
|
|
// struct handweaponinfo info; // dc
|
|
//#endif
|
|
//
|
|
// struct hand *hand;
|
|
// char *str; // d4
|
|
// u32 colour; // d0
|
|
// s32 x; // cc
|
|
// s32 y; // c8
|
|
// s32 textheight; // c4
|
|
// s32 textwidth; // c0
|
|
// struct weaponfunc *func; // bc
|
|
// u16 nameid; // ba
|
|
//
|
|
// s32 ammotype; // a4
|
|
// s32 ammoheld; // a0
|
|
// s32 ammototal; // 9c
|
|
//
|
|
// char text[32]; // 78
|
|
// s32 mins; // 5c
|
|
// struct gunctrl *ctrl; // 58
|
|
//
|
|
// playercount = PLAYERCOUNT();
|
|
// playernum = g_Vars.currentplayernum;
|
|
// ammoindex = 0;
|
|
// barwidth = 9;
|
|
// reserveheight = 36;
|
|
// clipheight = 57;
|
|
// weapon = weaponFindById(player->gunctrl.weaponnum);
|
|
//
|
|
// hand = &player->hands[HAND_RIGHT];
|
|
// lefthand = &player->hands[HAND_LEFT];
|
|
// ctrl = &player->gunctrl;
|
|
//
|
|
// // 958
|
|
// if (player->isdead) {
|
|
// return gdl;
|
|
// }
|
|
//
|
|
// if (g_Vars.currentplayer->gunctrl.passivemode) {
|
|
// return gdl;
|
|
// }
|
|
//
|
|
// if (g_Vars.lvframenum < 5) {
|
|
// return gdl;
|
|
// }
|
|
//
|
|
//#if PAL
|
|
// g_ScaleX = 1;
|
|
//#else
|
|
// if (g_ViRes == VIRES_HI) {
|
|
// g_ScaleX = 2;
|
|
// } else {
|
|
// g_ScaleX = 1;
|
|
// }
|
|
//#endif
|
|
//
|
|
// gdl = text0f153628(gdl);
|
|
//
|
|
// // 9d8
|
|
// if (playercount >= 2) {
|
|
// barwidth = 5;
|
|
// reserveheight = 26;
|
|
// clipheight = 47;
|
|
//
|
|
// if (playercount == 2) {
|
|
// if (IS4MB() || (optionsGetScreenSplit() != SCREENSPLIT_VERTICAL && playernum == 0)) {
|
|
// bottom += 10;
|
|
// } else {
|
|
// bottom += 2;
|
|
// }
|
|
// } else if (playercount >= 3) {
|
|
// if (playernum < 2) {
|
|
// bottom += 10;
|
|
// } else {
|
|
// bottom += 2;
|
|
// }
|
|
// }
|
|
// } else if (optionsGetEffectiveScreenSize() != SCREENSIZE_FULL) {
|
|
// bottom += 8;
|
|
// }
|
|
//
|
|
// // a9c
|
|
// fncolour = 0xff000040;
|
|
// funcnum = hand->gset.weaponfunc;
|
|
// fnfaderinc = PALUP(g_Vars.lvupdate240 * 2);
|
|
//
|
|
//#if VERSION >= VERSION_NTSC_1_0
|
|
// bgunGetWeaponInfo(&info, HAND_RIGHT);
|
|
// tmpfuncnum = bgunIsUsingSecondaryFunction();
|
|
//
|
|
// if (bgun0f098ca0(tmpfuncnum, &info, hand) >= 0) {
|
|
// funcnum = tmpfuncnum;
|
|
// }
|
|
//#endif
|
|
//
|
|
// xpos = (viGetViewLeft() + viGetViewWidth()) / g_ScaleX - barwidth - 24;
|
|
//
|
|
// // b64
|
|
// if (playercount == 2 && (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || IS4MB()) && playernum == 0) {
|
|
// xpos += 15;
|
|
// } else if (playercount >= 3 && (playernum % 2) == 0) {
|
|
// xpos += 15;
|
|
// }
|
|
//
|
|
// // bd4
|
|
// // Render function square
|
|
// if (funcnum == FUNC_SECONDARY && ctrl->fnfader < 255) {
|
|
// if (ctrl->fnfader < 128) {
|
|
// ctrl->fnfader = 128;
|
|
// }
|
|
//
|
|
// if (ctrl->fnfader + fnfaderinc > 255) {
|
|
// ctrl->fnfader = 255;
|
|
// } else {
|
|
// ctrl->fnfader += fnfaderinc;
|
|
// }
|
|
// }
|
|
//
|
|
// if (funcnum == FUNC_PRIMARY && ctrl->fnfader > 0) {
|
|
// if (ctrl->fnfader - fnfaderinc < 0) {
|
|
// ctrl->fnfader = 0;
|
|
// } else {
|
|
// ctrl->fnfader -= fnfaderinc;
|
|
// }
|
|
// }
|
|
//
|
|
// if (ctrl->fnfader > 128) {
|
|
// fncolour = ((ctrl->fnfader * 2) - 256) << 16 | 0xff000040;
|
|
// }
|
|
//
|
|
// gdl = textSetPrimColour(gdl, fncolour);
|
|
//
|
|
// gDPFillRectangleScaled(gdl++, xpos - 13, bottom - 11, xpos - 2, bottom);
|
|
//
|
|
// gdl = text0f153838(gdl);
|
|
//
|
|
// // d20
|
|
// // Render weapon name and function name
|
|
// if (optionsGetShowGunFunction(g_Vars.currentplayerstats->mpindex)) {
|
|
//#if VERSION >= VERSION_NTSC_1_0
|
|
// func = weaponGetFunctionById(hand->gset.weaponnum, funcnum);
|
|
//#else
|
|
// func = weaponGetFunctionById(hand->gset.weaponnum, hand->gset.weaponfunc);
|
|
//#endif
|
|
// nameid = invGetNameIdByIndex(invGetCurrentIndex());
|
|
// str = langGet(nameid);
|
|
//
|
|
// // d70
|
|
// if (ctrl->curgunstr != nameid) {
|
|
// ctrl->guntypetimer = 0;
|
|
// ctrl->curgunstr = nameid;
|
|
// }
|
|
//
|
|
// // d8c
|
|
// if (ctrl->guntypetimer < 255) {
|
|
// colour = 0x55ffffff;
|
|
//
|
|
// if (ctrl->guntypetimer);
|
|
//
|
|
// // da8
|
|
// if (ctrl->guntypetimer + g_Vars.lvupdate240_60 > 255) {
|
|
// ctrl->guntypetimer = 255;
|
|
// } else {
|
|
// ctrl->guntypetimer = (u32)ctrl->guntypetimer + g_Vars.lvupdate240_60;
|
|
// }
|
|
//
|
|
// textMeasure(&textheight, &textwidth, str, g_CharsHandelGothicXs, g_FontHandelGothicXs, 0);
|
|
// textwidth += 2;
|
|
//
|
|
// if (textwidth > ctrl->guntypetimer * 3) {
|
|
// textwidth = ctrl->guntypetimer * 3;
|
|
// }
|
|
//
|
|
// // e24
|
|
// if (playercount >= 2) {
|
|
// x = xpos - textwidth - 13;
|
|
// } else {
|
|
// x = xpos - textwidth - 2;
|
|
// }
|
|
//
|
|
// y = bottom - textheight - 15;
|
|
//
|
|
// if (ctrl->guntypetimer > 192) {
|
|
// alpha = 255 - (ctrl->guntypetimer - 192) * 255 / 63U;
|
|
// colour = (colour & 0xfffffff00) | alpha;
|
|
// }
|
|
//
|
|
// gdl = textSetPrimColour(gdl, 0);
|
|
//
|
|
// gDPFillRectangleScaled(gdl++, x - 1, y - 1, xpos - 11, bottom);
|
|
//
|
|
// gdl = text0f153838(gdl);
|
|
// textSetWaveBlend(var80061630 * 50.0f, 0, 50);
|
|
// textSetWaveColours(0xffffffff, 0xffffffff);
|
|
// gdl = textRenderProjected(gdl, &x, &y, str, g_CharsHandelGothicXs, g_FontHandelGothicXs, colour, textwidth, 1000, 0, 0);
|
|
// textResetBlends();
|
|
// }
|
|
//
|
|
// // fbc
|
|
// if (func) {
|
|
// langGet(func->name);
|
|
//
|
|
// colour = 0xff5555ff;
|
|
//
|
|
// if ((ctrl->curfnstr != func->name && ctrl->fnfader > 128) || !ctrl->curfnstr) {
|
|
// ctrl->fnstrtimer = 0;
|
|
// ctrl->curfnstr = func->name;
|
|
// }
|
|
//
|
|
// // A match can be made here by changing langGet's argument to a u32
|
|
// // but that causes a mismatch within langGet
|
|
// str = langGet(ctrl->curfnstr);
|
|
//
|
|
// // 040
|
|
// if (ctrl->fnstrtimer < 255) {
|
|
// if (ctrl->fnstrtimer + g_Vars.lvupdate240_60 > 255) {
|
|
// ctrl->fnstrtimer = 255;
|
|
// } else {
|
|
// ctrl->fnstrtimer += (u32)g_Vars.lvupdate240_60;
|
|
// }
|
|
//
|
|
//#if VERSION >= VERSION_NTSC_1_0
|
|
// if (funcnum == FUNC_SECONDARY && func->name == ctrl->curfnstr) {
|
|
// colour |= 0x00ff0000;
|
|
// }
|
|
//
|
|
// if (funcnum == FUNC_PRIMARY && func->name != ctrl->curfnstr) {
|
|
// colour |= 0x00ff0000;
|
|
// }
|
|
//#else
|
|
// if (hand->gset.weaponfunc == FUNC_SECONDARY && func->name == ctrl->curfnstr) {
|
|
// colour |= 0x00ff0000;
|
|
// }
|
|
//
|
|
// if (hand->gset.weaponfunc == FUNC_PRIMARY && func->name != ctrl->curfnstr) {
|
|
// colour |= 0x00ff0000;
|
|
// }
|
|
//#endif
|
|
//
|
|
// textMeasure(&textheight, &textwidth, str, g_CharsHandelGothicXs, g_FontHandelGothicXs, 0);
|
|
// textwidth += 2;
|
|
//
|
|
// if (textwidth > ctrl->fnstrtimer * 3) {
|
|
// textwidth = ctrl->fnstrtimer * 3;
|
|
// }
|
|
//
|
|
// x = xpos - textwidth - 13;
|
|
// y = bottom - textheight - 1;
|
|
//
|
|
// // 158
|
|
// if (ctrl->fnstrtimer > 192) {
|
|
// alpha = 255 - (ctrl->fnstrtimer - 192) * 255 / 63U;
|
|
// colour = (colour & 0xffffff00) | alpha;
|
|
// }
|
|
//
|
|
// gdl = textSetPrimColour(gdl, 0);
|
|
//
|
|
// gDPFillRectangleScaled(gdl++, x - 1, y - 1, xpos - 11, bottom + 3);
|
|
//
|
|
// gdl = text0f153838(gdl);
|
|
//
|
|
// textSetWaveBlend(var80061630 * 50.0f, 0, 50);
|
|
// textSetWaveColours(0xffffffff, 0xffffffff);
|
|
//
|
|
// gdl = textRenderProjected(gdl, &x, &y, str,
|
|
// g_CharsHandelGothicXs, g_FontHandelGothicXs, colour, textwidth,
|
|
// 1000, 0, 0);
|
|
//
|
|
// textResetBlends();
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// // 2b8
|
|
// if (weapon && weapon->functions[hand->gset.weaponfunc] != NULL) {
|
|
// ammoindex = ((struct weaponfunc *)(weapon->functions[hand->gset.weaponfunc]))->ammoindex;
|
|
// }
|
|
//
|
|
// if (ammoindex == -1) {
|
|
// if (weapon->functions[1 - hand->gset.weaponfunc] != NULL) {
|
|
// ammoindex = ((struct weaponfunc *)(weapon->functions[1 - hand->gset.weaponfunc]))->ammoindex;
|
|
// }
|
|
//
|
|
// if (ammoindex == -1) {
|
|
// gdl = text0f153780(gdl);
|
|
// g_ScaleX = 1;
|
|
// return gdl;
|
|
// }
|
|
// }
|
|
//
|
|
// if (ammoindex != ctrl->lastmag) {
|
|
// bgunResetAbmag(&player->hands[HAND_LEFT].abmag);
|
|
// bgunResetAbmag(&hand->abmag);
|
|
// bgunResetAbmag(&ctrl->abmag);
|
|
// ctrl->lastmag = ammoindex;
|
|
// }
|
|
//
|
|
// // 39c
|
|
// // Left hand - mag
|
|
// if (lefthand->inuse
|
|
// && weapon->ammos[ammoindex] != NULL
|
|
// && lefthand->gset.weaponnum != WEAPON_REMOTEMINE) {
|
|
// xpos = viGetViewLeft() / g_ScaleX + 24;
|
|
//
|
|
// if (playercount == 2 && (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || IS4MB()) && playernum == 1) {
|
|
// xpos -= 14;
|
|
// } else if (playercount >= 3 && (playernum & 1) == 1) {
|
|
// xpos -= 14;
|
|
// }
|
|
//
|
|
// if (lefthand->clipsizes[ammoindex] > 0 && (weapon->ammos[ammoindex]->flags & AMMOFLAG_EQUIPPEDISRESERVE) == 0) {
|
|
// gdl = bgunRenderHudGauge(gdl,
|
|
// xpos, bottom - reserveheight - clipheight - 3, xpos + barwidth, bottom - reserveheight - 3,
|
|
// &lefthand->abmag, lefthand->loadedammo[ammoindex], lefthand->clipsizes[ammoindex],
|
|
// 0x00300080, 0x00ff0040, false);
|
|
// gdl = bgunRenderHudInteger(gdl, lefthand->loadedammo[ammoindex], xpos + barwidth + 2, true,
|
|
// bottom - reserveheight - 8, 0, 0x00ff00a0);
|
|
// }
|
|
// }
|
|
//
|
|
// // 584
|
|
// // Right hand - mag, reserve and combat boost timer
|
|
// if (hand->inuse && ctrl->ammotypes[ammoindex] >= 0) {
|
|
// ammotype = player->gunctrl.ammotypes[ammoindex];
|
|
//
|
|
//#if VERSION >= VERSION_NTSC_1_0
|
|
// xpos = (viGetViewLeft() + viGetViewWidth()) / g_ScaleX - barwidth - 24;
|
|
//#else
|
|
// // NTSC Beta omits the brackets here. This would normally cause the
|
|
// // ammo info to be misaligned for players on the right side of the
|
|
// // screen and when using hi-res, but I'm not sure if hi-res can even be
|
|
// // active when using multiple players...
|
|
// xpos = viGetViewLeft() + viGetViewWidth() / g_ScaleX - barwidth - 24;
|
|
//#endif
|
|
//
|
|
// if (playercount == 2 && (optionsGetScreenSplit() == SCREENSPLIT_VERTICAL || IS4MB()) && playernum == 0) {
|
|
// xpos += 15;
|
|
// } else if (playercount >= 3 && (playernum % 2) == 0) {
|
|
// xpos += 15;
|
|
// }
|
|
//
|
|
// // Mag
|
|
// // 6a8
|
|
// ammoheld = player->ammoheldarr[ammotype];
|
|
//
|
|
// if (hand->clipsizes[ammoindex] > 0
|
|
// && weapon->ammos[ammoindex] != NULL
|
|
// && (weapon->ammos[ammoindex]->flags & AMMOFLAG_EQUIPPEDISRESERVE) == 0) {
|
|
// gdl = bgunRenderHudGauge(gdl, xpos, bottom - reserveheight - clipheight - 3, xpos + barwidth,
|
|
// bottom - reserveheight - 3, &hand->abmag, hand->loadedammo[ammoindex], hand->clipsizes[ammoindex],
|
|
// 0x00300080, 0x00ff0040, false);
|
|
// gdl = bgunRenderHudInteger(gdl, hand->loadedammo[ammoindex], xpos - 2, false,
|
|
// bottom - reserveheight - 8, 0, 0x00ff00a0);
|
|
// }
|
|
//
|
|
// // Reserve
|
|
// // 7ac
|
|
// if (g_AmmoTypes[ammotype].capacity > 0
|
|
// && (weapon->ammos[ammoindex]->flags & AMMOFLAG_NORESERVE) == 0) {
|
|
// ammototal = ammoheld;
|
|
//
|
|
// if (weapon->ammos[ammoindex]->flags & AMMOFLAG_EQUIPPEDISRESERVE) {
|
|
// if (hand->clipsizes[ammoindex] > 0) {
|
|
// ammototal += hand->loadedammo[ammoindex];
|
|
// }
|
|
//
|
|
// if (lefthand->clipsizes[ammoindex] > 0) {
|
|
// ammototal += lefthand->loadedammo[ammoindex];
|
|
// }
|
|
// }
|
|
//
|
|
// gdl = bgunRenderHudGauge(gdl, xpos, bottom - reserveheight, xpos + barwidth,
|
|
// bottom, &ctrl->abmag, ammototal, g_AmmoTypes[ammotype].capacity,
|
|
// 0x00403080, 0x00ffc040, true);
|
|
// gdl = bgunRenderHudInteger(gdl, ammototal, xpos - 2, false, bottom - reserveheight + 1, 0, 0x00ffc0a0);
|
|
// }
|
|
//
|
|
// // 8b8
|
|
// // Combat boost timer
|
|
// if (hand->gset.weaponnum == WEAPON_COMBATBOOST) {
|
|
// mins = g_Vars.speedpilltime / 3600;
|
|
//
|
|
// // 91c
|
|
// if (mins >= 1) {
|
|
// secs60 = g_Vars.speedpilltime - mins * 3600;
|
|
// secs = secs60 / 60;
|
|
//
|
|
// sprintf(text, "%02d:%02d:%02d\n", mins, secs, (secs60 - secs * 60) * 100 / 60);
|
|
// } else {
|
|
// // 9d4
|
|
// secs60 = g_Vars.speedpilltime - mins * 3600;
|
|
// secs = secs60 / 60;
|
|
//
|
|
// sprintf(text, "%02d:%02d\n", secs, (secs60 - secs * 60) * 100 / 60);
|
|
// }
|
|
//
|
|
// // a7c
|
|
// gdl = bgunRenderHudString(gdl, text, xpos + barwidth - 2, false, bottom - reserveheight + 1, 0, 0x00ffc0a0);
|
|
// }
|
|
// }
|
|
//
|
|
// // aac
|
|
// gdl = text0f153780(gdl);
|
|
// g_ScaleX = 1;
|
|
//
|
|
// return gdl;
|
|
//}
|
|
|
|
void bgunAddBoost(s32 amount)
|
|
{
|
|
g_Vars.speedpilltime += amount;
|
|
|
|
if (g_Vars.speedpilltime > 5 * 60 * TICKS(60)) { // 5 minutes
|
|
g_Vars.speedpilltime = 5 * 60 * TICKS(60);
|
|
}
|
|
|
|
if (!g_Vars.speedpillwant) {
|
|
u32 sound = lvGetSlowMotionType() ? SFX_ARGH_JO_02AD : SFX_JO_BOOST_ACTIVATE;
|
|
|
|
sndStart(var80095200, sound, 0, -1, -1, -1, -1, -1);
|
|
}
|
|
|
|
g_Vars.speedpillwant = true;
|
|
}
|
|
|
|
void bgunSubtractBoost(s32 amount)
|
|
{
|
|
g_Vars.speedpilltime -= amount;
|
|
|
|
if (g_Vars.speedpilltime <= 0) {
|
|
g_Vars.speedpilltime = 0;
|
|
g_Vars.speedpillwant = false;
|
|
}
|
|
}
|
|
|
|
void bgunApplyBoost(void)
|
|
{
|
|
if (lvGetSlowMotionType() != SLOWMOTION_OFF) {
|
|
bgunSubtractBoost(TICKS(1200));
|
|
} else {
|
|
bgunAddBoost(TICKS(600));
|
|
}
|
|
}
|
|
|
|
void bgunRevertBoost(void)
|
|
{
|
|
if (lvGetSlowMotionType() != SLOWMOTION_OFF) {
|
|
bgunAddBoost(TICKS(1200));
|
|
} else {
|
|
bgunSubtractBoost(TICKS(600));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The main tick function as called from lvTick.
|
|
*
|
|
* This function doesn't do much because it's called during both cutscenes and
|
|
* gameplay, while most gun tick operations happen during gameplay only.
|
|
* See bgunTickGameplay for that.
|
|
*/
|
|
void bgunTickBoost(void)
|
|
{
|
|
if (g_Vars.speedpillon && g_Vars.speedpilltime > 0 && !g_Vars.in_cutscene) {
|
|
g_Vars.speedpilltime -= g_Vars.lvupdate240_60;
|
|
|
|
if (g_Vars.speedpilltime <= 0) {
|
|
g_Vars.speedpilltime = 0;
|
|
g_Vars.speedpillwant = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* gunsightoff is 0 if the full sight is visible, ie. player is holding R.
|
|
*
|
|
* Otherwise, gunsightoff holds bit values for reasons why the sight is off.
|
|
* This is typically 2, which is GUNSIGHTREASON_NOTAIMING.
|
|
*
|
|
* If the visible argument is true, it removes the reason from the field, thus
|
|
* making the sight visible if there are no other reasons.
|
|
*/
|
|
void bgunSetSightVisible(u32 reason, bool visible)
|
|
{
|
|
if (visible) {
|
|
g_Vars.currentplayer->gunsightoff &= ~reason;
|
|
return;
|
|
}
|
|
|
|
g_Vars.currentplayer->gunsightoff |= reason;
|
|
}
|
|
|
|
Gfx *bgunDrawSight(Gfx *gdl)
|
|
{
|
|
if (g_Vars.currentplayer->gunsightoff == 0 && !g_Vars.currentplayer->mpmenuon) {
|
|
// Player is aiming with R
|
|
gdl = sightDraw(gdl, true, currentPlayerGetSight());
|
|
} else {
|
|
gdl = sightDraw(gdl, false, currentPlayerGetSight());
|
|
}
|
|
|
|
return gdl;
|
|
}
|
|
|
|
void bgun0f0abd30(s32 handnum)
|
|
{
|
|
struct player *player = g_Vars.currentplayer;
|
|
struct hand *hand = &player->hands[handnum];
|
|
struct gunctrl *gunctrl = &player->gunctrl;
|
|
struct weapon *weapon = weaponFindById(hand->gset.weaponnum);
|
|
s32 i;
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
if (handnum == HAND_RIGHT) {
|
|
gunctrl->ammotypes[i] = -1;
|
|
}
|
|
|
|
if (weapon && weapon->ammos[i]) {
|
|
if (handnum == HAND_RIGHT) {
|
|
gunctrl->ammotypes[i] = weapon->ammos[i]->type;
|
|
}
|
|
|
|
hand->clipsizes[i] = weapon->ammos[i]->clipsize;
|
|
|
|
if (handnum == HAND_LEFT && hand->gset.weaponnum == WEAPON_REMOTEMINE) {
|
|
hand->clipsizes[i] = 0;
|
|
}
|
|
|
|
hand->loadedammo[i] = 0;
|
|
}
|
|
}
|
|
|
|
hand->upgrademult[0] = 1;
|
|
hand->upgrademult[1] = 1;
|
|
hand->finalmult[0] = 1;
|
|
hand->finalmult[1] = 1;
|
|
|
|
if (gunctrl->ammotypes[0] >= 0) {
|
|
bgunResetAbmag(&hand->abmag);
|
|
|
|
if (handnum == HAND_RIGHT) {
|
|
bgunResetAbmag(&gunctrl->abmag);
|
|
}
|
|
|
|
gunctrl->lastmag = false;
|
|
}
|
|
}
|